Email or username:

Password:

Forgot your password?
471 posts total
Alex Schroeder

I kept feeling that mail wasn't all that important anyway these days but now that Migadu has been having problems with my mail for more than five hours I feel that email is extremely important! :angry_laugh:

Alex Schroeder

For those curious about Migadu, or baffled by their lack of email (like I was), the status page is here:
https://status.migadu.com/

Alex Schroeder

I recently set a different default font for my browser and every time I see a website use this font it makes me jump – including when I visit my own blog, using this browser. That's how rare it is for websites to not change the default font.

Alex Schroeder

I'm at the point as somebody who runs a single-user instance where I don't feel comfortable posting images to my account because the images are already on the blog and reposting them would just waste disk space on my server. I guess this would make more sense if I started expiring old posts from this fedi acccount but I stopped doing this because GoToSocial doesn't do it automatically and I stopped using mastodon-archive for this account because I have access to the sqlite.db for this instance if I really need to search for something.

So, if you will, two images of #Hippeastrum flowers.

Here is a picture that shows flowers opening in front of a light black surface, a dead TV screen. They are beautifully red and white, with thin veins visible.
https://alexschroeder.ch/view/2024-02-19-hippeastrum-7.jpg

And here is a picture of a full frontal flower with my home-office desk visible in the background, and a corner of shelves with books and games. If you're a nerd you might spot Planescape or Advanced Squad Leader boxes and other role-playing game books. If so, let me just say that I have an alt account over on tabletop.social; see my profile for the link.

Anyway, plants and birds are more important than computers. I just wanted to say that. 😅

I'm at the point as somebody who runs a single-user instance where I don't feel comfortable posting images to my account because the images are already on the blog and reposting them would just waste disk space on my server. I guess this would make more sense if I started expiring old posts from this fedi acccount but I stopped doing this because GoToSocial doesn't do it automatically and I stopped using mastodon-archive for this account because I have access to the sqlite.db for this instance if...

Alex Schroeder

Ah… here's one of the things GoToSocial still doesn't do: post editing! 😿
The missing link to the home office picture:
https://alexschroeder.ch/view/2024-02-19-hippeastrum-6.jpg

There are more pictures on the blog, but the two I mentioned are the best. 🤩
https://alexschroeder.ch/view/2024-02-19-hippeastrum

Alex Schroeder

My program has man pages and now I'm wondering whether I should add a lot more comments to the code itself … maybe even turn it into some sort of literate programming artifact. Then again, I don't know. I haven't ever read good documentation of a program from beginning to end. It's either just simple function references, which is nice, but that already works, no extra required. Or I need to search the web for examples of how to use the functions where I don't understand the documentation. If that's the case, then it would be enough to just writer better documentation for packages and functions.
I guess I'm figuring out whether Knuth is right: "The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style. Such an author, with thesaurus in hand, chooses the names of variables carefully and explains what each variable means. He or she strives for a program that is comprehensible because its concepts have been introduced in an order that is best for human understanding, using a mixture of formal and informal methods that reinforce each other." I saw this quote in Jon Udell's Literate programming in Go where he talks about the code-as-wiki approach falling "far short of the standard set by Donald Knuth".
https://www.infoworld.com/article/3677772/literate-programming-in-go.html

My program has man pages and now I'm wondering whether I should add a lot more comments to the code itself … maybe even turn it into some sort of literate programming artifact. Then again, I don't know. I haven't ever read good documentation of a program from beginning to end. It's either just simple function references, which is nice, but that already works, no extra required. Or I need to search the web for examples of how to use the functions where I don't understand the documentation. If that's...

Alex Schroeder

I'm looking at the tools available, like go doc and pgksite and at my program (a "command"), and I'm confused. I think the tools are geared towards the documentation of libraries. For example, my command doesn't export any functions. Why should it? The result is that the documentation tools don't show any of the documentation I have written. In other words, if I want documentation to be available for developers in long form (remember my starting point is literate programming), then the go documentation tools seem to be unsuitable unless I pack it all into a single file. If I write a comment for the main function that says "main calls [serve] when Oddmu is called without arguments and [commands] when called with arguments." then it will not get rendered because main is not exported.

I'm looking at the tools available, like go doc and pgksite and at my program (a "command"), and I'm confused. I think the tools are geared towards the documentation of libraries. For example, my command doesn't export any functions. Why should it? The result is that the documentation tools don't show any of the documentation I have written. In other words, if I want documentation to be available for developers in long form (remember my starting point is literate programming), then the go documentation...

Alex Schroeder

Gaza: over 30,000 dead in half a year.
"As of 18 February 2024, over 30,000 people (28,473 Palestinian[1] and 1,410 Israeli[9]) have been killed in the Israel–Hamas war, including 88 journalists (83 Palestinian, 2 Israeli and 3 Lebanese) and over 136 UNRWA aid workers."
https://en.wikipedia.org/wiki/Casualties_of_the_Israel%E2%80%93Hamas_war

Iraq: 300,000 dead in over 20 years.
"Documented civilian deaths from violence: 187,116 – 210,566
Total violent deaths including combatants: 300,000"
https://www.iraqbodycount.org/

