TIL in JavaScript: Timers

Time is an illusion, and time in JavaScript doubly so.

This is the start of — hopefully! — a new series for me, “TIL in front-end web development.” In case you have never been exposed to it before, “TIL” stands for “today I learned.” I believe the term has its origins on Reddit, that wretched hive of scum and and occasional hilarity.

My purpose with this series is to chronicle what I’m learning in my personal front-end development enrichment projects — which I suddenly have a lot more time for, thanks to unemployment. I’ve been doing this work for 10+ years professionally, but I still learn something new every day; every day I’m Googling something I don’t know, or some topic I need a refresher on.

Some of the things I searched for while writing this blog post. I’ll leave it as an exercise to the reader which are related to this blog post, and which aren’t. “Lenticel,” for example: hot new JS framework, or part of a plant?

Without further ado, let’s talk about timers.

“Don’t lie, you’re crying because you have been coding (timers) in JavaScript.” Surprisingly few tears were shed in the making of this blog post! (The meme is CodeHub’s, but the red text is all me).

Brew tea as long as you want, as long as it’s five minutes

My most recent web development enrichment project has been Teamer, a tea timer webapp built using only HTML, CSS, and vanilla JS. Between that, and a code challenge I did for a job interview recently, I felt like I was thrown into the deep end of the “I write algorithms not event handlers” pool.

(“I write algorithms not event handlers” is clearly the next hit single from Panic! At the Disco).

Teamer started very simply, with just a series of buttons corresponding to each tea. When you clicked one, it would start a timer using the brewing time ceiling for that tea.

Like so. In the original iteration, if you clicked on the pale blue circle corresponding to white tea, you immediately started a five minute timer.

In this version, there was no possibility for adjustment. You wanted white tea, you got a five minute timer. That’s it. It wasn’t the most friendly user experience, but it was fine for a first pass.

(There are plenty of tutorials, Codepens, and JSFiddles out there about building a basic timer, but did I look at any of them? I did not. I knew I would learn it better if I had to figure it out myself).

The basic tea timing algorithm

Fundamentally, the timer algorithm is:

  1. Set the timer: set the visual display of the timer as minutes and seconds, and save it in milliseconds somewhere. (Where this value is saved varied between versions. Currently it’s stored as the value of the play/pause button). Logically enough, this is a function called setTimer();
  2. Calculate the starting time in milliseconds. This uses the Date.now() method, which returns the current time in UTC/Unix epoch format, i.e. the number of milliseconds since 12:00am, January 1st, 1970. (Why 1970, I don’t know; I don’t make the rules. Maybe one day they’ll give me Tim Berners-Lee’s private number and I can call him up in the middle of the night and ask him questions like this).
  3. Calculate the deadline — the point at which the timer will stop — by adding the milliseconds from step 1 onto the Unix start time from step 2.
  4. Start ticking: Using the setInterval() method, “tick” every second (1000ms) until the deadline.
  5. On every tick: update the visual display as well as the current milliseconds, and compare the current milliseconds to the deadline .

Once I had that working predictably, I decided it was time to break everything add some user controls.

User controls = extra complication

(Matt saw me writing that title and said, “You’ll soon learn that users are the enemy”).

For the next iteration, I wanted to add a few new buttons: play/pause (that would allow you to pause and restart the timer), stop (that would stop the timer and set it to zero), and buttons to increment or decrement the timer by one minute or ten seconds.

That’s when things got complicated.

For one thing, I had to separate some of the logic from setTimer() out into a new playTimer() function. Previously, the timer started as soon as you selected a tea; now, I wanted the timer to start only when the user hit the play/pause button. So this necessitated some refactoring.

This is also where I created tick(), breaking out an anonymous function inside setTimer()/playTimer() into a named function that I could run with setInterval(). This function was designed to hold all the things that had to happen each time the timer ticked down — everything in step #5 above.

Using a combined play/pause button also meant that I had to keep track of the toggle state of the button, which I did with a playing Boolean variable.

Incrementing/decrementing necessitated a probably-too-clever switch() block based on the value attribute on each increment/decrement button:

       switch (parseInt(btn.value)) {
            case 60:
                deError();
                setTimer(mins+1, secs);
                break;
            case -60:
                if (mins === 0) {
                    setTimer(0, 0);
                }
                else setTimer(mins-1, secs);
                break;
            case 10:
                deError();
                if (secs > 49) {
                    setTimer(mins+1, (secs+10)-60);
                }
                else setTimer(mins, secs+10);
                break;
            case -10:
                if (secs < 10 && mins === 0) {
                    setTimer(0, 0);
                }
                else if (secs < 10) {
                    setTimer(mins-1, (secs-10)+60);
                }
                else setTimer(mins, secs-10);
                break;
        }

You can see that as well as resetting the timer, it handles some corner cases around converting from base 60 to base 10, i.e. when you reach 59, you need to roll over to zero, not 60. Also in there is logic to prevent you from setting the timer to negative numbers.

(I’m embarrassed to admit how long I swore at this switch() statement, which seemed to be doing zilch on my first pass — no timers were being set. Then I realized that the btn.value was coming in as a string, and thus it wouldn’t enter any of the cases — cases inside a switch() block always have to be integers. JavaScript’s wibbly-wobbly typing strikes again!)

Feeling self-satisfied with my work, I pushed my code to my website and added it to Codepen. But then I noticed two other problems…

Take one down, pass it around… three gnarly Javascript bugs on the wall!

The two three problems are found were this:

  1. The timer was occasionally displaying as “:60” instead of “:00.”
  2. Adding time to a timer while it’s running causes the timer to become All Fucked Up (a technical term).
  3. Remember #1?…

The importance of being earnest (to the rounding method you choose at the start)

Debugging problem #1, I quickly realized it had nothing to do with the tortuous switch() block — that was your first thought, too, eh?

However, I was concerned by the logic to calculate the remaining time on a timer — part of the tick() function, called every 1000ms. It looked something like this:

       if (end > now) {//time hasn't elapsed yet
            let diffMs = end - now;
            let diffMin = Math.floor(diffMs / 60000);
            let diffRemSec = Math.round(diffMs % 60000 / 1000 );            
            setTimer(diffMin, diffRemSec);         
        }

(It actually wasn’t nearly as neat, because at this point I hadn’t yet figured out how to use the modulo operator to remove the minutes I had already accounted for. I highly recommend this Stack Overflow answer for the smarter way of doing things).

(Also no idea why I’m using let for those three variables that I’m never reassigning. I guess I’m still not 100% used to the ES6 assignment keywords).

You may notice this disconnect between the Math.floor() method I’m using for diffMin and the Math.round() method I’m using for diffRemSec. Surely that may cause some weirdness, right? Plus there’s nothing stopping from Math.round() from rounding up to 60; I’m not doing any base-conversion math like I am elsewhere. I also couldn’t remember why I had chosen Math.round() instead of Math.floor() — so, ultimately, I changed it to Math.floor().

Good news: I no longer saw “:60” instead of “:00”.

