HNHacker News
TopNewBestAskShowJobs

buserror

3,794 karma · joined April 29, 2015

UK: Linux Kernel Engineer & General embedded hard/soft; Author & Maintainer of various open source projects. https://github.com/buserror
submissionscomments
buserror··on Coding without a laptop: Two weeks with AR glasses and Linux on Android
Just tried to install that on my pixel 9, and the option is there (Linux development) and the Terminal app is there, but it seems to freeze on launch, when it asks for permission to get Location. Bummer I was looking forward to this!
buserror··on Gorgeous-GRUB: collection of decent community-made GRUB themes
Grub is like a turd that won't flush. It's been completely unnecessary for years, is massively overcomplicated, pretty much unusable as a shell with it's 1995 idioms, and there are much, MUCH lighter (and as useful) replacements (extlinux etc) -- and you can even just remove it completely and boot the kernel directly these days with the EFI stub...

But still, it gets installed, trying to justify its existence.

buserror··on Synology Lost the Plot with Hard Drive Locking Move
At home I have a 48xLTO5 changer with 4 drives (I picked for a song a while back! I actually don't need it but heck, it has a ROBOT ARM), and at work I'm currently provisioning a 96 LTO 9 tape drive dual-rack. With 640 tapes available :-)

I'm a STRONG believer in tapes!

Even LTO 5 gives you a very cheap 1.5TB of clean, pretty much bulletproof storage.. You can pick a drive (with a SAS HBA card) for less than $200, there is zero driver issue (SCSI, baby); the linux tape changer code is stable since 1997 (with a port to VMS!).

Tape FTW :-)

buserror··on Mox – modern, secure, all-in-one email server
Funny that, I was looking recently for a small, local smtp server to get notifications from my printer and other stuff and... there isn't. All you get are the ginormous ones with decades of crud attached.

So I ended up writing my own of course; no need for all the fancy features, just PLEASE let me receive email over SMTP and deliver them locally with 'dma'. Pfew.

buserror··on FFmpeg School of Assembly Language
Oh I agree it is not foolproof, in fact I never understood why saturated math isn't 'standard' somewhere, even as an operator. Given we have 'normalisation' operator there's alway a way to find a natural looking syntax of sort.

But again, if you don't like the generated code, you can take the generated code and tweak it, and use that; I did it quite a few times.

buserror··on FFmpeg School of Assembly Language
I used to do quite a bit of SIMD version of critical functions, but now I rarely do -- one thing to try is isolate that code, and run it in the Most Excellent Compiler Explorer [0].

And stare at the generated code!

More often than not, the auto-vectorisation now generates pretty excellent SIMD version of your function, and all you have to do is 'hint' the compiler -- for example explicitly list alignment, provide your own vector source/destination type -- you can do a lot by 'styling' your C code while thinking about what the compiler might be able to do with it -- for example, use extra intermediary variables, really break down all the operations you want etc.

Worst case if REALLY the compiler isn't clever enough, this give you a good base to adapt the generated assembly to tweak, without having to actually write the boilerplate bits.

In most case, the resulting C function will be vectorized as good, or better than the hand coded one I'd do -- and in many other cases, it's "close enough" not to matter that much. The other good news is that that code will probably vectorize fine for WASM and NEON etc without having to have explicit versions.

[0] https://godbolt.org/

buserror··on MessagePack: It's like JSON, but fast and small.
If your code is compartimented properly, a lower layers (sub objects) doesn't have to have to do all kind of preparations just because a higher layer has "special needs".

For example, pseudo code in a sub-function:

if (that) write_field('that'); if (these) write_field('these');

With messagepack you have to go and apply the logic to count, then again to write. And keep a state for each levels etc.

buserror··on MessagePack: It's like JSON, but fast and small.
I played quite a bit with MessagePack, used it for various things, and I don't like it. My primary gripes are:

+ The Object and Array needs to be entirely and deep parsed. You cannot skip them.

+ Object and Array cannot be streamed when writing. They require a 'count' at the beginning, and since the 'count' size can vary in number of bytes, you can't even "walk back" and update it. It would have been MUCH, MUCH better to have a "begin" and "end" tag --- err pretty much like JSON has, really.

