HNHacker News
TopNewBestAskShowJobs

tikhonj

16,885 karma · joined September 12, 2011

Tikhon Jelvis

I am interested in programming languages, functional programming (especially Haskell), domain-specific languages, static analysis and program synthesis.

I am working on apply programming language ideas to supply chain planning.

I worked on supply chain optimization at Target for several years, and co-authored a textbook on reinforcement learning based on that experience.

contact: http://jelv.is, tikhon@jelv.is

submissionscomments
tikhonj··on Anthropic reported diary entry to police, woman faces felony charge
I'm not a lawyer so take this with a grain of salt, but it seems like there is a big gap between speech that is "directed to inciting or producing imminent lawless action" and just saying that you will do something.

Depending on context saying "I'm going to rob the bank X tomorrow" might also count as a threat?

But, in either case, writing this in a private diary could not be incitement or a threat because you are not communicating with anybody except yourself.

tikhonj··on What is going on with ceiling fans
I've definitely left ping running for hundreds or thousands of pings. That's partly how my roommate eventually diagnosed this weird issue where our wifi would drop packets (or have really highly increased latency) on a suspiciously regular cadence. You could easily see the pattern in the pings once the tool ran for a while. It turned out to be a firmware issue with our router, but we would not have thought too look at that if we hadn't seen the pattern of connection issues.
tikhonj··on City building games have a Soul Problem pt.2
Part of the author's point is that the way the city "feels" is not just part of the game but, for them and for a subset of other players, a key part of the game. We're talking about how to make a city simulator have more verisimilitude with the cities you are simulating!
tikhonj··on Turbo Haskell
I've had much better experiences with Haskell (well, mostly PureScript for now) than Python, but that might be because I am very hands-on with the design of the core types and abstractions I'm working with.

Having an effect system so that Claude is not tempted to throw in side-effects everywhere helps a lot too!

tikhonj··on Micron CEO Says Memory Supply Will Be Much Tighter in 2027 and 2028 Than in 2026
What would the alternative be? If you just kept prices lower, you'd have shortages. There would still be the same motivation—if not more!—to spin up competing production.

And to build up a large amount of new capacity yourself, you need to invest a massive amount of capital into something relatively risky.

tikhonj··on Let's Ditch Google (Verb)
I guess if you use kagi, you can say "I'll kag it" instead
tikhonj··on Sonnet 5.5
I mean, they're trading off the time to learn to program for LLM time. Which might make sense! Locally.

But, in my experience, the projects where I have a constant pulse on the core design and abstractions in the code end up moving much faster than the ones where I don't. And I've been working on one of each at work recently, so I have a decent point of comparison.

tikhonj··on On caring for user data: NeoVim caused Vim undo files to be deleted
If my neighbor mows my lawn and ruins my whole garden, I'd definitely complain. (And if I were in the neighbor's shoes, I'd feel awful about it and try to fix things.)
tikhonj··on California is chasing wealth that has feet
Which is why we also have things like a deferred property tax program! The way to "solve" the problems Prop 13 addresses would be to expand programs like that, but homeowners—disproportionately active middle- and upper-middle-class voters—want to have their cake and eat it too.
tikhonj··on Ideas on modernizing the open-source desktop
Depends on your screen size. On my laptop, I follow pretty much the same pattern you do, so I actually stopped bothering with XMonad.

But on my desktop with two 27" monitors, I find tiling incredibly useful. It's really nice to be able to quickly arrange a mix of Emacs windows, browsers and random other programs to use all that space. If I need to closely read through some documentation while also looking at code, I can quickly open a browser next to the code window. Later, when I want to focus on just code, I can send the browser to the other monitor or to a different workspace altogether. And I can juggle "side" stuff (chat windows, OBS, music, whatever) just as easily.

The key thing is that XMonad with some lightly customized layouts gives me the operations to do all of this quickly without needing to think about it. It only takes a couple of keystrokes to get to the state that I want at any time and, after a pretty short time, those keystrokes became muscle memory. Using a mouse to drag things around is more intuitive and flexible, but it requires shifting my attention far more than just using a single keyboard command. (And thanks to ADHD, that kind of distraction can be a real drag on my mental energy!)

tikhonj··on Seattle Bans Rental Junk Fees
A fee for a specific service (ie using a card vs using cash) is pretty different from unavoidable junk fees. As long as a fee like that is advertised up-front it's totally fine; but fees that everybody has to pay are a qualitatively different thing because they are just a way to get a misleadingly low sticker price for the product.
tikhonj··on Seattle Bans Rental Junk Fees
I wonder if there's any (transparently self-serving) pushback against this on Seattle Nextdoor or the like. It sounds like a straightforward set of rules that's great for everyone... but I've learned that this is never enough, and I'm sure there are some people insisting that this is some massive crime against landlords and, by extension, tenants.
tikhonj··on I am often wrong
I assume "clowned" as in "getting clowned on"
tikhonj··on English: A vs. An
One fun thing is that some words can reasonably go either way: "a hotel" vs "an hotel" or "a SQL query" vs "an SQL query".
tikhonj··on AI-generated posters don’t have to be horrible
One thing I've noticed with AI posters is that they're all "flat" in terms of attention. For whatever reason, they result in a post where every part is on the same level visually, and your eye does not get drawn to anything. You can't immediately see what is and isn't important.