Bad news: the timer was now skipping numbers. (This is bug #3, alluded to above). Most noticeably, when you started the timer, it went straight from “:00” to “:58.” It would also occasionally skip numbers down the line.

I tried a bunch of different solutions for this. Applying one Math method, then another (no dice). Testing for that “:60” case and manually resetting it to “:00.” (That caused a slew of other issues). None of these really did what I needed them to do.

The basic problem was: it’s correct to use Math.floor(), but the visual display of that data is incorrect.

Time is an illusion, and tea time doubly so.

Having ruled out rounding error, the conclusion I came to regarding the cause of the skips was: the code in tick() took some non-zero amount of time to execute. Thus each measurement was being taken at 1000ms + 5? 10? ms, which over time would lead to drift.

Alternately — or in addition — there’s the fact that setInterval() is cooperatively asynchronous. That means all synchronous code on the main thread must clear the call stack before the setInterval() callback executes. (Hence the source of Every Hiring Manager’s Favorite JavaScript Question Ever).

Give that, I asked myself: can I run tick() more frequently?

Before I dive into that, allow me a minor digression to talk about metaphors. (What can I say, I’m a word nerd as well as a nerd nerd).

The concept of a “tick” comes from an analog clock with hands, where each second is a movement of the hand of the clock, making a click or tick noise. If you speed up the ticks of an analog clock, you get a clock that runs fast; it will ultimately become so out of sync with Observed Time ™ that it becomes meaningless.

From my trip up the clock tower of Bath Abbey when I was there in November 2019. We were warned extensively not to touch the 18th century clock mechanism, as there was a very real risk of changing the time for the city of Bath.

But that metaphor doesn’t transfer perfectly to our timer, does it? If you speed up the ticks, all that happens is the display is updated more often.

“Really, Lise?” Really. I know it doesn’t sound right, but bear in mind — what ultimately determines when the timer ends is the deadline in milliseconds. That never changes, no matter what you do on each tick. And both the deadline and the current milliseconds are grounded in Unix time, which is as official as it gets.

So what’s left? The visual display. There’s real math happening behind the face of this clock, so the updates will always be accurate to the current Unix time. But if the user sees skips in the sequence, they’re not going to trust that it’s accurate.

Here’s where I’m practicing my UX design skills. Because the conclusion I came to is:

  • What’s most important to the user experience is the illusion that the timer is counting down at a rate of 1 second per second, with no gaps.
  • The human brain can’t tell the difference between 1000ms and 990ms.

So that’s what I landed on — tick() is run every 990ms instead of every 1000ms. Like so:

ticker = setInterval(tick, 990, deadline);  

Relatedly, I want to take a moment to add: making setInterval() a function expression in the global scope is crucial, so that you can use clearInterval() to stop your timer. The assignment snippet above lives in playTimer(), but it’s first declared near the top the JS file with let ticker. (See, that’s the right usage of let!)

Anyway, I tried a few different intervals, but I still saw skipping with 999ms, and with numbers below 990, I often saw flashes of the same number twice (as the display was updated with an identical number).

(You will see those once in a blue moon even with 990ms, but it’s not super noticeable. If I decide to add a CSS transition to the numbers, I might have to account for that — maybe setting up a control block that only updates the number if it’s different from the immediately previous number?)

Once again, JavaScript allows me to pretend I’m a Time Lord.

Who does number two work for?

I didn’t forget bug #2 (inc/decrementing a timer while it’s running causes weirdness), I promise! Although I did set it aside temporarily while I dealt with JavaScript’s timey-wimeyness.

I found there were a couple of things going on here:

Problem the first: the deadline was not being updated to reflect the new deadline. When you added/removed time without going through the click handler on the play/pause, you were never invoking playTimer(), and thus never setting a new deadline. So if you added a minute to a 3-minute timer, it would look like a 4 minute timer, but in the code it was still waiting for a time three minutes in the future.

So, I should explicitly invoke playTimer() after my big ol’ switch() block, in the click handler for the increment/decrement buttons, right?

But hold on, what if the timer is already paused? Then I’d be doing it twice; once at the end of the block and once when the play/pause button is clicked. I definitely don’t want to set the deadline or change the playing state twice.

So this is was my first iteration:

        if (playing === true) {
            playTimer(); //if timer is running, run playTimer() to update the deadline; otherwise it will update when the play/pause button is clicked again
        }

That fixed the “resetting the deadline” issue, but in classic debugging fashion, raised a new problem: now the timer would flash between the old time and the new time. Wtf?

I eventually figured out I had to stop the ticker (with clearInterval(), in the stopTicker() function) before starting another one. I’m guessing this is because every time you run playTimer(), you create a new instance of ticker; they each have their own closure with the same starting values, but then they diverge based on the differences in the environment at the times they’re run. You get the flashing behavior because the two different tickers are trying to modify the same DOM element, like two children fighting over a toy.

… but my understanding of the inner working of JavaScript and closures is imperfect, so take this analysis with a grain of salt.

Anywho! This worked fine:

        if (playing === true) {
            stopTicker();
            playTimer(); //if timer is running, run playTimer() to update the deadline; otherwise it will update when the play/pause button is clicked again
        }

In Conclusion: What I Learned

I’ve finished all the time juggling for my tea timer app (for now, she says, ominously), and now I’m working on adding more features. An alarm when the timer ends? Using localstorage to allow users to add custom teas? Heck, maybe I’ll even add the ability to have multiple timers running at once, as an excuse to work with classes in JavaScript.

But to summarize what I learned about timers in the process of writing Teamer:

  • Date/time math is easier with modulo.
  • User control makes everything more complicated.
  • Sometimes the answer to “why doesn’t this razzlefrazzle work?” is “you need to parse it as an integer.”
  • Be consistent in your rounding methods, and always use Math.floor() when working with time.
  • If you want to stop your setInterval(), you need to tie it to a function expression in the global scope.
  • Just because your timer is meant to update every second, doesn’t mean it needs to update at precisely that interval — the illusion is more important than the truth.
  • Honestly, timers are a solved problem, and if I were doing this for any purpose other than my own edification, I’d probably go with the time-tested approach of copying and pasting from Stack Overflow.
I never run out of uses for this image.
  • I still maintain that working with JavaScript is like being a Time Lord — you get to work with a lot of wibbly-wobbly timey-wimeystuff.
  • I wanna meet someone who was born at midnight on January 1st, 1970, just so I can give them the nickname “UTC.”

If you want to see the current iteration of the code with highlighting ‘n stuff, it’s up on Codepen.

And that is already way longer than I ever intended this post to be. Hopefully it is useful to someone other than future!Lise.

Playing Video Games for Racial Justice, part 1 of ??

In which I review three games out of the Itch bundle: Overland, Pagan: Autogeny, and Plant Daddy

Like many people, I purchased the Bundle for Racial Justice and Equality on itch.io. I may be unemployed, but $5 is not a lot to ask for 1,741 indie games, comics, books, and RPGs! (I even chipped in a little extra).

By the time the sale was over, Itch had raised over $5 million dollars, 100% of which was donated to the NAACP Legal Defense and Educational Fund and the Community Bail Fund.

(As an aside, I’d like to point out that Itch is a small indie games storefront, so they’re not exactly rolling in dough. And yet I don’t think we’ve seen similar initiatives from, say, Steam/Valve, or Blizzard, or any AAA game studio… gee, I wonder why that is? Does it start with “c” and rhyme with “shmapitalism”?)

Of course, now that I’m bought all these games, how do I figure out which ones to play? Out of a list of 1000+ games, how do I find stuff I like?

Some folks have put together tools (spreadsheet, app) that will help you to search through them by ratings, tags, description, developers, etc. The webapp will even suggest a random game for you! These are great, but you still have to know what you’re looking for — or at least be willing to click the “random game” button a lot.

So how do you get turned onto games you might like, but might not know you’ll like? For me, the answer to that is often “friends’ reviews.”

Therefore, I think it’s only fair for me to write up my impressions of the games from this bundle that I play. Hopefully this will only be the first post in a series!

Overland

Overland, published and developed by Finji (the spousal team of Adam and Bex Saltsman), is a “turn-based survival game” where you and a band of unlikely heroes — including some dogs! — take a road trip across the U.S. in the wake of a bugpocalypse.

First point: this is a game where you can definitely pet the dog. Your whole team can be dogs, if you like! Dogs wearing beanie hats and little backpacks!

… this is not a very good strategy, alas, as dogs can’t drive or fill up the car with gas.

Contrary to this awesome t-shirt, the dog cannot drive. (Credit: the Finji shop, where this item is sadly out of stock).

I’ve sunk dozens of hours into this one already, so clearly this is a compelling game. Challenging, too, as I haven’t managed to beat it yet — the farthest I’ve gotten is “The Mountains”, which is the second-to-last zone, where the bugs are crowding in faster than I can deal with them. I still feel there is a lot of room to perfect my strategies for the basic “get gas, drive to the next stop” mechanic.

Ultimately, though, I can’t play this game for very long stretches. It’s the sort of game that requires making hard choices — do I leave someone behind so that the rest of the team can escape? Do I murder this other survivor at the gas station because they might steal my car? — and the consequences of those choices. That is part of what makes it so emotionally compelling, but also stressful to play for long periods.

I also don’t love the controls. It took me a while to get the hang of the “right-click to switch which party member you’re acting as.” Even with… twenty hours? or so in this game, there’s still a lot of me muttering “undo, undo” when I accidentally move where I don’t want to. (Thank goodness for that functionality!) Maybe it plays better with a controller?

But even if it’s not an “always” game for me, I still seriously admire the artistry that went into creating a game at once attractive and wrenching. When you consider there’s some degree of procedural generation that goes into this (in the dialogues between your party members, or in what stops appears on your map), that’s even more impressive.

Overall, I’d give it 3.5 stars (out of five). I think it would most appeal to fans of games like FTL or some of the XCom games, with its tactical, turn-based combat and difficult decision points.

Plant Daddy

Plant Daddy, by Brady Soglin is “a laid-back browser game about raising houseplants in your sunny apartment.” You can play it in the browser without having the bundle, or by purchasing it you can download and play it on Mac, Windows, or Linux.

The living room of my “sunny apartment,” late in the game. Matt’s comment was, “So this is apparently a plant hoarding simulator?”

This was the first bundle game I played, and I enjoyed it so much I pretty much binged it. Of course I appreciate anything involving plants 😉 But I also like the options you have for displaying your plants, I like the goals outlined on the to-do list, and as a long-time fan of alchemy-type systems in games, I was intrigued by the rare traits mechanic.

To me, Plant Daddy feels a lot like an idle game — click some buttons, gain some currency, come back later to click some more buttons and watch numbers go up. That’s not a bad thing! To the right kind of person — and I am that kind of person! — those sorts of games can be very relaxing. At the time I bought the bundle, that was precisely what I was looking for, and I sure found it!

I just wish there was more to it? It’s easy to play through most of the items on the “to-do list” in a day or so of regularly checking in — I think the only one I have left to complete is “find a plant with four rare traits,” and I don’t have a great path to achieving that.

That brings me to another point. I found the search for rare traits enjoyable at first, but ultimately somewhat unsatisfying. Each plant has a 7 digit “seed” number, and there seems to be some pattern to which seed numbers correspond to what rare traits — for example, the first three digits encode the plant species; all Ancient Ferns have numbers between 090 and 097, but only some of those will have rare traits. The last four digits encode traits in some additional way; they seem to work in concert with the first series, but it’s not 100% clear how. You can enter (almost) any seven digit number into your plant workbench and grow that seed, but there’s no guarantee it will have any interesting traits. And basic combinatorial mathematics will tell you that 7 digit numbers = a LOT of possible permutations.

Plus there’s at least some randomness to what digits correspond to what traits in what plants, because I still haven’t figured out a way to get predictable results. I’ve had the best luck combining the two sets of digits as groups, rather than just incrementing or decrementing the whole series. But even working with series I know encode 1-3 traits, I only get plants with 0-3 traits.

I have a feeling the four trait-plants are encoded with a completely different series than the 1-3 trait series, but short of brute-force guessing, or lucking into a plant with four traits from the shop, I have no systematic way to find those magic numbers.

(I guess a lot of people just go on the game forum to get seeds for four-trait plants, but that doesn’t seem like much fun to me. I may do it eventually, though, to satisfy my completism).

Another quibble: as a browser game, this runs in a Unity window within the browser. This is not exactly optimal, performance-wise. Now that my apartment is filled with plants, it lags starting up, and the longer I run it, the more it sounds like my computer (a brand new Macbook Pro) is about to achieve liftoff.

Given this, I considered downloading it and running it as a desktop application — an option, especially if browser games aren’t your thing. But that was when I discovered that your save doesn’t sync between the versions, so I would have to start from scratch for each platform.

(Plus fundamentally this feels like a browser game — see the comparison to idle games, above).

Despite these concerns, I got a lot out of this one! I think it will appeal to folks who like idle games, or who just want something relaxing and low-key in a stressful time. Three out of five stars.

Pagan: Autogeny

Pagan: Autogeny by Oleander_Garden is “an experimental first person open world role playing game set in the digital ruins of a largely abandoned MMORPG.” I saw that and was like YES PLEASE INSTANT DOWNLOAD, because if there’s anything I like, it’s games that comment on the experience of playing a game. (Hence my love for the Jvk.esp creepypasta, and my general love for the lore of the Elder Scrolls).

Speaking of creepy, the major thing I want to say about this game is it’s CREEPY AF. I think that feeling is forged by a combination of nostalgia and incompleteness — or, to crib from the phenomenal Itch copy: “It is heavily inspired by long-forgotten bargain-bin 1990s adventure games, and by a general ethos of user-hostile design.”

The nostalgia, first. From the first screen, which asks you to pick your resolution (defaulting to 1024×768!), you are treated to a Windows 95-era loading screen for an MMO ostensibly named “Plaza 76.” Once you load in, you find yourself a pixelated lobby — the graphics are about on par with, say, the original DOOM, or TES II: Daggerfall. A giant card offers you some instructions about how to move around in the world, but you’ll soon find they’re woefully incomplete.

Here in the lobby you can acquire a few starting items — a tarot card (an equippable item that increases your stats), a mystic blade, “labor vouchers,” and a few skill-up items. From that lobby, you can launch into various different biomes, which offer different adventures and things to find.

A view of the lobby of Plaza 76, including a neon “Food Court” sign.. I would not eat the sesame chicken from that food court, let me just say. (Credit: the Pagan: Autogeny page on Itch.io)

Just like any MMO, right? Except you’re alone and this world does NOT hold your hand.

(FWIW, I never played around much in early MMOs myself — my first one was City of Heroes in 2003 — but visually this reminds me a lot of watching my husband play Phantasy Star Online on the Sega Dreamcast).

The incompleteness, next. I think this arises out of the setting — a deserted MMO — as well as that aforementioned “user hostile design.” Overall, this gives the game the sense of an abandoned project, just as the creators doubtless intended. That you can’t extrapolate what lies ahead from what you’ve already passed through is the source of some of the creeping horror you come across in the game.

A few words about that user-unfriendliness — don’t expect any features you would have in a modern MMO, like a map, or a way to look your current buffs and debuffs, or, heck, even your hit points. I took to drawing maps on paper, because otherwise it’s easy to wander in circles in some of these zones.

Plus, like many old-school MMOs, too, when you die, you lose some of your items (thankfully most stuff is easy to reacquire), and respawn back in the lobby.

Like any good MMO, your experience is tied into your skills and equipment, and how those tie into the setting. Your skills include “murder”, “poetry,” “caffeine”, “body morphing”, and “estrogen.” You’ll pick up your first points in these in the lobby, which you may notice has only one bathroom, marked as a ladies’ room. That bathroom is also where you’ll find your starting tarot card, the High Priestess — traditionally associated with feminine power, this tarot nerd notes. Finally, one of the “quests” — as much there are “quests” — involves putting together a mannequin from body parts you find lying around the world; this increases your body-morphing skill.

Starting to notice a theme?

So yeah, there there is a continual, low-grade trans energy to this game, which is perhaps the “cursed gender_magick()” mentioned in the game description on Itch. (I was only a little disappointed that it wasn’t as transparent — pun not intended but certainly welcomed — as that description let me to believe).

This game apparently has multiple endings, but I have only discovered one so far — which is as surreal and vaguely terrifying as you might expect. I won’t spoil anything, but I will say that the game also plays around with breaking the fourth wall in a way that some of my favorite horror games do (i.e. Eternal Darkness, and yes, even that creepypasta I mentioned above).

If I have one complaint about this game, it’s that I have a lot of crashes to desktop (that are clearly not scripted — the game will make you question that, though!) The game description suggests using the 64-bit version if that keeps happening, so I think I will try that on my next trip to Plaza 76.

Another small quibble is that, having found the most obvious game ending, I’m at a bit of a loss of what to do next. I’ve explored all the obvious areas; there are apparently some hidden areas, but I don’t have a great idea of how to find them. And there’s at least one boss monster I’m not sure how to defeat! I’m sure if I poke I’ll uncover them, but the lack of a path forward makes me somewhat disinclined to do so. I wonder if this is where having a formal quest system might help?

One piece of advice I’d like to give to anyone who picks up this game is — make sure you read the manual in the install folder! You can go into this blind if you want the fully “user hostile” experience, but after your second or third trip it will definitely increase your enjoyment to understand what some of the equipment and tarot cards do.

Overall, I rate this one 4 out of 5 stars. As this is the third Pagan game by Oleander_Garden, I’m definitely inclined to check out the the other two that aren’t included in the bundle (Pagan: Technopolis and Pagan: Emporium).


All right, this got long, and I covered fewer games than I expected — but I hope you find it useful all the same. I think if there’s one thing I take away from this first round of games, it’s the world of indie games is broad and fascinating, and that I’m just sad I didn’t discover Itch before this!

(I’d also like to remind you to rate and review any Itch games you like! It will be helpful for those games’ visibility).

Join me next time, when I’ll discuss A Mortician’s Tale, Mon-Cuties for All, and Verdant Skies.

Treemendously nostalgic

(This post has been sitting in my WordPress drafts folder for, oh, a month and a half. I thought it was time it finally saw the light of day).

Lately, with all the time I’ve been spending in nature (and maybe I’ll actually write about that directly at some point!) I have been thinking about high school, Science Olympiad, and the Treemendous competition.

I was involved in Science Club for several years in high school, and every year we participated in the regional and the state Science Olympiad, a series of science-based challenges for a team of fifteen. Our team, from a Catholic high school in rural Plattsburgh, New York, usually did okay in the regional competition — enough to advance to the state event — but terribly in the state tournament, often placing in the bottom ten. (Theoretically there is a national competition, but that was always out of reach for us).

Both the state and the regional tournaments had the same individual events, but they did change from year to year. I was excited the year that “Treemendous” was added to the list — a challenge to identify North American trees by genus and species. It might have been new that year; I certainly hadn’t heard of it in the other years I’d been involved with the club. I volunteered to study for Treemendous that year, because it was the only vaguely ecological one, and I thought I’d be good at it. Hey, I could tell an oak from a maple!

… she did not do well at it, dear reader.

For one thing, the regional event used branches from winter trees. I apparently didn’t think this would be a possibility, even though the event was in the middle of (I think) February in the blasted heath of northern New York, USDA zone 3b to 4a. If it even crossed my mind as a possibility that “hey, there won’t be any local trees with leaves on them,” I must have dismissed it as “no one can identify trees in winter!” (Not true. It is very possible to identify winter trees. But you have to look for a different set of features, since you can’t rely on the leaves and blossoms).

Photo taken in March 2020. Pretty sure these are leaf buds of American beech (Fagus grandifolia), but did I know that in 1998? I did not.

Despite all that, I somehow I muddled through well enough to go on to the state event — I want to say the test was multiple choice, and didn’t use Latin names, but the biggest contributing factor was probably that everyone else did just as badly as I did.

Somehow we made it to the state competition that year, which I want to say took place in April or May, at West Point. The state Treemendous event used pressed samples of trees (not all of them native to New York), so in some ways it was easier. And yet, I did even worse. The IDs required Latin binomial names, and you actually had to recall them, rather than just recognizing them for a list — a task which is always more cognitively demanding.

Plus I soon realized that while I knew that an oak was genus Quercus, I could not remember that a white oak is Quercus alba and a northern red oak is Quercus rubra, nor did I have any idea how to tell the two apart. (I do now, sorta. White oak has rounded leaf tips).

Decayed white oak leaf
Now, THIS is a white oak leaf.

I think I came in dead last, or near it.

I haven’t put much effort into learning to identify trees since then, and it’s only since I’ve gotten into iNaturalist that I’ve been picking it back up, mostly because I got bored with the endless mountain laurel/partridgeberry/teaberry undergrowth in New England woods, and wanted a new challenge. I’ve come to some conclusions since then:

1) I would have done much better at Treemendous if iNaturalist had been a Thing when I was in high school. (I was in high school in the late 1990s, and it was mostly pre-internet).

