=====================
Advent of Code 2024
=====================

As in the past years, tho Advent Of Code puzzles were fun. I was
nowhere near the leaderboard competition, had no ranks above 2000, but
as before, only aimed to solve those daily, and to have some time left
for other daily activities.

I found days 21 and 24 tricky, while the rest went smoothly. On the
day 21, I thought DFS would be more efficient than BFS, but somehow
kept messing up the solution; I think I grew quite tired while going a
wrong route initially, then tried to solve it before a relatively long
cardio workout, which I try to do before lunch, so found myself being
hungry, cold, tired, and failing to keep track of those robots with
keypads. Almost gave up on solving it that day, but then decided to
try rewriting it with BFS instead (which was easier to reason about,
to consider a whole layer at a time), and that worked. On the day 24,
I thought it would be too easy if it was a sensible adder
implementation with a few crossed wires, so dismissed that and assumed
that there must be some Rube Goldberg contraption anyway, tried to
analyze and bruteforce it. After a few hours of that, decided to peek
how others solve it, found that they do visualize it, did the same (as
in some of the puzzles from the past years), and then the way to solve
it was clear; I should not have dismissed that, after all. AoC puzzles
sometimes require to inspect the inputs, so in the hindsight, it was
an obvious mistake to just assume the worst case.

This year, I tried rewriting the solutions in Python, after first
solving the puzzles in Haskell. Did not rewrite that on day 21 (since
I finished it late in the day), or the following ones, but from the
first 20 days, I liked rewriting those in Python. My Haskell solutions
for the first 20 puzzles took 1561 lines, 8757 words, 49213
characters; Python ones -- 1193 lines, 4660 words, 34211
characters. Those had the benefit of it already being clear how a task
should be solved, but I tried to cleanup the Haskell solutions, and
sometimes solved the puzzles a little differently in Python (using the
tools more easily available there), attempting to mitigate this
bias. With Python it seemed easier to focus on the task at hand, not
having to worry about efficiency of the used data structures, at least
for the common tasks. I recall finding Python awkward when trying to
use it as a functional language, but when approaching it with a
mindset closer to that used for C (imperative language, with
references, growing from the practical side more than from
theoretical), it is quite nice and easy to use. Maybe I will try to
use it more.


Other news
==========

- Oppression news first, to get them out of the way: Viber was blocked
 here, looks like more IMs are in danger, apparently there are plans
 to block voice calls in IMs, there were regional Internet
 disconnection tests, and YouTube is now blocked for mobile network
 operator users, in addition to stationary ones. From personal
 observations, most people are affected and unhappy about it: even
 some of the older people, who are spared from understanding what
 causes the issues, miss music. But from public opinion polls, as
 well as from official election results, most people are happier than
 ever with the government, even though the economy and human rights
 seem to be headed the same way as the access to information, and it
 is hard to miss the high inflation combined with rising taxes, and
 all kinds of issues with savings for those who tried to make
 any. Though one can still misdirect the blame for those; towards
 their hardware or ISP, for instance, in case of censorship. Maybe
 this is why the officially promoted version is that Google's
 technical issues or policies are to blame. Although the
 state-promoted versions of events tend to be varied and confusing
 for all kinds of news, as a general policy.

- Apparently the previously mentioned weekly router hangups were
 caused by a BitTorrent client: possibly the router did not like the
 increased number of connections. Even though there were not that
 many, and not much of traffic. Update: actually it hung up again on
 the following Saturday, yet again in the early morning. I have
 finally switched to the new router, though its 8P8C ports face the
 opposite way from the old one's, and there is a thick Cat 6 Ethernet
 cable, so there is quite a twist near the connector now. Update 2:
 checked the OpenWrt packages after that, including IRC servers, and
 found that TCP packets directed to ngircd.barton.de are dropped by
 local ISPs (probably TSPU, since it is not visible in the
 blacklist). Things break over time by themselves, which is a
 constant annoyance to keep fixing, but it is even worse when they
 are actively broken by organizations on top of that: it is not just
 more work, but also harder to plan for maintenance if you cannot
 rely on anything external to keep working or being available.

- I have set a two-server private IRC network with InspIRCd, without
 services, requiring TLS and a password (PASS authentication) for
 access from the Internet (as opposed to a VPN); learned that KiwiIRC
 (a web interface) does not support that, and apparently some non-web
 clients have difficulties with it as well. Already had netsplits,
 but IRC is nice in its simplicity, and the InspIRCd setup went
 smoothly. Thought to set NNTP servers as well, but likely nobody
 would use those.

- This Monday, I have read Tolstoy's "Bethink Yourselves!" (1904)
 article, which makes the current situation a little less strange,
 depicting yet another similar one, with references to more of
 similar ones before that. As expected, it is overly religious, but I
 have read "religion" as "conscience", "morality", or "ethics" in it,
 with religion being explicitly equated to the "Golden Rule"
 principle by the author, without attached organizations, buildings,
 rituals, and suchlike, though with addition of a deity.

- Prior to that, finished reading the first (chronological) part of
 the Cambridge History of Russia (volume III, on the 20th century),
 which serves a similar purpose. It is a 2006 or 2008 edition, and
 that part concludes with "Russia has not gone to war with Ukraine,
 Latvia or Kazakhstan to defend Russians living there and is less
 likely to do so today than when Yeltsin first took office"; while
 they will have to edit it, apparently it was a sensible eventuality
 to consider and mention.

- Finished working through chapter 10 of the physics textbook on
 2024-12-14, and paused, so that I would have enough time for AoC
 puzzles. Going to resume it tomorrow; there are just four chapters
 left on classical mechanics now. It seems I use less and less of
 LaTeX for the solutions over time, and more of plain text with
 Unicode symbols. So far there are 13210 lines and 398529 characters;
 probably I will look into it and summarize my current practice of
 writing those after finishing the part on mechanics. Perhaps will
 share the solutions as well, since it can be convenient to look
 those up when stuck.

- Thinking of resuming Mastodon usage, focusing more on being social
 and having conversations: blogging less, chatting more. But looked
 around, found that now people there complain about "reply guys",
 advice others on how to not be one. I gather that this term is used
 similarly to "creep", to denote people leaving unwelcome replies
 specifically, but a little worried that people being on the watch
 for "reply guys" would complicate random conversations with
 strangers. Another term I learned recently is "manosphere",
 describing people being weird in other ways. Probably none of the
 things they describe are new, but such things help to care less
 about being more social.

- Related to being social, thinking of making up fun online handles,
 which I would know how to pronounce, unlike my primary one. Word
 play and puns, various references, unexpected (humorous) word
 combinations, alliteration, parechesis, and similar play with style
 and sounds seem to make those to sound amusing. Some of the fun
 names I recall from IRC, the DW MUD, and Mastodon are Ottoflomp (or
 Ottoflump?), Bumblebonk, Wigglefigs, Fiddlewits, Bimblecrisp,
 {co,pro,contra}pumpkin, PizzaTorque, Emma Nems, Tempestua Des Temps,
 Bacon Sandwich, QbbLs, Hsoy Hsauce. Race horses and hippies tend to
 have funny names, too.

- Watched three films, after noticing that I did not watch any in a
 while: Perfect Days (2023), The Holdovers (2023), and Balloon
 (2018). All three were nice.

Other exercises, chores, and work proceed as usual. Still not taking
rest days from physical exercises, even on the busier days, being
worried that I will start skipping them more and more often then.


----

:Date: 2024-12-25