HN user

tombert

25,303 karma

Software person.

Feel free to email me at hn [AT] clobberella [DOT] com

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

Posts30
Comments6,775
View on HN
blog.tombert.com 3mo ago

Stop Pushing AI Generated Code to Git

tombert
5pts2
news.ycombinator.com 1y ago

Ask HN: How do you stay motivated when hunting for a job?

tombert
12pts29
news.ycombinator.com 1y ago

Ask HN: What do you use for analytics for a statically generated website?

tombert
20pts27
blog.tombert.com 1y ago

Microbenchmarks: HashMap, ConcurrentHashMap, and Guava Caches

tombert
1pts6
blog.tombert.com 1y ago

Microbenchmarks: Java Locks vs. Atomic

tombert
2pts5
en.wikipedia.org 1y ago

NORAD Tracks Santa

tombert
2pts0
news.ycombinator.com 2y ago

Show HN: The Equation of Happiness (Book)

tombert
1pts0
news.ycombinator.com 2y ago

Ask HN: What Do Recruiters Do?

tombert
4pts6
news.ycombinator.com 4y ago

Ask HN: For anyone who has done a part-time PhD, do you have any advice?

tombert
2pts0
news.ycombinator.com 4y ago

Ask HN: Do we need to worry about Russian troll farms here?

tombert
5pts6
news.ycombinator.com 4y ago

Ask HN: Best way for someone to reach professors to get into a PhD Program?

tombert
2pts4
variety.com 6y ago

Justice Department Goes to Court to Lift Paramount Consent Decrees

tombert
1pts0
news.ycombinator.com 7y ago

Ask HN: How to go about asking for VC funding?

tombert
2pts1
news.ycombinator.com 7y ago

Ask HN: Getting into lower-level microcontroller coding

tombert
9pts9
medium.com 7y ago

My (Brief) Experience with Joe Armstrong

tombert
2pts0
medium.com 7y ago

A Response to “On Higher Education”

tombert
1pts0
news.ycombinator.com 7y ago

Ask HN: How to ask your employer to let you own your personal projects

tombert
10pts5
news.ycombinator.com 7y ago

Ask HN: Has Anyone used pure Lambda Calculus for anything serious?

tombert
2pts0
news.ycombinator.com 7y ago

Ask HN: Are there any benchmarks of performance of ports from C++ to Rust?

tombert
2pts2
byuu.org 8y ago

Byuu extracting Higan SNES Core to resurrect bsnes

tombert
13pts0
medium.com 8y ago

Learning through Incompetence

tombert
1pts0
medium.com 8y ago

Things I don’t do that makes a bad developer as a result

tombert
3pts0
news.ycombinator.com 8y ago

Ask HN: Best resources to learn higher-math for a beginner

tombert
1pts0
news.ycombinator.com 9y ago

Ask HN: Did anything actually happen due to Y2K?

tombert
12pts8
news.ycombinator.com 9y ago

Ask HN: Are there any open-source alternatives to AWS Lambda

tombert
8pts10
news.ycombinator.com 9y ago

Ask HN: Has anyone considered forking TempleOS and making a modern OS out of it?

tombert
20pts14
news.ycombinator.com 9y ago

Ask HN: At what level of complexity do you consider writing a DSL?

tombert
1pts0
qz.com 9y ago

The best way to predict poverty is with satellite images and machine learning

tombert
1pts0
news.ycombinator.com 10y ago

Ask HN: What is the best way to handle concurrency/parallelism in C?

tombert
3pts0
www.gebert.sexy 10y ago

The Joys and Perils of Porting Things to Another Language

tombert
3pts0
Making 4 hours ago

When Claude Code/Codex first came about I'll admit it depressed me a bit, but I ended up realizing that the "code" part wasn't the part that I actually enjoyed about software engineering.

Instead, what I've been doing for my personal projects has been about designing algorithms with TLA+. I write that by hand, model check and sometimes even prove the properties I think are interesting or useful, and then tell Claude to implement it based on the spec. Usually I still need to correct the generated code but it's a lot less.