Also:

2) I was studying in an absolutely awful way. And there was nobody telling me to do it any differently. (Theoretically, that’s what our faculty advisor/coach should have been doing. But for all that I adored Mr. Dilley, he was a chemistry teacher, not a botanist).

How I should have been studying was by doing actual tree identification. And yet I can’t think of one time I took my field guides and walked around my neighborhood trying to identify trees. And if iNat had existed, pulling up the Identify tab and filtering by “plants” and “Clinton County, New York” would also be a useful training exercise.

Either way, I know now what I didn’t know then (thanks, in part, to the great MOOC Learning How to Learn): that testing is learning. And I was definitely not testing my tree ID skills in any substantial way.

What I was doing instead was… making flash cards? Basically they were index cards with the common name, the Latin name, and a few facts about the tree. I might have written down if, say, the leaves were alternate or opposite, but I am pretty sure that nowhere did I use the term “leaf scar,” or any of the things that would have helped me to identify a tree in winter.

Also it took a lot of time to make flash cards — I was writing them by hand! — and I was not, let us say, particularly diligent about my study time for this event. (I was not particularly diligent about anything, really. Let’s remember I’ve had undiagnosed and untreated ADHD up until early this year).

Flash cards have their uses, but without real examples, none of the stuff I was learning stuck in my head. At least if I had been looking at real trees in my neighborhood, I would have been creating a memory palace out of my own neighborhood: like “oh yes, that’s a white oak I saw on the corner of Wells and Cornelia streets.” (Note: that’s a real intersection, but I have no idea if there’s actually a white oak there. Please do not take this as arboreal advice).

Even today, all my facts about, say, eastern redbud (Cercis canadensis) are connected to the first instance of it I ever identified, along the Cochituate Brook Rail Trail in Framingham. Which was in the Year of Our Lord 2019, at age 39, not long after I discovered iNaturalist. Thinking about that particular tree — like accessing any good node in a memory palace — is like an opening a drawer full of facts: That it flowers before the leaves are out. That the flowers often bud right off large branches. That the leaves are heart-shaped, large, and alternate on the branch. That the fruit is a bean-like pod (unsurprisingly, since it’s in the legume family, Fabaceae), which often remains on the tree through the winter. I didn’t remember the full binomial name off the top of my head, but I did recall it was species “canadensis” and that the genus started with a “c” — I could have passed a multiple choice question, if nothing else!

Do I regret my misspent youthful opportunities? Eh, maybe a little 😉

For what it’s worth, Science Olympiad is still a thing! However, Treemendous is no longer an event. It doesn’t even show up in the archived events, nor in a search! Maybe they, like I did for so many years, prefer to pretend it never existed 😉 Nonetheless I was pleased to see they now have a number of ecology- and nature-themed ones, including an ornithology challenge, and a proposed botany one, as well.

I’ll lament again, like I have before, that educational and enrichment activities like this are often seen as the domain of kids — as if you should stop learning when you’re an adult! So yes, maybe I do wish there was a Science Olympiad for adults 😉 I’d do a lot better today, now that I actually know how to study effectively. Youth really is wasted on the young!

I guess the closest I can get to that is setting ID challenges for myself, educating and learning on iNat and my nature groups, and maybe participating in bioblitzes, or other identification events.

Lise is a free elf! (or: I lost my job)

Photo by Andrew Neel on Unsplash

Here we are, six months into 2020, and hooboy, it sure has been a century. It feels irresponsible to start any personal blog post without an acknowledgement of COVID-19, the increasing fascism of the U.S. government, and racial injustice.

So before we launch into the latest episode of The Adventures of Lise: Transtemporal Gadfly in the Year 2020, let’s take a moment to acknowledge that there’s a whole big world out there that has nothing to do with my personal struggles.

(In case you have any doubt where I stand on current events: Black lives matter. And since it’s also Pride month: Black queer lives matter, and Black trans lives matter. If you have opinions contrary to that, you are welcome to keep them to yourselves and/or fuck right off. If you want to clutch your pearls about me expressing that opinion on a public post where an employer might see it, you are also welcome to get lost — I don’t want to work for a company that would judge me for fighting injustice).

… okay, ready to go on?

The big bad news: job loss

On May 12th, I was laid off, along with most of my team. It was very abrupt, very surprising — and yet inevitable, in retrospect.

It was made clear to me by many people that this decision had nothing to do with my performance, and everything to do with company financials. As far as I know, my manager had nothing to do with the decision — it was all made at a higher level based on I-don’t-know-what criteria.

My immediate reaction was… ambivalence. You see, I had already been looking for a job, on and off, for the past six months. I had been at this company ten years and I felt like I was stagnating. I had a few promising interviews in late 2019, but nothing panned out. So at first I was like, hooray, an opportunity to do something new?

But as the weeks have gone on, I’m definitely found a trove of… sadness? Nostalgia? about the loss. Even though I was ready to leave this company, it’s hard to put the work of ten years behind you in a day. I think of all the people I probably will never see again — my amazing manager and team members! — and the places I’m unlikely to return to (like the Savers of Framingham, or the Cochituate Brook Rail Trail). Sometimes I even think nostalgically about sitting at a certain traffic light on Speen Street.

Plus, we had all been working from home for two months due to the pandemic, which made being suddenly cut off particularly traumatic. I had (and still have!) a bunch of my personal belongings at the office. Going into an empty office to reclaim those tomorrow is going to feel exceptionally weird.

The good news is that we are not being left without resources. I have access to severance, outplacement funds, benefits continuation, etc, which means that for a few months, I won’t have to worry about paychecks or health insurance and I can focus on finding a new job. The economic situation is dire, of course, but I honestly feel like I’m in a better place than I was with my job loss in 2009.

In the final account… I’d rather be one of the people let go than one of the people remaining.

What kind of work do you do, anyway?

I’m in front-end web development, meaning I work primarily with HTML, CSS, and JavaScript (and adjacent technologies). My title before I was laid off was “senior front-end developer.” I have ten years of experience working on websites for a major tech publisher, plus additional freelance and personal experience. I’m happy to forward my resume if you think you have something that I’d like.

What am I looking for next? One word: values

First thing to know about me: I am fundamentally pessimistic about employment. I am always aware that you can be let go from any job, at any time, for any reason; there is no such thing as job security. You are only valuable to the company so long as you make it money. Capitalism gonna capitalize.

But I’m less capable these days of being blasé about that. Watching the news, I hate seeing incompetent executives — who are usually old white dudes — steer their companies towards disaster in the search of 100% year-over-year growth. (Patreon, I’m looking at you). I hate to watch billionaires like Jeff Bezos and Bill Gates do nothing* when they have the power to stop a pandemic in its tracks without even sacrificing 1% of their wealth.

*(or “very little, and only on their strict terms”)

I don’t want my next job to feel like I’m just a replaceable cog in a machine of death. I don’t agree with the corporate philosophy that “if you’re not growing, you’re failing.” I think more things matter than the bottom line.

Thus it’s important that my next position be at a values-driven institution.

Maybe that’s a non-profit, or a university. Maybe that’s a company that has a mission statement that it takes seriously, and which is is alignment with my values.

At the end of the day, I need to feel like I am more than just a machine for spitting out front-end code, or some kind of modern-day Morlock.

That may lead you to ask…

“…what are your values, anyway, Lise?”

You probably get a good sense of it from reading this whole post, but to list a few words and phrases that come to mind:

Intellectual curiosity.

Generosity.

Honesty.

Fairness. Accuracy. Equality and equity. Social justice.

Compassion. Treating people as ends, not means.

Putting people’s lives above property.

The power of stories.

… and probably more. Developing one’s values, after all, is the work of a lifetime.

What else is important to me in my next job?

Unlike the previous consideration, the points below are all negotiable — I’m willing to do work that’s less in alignment with my interests if I can do it remotely; I’m willing to go into an office some of the time if I can solve interesting problems. I’m also willing to be flexible on pay and benefits if I can do work I love.

I want to work remotely.

I live in rural Massachusetts, and I am 50 miles from the nearest big city (Boston). Let me just say, I do not want to work in Boston. I’m not even sure I want to commute to Worcester, some 30 miles away.

Since I had been doing my job remotely for two months, and working remote regularly before that, I see no reason why I need to go into an office.

Generally I feel that the managerial attitude that wants to see “butts in chairs” is the same attitude that values the appearance of productivity over actual results, and I will take a hard pass on that attitude.

I want to solve problems.

All my performance reviews at my last job said the same thing: “Lise is a tenacious problem solver.” I’m happiest when I can be fully immersed in Making Something Work.

And when I succeed in solving a problem? Man, there’s nothing like that rush. It’s true for writing and it’s true for web development — although when I come up with a different way to use aspect-ratio CSS cropping, the audience to whom I can brag is considerably smaller 😉

Arguably, all technical work is problem solving, so this doesn’t really narrow it down, does it? So let me further qualify: I’d like to solve interesting and important problems.

First, the interesting. I’d like to get better at writing novel algorithms. So much of web development is trodding the same ground over and over again; it’s hard to find opportunities to come up with a new approach from scratch rather than just copying and pasting a solution someone else has figured out. (Even if that someone else is “past you”).

“Essential Copying and Pasting from Stack Overflow: Cutting corners to meet arbitrary management deadlines.” It’s a joke, but like any good joke… there’s a kernel of truth to it.

Second, the important part. This is a value judgment, and I’m pretty flexible about this. For example, maybe entertainment isn’t “important” in some people’s eyes, but would you have done as well over the past pandemic months without books, movies, or RPGs?

Basically I don’t want to be working in an industry that takes away from people’s lives. I don’t want to be doing web development for ICE, or trying to sell people expensive products they don’t need, or working on a gambling site.

I want to work with modern(ish) technology.

I’d gotten kind of bored with technology stack at my old company, which had over a decade of momentum in the form of legacy code. We were still using JQuery and a bunch of other increasingly-obsolete technologies. It got to the point where every time I needed to update one of our tools, I went to the product’s website and was told “[Product] is deprecated!”

Also, I was starting to get complacent, and forgetting how to do simple things like “change a class name on a DOM element” without using JQuery.

I’d like my next job to be different in that regard.

Vanilla JS, thanks to ES6, is pretty great again, so I look forward to doing more with that. I’m definitely much stronger than I used to be in this regard, but every day I still learn something new. (Maybe I will start a blog series of “what I learned about Javascript today?” But that could just be an ADHD fantasy).

As my former manager and teammates would attest, I love burning cruft to the ground and starting over new, so I’m your gal if you want to rip out an obsolete product and replace it with something new. Like, say, ripping out JQuery.

(I seriously don’t hate JQuery, I promise. It was very good to me at a time when vanilla JS was not — when you had to write a helper function just to select a DOM element by class name. It was my gateway into JS, and I wouldn’t be the programmer I am now without it. But now that Javascript and modern browsers are catching up, it’s much less necessary than it used to be).

JavaScript frameworks are a Thing now, and I’d like the opportunity to work with one of those, if only to develop that skillset. (I’m pessimistic that any of these will stand the test of time — same as JQuery — but right now they are the Hotness). I have a slight preference towards React, because I’ve done some coursework with it, but I don’t know enough about the strengths and limitations of Angular, Vue, etc to have strong preferences yet.

I want a salary and title in line with my skills and experience.

I have at least 11 years of professional front-end web development experience. I have many more years of personal web dev experience — arguably, ever since I picked up The HTML Quickstart Guide in 1996 and started building my first website.

(I still have that book, mostly for nostalgia purposes. Occasionally I get a chuckle looking at its discussion of image maps, or the flyout of web-safe colors).

Without talking numbers, I was underpaid at my last job, so I am hoping to double my current salary, to bring me in line with folks doing similar work.

Likewise, I was a senior front-end developer at my last job, so I’m looking for a more senior position now. I’ve reached the point in my career where I have more web development Opinions than Questions, and I enjoy teaching and mentorship, so I am hoping that points me towards a Lead Front-End Developer position.

But no matter where I am, I believe in leading from the seat I’m in.

What don’t I want?

I’ve alluded to some of these already, but let me be explicit about what I don’t want.

I don’t want to relocate.

I’m 40 years old and I have a husband, a mortgage, and three cats. I am not interested in moving to Podunk, Idaho for a three-month contract as a full-stack developer on WordPress sites.

Relatedly…

I’m not looking for contract work.

This may change if my severance period draws near and I become desperate, but for now, I am solely interested in full-time work.

In my last stint of unemployment in 2009, I found the primary benefit of contract work to be the professional experience it provided — otherwise, it disqualified me from unemployment and kept me from working full-time on my job search. I have no dearth of professional experience now, so the benefits are minimal.

