home tags events about rss login

Things happen.

zev honked back 22 Feb 2024 14:23 -0800
in reply to: https://mstdn.ca/users/oclsc/statuses/111977440325264706

@oclsc @cks @benjojo Yes, there is indeed plenty in the world of BMC firmware to be irritated or horrified by...the most striking example to me is something I've occasionally seen flicker by and disappear as the BMC web UI loads on certain servers, not fully implemented and actually exposed, but clear evidence that somewhere in the firmware vendor chain someone thought it was a swell idea: I shit you not, an app store.

zev honked back 22 Feb 2024 14:00 -0800
in reply to: https://mastodon.social/users/cks/statuses/111977230760054856

@cks @benjojo There's unfortunately often a delay between when the BMC powers on the host processor and when the interfaces by which the BMC can read the temperature of that processor (e.g. PECI on Intel platforms or SB-TSI for AMD) actually come fully online. The fans are usually on the same 12V power rail as the host and hence turn on when it does, and lacking a valid temperature reading from the host CPU, going into failsafe mode is the...well, safe option. Logic like "if we just turned it on right now on it's probably not very hot" runs into problems if it had recently been on and is still holding a lot of residual heat...you could potentially get into tracking more history to disambiguate that in turn, but then you're suddenly a lot more stateful than you were which gets messy and fragile (especially considering that the BMC and the host can both reboot independently of each other), and it's ultimately just a lot simpler and less error-prone to make it (relatively) stateless and err on the side of not cooking things. And of course since most servers end up situated in places where there usually aren't people around to hear them, acoustic noise optimization is typically pretty low on the list of priorities.

(Yes, I work on BMC firmware.)

zev honked 19 Feb 2024 21:37 -0800

Photographing a sea lion from shore can be tricky.

sea lion back (or belly?) poking up from the water

zev bonked 10 Feb 2024 01:27 -0800
original: ols@yeet.ols.wtf

In reality, plants are actually farming us, by giving us oxygen daily, until we all eventually decompose so they can consume us

zev honked 06 Feb 2024 14:13 -0800

Scenes from what ended up being not quite the jankiest file transfer I've ever performed, but probably a close second.

shell command using a nested loop to break up a file called "image-kernel.xz.b32" into 40-line chunks and paste them one at a time into an X11 window via 'xdotool', with a 0.1-second sleep after each one

zev honked 01 Feb 2024 03:48 -0800

It's one thing for a vendor's OEM IPMI command set to contain, in various places:
- big-endian bytes
- little-endian bytes
- binary bytes
- BCD bytes
- standalone (single) ASCII bytes

But I think cramming all of the above into a single 16-byte message is a pretty award-worthy accomplishment.

Contemplating filing a feature request to get EBCDIC added to the roadmap for future generations though...gotta keep innovating!

zev honked back 31 Jan 2024 18:18 -0800
in reply to: https://fosstodon.org/users/ianthetechie/statuses/111853653596988327

@ianthetechie @cliffle @iliana Having used both for code review at least semi-regularly over the last few years, I'm a fan of...neither, really. Github lacks some major, fairly basic capabilities like commenting on commit messages; Gerrit leaves a lot to be desired UI-wise IMO and frequently exhibits annoying little bugs. I recall liking Review Board reasonably well last time I used it, but it's been a while so who knows...

zev honked 26 Jan 2024 02:27 -0800

You know you've done some quality web design when "view source" doesn't look all that different.

zev honked 24 Jan 2024 15:32 -0800

3:15 PM: Late birds get worms too.

grainy photo of a small bird in my back yard, its unearthed earthworm prey lying helpless before it

zev honked back 17 Jan 2024 15:00 -0800
in reply to: https://hachyderm.io/users/saethlin/statuses/111773614061535883

@saethlin @cliffle Ah, upon slightly more careful reading of https://ziglang.org/documentation/master/#Undefined-Behavior I see Zig's release builds also disable the overflow checks by default. Though given that it's apparently a UB category, I guess it's actually worse? (While silent wrapping is still A Bad Thing IMO, it's at least a slight improvement on outright UB I suppose...)