The two seem somehow related, I just can't put it into words. High tech weapons against civilians, drones, city warfare, a population that hates the invader, news so terrible I can't even finish reading the Wikipedia articles.

Oh, and out of curiosity, I had to look up the situation in Ukraine, too.
«Ukrainian forces: ~70,000 killed, 100,000–120,000 wounded (US estimates) … Russian forces: ~120,000 killed,
170,000–180,000 wounded (US estimates) … the United Nations confirmed that by 31 January 2024, 10,378 civilians had been killed and 19,632 had been injured, but said they believe the real number is higher.»
https://en.wikipedia.org/wiki/Casualties_of_the_Russo-Ukrainian_War

Gaza: over 30,000 dead in half a year.
"As of 18 February 2024, over 30,000 people (28,473 Palestinian[1] and 1,410 Israeli[9]) have been killed in the Israel–Hamas war, including 88 journalists (83 Palestinian, 2 Israeli and 3 Lebanese) and over 136 UNRWA aid workers."
https://en.wikipedia.org/wiki/Casualties_of_the_Israel%E2%80%93Hamas_war

Alex Schroeder

Oddmu 1.7 features uploading multiple files and fixing the cursed exif orientation issue. What weird mess. The only thing I haven’t figured out is what Go library one would use for lossless jpeg rotation. Is it possible to resize jpeg files without going via pixels? I’d think so but again, what Go library to use.
#oddmu #GoLang https://alexschroeder.ch/view/Odd%C2%B5

Alex Schroeder

Sooo… what's the word on the future of #nginx, from a #Debian point of view? I have a man page on how to setup Apache as a reverse proxy for Oddmu. Now I want to write a similar page for nginx. Do I switch nginx for freenginx? Something else? Watch and wait?

Alex Schroeder

Sometimes I fear that scaling images to 1200px and quality 75 is no longer good, even for casual browsing.
https://alexschroeder.ch/view/2024-02-18-wallis-again
Contains pictures of Hepatica nobilis and Pulsatilla vulgaris.

Alex Schroeder

I think what's weird is that photos that are 1200px wide, quality 75, look OK on my phone without zooming in. Image size is about 120–360KiB, which I think is a reasonable downsizing from the usual 3–4MiB. So if it doesn't look great on the desktop, I guess that's just the desktop being 1920px wide.

Alex Schroeder

"QuickJS is a small and embeddable Javascript engine. It supports the ES2023 specification including modules, asynchronous generators, proxies and BigInt."
https://bellard.org/quickjs/
via @kr1sp1n

I had never heard about QuickJS before but it sure sounds cool. I remember years ago I was semi-interested in Rhino, but then I discovered it was written in Java and then I was far less interested.
https://github.com/mozilla/rhino

Alex Schroeder

Ever wondered about the personal pages out there, whether the authors call it a blog, a wiki, a memex, a digital garden or a Zettelkasten, running software the authors wrote themselves or got from a friend. I thought it'd be neat to list them all somewhere, with a link to the site and the software and a very short comment by the author. The collection is called "The text and the code go hand in hand”.
https://transjovian.org/view/web-sites/index
Let me know if you want to be added, removed, or if you'd like to have your entry changed.
#blog #wiki #memex #DigitalGarden

Ever wondered about the personal pages out there, whether the authors call it a blog, a wiki, a memex, a digital garden or a Zettelkasten, running software the authors wrote themselves or got from a friend. I thought it'd be neat to list them all somewhere, with a link to the site and the software and a very short comment by the author. The collection is called "The text and the code go hand in hand”.
https://transjovian.org/view/web-sites/index
Let me know if you want to be added, removed, or if you'd...

Wim 🅾

@alex I fear that you have now irrevocably sown a seed in my mind, and I will end up writing my own static site generator purely so I can be on that list.

Alex Schroeder

Git does not have wiki culture. If I could rebase and squash and edit to my hearts delight, that would work for me. But git has blockchain culture: write once, append only, no take-backs, and I don’t like it.

Alex Schroeder

I guess I should start writing some sort of release notes with user-visible changes for #Oddmu, my wiki/blog/memex/static site generator…
https://alexschroeder.ch/view/oddmu/index

Alex Schroeder

Listening to what lead to the Dust Bowl and it’s not what I thought.

The History of US Agriculture: How Jim Crow paid off for the Midwestern family farm
Thursday, 13 April 2023
https://sphinx.acast.com/p/open/s/63d97cdef2393300101e05e2/e/643879a70caf9f0011f8b4b7/media.mp3

Farm to Taber
https://shows.acast.com/farm-to-taber

Alex Schroeder

Reading about the wonders of the memex method, by Cory Doctorow. He notes how he called the blog his "outward brain" back in 2002 and I have jokingly used similar language when talking about books or movies I had blogged about. I remembered the blogging but not what I had written and had to look it up before continuing the conversation. Cory also has this interesting bit which I had never considered: « For more than a decade, I’ve revisited “this day in history” from my own blogging archive, looking back one year, five years, ten years (and then, eventually, 15 years and 20 years). … This structured, daily work of looking back on where I’ve been is more valuable to helping me think about where I’m going than I can say. »
https://pluralistic.net/2021/05/09/the-memex-method/
via @chgowiz

