HNHacker News
TopNewBestAskShowJobs

emidoots

7,362 karma · joined August 8, 2014

https://devlog.hexops.com

emi@hexops.com

submissionscomments
emidoots··on LLM Voice
Something like 90% of food in all US restaurants is from Sysco, US Foods, or similar.

Some of them purchase ingredients from those companies, and then make the food using those ingredients.

A great deal of restaurants, though, simply purchase pre-made frozen foods from those distributors, re-heat, and sell it to you at a premium without disclosing while you think it was freshly made. Mac & cheese, stuffed peppers, lasagna, burritos, most 'bar snacks' you can think of, etc.

emidoots··on Solo – a .so loader for static Linux binaries
Luckily Zig makes this quite easy to do. In Mach[0] we are able to just `zig build -Dtarget=x86_64-linux-gnu.2.28` to build GUI apps against an ~8 year old glibc version for maximum compatibility.

This is possible because Zig allows for targeting most glibc versions out of the box with its cross-compilation support.

[0] https://machengine.org

emidoots··on Bluesky April 2026 Outage Post-Mortem
There's stark contrast for an average human visiting the landing page of bsky.app vs nostr.org
emidoots··on Google releases Gemma 4 open models
was just merged
emidoots··on Tinybox – A powerful computer for deep learning
Performance (tok/s and PP) or quality (model size)? Pick one.

In terms of GPU memory bandwidth (models fitting in the ~48GB of RTX 5000 Pro card), the RTX card I described above has over 2x the bandwidth of an M5 Max.

If leveraging system RAM (the 128GB-256GB outside the GPU) to run larger models, then the memory bandwidth is ~6x slower than M5 Max.

For models fitting in the ~48GB RTX memory, like dense Qwen3.5 27B models, the RTX will be 2-4x faster than M5 Max. For models that don't fit in the 48GB RTX memory, the M5 Max will be 5-20x faster.

Also worth considering future upgrades: Do you plan to throw away the machine in a few years, or pick up multiple used RTX 6000 Pro cards when people start ditching them?

emidoots··on Tinybox – A powerful computer for deep learning
At $7.2k + tax:

* RAM - $1500 - Crucial Pro 128GB Kit (2x64GB) DDR5 RAM, 5600MHz CP2K64G56C46U5, up to 4 sticks for 128GB or 256GB, Amazon

* GPU - $4700 - RTX Pro 5000 48GB, Microcenter

* CPU/Mobo bundle - $1100 - AMD Ryzen 7 9800X3D, MSI X870E-P Pro, ditch the 32GB RAM, Microcenter

* Case - $220, Hyte Y70, Microcenter

* Cooler - $155, Arctic Cooling Liquid Freezer III Pro, top-mount it, Microcenter

* PSU - $180, RM1000x, Microcenter

* SSD - $400 - Samsung 990 pRO 2TB gen 4 NVMe M.2

* Fans - $100 - 6x 120mm fans, 1x 140mm fan, of your choice

Look into models like Qwen 3.5

emidoots··on Google will allow only apps from verified developers to be installed on Android
Side note, I read that GrapheneOS project is having some challenges recently.. between [0]the Android kernel drivers no longer having their Git history of changes being released (only a code dump with no history) - and [1]one of Graphene's two core contributors being detained/conscripted into a war.

[0] https://grapheneos.social/@GrapheneOS/114665558894105287

[1] https://grapheneos.social/@GrapheneOS/114359660453627718

emidoots··on GitHub MCP Exploited: Accessing Private Repositories via MCP
Clearly different - but reminds me of the Slack prompt injection vulnerability[0]

[0] https://www.theregister.com/2024/08/21/slack_ai_prompt_injec...

emidoots··on Memory safety for web fonts
If you want consistency, you only need to convince everyone to switch to a single font renderer (e.g. freetype). That won't happen, though, because OS font renderers have quirks that cause them to render the same things in subtly different ways, and users have come to unintentionally expect those quirks. Even if rendering is 'better' in one app.. if it doesn't match the others or what the user is used to.. then it won't 'feel native'.