I’m not a full-stack or back-end developer, or a designer.

I can sometimes play a full-stack developer — I can Google an API and muddle my way through a back-end language, and I’ve been known to modify a Java class or two.

But I am rubbish at knowing what looks good on websites. Some of that is teachable, but there’s an artistic element to web design that still eludes me. It’s important work, but not work I can do.

The middle ground I’m not sure about is UX (user experience; also known as UI, user interface). Some jobs consider this to be part of design, and some consider it to be front-end development. Generally, the more code-based the position is, the better I am at it. While I can tell you, for example, that Clear User Inputs Are A Good Thing — and implement them — if you want me to create a comp in Invision or Adobe XD, that is beyond my skills.

As I say on my LinkedIn profile, “I’m experienced at turning a designer’s vision and a back-end developer’s data structures into a functional, usable website, using HTML, CSS, and JavaScript,” so at the end of the day that’s what I’m looking to do more of.

I don’t want to work in Boston.

Or Cambridge, or Somerville. If it’s a remote job with a few days a month in the office, I can handle that, but making that commute on a regular basis will just crush me.

I will not take your timed, automated code test.

I have a whole rant about this, Forthcoming, Maybe, but let me just say: there are a host of reasons I hate these tests, delivered by third-party sites such as Triplebyte, Codility, or Testdome. But fundamentally it boils down to: these tests are discriminatory and non-inclusive, and don’t tell you anything about my strengths and limitations as a programmer.

I refuse to be assessed using them. Even if I did well on them — which I generally do not, because who can design an O(N) algorithm in 30 minutes with secret unit tests and alarms going off at regular intervals? — a company that uses them is probably not a company I want to work for. It suggests you don’t know what it takes to be a good coder and that you probably have an engineering team full of privileged white boys.

I will happily spend my entire weekend working on a take-home, untimed coding challenge for a company I like. (Heck, it’s what I spent last weekend doing). But I will not do a 2.5 hour automated, timed test for a company I just met, because it tells me everything I need to know about their values.

And that is: nothing good.

Relatedly — since the field of tech recruitment is a whole minefield of “what not to do,” whiteboard coding is also awful (though I wouldn’t turn down an interview that involved it), as is asking candidates riddles and brain teasers. My ability to solve the Monty Hall problem — or my, yanno, having heard it once already — tells you nothing about my ability to code, either.

If you feel the need to ask me to prove my coding skills — which is a fraught assumption, but let’s not get into that right now — please have your coding test be something like what I would actually be doing in that job.

I don’t want to work at your old boys’ club

Diversity in programming is really important to me — especially now, and especially given all the work STEM does to keep women, POC, and other marginalized sorts out of the field.

So if your company doesn’t have women and POC in engineering and in leadership positions — if your company signature doesn’t include your pronouns along with your title — give me a miss.

I will not be evil.

Like I said above, I’m uninterested in working anywhere near the carceral system. I’m uninterested in working for Facebook, Amazon, Google — even if I could pass their impossible coding tests, which I can’t. Finance and healthcare are also iffy for me — depends a lot on what corner of it they work in. I’m wary of VC-funded companies and I’m wary of family-owned companies, for similar reasons.

But mostly…

I don’t want to end up in a shitty job

Not that my last job was shitty — far from it. I have worked at shitty jobs, however, and let me tell you — they are a vortex.

Bad jobs suck you in, distort your worldview, and kill your hopes and dreams. Just getting through the day takes so much emotional labor that you have no energy left to look for better work.

(Heck, even good jobs have a kind of inertia. Hence: staying at my last job for ten years, which is generally a maladaptive strategy in this field).

I have been in the position of being forced to stay at a bad job for the money, and I never, ever want to be there again. I’m old enough that I’m starting to think about legacy (and not just legacy code!), and ultimately, I want my work to be a reflection of who I am.

In closing

… I just realized my title is a Harry Potter reference. We’re all aware J.K. Rowling is a transphobe, right?

But as Daniel Radcliffe — aka the actor who played Harry Potter in the movie adaptations said — in a statement for the Trevor Project, “if you found anything in these stories that resonated with you and helped you at any time in your life — then that is between you and the book that you read, and it is sacred.”

So allow me this mental image of me walking away from my old life, clutching a sock.

99 Activities to Stay Busy During a Pandemic

*without spending extra money.

Like nearly everyone in the world these days, I’ve been practicing social distancing to slow the spread of the novel coronavirus, COVID-19. I am privileged enough to be able to work from home full-time, plus I’m lucky to live in a rural area where I can go for a walk on my cul-de-sac, or in the woods behind my house, without coming within six feet of anyone.

And, as the saying goes, noblesse oblige.

So what have I been doing to occupy my time–and to keep my anxiety from screaming “WE’RE ALL GONNA DIE” at high volume sixteen hours a day?

Well, first, I made a list! My list is titled “Activities to stay busy during social distancing (that don’t cost extra money & aren’t spending too much time on social media).” Since this is my list, it contains many items that may not be relevant to you (what, you mean you don’t want to finish watching Escape at Dannemora?) I encourage you to make your own list, perhaps generalizing from some of my specific examples.

(And I’d love to see your lists!)

I used a couple of things for inspiration here: my personal to-do list, my DayZero lists (my latest 101 goals in 1,001 days period has ended, but there are a number of things I didn’t manage to do), and this “103 Things to Do on a Money-Free Weekend” article, by Trent Hamm of The Simple Dollar. (Sadly, a good number of his suggestions don’t work while practicing social distancing, but some do! I’ve just picked a few that appealed the most to me).

Without further ado… my list!

  1. Read books I already own–on Kindle or physical copy, new or re-read. I gotta admit, I’m not doing as much reading as I would like, because the news and/or social media is very distracting (especially while reading a book in the Kindle app on my phone)! But recently I finished the steampunk fantasy romance, The Iron Duke, by Meljean Brook, and I read the YA portal fantasy Every Heart a Doorway, by Seanan McGuire, for a virtual book club that my friend Becky put together. I’m also re-reading The Goblin Emperor, because Tor.com is doing a “socially distant read” of it, and also because it’s a fantastically comforting book. And hey, my tweet about it was featured prominently on this article!
  2. Play games from my Steam library. Like most gamers, I have a zillion games in my library I haven’t played, or haven’t played much. Before the pandemic hit, I was playing a ton of Rimworld–and man, is it easy to lose hundreds of hours in that game!–but for whatever reason, it’s been less compelling to me recently.
  3. Finish watching Escape at Dannemora. I’ve been watching this dramatization of the events of the 2015 prison escape from Clinton Correctional Facility, which hey, happens to be very close to where I grew up. It’s compelling, and I like seeing how they portray a place that I’m very familiar with. But, in classic ADHD fashion, I got distracted and haven’t gotten back to it.
  4. Watch other stuff that is free (or that I’ve already purchased) on Prime video. I mean, Vincent Price’s birthday is coming up (May 27th!), and I do own much of his oeuvre on that platform…
  5. Try a new recipe with stuff I have on hand. I’m not much of a cook, but I have definitely been doing some stress baking–first making Alton Brown’s cocoa brownies, and then a Betty Crocker peanut butter cookie recipe, with the addition of brown butter. Next up? Lemon bars, I think.
  1. Work on the Never-ending Cross-Stitch Project. This came from my 101 goals list. And it is called that because, literally, I have been working on it for half my life.
The Never-ending Cross-stitch Project. Making a lot more progress now, though; it’s recognizably a basket of flowers.
  1. Work on my current coloring project, or start a new one. I recently found my old Prismacolor colored pencils from high school, and I’ve been getting back into coloring again–aided by my pal Chava, who has been posting daily coloring pages on Facebook during the pandemic.
  1. Draw some wild plants from my nature photos. Matt got me The Laws Guide to Nature Drawing and Journaling for Christmas, which has inspired me to work on my art. It’s really a whole course in drawing from nature, but as someone who still isn’t a very practiced artist, it’s much easier for me to take photographs in the moment and do the drawing later.
Page of nature journaling from January
Page of nature journaling from January. Yes, I drew that dang laurel while sitting on a log in 20 degree temperatures; witness me.
  1. Go for a walk in the Hickory Woods. This the conservation area behind my house, owned by the Hickory Hills Landowners association, of which I am part. Or, as I recently learned, this is actually one of FOUR conservation lands behind my house. I keep thinking I’ve thoroughly explored it, and yet I still get lost back there!
  2. Go for a walk in another local conservation area, i.e. Cowdrey Nature Center, Lane. The Lane property actually abuts HHL, so this is easier than I originally thought!
  3. Put up a batch of mead. I have the ingredients to make a few different varieties, but Matt is really hoping for me to make a cardamom-orange one next.
  4. Start seeds for springtime. I’ve already started seeds for Roma tomatoes, jalapenos, bell peppers, and sweet alyssum, but I have a few more spots in my planters, which I’ll probably use for flowers.
My seed starting flats: ITS ALIIIIIIIVE! Well, except for the peppers.
  1. Clean out the raised beds from last year. Or, er, from the last time I actually had a garden.
  2. Work on quilt repair project. This is an old quilt my mother gave me several years ago, which I would like to hang on the wall over my staircase. Unfortunately I discovered some damage to it, so I need to do a bit of a patch job. (It’s not so nice nor antique a quilt that I’m worried about proper restoration; I’m just gonna stick a tightly-woven patch on the back and hand-sew a lace doily over the damage).
  3. Clean up my old dollhouse. This is the dollhouse my mom built for me when I was… 11 or so? It’s been sitting in my basement for years, but we just moved it upstairs. I want to clean it out and get all the furniture set up again.
  4. Tidy, clean, or declutter a space.
  5. Watch DVDs/Blu-rays from my collection. A few Christmases ago I bought Matt the Mel Brooks movie collection, and recently we watched Blazing Saddles and Silent Movie together. (A first time, for me, for both)
  6. Journal. I have been doing a lot of this during the pandemic. It helps me, somehow, to remember that I am living through a historic period and I can give value by being a primary source.
  7. Make a collage of memes, headlines, etc, to illustrate the story of the pandemic. This is something I’ve pondered doing, as another way to provide a first-hand account of what it’s like to live through this. So far I haven’t done anything towards it, though.
  8. Email my neighbors to see if they need anything. I’m trying to improve my relationship with my neighbors, and making a little progress, I think. This is an especially good time to check in on them.
  9. Set up outdoor lights for “unity tree.” Our town put its Christmas tree back up, and many people are getting their lights out of storage, in the grand human tradition of, “Shit’s bad? SET STUFF ALIGHT.” I live at the end of a private drive, but I could always put lights on my mailbox or something (…assuming I actually own any outdoor lights).
  10. Go for a run. Zombies, Run! seems very appropriate right now, and Sam Yao is always there for me…
  11. Work on Lioness edits. Another project that seems never-ending (in my defense, I finished the first draft on Election Day 2016!) Although I do seem to be making slow progress again!
  12. Work on a new piece of writingBuilt-Up Fairyland, more stuff in the world of Lioness, etc. As much as it’s a Bad Idea to write more in the world of a novel you haven’t sold, GUYS I HAVE SO MANY IDEAS for Yfre and pals.
  13. Drive to a part of my town I’ve never been to before.
  14. Work on my language studies (Spanish/French/Hindi). At some point in the last year I got to the point where I could almost read the devanagari script that is used to write Hindi, Sanskrit, and a bunch of other Indian languages. (Not that I knew what the words said, but I knew roughly what they sounded like and could look them up). I have basically lost all that, and need to regain it. Man, I just do not retain stuff like I used to…
  15. Finally finish Wes Bos’ React for Beginners course. I bought this on sale at Christmas time and I’ve been slowly working my way through it. (All his courses are on sale for 50% off right now, too, if that’s something that would appeal to you).
  16. Watch NERD Summit sessions that I couldn’t attend. This was the virtual conference I attended in March for work.
  17. Convert my WordPress blog to a static site using a static site generator. Probably Hugo, but I’m open to other options.
  18. Organize my photo collection
  19. Organize my music collection.
  20. Reach out to relatives, especially ones I’m not often in contact with.
  21. Reach out to a friend I haven’t talked to in a while. There’s been a lot of this going on! I’m sure people are sick of hearing from me 😉
  22. Write a letter or postcard.
  23. Get my tax forms ready. I did this the other day! Of course the deadline has been extended by 90 days…
  24. Practice identifying countries on a map. I did this as part of my 101 goals, but I’ve definitely forgotten a few. (All the islands of the Caribbean and Oceania are hard, yo!)
  25. Print postcards offering assistance to my neighbors, and leave them in the mailboxes on my street. I’d probably use something like this as a template.
  26. Make masks for hospitals. I haven’t yet done this, despite my sewing skills — mostly due to a lot of confusion about the right pattern, which hospitals would accept handmade masks, whether they actually help, etc. But a mask just for myself wouldn’t be a terrible idea, either.
  27. Identify some observations on iNaturalist.
  28. Repair NPC costuming for Madrigal 3. Some day larp season will resume. Some day…
  29. Work on my character concept for Cottington Woods 2. I have a rough idea of it, but it’s different enough from what I planned to do in CW1 that I need to look into the world background and write out a few new things.
  30. Work on costume for CW2. I need to look like a Russian babushka.
  31. Take a bath. I have a few nice bath bombs from Lush I need to use up!
  32. Brush off my resume. Right now I’m still gainfully employed, but every business is struggling right now, and it can’t hurt to be cautious.
  33. Work on my Secret Knitting Project.
  34. Check finances in Mint. I honestly haven’t even looked at this since late January, and our first trip to the emergency vet with Brianna. I honestly don’t want to think too hard about how much we spent on that!
  35. Make an extra payment toward debt. I guess this doesn’t really count as “not spending additional money.” But hey, it will save me money in the future?
  36. Join a MOOC (massively open online course).
  37. Make soap. I’ve had a melt & pour soap kit in my basement for yeeeeears, and I promised Matt that if I don’t use it up this year he can throw it out 😉
  38. Start a new lace knitting project with materials I have on hand. I have so much yarn. So much.
  39. Teach myself how to crochet. I’ve got yarn and time — seems like a decent use of both.
  40. Mend clothing that needs it.
  41. Scan boxes of nostalgia.
  42. Eat weird foods that EB sent me. This was in pursuit of one of my 101 goals to eat more foods off the Omnivore’s 100 list. So I now have chocolate-covered insects and nettle tea in my cabinet that I should probably consume at some point.
  43. Submit some of my short fiction or poetry to a market.
  44. Call an elected official about an issue I care about.
  45. Teach myself to play Go.
  46. Do a project out of one of my homesteading books, i.e. grapevine wreath.
  47. Take virtual tour of a museum, garden, or historic place.
  48. Write a poem. I do intend April to be my own NaPoWriMo, since it is National Poetry Month, and I’ll be celebrating by… well, at least trying to write a poem and read one poem a day. We’ll see how it goes.
  49. Meditate. Very important in this tough time. Relatedly, Calm, the meditation app I use, made a bunch of resources available for free during the pandemic.
  50. Play a board game with Matt. We’ve started a tour of our board game collection, where we attempt to play each one (or at least each one that plays well with two players!) So far we’ve played Carcassonne, Lost Cities, and Kingdom Builder, and he’s won all of them. It’s a good thing I like him so much 😉
