Sunday, October 11, 2026

Summer of 2026 swimming

The #summer of 2026 has ended, as has my #swimming season, which lasted from June 13 to October 3. To sum it up, I swam:

4 × 0.5 km
8 × 1.2 km
51 × 2.5 km

This totals 139.1 km for this year, bringing my overall distance to 972.6 km since 2021. My imaginary trip has finally taken me out of the Adriatic and into the Ionian Sea. I will be resting on the shores of Corfu Island until next season. I was thinking swimming back to Italy, but upon further reflection, I haven't made up my mind about whether to exit the Mediterranean through the Strait of Gibraltar or the Suez Canal. Any insightful comments on that would be appreciated!

Distances in kilometers by year:

2021    200
2022    182.5 
2023    180
2024    134.5
2025    135.6
2026    139.1

 

Saturday, October 10, 2026

Another android dev rant

Developing for android is either it's like trying to hit a moving target as the platform is constantly changing, or it's like being on an abandoned ship as the proper docs are absurdly missing. 6+ years since the issue was reported, and we are still supposed to guess that MaterialDatePicker uses UTC timezone.



Tuesday, September 22, 2026

OI Shopping List for Android: how to save data and transfer it to a new phone

For years I relied on OI Shopping List, little open‑source app that also let me track the prices for groceries that I buy. The app is nothing fancy, nothing bloated, just the essentials: item, unit, price, store. Then, I have decided (actually, I was forced) to replace my phone with a new one. It turned out that OI Shopping List data export is broken, and there are no other sync options. The app was not updated since 2020. My entire carefully curated shopping list with prices was trapped on my old device like a hostage. 

After being desperate for a while,  I tried something I didn’t expect to work: an old‑school ADB backup and restore. Against all odds, it actually transferred my OI Shopping List data from the old phone to the new one. Though with warnings that the method is deprecated and that it might stop working any time.

So run this command while the old phone is connected:
adb backup -f oi_shopping.ab -apk org.openintents.shopping

And this one while the new phone is connected and OI Shopping List installed:
adb restore oi_shopping.ab

Now I’m left with a bittersweet victory. I saved my data, but the app that has it is effectively dead. I also went down the rabbit hole of "modern replacements". Every open‑source shopping list app today is either too simple (no price tracking), too complex (full household inventory systems), or just missing the one feature I actually need. Even if I fork the OI Shopping List or write a new app to suit my preferences, I won't be able to transfer the data that easily. I genuinely reached the point where paper and pen feel like a more reliable technology than Android apps in 2026.

Thursday, September 17, 2026

What to do with an old laptop

Posted on LinkedIn (in Croatian language), Twitter, Bluesky and Mastodon.

Your old laptop doesn't belong in the trash or needs to be "recycled". All it needs is a little attention, a screwdriver and €15 for an adapter+SSD from a popular Chinese shopping site. 🛠️

Proof? My first laptop from 2004. Today, it runs the latest Linux Debian and:

  • powers the most popular Croatian Reddit bot
  • generates daily sequences for my word game (which nobody plays, but I'm not giving up) 
  • hosts a proxy server I use to scrape sites that think they can block me
  • hosts an RSS aggregator that filters information chaos into something resembling order 
  • ... what else could I add? 🤔

The original HDD gave out - it was the only part replaced. The rest of the hardware still works and serves its purpose flawlessly. We write off equipment as useless far too quickly! So this weekend, dust off your "old clunker" and spin up that home server. 😉 Bonus: fewer heavy metals and forever chemicals in the environment.

The most popular Croatian Reddit bot in action

fastfetch

Dead HDD (left) and modern replacement (right)

Tuesday, August 18, 2026

Version control systems that work on FreeDOS

Since I am into retro, I thought about hobby programming on an old machine that runs FreeDOS. I considered using version control systems, though I don't remember using any about 30 years ago when my main (and only) machine was running MS-DOS. My search led me to the following threads:

To conclude: 

  • Mercurial can be made to work locally. 
  • TLIB is a proprietary version control system still being sold. 
  • Free and open-source RCS 5.7 has been patched to work on DOS, another port can be found here. 
  • There is also Prism, and 
  • CVS DOS binaries can be found on various FTP servers.

Update 2026.10.09

There are CVS binaries, source code and documentation in DJ Delorie's GNU tools archive. I was curious enough to search for CVS hosting option as well. Thanks to wikipedia article Comparison of source-code-hosting facilities, I have discovered that following still support CVS:

They are all free for free and open-source projects. 

Sunday, August 16, 2026

How to update Tiny Core Linux from version 17.0 to 17.1

I am running only the Core base system, so these instructions cover only that.

  1. First, run getMirror. This will populate $MIRROR system variable. 

  2. Now, you have to update optional kernel modules, if you have any - I don't:
    cd /etc/sysconfig/tcedir/optional
    for File in *\-6.18.2\-*.tcz*; do wget $MIRROR/${File/\-6.18.2\-/\-6.18.35\-}; done

  3. Download updated vmlinuz and core.gz files from:
    http://www.tinycorelinux.net/17.x/x86/release/distribution_files/

    Replace with them existing files in the boot directory. In my case, it is:
    /mnt/sda3/tce/boot

  4. Reboot the system and that's it!

 

Saturday, August 15, 2026

Configuring the SSH server on Tiny Core Linux using OpenSSH

  1. Create (and persist) a proper user

    The default tc user is passwordless, so you either want to set a password for it or perhaps create a separate user. Creating a user and setting a password is the same as on other Linux distributions. Once you do that, you'll need to persist the changes. Add these lines to the /opt/.filetool.lst:

    etc/passwd
    etc/shadow
    etc/group

  2. Install the openSSH package

  3. Create the SSHD configuration from the template

    cd /usr/local/etc/ssh/
    sudo cp sshd_config.orig sshd_config
  4. Start the SSH daemon

    sudo /usr/local/etc/init.d/openssh start

    At this point you should be able to ssh into your machine.
  5. Make the SSH configuration persistent

    sudo echo 'usr/local/etc/ssh' >> /opt/.filetool.lst

  6. Edit the system startup file

    sudo echo '/usr/local/etc/init.d/openssh start &' >> /opt/bootlocal.sh

  7. Backup your configuration files

    backup 

  8. Reboot the system 

That should be it!