<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Tomáš Šimíček</title>
    <subtitle>Tomáš Šimíček, developer and Tech Lead. I write notes about programming and take on smaller projects, consulting, and software audits.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://tomsimicek.cz/en/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://tomsimicek.cz"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-10-21T00:00:00+00:00</updated>
    <id>https://tomsimicek.cz/en/atom.xml</id>
    <entry xml:lang="en">
        <title>Encore: my own Spotify app with stats and ratings</title>
        <published>2026-10-21T00:00:00+00:00</published>
        <updated>2026-10-21T00:00:00+00:00</updated>
        
        <author>
          <name>Tomáš Šimíček</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://tomsimicek.cz/en/zapisky/encore-statistiky-spotify/"/>
        <id>https://tomsimicek.cz/en/zapisky/encore-statistiky-spotify/</id>
        
        <summary type="html">&lt;p&gt;I listen to music on Spotify, but I&#39;d long missed an overview of what I&#39;d played, when and how often. I also wanted to rate music and write short reviews of it. And it would be handy to see right next to an album how ProgArchives users rate it.&lt;/p&gt;
&lt;p&gt;I&#39;d wanted to write an app like that for years but never found the time. The last straw was finding out that the Spotify app on my Mac takes up over 1 GB of memory and puts a heavy load on the CPU even when it isn&#39;t playing anything. It was draining my battery for nothing, and I only noticed after a few hours. So with Claude&#39;s help I finally started building my own app. Even with Claude, it wasn&#39;t an afternoon&#39;s work. I spent dozens of hours on it, most of them debugging.&lt;/p&gt;
&lt;p&gt;The result is &lt;strong&gt;Encore&lt;/strong&gt;, a native macOS app that shows listening stats, stores my ratings and controls playback without the Spotify app.&lt;/p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Old Čtyřlístek games on a tablet</title>
        <published>2026-10-14T00:00:00+00:00</published>
        <updated>2026-10-14T00:00:00+00:00</updated>
        
        <author>
          <name>Tomáš Šimíček</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://tomsimicek.cz/en/zapisky/ctyrlistek-na-tabletu/"/>
        <id>https://tomsimicek.cz/en/zapisky/ctyrlistek-na-tabletu/</id>
        
        <summary type="html">&lt;p&gt;In March I wrote about how I &lt;a href=&quot;https://tomsimicek.cz/en/zapisky/running-old-games-ctyrlistek/&quot;&gt;got the old Čtyřlístek games running&lt;/a&gt; for my son in Wine inside Docker. They were playable, but it wasn&#39;t quite right. Since then Claude Opus has taken apart the games&#39; original executables and written a new engine for them in TypeScript. All eighteen episodes now run in the browser and as an app on an Android tablet. My son has played two of the games so far and loved them.&lt;/p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Reading a ZPA ZE314 electricity meter with ESPHome</title>
        <published>2026-10-12T00:00:00+00:00</published>
        <updated>2026-10-12T00:00:00+00:00</updated>
        
        <author>
          <name>Tomáš Šimíček</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://tomsimicek.cz/en/zapisky/odecitani-elektromeru-esphome/"/>
        <id>https://tomsimicek.cz/en/zapisky/odecitani-elektromeru-esphome/</id>
        
        <summary type="html">&lt;p&gt;For a while I&#39;d wanted to know how much electricity our house uses. Partly because we have an electric boiler that heats both the hot water and the underfloor heating, and partly because I enjoy having everything in Home Assistant and watching it over time. The main distribution board holds a ZPA ZE314 meter owned by the distributor – three-phase and dual-tariff. There is no socket nearby, so the choice fell on an ESP32 running on a battery.&lt;/p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Building a Rychlé šípy adventure for a six-year-old</title>
        <published>2026-06-01T00:00:00+00:00</published>
        <updated>2026-06-01T00:00:00+00:00</updated>
        
        <author>
          <name>Tomáš Šimíček</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://tomsimicek.cz/en/zapisky/rychle-sipy-browser-adventure/"/>
        <id>https://tomsimicek.cz/en/zapisky/rychle-sipy-browser-adventure/</id>
        
        <summary type="html">&lt;p&gt;My son has spent a lot of time listening to Jaroslav Foglar&#39;s books, and I often read them aloud to him too. That gave me the idea of making a game where he could join Rychlé šípy (the Rapid Arrows, the boys&#39; club from Foglar&#39;s novels) on an adventure of his own.&lt;/p&gt;
