• 0 Posts
  • 17 Comments
Joined 2 months ago
cake
Cake day: August 9th, 2026

help-circle
  • I do a simpler variant of this that works using some lovely accidents in Apache httpd’s content negotiation and (like the linked article) Gemini.

    https://alex.corcoles.net/notes/tech/how-this-site-works describes and demonstrates the trick.

    The key is here:

    Interestingly, when the request does not have an Accept header that selects a unique file, Apache replies with the smallest file, which frequently is the gemtext version. When using curl in a terminal, Apache replies with the gemtext version, which is nicer to read on a terminal.

    MultiViews is a wonderful feature. It’s a real shame that services that host static sites do not seem to configure this. It also enables “proper nice URLs”.

    Many sites use URLs such as https://example.com/my-article/ with a trailing slash, notably WordPress. This makes turning sites static quite annoying- you should create a directory per article and stick an index.html in each directory. If you use MultiViews, then you can just have my-article.html and use https://example.com/my-article without the trailing slash, which is much more convenient.

    (This also enables my main trick above- making a site that works across different formats and protocols much more easily.)

    I should run a static site hosting service that enables this trick and that allows dual Gemini+gemtext/HTTP+HTML sites. SourceHut pages is really close to this :(


    score 1 · canonical


  • Classes start on Wednesday. I’m getting the master’s degree required to teach secondary school. I have not studied in more than 20 years, I’m a bit scared. (Also because it’s remote teaching and I’m not sure how I will adapt. I was a taking-notes-with-a-pen person, but writing using a pen is exhausting to me now. Not sure how I will keep engaged, as so far I dislike video as a way of learning stuff.)


    I wrote a dumb Klondike solver (50% solve rate, apparently you can get to 80%. My brain does 14%). I was thinking about writing a Klondike game, but…

    • I’d like multidevice support, and I don’t want to run a service, nor I want to tie people to a single cloud storage provider. https://remotestorage.io/ sounds good, but I’d like something better and it does not seem to exist. (E.g. a library that allows you to target different cloud storage providers like Google Drive and iCloud. Unfortunately, Nextcloud does not have great support to work as an application storage backend :(

    • I’d like to write something I can deploy to phones and desktops. I’d like it to be accessible. I think my best option might be web technologies and perhaps Tauri. But I really feel a bit lazy about doing complex UI work. I did some Yew in the past and my solver is Rust, so I could go in that direction.


    After finishing the solver, I started dabbling in a monitoring system which is Nagios with a few twists. Configuration so far is much simpler (just a bunch of commands to run), plugins are a bit more complex (a single plugin can provide n check results), and it’s based around DuckDB. I have two processes ready; one that schedules and runs checks, the other receives check results and dumps them to DuckDB. DuckDB has this fancy thing where you can start an HTTP/SQL API thing in process, so my plan was to have an alerting process that just queries DuckDB for stuff that should notify. With SQL/views I should be able to make the notification logic pretty customizable.

    It’s a neat idea and what I have is close to being useful. However, I did this because my Nagios setup was annoying (Nagios sends alerts after X checks fail. Can’t have a different X for warning and critical states without a ton of configuration. My setup should make this easy.)… but I found that a) my warning notifications which were bothering me… I could just mute them without effect and b) they come from a monitoring agent I wrote ages ago that monitors many things, including systemd units… but I realized I can’t get systemd to report what I need properly :(


    With regards to Klondike, I bought a deck of cards because that was the most convenient way I could think of to verify my solver. And then I realized that my motor skills suck. So I’ve been playing some physical Klondike to train a bit my hands. Also I’ve learned I have delicate hands, because fiddling with cards hurts my fingers! I might play a bit more.


    score 1 · canonical




  • No physical cards and only accepting cash or QR-based custom app payment is a really bad combination.


    My stance about using a phone as little as possible is not about replacing it with a laptop, it’s about doing something else entirely. I’m starting to carry a paperback book if I expect to be idle outside for enough time to read. (And if I don’t have enough time to read, I shouldn’t be bored enough to get my phone out, right?)

    Of course, that’s something I’m exploring personally. But if I manage to do that, then I don’t really care so much about my phone not being mine. I’d be doing most of my computing on a computer I own. And yep, that doesn’t solve needing to do tasks on the go… hopefully that will work for me, but might not work for others.


    score 1 · canonical


  • Hah, you are not wrong.

    Actually, the sideloading Google measures as they are now do not bother me as much as the rest of stuff that’s happening and that is coming. (Apparently, people do fall to installing malicious APKs from outside the Play Store!)

    For banking, as long as you can get physical cards, in the end you will be carrying a tracking device because you want to carry a phone on you; if you have a physical card you could leave the compliance device at home most of the time and use it only for stuff other than payment. (I still use physical cards to pay because I don’t think phone payments are really more convenient. Digging my card from my wallet is inconvenient, but I don’t think paying with my phone is better on every sense.)

    (What pisses me off in this case is that the reason it is a tracking device it’s because it’s associated to an id card because you cannot buy phone line without providing id. AND THIS SHOULD MAKE PHONE SPAM SOLVABLE YET IT’S NOT. If they solved spam then at least there’d be a good reason for it!)

    My plan would be: phone only for calls, “urgent instant messaging” (e.g. messages that cannot wait until I’m home), and apps that are forced on me (banks, gov’t, proprietary messaging platforms for people I must communicate with that won’t use anything else, etc.). Absolutely nothing else. Anything that I can do on a Linux desktop at home, is done there, or not done at all.


    score 1 · canonical


  • Well, my thought is- the main problem of being forced to have an Android/iOS dongle is that you have to pay for it, when it’s required of you. Otherwise… technically where’s the problem with that?

    We will see, but right now I would expect traditional PCs to continue existing for a long time, perhaps for as long as I intend to want to do computing. Right now I’m a bit unhappy with Linux + Gnome, but I think I could switch to FreeBSD + KDE and hopefully that would keep working for a good while.

    In the past, we used to have a single computer, so switching to Linux meant dual-booting for the stuff that required Windows and a lot of headaches. Nowadays keeping what I call “the compliance device” and “the cult device” (a device you keep for general computing in a “praying” room at home) seems more doable.


    score 1 · canonical


  • Thanks for the link.

    I don’t know. I’ve thought forever that computers are dying and after reading The Eternal Mainframe it became even more clear to me; personal computers were an “accident” that IMHO brought the people many great things, but huh, I don’t know how it will play out. Phones being proprietary dongles that you can only use for certain stuff is… something.

    (Actually, on some aspects it could be good to be able to do critical stuff such as banking on a massively locked down device. And if people kept these locked down devices as “the bank, gov’t stuff dongle” and stopped using them for being Internet-connected 24x7… maybe I’d be happy with that. However, that last part seems quite unlikely to me.)


    score 1 · canonical



  • Given my complex relationship with the term “software engineering”, I should have known already that:

    Throughout her career, Hamilton worked to achieve recognition for software engineering as a dedicated discipline.

    “I fought to bring the software legitimacy so that it — and those building it — would be given its due respect, and thus I began to use the term ‘software engineering’ to distinguish it from hardware and other kinds of engineering, yet treat each type of engineering as part of the overall systems engineering process,” Hamilton told El Pais in 2018. “When I first started using this phrase, it was considered to be quite amusing. It was an ongoing joke for a long time. They liked to kid me about my radical ideas. Software eventually and necessarily gained the same respect as any other discipline.”

    I still think, despite brilliant work to argue the opposite (Lobsters discussion) that most of what I’ve been paid to do as a “software engineering” is not engineering. Margaret Hamilton’s work, though, clearly is. Maybe the problem is that there is not so much will to bankroll software engineering, because other software work seems to work much better generating profit.


    The video were Margaret explains the “astronaut making a child’s mistake” might not be Therac-25, but it’s definitely worth watching a video.


    Thoughts on the use of “defensive programming” in the article? I suspect there are two interpretations of the term a) defending from user mistakes (good!) and b) defending from software defects (which I rarely see done in a way I like).


    edit: The other salient thing I should have known is that Margaret Hamilton worked with Lorenz! (Finding the link made me discover a 2014 XKCD I somehow missed.)


    score 4 · canonical


  • I might need to carry a separate stock Android phone of burner quality just for this nonsense

    I call this “the compliance device”. I increasingly believe that we should just bite the bullet and get a vanilla as-standard-as-possible device for things that require it, and then perform the rest of our computing in the least-encumbered device we can find. And I’m increasingly thinking this device should not be mobile, it should have a decently sized screen, and a full-size keyboard.

    The “traditional programmable” computer seems to be on its way out, and we should hold out to them as much as possible. IMHO, phones are a bit of a red herring and… always-on Internet on our pockets is not healthy.


    score 1 · canonical





  • Thinking about a job offer. I enrolled for the master’s degree you need here to be a secondary school here, but an ex-colleague prodded me to apply for his company. They made a decent offer and in theory they would accommodate my studies.

    However, my mind was already set on focusing on the master. I was very disenchanted from my previous gig and the master’s is a plan B to have job options outside coding.

    My ex-colleague’s company is apparently friendly to people who won’t use LLMs for now, and I’m told that only one of the members of the team I’d be going in relies heavily on LLMs, so it’s not a bad option and well, getting paid while I study wouldn’t be so bad.

    I’m considering writing them why I’m taking the master’s. If they still hire me after that (doubtful) then I would be more comfortable joining. (I know it’s not really a recommended strategy to be this kind of transparent to prospective employers, but… I was not even considering a job, so if I lose it, no big deal- and if they hire me anyway, that’s likely a great sign about working there.)

    Other than that, probably I should code a bit. I’m mulling:

    • Implement kind of a real-time relational database on top of LMDB. I think I have a valid design (here and I think it’s an area worth exploring.

    • Continue work on a small Nagios replacement I started drafting. Nagios is much more awesome than most people think, but I’ve become obsessed with a dumb issue with it: to configure a service to take more time to send a notification for warnings than for critical status requires absurdly verbose configuration.

    • I also had an idea that I thought I could implement a kind of version using rclone serve s3. The idea is to provide libraries so that applications can have configurable remote storage; like you use the library in your app and the first time you need to store data, the user gets a dialog so that they can choose some remote storage (Google Drive, Nextcloud, etc.) and grant the application access to a single folder inside that. I feel this would allow application writers to add “sync” functionality to their apps without having to run any backend service. Another idea worth exploring. But this requires so much more effort than the other two that I don’t really want to do it.


    score 1 · canonical


  • WebDAV is a standard storage interface like you want, but it’s pretty crufty and people don’t like using it.

    Yes, but IIRC it delegates authentication to the web server, and I don’t think there really are any implementations to share specific folders to a specific application.

    I’m pretty sure some Firefox extensions are able to sync their data or at least their settings through the Firefox Sync mechanism, but read/unread and starred article lists for a feed reader might be too much.

    Heh, Firefox Sync is great. Except that even my tiny 27.4kb NoScript configuration can’t be synchronized over it. It actually works automatically for all extensions, by the way. It’s pretty neat, but it covers very few use cases and the stringent storage limitations make it even of narrower use.

    And Firefox Sync is the perfect example where my proposal would help. Mozilla could opt not to provide a service, and just allow people to synchronize their data over whatever cloud storage they wanted. (They could even provide very limited cloud storage themselves.)

    edit: rclone serve s3 would be an interesting chunk of a way to implement this. However, unfortunately rclone seems to be headed in a direction I’m not a huge fan of :(


    score 1 · canonical