<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tired Sysadmin's Scribbles</title>
    <atom:link href="https://tiredsysadmin.cc/category/intl/rss.xml" rel="self" type="application/rss+xml" />
    <link>https://tiredsysadmin.cc/category/intl/</link>
    <description>Tired Sysadmin's Scribbles</description>
    <language>en-US</language>
    <lastBuildDate>Mon, 16 Jun 2025 12:32:04 +0200</lastBuildDate>
    <generator>Git</generator>
    <item><title>📊 Mood Is a Metric Too</title><link>https://tiredsysadmin.cc/pages/intl/%6d%6f%6f%64%2d%69%73%2d%61%6c%73%6f%2d%61%2d%6d%65%74%72%69%63</link><pubDate>Mon, 16 Jun 2025 12:32:04 +0200</pubDate><description><![CDATA[<h2 id="-mood-is-a-metric-too">📊 Mood Is a Metric Too</h2>
<p class="card"><img src="https://tiredsysadmin.cc/media/pics/Screenshot_20230510-213219-612-34hhplx2uzq4axu27it4rlbg4siy.png#cover" /></p>
<p>You might easily think I’ve lost my mind—and you’d be right. It happened a long time ago and hasn’t let go since, so tracking mood changes via a graph isn’t just a quirk anymore, it’s more of a life necessity. You know, like watching a pressure gauge so you can release steam before the tank bursts and sprays its contents all over everything.</p>
<p>Actually, the idea isn’t new at all. During rehab, I found an app called <a href="https://daylio.net/">Daylio</a>, which pretty much did what I needed: it would show a daily notification asking “how are you feeling,” offer five response options (awful, bad, meh, good, rad), and allow you to fill in a short activity journal. However, the drawbacks quickly surfaced. Since the journal was filled in once a day or less, the data was often inaccurate. Most of the time, by the end of the workday, I had no energy left for journaling—not even for dumb videos for single-cell organisms—so entries were either postponed or ended up being more negative than my actual mood. What also annoyed me was that Daylio’s data could only be exported manually, and I wanted to track and view data from any device—yes, even a toaster. So I had to take a different approach.</p>
<p>By then, I’d figured out how to trigger notifications via Tasker and scripts in Termux. You might rightly say this madman is inventing janky stuff again, but in the end, the form doesn’t matter. What matters is the process and the result—we’re solving a psychological, not a technical problem. Anyway, I digress. I found a way to pipe data from my phone or computer through middleware into a database, and Termux with Tasker handled that perfectly. Now, about how I tackled the challenge of “tracking mood as accurately as possible throughout the day.” Here’s the formula that crystallized:</p>
<ul>
<li><p>A simple notification asks <em>"How are you feeling?"</em> and offers three button-based responses:</p>
<ul>
<li><em>"Good!"</em>: means I’m happy and generally satisfied. The script assigns <strong>+10 points</strong> for this answer.</li>
<li><em>"Bad"</em>: means I’m in pain, scared, uncomfortable, or otherwise feeling <em>bad</em>, and I wouldn’t want to stay like this long. This answer gets <strong>-10 points</strong>.</li>
<li><em>"Meh"</em>: means I’m neither happy nor sad; I’m fed, clothed, relatively healthy, and not getting rained on. This answer gets <strong>+2 points</strong>.</li>
</ul></li>
</ul>
<p>Each day starts at a baseline of 50 points—right in the neutral zone, neither good nor bad. Over the course of five prompts per day, you could reach 100 points (feeling like a million bucks) or crash to zero (somebody please kill me). After answering, the script sends a special payload to a <a href="https://github.com/reactorcoremeltdown/FSMQ">message queue</a>, from which a cronjob picks it up and stores the necessary data into an SQLite database. Once a day, another cronjob sums things up and logs it with timestamps into a neighboring table, producing a nice-looking graph.</p>
<p class="card"><img src="https://tiredsysadmin.cc/media/pics/Screenshot_20230818-145343-156-lzso6dm62632xdwvprayn3eus2rm.png" /></p>
<p>Yes, I’m using SQLite as a time-series database here, which works just fine at this scale. The beauty of using Grafana is that you can display the data in any slice over any time period. For example, I also have a pie chart that shows distribution across the categories.</p>
<p class="card"><img src="https://tiredsysadmin.cc/media/pics/Screenshot_20230829-194040-183-gjxnv72dss2zcwbiub7yrzbgh2um.png" /></p>
<p>I’m also trying to add (often just forget about it) a chart for tracking my junk food snacking—yep, that’s one of my weaknesses. Same mechanism: five times a day, a notification asks if I’ve binged on street food. For every “no,” I get one point. The goal is to earn five points a day. The system isn’t working well; I’m thinking of how to improve it, because the problem isn’t the chart but the uncontrollable urge to shovel trash food into myself. Still, it’s worth a look at the graph.</p>
<p class="card"><img src="https://tiredsysadmin.cc/media/pics/IMG_20230829_193758_706-673zvluwy4iperq3tq4se5quovzx.jpg" /></p>
<h3 id="technical-details">Technical Details</h3>
<p>Any tile on the dashboard is essentially a database query via a data source plugin. Some tiles require time-series data, so the database must have a column with Unix timestamps tied to the data.</p>
<p>Here’s an example query for total mood per day:</p>
<pre><code>select cast(time as int) as ts, score from totalmoodscore;</code></pre>
<p>In the database itself, it looks like this:</p>
<pre><code>sqlite&gt; select * from totalmoodscore limit 10;
1682373481|40
1682459881|48
1682546281|48
1680991200|85
1680904800|45
1680818400|45
1680732000|45
1680645600|45
1680559200|65
1680472800|45
sqlite&gt; .schema totalmoodscore
CREATE TABLE totalmoodscore (time timestamp default (strftime(&#39;%s&#39;, &#39;now&#39;)), score integer);</code></pre>
<p>The SQLite datasource plugin is available for installation right from Grafana’s admin panel. You can also configure it there by specifying the database file.</p>
<h3 id="in-conclusion">In Conclusion</h3>
<p>Well, first of all, I needed this just to make another fun toy to stretch my brain. But the project has long since reached a usable (by me) state, and I actively use it. When something feels off, I can pull up the graph and see when it all started going downhill. Plus, Grafana lets you place annotations and comments on any point in the graph, which is super handy: this is when I got sick, that’s when some other crap happened, and there—I just felt like a turd. Having all this data makes it way easier on your conscience—and your wallet—to decide to rest, take a short vacation, hit the sauna, or schedule an emergency therapy session if things get really bad.</p>
<p>Stay healthy, and remember—there’s no one closer to you than yourself!</p>]]></description><guid>https://tiredsysadmin.cc/pages/intl/%6d%6f%6f%64%2d%69%73%2d%61%6c%73%6f%2d%61%2d%6d%65%74%72%69%63</guid></item>
    <item><title>Forget about screen rotation toggle forever</title><link>https://tiredsysadmin.cc/pages/intl/%73%63%72%65%65%6e%2d%72%6f%74%61%74%69%6f%6e</link><pubDate>Mon, 5 May 2025 21:55:00 +0200</pubDate><description><![CDATA[<h2 id="forget-about-screen-rotation-toggle-forever">Forget about screen rotation toggle forever</h2>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/Screenshot_20250505-213854_System_UI-bkaqyq5q4do4sgjq5dq7o7ryjepj.png"><img src="https://tiredsysadmin.cc/media/pics/Screenshot_20250505-213854_System_UI-bkaqyq5q4do4sgjq5dq7o7ryjepj.png#cover" /></a></p>
<p>Don't know about you, but for me having to switch that quick setting toggle back and forth every time I want my phone to rotate the screen on a certain app is plain annoying: I often forget to flip the switch back to lock screen orientation, and that leads to all possible awkward situations with unexpected outcomes, for example chatting in a messenger while lying on the couch and then suddenly turning on the side. Only the launcher stays locked in the portrait mode, however that is mostly its core functonality, they are designed to behave like this unless forced otherwise.</p>
<p>Here's the deal, though: I only need to rotate the screen into landscape mode in a limited number of apps. Fortunately, I can use Tasker to solve this problem once and for all.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/Screenshot_20250505-213627_Tasker-o2quukffxhezpxiau2kzj4aw2bfr.png"><img src="https://tiredsysadmin.cc/media/pics/Screenshot_20250505-213627_Tasker-o2quukffxhezpxiau2kzj4aw2bfr.png" /></a></p>
<p>Within Tasker I can create a profile that detects selected foreground apps and uses it as a condition to trigger a task. I can also define an exit task, meaning when the condition is no longer met, it would use another task to switch to the previous state.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/Screenshot_20250505-213636_Tasker-fatgjltsen5gsfymcq7zswdmzbp3.png"><img src="https://tiredsysadmin.cc/media/pics/Screenshot_20250505-213636_Tasker-fatgjltsen5gsfymcq7zswdmzbp3.png" /></a></p>
<p>Here I have two tasks: one enables screen rotation, the other disables it. I use screen rotation mostly for various web browsers, and also for the Termux app, where I often write blog posts and scripts for my videos.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/Screenshot_20250505-213648_Tasker-265fifxbjx7wmzyqm4ck7apzq3a4.png"><img src="https://tiredsysadmin.cc/media/pics/Screenshot_20250505-213648_Tasker-265fifxbjx7wmzyqm4ck7apzq3a4.png" /></a> <a href="https://tiredsysadmin.cc/media/pics/Screenshot_20250505-213659_Tasker-auhs5h33labqe4ygpzy3o3cionh2.png"><img src="https://tiredsysadmin.cc/media/pics/Screenshot_20250505-213659_Tasker-auhs5h33labqe4ygpzy3o3cionh2.png" /></a></p>
<p>After all that done, I can finally remove the quick settings toggle and make a free slot for something more useful.</p>]]></description><guid>https://tiredsysadmin.cc/pages/intl/%73%63%72%65%65%6e%2d%72%6f%74%61%74%69%6f%6e</guid></item>
    <item><title>Vintage Computing Festival Berlin 2024, Report</title><link>https://tiredsysadmin.cc/pages/intl/%76%63%66%62%2d%32%30%32%34</link><pubDate>Sat, 26 Oct 2024 17:21:59 +0200</pubDate><description><![CDATA[<h2 id="vintage-computing-festival-berlin-2024-report">Vintage Computing Festival Berlin 2024, Report</h2>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241020_095737804-dqwf2o4jltufdhnc3ieyzdoqsk72.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241020_095737804-dqwf2o4jltufdhnc3ieyzdoqsk72.jpg#cover" /></a></p>