A thoughtful portrait of Matt, thoroughly beating me at Lost Cities.
  1. Call or text/video chat with a friend.
  2. Finish and post a languishing blog post. GUYS I HAVE SO MANY. I can’t promise I’ll actually get to them, but maybe?
  3. Do a tarot reading.
  4. Visit an (outside) Atlas Obscura site. Somewhere I can actually practice social distancing!
  5. Look for Find a Grave requests in local cemeteries.
  6. Set up my dev environment for working on Intercode 2. This is the codebase behind the Intercon website. I’m not inclined to get too deeply involved in its development–I have a position on staff this year that has nothing to do with tech–but the tech stack is one I want to learn more about, and I wouldn’t mind being an emergency resource.
  7. Stream on Twitch. I haven’t streamed in months, and my ESO account in currently inactive, but I have tons of games (see above) that I could stream.
  8. Take a nap. Being in the middle of a global pandemic is sometimes exhausting, yo.
  9. Listen to a podcast. I do a lot of this while doing housework, or walking/running. Stuff to Blow Your Mind and Stuff You Missed in History Class (both of which I’m a long-time fan of) have been getting a lot of play lately, perhaps because they both released collections of older podcasts that I’ve been diving into.
  10. Record myself reading a Millay poem for Youtube. I started doing this! I began by recording these videos on my laptop–despite all my streaming equipment being connected to my desktop–because I was lacking space to save video files on that computer (see #73). But as it turns out, the requirements for streaming are very different than those for recording video, and my laptop might be my best tool after all…
“Lise Reads Millay: The Bean-Stalk.” YouTube thumbnail image from the last video I did.
  1. Clear some disk space on my desktop. I probably don’t need to keep a copy of every Skyrim mod ever, even if they do have an alarming habit of disappearing from the Nexus…
  2. Inventory board game collection. To assist with #62, of course 😉
  3. Learn how to edit video in iMovie (Mac) or Shotcut (PC). Right now I am just recording my Lise Reads Millay videos in one take and doing what minimal editing I can do in the Photo Booth app on iOS. I tried importing my video into iMovie and maybe editing out the worst of my ums and ahs…. yeah, I couldn’t even get that far. And I consider myself pretty tech savvy. As much as I recently railed against watching videos in order to learn stuff… this is complex enough that I need to watch some videos about editing videos 😉
  4. Clean out my email inbox–get to inbox zero. I don’t fetishize inbox zero like some productivity gurus do, but it certainly makes it easier to find important stuff.
  5. Do a bill reduction. I got this from the Simple Dollar list. I’m not sure what else I can reduce, but if nothing else, I can try to get my credit card to remove that $28 late fee because in the stress of the pandemic I was a day late paying my bill.
  6. Practice juggling. Another TSD-inspired addition, though their item was “learn to juggle.” I actually already know how to juggle, but I’m out of practice. And I have a Mad3 NPC who juggles, so I’d like to get better at it!
  7. Make a will. I mean, Matt and I don’t have kids or major assets except for our house, so there’s not a lot of question as to where stuff will end up when one of us dies. But as lots of people are thinking now, it’s worth doing.
  8. Do some boffer sparring with Matt. One day larp season will resume and we will be glad we prepared…
  9. Attend a virtual religious service. I wonder if the UU church I used to attend in Groton has one…
  10. Make homemade holiday gifts. Even just with what I have in my house, I could be making holiday gifts!
  11. Pet or play with the cats. They are already very put out that we are home all day every day; now I can also annoy them by petting them while they’re sleeping 😉
  12. Practice calligraphy. A fun, useful skill to have in larp! I have all the equipment, but I haven’t done it in years.
  13. Explore a blog I like.
  14. Go on a Wikipedia crawl.
  15. Play one of the Sherlock Holmes games with Matt. These are mystery/click adventure style games that Matt has in Steam; we have played them together before.
  16. Watch a Twitch streamer I like, and really participate in chat. A lot of times when I watch Twitch, it’s just something I have open in a tab while I do something else. But this is a much better way to really connect with a streamer.
  17. Put together a submission packet for Lioness. No, I haven’t finished edits between #24 and this bullet, but I will need to pull together a query letter and synopsis at some point, and begin researching agents. No reason I can’t start now.
  18. Brush my teeth. Boring, but my oral hygiene has a tendency to go out the window when I don’t have to leave the house for a few days.
  19. Dive deep on a quality YouTube series, i.e. Journey to the Microcosmos. Or War Stories, or Technique Critique. Less so Dr. Pimple Popper, though I do love her. And for the love of gourd, don’t read the comments.
  20. Co-watch a show/movie/video with someone. You can use apps like Kast or Netflix Party, or just time it yourself. I’ve been rewatching Monk with EB, since it’s all on Amazon Prime now.
  21. Give myself a manicure or pedicure. This is assuming I have any nail polish that’s still usable…
  22. Make a schedule. I dunno about you, but I do better when I have a schedule I feel beholden to. Rebel that I am, I don’t always stick with it — but I appreciate a schedule created with forethought that tells me where I should be at what time.
  23. Try one of the Zombies, Run! Home Front missions. ZR (mentioned earlier) has released a set of at-home exercises to do while sheltering in place. (I think they’re available with a free account, too). Despite my fortunate rural position, I’d still like to try these and see what they’re about, if only to have an option for bad weather days.
  24. Copy old fanfic from fanfiction.net to Archive of Our Own. I still have some old fics that are published on ff.net and nowhere else. They aren’t exactly my best work, having been published in the early 2000s, but seeing as the old fics I have moved over still get kudos and comments from time to time? They might give someone some enjoyment during this rough time.
  25. Sort through my indie perfume collection. God, I’ve been needing to do this forever.
  26. Make a new 101 Goals in 1,001 Days list. Mine ended in February, but given how much of a century the past three months have been, I haven’t had a chance to make a new one.
  27. Hold a virtual writing/coworking event. I’ve been doing these every Saturday and Sunday (barring other commitments–like I have any of those any more!) at 11am Eastern. Generally we chat for 15 minutes and then work quietly for 45 minutes, and repeat this 2-3 times. If you’d like to be involved, let me know!

I hope this gives you some ideas for how to keep busy and mentally healthy during this difficult time. Let me see your lists!

Adventures in Cat Parenthood

(This started as part of a weekly update, but life, and the length of this, got away from me).

“Felt regal; might delete this later, idk.”

Our cat Brianna — affectionally known as Bri, Bitch Cat, or Pampered Princess — became sick at the end of January. While I was attending an oh-so-exciting landowners’ meeting, Matt heard her fall, and went to find that she was wildly uncoordinated, with her head swinging back and forth, and was having trouble walking. He brought her to the emergency vet, where I joined him.

While at the vet, she was having short, 30-second episodes of her eyes going back and forth (nystagmus), and it was quite frightening. Bri already had some chronic health issues — stomatitis, asthma, arthritis — and we were worried that whatever had been causing the mobility problems in her back legs wasn’t arthritis after all, but something more serious.

When we finally saw the doctor, she had nothing good to tell us — Bri had a raging ear infection, was very underweight (10lbs on a Maine coon!), and had the beginning signs of diabetes. None of this explained the symptoms, though, which the doctor thought were neurological in nature. She gave us a list of veterinary neurologists we could consult with, but explained that it would take an MRI to confirm anything, and that given Bri’s age (she’s 14) and physical condition, it was probably not worth doing, as anything they could find was almost certain to be untreatable, and that it was dangerous to put a cat in that condition under anesthesia for an MRI. She asked us to consider euthanasia.

(I asked at the time if the ear infection could be the cause of her symptoms, but the doctor didn’t seem to think it presented like ear infections she’d seen before).

So with no hope (but some antibiotics for the ear infection), we went home, thinking we were about to lose our girl.

But the story has a happy ending — or at least, a happier middle; we haven’t reached the end yet!

Next we asked our vet friend Becky who runs Autumn Care & Crossings to take a look at Bri’s record. If nothing else, we thought she could tell us if Bri is ready for palliative care and advise us if we wanted an at-home euthanasia. She came back and said, hey, why don’t you look into the diabetes thing more seriously? It could explain things like the “plantigrade stance” that the ER vet had noted on her chart. In particular she told us to test her fructosamine, which — similar to A1C in humans — measures blood sugar over time.

We did the diabetes testing at our normal vet, who also was pretty dire in her outlook, too (“you may do all this testing and still not get an answer”), but ran the blood tests anyway. The one positive suggestion she made, though, was that we at at least have a consult with a vet neurologist, as they could tell us better whether or not an MRI was worth pursuing.

So I made an appointment at Mass Veterinary Referral Hospital in Woburn, MA for Brianna, as they were the ones who could get us in the fastest: that Saturday. That Friday we found out that Bri’s diabetes tests were normal — so much for that as a solution — and then on Saturday we went to see Dr. Troxel at MVRH.

I liked Dr. Troxel — I was worried I wouldn’t, because I was warned that he could be brusque or business-like. I can definitely see that, as he’s not the warmest guy I’ve ever met. But he was deeply committed to this case right from the start, and that made me trust him. I also liked his responses to the questions I’d asked him: if he thought we were looking at end of life (“maybe, but I’m not ready to give up yet”) and what he would do if this were his cat (“Well, I gave my 19 year old cat an MRI… but I also have the employee discount”).

He also emphasized that not everything we could find on an MRI was a death sentence; there were some things that could be treated and give her “long-term quality of life.” I’ll basically do anything for my cats if it improves their quality of life, so that encouraged me to move ahead.

I’m SO glad we got that MRI, because it turned out: there’s probably nothing wrong with her brain! Even though her external ear infection had cleared up, the MRI revealed that she still has a raging inner ear infection, which Dr. Troxel told us would “absolutely” cause all the symptoms he was seeing. Still, was concerned due to two things — a bit of a contrast shadow he saw on the brain stem, which could either be an artifact, or a sign of infection in the brain, and a growth (that didn’t look cancerous) on her soft palate on the same side as her ear infection. He suspects that the growth may play a part in the ear infection; it’s near where the eustachian tube drains into the mouth, and it may be keeping her ears from draining properly. Given the stomatitis, especially in the back of her mouth, it’s not surprising that there’s an overgrowth of tissue back there.

After the MRI, while Bri was still under anesthesia, we gave the green light to do a spinal tap (to make sure there was no infection), and do a retroflex endoscopy (to see what the growth on her palate might be). That… didn’t so much happen. Brianna apparently stopped breathing on her own before they could start the procedures, and they had to resuscitate her and bring her out of anesthesia. (I was interested to learn they use naloxone for this — the same thing human medics use to reverse overdoses). I had about ten seconds of panic while Dr. Troxel was explaining this — he had to stop and say, “it’s all right, she’s fine now!” because I was afraid he was about to tell us she had died under anesthesia.

So further testing is off, at least for now, and Brianna had to stay in the hospital that weekend.

When Matt visited her at MVRH during her stay, they brought her out in this stroller. Behold, a queen’s palanquin!

We learned some interesting things from the other tests they did: an abdominal ultrasound and an echocardiogram. The echo revealed that her heart murmur (which we already knew about; it varied between stage 2 to stage 4 depending on when and who was listening) was due to mitral valve disorder, which is unsurprising. Nothing immediately pressing there, but they want us to follow up with their vet cardiologist, Dr. Sosa, in 4-6 months. No signs of hypertrophy, though, which is good — hypertrophic cardiomyopathy is a common problem in Maine coons. (I seem to recall that all my cats have had a negative genetic test for HCM, though).

The abdominal ultrasound revealed some problems along her biliary tree, i.e. the liver, pancreas, and gall bladder. She had signs of chronic pancreatitis, benign liver cysts plus signs of cholangiohepatitis, and sludge in her gall bladder. All of this would explain her weight loss and lack of appetite! All of this is treatable with medication, though. They were concerned, given this, with the combination of conditions known as feline triaditis, and were doing blood tests for inflammatory bowel disease (cobalamine and folate), as that would complete the trifecta.

So in total, at MVRH we learned that Bri is still a very sick kitty, but that she can be treated! They put her on a more broad-spectrum antibiotic (clindamycin in addition to the Orbax they gave us at the e-vet) and reupped her Atopica (cyclosporine: an immunosuppressant which she takes for her stomatitis… may also help the liver if it’s an autoimmune condition there). When we took her home on Monday, they also gave us ursodiol from their compounding pharmacy, which is the same drugs humans take for similar conditions. We’ve also resumed the Flovent for her asthma, which had been on an as-needed basis before that. But if it will open up her airways, that’s to the good.

Her vestibular issues seemed a lot worse when we first brought her home, but after an hour in the car from Woburn, that’s unsurprising. And those sorts of issues are notorious for waxing and waning like that. She recovered quickly from that spell, though.

Now, she’s doing… astonishingly well, for a cat that we had nearly given up on. We got a baby scale to keep an eye on her weight (thanks, Buy Nothing group!), and her weight seems to have stabilized. She’s getting around easier, she definitely seems more alert, she’s been jumping into Matt’s lap and onto the chairs, and she can be left alone for short periods of time. She’s still confined to kitty jail (the computer room), though (Matt’s been sleeping on a futon on the floor with her). We’re less worried now about her falling than we are about her not getting her share of food at meal times, with two other cats in the house. So we’re probably going to keep her confined until she puts on more weight.

That was originally my whole post, but an update with even better news: we had a followup with Dr. Troxel and with Dr. Phillips (the internist) yesterday. Dr. Troxel did his usual examination and seemed happy with her progress — her walk is less ataxic and she definitely knows where her feet are. We’re going to keep her on the clindamycin for as long as she can tolerate — probably four more weeks. He says ideally they would do more imaging to make sure everything is clearing up, but it’s not necessary, and he preferred to go with the clinical signs.

Before we met with Dr. Phillips, we received news that Bri’s folate levels were low, which suggests IBD (and thus triaditis) after all. Basically, though, we’re already treating her for that with the ursodiol and the Atopica she was already taking for stomatitis. (This kitty has all the autoimmune disorders!) We should keep an eye out for any acute symptoms, however, there can be flareups that need to be treated with fluids and antibiotics.

Dr. Phillips also added a couple of drugs to Brianna’s routine: a transdermal appetite stimulant, to hopefully encourage her to put on more pounds, and a probiotic, to help with the side effects of the long-term antibiotics.

(I liked her a lot, too — all the vets I’ve met at MVRH are great! I wish Matt had given her more of a chance to talk, but he was very eager to share all the details of Bri’s daily routine, meds, behavior, etc).

Other than that, no followup appointments with either doctor, but we will need to do some followup bloodwork, and keep an eye out for any acute symptoms. Neither doctor mentioned trying the scope or the spinal tap again, and I’m hopeful that won’t be necessary.

So… that’s the emotional rollercoaster I’ve been on for the past month or so — or at least one of them. How are you?

2020 Prospective

A slight misquote of Terry Pratchett: “She couldn’t be a prince, and she’d never be a princess, and she didn’t want to be a woodcutter, so she’d be a witch and know things.”

It’s the first year of the new decade, and what do I want to do with it — the year I turn forty?

The theme this year is going to be “green witch.”

… when I mentioned this goal to my friend Kim, their first question was, “Are you pagan?”

So… that’s a tough question. I don’t really want to turn this into a forum on my religious beliefs, but I will say that I have always been curious about pagan nature-based religions, like Wicca or druidry. For someone who grew up roaming through the woods, I find staying in touch with the natural world and honoring the course of the seasons very compelling. But whenever I’ve dug deeper, it has always felt disingenuous to fixate on the gods and practices of a land I have no real connection to.

(Plus sometimes pagan religions can shade in the woo direction too easily. I want an evidence-based way of being in the world, and nature spirituality; is that so much to ask?)

All of this tells you that I’m not going to be embracing my inner pagan. So what is this year about?

“Green” has a few meanings here, and I’ve definitely embraced the ambiguity of the term. I chose it for both “the natural world” and “environmentalism” meanings, with a smidge of “town green,” i.e. the center of a town.

As for how I mean “witch,” I’m drawing from a few fictional sources: Naomi Novik’s book Uprooted, Terry Pratchett’s Discworld witches, and the witches of the larp I’ll be playing starting this year, Cottington Woods 2. (And I’ll even be playing a witch!) I am very interested in the image of a witch as a crone, as a wise woman, as an advisor. Someone who may choose to live in solitude, but is deeply rooted in place, and deeply connected to the people of that place.

With that in mind, I’ve set down a few precepts for the year.

A witch stays in touch with the natural world.

“The witch knows nothing in this world is supernatural. It is all natural.”

Laurie Cabot

I have a love/hate relationship with the natural world. It’s both a sandbox of infinite curiosity and also sometimes deeply unpleasant. Ticks, poison ivy, mosquitos, heat and cold, and the ceaseless movement of wind and air care not for your photo opportunities and learning experiences. Like a narcissist, the natural world can’t really love you back; the best it can offer is indifference.

Which… is a lesson in and of itself, don’t you think? “Loving impossible things” sounds like the title of a course on being human.

To this end, there are a few things I want to try this year:

1) I want to plant a garden. And actually tend it, and harvest stuff from it. Nothing makes you aware of the fractiousness of nature like planting a garden! I have lots of decorative plants and shrubs around my property already, so here I more mean edible plants, like vegetables or herbs. I’ve had gardens in the past, and they’ve all suffered to varying degrees from my neglect. I’m ready to give this another try.

