• How a nasty cold fixed my diet

    Our whole family has been sick with a really nasty cold. It probably has something to do with the fact that our infant licks every surface and object she comes in close proximity with. I’ve been sick for 11 days and counting (don’t worry, I’ve seen a doctor, I have my antibiotics now), and this is just the worst.

    But it did fix our eating out problem. You see, we love good food, we live in a foodie neighborhood, and we eat out a little too much. We want to eat out a little less, if only to enjoy the times we do even more. And most importantly, we want to stop eating out just because we’re lazy.

    And we’re often lazy.

    But guess what, when you’re sick, the idea of going out, spreading your germs, being uncomfortable and being a public menace just isn’t a great one.

    It’s much, much easier to eat at home than to eat out right now. So we’ve been eating at home.

    This idea of reducing friction to do the right thing reminded me of the period in my life when I got in pretty good shape by biking every day. I lived not too far from the office, but the nature of Bay Area traffic meant that it would take me up to 40 minutes to make a fairly short commute. I could commute at a different time - earlier or later, or I could bike. Because it would consistently take me 30 minutes to bike to the office, and if I was late, or if I was being lazy (which I am often), biking was the fastest option. My office being Google, having showers in the office helped, of course.

    I’ve been trying to recreate making it more convenient to do the right thing ever since. We don’t have a driveway here in our house in San Diego - so driving often means losing a parking spot. This makes biking or walking a much more appealing - often an easier option.

    Back to better diet, I’ve been buying those yummy frozen meals from Trader Joe’s, because sauteing some Kung Pao chicken in the skillet is healthier, faster, and easier than getting takeout. It works, as long as we don’t run out of frozen food that is.

    Are there ways you trick yourself into making better choices?

  • Unveiling my gaming blog: Unmapped Worlds

    For the past eight months, I’ve been running two parallel writing projects. You know about this one: my weekly posts in this blog (this is post 42, by the way). But there has been a shadow project running in the background.

    I love video games, and I’ve collected too many opinions on them to keep them to myself.

    Meet Rooslawn’s Unmapped Worlds, a blog where I write essays about games. I decided to go for a phonetic spelling of Ruslan in the title, in the hopes I’ll get misnamed less.

    Rooslawn's Unmapped Worlds. Hello!

    I don’t review games. Instead, I write about game mechanics and tropes, and I love breaking down how digital worlds are constructed. It’s a place where I can complain about my dislike for map markers and quest GPS, or explore the reality that I rarely actually finish the games I play. It is a home for deep dives into immersion, design philosophy, and the specific friction that makes a game memorable. A few of the pieces I’m most proud of include when I didn’t speak the language of games and difficulty sliders are dumb.

    Running the project anonymously was a great idea - I was able to be more vulnerable, it allowed me to experiment more with different topics and formats, and find my voice. The voice of Unmapped Worlds can be described as rambly. I’ve been thinking of it as written gumbo. It isn’t clean and corporate, there’s texture, love and care put into it, and you know it’s authentic.

    Gumbo is something spicy, authentic, textured, visceral, and willing to take risks that alienate some of the audience. This is unlike slop, which usually comes from the desire for inoffensive predictability and consensus, even if we have to falsify our preferences to achieve it. - The FLUX Review, episode 211

    Ultimately I felt like attaching my name to Unmapped Worlds does it justice - who I am is highly relevant to the writing. Gumbo’s flavor is unique to the chef.

    If you like video games, see if any of the 42 (so far) essays connect with you, and consider subscribing to my newsletter.

  • Piracy thrives where services fail

    There are three editions of my book in circulation: two English editions of Mastering Vim (the second being a complete rewrite), and a Japanese translation by the amazing Masafumi Okura. And I don’t really mind if my book gets pirated.

    Ahoy, mateys! This image is generated by Gemini Nano Banana Pro based on the text of this article.

    Yeah, piracy isn’t legal, yada-yada. But if $30 is too much right now and your library doesn’t have a copy to spare - I won’t blame you for torrenting it. Here’s my full permission, I hope you enjoy the result of my sweat, tears, and deadline anxiety.

    Amazon is convenient, but you don’t own your Kindle books. They can be deleted or changed at any moment. Amazon has literally changes book covers after purchase, especially when books get a movie release. Ugh. Meet DRM (Digital Rights Management) - the technology that ensures you’re renting, not buying.

    Packt, publisher of Mastering Vim, does offer DRM-free PDFs. But there’s no good PDF syndication ecosystem. No convenient library management. No sync across devices. You’re not really missing out.

    Growing up in Russia, I pirated video games. Not out of principle, but pragmatism. Fan translations arrived six months before official ones. They were better too - localizers who actually played the games versus outsourced rush jobs. This was different kind of piracy, too - a guy on a corner selling pirated CDs at a market-appropriate rate.

    I stopped in 2011 - already after I moved to the United States. Not because of some moral awakening, but because I learned about Steam. Cloud saves, achievements, automatic updates. The service became worth paying for. Music followed the same path - Spotify and YouTube Music (which I like because our family pays for YouTube Premium) made piracy pointless.

    Video streaming went backwards. Netflix was the Steam moment for TV - everything in one place, reasonably priced. I loved our Netflix subscription, it felt oh-so-magical. Now? Eight subscriptions to watch your shows, content vanishing mid-season, regional restrictions. I watch a handful of shows or movies each month, and I once calculated how much I would have to take in subscription costs if I didn’t strategically sign up and cancel for periods when I want to watch my favorite shows. Over a $1,000 a year. Screw that.

    I, of course, don’t pirate, not do I condone piracy. But I do use Jellyfin to organize my legally owned media library. One interface, no disappearing content, works offline. It’s simply a better experience than juggling Disney+, Netflix, HBO Max, Paramount+, Apple TV+, and whatever new service launched this week.

    Piracy isn’t about price - it’s about service. Steam proved gamers will pay. Spotify proved music fans will pay. But fragment the market, add restrictions, remove content randomly, make legal options worse than illegal ones?

    Don’t be surprised when people choose the better experience.

  • Turns out Windows has a package manager

    I have a Windows 11 PC, and something that really annoyed me about Windows for decades is the inability to update all installed programs at once. It’s just oh-so-annoying to have to update a program manually, which is worse for things I don’t use often - meaning every time I open a program, I have to deal with update pop-ups.

    I was clearly living under a rock, because all the way in 2020 Microsoft introduced winget package manager which lets you install, and more importantly update packages.

    It’s as simple as opening a command line (ideally as administrator, so you don’t have to keep hitting yes on the permission prompt for every program), and runinng winget upgrade --all. Yup, that’s it. You’ll update the vast majority of software you have installed. Some software isn’t compatible, but when I ran the command for the first time, Windows updated a little over 20 packages, which included the apps I find myself having to update manually the most often.

    To avoid having to do this manually, I’ve used windows Task Scheduler to create a new weekly task which runs a winget-upgrade-all.ps1 file, which consists of a single line:

    winget upgrade --all --silent --accept-package-agreements --accept-source-agreements
    

    I just had to make sure Run with the highest privileges is enabled in task settings. So long, pesky update reminders. My Windows apps will finally stay up-to-date, hopefully.

  • Modality, tactility, and car interfaces

    Modal interfaces are genuinely cool. For the uninitiated, a ā€œmodalā€ interface is one where the same input does different things depending on the state (or mode) the system is in. Think of your smartphone keyboard popping up only when you need to type, or a gas pedal driving the car forward or backward depending on the gear. I love the concept enough to dedicate a whole chapter of Mastering Vim to it.

    But there’s a time and a place for everything, and a car’s center console is neither the time nor the place for a flat sheet of glass.

    I was traveling this week and rented a Kia EV6 - a perfectly serviceable electric car. I was greeted by a sleek touch panel that toggles control between the air conditioning and the audio system.

    Kia EV6 interface, currently in the air conditioning mode. Dust isn't mine, it's a rental.

    Dear car manufacturers: please, I am begging you, stop.

    When I’m driving down the highway at 75 miles per hour, the absolute last thing I should be doing is taking my eyes off the road to visually verify which mode my AC knobs are in so I can turn down the volume. I can’t feel my way around the controls because gently grazing the surface of the screen registers as a button press. It’s not just annoying - it’s unsafe.

    Modality works fine when you have physical feedback. My old Pebble Time Round (may it rest in peace) had a tactile modal interface. It had four buttons that did different things depending on the context. But because they were physical, clicky buttons, I could operate the watch without ever looking at it. I could skip a track or dismiss a notification while riding my bike, purely by feel.

    Compare that to modern smart watches, or, worse, earbuds. Don’t even get me started on touch controls on earbuds. I’m out here riding my bike through rough terrain - I do not have the fine motor control required to perform a delicate gesture on a wet piece of plastic lodged in my ear.

    I miss the click. I miss the resistance. I miss knowing I’ve pressed a button without needing confirmation from the software. We’ve optimized for screens that can be anything in so many areas of our lives, but these screens aren’t particularly good at controlling stuff when we’re living said lives.

    Yeah, I miss analog buttons.