<p>Well, I’ve made it a rule that if I’m struck by another wave of inspiration, I should make the most of it while it’s still full steam ahead. Strike while the iron is hot, as they say. Since 2023, my personal collection of vintage mobile phones has doubled, and by the time of the event, it had reached around 65 devices, 63 of which I brought to my booth at the VCFB 2024 for everyone to see and explore.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241012_003016759-w3hnx5hzcyyr74yc77bb65l2owju.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241012_003016759-w3hnx5hzcyyr74yc77bb65l2owju.jpg" /></a> <em>The Whole Collection</em></p>
<p>Initially, I expanded the collection with the goal of telling the full story of the Symbian operating system, starting with EPOC on Psion PDAs and ending with Nokia Belle. Of course, I haven’t managed to collect everything yet — the Nokia 808 PureView and Ericsson R380 are still expensive as hell, but I haven’t lost hope. Along the way, I picked up other models that deserved a spot in the display, like PDAs and smartphones running Windows Mobile (some of which even have built-in hard drives) or, for example, the infamous Motorola ROKR E1, which didn’t gain much popularity but paved the way for Apple’s first iPhone.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241014_212423955-3ocujxzjnad5mf7cwp4743uiihsd.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241014_212423955-3ocujxzjnad5mf7cwp4743uiihsd.jpg" /></a> <em>Charging Up</em></p>
<p>As a result, my exhibition display was divided into three sections: Business, Entertainment, and Lifestyle. The first section focused on smartphones and PDAs with business features, allowing their owners to handle important (or not so important) tasks on the go; the second section highlighted entertainment, covering music, photos, and videos for now, with games possibly coming later; and finally, phones and smartphones as a form of self-expression! I definitely couldn’t imagine life without that. Now, let's go over it all in order.</p>
<h3 id="preparation">Preparation</h3>
<p>With more devices on hand and the same limited transport and display equipment, I needed to figure out how to handle packing, transporting, and setting up the exhibit at the destination. This time, we were allowed to set up in Building G on the campus of the Hochschule für Technik und Wirtschaft Berlin (HTW for short). Not the most convenient location, but I’m not the organizer — ultimately, it didn’t affect attendance, as people came anyway.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241019_085902329-rgcmiw4y7vv5lno2eavvoitamocl.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241019_085902329-rgcmiw4y7vv5lno2eavvoitamocl.jpg" /></a> <em>The university welcomed us with wide gates and an unusual sculpture</em></p>
<p>So, to transport all 63 devices safely, I had to invent some packaging. The most logical solution was foam blocks with custom-sized slots for the phones and PDAs, which I then stacked in a suitcase. Alongside them went the “nasty bag” — a paper bag filled with a tangled mess of charging cables, which quickly became a subject of jokes and memes. Thanks to the EU for finally pushing Apple to switch entirely to USB Type C!</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241008_181807483-qkpjmi55newhrgxhvrejxnm4aa76.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241008_181807483-qkpjmi55newhrgxhvrejxnm4aa76.jpg" /></a> <em>Foam Blocks</em></p>
<p>An improvised solution was used for the stands as well: I had some sturdy cardboard lying around in the basement, to which I added garden decorative wire and used a hand drill and hot glue gun. It was almost as if it was built out of sticks and stones. The structure bent under the weight, but it did the job. The work of assembling the stands and packing the devices took up nearly all of my free evenings that week. To avoid distractions, I moved my main smartphone to the next room and enjoyed music from a floppy disk player in the living room — replaying live recordings from my favorite musicians, with some new additions to my chart that I’ll tell you about toward the end. Planned work and careful time management paid off, and I finished everything on time for the event. Everything was ready, packed, and awaiting dispatch.</p>
<h3 id="festival">Festival</h3>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/photo_2024-10-24_21-19-55-di6jt3ki4tjpkqpqotq5vlx2jfek.jpg"><img src="https://tiredsysadmin.cc/media/pics/photo_2024-10-24_21-19-55-di6jt3ki4tjpkqpqotq5vlx2jfek.jpg" /></a></p>
<p>As always, I woke up early on Saturday, had a hearty breakfast, got myself ready, took a selfie on an old smartphone, and headed out, from S Südkreuz to S Schöneweide, with a short walk from there. The campus was huge but welcoming and quite a pleasant place. Universities still feel like hubs of energy and youth. I had to search a bit for Building G, where the festival was held — it was situated by the river, but the riverside path was closed, so I entered through the main entrance.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241020_105844898-pdwr4dfkobi7ygkovtjuomq6ioa4.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241020_105844898-pdwr4dfkobi7ygkovtjuomq6ioa4.jpg" /></a> <em>Most exhibits I had already seen at the previous event</em></p>
<p>Inside, I was greeted by familiar faces showcasing their Atari, ZX Spectrum, Amiga, and my favorite, the Tandy TRS-80. For the next two days, this space was ours. Last time, we had a few rooms and a general feeling of spaciousness, but this year we were a bit more compact, setting up on desks placed back-to-back and separated by pinboards. Still, it was cozy, and no one was bothered. I set up my stand, unpacked the suitcase, taped the display stands to keep them from sliding under the weight, plugged in the most interesting devices to charge, removed extra chairs for better access to the exhibit, hydrated, and headed to the auditorium for the opening briefing.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241019_101758587-dsnhelha4ixtpnkoaukgw7ilfshj.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241019_101758587-dsnhelha4ixtpnkoaukgw7ilfshj.jpg" /></a></p>
<p>As always, we were welcomed, sponsors were thanked, the <del>Bill of Rights</del> Code of Conduct was read, and we were wished the best possible festival experience. Now, it was time to await the most important moments of the event.</p>
<h3 id="visitors">Visitors</h3>
<p>No exhibition or festival would have any meaning without visitors. It wasn't like the doors opened at exactly 10:00 a.m. and people rushed in all at once; it was more of a gradual flow. Nevertheless, for the next ten hours, until 8 p.m., I didn’t have a moment to sit down or take a break! The crowd was bright and incredible, and although I had to switch between three languages (English, German, Russian) while keeping a fourth (Ukrainian) in reserve, I still managed to attract a lot of attention to my exhibit.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/photo_2024-10-20_19-12-20-q7wsxqt56pjy7d7fyltho5mmnadm.jpg"><img src="https://tiredsysadmin.cc/media/pics/photo_2024-10-20_19-12-20-q7wsxqt56pjy7d7fyltho5mmnadm.jpg" /></a> <em>Enthusiastically sharing the story of the Motorola ROKR E1</em></p>
<p>The expanded collection drew special interest because, in addition to well-known devices, it featured quite obscure models previously available to a very limited audience, like Psion PDAs, which were targeted at serious executives in suits with personal drivers.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241019_104058421-mwqnaz5qjb3ut4y4lddtaxjjlwbk.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241019_104058421-mwqnaz5qjb3ut4y4lddtaxjjlwbk.jpg" /></a> <em>Cool visitors exploring the Psion 5 MX</em></p>
<p>Some visitors delved so deep that they almost created masterpieces. One person took a Psion, sat down with it in a corner, and spent a long time working with the stylus. The result was a drawing created without stencils or clip art!</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241019_152732561-ukvhzkqfykwj7kzdymnnbjnu62wf.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241019_152732561-ukvhzkqfykwj7kzdymnnbjnu62wf.jpg" /></a></p>
<p>But it wasn’t just PDAs that were the stars of the show. Festival guests were interested in different models of phones from different eras, recalling which ones they used to carry in their pockets. Often, I managed to surprise the crowd with interesting facts, such as:</p>
<ul>
<li>The Symbian OS resulted from a collaboration between Motorola, Nokia, and Ericsson, whose consortium adopted the real-time OS EPOC, branded it, and developed several different graphical interfaces that were incompatible with each other.
<ul>
<li>Even within the consortium, there was competition. Nokia developed its own interface for button phones, now known as Series 60 (up to version 5), while Motorola and Sony Ericsson opted for UIQ, an interface more suited to PDAs and communicators.</li>
<li>Around this time, Ericsson transformed into Sony Ericsson, as their factory burned down, and they needed a partner to continue producing mobile phones.</li>
<li>Motorola later left Symbian to develop its own mobile OS based on Linux. However, something went wrong, as they couldn’t get 3G to work on the new platform (possibly due to chipset issues), so in 2006, after a three-year break, Motorola rejoined the consortium, leaving behind two unique but slightly flawed models and a few rare prototypes, each now worth a fortune.
<ul>
<li>One of these phones, the Motorola RIZR Z8, holds the world record for the highest phone call, made from the peak of Mount Everest.</li>
</ul></li>
<li>In 2009, UIQ Software went bankrupt, and both Motorola and Sony Ericsson were at a crossroads. The former went all-in on Android, still in its infancy, while the latter opted to license Series 60 Version 5, as Samsung had done earlier (with its own array of unique quirks like TouchWiz).</li>
<li>Three years later, Symbian itself ceased to exist. There was an open-source release, but by then, it had lost relevance.</li>
</ul></li>
</ul>
<p>And that was just one operating system, leaving a significant legacy in the world of mobile computing devices that, for a time, showcased countless platforms. That is, until we succumbed to the Apple and Google duopoly.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241019_163447436-j6csltjtpe33pdwculzcfwxfaybj.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241019_163447436-j6csltjtpe33pdwculzcfwxfaybj.jpg" /></a> <em>Guests exploring the mighty dual-slider Nokia N95</em></p>
<p>The most valuable thing visitors gave back was smiles, emotions, and stories. That’s what it’s all for — for the pure joy and curiosity. The crowd at these events is always unique, and seeing all these outfits and wearable devices is a pleasure in itself.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241020_140008943-loed4cxjaspwnpkjvhs2idccrnv2.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241020_140008943-loed4cxjaspwnpkjvhs2idccrnv2.jpg" /></a> <em>Happy visitors</em></p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241020_121953798-q2hpdngxbbeyj2zdnqc337uelkxj.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241020_121953798-q2hpdngxbbeyj2zdnqc337uelkxj.jpg" /></a> <em>Cool T-shirt</em></p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241020_133147298-tvdwkedhyu6stou6tsuqrfgvxl7p.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241020_133147298-tvdwkedhyu6stou6tsuqrfgvxl7p.jpg" /></a> <em>Cool handmade hairpin</em></p>
<p>Friends also came, which made me especially happy. They brought tea, mineral water, donuts, and sweets, which really helped to recharge and get through the day. The support of close people always adds motivation not to give up and to keep doing awesome things, even if they initially seem pointless.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241020_143751416-7mpzha77r6zx2cplwiz3idzhmjbw.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241020_143751416-7mpzha77r6zx2cplwiz3idzhmjbw.jpg" /></a> <em>Examining the Nokia 9300 communicator with interest</em></p>
<p>There were also many children at the exhibition. I was always happy to hand them a smartphone or PDA with Bubble Breaker, but their attention soon drifted to consoles and computers with arcade games like Street Fighter or the legendary Pong.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241019_184059302-lip4dgbvwhyo3ygvqd3rjoxyryug.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241019_184059302-lip4dgbvwhyo3ygvqd3rjoxyryug.jpg" /></a> <em>The one and only Bubble Breaker</em></p>
<p>The highlight of the event was the gifts from guests: I brought 63 devices and left with about 70, a collection of varied and interesting items! For example, I never had a classic BlackBerry or a phone on the Samsung Bada platform. All of this was given to me freely, for which I am deeply grateful. Next year, these gifts, after being cleaned of personal data, will, of course, become part of my exhibition.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241019_094120915-k5epzp7j2kcf37krknbxps534xoo.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241019_094120915-k5epzp7j2kcf37krknbxps534xoo.jpg" /></a> <em>Gifts</em></p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241020_111222119-yjj3prkiq4bb2bfzxe5632ehbi43.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241020_111222119-yjj3prkiq4bb2bfzxe5632ehbi43.jpg" /></a> <em>More gifts</em></p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241020_111001967-36odmdpmlxflckzpms7rlmst6ssh.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241020_111001967-36odmdpmlxflckzpms7rlmst6ssh.jpg" /></a> <em>And even more gifts</em></p>
<h3 id="other-wonderful-festival-exhibits">Other Wonderful Festival Exhibits</h3>
<p>Naturally, I wasn’t the only cool one at the festival with loads of interesting gadgets. Both visitors and booth owners had plenty to show. Someone brought a Palm PDA with an MP3 player inserted via an expansion slot that used the main device solely as a power source. Another was showcasing the Psion 5 MX Pro, an enhanced version of my PDA that featured an email client and browser. Yet another pulled out a Nokia E90, which they still actively use for note-taking. The most fascinating device for me was a test prototype of the first iPhone, loaded with diagnostic software and quirky images. The developers must have had a lot of fun with it. I own a Motorola RIZR Z10 engineering prototype with similar software. One day, I’ll capture it in action — it's an absolute freak show!</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/PXL_20241020_164035499-fz44bpf2lffhnrwzne72bkdnr7ne.jpg"><img src="https://tiredsysadmin.cc/media/pics/PXL_20241020_164035499-fz44bpf2lffhnrwzne72bkdnr7ne.jpg" /></a></p>
<h3 id="it-wouldnt-be-complete-without-music">It Wouldn’t Be Complete Without Music!</h3>
<p>The marathon wouldn’t have been complete if I hadn’t rushed to a concert before or after the festival. Last time, I dashed straight from work to catch IAMX in Leipzig. This time, the incredible Eivør Pálsdóttir performed in Berlin, a Faroese enchantress blending pop, rock, synthwave, opera, and ancient Scandinavian throat singing. It’s hard to describe this magic in words — just watch.</p>
<iframe style="width: 100%; height: auto; aspect-ratio: 16 / 9;" src="https://www.youtube.com/embed/EcCcy9S2MoI">
</iframe> 