You can alleviate the problems by using extensions, store a byte count to skip etc etc but really, if you start there, might as well use another format altogether.

Also, from my tests, it is not particularly more compact, unless again you spend some time and add a hash table for keys and embed that -- but then again, at that point where it becomes valuable, might as well gzip the JSON!

So in the end it is a lot better in my experience to use some sort of 'extended' JSON format, with the idiocies removed (trailing commas, forcing double-quote for keys etc).

buserror··on lc: List files in categories (and columns) – from Coherent Unix clone
The day is still young. Wait for it, there'll be one (or 3) soon.

With 865 dependencies pulled in by cargo :-)

buserror··on Solaar is a Linux manager for many Logitech keyboards, mice, and other devices
I use for pairing etc and it's great, but the rule editor is just completely bonkers. I tried several times to add a gesture move for the 'gesture' button on my 3S, and eventually gave up!

Seems you need to know the exact keycodes, or names, or whatever key you want to use. Like XF86_MonBrightnessUp. Want to add a combo? not sure how to do that either.

buserror··on I Revived 3-Axis CNC Mill G-Code Simulator
More importantly, what do you use for toolpath generation? I haven't found anything open source that really works...
buserror··on IPMI
Having had a play with both Supermicro and ASRock Rack boards for workstations (admittedly, only H12's so not the "most recent" but from my cursory glance and newer boards, nothing has changed that much), SuperMicro board feels like they were made in 2005, not 2024. It is ridiculous in fact.

* No support for ACPI sleep. In 2024. Seriously. * No support for 4 and 3 pins fans. 3 pins are 100% speed all the time. * IPMI web interface straight out of 2010. * NVME placement prevents you from using heatsinks. * Tons of opaque jumpers on the board, with no board labelling.

The ASRock Rack equivalent board is amazing in comparison.

buserror··on IPMI
IPMI is such an improvement on the old ISA-style iochips, and not even sure they are more expensive these days! It's not just the remote/web access which is great, plain 'introspection' with tools like ipmiutil and ipmitool are super useful, even if you don't have a huge rack 'enterprise' installation.
buserror··on PSA: If you're a fan of ATmega, try AVR Dx
Haven't played with these yet, but they do look interesting. Might have also to add support for the new IO blocks in my AVR simulator simavr[0] -- I still use the AVR a lot, since they have no pipeline and other fancy CPU optimization, they are 'cycle accurate' and are a lot closer to a PIO than most other more complex 32 bit CPUs.. Now that they ALSO have an equivalent to PIO it might even help with reaching faster IO speed when toggling pins.

[0]: https://github.com/buserror/simavr

buserror··on Qimgv – Fast, simple image viewer
Wish it'd preview RAW files. We've been spoiled on Mac for 25+ years with GraphicConverter, and since I switched to Linux desktop more or less full time, that is one of the tool I miss the most.
buserror··on MacRelix – Unix-like features for classic Mac OS
Aahhh, I still have my set of floppies for MacMinix! I ran than on a Powerbook 140 back then, it was quite cool! This predates Linux by quite a bit, having any way to have a shell on MacOS back then was incredible.
buserror··on Autodafe: Tools for freeing your project from the clammy grip of autotools
I've been building distros for years, and the most wasteful part of it is running zillions of auto. process that waste most of the build time of each projects looking for mostly the same things.

I always thought it was insane. Perhaps it was a good idea 30 years ago when we were actually building for dozens of 'unstable' variants of UNIX with a dozen compilers, but these days?

And yes, MOST projects can be compiled just fine with a 2 pages Makefile, more often than not with -j for parallel build, and as a bonus, won't keep around a dozen turd files.

Oh also, it is supposed to help 'portability' but MOST of my time is wasted trying to fix autotools configs when it invariably break in some new interesting and arcane ways.

buserror··on Show HN: Libmui is a macOS Classic widget lib for Linux
The IIgs UI is not simplified at all, it had pretty much all the toolkits the Mac had in terms of user interface. It had all the graphics bits, the IPC bits, even networking, layered filesystem etc etc; it is often overlooked how far they had gone in term of featureset at the time of GS/OS 6.03 which was the last (official) release.
buserror··on Show HN: Libmui is a macOS Classic widget lib for Linux
No, not until quite a few versions later.
buserror··on Show HN: Libmui is a macOS Classic widget lib for Linux
Extra memory and performance is invariably passed down to people who will come up with lovely bloat to fill the void :-)