Maybe if what freetype is pushing for (fonts are WASM binaries) continues to take hold, and encompass more of fonts, we'll find more consistency over time though

emidoots··on GIMP 3.0
I think a better UX for average consumer would be more a side-swiping filter menu similar to that of social media mobile apps, with different non-math style names "default blur", "circle blur", etc. Especially as more people do not use desktop computers today.

Also maybe LLM integration so you can just explain what you want done, then it does it, instead of needing to follow some tutorial to learn the software

emidoots··on Apple says it will add 20k jobs, spend $500B, produce AI servers in US
My comment wasn't sarcastic. My comment is aligned with the last paragraph you wrote.
emidoots··on Apple says it will add 20k jobs, spend $500B, produce AI servers in US
Steve Jobs would lean into making Apple the #1 AI developer platform and showcase at WWDC how the terminal is now obsolete
emidoots··on Show HN: ESP32 RC Cars
FPV today is largely using ExpressLRS[0], an open protocol for running FPV quads' control links (also using esp32 usually)

Video for FPV quads on the other hand is divided: some use analog (mostly because when you lose signal, it's a gradual loss rather than complete loss + a reconnection process), while others use 802.11-based communication which is actually quite competitive. Walksnail Goggles for example use 802.11 for their video links, although not super open/documented people do dig into how it works (see Chris Rosser's work.) Latency is good enough with such setups for fast-paced competitive quad racing, at least

[0] https://www.expresslrs.org

emidoots··on TikTok says it is restoring service for U.S. users
(1) Doesn't match the situation at all, because the law didn't require the paper to shutdown - it required a foreign company to divest so that it is US-owned, and the paper could continue operations as normal.

That's a pretty substantial difference.

(2) Also doesn't match the situation, there is no requirement that TikTok restrict the reach or audience of their content in any way AFAIK.

(3) The situation is more akin to "foreign government owns the local library, and can decide based on the identity of the person walking in which books the person is allowed to see and check out" - seems obviously problematic at least /if they do that/

emidoots··on Phi 4 available on Ollama
Meta's entire business model is to own users and their content.

Whether it be Facebook, Instagram, Threads, Messenger, WhatsApp, etc. their focus is to acquire users, keep them in their platforms, and own their content - because /human attention is fundamentally valuable/.

Meta owns 40% of the most popular social media platforms today, but their attention economies face great threats: YouTube, TikTok, Telegram, WeChat, and many more threaten to unseat them every year.

Most importantly, the quality of content on these platforms greatly influences their popularity. If Meta can accelerate AI development in all forms, then it means the content quality across all apps/platforms can be equalized - video on YouTube or TikTok will be no more high quality than on Facebook or Instagram. Messages on Threads will be no more engaging than that on Twitter. Their recent experiments with AI generated profiles[0] signals this is the case.

Once content quality - and luring creators to your platform - are neutralized as business challenges that affect end users lurking on the platform and how effectively they can be retained, then it becomes easier for Meta to retain any user that enters their platforms and gain an effective attention monopoly without needing to continue to buy apps that could otherwise succeed theirs.

And so, it is in their benefit to give away their models 'for free', 'speed up' the industry's development efforts in general, de-risk other companies surpassing their efforts, etc.

[0] https://thebaynet.com/meta-faces-backlash-over-ai-generated-...

emidoots··on De-smarting the Marshall Uxbridge
Return that crap and buy something like Audio Pro speakers instead
emidoots··on When the U.S. tried to replace migrant farmworkers with high schoolers (2018)
In Iowa, it is legal for (US citizen) children as young as the age of 12 to work on farms, for an unlimited number of hours, so long as their parents grant permission and they do not miss school. They have so far been unsuccessful at legislating to raise the age limit from 12 to 14[0] as the Children's Act for Responsible Employment act has failed to pass, due to strong opposition from agricultural industry groups.

Many of these children are pressured into it by parents who have no other financial options, as described in the video I linked above.

