=====================
 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
