Oh wow, thank you!
HN user
DHowett
Excellent article.
If I could offer one correction, it would be that SBU (as specified by the USB 3.0 Promoter Group[1]) means "Sideband Use" rather than "Secondary Bus".
On some devices, it is used to carry UART; on others, audio.
[1] https://www.usb.org/sites/default/files/USB%20Type-C%20Spec%... (pdf)
There was a project a while back that attempted to do this, named “Dotsies”.
https://www.omniglot.com/conscripts/dotsies.htm (original site https://www.dotsies.org, which has a casual introduction text that slowly transitions into dots; however, it was unavailable at the time of writing.)
Three lines of text in 12-point font in the corner which can be covered by a window is hardly “the entire screen.”
!! Thank you!
.git-blame-ignore-revs, while great, unfortunately belongs in the “Other Conventions” section.
If you configure your git client to use it, git blame will fail in any repository in which one is not present.
It appears to be in the fourth paragraph.
https://www.fda.gov/medical-devices/medical-device-recalls-a...
As of November 14, 2025, Abbott has reported 736 serious injuries, and seven deaths associated with this issue.
I had always wondered if that happened because of a proliferation in folks named EionMusk.
tar.exe, however, beats both of those in terms of archive format support and speed.
It comes with Windows, and has since 2022! Alas, if you mean Windows 10 then you can use some DISM magic to add it to an install image.
The author of the post indicated that they are releasing an update to an existing game, which we can presume has the same executable filename.
I’ve noticed most of the replies to your comment address the first half, and none (as of right now) address the second:
So the question that comes to my mind is whether this is yet further new and different Raspberry Pi 5 hardware that comes with no software or prospect of software.
If by “this” you mean the MicroSD Express hat from the article: this is a hobby project produced by a hobbyist, who seems to have no plans to sell or mass produce it.
It is unfair to the creator for you to lump it in with, and draw a conclusion from, the works produced by Raspberry Pi Holdings.
If you can turn the port off and then back on remotely, perhaps you can skip the unplugging part completely? I know that some managed PoE switches even offer a button to power cycle a port.
Have you come by your certainty that they have not asked because you were a contributor?
The advice in the 2014 talk applies to exporting specific types of errors as part of a package’s public API surface.
The article, on the other hand, advocates for local variables storing errors not to have distinct names.
systemd services are named "foo.service", and you do not need to specify the ".service" in almost any case.
> advance
you can just manually make any letterform 2x width,
Yes. Any glyph may be wider than its advance. The advance, however, must remain the same across all glyphs. If it does not, the font is not monospaced.
The passage you’ve quoted refers not to the width, but to the advance.
Bryan Lunduke has an article about this myth, actually!
https://lunduke.locals.com/post/4037306/myth-windows-3-1-was...
It’s backed up by another Old New Thing article at https://devblogs.microsoft.com/oldnewthing/20100517-00/?p=14...
The TL;DR is that Windows 3.1 effectively replaced DOS and acted as a hypervisor for it, while drivers could be written for Windows (and many were) or DOS (and presumably many more of those were actually distributed). The latter category was run in hypervised DOS and the results bridged to Windows callers.
(Edited after submission for accuracy and to add the Old New Thing link.)
Is it?
It seems as though the maintainer moved it into an external plugin because they were told, loud and long, that “shoving AI [there] [was] totally the wrong idea.”
It’s certainly an example of how public backlash can change the discourse, but it is not an example of why it was wrong to put AI there.
So it's a bit like "why don't people wear a welding mask while cooking?"
Your kitchen does not have staff telling you to make sure you are wearing a welding mask. It may also lack appropriate indicator lamps that tell you when it is a good time to wear your welding mask. It is also not standard practice in all kitchens.
It’s actually not like airplane seatbelts at all, where they are ubiquitous and the risks of not wearing them are fairly well-documented.
Bounds checking and assertions shouldn’t change the type layout.
Any bounds checks and assertions that rely on storing additional data such as valid iterator ranges or mutation counters would need to change the type layout, wouldn't they?
Even if the STL were purely a header-only library (and influenced only by code generation changes for debug builds), there's still the problem of ABI compatibility across different translation units--or different libraries--which might be built with different options.
EDIT: One of your sibling comments goes into greater detail!
bsdtar can do this! It supports reading an mtree file (a text description of a filesystem or of the contents of an archive) as an input and producing ZIP as an output!
Given an mtree file foo.mtree:
#mtree
baz/bar type=file content=quux
You can produce a ZIP containing baz/bar with: bsdtar -c --format=zip -f out.zip @foo.mtree
There’s a much better explanation in the bsdtar manual at https://man.freebsd.org/cgi/man.cgi?query=bsdtar&sektion=1&f...If you’re on Windows, “tar.exe” is bsdtar. With the caveat that the mtree file should be saved with LF line endings, this should still work.
As the maintainer for Windows in-box bsdtar/libarchive, I'd love to learn more!
How are the tarballs you get out of it invalid? Do you have a sample file I could take a look at?
FWIW, since it is bsdtar it supports a few additional options[1] to control the format. You can pass --format=gnutar, --format=zip, --format=ustar, --format=7zip, ... for a bit more flexibility and to create archives in other formats.
[1] https://man.freebsd.org/cgi/man.cgi?query=bsdtar&sektion=1&f...
As of firmware version 0.97.1 (current at the time of this comment,) no such feature exists.
(sells?)
An accusation like this would benefit from some evidence.
By not offering any evidence, you get all the benefits of sowing doubt without having put in any of the work necessary to have an actual discussion about it.
Given that the entire linear chain of comparisons (therefore, every instruction) needs to be evaluated for 2^32-1, it would indeed need to read and execute the entire 40GB file.
The fact that it does so by faulting in each page before instructions in it can be executed doesn’t materially avoid having to read every byte.
Clearly the author should have checked the larger numbers first to prevent this (:
This is an outstanding write-up! I’m glad to see you’re still active in the community :)
Looking over the landed patch (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...), I cannot find a hardcoded list of user.* xattrs that will be accepted.
It looks like it will store as many xattrs as there is space for, based on their contents.
https://chromium.googlesource.com/chromiumos/docs/+/HEAD/wri...
Chromebooks are among the better-documented and more open hardware platforms. The document above indicates how to disable firmware write protection both within and without the operating system.
It also includes this quote:
Since the start of the project, the Chrome OS team strongly believes that when someone buys a device, they own it fully. ... To that end, we strongly believe that users must be free to fully program their device in any way they want.
Can you point to any ChromeOS devices that have violated this principle?
Windows includes BSD tar, which can produce ZIP files.
tar -c --format=zip -f foo.zip path/