
Sign up to save your podcasts
Or


I got something out of Advent of Code 2021, but I didn’t like how it affected me.
I finished Advent of Code 2021 with 43 out of the 50 stars. (The last one you get automatically for getting to 49.) The highest ranking I achieved was 7372, on Day 25, presumably because everyone else was busy with Christmas presents (it seemed like an easy one everyone else would get in mere seconds).
The final tally of my programmer self-worth.
The only person I know of who actually completed it was Tipa over at Chasing Dings, so a hearty congratulations to her! It was an ordeal, the programming equivalent of a Boston marathon.
I don’t necessarily regret taking part in it, but I learned some life lessons.
A long time ago, when I started writing code on a middle school Apple IIe and then at home on a TRS-80 Color Computer, I believed I was good at it. Nobody else in my immediate circles knew a thing about computers. I took to it like a duck out of water, or whatever the saying is.
I took a handful of classes, but they were mostly a waste of time, because I already knew more than the teachers did. Most of my formative programming philosophy and knowledge of data structures came from perusing the Amiga developer handbooks and studying the work of the original Amiga engineers, not from schools.
The point is, I developed a fairly big programming ego. Back then, “rock star” programmers and the associated cults of personality were common. I was sure I was better than other programmers, so I was sure I was a “rock star.” Faster, smarter, more productive, more elegant, etc. It was easy to develop such a competitive attitude, because I almost never encountered other programmers in real life.
“The three principle virtues of a programmer are Laziness, Impatience, and Hubris.” -Perl manual
When I first saw that Perl mantra, I nodded immediate agreement. Exactly so. My entire programming life philosophy to that point boiled down to one concise sentence. The late 80s and early 90s programmer in a nutshell.
After all these decades of life experience and access to the Internet, though, I got over all that and embraced the philosophy that no matter how good you are, somebody else is better. There’s always room to learn new things. In fact, it’s imperative to continue learning new things in the software field. Software development (and life in general) has grown into such a broad field that it’s impossible to know everything. You can know a lot about a few things, or a little bit about a lot of things, but you can never know a lot about a lot of things. And most things you won’t know anything about.
But sometimes I still fall back into that old place of hubris. To think, “Yeah, I’m really good at this. Better than most people, actually. I’m definitely one of those mythical 10x programmers we’re not supposed to acknowledge.” Sometimes it takes intentional effort to avoid that mindset.
It’s a competitive mindset. Competitiveness can be useful in software development: Say, in startups and entrepreneurially-minded ventures, where the goal is to be first to market. I imagine it would be useful in game development, the development environment I would definitely categorize as the most toxic of all development environments. But in general, competitiveness isn’t much use in day-to-day development work. In fact, it’s usually a hindrance. It’s best to put it aside.
So along comes Advent of Code 2021.
“Just when I thought I was out, they pulled me back in.” -Some Godfather Movie
It didn’t take long for me to fall right back into that competitive programming hubris mentality, because Advent of Code is designed to push you there. There’s a timer. There’s a ranking. There’s a gold star for winning. Two gold stars if you’re really good. There’s a leaderboard and, perhaps most importantly of all, there’s bragging rights at stake.
There’s a whole community of people on Reddit who can’t wait to show you how fast they solved each day’s puzzles, and generate a nifty visualization, and write a lengthy explanatory blog post, and commit clean, well-documented code on GitHub, and pretend it’s normal to do all of those things in a single day. And it’s a heavily-sponsored event. It’s the ultimate hubris-building machine.
I felt driven to finish each day’s puzzle. Like it was important to show that I belong in this bubble, like I was a teenager again, when nobody else even understood what I was even doing typing on a computer keyboard. It was important to be able to say I was in the top 10,000 best of the best in the entire world who could turn in an answer to these puzzles in less than 24 hours.
It started to get bad with Day 12, “Passage Pathing." I hate pathing problems. They almost never occur in real-life day-to-day programming tasks. Nobody ever needs to know a Dijkstra “shortest path” algorithm by heart outside of a coding interview or a classroom. All you need to know is how to type “shortest path” into Google, and how to use one of the bazillion open source libraries or language features that have already been written to do that. But you probably won’t even need to do that if you aren’t in game development (or network infrastructure, I learned).
It got worse with Day 15, “Chiton." Another pathing problem. For that one, I really did have to Google and implement the Dijkstra algorithm to solve it–for the first time in my entire life–because the algorithm I worked out on my own and spent most of the day optimizing for part 2 was never going to finish in time.
It officially got out of control with Day 19, the infamous Beacon Scanner puzzle.
I got up early on a Sunday expecting to knock it out early and have a free day, but in fact, I spent all day off and on working on that. And I kept working on it far beyond the point where I was making any reasonable progress, which is a sure sign to put a project away and come back to it later. It’s a waste of time and energy to work on any software project if you’re not mentally fresh. I always complete tasks faster when I work on them in smaller increments over a longer period of time, than I do working on them continuously until they’re done. At my advanced age, I can’t reasonably focus on a single programming task for more than a few hours a day. But I kept drilling away at that stupid Beacon Scanner, because I had to get those stars and the timer was ticking. I would be a shameful failure in the eyes of the world if I didn’t get it in time. I spent most of that day being angry at myself.
I also fell back into an old bad habit from my younger days of forgetting to eat. I’d suddenly feel like I was going to faint and notice I was ravenously hungry and realize it was some two or three hours past time when I should have eaten something. That’s a terrible habit of mine that I don’t often return to anymore, but it still happens sometimes when I’m deep into programming (or writing). It happened on Day 19. Twice.
And the Beacon Scanner was mainly a math problem, too. It wasn’t much of a programming problem at all, it was a math problem. I hate math. I’ve always hated having to solve math problems in programming. Some people mistakenly assume you have to be good at math to be a programmer, but that’s 100% false. I’m terrible at math. I can’t do simple math without a calculator. (I’m not quite as bad as all the younger people on those D&D shows who can’t add up 6-sided dice without using their fingers and try to laugh it off as if it doesn’t exemplify how far behind the American education system is on the world stage, but I’m pretty close.)
I had to walk away from Day 19 unfinished. It was hard. It was really hard. I was very angry at myself and the world and had some trouble getting to sleep that night.
It remains unfinished to this day, and it still annoys me. There’s either a persistent bug in my code somewhere or I have a fundamental misunderstanding of the puzzle. (I didn’t think that one was explained or demonstrated particularly well, leaving me with a considerable amount of confusion, possibly related to my lack of general 3D math skills.)
Not to mention how much I hurt my back sitting over a laptop all day. I was in a fair amount of pain last Sunday night and Monday, and my back still hasn’t fully recovered yet, a week later.
After Day 19, I resolved to try to walk away from the puzzles the moment I felt like I wasn’t making progress. I didn’t quite manage that, but I did walk away from several others soon enough to keep my back from getting worse and leave some time in my evenings to do other things, so I’m fairly pleased with myself for that.
The point is that I didn’t like that feeling of competitiveness that infected my programming workflow like a cancerous growth, a workflow which is essentially an artistic workflow. It’s bad for me, so in the future I’m going to have to be more careful about these kinds of programming challenges.
I’ve developed the same sort of feelings about NaNoWriMo, actually, and any sort of “writing challenge,” so I tend to distance myself from them now. Whenever you add an implied competitiveness to an artistic process, I have to be really careful to ensure it’s a positive experience for me instead of a negative one. Being “unsuccessful” at an artistic challenge can do a lot of damage to my fragile artist ego, so I have to define the parameters of the challenge for myself in such a way that I will always be successful, no matter what.
Regardless of all that negativity, I got a lot of value out of Advent of Code in that I wrote most of the puzzles in Kotlin, a language that is brand new to me. And when I focused on learning Kotlin, it was an enjoyable process. (I mean except when Kotlin is weird an unintuitive, like the most basic of for loops.)
Some of the puzzles were enjoyable, too, they weren’t all math problems. (See my other post.) If every day had been a different packet decoder, for example, that would have been right in my wheelhouse.
I’d still like to go back and finish up the puzzles I walked away from, if for no other reason than to cleanup my GitHub repo for the future. (Actually I’m going to redo it completely.) I’m hopeful I’ll keep my current job until I retire, but you never know when you might need some sample code to show a potential interviewer.
But in the future, I might wait until the actual event is over to start working on the puzzles. Or else aggressively mute everything related to the event so I don’t get dragged back into that black hole of competitiveness.
I’m also interested in going back to work on previous years for more and different language practice (eg. I’m curious what visualizations I might be able to make with Kotlin compiled to TypeScript/React), and I imagine it’ll be much more enjoyable without all the competitive time pressure. (I mean, as much fun as programming for fun can be, that is. There’s a limit.)
Incidentally, I blew away my previous working GitHub repo. I’m going to make a new one now that I know more about Kotlin project structure. (Also because I read somewhere that you weren’t supposed to commit the puzzle inputs. Oops.)
P.S. Kotlin is interesting but I’m not sure it’s ready for prime-time yet. There’s, um, no namespaces. Yeah, you heard me right. No namespaces! And–shockingly–there’s no number formatting in string templates!
The Ways and Fal Dara and The Warder and The Wisdom.
I went to re-watch episode 7 on Thursday night so I could throw together this post, and it turned out that episode 8 was already available. So I watched that instead. Which means this post is a bit delayed, and I’m trying to put episode 8 out of my mind as I finish up this post.
Mat is gone. The Fellowship travels through The Ways and arrives in the border city of Fal Dara. Min tells the future. The kids turn on each other, but it all works out. Nynaeve professes her love for Lan, but it can never be! Rand suddenly realizes he’s The Dragon Reborn and leaves with Morraine. They’re heading for The Blight to face The Dark One alone at The Eye of The World.
Overall it was another mediocre “good enough” episode. Good character development in this one.
Very cool prologue scene, but again, it doesn’t seem related to the events in the series. Scenes like that make me wonder if they’ve mapped out a finite number of seasons, say five, in which to hit all the story points in the books, expecting to make all five of those seasons. But it seems like they might want to spend more time on the more immediate story matters, rather than setting up these lavish scenes just for a minor callback.
This wasn’t a good episode to watch in the daytime, if your television is prone to glares, like mine is. (It was dark in The Ways.)
Well, the other shoe dropped and the whole “who’s the Dragon?” thing went out the window in mere seconds. At least we don’t have to worry about deviating significantly from the books anymore. It was all, it turned out, a feint.
It wasn’t clear to me why the Two Rivers kids were suddenly turning on each other. They didn’t precisely say it was a hangover from The Ways but that was my assumption.
I don’t think they’ve done a very good job of setting the stakes for the confrontation with The Dark One. They keep saying The Dark One is Super Duper Evil and it has to be stopped or everybody’s going to suffer and die, but they haven’t shown very much Super Duper Evil. So I don’t feel any tension building toward the last episode.
I wish they’d spent more time with the Two Rivers kids before this seventh episode, when they suddenly seemed to spend a lot of time with them.
Nothing specific, but I tend to like the slower character-development scenes. The Two Rivers gang turning on each other was a fairly tense scene, and the aftermath of that.
Nothing really jumped out at me. That one from Lan was directly from the book: “I’ll hate the man that marries you,” etc. etc. That was in episode 8, nevermind.
Morraine. I really like how devious Morraine is. She’s sort of the anti-Gandalf.
Lan. One of the strongest characters in the series. Possibly even stronger than Morraine. I was surprised they spent so much time on him and Nynaeve.
Rand. This was the most Rand-focused episode I can remember since the first couple. Not a welcome addition. But he was tolerable I suppose. I have no earthly idea why he suddenly realized he was The Dragon Reborn. It seemed to come out of nowhere.
Mat. And he’s outta there. I wonder why?
Perrin. Not much of a factor, yet again.
Egwene. Seems to be the moral compass of the group. The one who “does what’s right.”
Nynaeve. The love that can never be! It was a big deal in the books.
Thom Merrilin. I mean, he’s going to be back, right?
Loiel the Ogier. Yeah, he was there some more, doing his schtick.
Padan Fain. Remember him?
Min sighting!! Yay. She was one of my favorites from the books. At least, I think she was. The hundreds of book characters run together, to be honest. That scene with Rand and Min happened in a different city in the book, much earlier in the journey. I think it was Baerlon.
I recognized that prologue scene from the books. I don’t remember which book it was in, though. And I don’t remember it taking place on Dragonmount. And I don’t remember any of the details. I just remember an Aiel Spearmaiden fighting in the snow. Spearmaiden? Is that what they were called? I can’t remember. Something like that. I seem to recall we didn’t actually see them until the fifth book.
Somewhere in the first book, I believe they said Tam al’Thor returned to Two Rivers with “an outlander woman” and a baby. So, slightly different.
Nynaeve’s channeling way more in the series so far than she did in the first book. She didn’t channel at all in the book up to this point in the story, unless you count “listening to the wind.”
I thought they had come out of The Ways into the Aiel Wastes at first, skipping right to Book Five. I didn’t remember them stopping in Fal Moran Fal Dara at all. I only remember it as the starting point of the second book.
I thought that might have been Mat following them through The Ways, but from the book I learned it was Padan Fain.
Speaking of Mat, he didn’t leave in the book. But, as I recall, they all split up in the second and subsequent books, so he might as well head off on his own now. I wonder why they did it though? I know they’ve re-cast the character for the second season, so I wonder if they wrote him out because the actor didn’t want to finish it.
I thought they were rushing ahead with Nynaeve and Lan, but it turns out she did confess her love for him in the first book. They didn’t, ah, you know, spend the night together or anything, though. The books are extremely G-rated. I mean, except for all the graphic violence.
An episode full of Aes Sedai politics.
Well I didn’t think I was finished writing this but it’s almost time for next week’s episode so I better post this anyway.
I wondered if they were going to go into Aes Sedai politics, and sure enough, they did. For an episode, at least.
The Amyrlin Seat, Siuan Sanche, returns and metes out justice upon Liandrin for gentling Logain without a trial, and Morraine for … wait, why again? I think for refusing to answer some questions. Morraine got the far harsher punishment.
But in a shocking twist, it turns out Siuan and Morraine are working together behind the scenes. And by “working together” I mean conspiratorially and also romantically. But it doesn’t matter because Morraine is still exiled from the Tower.
So Morraine gets back together with The Band From Two Rivers and heads for The Ways, secret passages that will take them straight to a confrontation with The Dark One. She convinced the Two Rivers kids that they have to fight The Dark One now while he’s weak, even though most of them will probably die. For some reason, they all said sure.
But just before The Ways closes up, Mat mysteriously decides to stay behind.
Another fairly slow-paced episode. Not much to talk about without going into book spoilers, for reasons that should be obvious to book readers.
The first prologue scene was pretty good but it seemed like unnecessary character development at this point in the show. Especially for a character who is presumably only going to be in just this one episode. You’d think maybe they would spend more time developing the main cast?
I’m surprised they’ve spent so much time on Logain’s story in this first season. It can only be to setup something for later, which seems like quite a gamble. But they’re already working on a second season, so I guess it worked out.
The White Tower feels very empty in the show. I mean physically: It doesn’t look like anyone lives there. The halls are empty, the rooms are empty. It’s just the handful of characters we’ve seen. Similar to Star Trek, where the Enterprise is basically empty except the main cast.
What happened to the dagger? Did they just leave it on the floor under a towel?
As a side note, I have no sense whatsoever whether this show is doing well or not. I don’t see many people talking about it, and it’s somewhat far down the list of shows that Amazon Prime recommends to me. But apparently they’re already filming a second season, so I guess it doesn’t matter.
Nothing really stood out to me, so I guess Morraine’s exile. Again, there’s a lot of subtext that isn’t necessarily obvious on first viewing. All the sisters turning their backs on the exiled one is a powerful visual metaphor.
I didn’t make a note of any and I don’t remember any at the time of this writing. Oh, I remember one now.
Lan: “Nice to see you too,” or something like that.
Morraine. She really doesn’t have much of a moral compass when it comes to putting kids in danger. By which I mean she doesn’t seem to mind dragging all the Two Rivers kids to their certain doom she can get want she wants (ie. defeating The Dark One). I like how ambiguously Machiavellian she is.
Lan. Wasn’t in this episode much.
Rand. I almost never register this character’s existence. I think he drew a sword on Lan, which was quite silly.
Mat. Yay, the evil dagger is gone. But wait, why isn’t he going into The Ways? Maybe he’s going back to find that doll he dropped.
Perrin. Did he have any lines this week? I only remember him lying on a bed.
Egwene. Not much development. Shouldn’t they have turned her into a Novice at the Tower?
Nynaeve. Other than some sassy conversations with Aes Sedia, I don’t remember her doing much in this episode either.
Thom Merrilin. I mean seriously, where is he?
Liandrin Sedai. They’ve definitely set her up as the main villain of the show, among the Aes Sedai, at least. The actual villain, The Dark One, has been a bit of a No Show in the series.
Loiel the Ogier. I think I spelled his name wrong last time. Or maybe this time. I just see a guy in a lot of creature makeup when I look at him, like a Klingon, who can’t turn his head. Not really invested in him as a character at all.
The Amyrlin Seat, Siaun Sanche. Did pretty well, I thought. Once again I have to say that the supporting actors are considerably more interesting than any of the Two Rivers folks.
So yeah, none of that happened in the book. At least not in the first book. In my re-read, they have just entered The Ways, which is very late in the book. And they went there from Caemlyn. So they never passed through Tar Valon at all in the first book. That’s why there’s not much to talk about except book spoilers. :)
I thought that Elayne joined The Band of Merry Two Rivers Folk in Caemlyn, but it turns out she didn’t. She must have become a major character some time later, probably in whichever book the girls became Novices at the Tower. (I don’t remember when that was.)
It would have been extremely weird for a couple of channelers (Egwene and Nynaeve) to wander in and out of Tar Valon without being compelled into Novice service like they did in the show. The Aes Sedai are very possessive of young channelers.
I have an extremely vague memory of Morraine and Siaun Sanche conspiring together, but I feel like we only learned that in flashbacks many, many books later. Like four or five or six or seven or a million books later.
I also have vague memories of someone being exiled from the Tower with an Oath Rod, but I don’t remember it being Morraine. It could have been her, or it could have been Siaun Sanche herself. The Amyrlin has a rough road ahead of her if they follow the books. Lots and lots of turmoil at the White Tower is coming up–like fourteen books worth. There was so much Aes Sedai politics over the course of those books that it’s impossible to remember all the nuances. It all runs together in my head.
I didn’t think Loiel went with them into The Ways, but it turns out he did. (In the book, they took their horses with them. They didn’t just leave them wandering around in a field to die like they did in the show.)
I don’t remember much of anything that happened in the first book in and after The Ways. I remember the end of that first book feeling extremely rushed and hard to follow in comparison to what came before. To this day I still have no idea who or what “The Green Man” is, a thing that seemed to appear out of nowhere late in the first book and then disappeared forever.
I’m working on this year’s Advent of Code programming puzzles, something that’s new to me.
I saw Tipa and a handful of others talking on Twitter about Advent of Code at the start of December. I hadn’t heard of it before, but it’s apparently been a yearly thing for a while now. I thought it was silly at first, but I got tired of seeing everyone else talk about it without me.
Throughout December, every day at midnight (my time, unfortunately), a new programming puzzle is revealed, and you get a gold star for submitting the correct answer. Each puzzle has two parts, so you actually get two gold stars for getting both parts correct.
I’m a programmer by trade (well, a software engineer), so you’d think programming puzzles would be right up my alley. Unfortunately I don’t particularly enjoy programming “for fun.” I usually need a practical or pragmatic reason to write code. Especially code that doesn’t have any particular use in daily life. Like programming puzzles.
But in this case, I can use it as an excuse to learn some Kotlin fundamentals. These sorts of programming puzzles are good exercise for brushing up on basic language skills.
I’ve been told that Kotlin is the wave of the future, or something like that, so I’m checking it out. It’s an object-oriented language that compiles down to Java JVM, Javascript, or (allegedly) native code. It’s the primary language used for Android development, supposedly, if you’re into that sort of thing. The point is it can run in a lot of places, and it’s a new thing if you don’t like the old thing. Personally I’m curious what it can do to abstract Javascript out of my life forever.
Anyway, the Advent of Code puzzles are typical of what you might see on a coding interview, so they’re useful to work through in that regard, too. It’s not a bad idea for one’s software development career to periodically work through those sorts of problems.
The problem statements in Advent of Code are considerably more verbose and detailed than you usually see, and you’re only judged on getting the right answer. There aren’t any time or memory constraints, so you can usually brute force your way through them. (Except in some cases where computing the answer might literally run you out of memory.) Unfortunately for me, I’m fast asleep at midnight every day, so I’ll never be able to rank very high, and I’ll never be one of the cool kids.
Anyway, I didn’t start solving the problems until Day 6, but I went back and solved all the ones back to the beginning to get all the stars. It’s important to get all the stars if you want to be taken seriously in this biz. I think.
I initially wrote the first seven solutions with Golang, which is what I use at work, but I decided to switch to Kotlin on the eighth day.
My solutions are on GitHub. [Update: I deleted that repo to make a better one.] There is room for improvement on many of them, but since these are one-and-done programs, and unlikely to form the basis of any real world software solutions, there’s not much reason to clean them up until the next time I’m looking for a job.
Day 1. Sonar Sweep. I solved this with both Golang and Kotlin. Technically this was the first code I ever wrote with Kotlin. The only trick on this one is handling boundaries.
Day 2. Dive! Straightforward. Just parsing input and adding numbers according to the given rules.
Day 3. Binary Diagnostic. I had to do this one twice because I accidentally deleted the first one. The first part was fairly straightforward, but the second part ended up fairly ugly on the first pass.
Day 4. Giant Squid. Bingo-playing squids. I ended up with a lot of supporting functions, but the main loop was pretty small.
Day 5. Hydrothermal Venture. Plotting simple lines on a grid. I used an interface and three types of lines. It turned out to be overkill and could have been simplified. This is one where the second part of the problem renders the first part of your solution somewhat obsolete.
Day 6. Lanternfish. This was the first one I attempted on the day, having become sufficiently jealous about everyone else bragging about earning gold stars without me. Unfortunately the second part showed me that brute force doesn’t always work in Advent of Code, as I ran out of memory modeling each individual fish like it was a video game. Later I went back and redid it from scratch in Kotlin using the 9 rotating states like I was supposed to, which I have to admit I saw online before I knew how to do it myself.
Day 7. The Treachery of Whales. I went with brute force again, rather than try anything fancy. Time is money! Basically just turned the problem explanation into code and out came the answer. This was the first day that I got both stars on the day, rather than backfilling the previous days.
Day 8. Seven Segment Search. This one was a bit of a chore, since it was the first one I tried with Kotlin. (All the previous ones I had solved with Golang.) In the end, I just used the easy-to-find “1” and “4” patterns to deduce the ambiguous digits.
Day 9. Smoke Basin. I recognized this as a flood fill algorithm right away. Fun fact: I first wrote a flood fill algorithm for Amiga image processing software somewhere around 1992.
Day 10. Syntax Scoring. This one was fairly easy for me because I had already done a very similar problem on Leetcode earlier this year and just repurposed it. I used an array and an index as a stack.
Day 11. Dumbo Octopus. I made a class to model the grid for this one. Another recursive traversal. Just for fun I used a one-dimensional array instead of a two-dimensional array, imagining that it was the 80s and every multiplication mattered. (It was a waste of time.)
Day 12. Passage Pathing. I hated this one with a burning passion. I don’t like graphs or pathing problems, and it took me a long time to work out the recursion. I initially went down the wrong road and tried to do it without maintaining a list of paths, which, well, didn’t work.
Day 13. Transparent Origami. Fairly straightforward. The only trick here is not to try to make a pixel grid, but rather just keep a list of points. (I mean, you probably could make a pixel grid, and it might work for this puzzle since it would only be 1000x1000 or so, but it would waste a lot of time and memory and it’s easier without it.)
Day 14. Extended Polymerization. Another annoying one where brute force on part 1 runs out of memory on part 2. The clue is in the offhand “polymer grows quickly” remark. I knew my first solution wasn’t going to work for part 2 but you’re scored on how fast you get an answer, not how elegant or efficient the code is. So I got the star for part 1 fairly quickly, then I had to rewrite it from scratch for part 2. I didn’t think a map of letter pairs would work so I went off on several false starts, but it turned out it worked fine in the end. Just for fun I re-wrote the solution in Golang, and it looked cleaner than Kotlin.
Day 15. Chiton. More disgusting pathing problems. I don’t know why these puzzle makers think “shortest path” solutions are general knowledge. Anyway I hated this one. Took basically all day. I knew right away that I didn’t know “the trick” to solving it, and my brute force floundering probably wouldn’t work within 24 hours. (Eventually I got a hint from a programmer friend, threw away the Kotlin code (which technically worked but didn’t scale), learned what a Dijkstra Algorithm was, and wrote one in Golang from the Wikipedia article. Even so, the second part still took a long time to compute, I had to run it on my gaming PC.) PS: It seemed rather unfair to require a very specific algorithm to solve this one.
Day 16. Packet Decoder. I braced myself for another monster, but this one was a fairly straightforward decoding of a binary stream, like the good old days. I made a serial binary reader class to simplify the parsing, the rest was typing out the complicated rules in code and debugging the problems as they occurred. And remembering yet again that Kotlin ints are 32-bit, not 64-bit. I went back and rewrote it in Golang, too.
Day 17. Trick Shot. I just fumbled around with a half-finished Trajectory class until I got the right answer. Didn’t even try to read the input from a file, I just hard-coded it and picked an arbitrary set of velocities to try. Luckily it was fairly easy to limit the number of possible [horizontal] trajectories so it didn’t scale way out of control like previous puzzles.
Day 18. Snailfish. It was a lazy, rainy Saturday and I was interrupted quite a bit during this one, so it took most of the day to complete it. Possibly the longest Kotlin code I’ve written to date. I recognized it as a binary tree problem right away, but I struggled to dredge up how they work out of my memory because nobody in real life actually works with binary trees. Eventually I looked up the “in-order binary tree traversal” algorithm I needed after going in circles with it for a while. In the end, I built a Number class that did all the work, and probably over-engineered it. Brute force for part 2.
Day 19. Beacon Scanner. (0/2) I got up early to work on this one. And was reminded immediately why I don’t don’t do math in programming. Let alone 3D math. I couldn’t even solve the first part of this one, even after looking up a number of clues, and wasted my entire Sunday being angry at myself. (The clues I received were: 1. How to manually make a list of the 24 possible rotations instead of trying to programmatically compute them. 2. Limit the possible point translations to a list of the differences between points instead of brute-forcing it.) On the second day, I threw away my Kotlin code and rewrote it from scratch in Golang. The main problem I’m running into over and over again is establishing a common frame of reference for beacons from different scanners, to determine which are duplicates.
Day 20. Trench Map. Yay, I don’t feel stupid anymore. A straightforward image processing convolution matrix, with a minor twist: Handling the infinite edges with enhancement[0] and enhancement[511]. I had plenty of time to go back and work on the Beacon Scanner again. Thank god there’s only four five more days of this nonsense.
Day 21. Dirac Dice. (1/2) Look, I’m a software engineer, not a mathematician. I have no idea how to solve part 2. None whatsoever. I wrote probably 10 different algorithms throughout the day, trying various ideas with recursion and optimization to get it to run on my weak little laptop. No luck.
Day 22. Reactor Reboot. Part 2 is another 3D math puzzle that boils down to: How well do you know the math and edge cases of intersecting cubes? And/or do you know a library to do it for you? I, it turns out, don’t know either, and can’t solve the problem. I’m 100% sure my algorithm will work at scale, I only need a working cube subdivision function, where the bulk of the work lies. Three days left and I’m now short by a total of four stars. Update: I got it! Rewrote my cube intersection function from scratch, accounted for all the bazillion edge cases, and it finally worked. Only short three stars.
Day 23. Amphipod. (1/2) Seriously? More graphs and pathing? Can we go back to decoding bitstreams? Anyway, after half a day of fussing with paths, I ended up doing the first part by hand. Part 2 is going to require programming, though, so I’m not getting that second star. Maybe there are game programmers out there jumping for joy at this Advent of Path Problems but I, for one, am back to being short four stars. Update: I did actually solve part 2 manually while watching Matrix Resurrection, but after three tries it wasn’t good enough to get the star. I’m sure I could find the right solution eventually, but it’s a pain to do in a text editor.
Day 24. Arithmetic Logic Unit. (0/2) Finally! Code that’s up my alley! An assembly language interpreter! I coded up the ALU in barely any time, it worked on the first try, and … then I read the fateful words “find the largest” and that’s when it turned into a reverse-engineering math problem. Ugh. Screw that. I gave up. I thought for sure I had the right last 10 digits and only had to brute force the first 4, but it didn’t work. I could have optimized my interpreter to get better at brute forcing the whole serial number, but it was obvious that’s not what they wanted us to do. Computer scientists and their b.s. math problems. Screw ‘em.
Day 25. Sea Cucumber. (1/2) I have to assume they put an easy one (for me, at least) at the end on purpose because it’s Christmas Day. But unfortunately I can’t get the second star until I get the six missing stars from previous days. Christmas is ruined and Santa is going to a die a slow horrible death at the bottom of the ocean because he can’t get his sleigh keys. You’re welcome.
So in the end, my favorite puzzles were Day 3 (Binary Diagnostic), Day 8 (Seven Segment Search), Day 13 (Transparent Origami), and Day 16 (Packet Decoder). My least favorites were all the ones that involved math and formulae and specific computer science 101 algorithms, which was most of the second half. I’m definitely not a computer scientist, I’m a software engineer. I use libraries when I need an algorithm, I don’t waste my time writing them unless I have to.
But it was worth the effort because it was a good crash course in learning Kotlin basics.
Notes on the Final Fantasy XIV Shadowbringers Patch 5.5 and 5.55 Content, Death Unto Dawn, which I finished more than two months ago at the time of this publication.
Oh hi. Remember when I was going to finish posting these before Endwalker? Well, it doesn’t matter, because nobody can play Endwalker anyway. Their entire antiquated server infrastructure imploded overnight. The only people playing are the ones who can log in at 6 AM and avoid idle timeouts all day. I imagine it’ll be at least a month before it settles down.
I myself have completed a whopping two quests in the Endwalker story so far (the “we’re on a boat” one and the “we’re touring a new city” one). It turns out I experienced a sufficient amount of Final Fantasy XIV with Shadowbringers a few months back, and don’t feel like playing, even if I could play. I can discern almost no changes in the game between Shadowbringers and Endwalker with the first two quests.
Anyway, enough of that. Here’s the last Shadowbringers post.
Surprisingly short, there are only nine quests over the course of two patches. The fifth one sends you to a Trust dungeon and the last one is a Solo Duty.
The Scions are off to fight the Scary Dark Towers that have popped up all over the world. (You can actually see them all over the game world, which is pretty cool.)
Fordola’s back! One of my favorite character’s from Stormblood is sent off to see what’s going on at the Dark Towers, along with her pal Arenvald, one of the original Scions we met way back in the Waking Sands. They casually mention that the two of them have been going on adventures all this time, and annoyingly, don’t tell us anything further about that.
Then the Scions contact Hair Estinien to help fight Crazy Fandaniel’s Lunar Bahamut dragon primal. They decide to fight dragons with dragons, and free Tiamat, a big dragon that was imprisoned in Azys La for … reasons? I’d have to consult a wiki to remember that from Heavensward. It doesn’t really matter anyway.
Then Crazy Fandaniel’s dragon forces are spotted attacking the yellow fields of Paglth’an (a place I’ve never heard of before), and we rush there for a Trust dungeon, where we take down Lunar Bahamut with some hot dragon-on-dragon action.
If only every location was as colorful as Paglth’an, I might not complain so much about how dull the colors always are in Final Fantasy XIV.
Continuing in Patch 5.55, we’re saddened to see Arenvald was injured so much that he’s comatose. But we’re not saddened as much as Alphinaud, who for some reason is frantic with worry and somehow feels personally responsible. Fordola yells at Alphinaud to grow up and walks away. Fordola, the most awesome character in FFXIV, lives the fantasy we all wish we could: Yelling at Alphinaud.
There’s a shocking twist when Alisaie’s and Alphinaud’s much-talked-about-but-never-seen father arrives from Sharlayan and delivers a stern message of non-intervention in the war against Crazy Fandaniel, and gives the twins a cold shoulder. So daddy issues will surely be tackled in the Endwalker expansion, because everyone was clamoring for more backstory from Alphinaud and Alisaie.
Then there’s another shocking twist when we see Arenvald has recovered from his coma and lives but … gasp! … he’s in a wheelchair! It’s a fate worse than death! Or so they seem to be trying to say. What is up with Japanese culture?
Anyway, then we go beat the forces of Crazy Fandaniel in a very annoying solo duty instance in which we have to control a lot of different characters that aren’t ours and curse at the screen a lot because that’s not very fun and it’s a horrible way to end an expansion.
I don’t remember much of the details now, but after the battle, we’re supposed to go to Sharlayan, and that’s it until Endwalker.
Oh, and Zenos has a scythe now. A very important plot point apparently.
The last YoRHa Alliance Raid was a doozy. I don’t really remember it now, that was two months ago. Was it the one with the Red Girl? [Reviews video.] Yes, that was it. Great music, again.
I did it a bunch of times but I never got much of the gear. I just bought the regular Tomestone gear.
Unfortunately the YoRHa story didn’t quite end after the last raid, because it went into a weekly quest rotation, and I only did a couple of them before drifting away to play other games. I guess I’ll never know what happens with the dwarves.
I bought the Death Unto Dawn soundtrack, which is a “Blu-ray Music Disc,” something I had never heard of before. It’s a pain in the butt, and a terrible way to distribute music. The only device I had in the house that could even read it was my PS4, which had been unplugged for some six months or more.
Somehow I got a Japanese version, or at least a version where all of the MP3s have Japanese titles, which I didn’t really intend to do. But it’s got some six hours of Final Fantasy XIV music on it from patches 5.1 through 5.5.
But the main reason I bought it was for the wind-up Lyna minion, which is one of my favorite characters from Shadowbringers, who I felt was criminally underutilized.
This week’s episode was less of a spectacle.
We’re in and around Tar Valon this week, home of the Aes Sedai. We begin with a funeral for Green Sister Kenobi, who died last episode, and follow her ex-Warder’s trials and tribulations.
Meanwhile, Perrin and Egwene, still traveling with the Traveling People, stumble on the Whitecloaks again. The Whitecloaks beat up the Travelers and capture Perrin and Egwene for … reasons? I guess they looked suspicious? Anyway, bad things happen to them, reminding us that Whitecloaks are Evil. But then they escape with the help of the mysterious wolves.
Rand and Mat arrive at the outskirts of Tar Valon where they reunite with Nynaeve. Rand meets Loriel the Ogier at a library.
This episode was a bit of a let-down from the last one, but it was still good enough, about on par with the third episode.
At this point it seems clear we’re tossing the books out as reference material. There’s only a vague resemblance to the first book now. It doesn’t bother me, but book purists are probably hate-brigading every comment section they can find.
I haven’t mentioned the title sequence yet. I like it. I don’t think they’ve discussed “the weave” in the show, but it was a prominent metaphor in the books, and the opening visuals certainly reinforce how much the Aes Sedai and the White Tower live at the center of the Wheel of Time universe (at least, I think those are the colors of the Aes Sedai Ajahs represented there in the titles).
Nynaeve tugged on her braid!
We got a “one month later” title card in this episode. It was enough time for Rand’s hair to turn curly, presumably so he looks less like Hayden Christensen and viewers like me will stop making fun of him for looking like Hayden Christensen.
Creepy scene with Egwene and Perrin and the Cartoon Evil Whitecloak Guy. (I don’t remember Cartoon Evil Whitecloak Guy’s name, in the show or the books.) I don’t much care for these Whitecloaks, not because they’re Evil but because they’re too Evil. It’s a bit silly and over-the-top. But I suppose he’s there to be a gender opposite of Liandrin Sedai.
Another scene with Nynaeve and Liandrin Sedai! I don’t know the actor Kate Fleetwood (playing Liandrin) but she’s good at facial expressions.
I think we saw the first significant mention of the Forsaken in this episode.
That last scene of the Sad Warder Guy’s funeral was a nice bookend to the first burial scene (and the middle funeral scene). Very powerful. And the music over end credits was very good, the first time I’ve noticed the music being better-than-average.
The last one. I got really choked up actually, especially seeing Morraine and the other Aes Sedai there. They are doing a good job in the show at communicating a lot of emotional subtext without having to explain things. But then, it might be because I know all the subtext from the books. I can’t really tell.
Rand, on seeing Tar Valon: “Blood and ashes!” Hehe.
Nynaeve: “Don’t worry. I promise you, the pain will never go away.”
Morraine. Again low-key in this episode. I’ve noticed that Morraine is always slumping her shoulders like she has osteoporosis. Maybe that’s a thing Rosamund Pike does. Or it might be a trick of the shoulder pads on her costume.
Lan. Played more of a supporting role to Sad Warder Guy, but good character development. He’s developing into much more of a lead character than he was in the books.
Rand. Curly hair doesn’t make him any more sympathetic.
Mat. Getting a little carried away with the evil dagger schtick. Ready to move on from that now.
Perrin. GoldenEye makes an appearance. Good scene revealing his deep dark secret to Egwene.
Egwene. She’s somewhat passive in the show so far. Stuff happens to her, she doesn’t really make things happen. She needs to get her butt into some Novice Aes Sedai training pronto.
Nynaeve. Not much happened with her in a month, considering what happened in the last episode. She’s a hot commodity at the Tower though. We were reminded that it’s the Yellow Ajah who are the healers.
Thom Merrilin. He’s not dead, right?
Loriel the Ogier. I didn’t dislike him per se, but I didn’t think he added much to the show, either. Just kind of there and gone, without any context.
Sad Warder Guy. Yeah, I don’t know his name. It takes me a ridiculous amount of time to learn the names of characters in television shows if they don’t constantly say them out loud. It’s especially difficult with Wheel of Time names. Was it Kenny? Something like that. Kenner? I don’t know. [It was Stepin.] Anyway, he had a good guest starring role. The temporary guest stars are out-shining the regular cast so far.
Cartoon Evil Whitecloak Guy. Terrible character so far. This isn’t an anime, you’ve got to give me a good reason for acting like a sadistic monster. Who’d give that guy a good performance review when the bosses do their yearly evaluation? Anyway he’s dead now, right? I actually forgot Egwene stabbed him until I re-watched the episode. But I have a feeling he’ll turn up again someday.
Still no Elayne. In the book, Rand met Elayne while he was sitting on that balcony watching Logain go by. That was in Caemlyn, though, which they’ve completely cut from the show so far.
I, having slogged through those fourteen books, understand and feel deeply the pain and weight of that separation between an Aes Sedai and her Warder when one of them dies, so those funeral scenes were very powerful to me. But I wonder if someone who hasn’t read the books would feel the same? Probably not. It’s only been five episodes. Ah well.
That was Dragonmount next to Tar Valon, right? I don’t remember it being right next to Tar Valon.
Tar Valon in the show doesn’t look anything like I imagined it would. I seem to recall it being described as being built from something like glass. And I thought it would be pointier on the top, like the Disney World castle, not round.
It occurs to me that, from the beginning, the goal for the characters was to reach Tar Valon, and they did. So now what? I don’t remember how or why they left Tar Valon in the books, or why they went to find the Eye of the World. Or even what the Eye of the World was.
There was some passing mention of the impending return of the Amyrlin Seat in the show (whose name I cannot pull from my memory but it was two names that started with S… Saucy Seachin? Seani Soophle? Siri Sommers? Something Something? Not even close, it was Siaun Sanche). Perhaps they’ll be focusing on Aes Sedia politics in Tar Valon for a while? Trying to emulate the whole Game of Thrones court intrigue thing? That’s the place to do it if they’re going to.
I think there was more to Perrin and Egwene’s escape than was depicted in the show. I think Morraine may have actually rescued them. I purposefully skipped those chapters in the audiobook a while ago because I figured that might be coming up in the show.
I’ve watched every episode so far twice. I had to watch this one twice because I didn’t remember much of it when it came time to write this post in the middle of the week.
I’ve slowed down on the Eye of the World audiobook. There’s not much point in refreshing my memory on things that aren’t even in the show.
Notes on the Final Fantasy XIV Shadowbringers Patch 5.4 Content, Futures Rewritten, which I finished well over two months ago at the time of this publication.
Endwalker is almost upon us, and you know what that means: It means I need to hurry up and finish these Shadowbringers posts.
While everyone else is peeing their pants with excitement all over Twitter, I myself largely forgot Final Fantasy XIV even exists. I’m playing single-player RPGs. As I’m typing this, I’m currently enjoying Pathfinder: Kingmaker more than I thought I would. Good single-player games are usually better than late-stage MMORPGialism.
I went through these ten quests, which included a Trust dungeon, on a Saturday.
We’re back in The Source now, resuming our “duties” as Scions, with a new and improved, completely fine G’r’a’h’a Tia (I don’t know where the apostrophe is supposed to go). Scions never die in Final Fantasy XIV anymore.
Well, except the one, who seems to die once per expansion. Rotten luck for her.
Oh, I guess that lalafel died too. And a few other new characters died in Heavensward, but they weren’t Scions. I can only assume Square Enix received customer feedback after Heavensward that they should never kill anyone important again, because the plot armor has been pretty thick in Stormblood and Shadowbringers.
Anyway, back to the story: First, Alisaie creates a cure for “tempering,” with her porxie buddy. They don’t have to go through FDA approval or anything for treatment in Eorzea, they just do it.
First up is Ga Bu, the poor little goblin from, I think, the end of Heavensward, wrapping up a long-standing dangling plot thread. The one and only experiment proves successful, so they immediately put this treatment into mass production. Science!
A “tempered” person is one who has been enthralled by a primal, if you’re not into Final Fantasy lore. The implications of a cure for tempering are huge in Final Fantasy-land, somewhat akin to a cure for cancer, though a casual player might not understand it, because they don’t talk about tempering much.
I only remember tempering because I happened to recently re-play the beginning of A Realm Reborn, so I re-experienced the tempering problem from the very first primal trial with Ifrit.
Back in A Realm Reborn, they simply euthanized/murdered any tempered souls, because they were beyond hope. In replaying the early game, I noticed that A Realm Reborn was much more grimdark than the disgustingly wholesome family-friendly fare that it currently is.
The point is Ga Bu is cured. Then there’s a little side quest with Limsa Lominsa working out a new treaty with the kobolds, a plot which has echoes of colonialism I’m sure we’re all familiar with seventeen times over by now.
It doesn’t really matter, though, because strange towers suddenly appear all over the place, and then our crazy new Ascian friend Fandaniel shows up with a dragon, and declares that he’s going to destroy the world just because he’s crazy like that.
Did I mention Fandaniel before? He’s an Ascian. But he’s not one of the Unsundered. So I don’t really know what that means. I feel like a non-Unsundered Ascian is just … a regular person. Because isn’t everyone technically a non-Unsundered Ascian? I don’t know. It’s too hard to understand and it doesn’t really matter anyway. The point is, Fandaniel is A New Bad Guy. And he’s craaaaaaazy.
It’s hard to imagine how Fandaniel and Zenos could carry an entire expansion, though. I had a theory that Zenos would exit the stage before Endwalker, but I don’t think there’s enough time now.
Anogg is still missing. We try to find her and … plot twist! Anogg and Konogg are androids! Well, Anogg, at least. Maybe? It’s not really clear. But I think they definitely want us to think that.
Around this time I finished my grinding in the Gold Saucer for the Stupid Regalia Car. I didn’t even get it out to do a screenshot. I will never, ever use it, ever, because it looks dumb and I have no use for a 4-person mount anyway.
But I spent over a week doing mini-games for it because it’s important to be able to get it out in case anyone ever thinks they’re a better gamer than me because they’re riding around in a stupid car. That’s how social status works in MMORPGs. People think they’re better than you if they have something “rare.” It’s the dark side of MMORPG elitism nobody ever talks about.
Anyway that’s it for Patch 5.4. Only one-and-a-half more to go.
Episode 4, The Dragon Reborn is the first great episode of the series.
First there will be spoilers for the show, then there will be more spoilers for the show from the books. So, you know, don’t read this if you haven’t at least watched the first four episodes of the show.
Rand, Mat, and Thom stay at a farmhouse, only to be attacked by a murderous Fade. Rand and Mat run away. Thom the gleeman bravely stays to fight it. Will we ever see him again?
Perrin and Egwene travel with the Traveling People, who explain their pacifist philosophy.
Morraine, Lan, and Nynaeve camp with the Aes Sedai, who have captured Logain, the maybe-Real-or-maybe-False Dragon. Logain’s army of fanatical devotees attacks, trying to rescue him, and Logain almost escapes. But Nynaeve explodes with power, rescuing Lan and Morraine from certain death and giving the Aes Sedai sisters an opportunity to gentle Logain before he can do any more damage.
This episode really encapsulated the Wheel of Time aesthetic. A lot of emotional scenes.
That prologue scene with Logain was fantastic. Hard to talk about without book spoilers, though. I like TV Logain. I imagine we won’t see him very much beyond this episode though.
I’m noticing a pattern with each episode: They begin with a miniature “prologue” in the same way that each book began with a tremendously long prologue, focusing on something else in the world that’s only tangentially related to the main plot.
Overall, I loved this episode. I hope they can maintain this level of quality for the rest of the series.
If they can just match the emotional tone of the books, that would be enough for me. The show needs good characters and good dialog and heart, it doesn’t really need good sets or special effects (luckily so, because they continue to be barely acceptable).
I could live without the dramatic hand gestures from the Aes Sedai. They look like synchronized swimmers.
I can’t decide. There were a lot.
The first scene with Logain was riveting: So much subtext going on there. We’re meant to think Logain is evil to the core, but then … he’s not.
I even liked a scene with Mat in it. When that little girl gave him her doll it was heart-breaking, and even more heart-breaking when that doll was left behind on the road. Those two brief moments had a lot of emotional kick in them.
The Warders and Nynaeve around the fire was great.
All the subtle back-and-forth between the Aes Sedai in the camp was great. They tackled some big issues there: Do they bring Logain to justice or do they just lynch him on the spot? Good arguments on all sides, a staple of Wheel of Time.
The big showdown at the end of the episode was also really good, with Nynaeve quite literally exploding onto the world stage there.
Lan telling Nynaeve what she’d been praying in the old tongue for so long. So much unsaid, but we knew exactly what it was anyway.
But I think the scene where Grandmother Traveler relates the story of her daughter to Perrin has to be the best scene of the episode. “I do what I can to forge a better world for her then, where she can enjoy the life she should have had with me.” Good stuff.
Thom: “Nothing is more dangerous than a man who knows the past.”
Egwene: “Are you sure you haven’t already found it?”
I also chuckled when Red Ajah Liandrin mispronounced Nynaeve’s name, undoubtedly an inside joke about the hordes of readers (including me) who didn’t know how to pronounce “Nynaeve” for the longest time.
Morraine Sedai. Took a background role in this episode, which was fine, because there were a lot of other good guest actors stepping up around her.
Lan. Starting to have a personality. I think I like him more in the show so far than I ever did in the books.
Rand. Sadly, he was still in this episode a little bit. Did he have any lines? I don’t remember. I stop paying attention when he’s onscreen.
Mat. More of the same. His character is only bearable when they remind us of his far-away little sisters.
Perrin. Not much of a role in this one, except to chit-chat with the Traveling People about pacifism. He didn’t really act very much… just sort of delivered lines for Grandmother Traveler to tee off of.
Egwene. Also not much of a role in this one. Just hanging out with the Traveling People learning their ways, pining for Rand. I hope she gets over that soon. She’s way too good for him.
Nynaeve. Not much dialog from her in this episode but I have a feeling we’ll be hearing a lot more from her in the next episode. Still doing well with the character.
Thom Merrilin. His tale about his nephew Owyn fit perfectly with the other events going on with Logain.
Liandrin Sedai. An appropriately scary Red Ajah representative. At first I thought she was going to be too far into the cartoon villian category but she’s getting better. We understand completely why she threw out the rules and regulations and gentled Logain on the spot (at least, I assume she did).
Green Sister Sedai. Whose name I don’t know or remember. Amazing. Sad to lose her. [Kerene, that was her name, according to Amazon X-Ray. I don’t recognize the name, but the other (surviving) green sister is named Alanna, which I do recognize from the books. (Although to be fair, almost any fantasy-sounding name could have been a character in Wheel of Time, there are thousands of them.]
Grandmother Traveler. Amazing. Wish I knew her name. Really sold the cost of pacifism. [Her name is Ila.]
Grandson Traveler. I like him. He probably has a name but I don’t remember it yet. Good at explaining the Traveling People culture. [His name is Aram.]
At this point I think it’s pretty clear they’re not just following the timeline of the first book. Who can even guess where it’s going?
I really hope this Rand and Egwene star-crossed lovers thing goes away soon, but I have a feeling it’s going to stick around for a while.
Still sort of hoping Rand will stumble over his father’s sword and skewer himself.
I want to see more of Nynaeve talking with Liandrin Sedia. :)
Don’t read any further if you haven’t read the books.
I keep thinking in my head there were fifteen books, but there were actually fourteen. There was a prequel book somewhere, so maybe that’s why I keep thinking there are fifteen.
Where’s Elayne?? When they mentioned the possible fifth Dragon, I wondered if they were about to introduce Elayne.
At the end of episode three, I thought for sure they were heading to Caemlyn with Logain, which I think is where Elayne joined the motley crew.
Is it possible they’re … cutting Elayne out of the show?? There’s already too many characters and plotlines to keep up with, but I would have thought they’d cut Thom Merrilin before they cut Elayne. Elayne was at The Final Battle!
To be fair, though, it was difficult to tell Egwene and Elayne apart, personality-wise.
One thing I’d completely forgotten about the first book is how much doubt there was about who The Dragon was, which is reflected in the show so far. We the audience are meant to wonder if it’s Rand, Mat, Perrin, Egwene, Logain, or–now–Nynaeve, and that’s how the first book was constructed, too.
Is it possible they might change it for the show? They’re certainly hinting hard that it might be Egwene or Nynaeve, a major departure from the books, but maybe it’s just a head fake to keep us guessing.
I don’t remember much of anything from the first book that went so far in-depth on Logain. I only remember him as background noise, talked about but rarely seen, who only became a major character later in the books after his gentling, which I thought was done at the White Tower, not in some cave on the road.
My only memory of First Book Logain is that he was held prisoner and “tried” at Caemlyn. I seem to recall that readers, and Rand, first laid eyes on him there.
I don’t remember exactly what happened to him after that, but I suppose it would make sense that the Aes Sedai carted him back to the White Tower from Caemlyn, where the characters were going anyway. Maybe that’s where the events of this episode 4 took place? But skimming through the chapter titles and Leigh Butler’s Re-Read, I don’t see it anywhere in the first book.
I do remember the “shielding” that the Aes Sedai did to hold the men in check, but again, I don’t remember that being in the first book much at all. It was common in later books, though.
So here’s the facts: Rand first heard Logain was captured by Aes Sedai in Whitebridge. He heard they were taking him back to Tar Valon (the White Tower). Chapter 26.
Rand saw Logain for the first time in a cage surrounded by Aes Sedai in the streets of Caemlyn, shortly before meeting Elayne. Chapter 39.
A brief perusal of a Wheel of Time wiki suggests this whole scene with Logain escaping may have been made up out of thin air, or happened to a different character in the books. Still cool, though. I don’t mind the change here at all.
P.S. Don’t read Wheel of Time wikis. They are super duper nerdy.
I definitely don’t remember Nynaeve healing Lan and everyone else back from the brink of death in a burst of energy, but it’s possible something like that happened somewhere over the course of the books. The more I think about it, the more it sounds like something that might have happened. I think Nynaeve’s channeling was more wild and unpredictable than any of the others' for quite some time.
Indeed, Nynaeve was called a “wilder,” according to the wikis.
I’d forgotten it was the Green Ajah that were the Warriors. I thought it was the Red. The Red, though, are apparently the Inquisitors, the male channeler chasers. I think we’ve also seen Yellow Ajah on the show (briefly, burning at a stake) but I don’t remember their specialty.
I think there was a scene in the books where Thom battled a Fade when the chapter ended, and we were left wondering if he survived or not (actually, I remember thinking he was dead for sure). I seem to remember that happened on a bridge outside of a city, though. Whitebridge?
It was indeed Whitebridge where Thom charged a Fade to give Rand and Mat time to escape. Chapter 26, after their boat ride down the river with “do be” Bayle Doman. (That was also the chapter we learned Mat had taken a dagger from Shadar Logoth.)
In the books, I feel like it was a very surprising moment for Thom’s character because we’d never seen him as anything but a gleeman before, and never knew he could, you know, fight things. The show is making it quite obvious he’s a competent fighter.
I’m still trying not to read ahead of where the show is, but since the show is all over the place, it’s somewhat difficult to figure out where they are in the timeline of the books. There’s a bunch of stuff about Perrin and wolves and Whitecloaks that I read already that they haven’t gotten to yet. I should probably stop. Always watch the show or movie before reading the book. Always, always, always.
But they appear to have thrown out the rule books and done whatever they want, which is probably for the best. It’s far more important for commercial success to try to gain a new audience of television viewers than to try to please the much smaller audience of book purists. Book purists are the worst. :)
In my re-listen to the first audiobook, I’ve only gotten up around Chapter 30, somewhat beyond Whitebridge. I think the show is already beyond there (there are 53 chapters in the first book). I think they might even be pulling in things from beyond the first book. There’s no way I’ll be able to keep up.
In the early chapters I’ve re-read, though, these things have already occurred at least once: Nynaeve has tugged her braid and sniffed, Thom has blown out his mustaches and knuckled his back, and Rand has scrubbed his hair. Egwene might have sniffed too. I don’t remember her having a signature emote, though.
Just for reference, the road trip in the books went from Emond’s Field to Taren’s Ferry to Baerlon (cut from the show completely) to Shadar Logoth. Then some of them went through Whitebridge and they regrouped in Caemlyn before moving on to The Ways (which I had completely forgotten about until perusing the chapter titles).
Min was in the first book! I’d forgotten that. That was at The Stag and Lion in Baerlon. Nowhere to be seen in the show so far.
Bayle Doman do be in the first book, too, rescuing Rand, Mat, and Thom from Trollocs after they left Shadar Logoth. Not in the show so far. One thing about Robert Jordan: When he comes up with a signature gesture or speech pattern for his characters, he sticks with it to the bitter end.
It’s an interesting choice to leave so much of the Traveling People in the show, while cutting so much out of Rand, Mat, and Thom’s road trip. I mean, I’m always happy to cut Rand and Mat out of the story whenever possible, but I feel like they had more action-oriented adventures.
In re-reading some of the first chapters of Eye of the World, I was reminded of just how colossally stupid Rand and Mat were at the start of the story, and how they constantly made poor decisions. It’s no wonder I never liked them in the books (I was well into my 40s when I first read Eye of the World, so the juvenile antics of a couple 16-year-olds didn’t play very well with me). The girls in the first book were far more level-headed.
Of course it was all by design, to illustrate how far the characters matured over the course of the series. But still. Very annoying.
Something else I’ve noticed from re-reading the first book: So much happened in the first book that it scarcely seems credible. So little plot advancement happened in some of the later books that the events of the first book seem like they go by at a breakneck pace you can hardly keep up with.
Aram was a whole lot more predatory toward Egwene in the books. Probably a wise decision to change that for a 2021 television audience.
Disco Elysium is one of those award-winning games I bought mainly because it was on sale and I heard it was award-winning.
I never would have bought it otherwise, because it’s an isometric game, and I don’t like isometric games as a general rule. It bugs me that I can’t see past the edges of the screen, or behind things, particularly in role-playing sorts of games, where I want to see everything my character can see.
But Disco Elysium might as well be Zork for all the importance that the graphics have. The game is all in the text. Screenshots are meaningless. You technically do walk around on an map, but it’s only to interact with things that trigger very, very long sequences of interactive dialog. There’s so much text it’s actually annoying that they push it all over to the side of the screen instead of the middle.
Disco Elysium is weird. It’s bleak. It’s absurd. It’s gross. It’s depressing. It’s creative and intellectual. And it’s funny. And most important of all, it’s really interesting. I’ve never seen a game like it.
Well, I’ve seen dialog-heavy isometric adventure games before–they’re a dime-a-dozen, because they’re cheap to make–but the setting, characters, and general aesthetic in Disco Elysium are unique. I can’t think of anything similar to compare it to. They grabbed every genre known to humankind, threw them into a wood chipper, and built a world out of the sawdust.
The dialog trees go on for days and days and days. It’s a rare game where I forget how long I’ve been playing because I’m so engrossed in seeing where the conversations go.
Anyway, my character is currently working on two things: Finding alcohol and drugs, and restoring Communism. He’s also a Cop of the Apocalypse, whatever that means.
For the record, I’m supposed to be investigating a murder.
But there’s also a Union strike going on that I haven’t looked into, and there’s a secret door in the kitchen of the hostel I can’t get in, and there’s a bookstore with another secret door behind a curtain that I tried to break down, but I couldn’t, then I had a heart attack and died.
I also tried to hit an obnoxious kid once, but I missed and fell down, and my ticker gave out on me then, too. My guy is prone to having heart attacks (my Physique is 1).
I dug my police clipboard out of a trash can, which I threw away last night in a drunken stupor for some reason (before the game started). The clipboard has a secret compartment in it, which contains some mysterious stuff about my past, but I fainted as soon as I looked at it and had to be awakened with smelling salts.
It’s a lot to deal with, so I really need some drugs, and I think the obnoxious kid can get some for me, because he’s high all the time, but he’s really obnoxious and hates cops.
Luckily I found a bottle of Commodore Red in an apartment building, so I was able to get drunk on the job at least. I definitely think I should be drunk before I perform an autopsy on this murder victim, the Hanging Man, who I shot down from the limb he was hanging on with my partner Kim’s pistol. The corpse is still lying there on the ground while the kids play around him.
In any case, getting drunk gave me an extra point of Physique so hopefully I won’t have any more heart attacks for a while.
I also need to find some money or I won’t have a place to stay tonight, and I can’t even imagine what might happen if I have to wander the streets after dark. Maybe the ghosts in the bookstore will come out.
I don’t even know what to say about the RPG mechanics. It uses a skill system, but the skills all have names that don’t mean anything to me, like Esprit De Corps and Savoir Faire. There’s no Archery or Gymnastics to be found.
I picked the Inland Empire skill as my “specialty,” which is something about hunches and gut feelings. I made my first character with random stats that came out 1 Intellect, 5 Psyche, 1 Physique, and 5 Motorics.
Anyway, it’s a fun adventure-style game. I can see why it was award-winning.
I may have setup a working Remark42 comment server?
I installed Remark42 on a Linux server on my network, and connected it to the blog. That means your blog comments will be sitting on the floor of my living room. You can’t get that on any other blog!
A couple of caveats:
Someday I’m going to finish my magnum opus on my philosophy about the past, present, and future of blog comments, but in the meantime, my view is that, in 2021, comments should serve more as an ephemeral messaging platform than a permanent publishing platform. Way too many people on the Internet still think comments are meant to be a Letters-to-the-Editor section of an 1890s Newspaper. I personally think that era of the Internet is over, because it’s easy for anyone, anywhere to setup their own free publishing platform in seconds (platforms that are even more popular than blogs).
In case you’re wondering, setting up Remark42 was as simple as:
I originally tried to get all of that to work on an AWS EC2 server instead of a server on my living room floor, but I had no end of difficulty getting a certificate from Let’s Encrypt for reasons I can’t remember.
Anyway, we’ll see how this works.
From the publisher's feed