HN user

mikepurvis

13,282 karma

Mechatronics engineering grad at University of Waterloo. I've led teams and shipped products— hardware and software. Areas of interest include DevOps and DX, tools, pipelines, and packaging. Experience in Nix and Debian primarily, increasingly GHA, TypeScript, and Docker Buildx Bake. Clearpath Robotics / OTTO Motors alum, now at Simbe Robotics.

All opinions expressed are entirely my own.

https://www.linkedin.com/in/mike-purvis-6166a42/

https://meet.hn/city/ca-Kitchener

Posts4
Comments4,501
View on HN

I'm mostly very happy with my LG C4 as a home theatre centerpiece, and I did have it online so that I could use the apps for YouTube and Jellyfin. However, the lack of support for modern 4k rips (HEVC+DTS) ended up being a dealbreaker and I finally ditched the built in software for a fire stick instead.

No transcoding, no weird codec issues, just the raw files direct streamed from the underpowered Unraid box, into the back of the AVR where the audio is handled correctly and the video is sent to the screen.

I've never heard of any of them; I guess it's geared toward build-it-yourself or kit-type devices? I can't imagine a serious aftermarket FW not supporting a single Kindle or Kobo device.

I've started to see this on Etsy and Wayfair too, where there will be a listing that is clearly just MDF flatpack being resold from China, but the AI-generated images wildly exaggerate the proportions of it.

Here's a recent example: https://www.etsy.com/ca/listing/4509158065/corner-wall-shelf...

Ironically, ChatGPT is decently good at ferreting these out. Like I sent it a screenshot of that listing and it not only helped me find where the original item was for sale, but also pointed out how the dimensioned diagram shows it as being just 49" tall, whereas the "in real life" image looks like it's at least six feet, based on it coming up over the top of the picture frame.

I ended up engaging a local woodworker to make me a piece like it instead. Obviously an order of magnitude difference in price, but it will actually be real solid walnut and finished to match my dining table.

Even without the rebar rusting, I think you can still have issues with the steel and concrete having difference thermal expansion properties, particularly for outdoor strucutures where a freeze/thaw cycle is in play.

Basically the rebar works itself loose over time and creates micro-fractures in the concrete that then get moisture in them and can cause expansion damage— all without the rebar itself ever rusting or "failing".

To build without tension you have to build structures that basically look like Roman structures [1]: a bunch of tightly spaces arches so that the entire thing is in compression, with no meaningful tension anywhere.

But it turns out that's pretty inconvenient; we really like doing dozens of feet of span for highway overpasses, building floors, and everything else. So we put rebar in all the concrete and just acknowledge that that means it has an absolute maximum lifespan of a century or two, and will certainly not last for millennia the way pure concrete in pure compression can.

[1] https://www.theartnewbie.com/blog/rome/roman-arch

While that's true, editions are more about leaving legacy decisions behind while keeping the backward compatibility promise.

Even if you're in one of those unconventional settings (say, a bare-metal microcontroller or something), you'd probably still start from edition 2026 and mutate your settings accordingly, rather than using the defaults that are 26 years old.

Key phrases make sense to put in place, but another easy safeguard is:

"Before you send anything to anyone, ever, call them back. Doesn't matter if it's me, the bank, a lawyer, whatever... tell them 'hang on I have another call coming in, let me just call you back in a few minutes, okay?'"

I take melatonin to sleep on a redeye, but otherwise don't use it. I find the effect is similar to taking a weed edible to fall asleep— basically, my wearable registers a lengthy period of deep sleep but instead of waking up feeling refreshed and ready for action, I'm groggy and fog-headed for several hours, or dependent on coffee to reverse the lingering effects.

As someone who has never been a regular coffee consumer, I really didn't want to end up with the dual dependence of melatonin at night and then caffeine in the morning.

This thread is stimulating me to want to get my magnesium checked, but barring that I've found the most effective sleep interventions are the basic ones: get some exercise earlier in the day, and don't do screens for the last few hours before bed.

I think it depends who it is making noise. There are some famous Oculus-era stories about John Carmack tracing display latency issues and then writing lengthy screeds to Samsung engineers to get them to give him lower level access.

I bet if someone like him made enough noise, people at MS would pay attention.

This year I grudgingly switched from an iPhone 13 Mini to a Pixel 10, largely to get the full integrated Pebble experience, but having USB-C has been a surprising and delightful upgrade to my home/travel experience.

For sources, I basically have an INUI battery bank and a 100W wall adapter, then everything is a USB-C sink: Lenovo X1, Pixel 10, Nintendo Switch, Sennheiser headphones

Is... that possible? I thought the whole point is that those were a challenge-response specifically to avoid ever them disclosing over the air the material necessary to impersonate one.

I used a car-sharing service (Communauto) for a while when I was between vehicles, and it was invaluable to just plug in my phone and not have to worry about setting up anything else. No menus to navigate, no signing into spotify or google maps or even pairing bluetooth. Just plug in, yes trust this car, go.

