HNHacker News
TopNewBestAskShowJobs

endgame

5,540 karma · joined April 7, 2010

I care a lot about build systems, because nobody else seems to.
submissionscomments
endgame··on Memories of .us
Absolutely fascinating history. I thought I knew DNS fairly well and I had no idea that locality-based domains were even a thing.

Ah, what happened to the site design? It used to have a lovely background and monospace text.

endgame··on Roblox is a problem but it's a symptom of something worse
And one feeds the other, in that it's hard to raise a kid who can play constructively outdoors if all of his friends are hooked on Roblox.
endgame··on Freer Monads, More Extensible Effects (2015) [pdf]
This paper is up to Oleg's usual high standard, and is a very important step to read if you're catching up on the history of effect systems in Haskell.

As a user, I think effect libraries in Haskell trade off between five main constraints:

* Typelevel wizardry

* Boilerplate

* Performance

* Ability to handle "higher-order" effects (e.g., `bracket`)

* Safety (e.g., not accidentally leaking effects beyond their scope)

The most compelling libraries I've seen from the industrial perspective are the "IO-wrapper" libraries like `cleff`, `effectful`, and `bluefin`. These libraries tend to give good performance, can handle higher-order effects, but trade off a little safety to get the typelevel stuff down a bit. Of these, I currently favour `effectful` but am keeping an eye on `bluefin` (which is very close to `effectful` but with explicit handle-passing). The explicit handle-passing in `bluefin` seems to get the typelevel down a bit more in exchange for asking the user to write a little more boilerplate to explicitly pass handles around.

endgame··on OOP is shifting between domains, not disappearing
Ancient wisdom: closures are a poor man's objects; objects are a poor man's closures.

https://people.csail.mit.edu/gregs/ll1-discuss-archive-html/...

endgame··on Rebecca Heineman has died
NYT (opinion), 2017: https://www.nytimes.com/2017/02/14/opinion/dont-quote-them-o...

Forbes, 2019: https://www.forbes.com/sites/yuwahedrickwong/2019/04/19/econ...

NPR, 2009: https://www.npr.org/2009/10/26/114163098/a-spoonful-of-socia...

LSE Economics Society essay question, 2018: https://www.tutor2u.net/economics/blog/lse-economics-society...

I also clicked through ten pages of Google search results for "capitalism is the worst economic system, except for all the others", each of which showed the literal quotes in the preview excerpts, at which point I became too bored to continue.

endgame··on Blasting Yeast with UV Light
Parallel construction, but to work around GMO labelling as opposed to LEOs revealing their sources.
endgame··on How I fell in love with Erlang
It is a fantastic read. I find myself quoting section 5.3.1 on Well-Behaved Functions (WBFs) quite often, especially rule 2: "If the specification doesn’t say what to do raise an exception."

This really helps systems from muddling along into bizarre states, where things are going awry and nobody knows why.

endgame··on Time to start de-Appling
Other countries have very similar regimes these days.
endgame··on Ask HN: My family business runs on a 1993-era text-based-UI (TUI). Anybody else?
I think this is one of the deepest problems with modern UIs - event delivery is no longer reliable. You type "abc" and only "ac" gets delivered to the application, or "b" ends up sent to another window. Maddening.
endgame··on Internet Archive's legal fights are over, but its founder mourns what was lost
It was an absolutely bone-headed poke-the-bear move and we should count ourselves lucky that it was only a chunk of the library and not the whole archive that got nuked. IA holds priceless and irreplaceable data, and while the library initiative was a well-intentioned move during the pandemic it was way too radical for the keepers of our shared digital history.
endgame··on Linux gamers on Steam cross over the 3% mark
There have been a few mentions in this thread of portable gaming PCs like the Steam Deck and the ROG Ally. Has anyone here tried using them as a primary machine? I've been thinking that since I travel with a portable keyboard and mouse anyway, maybe one of those machines might not be too bad for actual work?
endgame··on Lenses in Julia
Lenses also let you take interesting alternate perspectives on your data. You can have a lens that indexes into a bit of an integer, letting you get/set a boolean, for example.
endgame··on Keep Android Open
As I said in the other thread:

Australian users of alternative app stores should make a complaint to the ACCC: https://www.accc.gov.au/about-us/contact-us-or-report-an-iss...

In the past, they forced Steam to implement proper refund policies, and they are currently suing Microsoft about the way subscribers were duped into paying more for "AI features" they didn't want.

endgame··on Avoid 2:00 and 3:00 am cron jobs (2013)
Not viscerally, but this was meant to be an obviously unserious proposal.
endgame··on Avoid 2:00 and 3:00 am cron jobs (2013)
I did, thank you.
endgame··on What we talk about when we talk about sideloading
Australian users of alternative app stores should make a complaint to the ACCC: https://www.accc.gov.au/about-us/contact-us-or-report-an-iss...

In the past, they forced Steam to implement proper refund policies, and they are currently suing Microsoft about the way subscribers were duped into paying more for "AI features" they didn't want.

endgame··on Avoid 2:00 and 3:00 am cron jobs (2013)
Everyone carries a GPS in their pocket; why not use it for good? We can have people's clocks continually update so that 12:00 is solar noon at their current location each day, and avoid the jarring transitions into and out of DST.

Don't ask what people living in the high altitudes will do - I'm still working on that.

