HNHacker News
TopNewBestAskShowJobs

slooonz

416 karma · joined April 30, 2018

submissionscomments
slooonz··on Types are a basic tool of software design (2018)
Trailing commas actually have an important role.

Let’s say you have some code :

  const foo = {
    x: 1,
    y: 2,
  };
and you want to add a field :

  const foo = {
    x: 1,
    y: 2,
    z: 3,
  };
Without trailing commas, the diff is

  - y: 2
  + y: 2,
  + z: 3
With trailing commas :

  + z: 3,
The second diff is actually much clearer at what’s happening.

This is why it irritates me when people forget the trailing comma. It’s not a problem in the moment. But I know it will be a small but avoidable cognitive burden on the next PR (wait, why did "y" changed ? Oh, right, it didn’t).

slooonz··on Systems ideas that sound good but almost never work
"Let’s just cache this slow call"
slooonz··on Derivatives don't always act like fractions (2021)
Yes, exactly the explanation I looked for, thank you !
slooonz··on Derivatives don't always act like fractions (2021)
That’s just the standard partial derivative in multivariable calculus. This one I have no trouble to understand. My question is about "at constant something" as used in thermodynamics, where "at constant something" is clearly doing more work than just "partial derivative". What work ? How ? Damned if I know.

Consider f(x,y,z), let’s say f(x, y, z) = x^2 + 3y^3 - e^(-z). What’s the difference between "the partial derivative of f with respect to x" and "the partial derivative of f with respect to x at constant y" ? The first one is already at constant y !

In standard multivariate calculus, the partial derivative of f with respect to x , as you explained, is always "at constant y and z".

In thermodynamics, you can say things like "partial derivative of pressure with respect to volume" and add "at constant temperature" or "at constant entropy" and get different results. What ? Why ? How ?

slooonz··on Derivatives don't always act like fractions (2021)
I still don’t understand what "at constant something" means. I mean formally, mathematically, in a way where I don’t have to kinda guess what the result may be and rely on my poor intuitions and shoot myself continually in the foot in the process.

Does someone has a good explanation ?

slooonz··on Bluesky is breaking the rules in the EU
So… EU regulations are about "protecting users privacy"… but requires you to know how many of your users are EU-based, and publicly report it ?

I don’t know about you, but "country of residence" is the kind of private information but I’d rather not be collected unless good reasons. Requiring to collect it seems rather antithetical to "protecting user privacy".

slooonz··on I was banned from the hCaptcha accessibility account for not being blind (2023)
How does that works for, say, Chromium or Firefox on Linux ?
slooonz··on Cryptographic Right Answers: Post Quantum Edition
> Meanwhile everything from ubuntu's apt-get to my connection to HN is secured with 2048-bit RSA - an algorithm invented in 1977 and in widespread use since at least 1995.

That’s a bit misleading, considering RSA is only used for certificate verification. Key exchange and symmetric encryption is handled by somewhat more recent algorithms (ECDH / AES-GCM).

slooonz··on US Air Force avoids PFAS water cleanup, citing Supreme Court's Chevron ruling
As French, our dual-branch judicial system for a long time seemed very weird to me — I didn’t really see the point of it. I must thank the US to provide a clear example why it is in fact so useful.

In France, the law would be typically written as "The water must be safe to drink. The list of banned chemicals and safety thresholds is to be set by the Supreme Court of the Administrative Branch" (Conseil d’Etat). That way you still do have a judicial oversight of agencies, but with a judicial branch which has more adapted procedures to those issues (for example you don’t have to wait for a case to go all the way up to the Supreme Court to adjudicate — it is literally part of the job of the Supreme Court of the Administrative Branch to be proactive in those matters).

slooonz··on The Imminent Student-Loan Disaster
Aren’t they the same thing ?
slooonz··on Ask HN: Why do message queue-based architectures seem less popular now?
Presumably you have backups for both the primary database and the message queue (or maybe no backup for the later). If a disaster happens, requiring you to restore backups, how confident are you that your system as a whole is behaving as expected (no events acknowledged but not processed / no events processed twice).
slooonz··on Why SMBs Don't Deploy SSO
"Your issue is coming from a misconfigured SSO. We disabled SSO on your account, you can login with the standard password reset flow. You can reenable SSO once you have fixed the issue."
slooonz··on Ask HN: Why do message queue-based architectures seem less popular now?
What the data consistency story around crashes ? Backup/recovery ?
slooonz··on Show HN: I built a backend so simple that it fits in a YAML file
Also, you should consider migrations to be the first-class citizen and entities to be derived on it. On our system, we have

migration "create-users-table" { create-table "users" { column "id" "number" dbtype="increments" } }

migration "add-user-last-device" { alter-table "users" { column "last_device" "string" } }