Yes, fair, and that matters if the discussion is "I want to buy someone's physical copy of a game released a few months ago that they are finished with". Digital distribution with robust hardware security does in fact completely destroy that market, though notably Switch and Switch 2 physical games tend to keep their value, suggesting that maybe it has less to do with physical media itself and more than the second hand market follows the pricing set by the digital marketplace, and consumers know that Nintendo doesn't really do discounts, even years later.

All that said, I think my main argument with respect to emulation and root access was less about individuals having that access, and more that so long as someone gains that access even through extraordinary measures, the games can be dumped and distributed, at which point true ownership becomes possible (even if it takes a while for them to become playable on emulation or hacked hardware).

Yes, for play-online titles for sure, but I think everything up to Xbox 360 / PS3 era has robust emulation and wide distribution of the whole library.

Obviously it's gotten harder over the years, but PS4 and PS5 jailbreaks do exist so that means there's a vector for dumping games that were only ever distributed digitally (at least ones released up to the point where the jailbreaks got patched, as the stores will refused to serve new content until you update your system).

Hopefully emulation and piracy will continue to provide a reasonable check valve on this getting too far out of control. I don't personally engage in either at present outside of an old homebrewed Wii U, but I feel like the existence of those is important to remind the digital storefront/platform owners that at the end of the day they aren't actually the only game in town.

Either that or eventually we'll have to get some antitrust stuff happening to open these things up, though Epic's App Store lawsuit does not give me much hope in that direction.

In my day job, I do a lot of AI coding but almost never have Claude actually create the PR titles or descriptions for me. It produces too much content, and the justification/background sections are often not quite right.

Most PRs to me are not coming out of nowhere anyway, rather they're "here's the linked issue, I started out addressing it by doing X and Y, but then Y got hairy so I switched to Z, hope that makes sense but happy to discuss further as well."

And most feedback is not "let's have you explain the design to me in a diff comment" but rather please explain this design in a code comment so that the next reader of the source will have your context.

Lots of cynical replies here unfortunately, but that proposal is similar to other ones that seek protection for various other natural commons. John Michael Greer discusses a bunch of this in Wealth of Nature [1], basically arguing that merely taxing "externalities" like pollution is insufficient, you need to see the true primary economies that generate the fundamental value of nature as being those that operate without human involvement at all, and also incorporate awareness of the different cycle lengths: a pollinator garden can establish in just a season or two, a forest takes decades, replenishing an aquifer takes centuries to millenia, and putting minerals and oil in the ground, millions of years.

Any human activity which degrades, disrupts, one of these cycles, or consumes an output from it needs to compensate the rest of us accordingly.

Now obviously governance is the tricky piece. The two obvious ones are to give the money back to the taxpayers or put it in a sovereign wealth fund to be invested on their behalf, since at the end of the day, the commons should be the equal entitlement of all citizens.

[1] https://www.goodreads.com/en/book/show/11382620-the-wealth-o...

I've always really enjoyed Andrew Kelley's article about trying to statically recompile NES code from 2013 [1]. Basically he makes a ton of progress but gets hung up not just on the realities of the handwritten assembler of the era just not being all that great at mapping to higher level LLVM IR. In the conclusion he specifically calls out a JIT-type methodology as probably being the way to go, where you live-recompile the hot paths when you have the runtime data required to actually understand them, and don't worry about the parts you can't.

Very cool to see something like that in action.

[1] https://andrewkelley.me/post/jamulator.html

OpenRA 25 days ago

Timely. I just downloaded Augustus last night and played a bunch of Caesar III with the assets for $5 from GOG.

Interestingly Augustus is itself a fork of Julius, where Julius intends to replicate original behavior including bugs whereas Augustus adds a number of QoL improvements like better parking control for the walkers.

Anyway all that to say, open-source engine remake projects are awesome.

I'm a relatively basic claude code user, basically just running a few instances in different terminal tabs and monitoring them pretty closely, but I could definitely see value in being able to dump a bunch of code and tools into a workspace where there's no credentials present and just set an agent some goals to research or try a bunch of things in a mostly unsupervised manner.

Yeah, I've played with some similar stuff on my 9070xt. But ultimately all the ceremony on top is cloaking that it's still just two or more models taking turns prompting each other to give the illusion of continuous thought. It's still one thought at a time, with every thought starting from scratch with a big chunk of prior context.

The idea of true continuous thought and memory-generation is very interesting, though I can't even begin to conceive of how it would work.

Or if it's even correct? Maybe our brains are secretly actually turn based too?

I think that just reflects that the typical usage for a capacitor is smoothing out some very spiky load that runs at a high frequency, say a microcontroller running at 100MHz. The average power needs of the MCU are low, but it's drawing almost all of it in a big burst on every clock tick (10ns).

Power supplies handle that badly, and the pulses turn your supply traces in a big antenna and suddenly you're an unlicensed FM radio station.

So for the capacitor that's put in place to buffer that load, the total capacity is important, but what really matters is that the part can manage that 100MHz charge/discharge cycle.