<h3 id="conclusion">Conclusion</h3>
<p>Two days, ten hours each, filled with non-stop conversations, stories, laughter, smiles, and nostalgia. It was all about momentarily escaping the hectic, chaotic world and revisiting a time when life felt simpler and clearer — when the internet and its thin clients hadn’t yet been commoditized by profit-seeking corporations, when individuality and self-expression, even through pocket devices, still held meaning. Although my booth didn’t win any awards at the festival, I still won the ultimate prize: they’ll be expecting me back at this event in 2025. See you then!</p>
<p>P.S.: My collection now has an <a href="https://museum.tiredsysadmin.cc">online page</a> where you can view (almost) all items and read the stories behind them. I plan to update and maintain it as time and energy allow.</p>]]></description><guid>https://tiredsysadmin.cc/pages/intl/%76%63%66%62%2d%32%30%32%34</guid></item>
    <item><title>My GCP Compute VM times out: it's likely a CloudNAT problem</title><link>https://tiredsysadmin.cc/pages/intl/%67%63%70%2d%63%6c%6f%75%64%6e%61%74</link><pubDate>Wed, 12 Jun 2024 22:38:56 +0200</pubDate><description><![CDATA[<h2 id="my-gcp-compute-vm-times-out-its-likely-a-cloudnat-problem">My GCP Compute VM times out: it's likely a CloudNAT problem</h2>
<h3 id="tldr-go-straight-to-solutions"><a href="#possible-solutions">TL;DR, go straight to solutions</a></h3>
<p>Throughout my entire carreer I always considered working for startups a risky business. Recently I joined one, simply because working for big tech in the times of a world crisis ensures no job security either. Shifting focus to other perks of startups, most people emphasize <em>agility</em>. I woulnd't call it an advantage I could appreciate myself: I'm <em>terribly bad</em> at being agile; also working mostly in infrastructure operations I have enough stress and context switching to deal with. Instead, I like the other aspect: the <em>exposure to the whole infrastructure stack</em>, with all possible variations of tech implementation. This is how I ensure I'll learn a lot, and I'll learn it quickly.</p>
<h3 id="problem">Problem</h3>
<p>Now back to the meat and potatoes. My first task at my new job(at the time of writing) was to setup an in-house GitHub Actions runner, so we could have faster and more predictable builds at a reasonable price. The lift and shift approach mostly worked, except one nasty thing: <code>helmfile diff</code> would never run until completion and eventually time out.</p>
<p>I should mention first that the VM the GitHub Actions runner is supposed to run on resides in a separate GCP account and runs <code>helm</code> against GKE clusters in other projects(dev, staging, production).</p>
<p>Next 3 hours I spent in a desperate attempt to identify the root cause of the problem. First thing to supect was some kind of a distro-bound bug, and indeed, spawning a new machine running Debian 12 (vs Ubuntu 22.04 on the initial setup) took an immediate effect. However, replacing the image in a Terraform manifest resulted in the same failure as before: a CI pipeline breaks with no real evidence of where do timeouts come from.</p>
<p>My second guess was a firewall rule applied to a Kubernetes API endpoint, but then running <code>curl</code> in a loop against my own server outside of GCP's VPC yielded the same result: after 64th call I was hitting a timeout. But why exactly 64? After reading <a href="https://cloud.google.com/nat/docs/ports-and-addresses">the CloudNAT documentation</a> everything started making sense.</p>
<h3 id="possible-solutions">Possible solutions</h3>
<ol type="1">
<li><p>The most obvious one: <em>assign a public ip address to the VM</em>. That will eliminate the need in CloudNAT, as well as its shortcomings.</p></li>
<li><p>If you absolutely have to keep your VMs behind CloudNAT, you have an option to <em>adjust port ip-port pairs binding timeouts</em>. You can do this by applying following Terraform code:</p></li>
</ol>
<pre><code>module &quot;cloud-nat&quot; {
  source        = &quot;terraform-google-modules/cloud-nat/google&quot;

  ...
  # See https://cloud.google.com/nat/docs/ports-and-addresses for more details
  # on circumventing CloudNAT limitations
  enable_dynamic_port_allocation  = true
  tcp_transitory_idle_timeout_sec = 1
  tcp_time_wait_timeout_sec       = 1
  max_ports_per_vm                = 1024
  min_ports_per_vm                = 32
}</code></pre>
<p>That's it! I hope this memo saved you some brain cells, grey hair, and precious sleep. If you have a suggesstion, do not hesitate to <a href="https://github.com/reactorcoremeltdown">@GitHub</a> me.</p>]]></description><guid>https://tiredsysadmin.cc/pages/intl/%67%63%70%2d%63%6c%6f%75%64%6e%61%74</guid></item>
    <item><title>Vintage Computing Festival Berlin 2023, the report</title><link>https://tiredsysadmin.cc/pages/intl/%76%63%66%62%2d%32%30%32%33</link><pubDate>Sun, 22 Oct 2023 22:31:42 +0200</pubDate><description><![CDATA[<h2 id="vintage-computing-festival-berlin-2023-the-report">Vintage Computing Festival Berlin 2023, the report</h2>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/F8BE23B6-1E66-4BCF-B521-1EF3CC4994E9.png"><img src="https://tiredsysadmin.cc/media/pics/F8BE23B6-1E66-4BCF-B521-1EF3CC4994E9.png#cover" /></a></p>
<p>I have already shared in many different places that my mind has drifted a little towards the topic of collecting electronic junk, that is, outdated mobile phones. Recently, my peculiar hobby has reached a completely different level: I applied to participate in the Berlin Vintage Computing Festival. I was very nervous, thinking that I wouldn't be able to handle it and would blurt out some weird nonsense, that the theme of my exhibit, amidst a multitude of truly old computers like the BK or ZX Spectrum, would be entirely out of place. To my great relief, I was wrong.</p>
<h3 id="beginning">Beginning</h3>
<p>As it usually goes, any exhibition begins with submitting an application to participate in it. I wasn't particularly hopeful, and even two weeks before the opening, no one had contacted me, not a soul. Well, that's not entirely true. Someone did. Just not the organizers, but Evgeny Bolshakov, my friend who brings Soviet BK computers to the exhibition. He was pleased with my declared participation, and I was glad that we would meet in the cool nerdy crowd. And indeed, soon my name appeared on the official website's list of participants. Well, now I really had to get prepared! Initially, I had requested three tables and one power strip. It should be enough for thirty-something mobile devices.</p>
<h3 id="preps">Preps</h3>
<p>As is usual with me, I first create a nearly flawless plan of action, and then execute it strictly in a random order, that is, as circumstances dictate. The situation had an extra edge because on the evening just before the festival, I had a planned visit to an IAMX concert. In Leipzig. I literally hopped on an intercity train straight from my workplace and ventured into the industrial outskirt of the most boring city in Germany, which at that moment felt magical to me.</p>
<p>The Täubchenthal club radiated the vibes of a true German club, and the cyber-industrial-cabaret atmosphere permeated every nook and cranny. Chris Corner himself felt right at home.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/DE99F3A0-E962-44B4-908D-406A31F082ED.png"><img src="https://tiredsysadmin.cc/media/pics/DE99F3A0-E962-44B4-908D-406A31F082ED.png" /></a></p>
<p>Time to go home. I had just five hours of sleep left, but that didn't bother me in the least. The concert had charged me up well, and I was ready for anything. My suitcase had been packed well in advance, in the basement, a week ago. It held over 30 units of various devices, ranging from ancient Palm Inc. PDAs to nearly modern smartphones. I say "nearly" because Android 4.x already looked quite ancient. Of course, all this required chargers, as well as a laptop to extract data via USB or Bluetooth. The job was done, it was time to go. It was 8 in the morning.</p>
<p>The venue for the festival was kindly provided by <a href="https://en.m.wikipedia.org/wiki/Humboldt_University_of_Berlin">Humboldt University</a>. We had at our disposal three enormous, thematically divided halls, a snack room, and restroom facilities. An improvised reception area was set up right in the corridor. After a brief overview of the festival rules (signed, of course), I was given a personalized badge. It was time to unpack!</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/65BFB5DC-5E76-4B32-9833-8245B8032F69.png"><img src="https://tiredsysadmin.cc/media/pics/65BFB5DC-5E76-4B32-9833-8245B8032F69.png" /></a></p>
<h3 id="exhibition">Exhibition</h3>
<p>I sorted all the phones and pocket computers into sets based on their functions and supported operating systems. Of course, the center stage was taken by my favorite Motorola mobile phones running on MontaVista Linux. I invested a lot of time in modding them, which, in turn, enhanced my scripting skills and basic command-line interaction.</p>
<p>A substantial group was also formed by regular "dumbphones," or feature phones. These were basic mobile phones that supported a maximum of J2ME applications. But they all had something in common: I had a strong emotional connection with these phones back in the day, which still exists. In my collection, there is even an almost unused Sony Ericsson W800i, the first of all under the Walkman brand! It was quite a hype back in the day.</p>
<p>A slightly smaller group is made up of smartphones based on Symbian. Here I have a wide variety because the operating system itself was divided into many different flavors. To name the few: Series60 V2, Series60 V3, Series60 V5, UIQ V3. And it's not only Nokia that could and did create Symbian-based devices; in my collection, there are also devices from Sony Ericsson and Motorola, who, by the way, were the founders of this consortium. For a complete set, I'm missing UIQ V2, Series80, maybe even Series90 (very rarely and very expensive), and for the sweetest part, a pocket assistant from Psion, running on EPOC, the ancient predecessor of Symbian.</p>
<p>For dessert, I had the coolest toys of their time, namely PDAs. Among them, I had the Casio Cassiopeia based on Windows CE 3.x, Fujitsu-Siemens Pocket LOOX based on Windows Mobile 2005, and the Palm III. Oh, how I drooled over such devices back in the day! Take, for example, the fact that they all had many reassignable buttons, a vast array of available software, and most often, a very high-quality audio system, complete with a standard headphone jack. Maximum convenience!</p>
<p>Palm, of course, stood out. Firstly, it ran on two AAA batteries, which was unusual but quite normal for the nineties. Secondly, the Palm OS operating system was primarily single-tasking, meaning that when you returned to the home screen, the previous application was simply unloaded from RAM. And thirdly, the primary input method was Graffiti, a proprietary system of hieroglyphs that, with some skill, allowed for reasonably fast text input. This same system was later licensed for use in Windows Mobile, although it wasn't the primary input method there.</p>
<p>Finally, I have devices that fell victim to the well-established duopoly of Apple and Google. These are the Blackberry Z10, running on QNX, and the Nokia Lumia 520 based on Windows Phone 8. Both platforms met similar fates: first, in a moment of desperation, RIM and Microsoft introduced support for Android apps, and eventually abandoned these platforms as unprofitable ventures.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/3EDEC09B-63C2-444E-9ED1-7B93C6F7AD9B.png"><img src="https://tiredsysadmin.cc/media/pics/3EDEC09B-63C2-444E-9ED1-7B93C6F7AD9B.png" /></a></p>
<p>Now, with the entire exhibit laid out, all that's left is to await the most important part—the exhibition visitors!</p>
<h3 id="visitors">Visitors</h3>
<p>And finally, the very reason this whole festival was coming together! Well, of course, hanging out with fellow nerds is always cool, but without our guests, the visitors, it wouldn't be an exhibition but more like a LAN party. We had a lot of them, way more than I could have ever imagined.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/7E8DC3BB-7111-4755-ADB1-E957297DAEE0.png"><img src="https://tiredsysadmin.cc/media/pics/7E8DC3BB-7111-4755-ADB1-E957297DAEE0.png" /></a></p>
<p>The stream just didn't stop. I could barely find time to sit down or have a cup of tea. And it was great because the visitors showed real, lively interest! Not many remember the original Spectrums and BK in action, but almost everyone remembers mobile phones. Even the little kids, but they found it interesting too. You could play Minesweeper, Solitaire, pop bubbles, and doodle in the program on a Pocket PC. Even on my very peculiar Motorola A780, which was essentially an upside-down flip phone with a touch screen, teenagers left me drawings.</p>
<p>Among other interesting attractions, I offered guests extensive stories and explanations about nearly every phone in the collection. There was also one fascinating attraction: two phones featured a good camera and a xenon flash, specifically the Motorola ZINE ZN5 and the Sony Ericsson Satio U1i. I took photos with them right at the exhibition and sent them to guests via email or through Telegram. Everyone had a great time!</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/13302C89-464A-422A-B4F2-EEDE7EFD12BB.png"><img src="https://tiredsysadmin.cc/media/pics/13302C89-464A-422A-B4F2-EEDE7EFD12BB.png" /></a></p>
<p>It was delightful to see some good friends among my guests. We spent several hours by my booth engaged in conversations and even had the opportunity to explore the newly assembled Clockwork Pi, which was designed as a likeness to a very intriguing device that made an appearance at the festival.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/45D31159-ED49-48AC-914B-B740842AF797.png"><img src="https://tiredsysadmin.cc/media/pics/45D31159-ED49-48AC-914B-B740842AF797.png" /></a></p>
<h3 id="other-remarkable-exhibits">Other remarkable exhibits</h3>
<p>Yes, here it is, the RadioShack TRS 80 Model 100. Beloved by journalists as a digital typewriter, it also functions as a computer with one of the versions of BASIC. Yes, it's a portable computer, and the ability to connect it to a printer made it even more useful.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/24C3B88B-0AD7-46EB-A7A2-30FD744CF08F.png"><img src="https://tiredsysadmin.cc/media/pics/24C3B88B-0AD7-46EB-A7A2-30FD744CF08F.png" /></a></p>
<p>And, of course, I couldn't overlook the Apple Newton, perhaps one of the biggest failures ever in the pocketable computing industry. The only possible method for users to input text into this beast was handwriting recognition on the screen, which worked incredibly poorly! Nevertheless, the device became a part of history, maybe not the brightest page, but certainly a recognizable one.</p>
<p class="card"><a href="https://tiredsysadmin.cc/media/pics/873E4115-748F-479F-8073-26BCFC50E6EF.png"><img src="https://tiredsysadmin.cc/media/pics/873E4115-748F-479F-8073-26BCFC50E6EF.png" /></a></p>
<h3 id="final-thoughts">Final thoughts</h3>
<p>Without a doubt, I will submit an application to participate in VCFB 2024! Such an event cannot be missed. Nowhere else will I find so many enthusiastic, kind, intelligent, and bright individuals interested in computing technology and its history, as at a festival like this.</p>
<p>By the next year, I plan to slightly expand my collection and present a broader range of palmtop computers: small folding devices with comfortable text-entry-sized keyboards. In this weight class, you'll find such gems as the Psion Series 5, Nokia 9300, HP Jornada 720, Sharp Zaurus SL C-1000, and even the Atari Portfolio! Without these devices, it's challenging to showcase and explain the history and the path to miniaturizing a full-fledged office into your pocket.</p>
<p>Until we meet again! Stay tuned for announcements.</p>]]></description><guid>https://tiredsysadmin.cc/pages/intl/%76%63%66%62%2d%32%30%32%33</guid></item>
    <item><title>⚡️ How to lock an Android phone when pocketed: a Tasker recipe</title><link>https://tiredsysadmin.cc/pages/intl/%61%6e%64%72%6f%69%64%2d%70%6f%63%6b%65%74%2d%6d%6f%64%65</link><pubDate>Wed, 12 Jul 2023 12:36:38 +0200</pubDate><description><![CDATA[<h2 id="️-how-to-lock-an-android-phone-when-pocketed-a-tasker-recipe">⚡️ How to lock an Android phone when pocketed: a Tasker recipe</h2>
<p class="card"><img src="https://tiredsysadmin.cc/media/pics/hello-yes-this-is-balls-vc7763zteqjwlk3ga3gyrr3getqd.jpg#cover" /></p>
<p>During the last few months I have noticed that I've sent a number of messages and also changed some system settings unintentionally, all while trying to pocket my phone unlocked. Not something pleasant. And, to my surprise, there was no built-in setting for detecting owner's pocket. Thanks to Android's flexibility, we can develop our own.</p>
<p>Below you may find a working recipe for <a href="https://tasker.joaoapps.com/">Tasker</a>. Please be aware of the following caveats:</p>
<ul>
<li>Tasker <em>cannot</em> lock the screen itself while leaving the fingerprint scanner functioning. You'll need another application for that</li>
<li>You might want to isolate a few applications from this recipe in order to prevent unexpected behaviour.</li>
</ul>
<h3 id="step-1-isolate-google-phone-or-any-other-dialer-app-and-maybe-some-of-your-fav-games">Step 1: isolate Google Phone (or any other dialer app) and maybe some of your fav games</h3>
<p>In order to prevent unexpected hanging up, or locking the screen when gaming, isolate selected apps with a special profile:</p>
<ol type="1">
<li>Create a task that sets any variable of your choice to <code>true</code>. Let's say we use <code>%donotlock</code> variable</li>
<li>Create another task that unsets this variable</li>
<li>Create a profile with <em>Applications</em> conditional</li>
<li>Pick applications that you would like to isolate</li>
<li>Select a task that sets the <code>%donotlock</code> variable to <code>true</code></li>
<li>Long tap on tasks assigned to you new profile to add an exit task that unsets the variable</li>
</ol>
<details><summary>See pictures for more details</summary>
<p>

