HNHacker News
TopNewBestAskShowJobs

jorams

4,053 karma · joined August 1, 2014

You can reach me at hn at joram dot io
submissionscomments
jorams··on No Cookie for You
They appear to be using a self-hosted analytics solution. Every page makes a request to collector.githubapp.com.
jorams··on Google is getting left behind due to horrible UI/UX
Note that FastMail allows you to add ~600 aliases to your account, choosing from a large list of domains.

I'd advise anyone to use their own domain, but those aliases can be a godsend.

jorams··on Salesforce Signs Definitive Agreement to Acquire Slack
For me there's a profile picture in the top right that opens an account dialog, from where a single tap switches to any other account. Do you mean something beyond that?
jorams··on Mozilla DNS over HTTPS (DoH) and Trusted Recursive Resolver (TRR) Comment Period
Ziggo and XS4all also have to block their IP addresses. Not sure if Ziggo has a page about this, but the one for XS4ALL is rather comprehensive: https://www.xs4all.nl/geblokkeerd/
jorams··on UI design for software developers. Part 1, Colors
If the result of that calculation is 9px for you, your browser's default font is set to ~7px. That's even smaller than Chrome's "Very small" preset of 9px, and significantly smaller than the normal default of 16px.

I'd say that's on you.

jorams··on Git is too hard
I'm not sure I see your point. The entire reason `git push --mirror` exists is to turn the remote end into a mirror of the local end. By definition that's a destructive operation. What would it do without a further --force?

If you just want to push all branches or tags you should use --all or --tags.

jorams··on Git is too hard
Yes, --mirror implies a level of force. The man page contains this:

"...locally updated refs will be force updated on the remote end, and deleted refs will be removed from the remote end..."

jorams··on MDN Web Docs evolves: Lowdown on the upcoming new platform
A big problem is that the "Jamstack" branding and the website make it deliberately unclear that "JAM" is an acronym. I can't even find it expanded on the site. Instead it contains relatively verbose explanations that never become clearer than the actual words they so desperately avoid.

It's Javascript, API, Markup. Put "pre-rendered" before "Markup" and you understand everything.

Maybe they do this because they really want to push the fact that you can serve the J and M from a CDN?

jorams··on Ninja: A simple way to do builds
Since the comment above that line says this:

> # some for loop with every file I need to build

It's safe to say that it's not a complete example. That said, the indentation levels are not random. These are multiline strings.

jorams··on Mobilizon – A free, federated tool for events and groups
The full versions of these illustrations have high resolutions:

https://framablog.org/wp-content/uploads/2020/10/2020-10-06-...

https://framablog.org/wp-content/uploads/2020/10/2020-10-08-...

https://framablog.org/wp-content/uploads/2020/10/2020-10-06-...

https://framablog.org/wp-content/uploads/2020/10/2020-10-06-...

https://framablog.org/wp-content/uploads/2020/10/2020-10-06-...

(Not sure if these are linked anywhere, but I just chopped the image size out of the URL.)

jorams··on PHP 8: Before and After
What would they use it for? The first 'static' means the method is a part of the class rather than the instances of that class. The second and third 'static' indicate late static binding, meaning they refer to the class being called, rather than the class defining this method.
jorams··on LocalCDN – an extension that emulates CDN to improve your online privacy
Two reasons:

1. It deliberately replaces some versions of libraries with different versions. That's a feature I could do without.

2. The use of integrity hashes on cross-origin resources breaks Decentraleyes[0], and it's not fixable without browser changes.[1]

[0]: https://git.synz.io/Synzvato/decentraleyes/-/issues/16 [1]: https://bugzilla.mozilla.org/show_bug.cgi?id=1419459

