HNHacker News
TopNewBestAskShowJobs

tombert

26,251 karma · joined November 12, 2015

Software person.

Feel free to email me at hn [AT] clobberella [DOT] com, however to prevent spam, please use the following template for the subject line:

    HN - <your HN username> - <question/topic> 
I enjoy receiving emails from other HN members, however there are too many spammers and bots now that I have to impose rules like this. If you do not follow this template then I will not respond back to your email.

I occasionally blog at blog.tombert.com.

NOTE: While it's not too hard to find personal information about me, and I don't even have a problem with you doing that, I do ask that you refrain from posting anything about it in reply to my comments. I don't want a strong correlation between my real name and my HN content.

My opinions are my own and do not reflect any views or positions of my employer.

meet.hn/city/40.6526006,-73.9497211/Brooklyn

submissionscomments
tombert··on Pirating the Pirates
The home-computer world is especially interesting for old games. If something made it to a Nintendo or Sega console, it's probably very well-preserved, but I'd be surprised if even 1% of all video games made were released on consoles.

There's an unfathomable number of games that were released on the Commodore 64, Amiga, Atari ST, and most famously DOS that were made by one or two people, self-published, and have now completely fallen into obscurity to a point where it's not 100% clear who owns the copyright and who to give money even if you wanted to, which has led to the "probably-illegal-but-not-really-enforced" term of "Abandonware".

I honestly kind of think that Abandonware should be codified into law in the same way that trademarks are; if you're not actively giving me a legitimate way to buy your game then I don't think it should be illegal for me to get it illegitimately.

tombert··on 13 Months Sober (2025)
I am fortunate enough to where alcohol has never been much of a vice for me; I never got to a level that anyone would call me an "alcoholic" though I think I was getting a little close to that after I had a pretty bad breakup when I was 22.

About three years ago I was diagnosed with sleep apnea and decided that that was as good an excuse as any to draw a line in the sand and stop drinking for good. It's not like alcohol is good for me, and I also kind of realized that I only ever enjoyed being drunk about 1/10th of the time. The remaining 9/10th I feel like I either just get really sleepy or really sad.

I had exactly one drink in 2024 during Halloween, but other than that I haven't had anything since September of 2023. I don't really miss it, and quitting alcohol took very little effort on my end. Quitting caffeine on the other hand...

tombert··on Self-Hosting on the Dark Web
I thought about doing this back when I was self-hosting my blog, purely because I thought there would be a neatness factor to being able to honestly say "I have a site on the dark web".

I eventually moved the blog to Cloudflare Pages primarily because I wanted to use Cloudflare Workers to handle the comments, though I have still considered dual-publishing it just to still say I've done it.

tombert··on What makes Lisp difficult to read?
I'll repeat what other people here have been saying: I don't think Lisp is actually "hard" to read, in any objective sense.

It's "difficult" to read because it's different that other languages, but I think some of those differences actually improve readability once you understand the language. The forced use of parentheses everywhere guarantees that precedence is never ambiguous, for example.

tombert··on On caring for user data: NeoVim caused Vim undo files to be deleted
Vim is good enough now. The reason I switched to NeoVim in like 2015 is because it had async plugin support. With vanilla Vim at the time, if you had a lot of plugins it could get pretty slow and stuttery pretty quickly.

Vanilla Vim added it in 2016 I think, but by that time I had already fully switched to NeoVim and it didn't seem worth it to me to switch.

tombert··on In an $80 motel room, a discovery to shed light on the origins of life
I just stayed in an $80 motel room myself and I also think I might have also discovered a new form of life in the showers.
tombert··on Alan Kay's answer to “Did the ENIAC have a BIOS”?
Man I didn't even realize that Quora was still around, let alone prominent people still answering questions on it. I deprioritized it in my Kagi searches months ago and even then I didn't notice that much of a change in the quality of my searches.
tombert··on Go Concurrency Distilled
I honestly don't think that that's why the language is annoying though.

"Avoid success at all costs" has always meant (in my mind) to mean "we will prioritize doing things the 'right' way instead of doing things to appeal to corporations". That's fine, I'm all for doing things correctly, but I think a lot of Haskell's bullshit isn't because of that.

It's a common complaint but it's common for a reason: the fact that records couldn't contain the same field names was really stupid. Apparently in the 90's the Haskell devs couldn't fathom two different types both having a field called "ID" or "name". How does allowing multiple objects to have an overlapping field name affect purity? Plenty of other languages, some of which are even more mathy than Haskell, have managed to pull this off (e.g. TLA+). Could it be because records/structs are really just a shitty hack around tuples tacked onto the language? Yes, Lens fixed hat particular problem with Template Haskell, and now there's yet another GHC extension to more or less work around it, but doesn't change the fact that I think it was something actively bad and it wasn't because of "purity" reasons.

