| Phlog | |
| Home | |
| == 2022-08-15 Dillo's quirks & DPIs for gopher & gemini == | |
| Dillo's website has been parked since ~May of this year, its | |
| development had slowed down considerably and it is probably as | |
| dead a browser can be, so I'm not sure how many people are | |
| actually going to write - or bother using - new plugins (DPI) | |
| for it, but, just in case: | |
| - it already looks into =~/.dillo/dpi= by default, so there is | |
| no need to add another =dpi_dir= entry into =~/.dillo/dpidrc= | |
| (in fact, I'm pretty sure it just reads the first one) | |
| - it doesn't seem to cope too well with multiple .dpi files in | |
| any given DPI subdirectory. | |
| I learned of this when, having installed a second DPI to handle | |
| =gemini:= links, I decided to not bother with deleting the | |
| executable, and to just rename it by giving it an =old.= prefix. | |
| It worked, until I tried using it two days later and it suddenly | |
| didn't: having closed the dillo instance, dpid - and the | |
| association between the protocol and the executable - presumably | |
| went with it, with the error manifesting itself as a series of | |
| Dpi_get_server_port: can't read server port from dpid. | |
| lines in the dillo output. | |
| Fixing it was trivial; figuring out /how/ to fix it, slightly | |
| less so. | |
| Incidentally, the DPIs I have been using are Charles E. Lehner's | |
| =dillo-gopher= and =dillo-gemini=, licensed with GPLv3 and FSF | |
| All-Permissive License respectively, and available as Git repos | |
| through Secure Scuttlebutt: | |
| cel/dillo-gopher | |
| cel/dillo-gemini | |
| - - - | |
| On a slightly different note, I took a stab at revising the | |
| troff macros I use to generate this phlog (and that I'd also | |
| like to use to generate a blog/gemlog): I spent five minutes | |
| adding inline formatting, and wasted the whole afternoon trying | |
| to figure out how to stop =grohtml= from wrapping its output at | |
| ~64 columns. It's /mostly/ a non-issue, but as I am likely to | |
| use preformatted text, I'd like to avoid messing *that*up. | |
| I ended up settling on mangling the HTML in post-processing - | |
| awk to the rescue! - but that's just an ugly hack, one I figure | |
| I'll have to dig into the grohtml code to fix. | |
| Or I might just stop forcing troff to do the text formatting. | |
| Decisions, decisions. | |
| == 2022-08-01 Update - 2022 == | |
| It has been a long time since I last touched this phlog, or | |
| indeed logged into SDF at all. I had almost forgot about it, | |
| possibly - *probably* - because I never got into the habit of | |
| writing regularly: I'd like to, but it doesn't feel right to | |
| write about myself, and I don't feel competent enough to write | |
| about anything else. I *know* that it is objectively untrue, | |
| but impostor's syndrome is a right bastard. | |
| == 2019-11-24 Hardware archeology - Mechanical computing mechanisms == | |
| A long, long time ago - possibly more than a decade - I stumbled | |
| across an old manual on mechanical computers, which were used | |
| for fire control systems back in the forties. | |
| I changed my laptop at least twice since, and even if I | |
| *probably* still have that file, I have no idea where that might | |
| be. | |
| Today, I found it again, almost by accident, when clicking on a | |
| Wikipedia link gave me the magic words I needed for Google to | |
| find it again: it was /Basic Fire Control Mechanisms/, OP 1140, | |
| from 1944, and it's available online from at least two | |
| locations. | |
| I can barely wrap my head around the basic components described | |
| in Section 2, and they are of course impressively impractical, | |
| but also fascinating. Need to implement the trigonometric | |
| functions in hardware? Just cut the right groove into a cam! | |
| And don't worry if your computer is starting to look like a | |
| dieselpunk torture devices, those are just multipliers and | |
| integrators! | |
| Basic Fire Control Mechanisms - Maritime Park Association | |
| Basic Fire Control Mechanisms - Historic Naval Ships Association Archive | |
| == 2019-07-01 Musings on browser history == | |
| Today, I spent quite a bit of time looking for a web page that I | |
| stumbled across back in 2017, detailing how the author | |
| bootstrapped their own (line) editor under FreeDOS by ECHOing | |
| Pascal code to a file, one line at a time. It was nothing | |
| groundbreaking, but interesting, and, no matter what I did, I | |
| could. Not. Find. It. | |
| I tried looking at my Firefox history for that time period - my | |
| old profile is still hanging around - but nada. I tried | |
| googling - well, Startpage'ing - for it, using multiple | |
| different sets of keywords, but nada. | |
| In the end, I found that page in one of my old bookmarks file. | |
| I would have never found it again had I not saved it: neither | |
| the title nor the URL contained any of the keywords I searched | |
| for (ed, editor, edlin, pascal, scratch), and they were not at | |
| all descriptive of its contents. | |
| Once more, I found myself wishing that web browsers would save | |
| the text of the pages we browse. They wouldn't even need to | |
| index them, or to save the HTML, let alone any of the auxiliary | |
| resources needed to render them - JS-only pages can pretty much | |
| get bent, even if snapshotting the DOM is an option - but just | |
| having them save *the text* would be incredibly useful. | |
| To be fair, there has been *some* progress in this area, with at | |
| least one web-extension for this - WorldBrain's Memex - | |
| existing, but... I also wish browsers were uncoupled enough for | |
| this to be doable with a few lines of code. | |
| The netrik web browser (which died a long time ago), for | |
| example, never implemented support for HTTPS, and the author was | |
| considering just letting wget or curl take care of it, with | |
| netrik only handling the rendering of the HTML itself: it would | |
| be even more interesting if the rendering was a completely | |
| separate program, taking in a tree of "widgets" from the parser | |
| - HTML/CSS, normally, but potentially replaceable to handle any | |
| other reasonable similar document layout format. | |
| Troff, maybe. :') | |
| Bootstrapping a line editor under FreeDOS | |
| WorldBrain's Memex [doesn't render w/o JS] | |
| Netrik Web Browser | |
| == 2019-06-26 Restructuring the phlog - part 3 == | |
| I started restructuring my phlog a few days ago, and today I | |
| finished it. | |
| I don't have to create the folder structure by hand anymore, nor | |
| I have to write the gophermaps myself: a small set of groff | |
| macros is taking care of that, together with a small Python | |
| script which iterates over the post files, invoking troff as | |
| needed, creating the folders, and generating the archives. | |
| I update the root gophermap (which contains the text of the | |
| latest post) with a short ed script, which looks for two | |
| markers, `# latest - start' and `# latest - end', deletes all | |
| the lines between them, and adds the text of the latest post | |
| (which my Python script conveniently leaves in a `latest' | |
| gophermap in a format amenable to inclusion). | |
| I spent way too much time for my tastes on this, as I had to | |
| debug a few issues that popped up because I'm used to the GNU | |
| versions of the various tools I used (sed, shell, even ed). | |
| A few things I learned: | |
| - the NetBSD version of ed doesn't have comments (#), and its | |
| read command (r ...) either doesn't do tilde expansion or | |
| doesn't follow symlinks. I solved the former issue by | |
| shelling out for the comments (*very* inefficient, but I | |
| really don't want to leave ed scripts lying around | |
| uncommented - they might try to take over the world or some | |
| such), and the latter by reading *not* from a file, but from | |
| the output of a cat invocation. | |
| - the NetBSD version of sed doesn't have character escapes for | |
| the replacements (e.g., you can't do s/@@/\t/), so you need | |
| to insert the raw characters in there, and it also expects | |
| the file parameter to be passed *after* its options (e.g., | |
| -i, -e '...'). | |
| == Archive == | |
| 2022 | |
| 2019 |