Build Retreat Pt. 1

First week of Build Retreat. Walking on ice. Backend development.

January 14, 2022

(About 5 minutes)

Build Retreat

This week began the much-awaited "Build Retreat" that I've been planning for a while. After several months of sailing the Chesapeake, dancing in New York, and learning Spanish in Colombia, I began to feel like it was time for me to settle myself in one place more than a few weeks and actually get some work done. To build some things. And what better way to do so than to rent a cabin in the snowy woods of upstate New York with some friends and hunker down together! Free from the distractions and titillations of city-living, our aim has been to create a comfortable and productive space to work on personal projects.
The Desk Setup
It's been five days since we arrived, and so far, I feel like I might never want to leave. The rhythm of life that we've established for ourselves here feels ideal. The "cabin" (really, it's an old house that is just dressed up to feel like a cabin—but it's succeeding in doing so!) is bright, warm, and spacious. We all have our own rooms and plenty of space and opportunity to get away from each other if we feel we need to. Having lived in smaller, much more cramped situations for most of the last few years, I didn't even realize how great it can feel to really have room to spread your wings. On our very first night here, I went to the store (40 minutes away) and bought a huge mousepad for my workstation. I've now seen the luxury of being able to move your mouse all over a table, and I don't think I'm going to ever be able to go back.
The first meal
And I don't think I even need to mention what a luxury it is to have a huge, well-stocked kitchen at our disposal. While none of us are chefs, exactly, we all feel some social pressure to impress our cabin-mates, or at least to feed them well, so our nightly communal dinners have been a real highlight of the experience thus far.

The Pond

Outside, the situation is even better. Although it's been below freezing the entire time we've been here so far, that hasn't stopped me from going on daily exploratory walks and runs around the 100 acres of property that surround the cabin. In the middle of the property, about a fifteen minute hike from our front door, is a massive pond that is completely frozen over. The ice is too rough and bumpy for ice skating, which is all the better because I think my ice skates are still sitting in a storage container in Vienna.
Naturally, my first instinct upon seeing the giant frozen pond was to want to run across it and see what was on the other side. But I'm no fool, and I've read Little Women and seen at least three television adaptations of it, so I know what can happen with icy ponds. My first day with the pond was spent getting to know it a little better, walking around its perimeter, gingerly putting a toe, and then a foot, on its surface and listening for cracking noises. Once I felt assured that it was really frozen and would support my weight, I started to venture out, farther and farther each time.
Nate on the pond
Frozen bodies of water are really such a magical thing. This big, seemingly permanent obstacle on the landscape suddenly becomes accessible, and new vistas open themselves to traversal. And I'm not the only one enjoying enhanced mobility, as seen by the frequent fox and deer tracks I find in the dusting of snow covering the frozen pond. I only wish that I knew this particular pond in the summertime, so that I could appreciate even more its winter form.

Working Hard

As I mentioned, the main purpose of this retreat is to build out our personal projects. Of course, I'm still doing some remote audio editing work and taking Spanish classes online, but my main focus every day is working on one of my games, Subject+Predicate, in the hopes of actually bringing it to a wider audience in the coming year.
Subject+Predicate Development Environment
Although the game is currently online and functional in a "minimum viable product" kind of way, it's basically held together by duct-tape and string on the backend. Its current form doesn't even have a real database, just an sqlite file called database.db sitting in one of my servers. If I'm going to bring it to more people and platforms in the coming months, in the hopes of starting to monetize it, it's clear that some things need to be tightened up in the back end.
So this week has been spent mostly on paying off some tech-debt and re-writing major parts of the network layer that allows the server part of the application to communicate with the client part of the application. For those of you knowledgeable and curious, Subject+Predicate is a multiplayer, socket-based NodeJS application, and I've been monkeying around with Socket.io and MongoDB for much of this week. I'm also implementing a password-less authentication system to handle user accounts. But the thing that's taken up the lion's share of my time (and has caused the majority of my exasperated sighs) this week has been a re-write of the game engine to be more reusable for future projects. I have a few other ideas for multiplayer, slip-based word games, and I'd like to be able to reuse Subject+Predicate's multiplayer game engine for those.
Oh, and TypeScript. I decided to re-write all of Subject+Predicate's codebase in TypeScript as a learning project. The first few days were a real pain, and I thought that I was wasting my time making things more complicated than they needed to be. But once I realized that I was spending more time writing code and less time chasing down obscure errors in the fourth argument of some function in a callback tree, I vowed to never write an application in vanilla Javascript ever again.
I'm going to re-write the front end of the application in Vue.js, but there will be more on that in a future update.

Four Weeks to Go

It's been a great first week, and I'm looking forward to another four (!) in this cabin. To be honest, I'm already starting to fear the moment when this idyllic time ends. When I look back at all the work that I got done in just this week, I get excited to think of what might be to come. We have guests coming for the weekend, and starting next week another friend joining us as part of the regular crew.
My hardest decision right now is whether or not I want to grow my beard out... 🤔