HN user

phunehehe0

105 karma
Posts7
Comments71
View on HN
Monaspace 3 years ago

Have you tried Quinze? https://www.programmingfonts.org/#quinze

I was on a quest to find the narrowest font and Quinze was the answer. It's something like 20% narrower than Iosevka and M+. I can't find an easy comparison with PragmataPro but if Iosevka is a free interpretation of PragmataPro like you mentioned then Quinze should be narrower as well.

In fact Quinze is so narrow that when I attempted to force its use in all monospace text in the browser, readability took a hit instead of improving. This is because at the same height it is much smaller than "normal" fonts. In my coding setup I use a huge font size which works great with the narrow width.

I guess the downside is that Quinze is very minimal: pretty much only ASCII, no ligature, no customization etc. None of those bother me.

Consider the chance of winning at least 100 times. It's 1 over 2^100, and you win at least 2^100. So the small chance and the big reward "balance out", kind of.

But the reward is not limited there. Once you reach each and every "balance point", the next step is 50% chance for doubling the reward. If you currently have X, the value of continuing to play is 1.5X. This is independent of how big X is, or how unlikely you have made it this far (sorta a reverse Gambler's Fallacy). And it's why the expected value is infinite.

What I've been taught is, the part of the sentence after the "but" is the part that's being emphasized.

Imagine if you had written:

I've seen shade-tree mechanics show a complete disregard for the environment, but I'm not in favor of this kind of law.

It seems like you think that's the same sentence as before but to me, and I suspect other readers, they say different things.

This is interesting if true. How can people verify that your extension is compatible with Manifest V3? I can see on the Chrome Web Store that the latest version of your extension was published before the latest version of AdGuard (August 23, 2022 vs August 30, 2022) so there's that.

Quinze https://www.programmingfonts.org/#quinze

I was on a quest to find the narrowest font and Quinze was the answer. It's something like 20% narrower than Iosevka, which is already quite narrow. I love Iosevka but to me nothing beats maximizing the area of the characters (readability) while minimizing their width (fitting more characters on a line). That means sacrificing the number of lines on the screen, which I solve by splitting when needed.

In fact this font is so narrow that when I attempted to force its use in all monospace text in the browser, readability took a hit instead of improving. This is because at the same height Quinze is much smaller than "normal" fonts. In my coding setup I use a huge font size so it's no problem.

Tokio Console 5 years ago

I'm a little bit of a color freak. Allow me to leave some suggestions :)

- Picking from the 256 color pallete will likely give you colors with different brightness. This may hurt readability of darker colors on a dark background, and may make some color stand out unintentionally. Consider using something like HSLuv [1] to pick colors with the same lightness, then convert to the closest Xterm color [2].

- To make it obvious there is a gradient, I'd pick one lightness (assuming HSLuv) and one saturation (I usually stick to 100%), then pick a distance in hue for each step. For example if I expect to see a maximum of 7 steps on the screen at once, one way is to start at 0, then 30, then 60, etc. You may choose to go over 180, but keep in mind 360 will be the same as 0 so maybe stop at 240. Note how by picking adjacent colors from the table you are still picking a distance, but the distance is too small so it's hard to see.

- You may want to choose a different starting point than 0, and maybe different direction for the steps, depending on whether you want the colors to "mean" anything. For example red is commonly associated with warning, so you can arrange to have the top of the range aligned with red. Or arrange to avoid the red region if you don't want that association.

[1] https://www.hsluv.org/

[2] https://codegolf.stackexchange.com/q/156918 <- I'm sure there are more readable ways but can't find them in a quick search

This is much better than a coin flip. A coin flip would give about 50% true positive rate (which is about the same as the test), but it would also give about 50% false positive rate.

To put it in perspective, imagine 10 people have cancer in a population of 1000 (a rate of 10% which is too high compared to what I think the real number should be). The test would fail to identify 5 of the people with cancer, and it would say that 5 of the people without cancer have cancer. So overall it would misidentify 10 people. The coin flip would misidentify 500 people.

Amusingly in this example if you have a "test" that just says nobody has cancer it would also misidentify only 10 people :) I think this is why they are reporting true positive rate and false positive rate.

It looks like all the replies so far disagree, so I want to let you know you are not alone. I consider a lot of different languages a form of fragmentation.

To extend a naive view, I think it would be ideal if everyone can choose the languages they want to learn and use. This would make it a bit more like programming languages. There is concentration at the top if you want efficiency of communication, but also a lot of choices to explore. Of course this wouldn't work so well with human languages, since you need something to communicate with people around you. There is a little bit more choice if you decide to learn a second language or more.

By the way, some of this is already happening with globalization. I'd expect one's first language to be whatever used where they are raised. Their second language, if they choose to pick it up, is likely to be one of the popular ones. And the third on so on would be whatever interests them.

On a tangent, there is a Freakonomics podcast "Is Learning a Foreign Language Really Worth It?" that covers some of this. The distinctive conclusion I remember from it is, it's only worth it if the foreign language is English. I guess now or soon it could be Chinese, who knows.