jorams··on Proton 5.13: A Massive Update
I don't think your distinction works. There's a very large group of people with relatively good computers (so they don't need something like Stadia) who can't really be considered pro either.

I count myself in that group, and Proton has been a godsend. It finally allows me to completely avoid my Windows partition (Windows 7, which isn't supported anymore), while keeping my large Steam library almost entirely functional.

jorams··on Arch Conf 2020 Streaming [video]
> Tiny official repos. You're going to have to rely on the user-submitted repos for most of your packaging needs. It's cool how easy it is to make a package and submit it to the AUR, but I don't love the idea of installing random user-submitted stuff for the bulk of my software needs.

Can you expand on this? My system contains a total of 20 "foreign" packages from the AUR and private sources, installed over a period of 5 years. It's certainly not even close to "most of my packaging needs", because I have 1267 "native" packages installed.

Some of these foreign packages could be in the official repositories, but most are modified or built-from-source versions of existing packages, software that is now in the repositories but wasn't when I installed it, or don't belong in the repositories at all.

jorams··on Benchmarking static website hosting providers
This article compares it to CDN services, which specialize in static file hosting. Static site hosting is just static file hosting with a different marketing strategy and behind-the-scenes workflow.

The real disappointment here is Cloudflare, which manages to be among the slowest despite their supposed focus on performance.

Google Cloud Storage manages to be significantly faster than Cloudflare, while serving files publicly is "just a feature" (like for S3, which trails the pack).

jorams··on FastCGI – The Forgotten Treasure (2002)
I'd say it has a tremendous amount of traction. One of the primary execution environments for PHP is php-fpm, which is PHP for FastCGI.
jorams··on In Defense of XML
> YAML has 22 ways to write booleans - no less!

I would argue that XML, in practice, has many more. Everything in XML is a string by default, and only an XSD can provide actual type information. Lots of things don't, and those that do often define their own boolean types.

jorams··on Toward a “modern” Emacs
I don't really get what you mean. Sure, setting up MELPA is a bit annoying, but after that trying a new package is trivial. You go to the package list and install the package, then you trigger whatever command you need.

I agree that fuzzy search is a great thing though, and I think something similar to Ivy should be included by default.

jorams··on Toward a “modern” Emacs
You can. By default it boots up with a menu bar and toolbar, with familiar buttons to open and save files. Most keys do exactly what you expect.

This does not affect the size of the userbase much. If your needs are that simple, just stick to any basic editor you're already familiar with.

jorams··on Blacklight – A Real-Time Website Privacy Inspector
Note that one of their two examples is wsj.com, which only serves news to paying subscribers and still includes large ad banners.
jorams··on Arm Officially Supports Panfrost Open-Source Mali GPU Driver Development
Nvidia is singled out for hatred on desktop, because everybody else has cleaned up their act quite a bit. ARM is practically irrelevant on desktop, so the fact that ARM only has closed-source options is just not that big of a deal.

ARM is very relevant on mobile, and on that front so much is closed that basically everything deserves plenty of hate. The GPU is not a frontier there.

jorams··on Update on Firefox Send and Firefox Notes
It's very confusing. The README there says:

> This project repository has no relation with the service at https://transfer.sh that's managed by https://storj.io. So far we cannot address any issue related to the service at https://transfer.sh.

But the popup on transfer.sh suggests emailing hello@dutchcoders.io.

jorams··on Cloudflare and the Wayback Machine, joining forces for a more reliable Web
How do you handle robots.txt? The previous incarnation of Always Online didn't care about robots.txt, while archive.org does.
jorams··on Cloudflare and the Wayback Machine, joining forces for a more reliable Web
It always has. If your site is publicly available and you don't disallow bots through robots.txt, they can crawl it at any time. Even if the site is "pre-launch", because that doesn't mean anything on its own.
jorams··on Emacs-Helm development is now stalled
> For some reason, neither helm, ivy or selectrum allows to open a candidate buffer / file in either the current buffer, a vertical or horizontal split window, like what I have grown an addiction for with fzf.vim.

I use ivy and counsel, and both counsel-find-file and ivy-switch-buffer offer the alternate action "other window" under M-o j. I'm not sure if that covers your entire use-case, but it works fine for me.

jorams··on Luau: Augmenting Lua’s Syntax with Types
Under 'Type arguments in function calls', they say C# and TypeScript can afford some cycles to disambiguate the following code:

    return someFunction<A, B>(x)
This is actually a case where TypeScript's promise:

> All valid JavaScript code is also TypeScript code. You might get type-checking errors, but that won't stop you from running the resulting JavaScript.

...is broken. The following JavaScript is perfectly valid:

    function f(something, other) {
        const A = 1;
        const B = 2;
        return something < A, B > (other + 1);
    }
    console.log(f(0, 0), f(2, 2));
If you run it in your browser you get 'true false' as output. Passing it through the TypeScript compiler produces the following:

    function f(something, other) {
        const A = 1;
        const B = 2;
        return something(other + 1);
    }
    console.log(f(0, 0), f(2, 2));
Trying to run that produces the error 'something is not a function'.

TypeScript can get away with things like this because such expressions are weird, rare, and mostly pointless.

The equivalent function in Lua would not be nearly as weird. It would simply return two booleans. There is no clear argument to be made here that the user actually meant a generic function call.

jorams··on Luau: Augmenting Lua’s Syntax with Types
> [Python] is embeddable easily via some helpers

You can embed Python, but making it safe to run untrusted code written by users will take enormous effort. Roblox is a platform for easily creating games and playing other people's games. They can't allow those games to pose a security risk to players' computers.

> Not sure how fast it needs to perform once embedded, apparently you know.

You're commenting this on a post that talks explicitly about wanting a faster interpreter than Lua 5.1. Nobody is switching from Lua to Python and getting better performance out of it.

jorams··on Vue.js Creator Evan You Interview
There is a small, simple ad in the top left, above the menu, but that's it. If all ads were like that and I had no privacy concerns, I would not even need an ad blocker.
jorams··on Carmack on not being a power editor user
> how often they get distracted or go down rabbit holes when tweaking editor config or using advanced features. I've worked with people who seem to spend half their day on this stuff.

> So while it can certainly be impressive to watch someone who has mastered their editor

I'd say anyone who spends a significant amount of time tweaking their editor while they should be working, outside of (infrequent) setup periods, has not mastered their editor (or is just slacking off). The entire point of setting this up is to make you more efficient.

jorams··on Scene bust triggered historic drop in ‘pirate’ releases
The fundamental thing to realize is that there are two kinds of people: those who want to have access to everything and those who want to own things. Most people are probably somewhere between the two.

You really don't need to get very creative, as the solutions already exist for music: Bandcamp and Spotify. Streaming services provide access to all music, as long as you keep paying. Bandcamp is pretty much perfect for buying the music you want.

I'm mostly in the second group, and if everything would be on Bandcamp I would end up buying a lot more. Top quality, hassle-free, DRM-free, for a reasonable price, with generous previews. Payment unlocks a download link, and an optional account allows you to maintain a collection. Everybody wins.

Music not being on Bandcamp is the easiest way to make me reconsider a purchase, and only offering it through streaming services is the easiest way to unlock piracy as a potential option in that consideration.

Other people like a streaming service, and both can and should exist in the same universe.

You'll never kill piracy, but it's very easy to be better. Just give the customer what they want. It doesn't have to be free. The industry should stop wasting so much time and money fighting illegal solutions to a problem they actively keep causing. It is much simpler and cheaper to just fix it.

← PreviousPage 20 of 28Next →