Recent submissions

Comment · 5 days ago
Comment · 11 days ago
I say this half tongue in cheek, but maybe we need a new law like "Greenspun's Converse": Any sufficiently large dynamically typed codebase contains an ad hoc, informally-specified, gradually-adopted, optional implementation of half of Haskell’s type system.
Comment · 1 month ago
Yeah, I think the article assumes the employees doing the work have the leverage to implement the changes themselves. How often is that the case?

>> "The requirements changed three days before launch."

> Of course they did! What happens when requirements change inside the launch window?

What answer is wanted here? "Moving forward, we'll ignore the VP of Marketing's last minute 'must haves'"?

Comment · 1 month ago
Your callout just gave me a great idea: the iPhone Duo has three screens. Depending on orientation, the front screen could be used to show ads to others!
Comment · 1 month ago
>I don't think I can recall a time...

I appreciate that there is a _ton_ of different experiences out there when it comes to solving problems, but I _have_ encountered exactly the case I was describing, which is what led me to my original question. Isn't the fact that it was a checked exception that led you to "consider retrying a network failure, you immediately need to start thinking about distributed systems failures, idempotency, and all that good stuff" worth it as opposed to an unchecked exception you may not realize is being thrown?

Comment · 1 month ago
>in places where it's pointless to check, like IOException

Can you explain why this is pointless? In my mind, this being a checked exception would hopefully be a hint that I should think about this failure-case and make an explicit decision whether to handle it or not. Network connection failed? Maybe I retry. Maybe I store that data somewhere else as a fall back. Isn't this similar to Go programmers needing to check if err is not nil?

Comment · 2 months ago
Exactly. I've been hosting a site from a spare M1 Macbook Pro with Ngrok. An equivalent bare metal server would be much more expensive.
Comment · 2 months ago
Tcl brings with it some other ambiguity when serializing though.

    {a 1 b 2}
Should the above be serialized as a dict, a list, or a string (ignoring the various possibilities of treating ints as strings themselves):

    {"a": 1, "b": 2}
    ["a", 1, "b", 2]
    "a 1 b 2"
Comment · 3 months ago
But _worse is better_.
Comment · 3 months ago
Comment · 3 months ago
I know Racket was reworked to build upon Chez Scheme several years ago. If the HN migration to CL was due to performance reasons, I wonder if sticking it out and waiting for the Chez version of Racket would have paid off.
Comment · 3 months ago
I think what the other comment is getting at is that you're essentially leaving footprints behind on various servers and that information could be used to narrow down who you are, where you work, etc. For example, if you used the same key pair for a work machine at the big social media site example.com as you did late.sh, they could probe example.com's machine and see that you'd been there.
Comment · 3 months ago
I'm surprised there's no call out highlighting Common Lisp and Clojure's "liveness" compared to Racket (and Scheme). Racket is "batch compiled" wherein CL and Clojure you're editing a live image.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton