Run, Developer, Run!

Hello, my name is Dmitry, I'm software developer and this is my blog. My passions are minimalism and continuous improvement1. Most interesting things I've done are rugged Raspberry Pi laptop (and other gadgets), collection of useful scripts for Linux users and Fish shell config. Personally, I consider the most useful post to be Some lesser known items good to have in your travel/emergency bag.

I write about awesome or useful technical stuff I encounter. Also I'll share lots of useful tips. Picked name 'Developer Run' since I'll write notes on the run. I also enjoy running and always pick bad names in general. For updates, subscribe to RSS, Twitter, Mastodon or Pinterest.

This is static blog generated by bunch of Regexes hosted on Cloudflare pages, because I have strong belief that thats how blogs should function.

Built a Macro Pad with Knob and Display

I did not have time to build a full mechanical keyboard (and I'm happy with X-Bows Lite), so I built myself the macro pad. Extra buttons are always useful, especially a knob for volume control.

Buttons are mapped to: Play/Pause, Next Song, Start/Stop Pomodoro, and one for later use.

I've even found a practical application for an OLED display:

  • When I'm playing fullscreen games, display shows GPU/GPU temperature and overheat warnings to not overcook the chips. And the current time so I don't overcook my brain by forgetting to sleep.
  • When media is playing, display shows title of currently playing song or Youtube video.
  • When rotating the knob, the display shows the percent of volume. The trick is that it shows the actual OS volume, so it will be correct even in case the volume is changed by other means (like os interface). This is achieved by sending the current system volume to the device when handling volume keypress in Linux.
  • When idle, the display shows some awesome monochrome logos I've shared previously. Just like the way it looks.

To communicate with the display made a script to send any text, or show logo or progress bar on the macro pads display. On the receiving end is some QMK trickery, of course.

Fancy wire goes to Scroll Wheel Thumbnail

Fancy wire goes to Scroll Wheel

Fancy wire goes to Scroll Wheel

Wire with fancy "aviator connectors" goes to a custom Scroll Wheel I've put in the center of a keyboard. This is an evolution of my QMK Scroll Wheel project by adding some extra functionality to Raspberry Pi Pico.

Read More →

Photo of the Day: Radiation Detector

☢️ Thumbnail

☢️

☢️

As this is my personal blog, and Pinterest views are over the moon, I've decided to occasionally share cool photos I am making.

My faithful radiation detector Radiacode 102 is super tiny and convenient, but not as cozy looking as the iconic CDV-700. So I think I made a perfect lock screen wallpaper for the phone!

My perfect playlist for programming

Space Rangers Playlist

Let me share my Spotify playlist, primarily inspired by the soundtrack of the best computer game of all time - Space Rangers 2, and other space exploration games like FTL. Turns out this music is perfect not only for playing these games but also for programming.

My Space Rangers playlist contains 85+ hours of psytrance and similar beats. You may wonder what is the difference from Space Station Soma? Difference is that this playlist, is curated to avoid boring ambient-only tracks (where you got 10 minutes of barely audible hum). Also avoiding "dharmic" tracks that are too trippy. So most of the audio contains alive beats that will keep you awake and productive.

And if this type of music is not up to your taste, my another go-to recommendation for work is Rekt FM online radio.

Space Rangers playlist on Spotify

Music Control Tip

Media Controls

Did you know that you can "blacklist" songs on Spotify, by automatically skipping them? Or automatically switch to the next online radio station when there is a song you don't like. Or skip songs containing Live in title, because I still can not undertand why people put such things on the web. Basically, any media control automation you can imagine.

All you need is a playerctl. What it does, it allows to listen media for player events, for example, do action on song change. Also, it allows universal control of media players, for example pausing or skipping the song. Works with any player with MPRIS D-Bus support, so VLC, Spotify, Youtube in the browser, etc. You can write scripts in Bash or Python (for Python bindings install libplayerctl-dev gir1.2-playerctl-2.0).

Contemporary quote about AI

Artificial intelligence

I don't usually drop smarty-pants quotes in this blog, but this one sounds too relevant nowadays. Forget me if I'm being dramatic, but too many people poison everything with AI just for the sake of a quick couple of bucks and hype.

I have not seen quote used recently so let me share it here:

You have no care for your species. For thousands of years men dreamed of pacts with demons. Only now are such things possible. And what would you be paid with? What would your price be, for aiding this thing to free itself and grow?

— William Gibson, Neuromancer

Get Url Preview with Image and Description in Markdown Notes

Url Preview in text editor Thumbnail

Url Preview in text editor

Url Preview in text editor

Your notes are important in the long run, and note-taking apps come and go. Some note-taking services have a lifespan of instruction for paper shredder, while others slowly and painfully become obsolete. Special shout to those using Google Keep: "Somebody just likes to live dangerosly, oi!?".

To keep notes accessible over the years, you need to store them in the simplest and most common format, so switch between the note-taking apps is frictionless. Also notes should be readable even without specific tools. Like plain text. Or Markdown because it is almost plain text with some conveniences. Then you will be able to access important information no matter what the future of computing will look like.

That's why I store all my notes in a Markdown format, edit in Sublime Text, and sync via Git. Sometimes with ASCII WordArt, symbols, diagrams, internal links3 and even embedded images, but still a glorified text files. Speaking about images - modern text editors have a Markdown image preview feature - my Sublime Text has MarkdownImages plugin, I'm sure your editor of choice has it too.

When saving URLs for later, often I need a little bit more info about the page. Especially when collecting links for shopping, a little image is a must. Another example - image preview is a huge convenience when gathering information for DIY projects. And in case the website will disappear, I will still have an image at least.

So we want to get some extra info by URL, page preview, and description (like modern chat apps do). Most of the web pages provide this already in a Open Graph format. If not - we can grab a title and a first meaningful image. Let's automate this process!

Read More →

Show Color or Black and White Emojis in different applications

Okay, this is a very specific preference. But what is Linux for, if not for working exactly according to a specific preferences?

I have mixed opinions about emojis. I find symbols as you see on the screenshot1, very useful in notes, documentation, and even terminal. But I prefer them to be rendered grayscale (screenshot left) to not stand out in the text, and look consistent with other symbols I use a lot: ←↑↓→. If you search The Internet, there will be a million advices on how to make emojis colorful. But I was not able to find a bit of info on how to make them black or white or grayscale.

To make things even more tricky, I want colorful emojis in chat applications and Spotify, but grayscale in other applications like text editors and browser.

It turns out that it is very simple to achieve if you use the right configs.

Read More →

Your keyboard needs a Scroll Wheel: a Simple Mod

X-Bows Lite with a Scroll Wheel Thumbnail

X-Bows Lite with a Scroll Wheel

X-Bows Lite with a Scroll Wheel

Let me start with a pretentious statement :). Human brains are pretty fast, computers times faster1, but communication speed between two is a disappointing bottleneck. I don't see interfaces like Neuralink in the near future without huge drawbacks, so we are stuck with input devices that have not changed much over the last dozens of years.