2) I want to forage some wild foods. Not as dangerous as some folks seem to think, especially if you stay away from anything ambiguous. (Like nightshades). Morel mushrooms are trivially easy to identify and tell apart from anything poisonous. Elderberries, too. And I’m fascinated by this recipe for elderberry mead that EB sent me…

3) I want to take a nature walk once a month. Not my normal walk/run, but a journey where the goal is to observe. I want to memorialize these observations in words or in art. Once a month, I think, is reasonable enough to fit into my busy schedule, while still observing the passage of the seasons.

Which brings me to my next point…

A witch honors the cycle of the year.

“The moon has awoken with the sleep of the sun. The light has been broken, the spell has begun.”

Midgard Morningstar

By this I mean both the natural phenomenon, like full moons, equinoxes, and solstices, as well as human celebrations, like Christmas and the birthdays of important people in my life.

Observing holidays is a way of slowing down the passage of time, by making certain days feel special and less like every other day. This encompasses everything from decorations, traditions, gifts, etc.

Right now the way I celebrate the holidays is… non-existent, really. Christmas/Yule is really the only one I have any sort of observance of, which is usually putting up a tree and watching certain Christmas movies. (Muppet Christmas Carol and Scrooged, of course). But I usually do nothing for my birthday or my husband’s birthday, and nothing for any other holiday.

I’d like to change this. Even if it’s just putting out a pumpkin for Halloween, or getting up at dawn on the summer solstice, or going out to dinner on my birthday. These celebrations don’t have to correspond to any faith; nor do they have to be unique to me.

I just want to signpost the fact that time is passing.

A witch lives hyperlocally.

“We were of the valley. Born in the valley, of families planted too deep to leave even when they knew their daughter might be taken; raised in the valley, drinking of whatever power also fed the Wood.”

Naomi Novik, Uprooted

I live in a small town, but I often don’t feel a part of it. I don’t have kids in school here, I don’t go to town meetings, I work in a town 40 miles away from it, and I do much of my shopping in other towns. (To be fair, the latter is largely because it’s so small I have to go to surrounding towns for many needs).

The term “hyper-local” is one that I believe was coined by the Buy Nothing Project — at least, that’s how I heard of it. I heard Mrs. Frugalwoods talking about her Buy Nothing group, where she could donate and receive items in a gift economy model, and that sounded like something I could get behind.

(It sounded very similar to Freecycle, actually, but the rules on Freecycle are much more fast and loose).

I looked into it, but at the time there was no group for my town. I could have joined one a bordering town’s group, but you can only belong to one BN group, and doing so sorta defeated the whole “hyper-local” mandate of the movement.

As part of this theme, I decided I was going to start a Buy Nothing group in my own town. But then a nice member of my community decided to start one like… a week ago, so all I had to do was join it!

There’s more to living hyperlocally than Buy Nothing, of course. (I am, at best, only middle-to-low-buy). It’s making a choice to support local businesses and creators instead of going to the big box store. It’s knowing you can depend on your neighbors. It’s thinking globally, but acting locally.

Some specific hyperlocal things I want to do this year:

1) Attend a town meeting. Our local government is town meeting-based, which means that lots of important decisions are made there — like the plastic bag ban (which I have mixed feelings about), or the decision to ban all marijuana-based businesses from town (which made me livid. Why are you turning down income??) Have I ever attended one of these? I have not, dear reader. I should remedy this.

On a related note, my landowners’ association doesn’t have regular meetings, but when they do, I should attend. Of course I say this, and then they schedule a three-hour meeting to talk about finances on a Saturday where I have a bajillion other, actually fun things I could be doing, so…

2) Do more local shopping. Again, since it’s a small town I can’t find everything here, but I can generally find most things within the tri-city area.

Food is the biggest challenge here, but also the biggest opportunity, depending greatly on season. We have lots of farms in our town, and even more in the surrounding area, but we are also in USDA zone 5, so not everything is available all year. Over the thirteen years I’ve lived here I’ve gotten better at identifying the different local businesses I can frequent, so it’s really just a question of setting up routines around going there instead of the Hannaford.

(And, I mean, I don’t object to shopping at Hannaford; it does support the local economy in some ways. Just not as many).

3) Improve my relationship with my neighbors. This comes back to the Buy Nothing ethos, which states that “the true wealth is the web of connections formed between people who are real-life neighbors.”

Regrettably I don’t have the best relationship with my neighbors. When I moved here, I was new to owning a house, country living was difficult and confusing, and forging relationships with people was at the bottom of my to-do list. I think some of my neighbors took that personally, and I often feel like I’m still paying the penalty for that.

But having a working relationship with your neighbors is just unquestionably a better way to live. If I got along with my neighbors, I might be able to depend on them to watch my cats when I travel, or borrow tools from them, or let me use their shower when the power is out (we have a well, so no power = no water; my closest neighbors have a generator, though). And vice versa, of course.

A witch is not wasteful.

Witches… get their power directly from the earth, which asks for nothing but a sense of balance in return. Yet still, because of their tie to the earth, witches tend to try and protect it, treating others who squander the world’s resources as foolish, and seeking sometimes to undo them.

Cottington Woods rulebook, “Witchery Skills”

This point ties into both environmentalism and frugality — two themes that often (but not always) go hand in hand. A witch, as I said, is tied to place; stewardship of that place depends on preserving its resources, whether that be funds or forests. It also ties into self-reliance, which was the underpinning of my last two years’ themes.

To that end, this year I’d like to…

1) Complete Uber Frugal Month challenges in January and June. Some of you may recall I once had a frugality blog, and it’s something I still care a great deal about — hence why I’m currently doing the Frugalwoods’ Uber Frugal Month. (At least, I am. I wouldn’t say Matt has 100% bought into the challenge). I’d like to do this again when it comes up in June.

2) Read The Zero Waste Home, and incorporate at least one of the tips into my life. I doubt I’m ever going to be anywhere close to “zero waste” — just like I doubt I’m ever going to be “no buy” — but that doesn’t mean I can’t make improvements in this area. And while I’m sure there are many good books about home environmentalism out there, this is one I happen to know about, so I figure it’s a decent place to start.

3) Pay off my student loan and Matt’s car loan. We’re pretty close, and by my calculations we can finish it off this year.

A witch knows things.

She couldn’t be the prince, and she’d never be a princess, and she didn’t want to be a woodcutter, so she’d be the witch and know things, just like Granny Aching—”

Terry Pratchett

To me this precept is all about intellectual curiosity, with a local focus. Intellectual curiosity comes naturally to me, so I anticipate this portion being the most fun part.

Towards this sub-theme, I want to…

1) Join the “friends of the town library.” I’ve been wanting to do this for a while, but they don’t make it easy — you have to print a form off their website and bring it in with a check. So much for living in the future! But I do really love our library and make a ton of use of it, so I feel this would be a good way for me to give back.

Relatedly, I want to attend a program at the local library. I keep wanting to do this, but again, they don’t make it easy. Since the library closes at 8pm on weekdays, the place is usually about to close up when I’m getting back into town at 7pm or 7:30pm. I think I can make this work with a little more planning, however.

3) Visit a few new-to-me local parks, attractions, hiking trails, and businesses. I’ll start by coming up with a list of places I’d like to try!

I think that should keep me busy for at least another year!

Weekly Update: January 14, 2020

It’s been a while, hasn’t it, friends? I posted my 2019 retrospective last week, but before that, I haven’t posted since early November.

And it’s not because I haven’t had anything to write — quite the opposite! November and December were a whirlwind of events, and I haven’t had the time to process them, let alone document them. (As much as I would like to!)

You may have seen some of what’s been going on in my life if you’ve been on Facebook or Twitter, but I’m trying not to rely on them as a source of recording memories. (They do make it so very easy, though, don’t they?)

What my “Window” menu in TextMate looks like right now: “untitled” drafts 2, 3, 4, 5, 5, and 5.

Beside writing blog posts I never finish or post, what have I been up to lately? Let’s see…

