A while ago I discussed the Photo Search tool that I’ve created and that I use to index all my photos. One thing that had bothered me from the beginning was the need to use Python to load and use the models. I’m sure that there are some cases where using Python is not the worst choice, but those use cases typically involve rapid prototyping and not so much production-like scenarios where things like efficiency and resource consumption matter more.
Azure Blob Commands
I run a few of my workloads on VMs in Azure. Some of them deal with data and content that changes over time, and accordingly I like to have the data backed up periodically. Microsoft provides the AzCopy tool for uploading files to Azure blob storage alright, and it works very well with managed identities assigned to VMs (and other services in Azure).
But some of the same properties that apply to data also apply to the backups of that data: their value diminishes over time, so keeping backups for an extended amount of time is pointless. Accordingly, I always want to delete old backups after some time.
Photo Search
With the advent of publicly available LLMs and embedding models, I figured I’d kill two birds with one stone: I’d learn a bit about using such models, and I’d build a tool that lets me use a semantic search on my photos.
I keep those photos on a NAS in my home network, and frequently back them up using bart - my back-up and restore tool. So all I really need is a web site for showing the photos and letting me search them. That’s why I built photo search, a tool that uses publicly available multi-lingual models that work both on text and images to index and query photos based on the contents.
Real-Time Video Stream with Raspberry Pi
Over the years I’ve accumulated a few Raspberry Pis of different versions, each of which I’ve used for certain things, some of them I’ve retired or upgraded to newer versions. Consequently, I have a few Raspberry Pi 1 and 1B still around, and they’re not doing much aside from collecting dust. I also have an old Raspberry Pi NoIR camera that I haven’t been using much.
Over the years I’ve tried different things, including PIR-triggered recording of the camera feed, sort of to build a device that records what’s happening when the infrared sensor is triggered. While that actually worked just fine, I also wanted to be able to get a steady video stream from the camera that can be observed over the internet, if necessary.
Introducing Hash Tool
Hashes are everywhere in the digital world: checksums for file downloads, version control systems, fingerprints, password databases and verification, message authentication, digital signatures, blockchains etc.
As a developer, I often find myself in the situation where I quickly need to verify a hash, or generate a hash for some reason or other. That’s why I built the flrx39 hash tool: it lets you quickly evaluate some popular hashes in the browser. None of the data you input is sent to servers, all of it remains in your browser! It’s your data, after all. Check it out.
Pretty Printing JSON
Over the holidays I’ve used some of my time to modernize my JSON pretty printing tool and make it available on flrx39.net too. The new version is available under pretty print json.
Please make sure to check back often, as I will keep adding more tools over time. Also feel free to suggest new tools which you think could be useful 😄 I cannot guarantee that I will add all suggestions, but I will consider them.
Fast Blog with Hugo
I’ve wanted to get rid of Wordpress for a while now. It’s more of a hassle than anything else, really. And who on earth still uses PHP? Anyway, a while ago I embarked on the journey to find a good replacement. First, I looked at other CMS systems that are similar to Wordpress, but soon realized that they’d all require me to keep them up-to-date all the time, and they’d likely be just about as annoying. At the same time, I’ve gotten so used to creating web content using markdown, that I hoped I could find something where markdown indeed plays a significant role in building the content. In addition, being a developer at heart, I was hoping to also find something with a decent version control system for history and rollbacks (whenever necessary) and the likes.
Copy files with PowerShell Remoting
Recently at work, I found myself in the situation where I needed to copy some
file from my workstation to a jump box. Now of course, on Linux I’d just use
rsync
or scp
. But our IT doesn’t like provisioning Linux boxes and therefore
uses Windows for jump servers too, so no luck here. Luckily, I could convince
them to turn on and allow PowerShell Remoting, so with some simple scripts I can
still easily copy files over without using SMB. Here’s how.
Cheap and Secure Cloud Backups
I’ve wanted to find a good provider of cheap and secure cloud backups for a while.
I’ve compared some cloud drive providers, but didn’t quite like those. They
usually have very limited free plans, somewhat pricey paid plans (e.g. 50GB for
about 24$ a year for OneDrive), or like in the case of Google no information
available at all. By the way, “Google one is coming soon” isn’t an announcement
that I want to look at for more than a few days when looking for pricing info.
Then, I’ve looked at pricing of cloud storage providers, such as AWS, Azure and
Google Cloud. Those offer storage around 1 cent ($0.01) per GB per month. That’s
a quarter of the OneDrive cost! It’s even less if you consider their archive
offerings (AWS Glacier, Archive in Azure, Coldline Storage for Google). The
cheapest offering here is from Microsoft at 0.2 cents ($0.002) per GB per month,
but with some usage caveats. Since the point of backups is to keep them for a
long time, this quickly adds up though. Now I’ve written a line or two of code
before, so I figured I could as well write my own tool for this. So here is
bart
, the backup and restore tool. Note
that at this point I do not offer bart
as a ready-to-use executable, but only as
MIT-licensed source code. In addition, bart
currently works only with Azure
Blob Storage - or with storage mounted into the machine’s file system. However,
adding other cloud providers/archive destinations should be relatively easy,
given the interfaces used in the tool.
Offline JSON Pretty Printing
Nowadays when you’re dealing with Web APIs, you often find yourself in the situation of handling JSON, either in the input for these APIs or in the output, or both. Some browsers have the means to pretty print the JSON from their dev tools. But you don’t always have that opportunity. That’s why there are tools to pretty-print JSON. I’ve found quite a few of them on the web, but all the ones I’ve found have one terrible flaw: they actually send the JSON you’re trying to pretty-print to the server 🙀. I don’t want my JSON data (sensitive or not) to be sent to some random servers!