endgame··on Counter-Strike's player economy is in a freefall
The first one was because the Australian Competition and Consumer Commission (ACCC) took them to court, but yes, they're both very good features.
endgame··on FSF announces Librephone project
My bank is migrating online banking to an app-only platform. I could see attestation following very shortly afterwards.
endgame··on Scheme Reports at Fifty
I had Ed's posts on hand, but I don't think that's true. It works at mortal levels too. If you write `map f (map g someList)`, laziness means you'll materialise at most one cons of the intermediate list (although GHC will probably fuse it outright). A strict language would materialise the entire intermediate list, and mortal developers would have to know to write `map (f . g) someList` to avoid that.

This all assumes that you're willing to buy into a language that does immutable data structures by default, and are willing to rely on the work of people like Okasaki who had to work out how to do performant purely functional data structures. If you're willing to admit more mutability (I'm not), then you sit at different points in the design space.

endgame··on Scheme Reports at Fifty
If you have immutable data and want code reuse, you need laziness otherwise you give up a lot of performance. In Haskell, a careful choice of implementation for `sort` means that `take 10 (sort someList)` will only do enough work to return the first ten elements.

Having laziness by default means that functions compose properly by default; you don't have to worry about libraries providing an interface to your chosen incremental streaming library or whatever. I've seen friends working in strict dialects of Haskell forced to write out each combination of list functions by hand because otherwise they'd have to materialise large intermediate data structures where regular lazy Haskell simply wouldn't.

Ed Kmett has a couple of great posts about the value he's realised from laziness:

https://www.reddit.com/r/haskell/comments/l98v73/can_you_sha...

https://www.reddit.com/r/haskell/comments/5xge0v/today_i_use...

endgame··on FSF announces Librephone project
It becomes much harder to force attestation on people if there's a significant user base that runs alternative operating systems.
endgame··on Imgur pulls out of UK as data watchdog threatens fine
In a vacuum, the policy had really high opinion polling.

In reality, the technical implementation will undoubtedly be a privacy and surveillance disaster.

In a vacuum, people thought "social media" meant "Instagram and TicToc and Facebook etc."

In reality, the eSafety commissioner thinks "social media" includes platforms like GitHub. Yes, really.

https://www.abc.net.au/news/2025-09-24/digital-dilemna-socia...

endgame··on Britain to introduce compulsory digital ID for workers
Whizz-bang cryptographic solutions to this class of problem (digital ID, electronic voting, etc) have at least three major problems that I consider fatal:

1. The contract to build the thing will go to the lowest bidder, who is all but guaranteed not to do any of it correctly (cf. the UK Post Office scandal and Fujitsu's role in it).

2. The public has no guarantee that it is implemented in the cryptographically secure way, or that is is ONLY implemented in the cryptographically secure way (e.g., either by accident or through malice the system leaks info it shouldn't).

3. The overwhelming majority of the public are not trained in nearly enough computer science to understand "no actually this system isn't a total privacy nightmare" (assuming that it's actually implemented securely).

endgame··on My Deus Ex lipsyncing fix mod
How does it look worse than Deus Ex: The Recut Remastered, which came out six years ago?

https://www.youtube.com/watch?v=xmOCsiZgAbg

endgame··on Everything that's wrong with Google Search in one image
The FBI agrees with you: https://www.pcmag.com/news/fbi-recommends-installing-an-ad-b...
endgame··on YAML document from hell (2023)
I wish I had a good answer for you. I've been dissatisfied with Dhall, Nickle, Cue, and possibly others. Dhall's type system is both too strong (you have to plumb type variables by hand if you want to do any kind of routine FP idioms) and too weak (you can't really _do_ much with record types - it's really hard to swizzle and rearrange deeply nested records).

On top of that, the grammar is quite difficult to parse. You need a parser that can keep several candidate parses running in parallel (like the classic `Parser a = Parser (String -> [(a, String)])` type) to disambiguate some of the gnarlier constructs (maybe around file paths, URLs, and record accesses? I forget). The problem with this is that it makes the parse errors downright inscrutable, because it's hard to know when the parse you actually intended was rejected by the parser when the only error you get was "Unexpected ','".

Oh, and you can't multiply integers together, only naturals.

Maybe Nix in pure eval mode, absurd as that sounds?

I think the best thing for tools to do is to take and return JSON (possible exception: tools whose format is simple enough for old-school UNIX-style stdin/stdout file formats). Someone will come up with a good functional abstraction over JSON eventually, and until then you can make do with Dhall, YAML, or whatever else.

endgame··on The allure of new languages vs. the necessity of problem-solving
But the large volume of copyleft does make it much easier for all the BSD/MIT/X11/ISC ("permissively licenced") stuff to show up in e.g., enterprise Linux distribution releases, under the "we have to do it anyway for all these other packages, so we may as well do it for all the FOSS code that we use" type of argument. There was a kerfuffle with RHEL a couple of years back, where they tried to provide sources only to paying customers. Not sure where that ends up.
endgame··on Scammed out of $130K via fake Google call, spoofed Google email and auth sync
This is the world we're building for everyone, if passkeys + attestation get baked in everywhere and the bigtechs hold everyone's authentication keys.
endgame··on Denmark's Justice Minister calls encrypted messaging a false civil liberty
I think that the cleaner argument is that the ability to have private conversations is a fundamental human right, and in the current technological environment, that means strong encryption.
← PreviousPage 2 of 34Next →