zev honked back 17 Jan 2024 12:50 -0800
in reply to: https://hachyderm.io/users/cliffle/statuses/111773152317053581

@cliffle @saethlin I'll agree that's an advantage, but it seems like that still leaves most of the burden on the programmer to manually identify every place where overflow could potentially occur -- I'd guess a typical test suite isn't likely to hit very many, and certainly not all of them without some relatively heroic levels of rigor. And if they go unnoticed during development and testing only to turn into hidden time-bombs in the release builds everyone runs in production...it doesn't strike me as that much of an improvement in practice?

(Though perhaps this is just boiling down to violent agreement on "overflow-checks=true should be the default".)

zev honked back 17 Jan 2024 12:19 -0800
in reply to: https://hachyderm.io/users/cliffle/statuses/111772806984135563

@cliffle @saethlin At least as far as overflow/underflow go I, for one, (at least for now...) remain unconvinced. Or at least unconvinced that it's a "C problem" any more than it's a "C/C++/Java/Go/D/Ada/Rust problem" -- yes, Rust has the option of trapping it, but if we're counting non-default compiler flags so does C (-ftrapv).

After a cursory search the only mainstream(ish) systems(ish) languages I've been able to find that appear to reliably provide trap-on-overflow without an explicit opt-out are Swift and Zig, FWIW...

zev bonked 17 Jan 2024 12:09 -0800
original: monsieuricon@social.kernel.org

There's a Russian word "zhabogadyuking" ("frog-rattlesnake-ing") which describes a situation when entities whom you actively dislike are fighting with each other.

Gmail says a message is spam because it's from Outlook.com, which sends a lot of spam.

zev honked back 12 Jan 2024 14:27 -0800
in reply to: https://mastodon.social/users/lorddimwit/statuses/111744761976044504

@lorddimwit My personal domain is likewise registered with Gandi, though from recommendations I've seen and positive impressions from their respective websites I think I'll probably be checking out NearlyFreeSpeech and Mythic Beasts as alternatives next time I'm due to renew it.

For server hosting I'm using Tornado VPS (formerly known as prgmr.com), which I think is probably on the expensive side in terms of server resources per dollar but I've been sufficiently satisfied to stay with them. It's been serving my email for about 10 years now I think; if there've been any reliability problems it's never been enough for me to notice...

zev honked 04 Jan 2024 00:41 -0800

Switzerland is a land of many languages, but some truths transcend such things.

fundamental mathematical equations written in snow

fundamental mathematical equations written in snow

fundamental mathematical equations written in snow

zev honked 04 Jan 2024 00:37 -0800

Alps bein' all alpine.

views of the Swiss Alps

views of the Swiss Alps

zev honked 04 Jan 2024 00:31 -0800

Views from atop Jungfrau, CH.

views from atop Jungfrau, CH

views from atop Jungfrau, CH

zev bonked 15 Dec 2023 18:04 -0800
original: wikipedia@wikis.world

Here's how the "Ship of Theseus" page looked in July 2003 when it was first created! Since then, the article has been edited 1792 times. 0% of its original phrases remain.

A Wikipedia page for Ship of Theseus is shown. The article reads "According to an ancient Greek legend, Theseus had a warship that was preserved as a historical relic by the Athenians. Some of its boards rotted and had to be replaced. After many, many years, many such replacements occurred. Eventually, none of the original boards were present. Philosophers could then debate whether it was the same ship that Theseus had used, and if not, when it had ceased to be so.
A modern embellishment
If Theseus paid a nontransferable fee, allowed to be used for only one ship, for the privilege of docking in a particular harbor, would he violate the non-transferability of his license if repeated replacement of boards eventually had the result described above?"

zev honked back 08 Dec 2023 20:31 -0800
in reply to: https://mckellar.social/users/ian/statuses/111548480544457287

@ian @djm @fugueish @patrickod At a (now-defunct) chip startup I worked at a few years ago, at one point we had the processor design at a stage of simulation/emulation where the only debugging output we had for the code running on it was a trace of bits [5:2] of the PC register...naturally I wrote a little routine to "print" an arbitrary 64-bit value through it four bits at a time by performing a sequence of indirect branches into a little 16-instruction target zone.