Frugalwoods’ Uber Frugal Month

Remember how I read Meet the Frugalwoods back in November? Well, every January and June, Thames/Mrs. Frugalwoods runs her “Uber Frugal Month,” where she sends an email every day guiding you through a specific frugal step.

I decided to try it this January. As I said elseweb, after the blur of spending that was November/December, I needed something that would put me back on track. I wanted to get off the treadmill of hedonic adaptation, cut back on some expenses, and work more aggressively towards my goals.

So far the big things I’ve been doing are:

  • Bringing my lunch to work every day. And trying to clear out the contents of our cupboard, in the process.
  • Finding less expensive ways to meet with my friends. Ask EB about our charming car picnic in the parking lot of Wells State Park!
  • Waiting 72 hours before making any non-essential purchases.
  • Checking my finances daily-ish. I’ve decided to get back to using Mint for tracking finances. It’s improved a great deal over when I first started using it, so that it’s to the point where it’s easy enough for me to use that I don’t avoid it.
A very boring picture of my leftovers lunch.

The big obstacles this month have been:

  • I had to buy my plane tickets and accommodations for the weekend-long game in the UK next month. I should have expected that expense, really. I did get a tidy little discount on my flight by trading in some Avios (the BA rewards currency), at least.
  • It’s Matt’s birthday, and he wanted one thing for his birthday: a 3D printer. How could I say no to something that clearly will give him a great deal of happiness? And anyway, we have enough Amazon rewards points built up that we can take the entire cost of it as a statement credit, so that’s not bad!

Despite these obstacles, I’m hoping that we will at least save a few hundred bucks, which I intend to sock away towards debt. All our debt is “good debt,” but debt is still the prison I seek to escape in my search for financial independence.

Reading

I finally finished King of Scars. (Why do all my book notes start with “finally finished?” I’m not actually a slow reader, but I am a very distracted reader!)

I liked it a lot, better than many books I read, but I felt it was on the weaker side for Bardugo’s work. One of my big complaints is hugely spoilery, and so I won’t mention it here (more on FB), but my other complaints are:

The pacing. My god, this book is leisurely paced for 90% of it, and then WHAM the last 10% is just chock full of action and Important Stuff Happening. There was so much information packed into it that my initial reaction was “I AM SO CONFUSED.” I did sort it out, eventually, but that disorientation seriously ruined the impact of the book’s final chapters for me.

It’s not really Nikolai’s book, is it? We learn a little bit more about him — I liked the story involving his childhood friendship with commoner Dominik — but honestly, it is WAY more about Zoya. Might as well call it “Queen of Ice” and be done with it. (Don’t get me wrong — Zoya is beautifully painted and I enjoyed every minute with her).

Nina’s chapters occupy a very weird spot in the narrative. They are important, but it honestly feels like a different book? It was very jarring to go from “oh Zoya and Nikolai are in danger in Kribirsk” to “let’s watch Nina try to keep springmaidens out of trouble and bicker with Adrik.” That said, her ending was much easier to grok, and thus much more satisfying, than the resolution of the main political and metaphysical plots.

Overall, it was good to be back in this world, but I had higher expectations after the virtuoso performance that was Six of Crows.

On the nonfiction front, I’ve just started listening to Anne Helen Peterson’s The Burnout Generation. You may recall that her blog post — the genesis of this book — inspired me in last year’s theme. I don’t have too much to say about the book yet, except I haven’t heard anything that really surprised me.

Otherwise? I’m still plodding my way through Joshi’s biography of Lovecraft. My library hold for Holly Black’s new book, The Queen of Nothing, just came in, so I may have to read that next. I was also considering picking up Terry Pratchett’s Equal Rites, the first of the Witches subseries of Discworld books. (For reasons that will make more sense once you see my 2020 prospective post!)

ADHD diagnosis

After many trials, I finally got my diagnosis of ADHD in the last days of 2019. (ADHD-C, Combined type, which means I am both inattentive and hyperactive. Yay?)

I was somewhat surprised by the type of ADHD I was diagnosed with. My conversation with the psychologist after the testing made me think I leaned way more in the inattentive direction, i.e. my inattentive symptoms are way more noticeable to the other people in my life who rated me, and I performed more like inattentive type on the test of vigilance and focus that they gave me. But my self-report of hyperactive/impulsive symptoms counts for something, too.

Frustratingly, I haven’t actually been able to try medication yet, because when I called the psychiatrist I had intended to see, I was informed they weren’t doing new patient intakes at that time (despite the fact that when I started the process, they had been). But they put me on a waitlist, and just today I heard back from them. There has been a cancellation, and would I be able to come in to see Dr. Rezai next week? I SURE WOULD.

Still hesitant, but hopeful, in moving ahead. What if stimulant medication doesn’t work for me, or the side effects are too troublesome? Or, what if it works astonishingly well, but then I realize I’ve wasted nearly forty years going undiagnosed? EVERYTHING CAN GO WROOOOONG.

One comfort is there are so many resources out there for ADHD, including women with ADHD, or adult women with ADHD. This week I’ve really been enjoying(?) ADHD Alien’s comics. This one is the latest in “ADHD material so honest it makes it me cry.”

Is that it, Lise?

For now, yes. I hope to post my 2020 prospective some time this week, and I’m hoping to get those other languishing blog posts out into the world sometime… this… year?

But for the moment: I en’t dead yet.

2019 Retrospective

For the first time in a long time, this post doesn’t feel like an apology. This was a great year, and I can’t help but think that my theme for 2019 — emotional homesteading — is why.

As outlined in that post, my emotional homesteading plan had six main points. Let’s go over those first, and then I’ll have some things to say about what else happened this year. I might even take some time to reflect on the entire decade!

Emotional Homesteading

1) Meditation and mindfulness practice

This year I forged a regular meditation practice, with some help from the Calm app, which I love. I only started using Calm in May, but from the records it keeps, I estimate I meditate two out of three days, for an average of 10-12 minutes each time.

This habit has helped me to stay on an even keel despite some rough seas this year. Meditation really is a practice, like I wrote — I don’t notice an affect my mood and overall happiness if I skip one day, or a few days. But eventually it eats away at that peaceful refuge behind a waterfall that I’ve worked so hard to build. In that way, it’s a little like the sleep deprivation caused by sleep apnea.

2) Boundaries

As I wrote in my original post, boundaries are about knowing the difference between what I want and what other people want. In that vein I wanted to ask “who wants this?” before taking on a new activity.

I also wanted to be more aware that what I want in the moment may be very different from my long-term needs and wants.

This is always hard to quantify, but I think I did okay. One example I can think of off the top of my head is: I turned down Matt’s plan to run a 10k before Consequences next year, because I knew that running it with other people would bring out the ugly competitive part of myself.

Relatedly, I know there were some things I wanted to do — pretty sure they were what I wanted to do, too — that I passed up because I knew it would be too much for me. (Like declining to play Dammerung larp, which looked fascinating to me, but was super far away, in PA, and would have required a high quality of kit).

It’s still tough for me to anticipate how Lise-of-the-moment will respond to a commitment that Lise-of-Christmas-Past has made, but I’m developing some heuristics. Like: don’t schedule things on the Thursday before a larp, or maybe don’t schedule plans in December when you need to prepare to host Christmas for your family, or if you can, take time off to decompress after larps.

3) Self-care

When I wrote about self-care in the prospective, I didn’t use this fabulous quote, which really gets to the heart of what self-care means to me:

True self-care is not salt baths and chocolate cake, it is making the choice to build a life you don’t need to regularly escape from.

Brianna Wiest, Thought Catalog

You know I love my escapism! But escapism can be a symptom of something wounded in me.

This past week was tough for me, for Secret Reasons. So it is perhaps not surprising that I chose to start my Saturday with a session of Craft the World, the silly dwarf building game I’ve been playing lately. And I’m at peace with the fact that that’s the best I could do at that moment. Rest is as important to the self-care journey as anything else.

That said, it can be hard sometimes to tell the difference between the need for rest, and plain ol’ experiential avoidance. I need new experiences, but I also need solitude. This quote from poet May Sarton’s journal sums up this tension:

I am here alone for the first time weeks, to take up my ‘real’ life again, at last. That is what is strange — that friends, even passionate love, are not my real life unless there is time alone in which to explore and to discover what is happening or has happened. Without the interruptions, nourishing and maddening, this life would become arid. Yet I taste it fully only when I am alone…

May Sarton

I am still learning this balance. This year, I think I pushed it a little, trying to see where my limits lay. And in the process I had some fabulous adventures! I also learned that I’m actually more of an ambivert than I originally thought, but when my depression is bad, I definitely act more like an introvert.

At the end of the day, I feel I showed strongly in terms of self-care this year, forging the sort of life I don’t have to escape from.

First of all, I got back to walking/running in a gentler way. (I actually meant to run a race, for a charity I cared about, and not with anyone I knew — but I came down with a bad cold and couldn’t!) My fitness showed when I visited Bath in November, and was able to walk the six-mile Skyline trail and not be much the worse for wear (except covered in mud).

Then, I went through the process of getting diagnosed with ADHD, and finally got my diagnosis right at the end of December. (Combined type). I still need to get treatment, which is a challenge all its own! (Not a lot of psychiatrists in our area that are taking new patients).

Oh, and I took some baths in my new bathtub 😉

4) Simplicity and minimalism

I did okay in this area. I did a few “declutter bursts,” where you get rid of 100 items in an hour. (Honestly, counting the items was the hardest part). Plus near the end of the year Matt got into the spirit of decluttering and cleaning the house — partially because his parents were visiting, partially because he wanted to be able to work in the sewing room again — and we got rid of a LOT of stuff, including books, clothes, gadgets, and lots of unnecessary paper.

I also re-read Thoreau’s Walden this year, as promised. In the process I remembered that really everything good in Walden is in the first and last chapters, and the middle is soggy and tedious.

I did not succeed in going through my collection of indie perfumes, mostly because I boggle at what to do with all of them.

5) Creativity

I’m pretty happy with where I landed with this goal. As promised, I did get back to writing — a.k.a. editing Lioness — but not in any sort of hurried way. I’m still working my way through it. It continues to be incredibly challenging, and I keep taking long breaks and then forgetting everything I wrote and then having to re-read.

Other things I created this year:

I also made some progress on the Neverending Cross-stitch Project, and did some sketching as Melusina. I began work on getting this antique quilt I own ready to hang on the wall, but faced some obstacles with how damaged it was, and needing to repair it.

I was really drawn this year towards the advice espoused in Cal Newport’s book Digital Minimalism: fix or create something every week. (I’m paraphrasing; I don’t have the book in front of me right now).

6) Connection

I feel mostly satisfied here, although there are some further steps I could have taken.

I definitely was more involved with family — I went out to my Uncle Joe’s house twice for family events, and I hosted a visit from Matt’s parents, and my dad. I went to visit my mom a couple of times, in addition to our annual trip to Stratford, and I also went camping with my dad.

I sent out holiday cards this year! And I’m getting in the habit of sending out postcards regularly. (Let me know if you’d like to be on the postcard/holiday card list. Everyone likes getting mail, right?)

One area I would like to expand: I’ve realized I have a need for what my pal EB terms “intimate friendships.” i.e. emotionally deep, connective, platonic relationships. (Funnily enough, exactly the sort of friendship I have with EB!) I’ve identified a few people I’d like to try to forge these with, but I was shy about reaching out. I hope to do so in 2020.

Overall

Living with the theme of “emotional homesteading” worked well for me. You may recall I was worried that, given the number of goals, and the vastness of the mandate, I might judge myself too harshly when I got to the end of the year. But on the contrary, it all feels like a win to me. Maybe I have learned to be more gentle with myself.

I’m happy with what I learned, what I did, and who I was in 2019.

I’m happy.

Other stuff wot I did in 2019

Many of these things were in fulfillment of my famous 101 Goals in 1,001 Days list, the period of which ends in February. At 45 items completed out of 101, I’ve knocked the socks off every other time I’ve done this list. If nothing else, I’ve gotten better at setting achievable goals and following through with them!

So this year I…

  • Read 26 books
  • Visited Bath, England
  • Attended Lucky Consequences in Christchurch, England
  • Attended the UK Freeforms run of Torch of Freedom in Retford, England
  • Did an “authors and American revolution” tour of historic Lexington and Concord, MA
  • Celebrated my birthday in New York City
  • Made an impromptu trip to Cape Cod, and rolled around in the ocean surf at Race Point Beach
  • Went rock-climbing
  • Increased my retirement account balance by 66% over 2017
  • Built a bridge for the stream 🙂 Although it got washed away…
  • Attended the Stratford Festival with my mom
  • Went camping with my dad, and visited Ausable Chasm
  • Planned and executed a “Skyrim dinner” with Alison
  • Painted and decorated the guest bedroom
  • Completed our bathroom remodel (okay, my part in this was merely organizational, but STILL…)
  • Took a knife skills class
  • Played in four theater-style larps
  • NPCed five Madrigal 3 events
  • PCed four Shadowvale events
  • Read Jane Eyre, which I’ve been meaning to read since forever
  • Donated blood, at great personal discomfort
  • Attended the Big E
  • Went peach-picking
  • Had a picnic on an island in our lake
  • Hiked Mount Wachusett
  • Slept out under the stars
  • Visited New Haven, CT and ate a hamburger at the famous Louis’ Lunch
  • Visited 30 (!) new-to-me Atlas Obscura sites
  • Attended two beer festivals, and visited a number of microbreweries
  • Set up a new compost bin

The toll of the decade