tombert··on We Should Be Able to Change Our Languages
At the risk of being a bit of a douchebag, it seems like nearly every tech opinion piece I read now boils down to "things used to be hard but they aren't anymore because LLMs can understand things faster than we can, so can ignore/change fundamentals!"

I didn't really find the argument convincing the first time and I don't really find it convincing now.

That said, with regards to macros, I actually do agree that the fear against them is broadly overblown. I have seen scary terrible horrifying macro soup in Clojure, but that has generally been outlier cases. Something like core.async abuses the hell out of macros, and despite that I think it very often increases readability and understanding of the language.

tombert··on Go Concurrency Distilled
I don't dispute the coolness of any given Haskell feature. Haskell does have a lot of really neat features, but that doesn't mean that the language is fun to use.

C++ also has a lot of really cool features but I also do not enjoy writing it, actually for similar reasons as Haskell (though I don't think Haskell is nearly as irritating as C++).

> of course hand-writing lenses is just one line anyways

The lenses themselves aren't hard to write; I was referring to the annoying quirk of Haskell where records couldn't have the same field names. Lens has a nice helper macro `makeFields` so that you could more or less automatically have the generated lenses have the clashing names.

To be fair it actually always worked fine for me but it always felt janky until `DuplicateRecordFields` was released.

tombert··on Show HN: Reladraw – A diagram language where you decide where to place things
You stole my planned project for next weekend! I was actually planning on doing something very similar to this.

I'm glad you beat me to this; I think what you made is likely better than what I would have produced.

tombert··on LA Metro has some of the slowest escalators on Earth
Sorry, which "definition" are you pulling this from?
tombert··on Promising discoveries about the potential for life on one of Saturn’s icy moons
I am all for space exploration, but just in the interest of fairness, I would be surprise if the innovations for the entirety of space exploration approaches even 10% of what the US military has developed.
tombert··on Promising discoveries about the potential for life on one of Saturn’s icy moons
My honest reason (and this is coming from a guy with no stake in the game or significant physics or biology knowledge) is that it would just be cool as fuck, and that exploration is valuable in itself.

I'll acknowledge that that is wishy-washy language, but that's kind of my point. I'm not sure I can point to an objective "good" that comes out of it, but I also don't know that that's the norm for these kinds of things either. It might have been hard to say that going to the moon was an objective "good" outside of one-upping the Russians, but I do think it's good that we did it, even if I don't really know how to quantify why.

tombert··on Modern Object Pascal Introduction for Programmers
When I was first learning to program, I started using the free Borland Turbo C++ compiler [1]. I had managed to get subscribed to their newsletter that seemed very insistent that Delphi was going to be the future for desktop software. Awhile later, I found out that "Spybot – Search & Destroy" was written in Delphi, so I figured it might be fun to play with.

So play with it I did. I hadn't used Visual Basic at the time, so the entire idea of "drag and drop" GUIs was kind of amazing, and I even kind of ended up liking the language.

I wasn't able to get any kind of OpenGL stuff working with it, so I ended up going back to C and I really haven't touched the language since, but I kind of feel like I should at some point just to finish off that loose thread in my education.

[1] I actually don't remember if that was proper freeware or if I had gotten it cough unofficially free...

tombert··on Go Concurrency Distilled
The concurrency design in Haskell is cool, though I gotta admit that I don't find it much fun to write.

It's not because the language is "hard". I remember when I first learned Haskell a million years ago I thought it was the coolest thing ever because I had never seen anyone work at that abstract of a level before, especially in a compiled language. I got to understand the theory well enough and I know how to write a program with it, but the entire language kind of feels slapped together to me. Every time I've written anything in Haskell, I feel like I have to do a million compiler extensions, or rely on third party libraries' liberal use of Template Haskell (e.g. Lens) to make the language feel anywhere near "modern".

Yes yes yes, I know this is a complaint about GHC, not "Haskell", but given that GHC is basically the only Haskell compiler that gets serious use I don't think it's weird to conflate the compiler and the language.

tombert··on LA Metro has some of the slowest escalators on Earth
"Uncivilized"? People are in a hurry. The escalator moves slow. It seems civilized enough to me.
tombert··on Excel now supports multiple values in a single cell
There are a few people here who said they've smuggled JSON into Excel sheets, so I guess a few people! Never occurred to me, but as I said I'm only a little better than "novice".
tombert··on Ask HN: Who's still keeping a DOS machine up because the business depends on it?
Just another program poking memory it’s not supposed to. Not even necessarily maliciously.
tombert··on Excel now supports multiple values in a single cell
Interesting.

I wouldn't consider myself a "pro" Excel user. I think my comprehension would be on the higher end of "basic", or maybe the lowest end of "intermediate".

That said, in all the years I've used spreadsheets, I guess I've never really thought I needed more than one value in a cell. I never really seriously considered putting JSON or something in there, and have been ok with just using more cells instead (especially since Office 2019 when they added dynamic arrays that allowed spillover).

tombert··on Excel now supports multiple values in a single cell
Even as a programmer I find Excel pretty useful for anything involving numbers. The fact that everything is reactive allows for very fast iteration when testing stuff.

I wouldn't necessarily want to maintain a really complicated spreadsheet but I stop using spreadsheets once it gets anywhere near "complicated". It's still valuable for what I use for.

tombert··on One Piece of Flock Camera Data Put This Innocent Woman in Jail for 13 Days
I think there's a combination of selection bias and survivorship bias with bad cops.

When it is made pretty clear that as a cop you won't face consequences for your malicious and/or incompetent actions, you're going to select for people who find that very appealing. Similarly, the people who don't like that kind of system might leave, allowing for a reinforcement the malicious and/or incompetent behavior.

tombert··on Ask HN: Who's still keeping a DOS machine up because the business depends on it?
I find it deeply upsetting that anything important for a nuclear power plant is using an OS without protected memory.
tombert··on Dutch governments builds alternative for Microsoft based on NixOS
Yeah, there’s no VBA support anywhere. LibreOffice has their own scripting thing, and it works ok but it’s not compatible with the VBA and VBA stuff broadly doesn’t work there.

Even without the VBA though, it’s missing basically any feature added in 2019 like Lambda and filter and dynamic arrays.

I wouldn’t consider myself a power user, I would say I am a “high level basic user”, and even I have noticed the shortcomings. And this is also coming from a dude who very much wants a FOSS thing to succeed over Microsoft.

tombert··on Dutch governments builds alternative for Microsoft based on NixOS
Agreed.

Valve is making desktop computers now; maybe the next thing they could improve is LibreOffice to try and appeal to businesses.

tombert··on Dutch governments builds alternative for Microsoft based on NixOS
Both Apple Numbers and Mathematica still depend on a proprietary software package from a for-profit company though.

I think the only way we can actually solve the problem is to get a FOSS product up to snuff with Excel. I use Julia if I need really elaborate number crunching, but I don’t view it as a substitute for Excel; the interactivity of spreadsheets is really useful, especially when you’re actively developing stuff.

tombert··on Dutch governments builds alternative for Microsoft based on NixOS
Yep! It actually made the front page of HN a few days ago :)

