=============== News spectrum =============== A mixed bag of news this month, so I approximately ordered them from worse to better ones: the first one I would count as bad, the last two as good, and the ones between those as more or less just the things that happen. Isolation ========= Now YouTube videos do not load at all via Rostelecom without DPI circumvention, which had to be tweaked again to keep working (as RKN works on throttling it more aggressively, while it still did not admit throttling it at all). Additionally, roskomsvoboda.org is blocked via TSPU (without any public records or court rulings) now, among many other websites and services, including Discord, which was blocked while I was writing this. Unrelated to this, I tried setting a WireGuard tunnel to a server abroad, and ran into such tunnels being blocked, based on the protocol (similarly to the previously observed IPsec blocks: only the first packet gets through). The ongoing events keep leading to considerable loss of both time and money, on top of ruined long-term plans (while planning in regimes like this one is generally tricky). In the background, mostly the same people who advocated Internet censorship, the strict blasphemy law, "traditional values", and the war, now propose to ban the subject of evolution at schools, which are already stuffed with indoctrination and militaristic classes. According to RPORC/VCIOM polls, 30% of respondents support such a ban, even without that being enforced by the government and promoted by its propaganda yet, and the adjacent results are worrying as well: <https://wciom.ru/analytical-reviews/analiticheskii-obzor/darvin-zhiv-ili-o-vere-v-ehvoljuciju>. Some of the fellow citizens actually cheering such developments is disheartening to observe, both online and offline. It is understandable when a government (a certain kind of it, at least) wants to oppress people: that can be viewed as rational behavior, assuming that their goal is to stay in power indefinitely. But then there are folks who are far from the ruling class, yet still support this, with arguments like "you cannot deal with these people otherwise". So far I noticed such cheering only from those who were jingoistic previously, but nevertheless it reminds me of Steinbeck's (mis)quote on "temporarily embarrassed millionaires"; this lack of solidarity also seems to illustrate the lack of what may be called "class consciousness". On the other hand, "class" and other group identity usage may be quite arbitrary, and sometimes manipulative: most likely the cheering people employ different divisions and identities, putting them on the side of people in power. I wonder whether sociologists play with set theory, category theory, and topology while modeling such group identities and their effects: those seem potentially suitable. Though one may also observe people being awful to their fellow human beings in general, not just any groups within those, and often being sure that they are right in doing so, for varied reasons. This whole thing works as an expensive and forced interactive lesson in history, politics, sociology. While the increasing isolation in general feels like the relatively sane world gradually dissipating, leaving the ugliest bits exposed. Somewhat related to this, there were elections here again, regional ones this time. I keep voting on those, even without any hope that they will actually work as elections: possibly there will be at least traces of actual results left archived, producing a slightly more complete picture, which may be useful for future analysis. In yet other related news, there are more and more laws punishing for sharing of certain kinds of information or views (particularly the ones that are acceptable in most jurisdictions, and were so here a few years ago) in public, which makes it increasingly uncomfortable to publish texts. Which is likely one of the goals of those laws. And just as I posted that, found that conversations.im (both the website and the XMPP server) is blocked via TSPU (and its DPI-based blocks) now. My mom's backup account is there, now it is offline. A noisy fan =========== It is chilly now, and one of my computer fans (all of which are about 12 years old) started making noises at night: apparently when things cool down a little more, and its speed decreases. I used to notice something like that in the past, but now it is even more noisy. Uncertain which fan it is, but possibly a 200 mm one, on the case, and a good replacement fan costs about $60 here, which may not seem like much, but there are whole computer cases that cost even less. So I am considering simply disconnecting the noisy fan: I have a 77 W TDP CPU without much load there, no graphics card, and there are other fans working; the sensors usually show temperatures around 30 degrees Celsius. Once again checking desktop computer parts, in case if I will have to build one urgently. Ryzen 5 9600X is available now, so an inexpensive new workstation with ECC memory can be built using it, which would cost from about $900 (32 GB of memory, cheaper components, an SSD) to $1800 (128 GB, more expensive components, SSD and HDD). Or could go for Ryzen 5 5600GT with 32 GB of non-ECC memory, for about $600. Or even Athlon 200GE with 8 GB, for mere $250, and that would be a fairly usable computer. uberspace.net ============= The uberspace.net domain is secured for another year, but that went messily and involved domain transfer to a new registrar: to webnames.ru, aka Regtime, complete with failures to send confirmation codes from them to gandi.net's forwarding, gandi.net not disabling WHOIS contact privacy when it was needed, but webnames.ru briefly publishing all the private information in the WHOIS database even while it was supposed to be hidden; also looks like their domain privacy does not include email forwarding, so the private information will have to be exposed in case of a transfer out as well. Addition of DS records for DNSSEC seemed to be buggy there (removing all the records instead of adding new ones, so one has to re-enable DNSSEC to get them published), which I reported, but the response was that they checked the journals and everything worked correctly. No way to remove individual DS records (only wiping them all and triggering an update at once, effectively disabling DNSSEC), either. And it requires at least two name servers to be set. While password length is still limited to 16 characters there, even though I reported to that company months ago that it is not great and contrary to NIST SP 800-63B. This mess was not entirely unexpected: somehow I keep hearing stories of such messy dealings with registrars. Yet it generally functions, even if with some limitations, numerous warts spotted in a single usage session, and help from the support, and it may be suitable for less important domains. No idea whether there are better Russian registrars, but I plan to try a different registrar if I will finally decide to register a new domain name. Likely the hosting of services using that domain will change soon, too, so there will be at least a hiccup in their functioning. I moved most of my things away already, and some of its services were unused even before that; possibly just email and XMPP will remain, to keep the contacts working. Those may be particularly tricky to move one by one without disrupting their usage, but the small number of users limits the potential disruption caused by it. emacs.ch ======== I thought to take a break from Mastodon and let the account go along with the emacs.ch instance, but then decided to move it instead, in order to preserve the contacts, and to keep it as a backup channel. Still taking a break, but while having an account, at hachyderm.io now. Still planning to let the posts go: I have a backup, but the highlights are written down in this blog already. There are some minor news and observations that did not make it into this blog, like me discovering recently that "The Modern End" song by Tristania is a cover of the song by Seigmen, former members of which formed Zeromancer; I had both Tristania and Zeromancer in the playlist for a while, but had no idea about that connection, and perhaps I should look more into Seigmen and Zeromancer. Or a link to the "Peppa Pig effect" Wikipedia article, which I found amusing, and in line with my past observation that British cartoons are packed with British idioms. And there are food pictures, some culinary news that did not make it into blog posts. But nothing particularly useful or notable, and perhaps it is better to not cling to every little memory or observation. Work ==== Quite a lot of work lately, some of it is urgent again, even though those tasks are about adding new functionality, not about fixing something that broke. Hurriedly adding new functionality is always awkward: feels like bad planning (especially given requirements last modified months ago, first created more than a year ago, which should be implemented and demonstrated in a day or few), and the resulting interfaces--which can be hard to change later--tend to be worse when done in a hurry. I had a little more time than usual, because of the skipped physical exercises, but it is not pleasant to work while having a cold. One of the tasks involved a basic web API and UI. I used a CGI program for that again, with the Haskell "cgi" library, which is nice: lightweight and simple, compared to web frameworks, and does the job, especially for small projects. Also used nginx's http_dav module for file manipulations, and have set HTTP basic authentication in it. In the same project, made use of systemd.path to asynchronously process a file on modification, then thought that perhaps I could have replaced some of the CGI-based endpoints with simple file upload and retrieval, then similarly processing the uploaded files on the server: not very different from what is there now, but maybe a little simpler. Though CGI usage still has the advantage of returning status codes and messages. The UI was trickier: it had to be made in another couple of days, involving dynamic forms, while I have not done anything of the sort in many years, and while sick. I already had an OpenAPI/Swagger schema prepared, so hoped it would be easy to hook it into a generic UI (something more user-friendly than Swagger UI, that is, which I have also set): the task is very common, and there is so much of JS around; possibly at least a little bit of it as useful. After a day of poking those projects, found some buggy and half-baked projects for that, then one made as a React component (so I would have had to figure how to use React), and finally discovered "JSON Editor" ("json-editor/json-editor" on GitHub), which works, even supports JSON schema references (though I still designed the structures in a way that avoided duplication without relying on references), and is easily usable without additional dependencies. Not the nicest UI, but allows to edit relatively complex structures (involving arrays of structures) using a mouse. But then frontend developers were found to work on it, so the JSON Editor was not used in production. As usual, cannot say that I liked the resulting web UI, but at least it is not as broken as some of the others. Apart from that, once again I ran into the crontab-style or systemd-style schedules not being quite suitable for running tasks at regular intervals inside a fixed time interval. But then noticed that since I support those two slightly different formats already, and each time component in those is represented as an array of "from, to, step" triplets, with some of the time components already overlapping (day of week, day of month), I could as well add the third format with a single new component for Unix time, so that then I can set ranges with steps like "1728320000-1728492800/600", and the awkward problem is solved relatively nicely. Maybe could also consider augmenting crontab-style and systemd-style formats with it, adding it in the end, maybe with the "@" prefix, so that all those components could be combined with this one, though it is not needed at the moment. Now thinking how to deal with the increasing requirements for image rendering for variable-message signs: those used to be either texts (using custom Haskell bindings to pangocairo for text rendering, finding a suitable font size) or fixed-size images, then I added support for combinations of those arranged horizontally, with padding to handle smaller images, then added horizontal centering, vertical centering, then a special layout of three elements for a special case, and now more requirements arrive to adjust that special layout. Now thinking that maybe it should support some layout templates, or even something that would direct text rendering, possibly something like (La)TeX, PostScript, troff, or SVG, though all those have notable drawbacks. Would be nice to have something simpler, lightweight, but with a good support for texts (including drawing it in a box, fitting its size). Also trying to use a token bucket to limit how much data is interpolated during time series data preaggregation in PostgreSQL: a mechanism more commonly employed in networking, but seemed appropriate here, to similarly throttle the rate. Not entirely happy with preaggregation depending on wall clock time though, maybe it would be better to separately store data on interpolations during the preaggregation, so that it would not take too long to query. I have also been asked to introduce worse hacks, like setting system time to a minute into the future (and disabling time synchronization), to compensate for some delays that way, not to mention special cases in the code that is supposed to be generic. Going to try to fix those things properly once the hurried stage will be over, but collecting technical debt for now. The isolation-related weirdness creeps into the work as well: in addition to considering "fatherland software" (rebranded and certified old versions of FLOSS or licensed proprietary software), now some waste the time on "fatherland servers" (rebranded Chinese servers, with vague specifications). So much effort just to fake things for political points. While advertising the results as being produced locally, at the same time diverting resources from what little could have been actually produced. Though even this way, those are far from the most wasteful and destructive actions going on. And maybe this "fatherland" stuff is not too different from "cloud", "blockchain", and "AI": those also involve peddling the same old things, but with rebranding, though those still allow to use up-to-date versions. Cold ==== Caught a cold again (possibly COVID: there is yet another mutation spreading around now, and I temporarily lost the sense of smell again), and it is unpleasant as usual. Took a break from exercises, skipping ten days. Looked for medicine to alleviate some of the symptoms, been once again reminded of the abundance of placebos: such faking, reminiscent of aforementioned "fatherland" thingies, is practiced in pharmacology for a long time. But the incentives are clearer there. XHTML ===== I switched my homepage to the non-XML HTML syntax, since the XML one is increasingly phased out: XHTML was retired with the XML syntax incorporated into HTML 5, then HTML 5 was retired, now there is the HTML "living standard", and the XML syntax is not recommended there, so we are back to messy HTML, without a fixed specification. I produce HTML with a few errors (such as XSLT producing closing meta tags), so it does not pass validation anymore, but it is still more compatible with clients and other tools than the valid XML syntax was. Now I am thinking of switching away from XSLT as well, focusing less on HTML, possibly even using a custom markup language or m4 (which would not be far from that). Then I could use it for both notes, which rely on hyperlinking and target the web, and blog posts, which aim both Gopher and WWW, and do not need inline hyperlinks as much. I mostly use XSLT to maintain indexes, skip boilerplate while setting topics via RDFa (which is not really useful), generate the Atom feed; such tasks should be manageable with m4 or shell scripts. Could consider lightweight markup languages, too. I am not entirely happy with any of those, particularly with references in them, which differ a little too much from what is normally used in actual plain text, and all the unnecessary things that complicate them, particularly their processing (arbitrary HTML embedding for CommonMark/Markdown, Python bits for reStructuredText, Emacs ones for org). Well, those things I keep speculating on in the "markup languages" and "formal human languages" notes. PGP === There is this story unfolding since last year, with the new OpenPGP RFC 9580, and the competing LibrePGP, which is what GnuPG supports. I only found the LibrePGP's arguments in that split, though I guess there must be the new OpenPGP RFC's authors' arguments somewhere as well, something justifying initiation of a likely schism, which usually complicates the adoption (as it already is with various email containers for those: OpenPGP's two variants, S/MIME). In the general struggle between compatibility and simplicity, I think a fine compromise is for the core specification to stay as simple as it can, but allowing extensibility for either new features or compatibility with older versions. It is not perfect, either, and as demonstrated by XMPP, it still spawns new competing standards, but at least not a standard per implementation. I guess some people are happy to have the standard separated from GnuPG at once, as some are complaining about the experience of using it, in particular about there being too many options. I personally find GPG to be fine, as there are many much less pleasant to use tools, though as one may expect from a long-running and general project, the standards and the tools come with historical baggage. Physics ======= I reached chapter 8 in the physics textbook. At this rate it would take another half a year to finish the part on mechanics, and two more years then to finish working through the other parts, but even if I will keep working through it this slowly, it would be fine: I am not in a hurry, and it is nice to solve those problems regularly. So far it is enjoyable, and I hope to keep going with it. Occasionally I am thinking of writing some game to make use of those physics: something with movement, ramps, pulleys, springs, friction, collisions, potato pendulums. Maybe eventually with more than plain mechanics (e.g., with electromagnetism). Sonic the hedgehog comes to mind when I imagine those things, and possibly platformers with cartoon-like two-dimensional graphics (and side view) in general, since those may look like physics problem sketches. Many of the problem statements describe an amusing (and simplified) world already, seems like it may be fun to put it together and extend. Or possibly it could be more of a quest game, solving physics problems as the player goes through those animated sketches mixed with amusing stories. Actually this reminds me of my past thoughts, which I had while studying other things, or practicing other hobbies, like formal verification: while enjoying something, I tend to think that others probably would enjoy it as well, and possibly it could even be wrapped into a game, but then noticing that it is probably unnecessary, as the thing itself is available directly, and more useful that way. Yet I keep thinking of such a quest game, or possibly simply a libre physics textbook (which would be nice to have as well) with such illustrations and themed problems. Actually a textbook and a quest game could be basically the same thing in different forms: the former being static, the latter being animated and interactive, but with the same story connecting the same problems. Armenia ======= Visited friends in Armenia (Yerevan) for a day, it was nice. Tried a few tasty local dishes (khurdjin, tava kofta, dolma), saw a few places (the Cascade and a park near it, the Opera house and adjacent locations, some old monastery on a mountain). Attempted to try Armenian coffee (like Turkish coffee, but with cardamom), yet at first the restaurant staff seemed to forget about that part of the order, and after my inquiry they brought a cup in which I did not notice any cardamom. Maybe will try to brew it myself instead. Refreshed my memory of airport navigation and flights in general, too. Bought a small bag for hand luggage, since my usual backpack is a little taller than 40 cm, while the restrictions in this case were 40x30x20 cm; but then saw that people bring even much larger bags and nobody cares; apparently I overprepared, but at least did not worry about it then. Tried nice mineral water there, "Jermuk"; once back home, found it in a nearby store, and now trying others as well. And tried to take selfies, since during the recent personal data backup revisions I noticed that I do not care much about old pictures of landscapes and objects, but pictures of people do hold a sentimental value, and help to capture memories. I tried to look into the camera while taking those selfies, but still ended up looking at the display instead, and had trouble fitting everyone into the picture: apparently it would take some practice to improve at that. ---- :Date: 2024-10-09