Monday, November 3, 2025

Open-sourcing Image Converter for Android

Last update: 2025.11.14

Original post 2025.11.03

I built Image Converter during a hackathon in a short amount of time and published it in November 2020. Since it did not generate any revenue (no subscriptions sold, totaling $22.50 from ads over five years), I largely forgot about it. However, Google reminded me that I should update it to target the latest SDK, or else face consequences. Additionally, I decided to move it as the final project from self-hosted SVN to GitHub, five years after its initial launch. As a result, I have decided to open-source it as well, marking the ninth Android app that I have open-sourced!

AdMob earnings

Please note that the published version still targets Android SDK 30 and will not work on newer Android devices, as it uses direct storage access, which was once allowed. I haven't updated it yet, as it is not a priority for me. Meanwhile, users with slightly older Android devices can still enjoy the free, open-source, and lightweight image converter. Just follow the link below:

Image Converter on GitHub

Update 2025.11.14

Sooner than originally planned, I have updated Image Converter to target Android SDK 35. To make my life easier, I have decided to drop support for older devices, so the latest release requires a minimum Android SDK of 29. The version for older devices will remain downloadable here: Image Converter release 1.0.6.

The app has also been visually updated to support Material Design 3 with Dynamic colors.

Old version screenshots
New version screenshots

Another personal milestone has been reached: the first app that has been built on Linux instead of on a Windows system.

 


Sunday, October 26, 2025

Summer of 2025 swimming

No Indian summer this year — (Alt+0151) at least, that's my subjective impression. My swimming season started on June 1 and finished on September 22. I used to stretch it until November, but in the past few years, we haven't had a proper fall and have gone straight from summer to winter.

To sum it up:
18 × 0.5 km
51 × 2.5 km

... makes 136.5 km. That's 833.5 km since 2021. Looks like Greece next year.


Thursday, October 23, 2025

Using FFmpeg to add audio to your video

I have decided to add some background music to my smartphone gameplay casts, and it turns out that it's easiest to do this with ffmpeg. It's just a two-step process:

  1. Find out the video length.

    ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4

  2. Add background music with a fade-out effect (starting two seconds before the video ends, D-2 should be the video length returned by the previous command, minus two seconds).

    ffmpeg -i input.mp4 -i input.mp3 -map 0:v -map 1:a -c:v copy -c:a aac -af "afade=t=out:st=D-2:d=2" -shortest output.mp4

Sunday, August 31, 2025

Celestial Illumination for Android

Back in 2020, I was contacted by a company that was sourcing Android apps for the U.S. Army. I learned about the hackathon they organized and decided to compete with a few apps (apparently, developing only one was not enough for me). During the hackathon, the SolarWinds security breach was discovered, and the whole event was canceled. We didn't manage to present the apps in all competing categories; however, this one went through (and no, it did not win).

As there is no point in keeping your work on your drive only, I decided to publish it on Google Play anyway, and you know how the story goes... I got filthy rich—again (total revenue: $4.28 USD).

Today, I returned to the app after five years of neglect and updated it to comply with the latest Google Play Store policies. Yes, the app needs a complete redesign, but I'll leave that for another time, perhaps along with open-sourcing it as well.

In any case, if you are planning some kind of special forces operation, or if you are merely a search and rescue coordinator, pilot, sailor, astronomer, photographer, farmer, outdoor adventurer, event planner, researcher or scientist, you might find my app, Celestial Illumination for Android, useful.


 

Thursday, August 21, 2025

New word puzzle game - Worderer

Last updated: 2025.11.01

My new game is 'officially' released today and can be downloaded from Google Play here. Daily word puzzles will help you exercise your brain and expand your vocabulary. The top three world languages are supported: English, Spanish and Croatian. YouTube videos with game-play are here: en, es, hr.

I wrote the core of the game about a year ago, but put it aside after discovering a comparable word game that had fewer than 50 downloads in 10 months. Still, I seem to be haunted by unfinished projects, so I picked it up again and decided to release it anyway - even though I had told myself I was done with native Android development.

