HNHacker News
TopNewBestAskShowJobs

sarreph

4,466 karma · joined July 21, 2013

I make software, images (sometimes moving), and music.

Most recently, I co-founded Kenobi.ai (YC W22).

My website is https://rorz.io

submissionscomments
sarreph··on Zed DeltaDB
Hah :)

In my opinion / experience, AI copy is a generally more cumbersome to read and process. So I would assume a company at Series B stage would have a human (with marketing guidelines) go over the language used on a one-pager to announce a new product.

But -- evidently -- anyone's guess!

sarreph··on Zed DeltaDB
I'm always hesitant to assert something is definitely AI copy because everyone's tone of voice is different.

I'm also starting to wonder how much real, human-made copy is mimicking AI-created copy that has been filling marketing pages as of late. When people make marketing websites, they often riff and rip off other websites' (à la "Good artists copy; great artists steal"[0]) design ideas and language -- I wouldn't be surprised if there are humans now inadvertently adopting LLM's writing style like that.

[0] - https://en.wikiquote.org/wiki/Steve_Jobs#:~:text=Good%20arti...

sarreph··on Zed DeltaDB
A lot of the copy on this page feels like the kind of copy an AI would produce. But I’m assuming, surely, Zed writes their own copy so I don’t want to accuse them of doing that.

Marketing aside, this is the kind of thing (advancements in VCSes) that I’d usually be excited about, but which I’m less excited about coming from Zed because it makes me start to worry that they’re going to continue focussing less on the core editor experience.

I love Zed and I hope that it doesn’t start to go flakey.

sarreph··on Mosh in a Lift (2012)
What are you supposed to do if you get stuck in a lift and you don't have your laptop (or zero cell signal for example)?
sarreph··on Show HN: Archive Websites with Cloudflare Workers
I wanted a scalable, reliable way to run website capture (capturing full MHTML archives) for design research and component research at Kenobi[0]. So I made Breamer, a way to automate this and host everything on Cloudflare using Workers and Workers Containers.

It uses puppeteer with a lot of container / script shims in order to try to reliably capture parts of websites "as seen" / "as rendered". You can deploy it to Cloudflare using the button in the repo.

Wanted to share it in case people were looking for a way to use puppeteer in this way on Cloudflare, and also in case people are already doing this and wanted to share what they're working on to solve this problem!

[0] - https://kenobi.ai

sarreph··on Show HN: A Handwritten Blogging Platform
Great to hear, thank you for sharing! Am considering getting one, but holding out until September because they haven't refreshed that particular device in a couple of years...

I wasn't intending on a budget as large as the Paper Pro's, but I could stretch to that if it made me demonstrably more productive / happier.

I was keener on the price point of the Paper Pure, but like the idea of a backlight and colour!

sarreph··on Prevent cognitive debt by manually retyping LLM-generated code
When I was learning to code at college, by myself (I did a Business degree), I bought a book on iOS development[0]. This book mandated that you type all the examples out line-by-line. I thought the idea was a pretty silly one, but I stuck with it because I didn't know what I was doing and wanted to learn.

14 years later, as a software engineer, I still think about that book and the way I can trace back a lot of my initial improvements to its requirement that code got written line-by-line. I still maintain the habit of rote text copying as a way to pick up new tools and commands (i.e. copying documentation examples exactly into my editor), and also when people make an assertion like:

> It's like trying to retype calculus solutions — you don't learn from it.

Maybe not everyone learns that way, but I sure did!

[0] - https://www.amazon.co.uk/iPhone-iPad-Apps-Absolute-Beginners...

sarreph··on Show HN: A Handwritten Blogging Platform
I've been thinking about getting a Remarkable... Really tough to choose between the Pro, the Pro Move, and the Pure.

I would quite like colour (for doodling), and the price point of the Move is slightly better, but I'm worried about the (small) size of it. Ideally I'd want something with colour support at an A5 paper size level. Wondering if anyone can speak to their experiences with any of them?

sarreph··on Show HN: Daily Math Puzzle
Thank you, jullls -- onboarding is something we're working on making more integrated like that!
sarreph··on Tips for Landing a YC Internship?
Have you tried Work at a Startup?

https://www.ycombinator.com/jobs

You can apply for internship roles there (by configuring it in your profile).

sarreph··on Ask HN: What are you working on? (August 2026)
I'm working on a daily puzzle game called Dozenal with my friend.

https://dozenal.game

We did a Show HN here in case you'd like to learn more: https://news.ycombinator.com/item?id=49067632

sarreph··on Show HN: Dozenal – A Game of Spatial Arithmetic
Thank you!
sarreph··on Show HN: Dozenal – A Game of Spatial Arithmetic
Thanks for the suggestion! Chris (who makes the game with me) really wants audio too so perhaps this will be the impetus we needed :)
sarreph··on Show HN: Tool to turn a repo into map
Neat! I think we'll be seeing more and more use-cases for creating tools (with AI and powered by AI) to visualise codebases now that we're spending less time "in" them.

I made a project a while back that lets you use Claude to generate a working Factorio (the game) map of your repo: https://github.com/rorz/factorio-code-visualizer

sarreph··on Em dashes are fucking amazing
As per sibling comment, I think my "old school" wording is getting misconstrued here. I did mean 20th-century "old school", i.e. typewriters... Is the Late Middle Ages considered "old school"? :)

Agreed that in terms of precedent, typesetters had moveable type dashes for their presses.

> the fifteenth century, and "em" and "en" were standard printing widths in moveable type. People who write CSS still recognize em as a width.

This is very interesting!

sarreph··on Em dashes are fucking amazing
Sure... But overstriking takes more time and effort, which is why "--" was the convention.
sarreph··on Em dashes are fucking amazing
Good point, but I think it's a little more complex than that.

