The past 3-4 months seem to have gone by quickly, and more of the same appears to characterise this period well, unfortunately. There have been some positive developments: personally I got my first vaccine dose, knocked in an open source contribution, finished reading Java Performance (Scott Oaks) and found out that a patent for some of my past work was approved. On a broader scale, in the UK lockdown has been gradually eased, and the office has reopened. In some ways I’ve reached good partial milestones towards some of my longer-term goals, though the highs relating to these partial successes are still somewhat fleeting.
Not too many changes here. I think I’m at a point where I need to continue running planning cycles and ensuring things remain on track for the team as a whole. To some extent I might be becoming more independent, and it’s interesting if a bit unusual to be asked by others for planning advice when I don’t know if my own protocols work that well. Generally the planning process works, and the team’s velocity which I thought was pretty decent at the end of Q1 has continued at a pretty good pace into Q2. It is a little below what I’d want (in particular, reactive support issues have slowed things down a bit), but I really can’t complain too much.
I’ve also had some good dev moments, especially relating to complex support issues. The best of these was probably solving a seven-month old issue that had been bounced around a lot that turned out to be a subtle years-old bug in the Apache commons pool, which I managed to fix. These have been enjoyable, though a little frustrating as they’re still distractions from the work that was planned for the team.
The recent reopening of the office was helpful. One of my bigger concerns when the office was initially closed was losing access to spontaneous meetings and discussions with people who were on other teams. There’s often little impetus to set up an explicit sync with no agenda. Indeed, there were a bunch of more interesting chats I had when back in the office. On a smaller scale, I also found that I appreciate explaining concepts on whiteboards a lot more than I remember.
I really haven’t been following my portfolio closely, as the usual automated processes run and deposit the chunks of money accordingly. I might interestingly be at risk of not making the Amex Gold spend bonus target (£15,000 in a year) because I haven’t been travelling, and the office reopening with its meals will actually push this downwards. Hopefully as international travel reopens this will change: I’m looking at a possible Switzerland or Germany trip in September as that will be well past my second Pfizer shot (regulations permitting), but that’s already after the August deadline for this bonus.
Ich habe gefunden, dass mein Schreiben ist ein bisschen besser geworden. Wenn ich kleinere Briefe schreiben muss, in denen der Inhalt des Texts relativ einfach sind oder feststeht (z. B. wegen der Aufgabe), mache ich weniger Fehler als vor zwei oder drei Monaten. Das ist nicht zu sagen, dass die Texte fehlerfrei sind. Ich wähle immer noch manchmal die falschen Präpositionen, und die Deklination von Adjektiven bleibt monströs. Aber es gibt Tage, an denen das Papier nicht in einem Meer aus blutroter Farbe schwimmt. Das leigt zum Teil daran, dass ich zwei Denkweisen auf die Aufgabe habe. Normalerwise möchte ich experimentieren. Deshalb werden komplexere Strukturen (z. B. mehrere Nebensätze) benutzt, bei denen einfacher ist, einen Fehler zu machen. Aber wenn ich etwas richtig schreiben will, schreibe ich einfach und direkter. Ich bin vielleicht nicht in der Lage, eine so nuancierte Meinung zu äußern, aber das ist ein B2-Problem.
I’ve found that my writing has gotten a little better. When I have to write short texts, for which the content is relatively simple or fixed (e.g. because of the task), I make fewer mistakes than I would have two or three months ago. That’s not to say that the texts are free of errors – I still sometimes choose the wrong preposition, and adjective declination remains a monstrous problem. However, there are days where the paper doesn’t swim in a sea of blood-red ink. That’s in part because I have two approaches to these assignments. Normally, I like to experiment, and therefore more complex structures (such as multiple subordinate clauses), in which it is easier to make mistakes, are used. However, when I want to write something correctly, I will write more simply and directly. That means that I may not be able to express as nuanced of an opinion, but that’s a problem for B2.
Reading and listening are pretty stable at the B1 level in that I’m consistently getting over 80% (though not consistently over 90%) when doing mock tests. Speaking is tougher, though Stan has commented that my speed and fluency there has increased to some extent. I also find that while the opinions I express may not be as nuanced as in English, and/or unnecessary circumlocution may be needed, it’s rare for me to have issues expressing at least in general terms what I think of something. Interestingly, I may need to be careful I don’t switch into Chinese mid-stream; this does happen sometimes though primarily in the other direction; recently I was conversing with a colleague in Chinese, and an und popped out as I was trying to link two ideas.
Sudoku and Puzzles
I’ve continued to participate in a number of these contests. Sudokus are very much “keep on trucking” mode for me; in the GP I’m rank 67 after 6 rounds, and my individual round rankings have been 41-128-78-65-155-57 (though curiously in terms of raw points the 155th place wasn’t actually the worst!). I imagine most of the variance here stems from variant types (I’d be a lot more confident doing a Killer or XV sudoku than say Scattered or Surplus, or even high-value Consecutives for which I tend to be slow). Interestingly, most of this appears to be downside risk: I find that it’s rare that I do a puzzle remarkably fast or can get an outsized gain on a single puzzle, but I sometimes get completely stuck or “break” a puzzle (reach a contradiction owing to some actually unsound deduction made earlier) and my score will go down by a lot when that happens. From what I can remember the previous round went pretty smoothly, but there weren’t any major flashes of insight. In a sense, there’s often not very much new under the sun here, apart from the odd variant that comes up.
That said, although it was in hindsight obvious and is probably something well known to more competitive solvers, it was pretty cool to have independently come up with some “extra group” constraints in Windoku, a variant where there are four additional 3 by 3 blocks that also must contain the numbers 1-9 once each. The deduction was that in addition to those blocks, there are actually five other groups of nine cells which can be proven to contain the numbers 1-9 once each! I think I was trying out one of the puzzles from the German Sudoku Meisterschaft 2021 and got a bit stuck before noticing that those deductions were possible.
Puzzles on the other hand have descended into remarkably inconsistent territory; I’m rank 87 after 6 rounds, but the positions there have been 65-196-87-191-258-36. I think a lot depends on the individual round itself; for example, round six of the puzzle GP featured puzzles from Thomas Snyder (who runs the GM Puzzles blog and also releases some solution videos – I’ve watched a couple of those to learn basic techniques for new puzzle types) and Serkan Yürekli, and I figured that the puzzles would generally have deduction-heavy paths as opposed to more bash-heavy instances I’ve seen elsewhere. This meant that when getting blocked, I’d hold out slightly longer to try and make a logical deduction before doing casework. It also helped that TomTom, Star Battle and a bunch of word puzzles featured prominently; 36th is my best placing ever in a puzzle GP, and I realise that a number of factors aligned for that to happen.
The Storage Gloomhaven campaign continues; it appears that at the end of Q1 I was still playing Rie Templeton the Mindthief (psychic rat), but since then I’ve retired a bunch of characters. I then played Robert the Cragheart (rock golem whose signature ability involves manipulating terrain geometry), Will Burns-Edward the “Music Note” (bard with focus on making enemies unable to attack by disorienting, distracting or stunning them with music) and now the “Triangles” class, with whom I’ve only played three scenarios.
For the most part, I enjoyed the characters, though playing the Cragheart got a little sluggish towards the end (but then I probably had him for around 15 scenarios). I think of the group, the Music Note felt the most powerful; by the time he reached level 9 (maximum level), repeatedly cancelling three or four enemies’ attacks or turns while simultaneously buffing everyone’s attack or defense was normal, and I could even do that to seven enemies if desired. It didn’t help that he had an amazingly high experience growth rate; while I struggle to get even 12 or 13 experience in a scenario with the Triangles, he easily raked in over 30 experience per scenario – this caused an overflow of the XP counter on our Tabletop Simulator mod (even the Mindthief regularly had to make do with “only” 20 XP). A level up every two scenarios was expected.
I had a couple of games of Spirit Island too, both on high difficulty with very experienced Palantir friends (including my first brush with Heart of the Wildfire) and slightly more normal difficulty with friends from Imperial. It’s fun, though I notice I’ve indexed quite heavily on a few of the spirits (Shifting Memory, River Surges and Fractured Days).
Separately, I picked up Hades, a popular rogue-like action game. One plays Zagreus from Greek mythology (the son of Hades and Persephone) and attempts to escape the underworld, represented as a series of chambers with enemies that must be defeated. I’ve played a number of these (Dead Cells last year was pretty good, as was Slay the Spire) and I do quite enjoy the idea of having a core gameplay loop with meta-progression mechanisms. The game offers Zagreus a choice of multiple weapons, such as a sword, a bow, a spear or gloves; I’ve opted to use the railgun, as my reaction time is not particularly quick. This is fairly common for me in this type of game; I started Dead Cells with a ranged turret build, for example. (Slay the Spire is more strategy focused.)
These games tend to be quite challenging and allow for difficulty scaling as well. In Hades this is achieved with the Pact of Punishment, a system by which conditions with assigned difficulty numbers, called Heat, can be enabled to modify a run (for example, “enemies do more damage”, “more enemies”, “enemies move faster”, “healing is less effective” etc.). There are achievements for completing a run with a certain heat level; the furthest I’ve got is 32 (as that’s required to unlock an in-game achievement), which is probably challenging enough to the point of not being particularly fun. In particular, my 32 Heat run included the stipulation “Approval Process” – normally, when Zagreus receives an upgrade, he can choose one of three options; this reduces his selection to two. This adds challenge but for me at least is definitely not fun; “Convenience Fee”, increasing all shop prices by 80%, wasn’t particularly enjoyable either.
A couple of things I digested this quarter come to mind:
- Java Performance (Oaks) for work, which had pretty mixed reviews from my team though I thought there was adequate interesting content. The main issue with learning about the JVM internals and aggressively leveraging them is that any custom options or things like that would need to be maintained, and might be different depending on where the software is deployed. Nonetheless, there were some less dramatic suggestions around concurrency or how to leverage the JRE efficiently that we adopted, and although I’ve been reasonably familiar with JFRs it was good to recap some of the points of profiling.
- Why the Germans Do It Better: Notes from a Grown-Up Country (Kampfner); the title is a bit presumptive in that it implies Germany does do things better (there are metrics one can choose to build a case that that’s not the case), and also seemed to be in fairly large part an indictment of how things have been going on in the UK and US specifically. Nonetheless this did seem like a good introduction to post-1945 German history and how that has shaped elements of the country today. It was nice to see some failures called out as well (the Brandenburg Berlin airport and the use of brown coal come to mind).
- Easy Readers – Drei Männer im Schnee (Erich Kästner). This is an easy-reader version of a German comedy that is driven by a number of misunderstandings. This is meant to be of a similar level to Die Entdeckung der Currywurst I did during the summer break last year, and I think it does show that I’ve improved somewhat; reading Currywurst was very tough at the time, while here I understood most of the material pretty easily. It helped that there were also questions after each chapter to check my understanding.
Not found much this quarter. I’ve found a few delightful heavy or fast-paced tracks, both modern (such as Freedom Dive and Tempestissimo, which run at 222.22 and 231 BPM respectively, though the former has more 16th runs) and classical (Jenkins’s Concerto Grosso for Strings “Palladio” sounds epic). In terms of more popular or current music, the song I’ve played the most is curiously a three-year old one which has lyrics I don’t directly understand: Lemon by Kenshi Yonezu. It’s a song about death or coping with the loss of a loved one. The lemon is relevant in terms of leaving a bitter scent, and also there’s a comparison where the speaker feels like he’s the remaining half of a sliced fruit. Thus the themes are quite dark, but the instrumentation is pretty upbeat and loaded with interesting ornamentation.