Certainly in these cases, I take pride in what I did, because ultimately the "Invisible Hand" always means I'm outsourcing some of the work of a project no matter how involved I want to be. If I build a deck outside, I'm not forging the nails myself, I'm not growing and chopping down the trees for lumber, I'm not designing my own power tools, etc. There's always a level of outsourcing of the work that I don't find interesting or that I don't know how to do, or don't have the resources to do myself.

With software, the parts that I end up feeling proudest of, and this predates widespread use of LLMs, are the algorithms and tricks I come up with to build something. When I figure out a way to avoid a lock, or figure out a way to use less memory, or figure out a way to increase throughput, I'm less concerned with the actual "code", and much more concerned about the "how".

Back to Kagi 9 hours ago

$10/month is a bit steep, but if you have any friends and/or family members you could split the costs with, I don't think that the family plans are unreasonable. That's what I do now.

ChatGPT tends to support any narrative that it thinks the user supports.

I just asked ChatGPT about the Vietnam war and it did not say that it was purely the US's fault: https://imgur.com/a/zmiOyuu

It also didn't seem to have a problem describing people killed for left wing ideology: https://imgur.com/a/LhH9saL

These are both with the free ChatGPT membership, as I do not have a paid membership anymore.

I know this is a common trope to bitch about, but honest question: did you actually try this before you commented?

ETA:

I was curious what something that was trained around me specifically (fairly typical lefty American progressive) would say, so I asked Claude (which I have a paid membership for and have discussed political things about many times). The answers were broadly similar: https://imgur.com/a/caFgKHH

I always took it as "make the 'best' decision [1] without regard for whether or not it's going to be popular or make the language more business-friendly".

[1] however you choose to define "best"

As a rule, I only write stuff if I feel like I have an opinion or take on something that isn't very common. I've abandoned half-written posts because I realized that I am not saying anything particularly unique or interesting, and I don't really see the point of writing about it.

Granted, being uninteresting has never really stopped me from writing long comments on HN...

A long time ago Simon Peyton Jones said Haskell tries to "avoid success at all costs".

He was being cheeky, but it honestly is how I try and approach most of what I do that isn't directly related to my employment (as a software person).

My blog posts are just for me; I don't market them, I don't expect anyone else to read them, I don't spam links to all my friends every time I post anything.

I have no idea if my writing could make any money in any universe, but since it's not my source of income I don't want to be beholden any kind of "monetization incentives".

It's rare that I so thoroughly disagree with the thesis of a post here.

Over-engineering is solving the wrong problem. That's the whole definition.

Wholeheartedly disagree. Over-engineering already seems pretty well defined just based on the words alone without tacking on a strange arbitrary definition to suit your blog post, but I think most people most people would define it more as "spending too much time and/or resources to solve a problem more-thoroughly than necessary".

Suppose I was given the task to convert all the JPEG images in a folder to PNG.

Solution A) I could write a highly optimized program writing custom CUDA decoders and encoders and using Open MPI for CPU-based optimization, and create an elaborate plugin framework on top of this to make this modular and cool.

Solution B) I could just run `find -name "*.jpg" | parallel magick {} {.}.png`.

Both solve the "right" problem; the ask was to convert these images, and both approaches can absolutely do that, so they didn't solve the "wrong problem", but I would argue that for most people Solution A would be "over engineered". You could argue that by building custom encoders and decoders and the like we're solving the "wrong problem" by going beyond what the problem asked for, but I feel like if you're criticizing the engineering methodology then that kind of proves my point.

We generally think someone is "over engineering" primarily when we are happy with the low-effort result.

There are times when Solution A is the right way to go about it. Maybe you want something that takes advantage of custom hardware, or maybe you can make an assumption about these images that Imagemagick can't, or maybe you really just understand image encoding significantly better than the Imagemagick people. in those cases, we generally don't consider it "over-engineering".

I mean, fair enough I guess. I've accidentally more-or-less reinvented interpreters on two separate occasions (both times using JSON as a quasi-AST), so I understand it.

I guess I just feel like if you feel like you need programming constructs in your configuration, its approaching it from the wrong angle, and it should instead be handled via plugins.

I feel like configuration itself should be a "dumb" format like JSON, and when you want to do anything that can't be accomplished by plain JSON, you should allow for easy development of plugins.