When interacting with computers, of course, the mouse is the simplest and most universal way. Or maybe a good touchpad. However if one invests time into learning keyboard shortcuts and tricks, they can do work much much faster. In addition to productivity gains, not touching the mouse (or touchpad) is better in the long run, as wrists will be healthier after 15 years or so.

Even browsing the web with keyboard is pretty convenient. Except for one thing - scrolling. Because the mouse wheel feels much more natural and precise control compared with mashing PgUp/PgDown// buttons.

To improve this, let me tell you about a fast and simple mod to add a scroll wheel to a mechanical (or even regular) keyboard. No need to build the keyboard from scratch, it is an add-on:

Scroll Wheel Add-On

In this example, I will be talking about X-Bows Lite which conveniently has some free space in the middle. But you can apply it to any keyboard, by positioning the scroll in any place or replacing Caps Lock for example.

Read More →

Why my daily Linux desktop looks like Windows 9x

Nostalgia is a hell of a drug Thumbnail

Nostalgia is a hell of a drug

Nostalgia is a hell of a drug

Note: for even more nostalgia, read this post on tilde.club!

Once, as an April Fools' Day joke1 I set a Windows 95 theme on my Linux desktop for a screen-sharing session. Like, look at me, calling in from a vintage computer, ha-ha! Haven't changed the theme back since then.

Turns out, the Classic Windows interface is actually a pretty good choice from a practical point of view. In terms of productivity, elements are compact and clearly distinguishable, colors are nice and not distracting, and icons are meaningful. Not that modern flat interface blur.

It also helps to draw a line between Work and Life mindsets. In the home environment, I have a bit more modern theme, so by creating clear visual associations it helps to switch the brain between concentration and relaxation modes.

And, of course, I am nostalgic for the digital aesthetic of the 90s. Not for Windows itself, it's a slow and clumsy OS, but because it was on the first computer I had access to, it brings back fond memories. In fact, some of my most formative memories were made in that clumsy, boxy world. Growing up, I didn't have access to many video games or consoles, nobody had even heard of the internet, but we did have an office computer. With the kind of patience that you only have when you are a child, I would find things to get excited about. I spent hours trying to make sense of system files, imagining what they were for, tinkering with settings, playing with themes and screensavers, breaking things, fixing things. Ultimately, it made me who I am and what I do today.

Nowadays I don't try to reproduce the Windows 95 interface 100%. It is more a mixture of 95, 98 and even 2000. It's a revised nostalgia, a reinterpretation that captures the brightest memories, enchanting the good and minimising the bad. It is also not a step backwards in terms of usability and productivity.

Read More →

Organizing Tip

SKÅDIS pegboard Thumbnail

SKÅDIS pegboard

SKÅDIS pegboard

You probably know about SKÅDIS pegboard from Ikea, which makes your workspace more organized by making use of vertical space. If you have lot of random stuff on your table - you definetely need one because it much easier to keep place tidy when each item has it own dedicated place. Plus it looks nice.

But did you know that if you have access to a 3d printer, you can print perfectly fitting holder for literally anything you own? Form any tool to even beer. Just search for skadis on Thingiverse. And in unlikely case you won't find what you need, theres always an option to super-glue a Generic Hook

1 2 3 4 5 6 7 8 Next→

Contact

Follow

Me on Twitter, Mastodon and Github

We have RSS!

© 20xx

Hosted on Cloudflare Pages, which is awesome!