<p class="card"><img src="https://tiredsysadmin.cc/media/pics/360092528_255981663839297_7030283380271157330_n-hwxyvny4mlexnejxekvsbdxtqnid.png" /> <em>Step 1.1</em></p>
<p class="card"><img src="https://tiredsysadmin.cc/media/pics/360079271_759717275951807_1159368831888321346_n-vcp7v4xaqzpyntzlpq4vxxl63b5b.png" /> <em>Step 1.2</em></p>
<p class="card"><img src="https://tiredsysadmin.cc/media/pics/360050920_655592063112384_2449136859819619849_n-3g2242blimlq2tajxpjtqyi7ojf3.png" /> <em>Step 1.4</em></p>
<p class="card"><img src="https://tiredsysadmin.cc/media/pics/360165068_933734331051599_4031020096527115102_n-wwzstws2xayvev4moxmlcwuuuuem.png" /> <em>Steps 1.5 and 1.6</em></p>
</p>
</details>

<h3 id="step-2-install-pineapple-lock-screen">Step 2: Install Pineapple Lock Screen</h3>
<ol type="1">
<li>Get <a href="https://f-droid.org/en/packages/net.blumia.pineapple.lockscreen.oss/">the app from f-droid</a></li>
<li>Launch the app</li>
<li>Grant all required permissions (Accessibility)</li>
<li>Test the screen lock functionality</li>
</ol>
<details><summary>See pictures for more details</summary>
<p>

