<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:g='http://base.google.com/ns/1.0'>
  <title>We Can Solve This</title>
  <updated>2026-06-24T05:10:00Z</updated>
  <author><name>Sandy Maguire</name></author>
  <id>http://sandymaguire.me</id>
  <link rel='self' href='atom.xml'/>

    <entry>
      <title>Modern Parenting is Anti-Parent</title>
      <id>blog/antiparenting/index.html</id>
      <link href='blog/antiparenting/index.html'/>
      <published>2026-06-24T05:10:00Z</published>
      <updated>2026-06-24T05:10:00Z</updated>

      <content type="html">
        <![CDATA[
        <p>Hello, it’s me again. Coming at you from the wee hours of the morning. YES YES I KNOW that I owe you a 2025-in-review. And I know that it’s very nearly July, which is the latest one yet. But I have a good excuse. It’s a fresh baby!</p>
<p>And even better, my son has VERY RECENTLY learned how to sleep. Which means I don’t need to be around all night just in case he starts YELLING. This is a very nice change.</p>
<p>Of course, <em>my</em> sleep is still fucked, which is why I’m awake in the wee hours. But I can’t tell you how refreshing it is to feel like I have the mental capacity to produce something of extracurricular value.</p>
<p>Perhaps you’ve heard, but parenting turns out to be (mechanically) very difficult. What do I mean by this? It’s not hard to love the little guy, but it IS hard to wake up every 2h to make sure he’s fed. It’s not hard to get him to nap, but it’s hard to get him to nap in a way that lets me to ANYTHING ELSE (they call this the <em>nap trap.</em>)</p>
<p>There is all of this baby paraphernalia that one seems to magically (thanks Erin!) acquire. Ostensibly it’s job is to help with parenting, but more often than not, its job is to make your life as miserable as possible. Consider the humble crib. Our crib is slightly less than four feet (120cm) tall. I, for comparison, am six feet (180cm) tall. The mattress inside the crib sits at the very bottom.</p>
<p>If you think through the constraints here, you’ll notice that something has to give. This is a deep bucket with 4ft tall railings, which act as a hinge in the equation. I tell you what—it’s impossible as FUCK to lift from the knees when you are plucking a little one out such a setup.</p>
<p>All the new dads I know have recently tweaked their backs. It’s not an old man thing. It’s a crib thing.</p>
<p>OF COURSE, OF COURSE, the crib is adjustable. There are, in fact, three positions that the mattress can be in:</p>
<ul>
<li>RIGHT AT THE DAMN BOTTOM</li>
<li>VERY SLIGHTLY ABOVE THE BOTTOM</li>
<li>JUST A TOUCH ABOVE THAT</li>
</ul>
<p>Each position is maybe 5cm higher than the previous. If you recompute all of the physics above, you will see that this doesn’t change things in the least. I’m still over a meter deep in this damn crib.</p>
<p>When would I want the bottom-most setting on this crib? When I have a very tall toddler who has been studying bouldering. When would I want the topmost setting? A slightly less tall toddler who has been studying bouldering.</p>
<p>Consider instead our bassinet (a smaller crib for smaller babies, if you’re slightly fresher to the baby game than I am.) Our bassinet has an adjustable height, and came advertised with the killer feature that the side would fold down, so you could just roll the baby out into bed with you. Sounds nice, right?</p>
<p>NOT.</p>
<p>To actually get this feature to work, with one hand you need to hold down a button on one end of the outside of the bassinet. And with the other hand you need to hold down a different button on the opposite end. And now that these two buttons are held, the locking mechanism releases, and you can use your third hand to gently lower the now-unlocked side. Noticing any problems?</p>
<p>That’s right! You need to use a third hand because the lowering-side is actually spring loaded, so it won’t stay down no matter what you do. And it doesn’t lower all the way down, so if you can manage to hold it with your forearms, you can then move your two hands from the outside of the bassinet inside and try to scoop your baby into bed, except that the side will still get in the way.</p>
<p>Like what the actual fuck?</p>
<p>My assumption here is that thing about the road to hell being paved with good intentions. I’m sure some baby fell out of a bassinet with a lowering side one time, so now it’s NOT EVER ALLOWED TO DO THAT EVER AGAIN. And some idiot put the crib mattress too high for too long, and their baby rolled out and died. So now the only adjustable options are COMPLETELY USELESS AND EFFECTIVELY NOT ADJUSTMENTS WHATSOEVER.</p>
<p>This damn stuff is everywhere when you go to look at it. Babies can’t have stuffed animals in their crib because they might suffocate on it and die. They can’t have blankets in their crib because they might suffocate and die. They can’t sleep on soft mattresses because they might suffocate and die. They can’t be swaddled because they might roll over and suffocate and die—even if there’s nothing to suffocate and die ON because you’ve already removed all of that stuff. So what’s left? SLEEP ON YOUR BACK ON A HARD MATTRESS WITHOUT ANY BLANKETS OR ANYTHING TO CUDDLE WITH.</p>
<p>No wonder they don’t sleep well. I wouldn’t either.</p>
<p>Thankfully there’s a happy ending to all of this. After a few months of this crap, I got frustrated. And figured <a href="https://en.wikipedia.org/wiki/Inveniam_viam">aut inveniam viam aut faciam</a>. So I took out my drill and I made the necessary adjustment options on the crib. Now the mattress sits a foot below the TOP, which means we can scoop the little guy in and out without needing to throw out our backs. And believe it or not, once using the crib wasn’t physically harmful to us, we found sleep training to be significantly less awful. So much so that it’s now a week later and he has been sleeping throughout the night for five days in a row.</p>
<p>How’s THAT for “we can solve this.”</p>
        ]]>
      </content>
    </entry>
    <entry>
      <title>Reflecting on 2024</title>
      <id>blog/reflecting-on-2024/index.html</id>
      <link href='blog/reflecting-on-2024/index.html'/>
      <published>2025-01-04T23:10:00Z</published>
      <updated>2025-01-04T23:10:00Z</updated>

      <content type="html">
        <![CDATA[
        <p>When I was young, all of the old people I knew would complain about how quickly the years went past. Now that I am less young than I was (but then again, who isn’t?), I find myself remarking on just how dang quickly the years seem to be going past! Isn’t there a speed limit or something? Where is the gruff, underappreciated traffic cop for the annals of time when you need him?</p>
<p>In fact, he seems only to show up when his absence might be preferred! I got pulled over this year. While on my bicycle! I’ve come to fearlessly embrace the motto “take the lane,” since doing anything else encourages motorists to hurl their heavy machinery past me with the slimmest of margins, while going waaaaay faster than the speed limit. Combine that with needing to be a precog and scan all of the parked cars’ side mirrors in order to prevent oneself from being stopped rapidly by the lack of a shoulder check, and being in the middle of traffic seems like the safest option somehow.</p>
<p>Anyway. A motorist with somewhere to be got fed up with my speed, and decided that swerving between me and a left-turner, while in the middle of the intersection was his best option. The gruff traffic cop noticed this overt breach of driving decorum and rather than chasing the blackened culprit, chose to instead pull me over!</p>
<p>An interesting story? Not really. But that’s kind of what all of 2024 felt like. Being hassled by people in positions of authority. Thankfully, not nearly to the same degree as <a href="https://sandymaguire.me/blog/another-year/">last year.</a></p>
<p>Speaking of last year, between the taxman drama and being completely BTFO from <a href="https://leanpub.com/certainty-by-construction">writing my third book</a>, I didn’t have much energy to put into my end of year synopsis. Which is regrettable, since the most important parts of 2023 didn’t get written down. Thus, gentle reader, we shall take some time out of our busy schedule for the new year and write down some memories of the old year.</p>
<p>MOST IMPORTANTLY, on September 9, 2023, my now-wife Erin (then fiancee, obviously) and I became wedded in holy matrimony. It was a blast— I brought the bachelor party out for a cheeky day-of parkour session, just <em>daring</em> the lord to put me on crutches. Then I ran around doing a bunch of errands that I probably should have delegated, and was too busy to eat until my cousin Tyler sat me down for pizza and beer and told me that I am now firmly in middle age. Tyler had graciously accepted to be our last-minute wedding DJ, and he knew how to turn the PARTY UP.</p>
<p>Where was I? Oh yeah. Getting married. Between finishing pizza and taking wedding photos, I needed to get dressed for the main event. My bride-to-be had reserved our shared apartment (living in sin! gasp!) for all of the things that brides-to-be need to do on the day of their wedding, so my wedding suit (which was originally an unused best-man suit, <em>thanks Rory</em>) ended up at Andrew’s house. It was a very quick how-do-you-do, in and out, with my pants already off as I came through the front door. Where was my best man throughout all of this? Good question. Where <em>was</em> my best man???? Not sure but I didn’t have time to find out. I had wedding photos to take, and a lot of traffic to get through in order to take them.</p>
<p>I arrived at the quote scene of the crime unquote all by myself, already sweaty and tense. Not from cold feet or anything, just from a busy day and a deep-seated appreciation for punctuality. We took a bunch of photos of me pretending to adjust my cuffs (none of which subsequently ended up on the wall), before my wife arrived with her bridal entourage. I was told to avert my eyes so that we could capture the “first look” on film. And what a first look it was. I knew I was a lucky man to be marrying Erin, but it hadn’t hit me <em>just how lucky</em> until I turned the corner at that downtown art gallery.</p>
<p>The two of us were marched around for a bit, both by our photographer, and by some passersby who also considered themselves photographers. Some ruffians eyed the camera bag and considered doing a brazen theft-job, but some combination of the fire in my glare and the not-wanting-to-fuck-up-someone’s-wedding in their hearts averted the crisis.</p>
<p>As for the wedding itself, well, I don’t need to write it down because I’ll never forget. And even if I somehow did, there is lots of photographic evidence. All I’ll say is that many unmarried friends have since expressed to me their hesitancy throwing a wedding, given that it could never compare to Erin and mine.</p>
<p>So that was the really big thing in 2023 that never ended up in a blog post. But the other thing is that I got into, and did my first semester of grad school! I had wormed my way into UBC’s programming language department, where I had the distinct pleasure of spending 90 minutes on the bus for 90 minutes of class, and an awful TA experience where one guy just kept not doing any marking (fuck James.) But it wasn’t all bad. I got something like a 100% final grade for all of my classes, and met a lot of great people along the way.</p>
<p>But I had set myself up for success, because I was taking a class on dependent types, but ignoring the lectures because I was writing a <em>textbook</em> on dependent types. The book was in crunch mode during the semester, and finally shipped the day before Halloween. Maybe you should go <a href="https://leanpub.com/certainty-by-construction">buy a copy.</a></p>
<p>So those were the highlights of 2023. Which turns us to…</p>
<p>TWENTY TWENTY FOUR.</p>
<p>The main event.</p>
<p>The big kahuna.</p>
<p>Looks kinda weird when you write it out like that. “Twenty twenty”? Weird. Anyway.</p>
<p>Erin and I rang in the new year with some friends at some nice wine bar. As it happens, I don’t drink wine, so I was unexpectedly sober throughout the evening’s festivities. Which was a little harder than I might have expected, given that we were at a weird, semi-participatory burlesque show where a woman slowly popped her suit-of-balloons. It wasn’t exactly my cup of tea, but one of our co-revelers—a man particularly lucky at cards—had a big grin all night, which widened considerably when the last two balloons burst.</p>
<p>My first order of business was to drop out of grad school. Between the bus rides, doing too well at classes, being unable to sign up for courses I actually wanted to take, and lack of support, I felt like my time was going to be better spent somewhere else. Anywhere else, really. It wasn’t a rash decision—I’d scheduled meetings with my advisor, and with the grad heads, and all of those people, but nobody seemed to hear what I was saying. I suspect most of the people they need to advise are young twentysomethings without much in the way of life experience or <a href="https://en.wikipedia.org/wiki/Best_alternative_to_a_negotiated_agreement">BATNAs</a>. There was a lot of “well sometimes people get sad in the winter,” and not enough of “you’re right, I’ll see what I can do to get you registered for this math course.”</p>
<p>I wasn’t too hung up on it, though. The company I’d been contracting for realized how amazing an engineer I am, and decided to fly me down to LA in order to talk Business. After a really nice dinner and somewhat embarrassing morning meeting, we agreed on a mutually beneficial amendment to my contract. They got a cheaper rate, and I got more hours.</p>
<p>Turns out my phone data doesn’t work in LA, so I bummed a ride to the airport off of the CEO. Because I had somewhere to be. Vegas, baby, where I was meeting my wife for a cheeky weekend. I’d never been, but had reason to go, and she wanted to be there to witness my reactions to the place in real time. I arrived an hour before she did, and hung out in the airport until we were reunited. We had a weird night wandering around the strip, eating $25USD slices of pizza and getting drunk at the <a href="https://maps.app.goo.gl/LjgtaYSCtfCqTgAF7">most glamorous Taco Bell</a> I’ve ever had the good fortune to encounter.</p>
<p>Also <em>Omega Mart</em> is worth a visit if you’re in Vegas. But the less you know about it, the better a time you’ll have.</p>
<p>Vegas isn’t the sort of place I’d go to by my own volition. I was there for Reasons. In particular, I’d signed up for <a href="https://shop.redteamalliance.com/products/covert-methods-of-entry-lockpicking-red-team-training-for-pentest-penetration-testing-boot-camp">Covert Methods of Entry</a>, which is essentially a five day intensive spy school. I learned how to get through “most doors, most of the time.” Which includes metaphorical doors like “floors in a building you can access only by restricted elevator.” With the exception of getting into a lock box containing the pieces for a public chess set, I haven’t actually used any of these skills in anger yet. But it’s the sort of thing that changes how you look at the world, and I can now tell you which electronic badge readers are vulnerable to which attacks, by sight alone.</p>
<p>The other fascinating thing that happens at spy school is that you’re surrounded by a bunch of spies. Me? I’m just some nerdy programmer dude who thought it would be fun to understand physical security as well as I understand digital security. Or at least, that’s my excuse and I’m sticking with it. But the OTHER PEOPLE THERE? There was one guy who “worked for the state of Alabama.” There was a guy who claimed to be a professional clown and writer for a sketch comedy show you’ve heard of—who got <strong>real</strong> interested during the section on weaponized RFID. There was one dude who claimed to have extensive knowledge of physical disguise, due to his work in the field training agents to operate in Jordan—“where both the regime and ISIS are trying to kill you, but with entirely different threat profiles.” A man and a woman were there together, under clearly fake names, who were “database administrators.” The man would ask questions in class, but deftly deflected personal questions aimed in his direction during breaks. The woman didn’t say a single word except for her name, but she would whisper things to the man.</p>
<p>I made sure not to leave my laptop in the room during breaks.</p>
<p>Erin had headed back to Vancouver after the weekend, so I was doing this course on my own in Vegas. Vegas is a pretty terrible place to spend any amount of time, so I put a lot of my downtime into writing some introductory material on computer science with a twist. In January I had found myself affiliated with a group of cool people talking about building some sort of community project to design an entirely new curriculum for thinking about CS. So I was putting my energy towards that. One member of these young Turks had a <em>very different</em> idea about it was that we were working on, and things got unpleasant, fast. This is a person I have great respect for, but it wasn’t the first time things had gotten unpleasant, and I decided the potential upsides from collaboration weren’t worth the gaslighting.</p>
<p>Thankfully, I didn’t have much time to dwell on it, because I got the job I had gone to LA to discuss. The company had been building a custom programming language for several years, but didn’t seem entirely sure about how to go about doing that. I was brought on to help turn the project around, which consisted of meticulously planning and carrying out several HUGE (multi-month) refactors.</p>
<p>Alongside the herculean task of getting this programming language to turn over, I also found myself with a fresh-out-of-school junior, whom nobody else had the time to train or mentor. Although I’d flirted a few times with mentoring in the form of being an official buddy to undergrads, I hadn’t ever been in a position of needing to help bring someone into the fold. Thankfully I’ve had several fantastic mentors over the years, so I channeled my inner Jeffs, <a href="https://ponderousmad.com/">Adrians</a>, Neales, <a href="https://mingfei.io/">Mingfeis</a>, Miles, Judahs, and <a href="http://conal.net">Conals</a>, and seemed to have managed OK. My ward was a fast learner, and, perhaps unfairly crediting myself for his successes, I consider this experience to have been one of the highlights of the year.</p>
<p>In April, I hopped on a bus, and then a ferry, and then another bus to go visit the indomitable <a href="https://chrispenner.ca/">Chris Penner</a>. Chris had unwisely agreed to do <a href="https://ldjam.com/">ldjam</a> with me, without knowing the full fury to which I throw myself at game jams. We got started at 7pm, and I bought a bunch of energy drinks to get us cooking. Chris was unfamiliar with the subtleties of the MONSTER ENERGY CURVE and didn’t get much sleep that night, despite his best efforts to. As a result, our game didn’t make much progress, and we called it the following afternoon. Not as successful a gamejam as I’d have liked, but hanging out with Chris is always a delight.</p>
<p>Erin and I are trying to buy a house, and in April we really got going. We brought on a realtor. I complained about the realty website, and ended up reverse engineering their site and making my own. Unfortunately I had just read (and listened to) some <a href="https://www.qword.net/2024/04/07/you-should-write-bad-tools">idiotic advice</a> and slapped my version together an hour faster than I would have otherwise, but it worked <em>significantly</em> less well than if I had just followed my usual engineering practice.</p>
<p>But anyway. House hunting. Erin and I easily went through 500 places on the website, and ended up seeing around 30 in person. Among all of those, there was only one that we actually considered buying, and it came with a strict no-children covenant, which felt like more than we wanted to bite off. It is now January and we are <em>still</em> trying to buy a house. The annoying part is that it isn’t a question of money or anything, there’s just nothing worth buying. How can this be POSSIBLE in a city of two million?</p>
<p>Late 2023, my then-new friend Michael had started pulling together a group of friends, and around this time it really started congealing. United under the <em>Tingling Dinglers</em> moniker, we started hanging out regularly, and occasionally winning bouts of trivia. Never twice in a row, on which we have predicated retiring the name, but probably around six times throughout the year. It’s the first time in a decade that I feel like I’ve got a really robust group of friends in meatspace. We all did a free, online IQ test and have ranked ourselves in the social hierarchy by our self-reported IQs. Rather amazingly, every one of us has a once-in-a-millennium level IQ, with the condensed-matter physicist of the group being the dummy and weighing in at a laughable 157.</p>
<p>I don’t know how it happened, but sometime around here, my friend Daniel and I started being GYM BUDDIES. He goes a few times a week, but only weekly with me. Me? Only weekly. But there’s something amazingly motivating about having someone reliably message you on Sunday morning asking “when we getting swole today?” The gym is above the swimming pool and I keep threatening that I’ll go swimming after a workout one day. It hasn’t happened yet, but maybe next week!</p>
<p>In May, my amazing and gorgeous wife was called to the bar again. It had happened last year in a relatively informal situation, but this time it was for REAL. We got dressed up and went to the courthouse and heard how the law is a noble profession, and all of my family and all of her family came to celebrate. We threw an afterparty at our place, got into the Good tequila, and then kicked everyone out to go to a succulent greek family dinner. The lambchops were some of the best my aunt had ever had. There was some drama at four in the morning, but we sorted it all out.</p>
<p>For months, Erin had been hinting about the most amazing date that she had planned. BUT IT WAS A SECRET. When the day finally came, we went to the Keg and Erin got a load of SURPRISE LAW to accomplish. Which she did! And then we went to see a production of <em>Guys and Dolls,</em> which I had never seen, but had played in. It was nice to be in the audience! Great date all around, but Erin paid the blood price for it, given that she got home and had to work until 3am to do all of the SURPRISE LAW.</p>
<p>My birthday occurs in August, and we threw a big ol’ surprise party. Notice how I said “we.” The surprise wasn’t for me, it was for all of our guests! I have a weird thing about telling people it’s my birthday, since it feels like it guilts people into coming. What’s better is to invite people to a party, and then you can see who your REAL FRIENDS are, because they’re the ones who show up even without the extra birthday prod. Lots of fantastic people showed up, and Luke even crashed the party with some randos! Everyone felt bad that they hadn’t got me anything, but as they say, their presence was presents enough. Also Erin mashed a billion copies of my face into a fantastic icecream cake.</p>
<p>ONE YEAR AFTER OUR WEDDING, which, recall, is where this whole blog post journey began, Erin and I went to San Francisco for our anniversary! We saw some old friends, went on a tiki bar crawl, went on an escape room crawl, and had robots drive us around. The next day, Erin and I went to the SF Moma and saw the <a href="https://www.sfmoma.org/exhibition/ragnar-kjartansson-the-visitors/">most amazing exhibit of our lives</a> which I would STRONGLY STRONGLY recommend you go to. There is no snark here; genuinely the best art either of us had ever experienced. That night we checked into our swanky hotel, ordered Ike’s, and watched the fog roll over the city.</p>
<p>Despite saying we would do zero travel in 2024, and despite having just gone to SF. And also to LA and to Vegas, Erin and I went to Turkey in early November. We stayed in an atrocious tourist ghetto in Istanbul, ate lokum every day, went hot-air ballooning (which is fantastic and I would recommend!), and went to look at lots and lots of ruins. One particularly cool set of ruins is at <a href="https://en.wikipedia.org/wiki/Aphrodisias">Aphrodisias</a>, where one emperor or another decided that merchants were all greedy bastards, and he decreed the price of everything. There are sixteen tablets in the agora, each full of prices. Erin and I spent like an hour in the beating sun reading them and comparing the relative prices of things. The most memorable was the ratio between the daily wage of a bathhouse slave (2 units), and the price of a lion (150,000 units.) Which works out to 205 years of minimum wage in order to buy a lion.</p>
<p>Contrast that to our modern economy, where it’s only about 80 days of minimum wage in order to buy a lion! Lots of people like to complain about capitalism, but that sure is something!</p>
<p>Also, we rented a car and drove across Turkey. And it’s a BIG country! Erin suggested we could take a quick detour through the mountains and save a few minutes. What transpired was two hours of <strong>extreme white knuckle</strong> driving as we went up and down badly paved, single-lane switchbacks, with big trucks somehow coming past us at full speed. Harrowing, but fun.</p>
<p>Some cool stuff happened near the end of the year. My open source project <a href="https://github.com/agda/cornelis">cornelis</a> got upstreamed into the main Agda organization. That feels nice on two counts; presumably they like it enough to make it “official,” and it means I’m off the hook for ongoing maintenance. And at work, I found and subsequently implemented <a href="https://arxiv.org/abs/2111.03701">some very cool research</a>. I was given a week to make it happen, and managed to pull it off. The result was a HUGE win for the company, a nice christmas present for my boss, and a great ego trip for me. But boy was I working hard that week. So much so that I was having dreams about it for the next two weeks of my christmas vacation.</p>
<p>During which, Erin and I got extremely sick. We went down to Victoria for a big family brouhaha, and managed to not have very much fun due to staying in bed most of the time. But the family time was much appreciated, and everyone was very understanding.</p>
<p>Which leads us to now. Me, sitting at my desk, writing this very sentence. Still sick, but mostly mended, healed, and saved.</p>
<hr />
<p>With all that behind us, let’s do a little bit of QS! My favorite (based on actually-listened to) new-to-me albums of the year were:</p>
<ol type="1">
<li>Fela Kuti - Highlife</li>
<li>KNOWER - KNOWER FOREVER</li>
<li>Everyone is Dirty - Caramels for Grandpa</li>
<li>Cat Empire - Where the Angels Fall</li>
<li>Kendrick Lamar - GNX</li>
</ol>
<p>What about books? It was a hard year for books! My goal was to read 30 books, and I “made it through” (for some definition) 21. But a lot of those were false starts, where I got through like 20% of a VERY LONG BOOK before deciding I didn’t care to finish it. My highlights and recommendations of the year, in no particular order:</p>
<ol type="1">
<li>Peter Westergaard - An Introduction to Tonal Theory</li>
<li>Christopher Alexander - A Pattern Language</li>
<li>W. J. King - The Unwritten Laws of Engineering</li>
<li>Daniel Boorstin - The Discoverers</li>
<li>Charles Brandt - I Heard You Paint Houses</li>
</ol>
<p>Despite not reading as many books as I would have liked, I read a lot of really cool papers in 2024. A lot of them were around the pi calculus and other ways of thinking about programming. Of particularly cool note is <em>choreographic programming</em> which strikes me as where industry will be in 30 years.</p>
<ol type="1">
<li><a href="https://arxiv.org/abs/2111.03701">Functional Choreographic Programming</a></li>
<li><a href="https://www.sciencedirect.com/science/article/abs/pii/S0020019010000487">New common ancestor problems in trees and directed acyclic graphs</a></li>
<li><a href="https://doi.org/10.1017/S0960129500001407">Functions as Processes</a></li>
<li>[Can Programming Be Liberated from the von Neumann Style?] (https://dl.acm.org/doi/10.1145/359576.359579)</li>
</ol>
<p>I did almost no open source this year. I didn’t realize HOW LITTLE until just now when I went to check out what I did on Github in 2024. It’s embarrassing! But I suppose I have a few years’ worth of goodwill on that front still. At work, I landed 299 pull requests, which is a very respectable more-than-one-a-day. And most of those are <em>features</em> and <em>big refactors</em>, baby! You can call me a lot of things, but unproductive isn’t one of them. A long long time ago I told my wife that I don’t have emotions, only productivity. She still teases me about that, but maybe I was on to something.</p>
<hr />
<p>All in all, it was a pretty good year! Much better than the last few. I’d do it again.</p>
<hr />
<p>Oh yeah, and I took some selfies too.</p>
<iframe width="494" height="879" src="https://www.youtube.com/embed/O6OslnYfMxg" title="Sandy Takes a Selfie Every Day for 3 Years" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen>
</iframe>
        ]]>
      </content>
    </entry>
    <entry>
      <title>Another Year Goes By</title>
      <id>blog/another-year/index.html</id>
      <link href='blog/another-year/index.html'/>
      <published>2024-01-14T13:55:00Z</published>
      <updated>2024-01-14T13:55:00Z</updated>

      <content type="html">
        <![CDATA[
        <p>Some things, like getting a job, can be put off indefinitely. Others, like paying taxes, cannot. Writing a yearly review turns out to be in this second category; not only did I promise myself I’d have this post out in the first two weeks of the year, I also promised my wife the same. And so here we are, on the 14th, which is about as late as possible as one might be able to pretend such a thing is timely.</p>
<p>The theme of 2023 was to not have a theme of 2023, and to instead partition the traditional yearly resolution into three semester-ly resolutions. In the wisdom of my advancing age, I’ve realized that I can maintain focus for on multi-month projects, but larger time-scales are hard. And often neurosis-inducing if I push through anyway. More on that later.</p>
<p>My first theme, spanning January to April (inclusive), was to be a <em>man of action.</em> At some point last year, I was inspired by my <a href="https://www.instagram.com/loicbakes/">now-brother-in-law</a>, who zooms around and just gets shit done. He’s not a man to sit idle, and around this time last year I felt like I could use a boost of not sitting idle. The goal was simple: whenever an action was presented to me, I had to move on it. This is not the sort of goal you can fail, but it does remind you to strive in the direction you want. By the end of April, our house had no more maintenance tasks to do, and my backlog of funny projects was empty. I even got around to paying my taxes. Much more on THAT later.</p>
<p>The second theme, May to August, was to be a <em>man of discipline.</em> Not like, a discipline daddy with a wardrobe of leather, mind you, merely, a man who does what he says and who lives according to his principles. This one didn’t go so well, much in part to these being the same months immediately before my wedding, which took up a lot of mental space.</p>
<p>The third theme, September to December, was to be a <em>man of learning.</em> Kind of. I didn’t actually write this down or tell anyone about it. I started grad school in September and that was my focus for the remainder of the year, for better or for worse.</p>
<hr />
<p>To do things a little differently this year, let’s quickly discuss the METRICS. Last year I did 768 hours of productive, nose-to-the-grindstone work, which doesn’t include time spent thinking or reading about problems. 390 hours of those were spent writing <a href="https://leanpub.com/certainty-by-construction/">Certainty by Construction</a>, and another 120 hours making video games. I did 120 hours of gainful employment, and another 39 hours of marking assignments. For 47 hours, I thought about MUSIC. In 2023, I made <a href="https://github.com/isovector">1550 commits on Github</a>.</p>
<p>Also last year, I read 34 books. Most of them were shit (average rating 3.3/5 stars), but there were a few bangers. Sandy’s top book recommendations from 2023 are, in no particular order:</p>
<ol type="1">
<li><a href="https://www.goodreads.com/book/show/1404132.Denotational_Semantics"><em>Denotational Semantics</em> by J. E. Stoy</a></li>
<li><a href="https://www.goodreads.com/book/show/245344.Structures"><em>Structures</em> by J. E. Gordon</a></li>
<li><a href="https://www.goodreads.com/book/show/57727.L_A_Confidential"><em>L. A. Confidential</em> by James Ellroy</a></li>
<li><a href="https://www.goodreads.com/book/show/3922937-an-introduction-to-tonal-theory"><em>An Introduction to Tonal Theory</em> by Peter Westergaard</a></li>
<li><a href="https://www.goodreads.com/en/book/show/79766"><em>A Pattern Language</em> by Christoper Alexander</a></li>
</ol>
<p>Rather notably, three of these books are on the topic of prescriptive utopia, albeit from completely different lenses. <em>Denotational Semantics</em> is the direction computer science should have gone, but didn’t. <em>Tonal Theory</em> successfully makes the argument that harmony is a cursed way to think about music, and really what we should be considering is <em>counterpoint</em> instead. And <em>A Pattern Language</em> is a delightful account of how amazing our civilization and cities could be if we could be fucked to make it happen.</p>
<p>To the casual audience, I would strongly recommend <em>Structures,</em> <em>L. A. Confidential</em> and <em>A Pattern Language.</em> Two will dramatically change how you look at the city around you, and the third is just an excellent read.</p>
<p>On the topic of books, I wrote a new one this year. More on that later, but while we’re discussing metrics, I sold 433 books last year, which works out to about $12,000. It’s not an impressive amount of money, but it’s not chump change either, and (almost) pays the rent. If you’ve ever wondered whether you too should write a book, these numbers are above the 90% percentile for authors. The numbers are somewhat arbitrarily deflated, however, since this doesn’t count sales of my new book, which due to some weird math are already sold but I don’t see until February.</p>
<p>Last year was nothing to write home about, musically speaking. I didn’t find any new amazing bands, but I have really been enjoying <a href="https://www.youtube.com/watch?v=SucEIvh8pew">Fela Kuti</a> and <a href="https://www.youtube.com/watch?v=CFD34aUpeyM">Jerry Reed</a> lately. Very different styles, but both excellent in their own way.</p>
<p>Also, I spent a LOT of time (and money) at parkour last year! I went for 86 classes, which works out to about 110 hours of running and jumping over stuff. Pretty cool! I’ve finally gotten to a point where I’m not aggressively embarrassed to do it in public, which helps make it a lot more fun in the real world.</p>
<hr />
<p>OK, with the administrata out of the way, let’s get down to brass tacks.</p>
<p>Last year came into bloom at a New Years Party. As part of being a MAN OF ACTION, I had decided it was finally time to get my corporate taxes sorted out. I’d been putting them off for slightly longer than was wise. So what luck that I should meet an accountant at the NYE party! We exchanged pleasantries and details, and made a loose plan for him to help sort out my taxes. Great! My new resolution was off to a resounding start!</p>
<p>If you haven’t noticed yet, taxes make up a big chunk of the 2023 narrative.</p>
<p>A few hours later, we were ringing in the new year at a nondescript bar, around an awkward table with a giant lamp shade glued into the middle. With the lamp shade, we couldn’t see across the table, and without the lamp shade, the lamp was far too bright to see anything else. Dan-the-Engineer and I came up with a brilliant plan of wrapping the light bulb with some random piece of fabric we had on our persons. The waitress was NOT very pleased about our ingenuity, and reamed us out for the fire hazard we had inadvertently created. Or would, have, if the light bulb were not an LED. But she didn’t know that, and she certainly didn’t care.</p>
<p>After one Amaro Montenegro too many, Erin and I said our goodbyes and made our exit. The traditional new years hangover ensued, as did our new tradition (est. 2022) to nurse it with home-steamed dim sum.</p>
<p>Much of 2023 was spent fighting. It began by fighting with Skills Matter, the organizers of Haskell Exchange, a conference where I had given an invited talk in December 2022. It was not my first time talking at Haskell Exchange, and it was not the first time they had tried to stiff me. After not being paid for months and subsequently threatening to be much more public about how disappointed I was about it, they I immediately put me in touch with their CEO. He tried his best to give me the shake, but eventually I got my money. I think they’ve gone bankrupt since, which doesn’t dishearten me in the least.</p>
<p>Also in late 2022, I had switched banks, from one of the Big Five to a local credit union. While I like them very much, they set me up with a USD account, but were completely incapable of <em>receiving</em> USD from abroad—you know, the currency that isn’t available locally, the one explicitly on the name of the account? Apparently nobody had ever wanted to do this before! Weird!! After five very embarrassing emails to clients asking them to “please try again,” and an intimate phone-booth experience with my banker, I eventually came to the conclusion that they simply couldn’t help me. So I set up an account with Wise and that has solved all of my banking issues.</p>
<p>But, it didn’t solve all of my money issues. Because there was still the eldrich horror that is the Canadian Revenue Agency.</p>
<p>It began, as many things do, with a phone call. On some day in early January, I got a call from a man with a very thick African-sounding accent, asking whether I was “Alexander Magooer.”</p>
<p>Close enough, I thought. “Sure, what’s up?”</p>
<p>“Hello, my name is Asazabad Mafusasteb. I am from the Canada Revenue Agency. Can you confirm your identity by giving me your birthday and social insurance number, please?”</p>
<p>The oldest phishing scam in the book. I hung up on him. Not today, buster. You have to get up <em>pretty</em> early to pull one over on ol’ Alexander Magooer.</p>
<p>But our man Asazabad called back a few days later, asking for the same information. More politely than last time, I told him that I don’t divulge personal information to strangers over the phone. Thank you, and have a good day.</p>
<p>Asazabad called back several times over the next few days. “Listen, Alexander, I am from the CRA. My Please confirm your identity by giving me your birthday and social insurance number.” I continued to be obstinate. “If you really are from the CRA, please give me your extension number, and I’ll call you right back, and then we can chat.”</p>
<p>“Because of the pandemic, I am working from home. I do not have an extension.”</p>
<p>Sure thing, Asazabad. I told him I’d be happy to confirm my identity with him as soon as he could confirm his to me. He gave me his “agent ID” for the CRA, claiming it was sufficient. I told him that even if this was a real ID number, nothing about quoting it to me meant that it was <em>his</em> ID number.</p>
<p>I did a quick Google search for his phone number. It came up as a known scam caller. I hung up again.</p>
<p>Asazabad continued to call me every few days. Over time, he grew more desperate. “I am from collections. You owe us a lot of money. You can log into your CRA account and see.”</p>
<p>As it happens, I <em>couldn’t</em> log in to my CRA account. As far as I knew, I didn’t have a CRA account. Although occasionally I received emails telling me I had a new message in my CRA account. Those emails frustratingly never included the text of the new messages. I’d tried half-heartedly a few times over the last few years to log in and check out these mysterious messages, but it’s not something they make easy.</p>
<p>In order to log in to your CRA account, you need to provide your social insurance number, your mailing address, and some random-each-time number from some random-each-time year that you filed taxes. Sometimes I had the documents they asked for, often I did not. Regardless of that, it never let me into the system.</p>
<p>But that was OK, because as far as I looked at it, if the CRA really needed to get in touch with me, they’d find a way to do it. It’s not my responsibility to figure out what’s wrong with their stupid website.</p>
<p>Asazabad continued calling, and we kept coming to the same impasse. He couldn’t identify himself to me, and I wouldn’t identify myself to him until he did. Classic Mexican standoff. He kept insisting that I could just log into my CRA account and see that collections did indeed want to speak with me.</p>
<p>In a moment of weakness, I momentarily considered the idea that Asazabad really might be from the CRA. And, if that was the case, maybe he’d be incentivized to help me log into my account. So I unwisely gave him my mailing address, thinking that maybe the issue was that the CRA had the wrong address on file, and that was why I could never log in. Big mistake.</p>
<p>On February 7th, I call the CRA for an unrelated reason (trying to pay taxes) and spend 41 minutes on hold. Since I’m talking with them anyway, I ask about getting into my online account. That’s a different department, and they put me on hold for another half hour before I get through to Tommy. Turns out they do have the wrong address on file; they’ve got some address that I haven’t lived at since 2010; despite having filed taxes with correct addresses every year. They manage to get my address updated, but tell me they have been mailing letters to me at that address for a long time.</p>
<p>I ask Tommy if he can confirm whether Asazabad is a real agent of the CRA. He transfers me. It takes another twenty minutes. Jimmy tells me he can’t find any record of Asazabad being a real agent, but, and I quote “that doesn’t mean he isn’t.” What the hell.</p>
<p>Even though my mailing address has been updated, I still can’t log into the damn website. It seems I’ve locked myself out of the account by failing to log in too many times. You would think they wouldn’t make it so hard to pay them taxes.</p>
<p>Asazabad thankfully has given up calling me. But on February 14th—Valentines Day—I receive a letter in the mail alleging to be from the CRA. “You owe us $20,000. Please pay us within 10 days, or we will begin seizing your assets.” The letter is dated February 5th. Uh oh. I’m pretty certain I don’t owe them anything. I’m an honest person who begrudgingly pays his taxes every year. I haven’t hidden any income or property or anything, and I’ve never done even a little bit of fraud.</p>
<p>Rather than focusing on romantic things with my then-fiancee, I spend most of Valentines day on hold with the CRA, trying to confirm whether or not any of this is real, and whether or not my assets are about to be seized on the morrow. Because I’m missing some returns that they want, I’m unable to adequately verify myself to any agents, and so they bounce me around for a few hours. All I really want to know is whether Asazabad is a scam artist or not, and nobody will give me that information until I’ve given them the right numbers from the right tax returns.</p>
<p>What the hell is this bureaucracy? <a href="https://www.youtube.com/watch?v=IR7a8rPlAao">Has the planet gone mad?</a></p>
<p>Eventually I manage to get through to an actual person who seems to care. Edward tells me that the CRA has been hiring aggressively as of late, and so most people I talk to are completely green, know nothing, and play it entirely by the book, refusing to see the humanity in anyone they speak to. His words vindicate my experience.</p>
<p>Edward pulls up my file, and although he can’t give me any information about it, he does confirm that Asazabad is a real agent and is in fact trying to contact me.</p>
<p>Oh.</p>
<p>Oh no.</p>
<p>Oh shit.</p>
<p>Maybe that $20,000 bill thing is real.</p>
<p>So I call Asazabad back, and say I’m ready to talk. I confirm my identity, and he says “you owe us $20,000. Please pay us. You can pay us through your online account.”</p>
<p>I would say that the joke was on him, and that I still can’t log into my online account, but the joke it seems, is on me.</p>
<p>Of course, Asazabad can’t tell me <em>why exactly</em> I owe the CRA $20,000. He handwaves something about over-contributions to my Tax-Free Savings Account (TFSA), but he doesn’t know anything more than that. That information hasn’t been provided to him. He’s just the collections guy, and he wants his money.</p>
<p>The TFSA thing seems suspicious. I had a TFSA briefly from 2009 to 2014, but it was completely by the book, and I’d closed the account before I left Canada in 2015. So what the hell was going on?</p>
<p>I called the bank branch in my small hometown where I had my TFSA. They were sympathetic, and I asked them to pull up any records they might have on it. They didn’t have any. Turns out by law they’re only allowed to keep those records for 7 years, which meant they had destroyed any relevant evidence that might be helpful for me to sort this obvious mistake out.</p>
<p>The CRA, it seems, is not beholden to this law restricting their records of my TFSA. Cool.</p>
<p>After a few more hours on hold, Edward manages to get me logged into my online account. Or so he says. Foolishly, I hang up. It doesn’t work. I call back. I spend another hour on hold before Mandeep <em>actually</em> gets me into my online account.</p>
<p>Sure enough, in my account there is a backlog of eight years worth of unread messages. The interesting stuff happens in 2020, when my TFSA from a decade earlier was reassessed, and determined to be illegally held. Therefore, any money I had in that account accrued penalties for every month it was there. Add that all up, round to the nearest ten thousand for interest penalties for the three years they were unable to contact me because they were sending mail to my childhood home, and you’ve got yourself one hell of an expensive bill.</p>
<p>The question of course is why did the CRA determine my TFSA to be held illegally? Having spent the entirety of that penalty period dating a lawyer, I’ve learned that the best case of action in cases like these is to go read the law. And sure enough, I’m in the right. All Canadians who live in Canada are eligible for a TFSA, with a total cap that increases every year you have it open. I am in fact a Canadian, who was living in Canada, and I was well below the cap. Therefore, my TFSA was not illegal, and the CRA is in the wrong.</p>
<p>But unfortunately the onus is on me to show that.</p>
<p>The notices of reassessment state that I have 90 days during which I can file a dispute. A salient question is “90 days from <em>when?</em>” From when they issued the document and sent it somewhere I haven’t lived for over a decade? Or from when I receive the notice? Knowing the government, it’s probably the former.</p>
<p>On February 15th I call the CRA again, and after the usual hour-long wait, I speak with Tammy. I explain the situation. She tells me that I never informed the CRA that I left Canada in 2015. Then, when I came back to Canada from Thailand in 2020 and filed my taxes, I said “yes” when asked if I had “moved to Canada.” Which was true; I was not living in Canada earlier that year, and was when I filed my taxes. The idiot CRA however interprets this as asking “did you <em>immigrate</em> to Canada?”</p>
<p>Even though I was born in Canada and had well-established financial ties in the country for nearly 25 years that the CRA all knew about, it automatically assumed my “immigration” to Canada meant that I was not a citizen, and therefore, retroactively, that my old TFSA was illegal.</p>
<p>Tammy advised me to write a letter and send it by post to the “special tax services unit” in the middle of nowhere Canada. I rattled off such a letter, explaining the mistake, and swallowed my pride to grovel for forgiveness, even though I didn’t feel to be in the wrong. But pride is cheap when you’ve got $20,000 on the line. I paid the exorbitant $60 fee to have my letter delivered by courier to the specialty tax services unit, and figured that would be the end of it.</p>
<p>That was not, in fact, the end of it.</p>
<p>I called Asazabad back, explaining the situation to him. He listened quietly and then said “you owe us $20,000. Please pay through the online portal.” Thinking maybe that he’d had a brain aneurysm, I explained it all to him again. “That may be,” he said, “but I do not know whether your dispute will be successful, and in the meantime, you owe us a lot of money.” Asazabad patiently explained to me, as if I were a child, that the best course of action would be for me to pay the CRA $20,000. And if my dispute were successful, they would pay it back to me.</p>
<p>I’m sure the CRA is good for it, but $20,000 is a big chunk of change, and being in the middle of the bureaucracy, it seems unlikely that I’d see that money again any time soon. I told Asazabad I’d get back to him.</p>
<p>So I went back to the statute, which says that all taxpayers have a right to not pay anything while their case is in dispute, except in cases of “jeopardy.” I called Asazabad back, stating I wouldn’t be paying the money, and cited the relevant paragraph to him. If the powers that be considered my account to be in jeopardy, I told him to give me that in writing, and wouldn’t consider the matter further until then.</p>
<p>A week later, Asazabad calls me back, stating my cited clause doesn’t apply, because my dispute window closed way back in 2020. And so he wants his money. But since I’ve been so cooperative, he’s willing to cut me a deal. We can work together to make a year-long repayment plan in monthly installments. I forget about my resolve to not talk to him any further unless I get jeopardy in writing. We make a payment plan.</p>
<p>I call the CRA to confirm that they received my letter. They did; and say it will take 90 days to get everything resolved.</p>
<p>When the day to pay Asazabad part of the penalty comes, I instead pay my taxes. It all goes to the same account, and if push comes to shove, I plan to make an argument that part of that money is for taxes, and part of it is repayment on the TFSA charges. My ruse works, because Asazabad doesn’t call back.</p>
<p>The next month rolls around, with blessedly little contact from the CRA. I’d like to keep it that way, and since I paid my taxes in full, I can’t play the same trick again this time. Instead, I actually send real money as part of the payment plan. Asazabad thankfully continues to not be in touch.</p>
<p>Keep in mind that this is all happening while I’m fighting with the bank to receive money, and with Skills Matter to get reimbursed for my travel costs, <em>and</em> with my accountant (more on that soon!) Despite having a lot of money, it all seems to have dried up, and it turns out that old adage is true—it’s <em>much</em> easier to be carefree and fancy free when you can bankroll it.</p>
<p>Finally, 90 days from the date I sent my letter to the CRA comes around. I don’t hear anything. I call them back. I spend an hour and a half on hold. Kamal can’t help me. He forwards me to Jimmy (from all those months ago!), who makes me go through the security questions AGAIN. Jimmy says he also can’t help me, but he’s put a tag on my file to help speed things up. Maybe I’ll get a call in the next 3 business days.</p>
<p>I don’t.</p>
<p>Nine more calls to the CRA over the next few weeks. At one point, after two hours of being on hold, I was greeted with the message “All our agents are busy and the queue is now full, so we are disconnecting you. Have a nice day.” Finally I get in touch with Jordan who is the first human I have encountered at the CRA in these six long months. Jordan immediately sees that the whole situation is a mistake, apologizes on behalf of the CRA, and says he will personally sort it out.</p>
<p>AND HE DOES!</p>
<p>It takes two hours on the phone, but finally the thing is done. Two weeks later, I get a flurry of emails from the CRA, telling me to sign into my account (which I somehow get locked out of again, and need to reset via, you guessed it, the phone system.) But, all is well, the flurry is to tell me that they have reassessed everything, and now it’s they who owe ME $1000.</p>
<p>They still haven’t paid it to me. Or the other $2500 they said they would cut me a check for. But at this point, I’m too tired to fight about it. All in all, the ordeal took 171 days from first being told about the problem to it being sorted out. None of which was delay on my part. Only stress. A great deal of stress.</p>
<p>Did I mention throughout any of this story that I did eventually line up an accountant? That guy from New Years came through, who put me in touch with one of his friends, who told me that I shouldn’t corporation because I don’t have enough money. He did his part to help by charging me a huge bill for this information, ensuring I had even less money. His bill ended up being the same amount as my taxes were for the year, which is a double scam because it’s the same number that TurboTax told me to pay.</p>
<p>Stupidly, the accountant and I never discussed fees. When he eventually sent me his bill, his hourly wage was <em>above</em> what the internet claimed a very expensive accountant cost. I grumbled, but paid it.</p>
<p>But this is not the end of his malevolence presence on my year. Not by a long shot.</p>
<p>Sometime in the middle of the CRA saga, I made another stupid decision. I asked my accountant if he could help get everything sorted out. He estimated it would cost about $10,000 to fix. He didn’t manage to fix it, but instead charged me $8,000 and fucked things up worse by providing the CRA with a bunch of <em>incorrect information.</em> Which is how I got locked out of my account again.</p>
<p>Worse, when he was filing my corporate taxes, he registered me as a GST taxpayer, because I sell books, and had made enough to turn that a thing the government cares about. GST is <em>fucking stupid.</em> I don’t handle the books, I’ve got a Canadian storefront who handles that sort of thing on my behalf. They collect and remit GST to the government. But idiot accountant man figured that should be <em>me</em> who sent the GST to the government. So he registered me to “voluntarily” send GST to the government. While I wasn’t on their radar before, now I was, and they wanted their blood money.</p>
<p>The idea behind GST remittance is some sort of mickey mouse daisy chain thing. The storefront collects it from the customer, and then they pay it to me, and then I pay it to the government. If the supply chain is longer than this, then everybody hands it to the next guy. I told my accountant this is a cockamamie idea, since the storefront is already giving the tax to the government. But no, he insisted, and signed me up for the program.</p>
<p>All is well and dandy in principle here, until you try to get the GST from the storefront. In <em>their</em> accounting, they’re already handling the tax on my behalf, and so they sure as hell aren’t going to just send me more $$$ because I claim I will give it to the government instead. But since I have “voluntarily” registered as a GST payer, the government is now insisting that I pay them.</p>
<p>The end result is that my books are being double taxed, with the goods and services tax coming directly out of my pocket. It seems like they just let <em>anyone</em> be an accountant.</p>
<p>I suppose the life lesson to be learned from all of this is to not trust some guy you met at a New Years Eve party with your livelihood. You can pay someone to do a job (and how!), but you can’t pay them to give a shit. Funny, I ended up saying that last year too…</p>
<p>Sorry. I’ve had this story pent up for a full year, and apparently just couldn’t stop myself once the ball got rolling. A lot of really excellent things did happen this year, even though I’ve now spent nearly 5000 words complaining.</p>
<p>Anyway, the year began by spending a week and a half with Andrew, working our way through Ludum Dare 52—a semiregular weekend game jam. We hung out and spent 36 hours making <a href="https://github.com/isovector/ld52">Where’s My Chicken, Man?</a> which happened to be a surprise platformer hit. Andrew and I put on the <a href="https://open.spotify.com/track/0d1ZKNMQgiEntJFkgbY526?si=571dd2c3aa114dac">Kraak and Smaak</a> and hacked away deep through the nights. I did the programming and Andrew did the character and level design. All in all, it was a total blast, and a few people spent a few months speedrunning it. What the hell kind of world do we live in?</p>
<p>February came, and with it, Erin and I, as well as two of our good friends all headed down to Seattle on a roadtrip. We were stopped at the border due to Lazar being Serbian, which meant he got to see the back of the interrogation room while the rest of us got mildly detained just for knowing a Serb. Ostensibly the trip was for the women to go wedding dress shopping, but we also went to Magic Dick’s Harmonica Blow Out, which was a surprise sleeper hit—especially in the 80+ female demographic. Old ladies be <em>lovin’</em> that Magic Dick.</p>
<p>At the end of 2022 I had applied to go to grad school, and got accepted everywhere around February. Which meant I had to go about <em>picking one.</em> There were a lot of skype calls and a few in person coffees, and a lot of going out for beers with students at prospective labs. Eventually I ended up choosing UBC because I wasn’t entirely sold on the whole grad school idea, and I didn’t want to accidentally tank someone’s career if I ended up being a bad candidate. Prescient. Also the UBC lab seemed super cool, and a big chunk of what I was looking for was a community.</p>
<p>In March, Erin and I threw our official unmarried spouses party—our official three year being together event, which indicated us being (unmarried) spouses in the eyes of the law. We invited over 60 people had threw a rager of an event, even though it was mostly lawyers and engineers who stayed mostly segregated throughout the night. But a raucous time was had by all, and our place felt sufficiently warmed after a whole year of putting off any parties.</p>
<p>Immediately afterwards, I set jets for Berlin, where my boss had (gently) bullied me into giving a talk at a conference. The conference itself was fine, but I got to meet all of my German coworkers for the first time in person, which was a stellar vibe. I managed to get covid sometime between leaving my house and arriving at my first flight, which made for an <em>awful</em> trip across the Pacific. Thankfully my German roommate in Berlin, Leif, was a great sport, and took me out to all sorts of cool music venues. He happened to know all of the musicians playing at all of them, despite having not lived in Berlin for a decade. Great trip all around, punctuated by a few cheeky 5am kebabs.</p>
<p>Erin and I had a weird idea at some point that we wanted to be more like Ben Franklin, and so we setup a system of <em>necessary virtues.</em> We took his list, and decided to each pick a virtue, and spend a week at a time focusing on it. Of course, we permuted the cycle of the list with two coprime numbers first, so that we could get through all 169 combinations without any repeats. We did this crazy thing for like three months before getting tired of it. While industry is certainly a nice thing to strive for, why is chastity a necessary virtue anyway?</p>
<p>It was the spring time, and Erin wanted to get into biking. Except that her bike was in DESPERATE NEED of a tune up. Thankfully her brother is a bit of a bike wiz, so she asked him to do the usual 100k maintenance check-up. We expected to get the bike back within a few days, but two months later we still hadn’t heard anything. So, being a good husband, I suggested maybe she just buy another bike, assuming it was unlikely she’d ever see the original again. She did (from an estate sale), and being an especially good husband, I spent ten hours learning how to do bike maintenance in our kitchen. I made many scuffs in the floor doing so (sorry George!) Taking the thing out for the spin, I realized it was only a <em>little</em> bit of a <strong>DEATH BIKE</strong>. The breaks were no good. The chains kept derailing. The switcher wasn’t indexed. It was a scary thing to take down the mountain that we happen to live on.</p>
<p>Anyway, the DAY AFTER, her brother got back in touch saying the bike was ready for her, apologizing for the delay. I want to say we all learned something about clear communication that day, but I’m not sure that was the real takeaway.</p>
<p>May came, and a mysterious man got in touch with me, saying he had a cool job I’d be a good fit for, but for legal reasons he couldn’t tell me more. We played the NDA dance for a few weeks, and once all the lawyers were satisfied (my lawyer happened to be a bluff) the job did in fact seem to be cool and a good fit. So I started contracting for another company, which was nice because things with Wire were winding down and I felt like it was a good time for a change.</p>
<p>This whole time, Erin and I were prepping for our wedding. We had finally set a date for September, and it was time to get down to business. Of utmost priority was to find a photographer. Erin and I lined up a few interviews, but we ended up being late—and aggressively hungover—for our first one. Borja thought this was a great sign in potential clients, presumably because it meant we were not overly anal about our wedding, and we liked each others vibe. We left the meeting feeling good thinking that this was going to be the guy. But we forgot to talk $$$.</p>
<p>And then we flew to Serbia.</p>
<p>Some backstory—Halloween previous, we were at a party with some new friends that we’d hung out with three or four times. During the party, they looked at one another, nodded, and then asked “do you want to come to our wedding? It’s in Serbia.” Never ones to turn down an excuse to go somewhere weird, Erin and I jumped on the idea. It’s certainly one strategy for solidifying a friendship!</p>
<p>So anyway. Serbia. We landed in Beograd the day before Hali and Lazar’s wedding. Bad idea. After an INTERMINABLE BUS RIDE from the airport, we stumbled into our rental place and unpacked. We went out for a quick cevape and a beer, before meeting up with the wedding out-of-towners for a cheeky spot of Nikola Tesla lecture. We went to bed that night, and managed to sleep for sixteen hours. That jetlag is nothing to sneeze at!</p>
<p>We awakened sometime in the afternoon of the wedding. OH SHIT. Did we miss it?? Thankfully no, but it was in 45 minutes, on top of a hike-it-yourself mountain. And we still had bedhead, to say nothing of being sufficiently well-groomed for a wedding. We THREW things together, and RAN up the mountain. We got lost, but figured following the men in tuxes was probably a good idea. It was, and wasn’t. They were indeed there for the wedding, but were just as lost as we were.</p>
<p>Thankfully, we arrived before the bride and groom. In fact, it seemed like <em>only</em> the out-of-towners made it before the bride and groom. Were we in the wrong place? Unclear! But NO! There they were! The wedding was in the orthodox style, which none of us really understood what it meant. What happened is all the out-of-towners gathered solemnly around the edge of the church (standing room only) while the head priest guy sing-shouted for 45 minutes in Latin (probably, but it might have been Serbian I guess?) The Serbs knew better than we did, and they just kinda showed up sometime before the ceremony was over, and chatted amongst themselves paying absolutely no attention whatsoever to the couple.</p>
<p>After the ceremony, Ebi took charge of the group, and proceeded to hike us <em>aggressively</em> the wrong way down the mountain. Not only did we get lost, but we did so with gusto, somehow on the exact wrong side of the mountain, and eventually ending on the damn highway. We reconvened for a quick beer and small bag of peanuts before being picked up by the minibus. Did I mention the minibus? No? We needed it because the wedding reception was to take place in a gorgeous greenhouse/atrium in the middle of the damn forest on the top of a damn Serbian mountain.</p>
<p>Gorgeous place, but we got there like two hours before anyone else. There was booze available, but no food. And we hadn’t eaten anything (minus a small bag of peanuts) all day due to the whole late wakeup situation. Erin and I were understandably cautious around the aggressively-freely-flowing alcohol. But we took the opportunity to solidify our (very) new friendship with Matt and Zoey. By inviting them to <em>our</em> wedding. They gracefully declined for some reason or another, AND WE HAVEN’T SPOKEN SINCE. LET THAT BE A LESSON TO YOU!</p>
<p>I’m not sure what lesson, but I’m sure there’s one there anyway.</p>
<p>Anyway. Once the reception got going, it was a total hoot, complete with all several hundred people lining up to get a selfie with the bride and groom, a tight brass band that kept playing as long as people kept stuffing money in their horns, an uncomfortably-solemn singalong about taking back Kosovo, a runaway bride, way, way too many shots of rakija, and becoming fast (and drunken) friends with Mel, with whom we did eventually solidify our friendship. By inviting her to our wedding. To which she came.</p>
        ]]>
      </content>
    </entry>
    <entry>
      <title>Certainty by Construction: Done!</title>
      <id>blog/certainty-by-construction/index.html</id>
      <link href='blog/certainty-by-construction/index.html'/>
      <published>2023-10-30T13:55:00Z</published>
      <updated>2023-10-30T13:55:00Z</updated>

      <content type="html">
        <![CDATA[
        <p>Happy days and happy news: it’s done.</p>
<center>
<a href="https://leanpub.com/certainty-by-construction"><img src="/cbc.png" alt="Certainty by Construction"></a>
</center>
<p>After a year of work, I’m <em>thrilled</em> to announce the completion my new book, <a href="https://leanpub.com/certainty-by-construction">Certainty by Construction</a>.</p>
<p>Certainty by Construction is a book on doing mathematics and software design in the proof assistant Agda, which is the language Haskell wants to be when it grows up. The book is part Agda primer, introduction to abstract algebra, and algorithm design manual, with a healthy dose of philosophy mixed in to help build intuition.</p>
<p>If you’re the sort of person who would like to learn more math (including all the proof burden), and see how to apply it to writing real software, I think you’d groove on this book. If it sounds up your alley, I’d highly encourage you to <a href="https://leanpub.com/certainty-by-construction">give it a read</a>.</p>
<p>I’m not much on social media these days, but if you are, I’d really appreciate a signal boost on this announcement! Thanks to everyone for their support and understanding over the last year. I love you all!</p>
<p><a href="https://leanpub.com/certainty-by-construction">Go cop Certainty by Construction!</a></p>
        ]]>
      </content>
    </entry>
    <entry>
      <title>2022 Recap</title>
      <id>blog/2022-recap/index.html</id>
      <link href='blog/2022-recap/index.html'/>
      <published>2023-01-04T00:32:00Z</published>
      <updated>2023-01-04T00:32:00Z</updated>

      <content type="html">
        <![CDATA[
        <p>2022 is coming to a close, which means it’s time for my annual look back at the year, telling the stories and coming to realize that I didn’t accomplish many of the things I said I was going to. But that’s OK; hope springs eternal. Maybe next year! More on that in a bit.</p>
<p>We rung in the new year doing fondue with a small group of friends. The vibe was magical and really felt like the GLOBAL PANDEMIC was over. We put down the quiet evening to being old, not to being unable to go hard. It was lovely. The morning after we started a new new years tradition, nursing our hangovers with steam-it-yourself dim sum. Strongly recommended.</p>
<p>A week later, Erin and I headed off to Mexico. I don’t exactly remember why; maybe it was just to get out of the Canadian winter or something cliche. We went to Sayulita — which is a bit of a meme town in my family — and spent the week eating tacos, hanging out on the beach, and surfing. Well at least, that was the plan. Instead, we both got aggressive norovirus infections and the trip was mostly spent in the bathroom. But we also heard the most amazing family fight across the open air (“MOM! YOU BIT ME IN THE NECK. WHAT THE HELL?”). It was nice to escape Canada, and also nice to come back, which is about the best you can hope for in a trip.</p>
<p>While in Mexico, I set off on my “review 52 papers” project, and spent like ten hours of the vacation working through some gnarly math. It was great, and I started learning the Agda programming language in a serious manner. This turned into wanting to write it myself, which turned into needing to build all my own tools, which turned into <code>cornelis</code> — my most successful open-source project to date. That was cool, and I got pretty good at Agda by the end of the year. More on that later.</p>
<p>I had been secretly planning to create a podcast for the last few months, and this project finally got rolling in January. I researched and interviewed people in my little programming community, seeding the conversation with “what are you better at than anyone else here?” and seeing where that lead to. I did four episodes, and felt like I was really hitting my stride by the end. But the process was more energy than I wanted to put in, and quickly burned out on the idea. The interviewing and hanging out with people was fun, but the preparation and editing wasn’t. Eventually I hired an old friend as an editor, which dramatically improved the situation, but it wasn’t rewarding enough to pursue further.</p>
<p>As part of my yearly goal to get fit, Erin convinced me I should do <a href="http://www.c25k.com/">Couch to 5k</a> — a 9 week running program to turn a non-runner into someone who runs 5ks. In my case, it was only a single 5k, because I did it with bad shoes and hurt my knees or something. I never ended up loving running, but it was nice to have done and kind of fun to get sweaty.</p>
<p>Erin on the other hand, decided to run a 10k race, so we headed to Vancouver for the weekend and she crushed it, placing as the third fastest woman in <em>the entire city.</em> My job was to be there and cheer, which I did with great relish and talent.</p>
<p>All this time, I had secretly been preparing a secret: engagement! But it turns out it’s hard to charter a boat in February in Canada without the weather destroying your plans while your partner is in law school with a very busy schedule AND keep the whole thing a secret. It didn’t work, so instead I opted to take her out to a nice place for a picnic. After a nice picnic, we jointly decided it wasn’t a sufficiently good engagement, so I gracefully went back to the drawing board, and bided my time.</p>
<p>Instead, I came up with a much better engagement, but it required doing ARTS AND CRAFTS. You wouldn’t expect it could take multiple professional printing houses several weeks and several attempts to print 120 sheets of paper, but there you have it. You can pay people to do a job, but you can’t pay them to care. The flowers needed to be delayed <em>four times</em> because they were the only people who seemed capable of doing the thing they advertise doing professionally. I ended up doing my ARTS AND CRAFTS at Staples, by hand, in a FURY of anger and speed, because they somehow lost my job and asked for my help in getting everything cut. Still charged me full price though :)</p>
<p>Nevertheless, it was worth it. Erin loved the ARTS AND CRAFTS and we jointly agreed it was a much better engagement than the previous attempt, because this time it caught! I had become a betrothed man!</p>
<p>Our time in Victoria was numbered. Erin was only there for law school, which was about to finish, and I was only there for Erin. During the last few months, I had put together a local functional programming community out of nothing but elbow grease and bullying people to come. It was really paying off, with nearly ten excited members coming regularly. BUT THEN WE LEFT TOWN and I think it imploded. Oh well. Good practice for next time.</p>
<p>On my last day or so, my friend Mike The Crane Operator took me up the famous crane. I don’t have much to say about this other than it was one of the highlights of the year (but not as much of a highlight as getting engaged, he said wisely.) Thanks Mike The Crane Operator!</p>
<p>Then it was time to set sail on adventure. Both literally and figuratively, but only if you count the literally part a few days later. Erin and I flew to New York as a staging ground before our Grand Tour across Europe. But first we had to get to New York, which involved going through Calgary. We were flying at the end of the month, and while Erin got her boarding card no problem, mine continued to say “unable to issue boarding card, please speak to an agent.” You see, I’m cursed when it comes to technology and bureaucracy and <em>especially</em> technology in the service of bureacracy.</p>
<p>The issue was that I was assigned the dreaded SSSS status, which is short for something along the lines of “you’re going to have a really bad time.” Quad-S status means your suitcase gets unpacked at every security checkpoint and everything gets scanned for bombs. You have to take off your shoes and your pants and submit to cavity searches while they go through your email accounts. And worse, this is not just when you go through security; it’s every time you go through security, which they make sure happens along every leg of the trip. Just in case the last guys missed something, I guess.</p>
<p>Thankfully I do all my seditious activities somewhere other than my cavities, so despite the annoyances, we made it to NYNY just fine. We were met there by my old friend Ariel, whom we’d given permission to book us fun things without asking first. He took us to a great comedy show and an… “alternative” hipster music thing, all the time while speeding around town at speeds that shouldn’t have been possible on legs the size of his.</p>
<p>And then it was time for the cruise ship. And Oh My God. We were clearly not the target audience for the thing. It was twelve long days of crossing the Atlantic, without booze or anything fun to do or anyone interesting to meet. But I have <a href="/blog/cruising-facade/">written about this before.</a></p>
<p>The cruise ship dropped us off roughly in London, where we stretched our legs, appreciated how young people could be, spent some quality time with Erin’s parents, got yelled at by an Italian man named Luigi, and went to a great play set in — and physically located in — a court room.</p>
<p>We wanted to take the train to France but it’s wildly expensive so instead we took a Ryanair flight for £6 headed to Tours. We left for the airport with plenty of time, but the bus didn’t come, and then we had to make a MAD AIRPORT DASH. Except I didn’t take out my liquids so my bag went for secondary screening by people who gave no fucks about efficiency. Erin went ahead to try and hold the plane, but she texted me saying “sweet lord it’s a hundred BILLION miles so you should probably run.” My bags finally cleared security and I started running, and she was right because it was like a five minute run all the way through the winding duty-free store.</p>
<p>Of course, we made it to the gate long before boarding started.</p>
<p>We arrived in Tours and thought it would be nice to walk from the airport into town. As soon as we got outside, it was scorching, like 30C+! Realizing we were now in the Mediterranean, I changed into my shorts behind a gas station, and left the jeans and coat behind, ready for this new tropical paradise.</p>
<p>Tours was pretty OK. We got Ethiopian food and Erin found a nice riverside festival with a great-but-not-at-all-tight jazz band. We settled in with some beers and had a magical night, but realized Tours was not for us. So we booked a train ride down to Bordeaux, and bought charcuterie for the trip! The French train system is marvelous: smooth, clean, quiet, timely. Eventually we got into the charcuterie and all of the French people gave us surreptitious glances, as if we were doing something egregious. We were never sure if it was our choice in charcuterie, our brazen technique, or maybe that you’re just not supposed to eat charcuterie on a train. It will forever remain a mystery.</p>
<p>Bordeaux is much more happening than Tours, so we decided to go on a tour of Bordeaux. Unfortunately, most of France is neither the Mediterranean nor is it tropical, and I spent the day regretting having thrown away all of my warm clothing behind a gas station. I was rocking a tank top and sandals and my god was it cold. To warm up after the tour, we ducked into a small cafe and I had an embarrassing experience trying to order food in French. Eventually we got it settled, and set up for some laptop time upstairs. A random stranger in the cafe recognized my Haskell sticker, and then recognized me! Tomas turned out to be super cool, and we set up some time the next day to nerd out without our partners. The next day was also cool, so Tomas and Kayleigh invited me and Erin to a cheese restaurant for dinner, which was ALSO cool so then they invited us to come on a roadtrip to the beach with them. One marvelous and extremely sunburned day later, we returned, searched for after-sun, and retired, patting ourselves on the back for a job well done.</p>
<p>Erin and I didn’t love France, and we didn’t know where to go, so we hopped on the cheapest Ryanair flight we could find, which took us to Agadir, Morocco. We had talked about finding a surf/yoga retreat in Morocco and so this seemed like a good move. We crossed the Moroccan border, and learned the customs agent also didn’t love France. He was very vocal about it. One chatty cab drive later, we found ourselves in the middle of nowhere Tamaraght, Morocco, across the street from a carpet shop and a cafe owned by a seven-year old. The place is a surf town, but for some stupid reason, we didn’t lean in, instead, doing… well, I’m not quite sure.</p>
<p>The coolest thing about Tamaraght is that it’s a dry town: there is no alcohol to be found. I have a complicated relationship with alcohol, and it was really cool to find a place that just didn’t have any. Alcohol is so ubiquitous in Canada that I’d never imagined you could just <em>not.</em> So instead everyone just smoked a lot of hash. Humans gonna be humans I guess.</p>
<p>Erin wanted to go on a tour in the desert, and we figured we’d both have more fun if I didn’t come since I’d be a grumpy Gertrude and Erin would worry about whether or not I was having fun. Avoiding it dodged both problems, so while she and the ENTIRE HOSTEL all went for a week-long trip to the desert, I instead ate Moroccan tacos and headed for the next surf-town over, Taghazout. Taghazout was cool; I stayed at a coworking space and met a bunch of cool people, including Josh who had spent the last evening waterboarding anyone who was interested (and it sounds to have been quite popular!) Finding some other digital nomads who were traveling but not there to party was good for the soul, and helped me realize just how scroogey I was being for the whole trip.</p>
<p>I reunited with my One True Love (Erin) in Marrakesh, where we were planning to meet up, but then randomly stumbled across one another in the medina. What a sight for sore eyes! The trip that morning to the big city had been something; I took a shared taxi to the bus station with some other strangers I met on the street, ended up paying about $1 for it, and then took a six hour bus ride sitting next to a woman who spent the entire trip sending a <em>lot</em> of voice messages. I was annoyed about it until I remembered that 30% of women in Morocco are illiterate, which helped me empathize. This woman just wanted to talk to her friends during the long bus ride.</p>
<p>Erin had picked up some stomach bug while out in the desert, and so I did a lot of Marrakesh on my own, involving getting abducted by a Swiss woman who tricked me into thinking she spoke English, and then used the <em>driving</em> directions for us to <em>walk</em> around the Medina. I was hoping for a quick beer downstairs, and instead got taken around ugly parts of the city for an hour before I saw an exit to escape. Yeesh. Erin and I then escaped the medina and went for McDonalds, which was exactly what we needed. Moroccan food just isn’t “all that.”</p>
<p>We were killing time until I had to be in Zurich for a Haskell conference, and that time was now upon us. So we Ryanaired our way up to Geneva, and had a magical afternoon lying in the grass, exploring green spaces, and listening to an amazing piano player practicing in the park. I didn’t know CERN was in Geneva, and so I didn’t go, and it’s one of my biggest regrets of the year. Alas. Also there was a STRANGE MAN who was staying in our hostel room. He kept coming into the room, and then turning right back around. Odd. Peculiar. Who is this mystery man?</p>
<p>Geneva gave way to Zurich, which enamored us both. There’s such a stark contrast between Zurich and Marrakesh. In Switzerland, there are huge, free, publicly-available drinking fountains everywhere. The cities are gorgeous and green. The people are quiet and respectful. Contrast this to dusty Morocco where you will die if you are not constantly drinking bottled water while you’re being harassed by merchants (and lusty men, if you’re Erin!)</p>
<p>We had planned to stay in a hostel in Zurich, but something went wrong last minute, and I decided that my company could afford putting us up in a nice hotel for the week. Exceptionally good idea on my part. I spent the weekend at the hackathon, and brought Erin out a few times to meet some of the nerds. She was pleasantly — and thankfully — impressed after me building up the general character of your average Haskell programmer for years.</p>
<p>While in Zurich, I had the pleasure of reacquainting with Farhad Mehta, one of the organizers of Zurihac, and a genuinely delightful human. He suggested we spend a week doing a study-group, and I jumped on the opportunity. We spent a week doing Agda and Isabelle, punctuated by my living arrangement’s shower grading me on my water usage, many noodle breaks, and a fondue vending machine. Only in Switzerland!</p>
<p>Zurich lead to Vienna where I caught up with my old friend Anna and bought Erin some cursed new headphones (though I didn’t know they were cursed when I bought them.) Aching for some culture, I headed off to a local jazz bar where I was treated to an <em>extremely intimate</em> concert of some bass player doing a set for his birthday with musicians in his life. It was a nice idea but everyone else there was in the show, and you can really only listen to so much jazz lead by the upright bass.</p>
<p>After a brief stint, I ended up in Budapest, intending to reunite with Erin, but she was trapped in Barcelona. So instead I went out on a pubcrawl with my roommate, and somehow got adopted by 15 Indians, none of whom knew one another. The pubcrawl was a bust, but my new friends were delightful.</p>
<p>Erin arrived at 5 in the morning after a CHAOTIC AIRPORT EXPERIENCE, so we took it easy for a few days. The week culminated in Budapest’s Turkish Baths, which are like a western swimming pool except literally a million times better. You can pick your desired temperature water in two-degree increments, and when you’re tired of being in the water, you can pick a sauna by how hot and how salty you want it to be. Truly a marvel of the modern world, even though nerds will tell me this stuff is ancient.</p>
<p>We took a delightful train ride down to Croatia, which I’m sure is a lovely place, but for me the charm was primarily the old man who complemented my new Birkenstocks (“not just a shoe for old men!” they told me) and the discovery that white noise helps adults sleep too. However, Split paled in comparison to Dubrovnik, where we accidentally found ourselves on a nude beach with THE LADS, met an Olympic swimmer, and almost died in the sun due to missing our bus home.</p>
<p>This whole time we had been meandering our way down to Greece, where Erin and I had signed up for a week-long sailing lesson on the Aegean sea. We finally got to Athens, where the airport experience was amazing, and where our hostel room burst open five minutes after we arrived at 3am when two keen and amorous youths made their way in, oblivious to our presence. After the whole thing was sorted, we did all the stuff you’re supposed to do in Athens like looking at old stuff and looking at other old stuff.</p>
<p>You’d think after the whole Greek economic thing that there would be lots of enterprising souls working the markets, but we found a disappointing lack of pandering Greek mythological merchandise. What a missed opportunity. We did, however, find a great t-shirt of Zeus as a hipster.</p>
<p>Other highlights of Greece: going ring shopping, getting stealth-drawn by my roommate, and visiting a “political party” where we hung from a ring on the ceiling and took turns showing off our best moves on the stripper pole.</p>
<p>Finally it was time to go SAILING. We took a (rather stressful, due to me getting us lost) ferry to Aegina where we met our crew for the week. Skipper John, salty Sven, and Douwe. The crew had evidently been assembled for Erin and my pleasure; Sven and Douwe were just there to get some paperwork stamped: they already knew perfectly well how to sail. We spent the week sailing around at INSANE SPEEDS which felt very fast indeed but instead were along the lines of 15km/h. On one particularly memorable night, we were night sailing without any wind. It was a gorgeous, starry evening, with nothing to do and nowhere to be. Thankfully our evening was rescued by Sven, who decided what the evening <em>really</em> needed was a loud, driving Eurotrace soundtrack.</p>
<p>While Douwe and Sven were nothing to write home about, meeting Skipper John was perhaps the highlight of my year. Skipper John has spent his entire life sailing around, a good chunk of it on the Mediterranean, and he has the mental health that comes hand-in-hand with a life lived simply but well. I hadn’t realized how atrocious my mental health had gotten during the pandemic. When I compared my mental well-being to other people, it felt like I was doing OK, but I wasn’t. I’m not much of a fatalist, but it seemed like the universe was conspiring to send me to spend a week with Skipper John. His unbridled enthusiasm for life was a stark contrast to my own, and I’m happy to say my life has changed for the better since having met him. Thank you, Skipper John, wherever you might be. Happy days; happy days.</p>
<p>Sailing was the end of our trip in Europe, and happy we’d left and even more happy to be leaving, Erin and I boarded a flight back to Canada. We found a temporary place to live while we house hunted. The place was a gorgeous, 28th floor apartment right on the north end of Vancouver’s downtown. The only problem was that it seemed like a huge scam. We were supposed to rent the place from Sasha, except that she didn’t own the place, her parents did, and she was renting it out while they were on vacation. It seemed too good to be true, which, as we learned, was what they thought about us too! “We just want to make sure you’re not the sort of people who are going to film a porno in our house” they commented when we met in person. Thankfully, both sides were delighted to learn the other consisted of good people, and thus we landed a swanky pad that would make any place we could actually afford under a lease pale in comparison.</p>
<p>There was a whirlwind trip through Toronto where we almost missed our flight, but ran through the airport and instead made it safely, crashing on Andrew’s couch when we arrived in Vancouver. Thanks mate!</p>
<p>Figuring we hadn’t had enough adventure as of late, Erin and I got tickets for the Vancouver Folk Fest which was pretty cool in that I got to see the New Pornographers. But really, I was exhausted and jet-lagged and just wanted to not go anywhere or do anything for a few weeks. So instead we took the bus up to Penticton to see our parents!!</p>
<p>Come late September, I realized my ongoing contract for 18 project days had begun the previous October, and it seemed embarrassing to let it linger for a whole year. So I got my act together and behaved like a proper business man, and finished the contract. Figuring I had completely blown my chance at getting hired back, I sent a professional-sounding “thank you” letter to the company. Oddly enough, they liked me enough to send back a “would you consider re-signing?” I checked to make sure they hadn’t said <em>resigning,</em> but no, everything was good!</p>
<p>Being back in Vancouver was really, <em>really</em> good. Erin and I found a place no problem, and carried a yellow couch across the city to furnish it. I had been hankering for a place to settle into since before the UNCERTAIN TIMES, and finally it felt like I was in a place I could do that. So instead I took the bus up to Penticton to see my dad <em>again!!</em></p>
<p>Which was really nice, actually. We got some quality, dedicated father/son bonding time in for the first time in over a decade, when we’d driven across Canada together. As I’ve gotten older and wiser, I’ve realized that my parents are too, and therefore it’s both important and relatively-urgent to prioritize seeing them. This wouldn’t be my last time seeing them this year!</p>
<p>Back in Vancouver, I was called up by EF, the startup accelerator firm which had caused me no small amount of stress the year before. But this time they wanted me to come to a nice dinner on their dime, and meet other cool people. I went, with trepidation, but had a surprisingly nice time. In fact, I met one <em>particularly</em> cool people, Lazar, with whom I’ve stayed in touch and who has grown to be a good friend.</p>
<p>The EF dinner reminded me that I wanted to go try to be a startup man. But EF told me they were full up, and that I should apply next round instead. One morning however, I found myself with spare energy, so I decided to apply. An hour later I was on the phone with EF, who were all of a sudden VERY KEEN to get me to move to Toronto in three days’ time. Which, if you remember from last year, seems to be their M.O. Erin and I had discussed the possibility, and she was OK with it if I was. Seeing as I was just getting settled into Vancouver, moving to Toronto seemed like it was right in the cards. EF forced me to buy a flight to YYZ before they’d send me the contract (WTF?). Thankfully my lawyer didn’t like the contract, and EF was unwilling to budge, so I didn’t end up moving to Toronto. Instead, EF went bankrupt a month later.</p>
<p>My neighborhood in Vancouver has a parkour gym just down the street. As a boy, I used to while away the time in Terrace BC by getting drunk and climbing buildings. Parkour seemed like the adult version of that very hobby, so I signed up for a trial month. It’s been life altering. I’ve never had fun doing exercise before, but parkour has changed that dramatically. All of a sudden I found myself going three, four times a week, just because it was fun to jump on/over things and to hang out with other people who also wanted to jump on/over things.</p>
<p>At some point during these months, I thought that I might have ADHD. I asked a doctor friend who said he “knew a sketchy guy” I could talk to about that. The sketchy guy called me in THAT EVENING for an EMERGENCY CONSULTATION, where I was asked all sorts of leading questions. When it was all over, in a left-field move that nobody could have predicted, the sketchy guy diagnosed me as having ADHD! It’s a bit of a sham because I was hoping to actually talk to someone about it, but instead managed to just get a prescription. That being said, the meds do seem to help, so maybe the sketchy guy isn’t as bad as he sounds. I have much more to say on this topic, but will put it into blog format some other time.</p>
<p>The year steadily marched on, unlike Erin, who steadily RAN. A marathon, that is. In the cold rain and snow, on the water, with a bone-chilling wind under <em>dry</em> circumstances, which it most certainly was not. I was the designated helper! My job was to drive around and make sure she had everything she needed. It was all going well until my phone died and I got lost and spent an hour driving around and very nearly missed her crossing the finish line. Thankfully I didn’t, and we are still happily engaged.</p>
<p>In November, I decided to do NaNoWriMo again, this time writing a math textbook. I succeeded with flying colors, and now have a (very) rough manuscript for another book. I plan to get it cleaned up in the next few months, so keep an attentive ear out for Sandy Maguire’s next flying-off-the-shelf best seller.</p>
<p>And that was pretty much the whole year, except for the Christmas fiasco where our flights got cancelled due to SNOW, and then our moms got sad, so we made lots of very-last-minute plans to not merely double-down on Christmas, but to <em>triple-down!</em> Like I said, I’m learning that family is much more important than I realized, and so I’m trying to do my best on that front. The drive up was terrifyingly low in visibility, and the resulting visit with an ominous prophecy, but otherwise, a spectacular cap off to the year.</p>
<p>One last thing! I bought a smart phone this year, and decided I wanted to take a daily selfie. That didn’t end up happening, but I did manage to take 225 photos. Now you can watch me age much faster than I actually age!</p>
<iframe width="485" height="863" src="https://www.youtube.com/embed/Y6rc4i4ZD_I" title="Sandy Takes a Selfie for a Year" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>
</iframe>
<p>Thanks for a lovely year, 2022. See you all next time around.</p>
        ]]>
      </content>
    </entry>
    <entry>
      <title>Exploring the Small Web</title>
      <id>blog/exploring-the-small-web/index.html</id>
      <link href='blog/exploring-the-small-web/index.html'/>
      <published>2022-08-31T19:24:00Z</published>
      <updated>2022-08-31T19:24:00Z</updated>

      <content type="html">
        <![CDATA[
        <p>A few weeks ago I wrote <a href="https://reasonablypolymorphic.com/blog/monotonous-web/">a little ditty</a> about how awful the internet has gotten, compared with the web of my youth. It garnered much more attention than my usual musings, and, as a result, <em>lots</em> of people chimed in. They shared with me great websites, sympathies, and <em>tons of unsolicted advice,</em> some of which actually happened to be good!</p>
<p>The good news: I was right — there still is tons of cool stuff on the web; it’s just hard to track down if you aren’t already in the know. This post collects all the stuff I’ve learned recently about finding cool stuff on the web in 2022.</p>
<h2 id="the-small-web">The Small Web</h2>
<p>Turns out there’s a name for this thing I’ve been seeking, it’s called the <a href="https://ar.al/2020/08/07/what-is-the-small-web/">small web</a>. The small web is a bunch of decentralized individuals who want to use the internet as a medium of self expression, where they can do weird and wonderful things. Like the <a href="https://solar.lowtechmagazine.com/2018/09/how-to-build-a-lowtech-website">low tech magazine</a>, whose website runs on solar panels and therefore might be offline. Or the guy who <a href="https://digdeeper.club/articles/browsers.xhtml">reviews the privacy policies of web browsers</a>. Or this dude who puts way <a href="https://coffeeadastra.com/2019/08/04/an-in-depth-analysis-of-coffee-filters-2/">more effort into making coffee</a> than has ever been justified. Or, how about a website dedicated to <a href="https://www.glorioustrainwrecks.com/">really awful video games?</a> Or, my personal favorite, the implementation of <a href="https://coral.shoes/nojs/">cooker clicker using no javascript</a>.</p>
<p>Amazing stuff, truly.</p>
<p>So, where does the small web hang out? A huge chunk of it is on <a href="https://neocities.org/browse">neocities</a> (<a href="https://en.wikipedia.org/wiki/Yahoo!_GeoCities">geocities</a> for the modern age.) Haphazardly clicking around on neocities, however, shows that <em>not everything on the small web is a gem!</em> There are a ton of angsty teens’ homepages. But that’s OK. We used to call being online <em>surfing the net</em> because you’d sometimes catch a cool wave, but most of the time be waiting around in the deep hoping for something interesting to come along. It was a lot more experimental, both on the side of content creators, and for consumers. On the consumer side, you spent a lot of time hitting the back button.</p>
<p>Per capita, there are far fewer teens hanging out on the <a href="https://tildeverse.org/members/">tildeverse</a>, which is allegedly a loose collection of old-school *nix hackers and academics. The stuff I found there is a little more polished, but <em>significantly less weird.</em> It’s the sort of place you find arcane technical blogs and professors’ websites which haven’t been updated since the 90s — that is, if you can find anything at all. Tilde sites are often a byproduct of being a user on a shared computing system, many of whom are members for reasons other than to host a website. I personally haven’t found much on the tildeverse, but several of my friends swear by it.</p>
<p>The reliably best stuff I’ve found, however, has all come from webrings, which are a bygone piece of web history/technology. A webring is a what it sounds like: a ring of websites, each with a “next website” link. Webrings are a great way of rapidly getting to bizarre parts of the internet; keep hitting “next” until something tickles your fancy. <a href="https://george.gh0.pw/">GEORGE</a> is a particularly weird one, and something that’s very clearly <em>not</em> an artifact of the boring-ass <a href="https://reasonablypolymorphic.com/blog/monotonous-web/">monotonous web.</a> I haven’t managed to find a webring-webring — that is, a webring whose constituent members are themselves webrings — which is very clearly a huge opportunity in the market. Someone get on it! However, I did find a <a href="https://indieweb.org/webring#Examples">list of webrings</a> which isn’t nearly as satisfying a concept.</p>
<h2 id="alternative-search-engines">Alternative Search Engines</h2>
<p>You probably already know about Google and Bing. And maybe even Yandex. Lots of people yelled at me in my last blog post for not knowing about <a href="https://searx.github.io/searx/">searx</a>, which isn’t particularly relevant to my gripes, but in the words of a <a href="https://vancouverguardian.com/vancouver-comedy-jon-endo/">comedian I just met</a>: “it is what it is.”</p>
<p>That stuff’s all tired and blase. Have you heard of <a href="https://www.marginalia.nu/">marginalia</a>, which lets you control which categories of websites you’re looking for. Or how about <a href="https://gigablast.com/">gigablast</a>, which combats dead links by finding archived versions of them? Or how about <a href="https://www.mojeek.com/">mojeek</a>, which <a href="https://seirdy.one/posts/2021/03/10/search-engines-with-own-indexes/">seirdy</a> figures is the best alternative search engine out there?</p>
<p>Turns out there’s a ton of innovation in this space, along which lines I have a personal announcement to make some time in the near future. But that’s getting ahead of myself.</p>
<h2 id="combating-the-monotonous-web">Combating the Monotonous Web</h2>
<p>After a month of exploring weird stuff on the internet, I’ve realized that the number one way that webmasters (to use a throwback term) can help combat the monotonous web is to just link to sites you think are cool.</p>
<p>You’ll notice there are more links in this post than usual. That’s not by accident.</p>
<p>Search engines discover sites by automating surfing — that is, they just click every link on every page, and see what they find in the process. On a more human level, if you like my stuff, you’re pretty likely to like the stuff I like. And so, to be part of the change, here are some websites I find unusually interesting:</p>
<ul>
<li><a href="http://www.paulgraham.com/articles.html">Paul Graham’s essays</a> — fascinating musings on doing important work with your life.</li>
<li><a href="https://mitxela.com">mitxela</a> who makes weird and delightful DIY gadgets</li>
<li><a href="http://journal.stuffwithstuff.com/archive/">Bob Nystrom</a> — high quality blog posts on game design and the mechanics of writing books</li>
<li><a href="https://blog.plover.com/">Mark Jason Dominus</a> for whom there are no words. A true 21st century polymath, whose blog spans from etymology to abstract math.</li>
<li><a href="https://www.lesswrong.com/tag/original-sequences">LessWrong</a> which taught me most things I know about the art of thinking.</li>
<li><a href="https://slatestarcodex.com/about/">Slate Star Codex</a> which taught me how to write, and whose clarity of thought I aspire towards.</li>
<li><a href="https://dominiccummings.com/">Dominic Cummings</a> who gives an unprecedented look behind the usually closed-doors of politics.</li>
</ul>
        ]]>
      </content>
    </entry>
    <entry>
      <title>Sandy Maguire Escapes the Room: Lost in Space</title>
      <id>blog/escape-room-lost-in-space/index.html</id>
      <link href='blog/escape-room-lost-in-space/index.html'/>
      <published>2022-08-13T14:18:00Z</published>
      <updated>2022-08-13T14:18:00Z</updated>

      <content type="html">
        <![CDATA[
        <p>For my birthday, Erin and I headed to a local (literally across the street) escape-room in Vancouver called Exit Gastown, where we played <a href="https://e-exit.ca/escape/games/lost-in-space-ecape-room/">Lost in Space</a> with just the two of us.</p>
<p>Online the difficulty is three stars, but I swear in person it was labeled as four. It’s always hard to get a sense of the actual difficulty between companies, so we went in expecting to escape. We didn’t. By the end of our 45 minutes, we were on the last clue — figure out a lot of math for teleporter coordinates — but nowhere near solving it. Alas.</p>
<p>Erin and I are very new to the world of escape rooms. This was her second, and my fifth, and neither of us came away very impressed with the puzzles. The concept is pretty great, but the execution left a lot to be desired. Let me explain.</p>
<p>LOST IN SPACE. You’re on a space ship that has crash-landed. The lights are off, so you need to get the power back on, and then find the teleporter room and teleport home. Or something. The crash-landing stuff was (very) briefly mentioned in the beginning dialog, and the only other clue to it is a window painted onto the wall that looks cracked. OK fine, except that this is a critical clue in teleporting away; you need not only decipher the coordinate system, but you also need to remember where you are in the solar system. And if you don’t remember from the initial briefing, well, good luck!</p>
<p>A few other dings. I liked the idea that the lights are off, but you’re given only one flashlight, which means your group can’t parallelize any solving. You start the game with an “engineering” binder explaining all the subsystems, and roughly how to go about accomplishing them. One of the things to do is to get the ship’s power system on emergency batteries, and then eventually running again, but accomplishing neither of them turns the lights back on! They’re just off, for 45 minutes.</p>
<p>The better design here is that the lights come on to 10-20% brightness after you get onto emergency power, and then turn on in full when the generators are running again. It’s an interesting gimmick that you need to get the power back on, but it needs to be rewarded, rather than being an arbitrary key to ungate progress.</p>
<p>Half way through, you do get a second flashlight. But the batteries were (unintentionally) half-dead and died before the end of the game. I had to leave the room to get new ones, which ate a few minutes out of our failed escape.</p>
<p>Most egregious, however, was the binder’s engineering list of “spare parts.” There are three spare parts listed: a set of jumper cables, a spare battery, and a wiring diagram. We found the jumper cables first, and five minutes later found the spare battery. So we were primed to think about the spare parts as literal objects that could be picked up. But then the wiring diagram doesn’t fit the pattern. It’s drawn onto the wall behind the puzzle, and is presented as the wiring itself.</p>
<p>The puzzle is that you need to shine a light into four holes in the right order. We fucked around with it for a while, following the obvious route implied by the wiring on the wall. At each step, the thing beeps at you. But if you hold your light on a little too long (we’re talking half a second or so), it beeps again, and that is the system resetting itself. Our progress was hampered by this for probably ten minutes before we asked for a hint — we could neither find the wiring diagram, nor could we brute force the puzzle. But there was no wiring diagram, and our understanding of the thing was entirely correct, it’s just that the mechanism was incorrectly resetting our progress.</p>
<p>Very annoying.</p>
<p>I’ll also ding the room for having several unintentional typos in the manual; usually things like these are secret clues, or something to decipher. Nope, here they’re just someone not using spellcheck, which doesn’t inspire a great deal of confidence that the game designer is a person of care.</p>
<p>There were some things I liked about this room though; the system to get the power back on was interesting. You need to find some jumper cables, put them into the right place, and then identify that the battery is broken, and find a better one that won’t short out the circuit. I like puzzles that require disparate pieces to be solved, rather than being one-key-one-lock deals.</p>
<p>Despite my complaints, I liked that the lights were off at the beginning. It was thematically interesting, but overstayed its welcome.</p>
<p>Overall though, I wasn’t very impressed with Lost in Space. Progress was entirely linear, and at no point did were we required to use information we’d learned somewhere else. Puzzles like these are frustrating: if you get stuck on something, you’re just stuck with no recourse. Oh well. This one is a nice case study in how to not structure an escape room.</p>
<p>Two out of five stars.</p>
        ]]>
      </content>
    </entry>
    <entry>
      <title>The Cruise Facade</title>
      <id>blog/cruising-facade/index.html</id>
      <link href='blog/cruising-facade/index.html'/>
      <published>2022-05-08T05:21:00Z</published>
      <updated>2022-05-08T05:21:00Z</updated>

      <content type="html">
        <![CDATA[
        <p>Warning: snooty and written at 5AM. Am I becoming my mother?</p>
<p>I’ve been out of contact lately; consider that a symptom of being in the middle of the Atlantic ocean on a Cruise. The idea was merely that it’d be cool to cross an ocean like our forefathers did, and a Cruise just happened to be the easiest way to make that happen. My mom, when hearing of this plan, said (rather disappointedly) “oh… I didn’t think you were Cruise People.”</p>
<p>And my god, are we not.</p>
<p>There are two good things I’ll say about the experience. It’s relaxing to spend all day in the pool and not need to worry about food. And, we have <em>clearly</em> managed to get outside of our filter bubble.</p>
<p>Cruising People are a peculiar bunch. Primarily American. BIG Americans. The sailing has 2500 passengers, of whom 40 are under 18, and easily 50% are over 65. I’d say there are maybe 50 people in our extremely permissive 20-40 age cohort, and a good chunk of those are families.</p>
<p>The on-board entertainment knows its audience, and it is not us.</p>
<p>For example, early on, we went to a stand-up comic’s set. The bits ranged from “you know how when you call the airline to make a booking, you need to navigate a lot of phone menus? AND THEN WHEN YOU GET THROUGH, IT’S NOT EVEN TO AN AMERICAN!!!!” all the way to “I sure am glad I’m not old!!”<a href="#fn1" class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a></p>
<p>There are shows and activities every hour. Bachata classes, karaoke night, lots of <em>easy</em> trivia<a href="#fn2" class="footnote-ref" id="fnref2" role="doc-noteref"><sup>2</sup></a>. The dance classes are nearly empty, the karaoke nights are full but non-participatory, and Frank Sinatra is chosen more than every other artist combined.</p>
<p>But Beatles Night is always packed, and is by far the liveliest thing on the ship. Those boomers be shimmying!</p>
<p>There are “Enrichment Seminars” on topics like <em>romantic comedies of the ’90s,</em> and <em>things you didn’t know about John Wayne.</em> That is, anything someone on the boat could plausibly talk about for 20 minutes. There was a (technically amazing) cabaret consisting of lots of flashy dance moves, without any coherent story or theme. There was an (also technically amazing) “theatre production” consisting of lots of flashy dance moves, without any coherent story or theme, but set to pop music that you’ve familiar with.</p>
<p>I have lots to say here. The ship clearly knows its audience, so we can work backwards from the shows to figure out who that audience must be. The entire cruise experience is an excellent example of [premium medicre]<a href="#fn3" class="footnote-ref" id="fnref3" role="doc-noteref"><sup>3</sup></a> — that is, “exclusive” without actually excluding anyone. Night 2 was a “black-tie formal night”, and they let my jeans-and-a-button-down-in-sneakers backpacking ass right in without a second glance. But it <em>feels</em> exclusive: it must be, because they keep saying so!</p>
<p>Over the first few days, we kept meeting cruisers who seemed genuinely shocked to hear it’s our first cruise.<a href="#fn4" class="footnote-ref" id="fnref4" role="doc-noteref"><sup>4</sup></a> “Oh you’ll <em>just love it!</em>” they would keep telling us. And clearly they did indeed love it; cruisers keep telling us about their loyal program; we’ve met many people who have spent more than 365 days of their life cruising. And we met one guy who has spent over 720.</p>
<p>So, who is this cruise for? The entire experience is a weird facade; lots of stuff with no actual substance behind. It’s an experience that feels classy, without actually being classy. Cruisers can point to the cabaret and theatre and enrichment lectures and feel like they’re living a refined life. They know that these are the sorts of activities that high-status people enjoy, and are delighted to find that they too like these high-status activities!</p>
<p>I have never seen a cabaret before, and thus didn’t know what to expect. I quite liked what I got, because it was well-choreographed and technically impressive (there were six robotic arms that were in motion the whole time, and never once bashed into one another!) But Erin was unimpressed; “that wasn’t a cabaret” she said.</p>
<p>Here’s what I think is happening. Take 250 fit, sexy, twenty-something dancers and give them a week to choreograph and rehearse a bunch of dances to pop music. Take the resulting three minute pieces, and stitch them together with the barest amount of thread to pass it off as a work of high-culture. Set it in “another world” to lampshade any issues in continuity or theming, and voila, you have a cabaret, or a musical, or a hip-hop dance class, or whatever you want!</p>
<p>What you’ve come up with is something easily palatable. It’s got flashy dance moves and songs that you’ve heard before. If you call it a cabaret, it must be. And someone (like me) who might not be familiar with the intricacies of cabaret can come away being impressed, both with the show, and with the fact that I am the sort of person who likes cabarets. I too, must be high-class.</p>
<p>The whole ship feels like that. Which is weird, because all the talent is genuinely amazing. The musicians we’ve met are all very accomplished session players. The ones we haven’t met are also fantastic. We met one of the costumers, who made a dress for Lady Gaga. We’ve yet to meet any dancers, but my guess is that they’re equally accomplished. But there’s a creative flare missing, and I’d wager that’s intentional.</p>
<p>And then there are the art collecting lectures. The first three days had enrichment lectures on how to <em>appreciate,</em> and, subsequently, <em>value</em> art. Funnily enough, the next day there was an art auction. How about that? I overheard a woman saying she spent $5000 on art: “I’ve never really paid much attention to art before, I guess because I wasn’t really grown up enough. But now I’m ready to start collecting.” Did I mention there isn’t any internet on the ship? Well, there is, if you’re willing to pay a years’ worth of internet bills for a week. I haven’t worked out whether or not most people footed that bill, but I suspect they aren’t using it to get a second opinion before buying <em>priceless</em> art prints.</p>
<p>The average person on this cruise clearly considers themselves to be on an adventure. They are traveling! And seeing the world! We’ve been told we’re very brave for making a trans-Atlantic cruise our first one; it has almost no stop-overs, did you know!</p>
<p>Yeah, OK.</p>
<p>The staff, however, are much more clearly our people. Millennials, working weird-ass jobs in order to sail around the world and send money back home. People who are interesting and adventurous enough to pack up their lives for a few months at a time. From them we’ve learned all sorts of juicy gossip; that the entirety of the 3rd floor is off-access not because of ongoing maintenance like they say, but because it’s the covid quarantine floor. And <em>everyone</em> is sick. Or, how five old people die every cruise, and how the ship has a special morgue freezer to keep them in. The staff recognize how ridiculous the entire experience is, and it’s a refreshing reminder that we’re not crazy.</p>
<section class="footnotes" role="doc-endnotes">
<hr />
<ol>
<li id="fn1" role="doc-endnote"><p>This from a comic who was easily in his 70s, and not looking the better for it.<a href="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn2" role="doc-endnote"><p>eg. From which film is the line “may the force be with you?”<a href="#fnref2" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn3" role="doc-endnote"><p>https://www.ribbonfarm.com/2017/08/17/the-premium-mediocre-life-of-maya-millennial/<a href="#fnref3" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn4" role="doc-endnote"><p>And our last, but we are savvy enough to hold our tongues about that part.<a href="#fnref4" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
</section>
        ]]>
      </content>
    </entry>
    <entry>
      <title>Be a Lighthouse</title>
      <id>blog/be-a-lighthouse/index.html</id>
      <link href='blog/be-a-lighthouse/index.html'/>
      <published>2022-04-13T23:25:00Z</published>
      <updated>2022-04-13T23:25:00Z</updated>

      <content type="html">
        <![CDATA[
        <p>A few times a year I’m asked by people what’s the value in maintaining a blog. To their eyes, a blog is a liability. Not only is it extracurricular work, it also, (they say) limits personal growth, since the old things you’ve said stick around. Furthermore, in today’s age of hyper-cancellation, keeping old ideas around is downright dangerous. Who knows what ideas will be out of vogue next week?</p>
<p>None of these problems bother me. I like writing — attempting to serialize ideas into prose acts as an excellent forcing-function. Writing it out makes clear the bits which are weak, and ideas get fleshed out as I try to glue together the disparate pieces. Often, a second essay will be born from the digressions that happen while writing the first.</p>
<p>Furthermore, I’m OK saying I was wrong and stupid in the past. Its a necessary part of growth, and of intellectual honesty — which itself contributes to getting smarter. After all, learning is really hard if you are lying to yourself about what you already know.</p>
<p>As for being cancelled, well, fuck it. If it happens, it happens. But I’m a small target with no audience to speak of. I’m about as uncancellable as can be, and I guess I’ll worry about it if it ever becomes an issue.</p>
<p>So those are some reasons why to not not have a blog. But, as we know, the law of the excluded middle is bupkis. So, why have a blog?</p>
<p>Blogging acts as a lighthouse.</p>
<p>Lighthouses are famously easy things to spot. They broadcast their presence far and wide. It’s their only function. Being a lighthouse makes you easier to find, which is to say, it helps advertise your existence to the sort of people you’d like to find.</p>
<p>Once a month or so I get a cold email from someone who has found my blog and liked it so much they wanted to get in touch. Almost by definition, these are my people. They are people from all around the world, who are thinking about and trying to solve the same problems I am. And that’s a magical gift that I wouldn’t be able to find any other way.</p>
<p>Being a lighthouse is the most important piece of advice I have that isn’t already in the mainstream spotlight. Importantly, it transcends any particular tactics. You don’t need to blog to be a lighthouse. Putting stickers of things you like on your laptop makes you a lighthouse at the coffee shop. Starting (and advertising) a local club for one of your interests makes you a lighthouse.</p>
<p>Niche things, by definition, are hard to find community for. So do your part by organizing enough neg-entropy around you that members of your desired tribe will recognize you when they see you.</p>
<p>Be a lighthouse! You never know what marvelous people might find you.</p>
        ]]>
      </content>
    </entry>
    <entry>
      <title>Pillars of the Community</title>
      <id>blog/pillars-of-the-community/index.html</id>
      <link href='blog/pillars-of-the-community/index.html'/>
      <published>2022-03-31T05:43:00Z</published>
      <updated>2022-03-31T05:43:00Z</updated>

      <content type="html">
        <![CDATA[
        <p>I managed to wake myself up at 4 in the morning with an insight, and figured I should write it down. As you might imagine, I haven’t been sleeping well lately, so I don’t know whom to credit with this idea — apologies. I’ve been wandering around in a bit of an exhausted zombie funk the last few weeks, and apparently not forming as many short-term memories as one would like.</p>
<p>But, anyway, someone and I were talking about community, and how to find it. Erin and I often say that community is the people you don’t necessarily like, but whom you have a reason to see over and over again. For better or worse, you’re stuck with them.</p>
<p>This seems true, but it doesn’t feel like the whole story. For example, when you think of the term “pillar of the community,” who comes to mind? For me it’s people like small business owners, religious leaders, club organizers, mail delivery people, voracious volunteers, the bartender at the local pub, and the like.</p>
<p>None of these people are best differentiated by being “not necessarily liked,” though they do have a reason to be seen over and over again. But I also see Sideways Man<a href="#fn1" class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a> on the street maybe once a week, and I wouldn’t describe him as a pillar of the community.</p>
<p>My interlocutor had a different idea of what it meant to be part of a community.</p>
<blockquote>
<p>A community is a group of people who can depend on one another.</p>
</blockquote>
<p>This lens connects the dots. The mail person does a great service for the immediate area, as does the small-pub bartender. But, not only this. We can also expect the mail person to come with great regularity; neither rain nor sleet, you know. If you’re feeling down and need a dispassionate ear, this is a service offered by the bartender. And, importantly, the bar is always open.</p>
<p>What about small business owners? These are people who’ve strongly invested in the area. Their personal livelihood is attached not only to the neighborhood, but, importantly, to the ongoing success of the neighborhood. Business owners are necessarily among the most-invested in their community, since putting food on the table is linked to making and maintaining relationships. When you are looking to buy something expensive, it’s probably worth buying from someone you can keep an ongoing relationship with; someone you can depend on to still be around in a year if something goes sour.</p>
<p>Religion likewise. I suspect the bit about “religious leader” is a cached meme in the 21st century, but places of worship definitely do their part for the community. Name a choir or support-group that doesn’t depend on a church for a place to meet. Or, Erin points out, consider <a href="https://en.wikipedia.org/wiki/Langar_(Sikhism)">langar</a>, the Sikh practice of a “community kitchen” where anyone can show up for a meal.</p>
<p>On a personal level, this checks out with my experience. I felt significantly more involved in my community when I decided to <a href="/blog/neighborhoods">meet everyone in the neighborhood</a>. All of a sudden, I was going out of my way to talk to people I’d see on a regular basis. They didn’t depend on me for any service, but they could depend on me to say hi.</p>
<p>Likewise in Victoria, where I’ve been trying to put together a functional programming meetup. The local tech scene hasn’t been scratching my itches, so I figured I’d just take matters into my own hands. So, every two weeks, I’ve been hanging out at the same place at the same time. People can depend on me being there, and thus can swing by on the spur of the moment. We’re getting lots of repeat attendees, which suggests the meetup group is serving some need.</p>
<p>Where does this leave us? Is this an idea we can exploit to get closer to the good life? What courses of action does it suggest?</p>
<p>The most obvious is that if you’re feeling like you’re lacking community, put yourself in a position of being required. An easy starting point is to just regularly show up at a local meetup. Half the battle is showing up, after all. Offer to help organize things.</p>
<p>At an intermediate level, get involved with a group of people who create things, and then help them create that thing. It could be a choral performance, or an art exhibit or whatever. Something with a deadline. Everyone involved is going to want the thing to be as good as possible, and will thus be depending on you (and you, them) to put in as much as you can afford.</p>
<section class="footnotes" role="doc-endnotes">
<hr />
<ol>
<li id="fn1" role="doc-endnote"><p>You’d understand if you saw him.<a href="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
</section>
        ]]>
      </content>
    </entry>
</feed>

