• I bought a keyboard for my phone

    So, here’s an interesting purchase. An external folding keyboard for a phone. It’s something I picked up on a Black Friday sale for $24 (which is about how much the device is worth, probably).

    The keyboard folds in half, and is slightly shorter and wider than a modern phone in its folded state.

    Why an external keyboard for my phone?

    I like to write - a lot. I take notes, I write down my thoughts, I publish a blog or two - that’s how I process the world. Sitting down in front of a keyboard is a great way to unload what’s in my head: I type faster than I handwrite, and it’s just a meditative experience.

    There’s just one problem: I have an infant, which makes sitting down at a computer problematic sometimes. There’s just not enough peaceful minutes in a day where I’m able to sit at my desktop, or even pull out a laptop. My phone’s always nearby though, and I’ve jotted down notes on the go before.

    But I hate the on-screen keyboard, which makes me want to pull my hair out when I have to write anything longer than a ā€œkā€ response to a text. So here comes a keyboard that’s small enough to fit in my back pocket, yet becomes a almost full size keyboard once it unfolds.

    Moreover, I’m excited to take it with me on a vacation, or maybe even a quick trip to a coffee shop. I’m not going to travel with a laptop, but it would be nice to be able to write in a hotel room, or on the plane - without the added bulk of another device. A quick pullout keyboard accomplishes that.

    I picked up ProtoArc XK04, which has been working out pretty great - it easily pairs to my phone, the keys feel fine enough, and the build doesn’t feel flimsy or cheap. In fact, it’s a little heavier than I expected, which makes for a nicer typing experience (but it’s still light enough to carry around).

    I’ll follow-up in six month to year to see if that’s just a gimmick purchase. Or maybe I end up drafting up my next book using this thing - we’ll just have to see.

  • 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.