Reading about the wonders of the memex method, by Cory Doctorow. He notes how he called the blog his "outward brain" back in 2002 and I have jokingly used similar language when talking about books or movies I had blogged about. I remembered the blogging but not what I had written and had to look it up before continuing the conversation. Cory also has this interesting bit which I had never considered: « For more than a decade, I’ve revisited “this day in history” from my own blogging archive, looking...

Alex Schroeder

I got about halfway through "A terminal case of Linux" which is about terminals, syscalls and stuff like that. An interesting read!
https://fasterthanli.me/articles/a-terminal-case-of-linux

>

Then it returns -1, which strace helpfully translates to ENOTTY, ie. "error not a TTY".
So that means... we can make that syscall ourselves!

Found via https://fosstodon.org/@esoteric_programmer@social.stealthy.club/111930232259064492 by @esoteric_programmer

I got about halfway through "A terminal case of Linux" which is about terminals, syscalls and stuff like that. An interesting read!
https://fasterthanli.me/articles/a-terminal-case-of-linux

>

Then it returns -1, which strace helpfully translates to ENOTTY, ie. "error not a TTY".
So that means... we can make that syscall ourselves!

Alex Schroeder

@snarfed I want to opt-out. I hate having to opt out. There are thousands of people on this world that add me to their services (spam, mostly) and I have to opt-out of them all. It doesn't scale. I don't understand how you are manually opting people out, though. I hope you get thousands of messages that you have to handle manually, I guess? That's how it feels. Same with those hashtags in my bio. It's my bio and people assume that I might want to use it for #nobridge, #nobots, #noindex, #nosearch, #nospam and on and on? It doesn't scale and it pisses of thousands of people. Only a little, for sure, but since so many developers and service providers force thousands of people to suffer a little, it still adds up. Like all those stupid NO_TELEMETRY=1, telemetry=no, and other settings where I have to opt out, for every single development environment, language, tool, program and app I want to use. Yes, it gets you more users, but they all hate you for it. Perhaps you don't care, because somebody else is going to enjoy this service. But how many small stingers of hate are you willing to impose on people for that one drop of joy you deliver? This only scales if you don't feel the pain, I guess.

CC @snarfed.org – you can opt out by replying "please remove me from this conversation", I guess. Or block me. Or deferate me. Or add #OptOutIsWrong to your bio.

@snarfed I want to opt-out. I hate having to opt out. There are thousands of people on this world that add me to their services (spam, mostly) and I have to opt-out of them all. It doesn't scale. I don't understand how you are manually opting people out, though. I hope you get thousands of messages that you have to handle manually, I guess? That's how it feels. Same with those hashtags in my bio. It's my bio and people assume that I might want to use it for #nobridge, #nobots, #noindex, #nosearch

Alex Schroeder

I'm trying to think of a German word for malicious compliance but nothing comes to mind. In German there is "Dienst nach Vorschrift" which means to do the job exactly as specified (and usually as slowly as possible) and there's a more aggressive "Bummelstreik" which is basically not-quite a strike since you're present but it's a de facto strike since you're working a slowly as possible.

Anyway, I liked this thread:
https://mastodon.social/@nixCraft/111913535961720415

I'm trying to think of a German word for malicious compliance but nothing comes to mind. In German there is "Dienst nach Vorschrift" which means to do the job exactly as specified (and usually as slowly as possible) and there's a more aggressive "Bummelstreik" which is basically not-quite a strike since you're present but it's a de facto strike since you're working a slowly as possible.

Alex Schroeder

I looked at some IP numbers hitting my web server and remembered that the firewall rules are all forgotten on a reboot. Lucky me I have a script with some of the IP ranges!
https://alexschroeder.ch/admin/ban-cidr
#ButlerianJihad

The reason I feel this is OK is that IP rangers are either residential (people) or corporate (hosting companies). I usually don't mind blocking companies.

Alex Schroeder

I wrote some tests for a feature using fsnotify and now I have a file that gets deleted every now and then during those tests. It drives me nuts:

This is the problem:

alex@melanobombus ~/s/oddmu> make test
go test .
ok  	alexschroeder.ch/cgit/oddmu	0.621s
alex@melanobombus ~/s/oddmu> ls view.html 
ls: cannot access 'view.html': No such file or directory

Restore the file, run the test again:

alex@melanobombus ~/s/oddmu> make test; ls view.html
go test .
ok  	alexschroeder.ch/cgit/oddmu	0.587s
view.html

Haven't had a Heisenbug in a long time. I wonder what this is all about.
https://src.alexschroeder.ch/oddmu.git

I wrote some tests for a feature using fsnotify and now I have a file that gets deleted every now and then during those tests. It drives me nuts:

This is the problem:

alex@melanobombus ~/s/oddmu> make test
go test .
ok  	alexschroeder.ch/cgit/oddmu	0.621s
alex@melanobombus ~/s/oddmu> ls view.html 
ls: cannot access 'view.html': No such file or directory
Go Up