HNHacker News
TopNewBestAskShowJobs

mnutt

2,668 karma · joined May 11, 2010

I'm working on a startup called Movable Ink: movableink.com
submissionscomments
mnutt··on Show HN: Rotary Phone Project
That’s awesome. I love that it’s the intersection of tech and something so wholesome and unequivocally good. It feels hard to find in tech these days.
mnutt··on Show HN: Rotary Phone Project
That's amazing!

I'm separately very interested in LLMs, but still very much in a "keep them the hell away from my kids" mindset.

mnutt··on Show HN: Rotary Phone Project
That's great, I didn't know about those.

For anything that an adult depended on, especially if I didn't live with them, I'd prioritize simplicity and robustness over almost everything else.

mnutt··on Show HN: Rotary Phone Project
ctrl-c was one of the first things I had to teach him :-)

He has a Pi with a 7" touchscreen and keyboard, with xterm and a notes app. Compared to other technology it seems to be fairly self-limiting.

mnutt··on Show HN: Rotary Phone Project
My son _loves_ the train status aspect and I'm happy to oblige as it gives me an excuse to hack, but as other people point out you can get a lot of mileage out of even just getting a landline. Or you could probably connect the Grandstream directly to Twilio or another low-cost VoIP provider for cheaper than a land line and keep the ability to limit which phone numbers can be used.

The project was delayed for a day for lack of a phone cable. (of all of the weird old cables I have somehow rj-11 is no longer one of them...) I considered buying one off Amazon but it felt incredibly wasteful, so instead I asked our IT department at work. Almost any office will have piles of these things sitting around collecting dust.

mnutt··on Show HN: BewCloud is a simpler alternative to Nextcloud written in TypeScript
I went down a somewhat similar path a while back. I liked some of the functionality OwnCloud/NextCloud offered, but it seemed like there were just more and more php projects bolted on and I was worried about it from a security perspective. Sandstorm.io had just come out at the time and it felt like the "right" way to run a bunch of separate apps, so I built a webdav server/UI[0] as a sandstorm app that could replace OwnCloud and still use the OwnCloud client apps. It was a bit of a mixed bag--it worked, but I quickly discovered that DAV has _tons_ of quirks and the OwnCloud clients had all sorts of interesting/semidocumented behavior. If I had had more time on my hands I would have probably built my own set of clients and had an easier time.

[0] https://github.com/mnutt/davros

mnutt··on Show HN: Workout Tracker – self-hosted, single binary web application
That was the promise of Sandstorm. "Easy to install" is important but sandboxing and data protection _even of the data you give the app itself_ is just as important. I really hope it or something like it succeeds someday.

Edit: this app would probably make for a great Sandstorm app.

mnutt··on Font height differences between Windows and Mac (2019)
I struggled with this recently, upgrading qtwebkit from Qt5 to Qt6. Qt5 used platform-specific height values, while Qt6 now uses win height values, for consistent rendering across all platforms. It’s better in concept, the only issue is that the really big cross-platform browser _doesn’t_ so it turns into “why doesn’t this font rendering look like Chrome on Mac/linux?”
mnutt··on I told the flight attendant "the WiFi isn't working"
Back when my company was a tiny startup the old nyc building door had an intercom buzzer and physical keys. To make it easier to get in I wired a raspberry pi w/relay into the intercom and built a web UI. The pi setup wasn’t solidly reliable for weeks at a time, but fortunately it was plugged into an outlet with a light switch so everyone knew to turn it off and back on again. But since it was by the door, no matter the labeling from time to time we’d come in to find it turned permanently off.
mnutt··on Apple partly halts Beeper's iMessage app again, suggesting a long fight ahead
Adium was a very well-designed mac app that I used for many years. All of its messaging connectivity was due to its use of libpurple (formerly libgaim).
mnutt··on Don't build AI products the way everyone else is doing it
They have a known system that can go from specified coordinates to images in the form of puppeteer (chromium) and so they can run it on lots of websites to generate [coordinates, output image] pairs to use for training data. In general, if you have a transform and input data, you can use it to train a model to learn the reverse transform.
mnutt··on New York City declares state of emergency amid flash floods
Today’s flooding was caused by excessive rain, and I think the problems are mostly around inadequate drainage? Whereas Sandy was a storm surge and could have been mitigated with something like levees.
mnutt··on GNU/Linux Aviation HOWTO (2006)
The creator of Asterisk (the linux-based PBX) has been building a modern modular avionics system which I believe is Linux-based. From what I can tell they have plans for certification.

https://www.avilution.com/