<p class="card"><img src="https://tiredsysadmin.cc/media/pics/360057951_948617063077725_708384421566006021_n-4praimrkeesgcaxq4ke6ihjtosll.png" /> <em>The lock screen app</em></p>
<p class="card"><img src="https://tiredsysadmin.cc/media/pics/360149457_985192975953135_6304770089330263857_n-saye4iifhcxlbkzrsrva36opmvup.png" /> <em>Required permissions</em></p>
</p>
</details>

<h3 id="step-3-create-a-tasker-task-that-triggers-pineapple-lock-screen">Step 3: Create a Tasker task that triggers Pineapple Lock Screen</h3>
<ol type="1">
<li>Create a new task</li>
<li>Add a "Wait" step for convenience, I usually pick one second delay</li>
<li>Add an Application step, long tap on "Pineapple Lock Screen", select the Lock Screen shortcut of the app
<ol type="1">
<li>Add a conditional that prevents this step from executing when <code>%donotlock</code> variable is set</li>
</ol></li>
</ol>
<details><summary>See pictures for more details</summary>
<p>

<p class="card"><img src="https://tiredsysadmin.cc/media/pics/360047802_179032861678972_8601159148466897195_n-5645o47hatmtwaqynjliti3qri24.png" /> <em>Steps 3.1 and 3.2</em></p>
<p class="card"><img src="https://tiredsysadmin.cc/media/pics/360956532_253853614031639_1534392088457474234_n-srkinwrdc6y67y2ifyryhwqbvusv.png" /> <em>Steps 3.3 and 3.3.1</em></p>
</p>
</details>

<h3 id="step-4-assign-a-profile-to-your-newly-created-task">Step 4: Assign a profile to your newly created task</h3>
<ol type="1">
<li>Create a new profile</li>
<li>Select <code>State -&gt; Sensor -&gt; Proximity Sensor</code></li>
<li>Assign your newly created task from step 3</li>
<li>You're ready to go!</li>
</ol>
<details><summary>See pictures for more details</summary>
<p>

<p class="card"><img src="https://tiredsysadmin.cc/media/pics/360076993_684061843559087_8276011759918822736_n-5b6le4ecv2fiapqveowznqrg674m.png" /> <em>The end result</em></p>
</p>
</details>

<p>With this relatively small recipe I've gained confidence in me not making any accidental butt calls when tucking away my phone in haste while checking out at supermarket. Hope it helps you too!</p>]]></description><guid>https://tiredsysadmin.cc/pages/intl/%61%6e%64%72%6f%69%64%2d%70%6f%63%6b%65%74%2d%6d%6f%64%65</guid></item>

  </channel>
</rss>