&lt;p&gt;The result is &lt;strong&gt;Rychlé šípy: Hledání ježka v kleci&lt;/strong&gt;, a Czech adventure game that runs in the browser. I built it for a phone or tablet held in landscape, and it is not publicly available yet. It has spoken dialogue and simple touch controls so that a young child can follow the story without having to read everything.&lt;/p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Bringing old Čtyřlístek games back to life for my son</title>
        <published>2026-03-01T00:00:00+00:00</published>
        <updated>2026-03-01T00:00:00+00:00</updated>
        
        <author>
          <name>Tomáš Šimíček</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://tomsimicek.cz/en/zapisky/running-old-games-ctyrlistek/"/>
        <id>https://tomsimicek.cz/en/zapisky/running-old-games-ctyrlistek/</id>
        
        <summary type="html">&lt;p&gt;My brother and I used to play the Czech Čtyřlístek games that came with Nesquik cereal promotions. Years later, I still had the CDs and wanted my son to try them. I expected a little compatibility troubleshooting. Getting from those discs to a playable game took rather more work.&lt;/p&gt;
&lt;p&gt;My own computers run Linux or macOS. A Windows 11 laptop from work seemed like an easy alternative, but the games crashed there too. Eventually I got all three running in Wine inside Docker, with the picture, sound, and controls accessible from a browser.&lt;/p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>DLQ: a download queue for a home server</title>
        <published>2026-02-18T00:00:00+00:00</published>
        <updated>2026-02-18T00:00:00+00:00</updated>
        
        <author>
          <name>Tomáš Šimíček</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://tomsimicek.cz/en/zapisky/dlq-download-queue/"/>
        <id>https://tomsimicek.cz/en/zapisky/dlq-download-queue/</id>
        
        <summary type="html">&lt;p&gt;For years, I used &lt;strong&gt;JDownloader2&lt;/strong&gt; on my home server. It ran in Docker, and I controlled its desktop interface through VNC in a browser. The downloads worked. Managing them was the part that wore me down.&lt;/p&gt;
&lt;p&gt;Pasting links meant dealing with clipboard sharing between the browser and the remote desktop. The window never fit properly in the browser, and using it from a phone was awkward. In my setup, adding links from the command line also meant going through MyJDownloader and an online account. I wanted something I could control directly on my own server.&lt;/p&gt;
&lt;p&gt;So I built &lt;strong&gt;DLQ (Download Queue)&lt;/strong&gt;: a service that keeps a download queue, exposes an API, and can be driven from a terminal or a web page. It also gave me a practical reason to learn Go and SvelteKit.&lt;/p&gt;
&lt;p&gt;The code and setup instructions are in the &lt;a rel=&quot;external&quot; href=&quot;https://github.com/Witriol/dlq-download-queue&quot;&gt;DLQ repository&lt;/a&gt;.&lt;/p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Překresleno.cz: image conversion without uploading your photos</title>
        <published>2026-01-16T00:00:00+00:00</published>
        <updated>2026-01-16T00:00:00+00:00</updated>
        
        <author>
          <name>Tomáš Šimíček</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://tomsimicek.cz/en/zapisky/in-browser-image-converter-webassembly/"/>
        <id>https://tomsimicek.cz/en/zapisky/in-browser-image-converter-webassembly/</id>
        
        <summary type="html">&lt;p&gt;A photo is in the wrong format. You need a JPEG for an attachment, a smaller image for a website, or a quick preview of a camera RAW file. It should be a small job, yet many online converters start by asking you to send the original to their server.&lt;/p&gt;
&lt;p&gt;I wanted a tool that could do the conversion on the device already holding the file. That became &lt;strong&gt;&lt;a rel=&quot;external&quot; href=&quot;https://prekresleno.cz&quot;&gt;Překresleno.cz&lt;/a&gt;&lt;/strong&gt;: select images, choose a format and size, then download the results. Image processing happens in the browser, without an account or an upload of the photos.&lt;/p&gt;</summary>
        
    </entry>
</feed>