mnutt··on jq 1.7
jq is great for letting users munge their data; we do something similar letting users provision an incoming webhook endpoint, send us arbitrary json data, and set up mappings to do useful things with their data, along with regression tests, monitoring, etc. jq makes the majority of cases straightforward (basically json dot notation) and the long tail possible.
mnutt··on Load Balancing: The Intuition Behind the Power of Two Random Choices
It reminds me of the method redis used for evicting keys: it would randomly choose N keys and evict the oldest of the set. It approximated evicting the oldest key in the database (more or less, depending on your value of N) but was cheaper than keeping track of the oldest keys. And it needed to be cheap because when the database filled up it happened a whole lot.
mnutt··on AWS to begin charging for public IPv4 addresses
I don't see where the latter is the case? For that I believe regular NAT gateway bandwidth charges apply?
mnutt··on AWS: IPv4 addresses cost too much, so you’re going to pay
It looks to be available, but (from the bottom of the article) "Regular NAT gateway charges may apply."
mnutt··on Text rendering hates you (2019)
I spent a good portion of this weekend tracking down a minor text rendering issue I was having in WebKit. It is mind-boggling just the mountains of code that go into text rendering, and pretty amazing that they have managed to keep such a complex system so performant.

(the issue ended up involving harfbuzz, but it wasn't clear initially since it dealt with HTML whitespace collapse)

mnutt··on Farewell to the Era of Cheap EC2 Spot Instances
It works, but it may depend on how resilient your workload is. We have timed spot instances that come online shortly before the top of the hour in the morning eastern, and via specifying instance alternates we'd often get instances that were much larger than our low-ish bids would warrant. Then most of them would get pre-empted <2 minutes later and there would be a bunch of churn as we had to replace them with what we should have gotten originally.
mnutt··on Load Balancing
You could go with sticky sessions, or consistent hashing to maximize cache hit rate. Then you may run into hotspots and look at bounded-load consistent hashing, etc.
mnutt··on Load Balancing
I thought of another variant: with AWS autoscaling groups using spot instances you can list a number of different instance sizes and say "give me whatever is cheapest" and you'll often get a mix.
mnutt··on Load Balancing
The simulations are really cool. I'm trying to think of a real-world situation where you'd have differently-sized backends though. I guess it might help if your server runs hourly cron jobs that take away system resources from requests.
mnutt··on A eulogy for Dark Sky, a data visualization masterpiece
Related, the Dark Sky website and API began returning 503s earlier today, despite the Dark Sky Blog (the only thing still up) prominently displaying:

> The Dark Sky API and website will continue to function until March 31st, 2023.

mnutt··on New headless Chrome has been released and has a near-perfect browser fingerprint
Does phantomjscloud still run phantomjs? How do you keep it up to date with security patches? Have you benchmarked how this new chrome performs against the old headless chrome and against phantomjs?
mnutt··on The technology behind GitHub’s new code search
I run into this a lot where I'd like to see some real world use cases of a method in FooClass, but get a hundred pages of forks of the FooClass.h header file. In some cases I've been successful adding "-filename:FooClass.h" to filter out that header file. If the method is used a lot in the primary project it can be a game of whack-a-mole but it often eventually works.
mnutt··on Dragonfly 0.13 Database Adds Experimental SSD-Based Data Tiering, More SIMD Work
The SSD data tiering sounds interesting, is there anything written about how it works?
mnutt··on We chose NanoIDs for PlanetScale’s API
I don’t know what they said before, but they now say:

“Do you have a question or comment that involves "security" and "hashids" in the same sentence? Don't use Hashids.”

Still, I can see the temptation that these generated strings “look random so people can’t guess them”. Possibly good enough to obfuscate the number of db records from the casual onlooker but not good protection against enumerating accessible records.

mnutt··on We chose NanoIDs for PlanetScale’s API
Yes, if you outgrow autoincremented ints then hashids may not be a great fit I think?
mnutt··on We chose NanoIDs for PlanetScale’s API
I wonder how this might compare to just storing regular autoincrementing ints in the database, and converting to/from hashids (https://hashids.org/) at the edge. It eliminates the collision concern and stores more compactly at the cost of a tiny amount of encode/decode when processing requests. You’d want to push it down as close to the database layer as possible to avoid inadvertent int ID leaks; I added native hashids support to clickhouse but I’m not sure what other database support might entail.
mnutt··on Writing a Mini-CDN to Learn Nginx/Prometheus/Grafana/Lua
Many CDNs support caching based on a particular cookie value, incorporating it into the cache key. I’d just be extra careful, the worst case for many server settings is an inoperable service but choosing the wrong cache key can easily result in a data leak. (serving one user’s response to another user)
← PreviousPage 2 of 34Next →