Not exactly the same thing, but this reminds me of a style of speaking/writing that avoids using "to be" verbs. I don't remember the name and can't seem to find it on Wikipedia right now, but it's similar to what this article describes [1]. The crux of it is, you avoid framing things as more absolute and permanent than they really are. For example, you are not inherently bad at math, you are just bad at it in your current state you don't quickly solve problems people regard as "math". Or you are not inherently a bad person, you just did some specific things that hurt people.

[1] https://blog.penningtonpublishing.com/grammar_mechanics/how-...

I can't say I regret learning Elixir, but a coworker once said he thought I thought it was the worst programming language in the world :)

My biggest annoyance with Elixir is that the ecosystem seems to impose a lot of opinion on how things should be done, and sometimes actively makes it hard to do things differently. In some edge cases I couldn't do the easy thing because it's "wrong", and couldn't do the right thing because it was not yet implemented. I believe this is with good intention and is mainly a side effect of the relatively small and young community, as in many areas the de facto libraries are made by the same few people. I suppose this problem will get better as there are more libraries to choose from and/or more contributors to those libraries.

Another, milder source of annoyance for me is the lack of functional programming features in a functional programming language. To invoke a function that has been passed as a parameter you need a dot. No currying etc. Still, you can get things done and with these limitations it's harder to get yourself into a mess of functions being passed around (but not too hard if you try).

All in all, to me what Elixir brings to the table is more than enough to offset its annoyances. However when it comes to choosing Elixir, I agree with other comments suggesting to choose something the team is comfortable with.

I too have my share of reinventing the trash functionality :)

garbage-io has some features that scratch my own itches:

- Trash files with the same name without clashing - Delete things from trash directory base on deletion time and file size - Hide the deleted files/directories before moving them, in case moving them takes a long time (I later think this was a bit over the top...) - The smart deletion can also be used for e.g. ~/Downloads

I do feel that a better approach would be something that works alongside the trash functionality instead of replacing it, though.

https://gitlab.com/phunehehe/garbage-io

May I suggest Chromium :) I'm only half joking, I find the browser built-in PDF viewer better than most, and convenient because I already have it. The PDF viewer in Firefox seems to work nicely, too.

It's a funny coincidence. I've just gotten off a phone with a bank officer about a simple question "Is my card there yet?". It took 29 minutes, including a few minutes at the beginning talking to a bot before getting to a human. I'm being unfair and emotional, but right now I'm not sure if humans are really better.

How about an L-AGPL that so that the source of a component must be published without extending to the whole work?

Middle grounds exist though. The MPL is one that I like. It requires copyleft at the file level. However AFAIK it doesn't have the A in AGPL, i.e. it's pretty much like the BSD license if the software is a server application.

It certainly would be nice to have some more options.

ZALORA | Site Reliability Engineer | Singapore | ONSITE, REMOTE, VISA

The DevOps team at ZALORA is looking for an additional member.

Automation and availability will be your main goals. You will use Nix/NixOS to glue together a stack of Go, MySQL, PHP, RabbitMQ, Solr and more.

A code review is the deciding factor. You either send in an existing project, or implement our coding task. After that we'll have a call and optionally meet to sort out other details.

Apply at http://jobs.zalora.com/apply/lOd9Ir. I reply to all applications.

Other than integration with the rest of the Nix/NixOS ecosystem

Nix/NixOS is the big deal actually. NixOps is just icing on the cake. A NixOS installation is configured by building/copying over a system profile, and then activating it.

With just NixOS, you edit a configuration file on the server, then run a command that will build a system profile from that configuration and activate it.

With NixOps, you have configuration files on your workstation, and run commands to build the system profiles, copy it to the servers, and activate them. Of course you can do all of this without NixOps. It just makes certain things easier.

Puppet and others can do all of this, too. However state transition tend to be the weakest link (e.g. tell Puppet to provision a brand new server vs one that has run some other stuff, how sure are you that the resulting systems are the same?). Nix/NixOS takes care of that (most of the time anyway -- there are still things like data migrations that applications have to take care of).

ZALORA | Site Reliability Engineer | Singapore | ONSITE, REMOTE, VISA

The DevOps team at ZALORA is looking for an additional member.

Automation and availability will be your main goals. You will use Nix/NixOS to glue together a stack of Go, MySQL, PHP, RabbitMQ, Solr and more.

A code review is the deciding factor. You either send in an existing project, or implement our coding task. After that we'll have a call and optionally meet to sort out other details.

Apply at http://jobs.zalora.com/apply/lOd9Ir. I personally reply to all applications.

ZALORA | Infrastructure Engineer | Singapore | ONSITE, VISA

Additionally I'm helping another team find an Infrastructure Engineer. This role is heavy on AWS and its API. The job posting isn't out yet so for the time being please find my email address in my HN profile if you are interested.

ZALORA | Site Reliability Engineer | Singapore | ONSITE, REMOTE, VISA

The DevOps team at ZALORA is looking for an additional member.

Automation and availability will be your main goals. You will use Nix/NixOS to glue together a stack of Go, MySQL, PHP, RabbitMQ, Solr and more.

A code review is the deciding factor. You either send in an existing project, or implement our coding task. After that we'll have a call and optionally meet to sort out other details.

Apply at http://jobs.zalora.com/apply/lOd9Ir. I personally reply to all applications.