It supports Office 365 and Office 2024 Home works as of about two days ago.

I think it would require very little if any effort to get Home and Business working but the license for that was too expensive (though pull requests are welcome!)

Currently limited to stuff that can be activated on Microsoft’s website. I tried very hard and was ultimately unsuccessful at getting Office 2024 Pro Plus working from a gray-market key I bought on Groupon, because the MAK activation stuff appears to depend on a lot of stuff that Wine/Proton doesn’t implement. Again, pull requests are welcome if someone here figures out how to do it.

https://github.com/Tombert/office365_flake

tombert··on Dutch governments builds alternative for Microsoft based on NixOS
Yeah, especially Excel.

LibreOffice Sheets doesn’t compete with Excel 2024, it competes more with Excel 2003. Granted, this is fine for a lot of (most?) people but it’s still not a “replacement” in my mind.

I ended up just building a Nix Flake to properly run Excel. At least then the operating system itself isn’t MS.

tombert··on Dutch governments builds alternative for Microsoft based on NixOS
It’s also the easiest if you want to make your own “distro”.

A “distro” is ultimately just a prebuilt configuration.nix file. NixOS itself even has tools to provide ISOs and QEMU images based on the build.

tombert··on Dutch governments builds alternative for Microsoft based on NixOS
No argument there, but annoyingly since they killed Skype (it’s own lovely pile of garbage and spyware), the only thing my parents will use to chat online is Teams.

I have tried to get them to use Discord or pretty much anything else, but they have been unreceptive.

I am on Linux and so I just use the browser version, which at least sandboxes stuff for me, I think.

← PreviousPage 6 of 34Next →