zev honked back 03 Dec 2023 12:53 -0800
in reply to: https://hachyderm.io/users/w8emv/statuses/111518136461083260

@w8emv There may be a cleaner way of doing this (it's been a few years since I wrangled any makefiles non-trivially), but with eval, where's there's a will, there's a way...

$ cat crossprod.mk 
XS = x1 x2 x3
YS = y1 y2 y3
define mktgt
        @echo x: $1, y: $2
        @sleep 1
all: $1-$2
$(foreach x,$(XS),$(foreach y,$(YS),$(eval $(call mktgt,$x,$y))))
$ time make -j -f crossprod.mk all
x: x1, y: y1
x: x1, y: y2
x: x1, y: y3
x: x2, y: y1
x: x2, y: y2
x: x2, y: y3
x: x3, y: y1
x: x3, y: y2
x: x3, y: y3
real	0m1.009s
user	0m0.010s
sys	0m0.008s

(Due to limitations of the medium, please excuse the slightly mangled whitespace...)

zev bonked 27 Nov 2023 16:50 -0800
original: ktemkin@chaos.social

i don't understand; i've used dozens of these so far and i'm not any closer to passing FCC??? help???

an advert for beads in the shape of ferrets

zev honked 27 Nov 2023 14:12 -0800

Hovering over a work Sharepoint email link...good thing those spaces are zero-width or they might have screwed something up!

Browser link-preview display showing "mailto: %u200B[redacted]@[redacted]%u200B%u200B%u200B"

zev honked 27 Nov 2023 04:16 -0800

From the curse of docker:

...and opinionated is often a nice way of saying "unsuitable for any configuration other than the developer's."

[nods emphatically]

zev honked back 26 Nov 2023 14:31 -0800
in reply to: https://honk.bewilderbeest.net/u/zev/h/9b2pzjj76Mf7f279B2

@mcc @megmac @swetland All the ones that translate it to "/tmp" above also do the same with ./. instead of . (not hugely surprising). It gets interesting with other ways of spelling the same thing though:

$ for s in bash zsh dash mksh 'busybox sh' tcsh rc; do echo $s; strace -qqq -e chdir -e signal=none $s -c 'cd ./foo/..'; done
chdir("/tmp/./foo/..")                  = -1 ENOENT (No such file or directory)
chdir("./foo/..")                       = -1 ENOENT (No such file or directory)
bash: line 1: cd: ./foo/..: No such file or directory
chdir("/tmp/foo/..")                    = -1 ENOENT (No such file or directory)
chdir("./foo/..")                       = -1 ENOENT (No such file or directory)
zsh:cd:1: no such file or directory: ./foo/..
chdir("/tmp")                           = 0
chdir("/tmp")                           = 0
busybox sh
chdir("/tmp")                           = 0
chdir("./foo/..")                       = -1 ENOENT (No such file or directory)
chdir("./foo/..")                       = -1 ENOENT (No such file or directory)
./foo/..: No such file or directory.
chdir("./foo/..")                       = -1 ENOENT (No such file or directory)
rc: ./foo/..: No such file or directory

bash & zsh handle it correctly IMO, whereas dash, mksh, and busybox get a bit overzealous and hallucinate the existence of a directory that isn't there (or isn't actually a directory -- the above is unchanged even after running touch foo, aside from s/ENOENT/ENOTDIR/).

zev honked back 26 Nov 2023 14:18 -0800
in reply to: https://chaos.social/users/swetland/statuses/111473334417944832

@swetland @mcc @megmac Yeah, as alluded to elsewhere in the thread, this is due to the shell doing "unexpected" things internally... cd . doesn't really translate to chdir(".") in most cases:

$ for s in bash zsh dash mksh 'busybox sh' tcsh rc; do echo $s; strace -qqq -e chdir -e signal=none $s -c 'cd .'; done
chdir("/tmp")                           = 0
chdir("/tmp")                           = 0
chdir("/tmp")                           = 0
chdir("/tmp")                           = 0
busybox sh
chdir("/tmp")                           = 0
chdir(".")                              = 0
chdir(".")                              = 0

So the "trick" in question here won't work if you're using rc or tcsh.