Give the game a try and let me know what you think!

2025.09.20 update

One month since launch!
Downloads so far: 10
Daily Active Users: 0

My current marketing approach has been posting in puzzle and game-related subreddits, but unfortunately most of those posts end up getting auto-filtered 😅. Getting visibility is harder than coding the game itself.

2025.11.01 update

Following advice from social media, I decided to promote Worderer by posting daily gameplay clips — not the latest daily challenges (as that wouldn’t make much sense), but the easiest ones from random previous days. I’ve been doing this for the past month.

Two months after launch, here are the results of my marketing efforts (31 videos posted):

  • Downloads: <50 (still)
  • Installed audience: 9
  • Monthly active users: 4

Here is how it went on each social network:

Bluesky — I couldn’t open an account without getting blocked.

Facebook (Worderer Page) — No interaction with my short videos, post insights showed only a handful of views at best.

Instagram — Zero followers, two likes across 31 posts. Shorts from the past week had 0 views. The most-viewed video (340 views) was posted on the second day.

Mastodon — No interaction at all.

TikTok — The most-liked video (2 likes) had just 15 views and was posted on the final day. The video with the most views (308) came the day before. Views improved slightly when I added background music — I found ragtime to be a good fit, since it’s light, cheerful, and often in the public domain (though one video still got muted on both TikTok and YouTube due to a false copyright claim). Only recently has TikTok allowed me to like other videos, and I still can’t follow anyone. Currently: 3 followers, 7 likes total.

X-Twitter — No followers, no likes. Statistics show between 0–8 views per post.

YouTube — Two longer videos (not shorts) got 0 and 2 views. Shorts ranged from 0–100 views, with only the first one receiving a like.

Since the number of downloads and active users didn’t increase, it’s clear that one month of daily posting hasn’t had much effect.

One general takeaway: it’s better to post screencasts in dark mode, since some platforms display video descriptions in white text.

Friday, August 15, 2025

Google Play Store app description text formatting

The StackOverflow answers here are outdated, so I have decided to take notes based on my own experiments. Here are the HTML tags that work and how they function:

  • <b>, <i> work in Google Play Store app, but not on the web.
  • <ul> doesn't work. There are no bullets inserted and opening and closing tag get interpreted as a newline character, so if you want indentation and bulleted items, use: &#8195;&#8226;&#160; (yes, there are many different space characters)


Thursday, August 14, 2025

UserVoice alternatives

Note to self: This is an export from Google Docs with the same title. It's easier to handle tables there than in Blogger. The list was collected about a year ago.

Cloud solutions

In alphabetical order …


Name

Free plan

Import from UserVoice / Comment

Aha!Ideas

No

Yes.

Canny

Yes

Free plan has 100 posts limit and admins can't comment.
They do not advertise UserVoice import functionality, but their developers can do it in the background.

Featurebase

Yes

CSV import, not all fields are supported.

Idea Vote

No


Kampsite.co

Yes

Free plan supports up to 30 suggestions.

Nolt.io

No


Prodcamp

Yes


Productboard

Yes


Savio

No


Sleekplan

Yes

CSV import, not all fields are supported.

Support Hero

No

Done via API.

Upp.vote

No


Upvoty

No


UseResponse

No


Userjot

Yes

Yes, they provide tools to help you import your existing feedback data from UserVoice. Contact their support team.

Self-hosted solutions

In alphabetical order …


Name

Status

Languages

Import from UserVoice / Comment

Astuto


TypeScript, Ruby


Feedbacker

Dead

JavaScript


Fider


Go, TypeScript

No

LogChimp

Not ready? Dead?

Vue, JavaScript


Loomio


Ruby, Vue


PHPBack

Dead

PHP


Relevant reddit thread

https://www.reddit.com/r/selfhosted/comments/1aek8yf/selfhosted_cannyio_alternative/