This implicitly defines an "User" entity which has two fields, "id" and "lastDevice". But now we can also generate migrations (in our case, knex migrations). It’s harder and less reliable to go the other way, starting from current database schema + current description to migration.

slooonz··on Show HN: I built a backend so simple that it fits in a YAML file
I have made a similar solution in-house. I kinda agree with the YAML nay-sayers. I settled on KDL instead as the description language (https://kdl.dev/) ; maybe give it a try ?
slooonz··on Sandboxing all the things with Flatpak and BubbleBox
> Each app should have a clean environment and ideally you'd pick and choose what files/folders you want to give the app access to while it is running, and not let the app builder decide for you. Also, the user should pick and choose where to mount directories if they choose to do so

That’s… what bubblebox is ?

slooonz··on Sandboxing all the things with Flatpak and BubbleBox
Shameless self-plug : https://sloonz.github.io/posts/sandboxing-1/

Which you can see it as the longer form documentation of bubblebox (explaining in excruciating details how to sandbox desktop applications with flatpak).

(not affiliated to the author, written prior to bubblebox — but I’m happy to see that someone took up the job of making a true solution of implementing the ideas I laid out in my blog posts series !)

slooonz··on XZ backdoor: "It's RCE, not auth bypass, and gated/unreplayable."
What do you mean ?
slooonz··on U.S. sues Apple, accusing it of maintaining an iPhone monopoly
> Imagine a car manufacturer (say Tesla, who has an edge over others much like Apple) could decide where you can go and who your passengers could be?

That’s called public transit.

slooonz··on Show HN: BewCloud is a simpler alternative to Nextcloud written in TypeScript
Have you given a try to cozycloud ? It’s the first on my radar for when I’ll find time to tinker with a personal cloud.
slooonz··on Programs written in Golang have no secrets
It’s a way of saying "I decline any responsibility if anyone uses this tool for malicious purposes".
slooonz··on Microsoft is driving users away
> they are still light years away from providing a good user experience

I really don’t get this. All modern desktop environment (OSX, Windows, KDE, Gnome) looks like very similar in terms of user experience quality to me. All are different, true, which is why I can understand will exists. But I will very hard pressed to justify "actually, x is better than y" (yet alone "light years away"), for any pair (x, y).

Can you name just three deal-breakers, things so huge that they deserve that "light years away" judgement ?

slooonz··on XL: An Extensible Programming Language
> you train your brain to ignore the parens and look at the indentation instead pretty quickly

But I don’t want to train my brain to ignore useless syntactic noise, I want my brain to be guided by helpful syntactic guides.

slooonz··on XL: An Extensible Programming Language
IMO, there’s a wide unexplored design space between the minimalism of Lisp and richness of other languages. A programming language inspired by something like KDL (https://github.com/kdl-org/kdl) has the potential to be in a very sweet spot between the two. "Everything is a node" instead of "everything is a list" is only slightly more complicated, but also vastly more readable that a soup of parenthesis.
slooonz··on You can't do that because I hate you
Nothing is looking for exit. The REPL is calling repr(result) to show the result of the expression to the user. repr(exit) is the string "Use exit() or Ctrl-D (i.e. EOF) to exit". You _really_ don’t want repr(builtin) to have a side-effect like terminating the program.

Stop being toxic and patronizing towards open-source developers out of ignorance.

slooonz··on Data scientists need to learn about significant digits
> Yes, you have 10,000 samples and properly classified 5,124 of them so your mathematical precision is 0.5124

That’s the point. That’s the correct usage of significant figures. Your inputs have significant figures ; it determines exactly the significant figures of your output. Significant figures have nothing to do with things like sampling variance.

What you’re looking for is not significant figures, it’s confidence intervals.

slooonz··on Databases are the endgame for data-oriented design
The biggest problem with the relational model is that it’s buried under the dirt that is SQL.
slooonz··on Databases are the endgame for data-oriented design
> I think that people perceive databases to be slow, not because they are slow, but because they often interact with them in the context of persisting data to disk, from across a network, by passing strings back and forth which must be parsed, compiled and executed. If you’ve ever optimized a program, you know that I just listed pretty much the slowest operations you can do on a computer.

I’m sorry, but the difference between "databases are slow" and "the only way I can interact with databases is slow" is only pedantics. I understand that, as a database developer working hard to squeeze every bit of performance possible this is frustrating, but as a developer I couldn’t care less about the difference.

slooonz··on Argentina elects 'shock therapy' libertarian Javier Milei as president
The entirety of the European Union changed their national currencies to a new one, from scratch (no prior partial euroization), essentially overnight, in 2002. It’s definitely doable, if properly planned.
slooonz··on ChatGPT’s system prompts
Current date being correct is the best indication.
← PreviousPage 2 of 5Next →