winvid – A slim YouTube to WMV converter
Posted in Other Projects March 18th, 2021 by dotcomboom

A couple days ago I hacked together winvid, a site that lets you download YouTube videos as 144p or 240p wmvs that you can play on Windows Mobile phones or other suitably older equipment.

The backend is a very simple Flask application that runs youtube-dl for downloading the video, and then ffmpeg to convert it into two qualities of WMV. First, it converts the downloaded mp4 into the 240p version, and then that is sampled down to an additional 144p mono version. This is done to save processing time, as the conversion from mp4 to wmv is actually the longest part of the process. Longer videos, naturally, will take a longer time to convert than shorter ones. Just hold on the line a few minutes. Once it’s done, it refreshes the index which lists out all the videos cached.

Regrettably, the site itself will not work on mobile IE due to Replit’s new encryption practices—yet another victim of the ever-spreading “HTTPS-first” philosophy. It will still work on RetroZilla and Opera Mini 5.1 however, so old PCs and pocket devices can still download to their hearts’ content, at least for now.

On mobile, remember that data charges may apply if you’re not downloading over Wi-Fi. If you’re on a prepaid plan like I am, you may find it beneficial to transfer the videos through Bluetooth/microSD/USB, what have you. I have gotten it down to about 2mb per minute for the 144p mono version so it’s just about as efficient as it could be on data, though results will still vary.

As well as Windows Mobile and Pocket PCs, I’m confident that this would be very useful for less equipped, retro processors as well–think your Pentium II-era, and potentially your XP-era machines. People throw 1080p video at these things and when they start skipping frames, deem them useless. In reality, 240p and even 144p are still quite watchable for a lot of videos so long as you aren’t narrowed into the details. I’m looking forward to trying it out under RetroZilla and WMP on some bare metal when I get the time.

It’s a small and niche pet project, but also pretty hackable and adaptable. If you’re the type, I encourage you to fork it, make changes to it, that good stuff. I’ll note that this definitely can be run over a local network as well with a bit of setup. I’ve found it useful, and hope it is for you too.

Tomate, a Pomodoro timer for your Windows Mobile
Posted in Other Projects, Software November 22nd, 2020 by dotcomboom

So, a few days ago I had an idea knocking around to make a Pomodoro timer. I’ve used Pomofocus every now and again but wanted to take a spin at it myself in VB. I was thinking of having it as a desktop application but then thought it’d be more fun to write it as my first proper Compact Framework application. I jotted a mockup down before going to bed, and got to implementing it today.

One thing I really like about Compact Framework development is its close similarities to Winforms. You get a designer (with the option to have a skin for any targeted screen size) and a subset of the controls you’re already familiar with. After about an hour and I had my first minimum viable product, something that could run within an emulator and on my phone. I even found out how to make those CAB installers.

This was the MVP, I’d say. 11:48 A.M., too. I spent much longer polishing it up and getting the beep to work.

Remember how I said that mobile development was really similar to Winforms? Well, that also means Compact Framework executables are more than happy to run under desktop Windows. (So long as you aren’t using any fancy device APIs, of course.)

This was pretty sweet–or, ripe.

A chunk of my time was then spent scratching my head and reading StackOverflow at how to implement playing sounds from the project’s Resources; I ended up giving up on that front, but was able to play the \Windows\Standard.wav sound and just do a system beep if that was not available (Desktop). Couldn’t have the pleasant sounds from Pomofocus unfortunately, rather a smidge loud beep sound. Perhaps later down the line.

Here’s the final version. I had polished up the UI by adding the arrow indicators on both sides of the screen when the timer is stopped, and replacing the mainMenu control with my own Start/Stop indicator label. All of these have Click events so they’ll work on desktop and Pocket PC. On desktop you can also start with Enter and switch modes with the keyboard using the same key codes internally as Windows Mobile. Convenient!

As I was making a release on GitHub, I found out I could actually target older platforms all the way back to Pocket PC 2003 (a touchscreen platform) without losing support for Windows Mobile 6.1 Standard (a non-touchscreen platform). I had thought that it would refuse to run, but it just worked. That was really cool to see.

I’m very happy with what I got done in the end. One more crossed off my idea list, and something I can really see myself using.

Oh right! You can find Tomate on my site or GitHub. Send feedback and help out if you wish. The CAB’s for installation on mobile devices, and the exe file will work on desktop. Check the readme if you need prerequisites.

(Sidenote: I’m not sure why Visual Studio packages with the CAB extension, uppercase. Alas, possibly one of those fabled Microsoft mysteries we’ll never solve.)

Google Maps on Windows Mobile: Still works!
Posted in w2krepo October 26th, 2020 by dotcomboom

Now here’s something pleasantly unexpected: Google Maps 4.1.0, from 2010, still works on Windows Mobile 6! I found this on freewarepocketpc.net, which to my delight still exists (Winmo software is hard to find!) and hosts mirrors of a bunch of software.

I have uploaded it to w2krepo (check out the new changelog). If you have any other useful Windows Mobile applications, drop me a line. I’ll be sifting around that site to find more stuff as well.

(If you’re wondering about the screenshots, they’re taken on the phone with SmartSS, transferred to the Storage Card and converted from bmp to png before uploading.)