The bad posters are absolute disasters in this regard. (And completely irredeemable in general! They are not "OK" in any way.)

But the better-stylized examples in the article aren't much better! Most of them have the same tendency. Only the minimalist Japanese and 40s Cubist styles do much better, and even those aren't structured amazingly. If you tried to add more information, I bet even the minimalist styles would become a flat and confusing.

This is the same problem I have with stock Claude prose and code. It's verbose, sure, but worse is that there's no quick way to tell what is and isn't important. In good code, you can understand the shape of the code at a glance; AI code is pretty much the opposite of that. And so are AI posters.

tikhonj··on Pangram – AI detector for text and images
I mean, that's just the most direct way to say what they're saying? Doesn't smell Claudy to me.

Like, if I had an AI detector that actually worked—and all the other ones didn't, which they don't—I'd put it exactly the same way.

tikhonj··on Steam Frame starts at $1059
Being able to play without a bunch of setup in your room and without worrying about getting tangled in cables seems great. I have a Valve Index—which is a pretty remarkable device, that I definitely enjoyed—but the hassle of cable management/etc adds some real hassle. And I say this as somebody who actually set up a pulley system to make it work better in my home office :P
tikhonj··on A few good ideas in programming languages
Row types are great. I'm doing a PureScript project right now and absolutely love having row polymorphism.

I'm also a fan of effect systems, although I haven't used them as much. Having an IO type in Haskell is great, but the ergonomics aren't (among other things, you get async-like function coloring). Effects seem like a much nicer, more composible way to get the same benefits.

tikhonj··on Don't Let Anyone Take Away Your Big Box of Cables
Neat, I had never heard of those.
tikhonj··on To write non-fiction, draw the trunk, then the rest of the tree
That's a big if. I've learned far more from settings and courses I enjoyed than from ones I hated. I expect the causation flowed in both directions, and there's no way I'm unique in that regard.
tikhonj··on Don't let anyone take away your big box of cables
In my big box of cables I have, among other things, a double-ended USB-A cable. I understand that this is absolutely not standards compliant, and I have absolutely no idea of where I got it from. I have never used it. But it is a thing that exists.

Getting rid of almost 10 different proprietary charging cables for pre-smart phones and some old laptops felt great though :P

tikhonj··on Growing proof that autonomous cars save lives
If driving is dangerous and carries a bunch of negative externalities, shouldn't we expect "good people" to look for alternatives? Not self-driving cars, necessarily, but maybe transit and walking and biking.

And, of course, to support the policy choices that reduce how much we subsidize driving and improve infrastructure for those alternatives.

tikhonj··on Watch Los Angeles get built, one building at a time (1880–2026)
It really isn't. You could—and we did!—solve that problem by letting people defer property tax payments or borrow against their equity. California literally has a property tax postponment program for seniors. If we just wanted to keep people from being pushed out of their homes by rising house prices, we'd just expand that program.

The point of Prop 13 is to let people have their cake and eat it too: you get to keep the equity you gain from increased housing prices, but not pay the property tax that comes with them.

tikhonj··on Watch Los Angeles get built, one building at a time (1880–2026)
I do own a house in California and I pay closer to $30k in property taxes. The previous owners of my house paid $7k. My neighbor—who has a bigger, more expensive house!—pays $9k.

It's pretty clear that this kind of tax policy is going to totally mess up the housing market. It's not the only factor, but it's a big one.

tikhonj··on Watch Los Angeles get built, one building at a time (1880–2026)
Prop 13 massively distorts the real estate market and creates some strong incentives for home owners. Those distortions and incentives would go away regardless of whether abolishing Prop 13 led to a net increase or decrease in total taxes.
tikhonj··on Ask HN: Why were OpenAI, Claude, and Grok simultaneously down?
I made Claude write noöp instead of no-op and it's still amusing a couple of days later :P
tikhonj··on Dwarf Fortress is getting the mother of all magic updates
They're different situations for the person, but not for the banking system.

And reading some lack of empathy into a comment about the banking system is wholly unwrannted.

tikhonj··on Sort branches by last commit date
Let's sort git branches by quality, better branches towards the top, slop at the bottom.
tikhonj··on Startup Anti-Patterns
I worked at a startup that did this and it was... totally fine? Like, we hired a guy who knew how to set Kubernetes up, he spent like a week or two setting it up, and then it was totally solid and the development experience was great. I was building some of the core product-specific logic and it only made my life easier.

Which really just goes to show that the "legible" aspects matter far less than the illegible aspects. It's easy to say "hey, this startup is using boring technology and deploying a monolith, great!" or "Kubernetes and a bunch of services, over-complicated!". It's hard to say "hey, this startup's codebase is awful and it's an unforced error slowing them down" vs "hey, these guys are taking some shortcuts but it makes sense in context".

But a mess built on "boring", simple tech is going to derail you far more than a needlessly complex but well-executed setup.

tikhonj··on Haiku R1/beta6 has been released
This is one of the things I like with NixOS: it's easy enough to add new packages and patch existing ones that stuff like this can either live in the core nixpkgs repo or be managed through some community-supported overlay. (Great example of this is [nixos-hardware](https://github.com/nixos/nixos-hardware) which shares settings and fixes for specific laptop models and the like, or [emacs-overlay](https://github.com/nix-community/emacs-overlay) which has a bunch of extra Emacs-specific stuff that would not belong in the core repo.)
Page 1 of 34Next →