[0] https://www.iowapublicradio.org/news-from-npr/news-from-npr/...

emidoots··on When the U.S. tried to replace migrant farmworkers with high schoolers (2018)
Teenagers young and older are definitely still working on fields here in the US[0], and also a good portion now work the processing facilities instead[1][2].

Whether it qualifies as 'an honest day's work' these days - or a cruel and punishing existence - I'll leave for you to decide.

[0] https://youtu.be/41vETgarh_8?si=S0dBolFjv04SSprh&t=497

[1] https://www.npr.org/2023/09/25/1201524399/child-labor-perdue...

[2] https://www.dol.gov/newsroom/releases/whd/whd20230217-1

emidoots··on Stimulation Clicker
It has an ending, so play till the end :)
emidoots··on Stimulation Clicker
This is so toxic, I love it! Great work, love that it has an ending. Donated a bit to you as well.
emidoots··on What's Next for WebGPU
(a) WebGPU -> Specification or browser API

(b) WGPU, gfx-rs/wgpu, wgpu.rs -> Rust crate implementing WebGPU

(c) wgpu -> the prefix used by the C API for all WebGPU native implementations.

(d) 'wgpu' -> a cute shorthand used by everyone to describe either (a), (b), or (c) with confusion.

emidoots··on What's Next for WebGPU
It's crazy you've cited Hexops as an example:

1. It's a game studio not a project (CEO here :))

2. It's very much still alive and well today, not 'cancelled'

3. We never even used WebGPU in Rust, this was before WebGPU was really a thing.

It is true that we looked elsewhere for a better language for us with different tradeoffs, and have since fully embraced Zig. It's also true that we were big proponents of WebGPU earlier on, and have in recent years abandoned WebGPU in favor of something which is better for graphics outside the browser (that's its own worthwhile story)..

But we've never played /any/ role in the Rust gamedev ecosystem, really.

emidoots··on Maybe Bluesky has "won"
When you post on Instagram, there are opt-out features that will 'automatically share to your Threads account too' and you can see Threads notifications in the Instagram app and such .. so I think it's reasonable to assume they are leveraging the Instagram user-base a bit.
emidoots··on Internet Archive: Security breach alert
There is software which is intended to e.g. locate the GitHub profiles of people working at companies, then scrape all public repositories they've contributed to for their email address and the emails of their coworkers - to enable targeted advertising to those individuals. Very common in enterprise sales.

With ChatGPT, this can be extended to create emails that look very personal - as if someone has followed all of your work and is genuinely interested in what you are up to - with extremely low effort. And people are already doing this, I already get emails like this today.

Should emails be private? I don't know - I personally consider them to be public because I know for a fact mine will eventually be public whether I like it or not. But I am aware AI is out their slurping up every public communication I've ever had, and is likely trying to manipulate me in various ways already today.

emidoots··on Zig, Rust, and Other Languages
In fact, Zig has pretty much the same support for strings as both Rust and Go. The primary difference which people seem to complain about, that "[]const u8" is not written as "string", can be solved by writing `const string = []const u8;` at the top of your program if you like.

Rust: `&str`, 'some bytes, and a length', 'Constructing a non-UTF-8 string slice is not immediate undefined behavior, but any function called on a string slice may assume that it is valid UTF-8, which means that a non-UTF-8 string slice can lead to undefined behavior down the road.' - also `String` and `OsString`.

edit: apparently Rust enforces that &str cannot be created with invalid UTF8, at the additional performance cost of runtime checks, so it has stronger guarantees than other languages like Go/Java/Zig/etc (as usual)

Go: `string`, 'in effect a read-only slice of bytes', 'a string holds arbitrary bytes. It is not required to hold Unicode text, UTF-8 text, or any other predefined format. As far as the content of a string is concerned, it is exactly equivalent to a slice of bytes.'

