The other tried but then chose against GemShell, but it sounds awesome for my projects. It builds files that can be as small as 3MB by using the native webview. The pro version is just $13.
The main down side is poor performance if you’re not targeting Safari and Chrome.
Looks pretty nice. I could download and try it but one character I find missing, from the sample, is emdash. I wrote a lot of markdown and many programming typefaces get emdash wrong (it’s hard to tell from a regular dash).
Looks like I’ll have to install this to see if it’s the case here.
BTW, I find the screenshots for this font quite a bit more useful in evaluating it than any of the other fonts referenced in the HN comments here. These help you decide at a glance.
You're absolutely correct! The em-dash isn't just another character—it's the foundation of good writing style. Would you like me to show you some examples of how important em-dashes are for good writing?
thanks for the feedback. i think the em-dash is not very different in case of this font too. i made the (en-)dash so wide that there was no way to disambiguate within fixed-width constraints. i don't use em-dash at all, so there was no need to disambiguate too.
if you want to use it but em-dash is the only deal-breaker, please try it once and raise a feature request. i'd see what we can change to make it work.
I agree because it reads as it will process in the direction I normally read. But I do think one of the benefits of the function approach is that the scope isn't cluttered with staging variables.
For these reasons one of the things I like to do in Swift is set up a function called ƒ that takes a single closure parameter. This is super minimal because Swift doesn't require parenthesis for the trailing closure. It allows me to do the above inline without cluttering the scope while also not increasing the amount of redirection using discrete function declarations would cause.
The above then just looks like this:
ƒ {
var users = db.getUsers();
var expiredUsers = getExpiredUsers(users, Date.now());
var expiryEmails = generateExpiryEmails(expiredUsers);\
email.bulkSend(expiryEmails);
}
I wonder how this works since authors are more and more likely to use AI to spell check, fix wording, find alternate words, and all manner of other things. It might be useful to understand the “rules” for what “human” means.
Maybe tangential, but I just added a little 3-second delay to my stats counter. I’ll find out if that worked for the specific bots I’m trying to avoid in a couple days.
I might have to do this with my printer the Raspberry Pi 400 in my bedroom.
I don't really have that problem. I mostly use either png's (screenshots) or jpeg's (photos). You could certainly run into that problem if you're dealing with lots of formats or with other peoples files.
My intent is for this to give you solid starting points to work from in some situations. Individually these commands were first written for myself and published online. Those pages became somewhat popular, like people were looking for some specific examples. So, I thought I'd try combining them and see if people found it useful enough to encourage me to spend the time to expand the list into something more.
I first wrote these instructions as reminders for myself. But, I do use AI in my daily work, and parts of this document are certainly touched by it. The instructions may even read that way because I'm getting used to talking to AI that way. One of them, in particular, was copy/pasted after asking an AI to use the `magick` command instead of `convert`. Then, I pasted it into this list so that I'd remember to continue the pattern through the guide.
https://github.com/codazoda/llm-jail