To my knowledge (and what I meant by "old school"), it was common to type a "--" dash on typewriters[0] because most of them lacked en- and em-dashes, which are obviously not digital documentation devices.

But yes, typesetters of old (old, old school!) had myriad glyph blocks available to them for pressing!

--

[0] - https://en.wikipedia.org/wiki/Typewriter#Typewriter_conventi...

sarreph··on Em dashes are fucking amazing
I too find it a pity that the em-dash has been co-opted by AI. I use a double-hyphen ("--", the old school way of writing it), but fear that this will also become used by AI seeking a higher form of 'sophistication' as you put it.

We're experiencing broad scale changes in the sentiment of style in written English. I don't know what the best approach to take here is necessarily, but the more I see language evolving over time (especially over the past two decades) I think I'd prefer to shift my habits in line with whatever the "modern standard" is in order to avoid falling into pitfalls, i.e. being accused of being an AI writer.

sarreph··on Airport Simulator
I was only thinking about Flight Control[0] the other day and how I wish there were more modern takes on it! There was Mini Metro[1], but that was released over a decade ago.

--

[0] - https://en.wikipedia.org/wiki/Flight_Control

[1] - https://en.wikipedia.org/wiki/Mini_Metro_(video_game)

sarreph··on Making Software: How to make a font
That’s related, but not the same article.
sarreph··on In Praise of Exhaustive Destructuring
I used to be a die-hard destructurer! I liked the readability aspect, but ultimately two core problems emerged that pushed me towards dot-accessors:

1. It's highly verbose, especially in a language like TypeScript where you're often defining properties in types and then destructuring the same properties, making the whole thing look quite duplicative.

2. If you're passing an object through different functions doing similar things, I would quite often have to rename a destructured property in TypeScript because I would want to reuse the same name in a function-scoped variable.

I think for exhaustive switches, destructuring can be fine, but in general as long as you've got a well-defined set of types backing everything up, dot-access is neater.

--

Also on the point about optional parameters:

> let's suppose some stations now have an anemometer and are able to record wind speed

I find that discriminated unions are so much better at dealing with these kinds of problems. Also tends to work better with dot-access because you're not then destructuring undefined properties.

sarreph··on Andon (manufacturing)
That's actually the wikipedia article that inspired me to name a repo-convention checker I made called Pokayoke[0]. Do find it fascinating (as with Andon) how many cool Japanese loan-words there are for process refinement.

[0] - https://pokayoke.codes

sarreph··on Ask HN: What Are You Working On? (July 2026)
https://dozenal.game

A daily puzzle game called Dozenal that I've been making with a friend. We've been increasing our user base over the past couple of months and are still trying to refine the learning curve.

If you like number puzzle games, I would be very keen for you to give it a go and to hear your feedback on it!

sarreph··on Europe's Largest Unions Demand Right to Cancel Work on Days Above 30C
From the article, it's for "jobs in sectors like agriculture and construction". Would be interesting to learn about how this kind of work is managed in hotter climates.

For office work, a lot of European countries (especially the UK) haven't invested in AC as much as the rest of the world because they haven't needed to. This is especially apparent in housing, where working from home is becoming difficult in these higher temperatures.

sarreph··on My thoughts on the Bun Rust rewrite
Sure:

> he was essentially groomed from a young age

> It's one thing to choose a poor work-life balance for oneself; a different thing entirely to demand it of others

> Jarred was a stinky manager

sarreph··on My thoughts on the Bun Rust rewrite
It's hard, in my opinion, to lend credence to the author here when they decided to devote the first and largest section of their article to an incisive display of speculative ad hominem.

Would have been a great opportunity to outline the benefits of Zig! I've been keen to pick Zig up recently due to mitchellh's evangelism and inspiring writing on the subject.

This article puts me off learning Zig.

sarreph··on .self: A new top-level domain designed to support self-hosting
481 upvotes on HN, and only $136 USD donated (out of $64k target) -- at the time of writing.

Given the amount of traffic this project has received by being at the top of the front page for half a day, one has to wonder if a different approach to soliciting donations would have yielded them more money.

Clearly, everyone here is at least interested in the idea of a .self domain, and I wager that most (even the naysayers) of the commenters would register theirs.

Imagine if instead of asking for a $15–125 donation behind a CTA, they asked for $2 to "pre-register" your domain (with higher tiers for more benefits). I have a feeling they would have raised a lot more money...

sarreph··on Cloudflare launched self-managed OAuth for all
I’ve done it in one of my projects here using Drizzle, and it’s worked fine in testing so far.

https://github.com/rorz/manual.email/blob/main/packages/db/s...

sarreph··on Computer use in Gemini 3.5 Flash
I disagree if your application is networked. Most SaaS is built on RESTful APIs that can be converted trivially into interfaces / contracts for tool use.
sarreph··on Prompt Injection as Role Confusion
The author alludes to it but the defence to this is seemingly insurmountable at the moment because we’re ostensibly operating LLMs on a single channel — their inner, subconscious voice. Right?

Interacting with an LLM is a bit like seeing the output of an Inside Out (the Disney movie) scene. Or it’s a bit like a human brain that we’re providing tool call access and introspection with some kind of advanced neuralink.

But - like the author says - _we know_ our inside voice from the outside world, because we’re embodied.

Is there something we can do here by attempting to bifurcate internal and external systems? Like a conscious and subconscious stream of information on two separate bands?

If the model somehow knew its User was not it because it was clearly an external signal, then the attack documented here would be about as effective as a Jedi mind trick without the Force.

← PreviousPage 3 of 23Next →