At the New Year’s Eve party I attended, I was trying to figure out where I was physically ten years ago, on December 31st, 2009. I couldn’t recall precisely — maybe at Chad and Amanda’s New Year’s Eve party, when they were still holding them?– but it brought up a whole storm of memories about my life at that time.

In the past decade I…

Changed careers. I’d lost my job in May of 2009, and used it as an opportunity to change careers, from statistics/research analysis to front-end web development. For about a year I pursued a number of part-time gigs in both fields. I was probably just beginning my contract as a full-stack developer at Nowspeed around the time of that poorly-remembered NYE party. In June of 2010 I would start my job as a junior front-end developer at IDG, where I still am today — though a lot more senior now!

(Say what you will about the decade, but I definitely know a lot more about JavaScript than I did ten years ago 😉 )

Wrote a theater-style larp! (Cracks in the Orb, which I mostly won’t run any more, because Reasons)

Got into boffer larp. NPCed my first one, then PCed one, then staffed one for a time. Because I didn’t have enough expensive hobbies, apparently!

Wrote a couple of novels: Gods and Fathers, my last trunked novel, and well as Lioness, which, it seems, I will never be finished editing!

Attended Viable Paradise 17, an SFF writing workshop, and thus joined a community of amazing, brilliant people.

Got serious about my health. I sought treatment for a bunch of chronic health conditions — PCOS, sleep apnea, and my familial high cholesterol — and I am happier for it.

Started running. I’m the most casual of casual runners, but I’m still doin’ it!

Fired my shitty therapist, and got a new, awesome one.

Broke my left ankle.

Had cubital tunnel release surgery after my left hand went numb suddenly.

Traveled to England eight times (!), and Canada three? four? times.

Paid off our second mortgage.

Made some major renovations to the house.

Lost my cat Yamamaya to kidney disease, and thus mourned the first death of a pet as an adult.

Watched my mother become sick with a chronic lung disease, and was powerless to help.

Went to many, many weddings, was an attendant in four (!), and blessedly attended zero funerals.

Drove the same car (a 2007 Yaris) for most of that time. It’s still going strong, at thirteen years and 230k miles!

Did… four? 101 Goals in 1001 Days challenges. I’m on track for this to be the best challenge yet, in terms of number of goals completed.

Overall? I think I’m much happier than I was back then, so despite the trash fire of a world we live in today, it was a good decade for me.

Let’s do this again in ten years’ time.

The last photo of the decade: some pfantastic pfeffernüsse. Or at least the last picture I took. (Otherwise it would be a picture of Matt’s butt in tight Regency era trousers, but while that would please me, I doubt he would like it very much).

Weekly Update: November 18, 2019

Winter cleaning

In preparation for leaving for England + Matt’s family visiting for the holidays, we’ve launched into a massive declutter of the house.

Eventually we would like the basement craft areas to be useable again, but primarily we just wanted to be able to find what we needed to pack, and to get the guest bedroom back in a state to host guests.

The big task with the first item was cleaning up our basement costume room, which was in a horrid state. How bad? Let’s just say we had to remove the remains of a dead snake.

As for the guest bedroom, it wasn’t too bad, but we needed to rehang the track lighting, which I’d removed in order to paint the room. We were able to finally hang the beautiful Japanese screen that belongs in there, too.

In the process I also got rid of a fuckton of books, and Matt cleared out a ton of clothes.

I felt a little bad dropping all that stuff off at the Savers — especially seeing stuff I paid Actual Cashdollars for sitting in the rain — but I also breathe a tremendous sigh of relief when I enter my home office. So it’s a price I’m willing to pay.

A mostly organized sunroom, with cleared table, neatly stacked board games, and all our larp gear packed away.

New phone, who dis?

Thanks to Matt smashing his iPhone 7 on the brick floor of the mudroom, we both got new phones this weekend. While my phone (an iPhone 6) was still functional, and didn’t strictly need to be upgraded, the battery was on its way out (as witnessed by it randomly turning off in the middle of a run earlier that day).

In the interest of being somewhat frugal, we opted for the iPhone XR, a slightly older model of iPhone. There was a slight hiccup when my phone somehow didn’t get activated while I was at the Verizon store, but soon I was up and running.

And it’s a big adjustment from the 6 to an XR! Face ID, and the lack of a Home button, are some of the biggest changes. There’s also no headphone jack, but there are adapters I can use, and I have finally found some Bluetooth earbuds that will actually stay in my ears when I run.

Fun fact: Face ID will not work while wearing a CPAP mask. I suppose that cuts into my habit of checking my phone while still in bed.

I also haven’t installed Facebook yet on my new phone. We’ll see if I want it while I’m traveling…

One challenge we’re having is that we still only have one Apple ID between our two phones, and that is becoming more and more of a challenge with each version of iOS. Clearly they want us to have two separate IDs and use Family Sharing, but we haven’t set that up yet. I’ve already had to create a separate Apple ID for Game Center just to play TES: Blades on our iPad, as all of Matt’s progress in Blades was tied to my Apple ID. I don’t even think he has an Apple ID of his own, so this will require some thought. But that’s a “when we get back from England” problem.

Speaking of which…

England!

We’re leaving this week for our semi-annual trip to Consequences (the UK theater-style larp con) plus bonus UK tourism. This year after the con we’ll be returning briefly to London to see the Tutankhamun exhibit at the Saatchi Gallery, and then we’ll be taking the train to Bath, where we’ll spend the rest of the week. We plan to see sights like the Roman Baths, Bath Abbey, the Fashion Museum, and the Jane Austen Centre, hit some Atlas Obscura sites (like Pulteney Weir and the Sham Castle), walk the six-mile Bath Skyline trail, and visit the Thermae Spa. Along the way I hope to have plenty of teas, sample some local specialties (Sally Lunns! Bath Spa Water! Gin from the Bath Gin Company! ), and maybe do some holiday shopping. (Baggage space permitting).

Reading

I finished reading Naomi Novik’s Black Powder War, the third Temeraire book. It was solidly meh. The big problem I have with this book is there’s not so much a “plot” as a “series of things that happens in a sequential order.” It has, as my writing teachers would say, no through-line; nothing that carries you through to the end. And the end, when it arrives, takes you by surprise, because it’s not clear what the promise of the book is and whether or not it’s been fulfilled.

But, you know, it’s at least well-written, and I enjoy spending time with Laurence and Temeraire.

I’ve begun listening to King of Scars, by Leigh Bardugo, which is her latest work in the world of the Grisha trilogy and the Six of Crows duology. This one, the first of another duo, focuses on Nikolai Lantsov, the new king of Ravka after the civil war. He has to deal with the politics of a reunited country, the consequences of everything that happened in the previous five novels, and some magical weirdness. Fun times!

I expected this book to tie more closely to the Grisha books than it did Six of Crows, taking place, as it — mostly — does in Ravka. But there’s actually a surprising amount that ties back to the duology. We’re still dealing with the consequences of the magic-enhancing drug that was discovered in the SoC books, and occasionally Nikolai will drop references to Ketterdam and a certain master thief he knows there. In addition, we get a viewpoint from Nina (a viewpoint character in SoC), rescuing grisha in Fjerda, and learning to harness her new powers.

The other viewpoint characters are Nikolai, naturally, and also Zoya Nazyalensky, his general and–dare I suggest?–future romantic interest? There’s definitely some suggestion of that.

And, after having been in Zoya’s POV, I certainly ship it. In the Grisha novels, and to a lesser extent in SoC, we’re always seeing Zoya from the outside, first from Alina’s POV, and then from various of the Crows (but mostly Nina). There, she’s portrayed as this beautiful, talented squaller who is all too aware of her power, and it has made her standoffish and stuck-up. Inside her head, learning her personal history? Well, you begin to see how that competence might create distance from other people, and how she might choose to use that as armor instead of as a weakness. I relate to that pretty hard, actually.

Regarding the magical weirdness… in addition to sudden miracles happening all over Ravka, we find out in the first chapter that Nikolai’s scars from the civil war aren’t only skin-deep, and are affecting his ability to do his job as king. This actually threw me for a loop, since I had read the Grisha trilogy so long ago that I had forgotten what he was up to doing the civil war. But it turns out it’s very, very relevant, so you might want to refresh your memory on that before reading this book.

Finally, I was delighted to see that Lauren Fortgang returned as narrator for this! They’ve apparently abandoned the ensemble cast idea from SoC, and I couldn’t be happier. One thing I will say about having a consistent narrator across books is that when a character recurs unexpectedly — and you recognize them immediately by the voice — there’s this moment of awesome when you realize you’ve cracked the code.

Anyway, I’m only about a third of the way through, but as usual with Bardugo’s novels, I’m deep in the spell!

Meet the Frugalwoods, and financial musings

This started as another book review, but then it veered off into my own personal finance territory, so I decided to make it its own section.

I just finished reading Meet the Frugalwoods, by Elizabeth Willard Thames, “Mrs. Frugalwoods” of frugalwoods.com. Despite my love of frugality blogs, I’d actually never read this one; I picked up the book because I was looking for something nonfiction to read while visiting my mom, and the ebook was available on my library’s Overdrive app.

This book starts with something I think is sorely missing from most conversations about frugality: a discussion of privilege. Thames admits that she and her husband, in building towards their goal of buying a homestead in Vermont, were starting from a privileged position in countless ways — coming from the middle class, being college-educated, being in well-paying jobs, etc. While so many frugality writers lean on “anyone can do this if they just learn to be frugal!”, she admitted that not everyone is going to be able to follow in their footsteps.

And that? That was refreshing to hear. Reading that, I was instantly well-inclined towards the book.

For the most part, the book details their personal financial journey, from their first jobs out of college to buying their Vermont homestead and quitting their jobs to work it full-time. While the early chapters focus on the challenges they faced early on in their married lives, where it really gets interesting is when they decide to go for a goal of buying their homestead, and make a three-year extreme frugality plan to achieve it.

I really enjoyed how closely she and her husband aligned on their financial goals, and how they both had a vision of what they wanted their future together to look like. That was how they could make the decisions that allowed them to save 80% of their paychecks.

When I think about my own financial goals, what I realize is… I don’t really have a clear idea of what I want my future to look like. I don’t want to buy a homestead in Vermont, or have kids, or be a full-time blogger, like Thames and her husband wanted. I know that the goal itself isn’t important, but without something to be saving for, how do I decide if I really need this $10 game that’s on sale? How do I make a million different daily decisions?

Here’s what I know for sure:

I would really like to not have to work for money — which is not to say that I don’t want to work, but more that I don’t want to be dependent on work. I’ve been in positions where I’ve been stuck in hellish jobs because I needed the money, and let me tell you, it is utterly soul-destroying.

I would like to create stuff and solve problems. Writing, mostly. Maybe making websites. Maybe streaming.

I would like to be location-independent, meaning I can work from anywhere, and time-independent, meaning I can budget my own time.

I would like to travel and have adventures. I don’t need a ton of travel, and it doesn’t have to be to far-off lands, but travel provides a type of mental stimulation that I can’t get anywhere else.

Talking to Matt about what he sees our retirement looking like, he mostly agrees with this vision. He, like me, is a creative nerd, and he wants to keep making stuff as long as he can. But where we don’t always see eye-to-eye is on the timeframe. He feels that we shouldn’t rob today to pay for a tomorrow that may never come.

Which I completely understand! One thing I worry about is whether or not I will be in good enough health to enjoy a standard retirement, or if I’ll live long enough to make use of all the money I’m socking away in my IRA and 401k. That, in fact, is usually my argument for an early retirement.

That said, “spend now” vs. “save for later” is not an all-or-nothing proposition. I think some of the biggest gains can be made just by cutting out things we don’t value much. Which is a point that Thames makes: you can benefit from frugality no matter what part of the frugality spectrum you’re on. Just because you can’t achieve complete financial independence doesn’t mean that you can’t save anything, or that there are no gains to be made at all.

And what to do with that saved money? That’s what I need to make these decisions around, right? I might feel different if I were, say, putting it into an investment fund called “Lise and Matt’s Extremely Nerdy Early Retirement Fund,” but (aside from the amount already going to tax-advantaged funds) we are still primarily paying down debt — mainly the mortgage, but also lingering student loans, a car loan, and the balance on the HELOC.

And, at the end of the day, paying down debt is just not very sexy or interesting. Alas.

(While there’s something to be said for making use of compound interest by investing earlier rather than later, by paying down debt you’re fundamentally giving yourself a rate of return equal to that debt’s interest rate. And given the volatility of the stock market, a reliable 5% interest rate can be hard to come by in uncertain times).

Another thing that sticks with me from Meet the Frugalwoods is Thames’ discussion of “insourcing,” i.e. learning to do more things themselves, and being more self-reliant. She gives a famous example of watching a Youtube video about cutting layers in long hair and then writing up a bulleted list for her husband on how to cut her hair. She got a decent haircut (at least she says she did!), but more importantly, she felt it brought her and her husband closer together in the process. Learning to do something new together is a great way to reinvigorate those novelty feels in a relationship, I would think.

Since “self-reliance” is part of my 2019 prospective, you can bet this is something that resonated with me. I think I’m going to follow her advice for frugal holiday pictures and Christmas cards, for example. I’ve said I want more creativity in my life — why then should I pay someone else to take this opportunity away from me?

Picture of the week

Enough heavy financial talk–instead, enjoy this picture of two of my cats:

Two happy cats snuggling on the couch.

We call these two — Burnbright and Brianna — the “buddy Bs” because they often snuggle like this. They did not always get along this well, either, so we definitely savor moments like this when we see them!