I find it quite horrifying in many ways to see how much resources are used for so very little in terms of user benefits. Not just 'UI' per se, but just general functionality.

And the 'reasons' are always the same too, 'it is more maintainable' (read: it is not, in 2 weeks time the new version of your stack will break your 'code'.), 'it is easier to read for a newcomer' (read: no, not at all, it is just this week's fancypants trend), 'it is more secure' (read: just because we don't actually KNOW what it's doing, and rely on hopefully someone else for it) etc etc.

buserror··on Show HN: Libmui is a macOS Classic widget lib for Linux
Yes there are a few tweaks to make -- I worked in 'passes' in the code, and my last 'pass' at the menus was a little while ago, normally I go and fix the little nags as I go along.

Last (big) pass was the text editor, which isn't totally finished and polished but I had to release something for the deadline ;-)

buserror··on Show HN: Libmui is a macOS Classic widget lib for Linux
Aqua was something else when it came out wasn't it? BUT -- fun fact, that pulsing "OK" button was using 30%+ CPU on my iMac DV back then...

The price you had to pay for lickable UIs :-)

buserror··on Show HN: Libmui is a macOS Classic widget lib for Linux
It is not terribly difficult to make 'crafted' UI localizable, there are a few rules to follow that's all. I worked for apple back in the day and shipped software translated in countless languages, and the same 'crafted' UI worked pretty well in all cases. Of course there are always exceptions, and 'modern' HiDPI present issues if all you do is use hard coded pixels as a unit, but it is still manageable.
buserror··on Show HN: Libmui is a macOS Classic widget lib for Linux
I was pondering using Chicago as default font, but it is pretty 'typecast' (no pun intended, this time ;-)) -- Charcoal (that was used in System 8.x onward) is a lot less 'known' and also, I think, a significant improvement...

But it is actually pretty easy to switch to Chicago in the library -- apart from the clone you mention, there is also a 'plain' TTF version of the original Chicago floating around...

buserror··on Backdoor in upstream xz/liblzma leading to SSH server compromise
Thanks for that post, I wish people stopped pushing ever so more complicated build systems, opaque, non-backward compatible between their own versions when a 2 pages Makefile would work just fine, and still work in 20 years time.
buserror··on My favourite animation trick: exponential smoothing (2023)
All of this work for buttons that toggle on a mouse/finger DOWN. How irritating that there is no intermediate state on the mouse DOWN and the toggle on the mouse/finger UP.

Because it allows you to /cancel/ the action.. click, 'oops don't want that' drag mouse/finger out and release. No action taken. User is in control. Amazing.

buserror··on Meta outage
I can confirm that IRC still works! Pfewwwww..... /me takes his coat.
buserror··on Miles Davis and the recording of Kind of Blue
You could try Dave Brubeck "time out" as an introduction to jazz, it is awesome in many ways and has quite a few catchier tunes. Also Bill Evans Trio and listen to that first. Only problem is that you'll be addicted for life afterward, but it's not that bad as a habit :-)
buserror··on Toyota was right about hybrid cars
It's all a US ploy to make you spend money. In europe nobody changes their oil every year it's absolutely bonkers when I read that. My new BMW X5 manufacturer first service is set at 18000 miles that's likely 2+ years of ownership! I also have a petrol Z3 and I change the oil every 5 years maybe. It still is 24 years old and goes like clappers. And last time I changed the oil, the old one looked absolutely fine.
buserror··on Zellij: A terminal workspace with batteries included
Same here, I use tilix as my new favourite, it has panes & tabs that are just there without having me to remember a complex combo... If I'm remote well I do it the old school way with gnu screen!

I tried a few times to see if I could get any advantage using tmux but always revert back to none at all. To me the scrollback that works 'as expected' without having to remember key combos, and also work with the mouse are a key feature!

← PreviousPage 2 of 23Next →