I have grown pretty negative opinions of “using a programming language as a config language” after semi-recently having to spend a lot of time screwing around with someone’s Gradle Groovy abomination. Not even to mention how quickly Nix can get annoying.

I have to ask…why do people want a Turing complete language to configure stuff? I use Sway personally, which is very configurable but for any even remotely complicated logic I shell out to a set of Rust programs.

Voxatron 6 days ago

I used to volunteer at a program in my local library that was designed to get kids into tech. They wanted someone to teach programming.

I bought like ten Pico-8 licenses for it [1], and used that to teach some simple programming. I figured that a simple platform like Pico-8 is still "real" programming, but you can go from "zero to viewable product" very quickly, which would be more fun for the kids; certainly less frustrating than trying to teach about vertex shaders and Vulkan.

Sadly none of the kids really took to it, but that's probably more of a criticism of how I was teaching than any issues with Pico-8.

[1] It wasn't actually my money. My employer at the time was willing to reimburse me

Voxatron 7 days ago

I bought the Humble Bundle for this in like 2011, and I played it a bit, but I ended up having a lot more fun with the included Pico-8 that came a bit later.

I think primarily I just found it a lot more approachable than anything else.

I like my iPhone 13 Pro Max and I don’t want to get rid of it or anything, but I am kind of looking forward to the glorious day that it breaks. Once it breaks, any phone I get (iPhone or Android) will have USB-C, along with my laptop, with One Adapter To Rule Them All when I travel.

That’s the dream, anyway. Life rarely works out quite that cleanly for me.

98% isn't much 15 days ago

When I had appendicitis seven years ago, I went to the emergency room, found out I would need surgery, and was (I think understandably) scared.

I texted a friend about that while I was waiting and he, trying to make me feel better, said something like "Dude, appendectomies are pretty routine, there's probably like a 99% survival rate" for them.

That that did not make me feel better. If I asked you to guess a number between 1 and 100, and you guessed corrected, I would only be a little impressed. 1 in 100 things happen all the time!

Obviously, I didn't die, and it worked out pretty routinely, but I always think about that particular situation when I hear about things being "98% successful".

I think it is much simpler than what you’re describing.

Executive at BigCo does something bad. Normally people would report this to police and/or regulatory agency. Instead the company investigates itself to pretend they’re doing their due diligence so that there is a paper record, but with no intention of actually surfacing anything to the police.

I mean I don't think it's unfair to say that most of the battle-tested encryption is "uncrackable enough" for the consumer.

If you're working for the NSA you need to worry about these things being cracked, obviously, but for the "I don't want a scammer to buy my laptop and get my social security number" situation, I think that you really can just assume that LUKS is uncrackable.

That said, it takes like five minutes to boot a live Linux flash drive and run fdisk to delete the partitions and/or install Mint or something over the existing data, so I don't really see any reason not to do it, even if it's not strictly necessary.

I feel like that is exactly what happens for anything but the most serious crimes. Keep in mind, a lot of internal investigations are not reported to the public and we never hear about them. Part of the reason that they're "internal" is so that they stay internal; we only hear about ones that leak.

Even for very serious crimes (e.g. sexual harassment or assault) these internal investigations end up being "sufficient", and the police don't bother.

The issue is that an internal investigation is not an impartial source.

I agree, in this hypothetical if there's no evidence the that the CEO committed a crime he/she shouldn't go to jail. But considering that "internal investigators" are likely hired (directly or indirectly) by the CEO, are likely shareholders in the company, they have little incentive to fully investigate.

The police certainly aren't perfect, but they at least have less of an incentive to lie about this.

I don't think this bothers me.

The only reason that I do the disk encryption is so that I don't have to worry about people going through my laptop to steal tax documents and/or credit card stuff when I sell the laptop. I of course also wipe the laptop too, but I figure that if the data is encrypted at the drive level then there's very little risk of anyone being able to use some kind of forensics tool and recover data.

I don't necessarily disagree, but I am curious as to why you think that? What makes NT a "better kernel for consumers". I have some opinions on that but I don't want to bias your answer.