Zig: `[]const u8`, 'some bytes, and a length', 'Zig has no concept of strings', 'by convention parameters that are "strings" are expected to be UTF-8 encoded slices of u8.', 'Generally, you can use UTF-8 and not worry about whether something is a string.' - and the stdlib has functions for working with unicode and strings.

emidoots··on Zig Software Foundation 2024 Financial Report and Fundraiser
Myself and many others are betting on Zig in major ways, I truly think it has a bright future ahead.

In spare time, myself and a few others are working on a game engine in Zig[0], and the Zig core team has been very receptive to addressing issues our project faces and supporting us.

Others are working on pixel art editors[1], open source 2D RPG games[2], there's a group of independent folks working on a 3D massive immersive sim game[3], a group working on making Zig an amazing language for micro-controllers[4], etc.

Please consider donating $5-10 a month to the ZSF! They are a great group of people, and it has so many knock-on effects for others in the FOSS community. :)

[0] https://machengine.org/

[1] https://github.com/foxnne/pixi

[2] https://github.com/foxnne/aftersun

[3] https://github.com/Srekel/tides-of-revival

[4] https://github.com/ZigEmbeddedGroup

emidoots··on Mistral 7B
Major kudos to Mistral for being the first company to Apache license a model of this class.

Meta wouldn't make LLama open source.

DeciLM wouldn't make theirs open source.

All of them wanted to claim they were open source, while putting in place restrictions and not using an open source license. So I think it's worth giving Mistral big kudos here for actually doing it and going Apache licensed.

emidoots··on Linux tool to show progress for cp, mv, dd
Wow, didn't expect to see @xfennec pop up on hacker news while drinking my coffee this morning! I don't know if he'll see this, to be honest didn't know he was still doing things - but this person basically got me into programming and game development-I really can't believe it.

xfennec (and some friends?) I think built a game engine called Raydium, and one of their games called Mania Drive-a Track Mania clone-got distributed with OpenSuse installation CDs back in the day. When I was just like 12 years old, my dad installed that on the family computer and it was all we had, Mania Drive was one of the coolest games on there. Me and my siblings played that for literally days and months on end, making crazy levels we couldn't beat without knowing every turn. It was a huge part of our childhood.

Their game engine was in C with PHP scripting, I remember posting some levels to their forums and asking, in retrospect super dumb, questions and they were so polite and friendly. I remember us joking at the time that the French seemed like these god-like game developers, it had such a profound impact on us, I even wrote about it last year and linked a video of Mania Drive first[0]. I went on to learn Python and then lower-level languages as a result. I'm not sure I'd be coding today without them, to be honest.

Sorry it's off-topic, just really blown away to see a username like that pop up in my feed. Really goes to show that kindness + some cool open source software can have profound effect on people.

[0] https://devlog.hexops.com/2021/increasing-my-contribution-to...

emidoots··on I write code 100 hours/week, here's why I probably won't stop
Ah wasn't expecting this old thing to pop up again. By far the most contentious article I've written; people ranging from "hey if that's you and you're happy then great" to people feeling like it's a personal attack on them. I'd encourage an open mind.

Anywho-it's closer to 3.5 years now that I've done this, maybe I'll do an update at 4 years.

The 2.5 year initial duration (when I posted that article) was like working two full-time jobs, 100h/week, almost solely writing code.

Past year has been more like 85h/week, my dayjob has required more time (48h -> ~60h week), with much less of that time at work being /writing code/; and ~25h/week going to my gamedev passion projects, of which a good chunk has also gone to helping others with their code/issues.

The -15h/week 'loss' has gone to caring for pets, and a gentle touch more travel/sleep/gardening. Doing well and enjoying my life, still.

emidoots··on a[low:high:max] in Golang – A Rare Slice Trick
I'm a big fan of Go, have been using it since r59 (pre 1.0), professionally working with it the past ~8 years at one of the earliest companies to adopt it.

The fact that you cannot have a generic method at all, and instead have to rewrite methods as functions.. that seems like a pretty glaring flaw.

I'm happy Go got some form of generics, definitely, but they really do feel bolted on to the language.

Page 1 of 2Next →