I blog about anything I find interesting, and since I have a lot of varied interests, my blog entries are kind of all over the place. You can browse my tags to sort them by topic and see which ones I frequently write about, or the archive has a complete history of my posts, dating back to 2008!
Besides my blog, I have pages for my creative projects, which are linked to on the navigation bar.
I write a lot about Linux and Android, Minecraft, and I like to rant about stuff. Generally anything that makes me curious. Also check out my Bookmarks for all sorts of cool websites about various topics I'm interested in.
I have just released a new toy program on my website: Error Message Generator 2.0, or ErrorGen for short.
ErrorGen is a simple program that lets a user configure customized error dialog pop-ups, with a custom icon, message and buttons, to prank their friends with or to put to good use by shell scripts if you want to ask the user a quick question from your external program.
My original ErrorGen was inspired by a web tool called "Atom Smasher's Error Message Generator" which would produce images of error dialogs that you could save to disk. My program, however, created "real" dialogs on your desktop PC that you could drag around the screen and interact with. The original version was written using Perl/Tk in 2006 and hasn't been updated a lot since - with the latest release built in 2008 for Windows XP and it hasn't aged well and doesn't run as easily on modern Windows anymore.
In 2022, Atom Smasher's page went offline and I have seen an uptick of interest in my old ErrorGen program ever since: it is recently the #1 most requested page on my website!
So, on January 21, 2023 I decided to reinvent my ErrorGen program from scratch, this time programming it in Go and to explore the Fyne UI toolkit which I had seen around but hadn't played with before. ErrorGen 2.0 has equivalent features to what my original Perl version had, but with a fresh and modern look based on Material Design that comes with Fyne and built for the modern era. I also have some plans to extend ErrorGen 2.0 with new features and especially make it more useful for command line interfaces, to make something on par with GNOME's Zenity tool.
Is Zenmsg a virus? asks:
It only opened a command box, and nothing else happened. Is this a virus?
No, it's not. 😊 ZenMsg is a command-line program (so it opens your DOS prompt if double-clicked on), but it requires command-line options to tell it what to do. When run without any options, it prints its usage information to the terminal and then exits; so when double-clicked on, your DOS prompt appeared and then closed because ZenMsg exited.
You'll want to run it from a PowerShell or Command Prompt window first (so that the console sticks around after the program exits), and you can see it just prints its usage information:
C:\Users\Noah\Downloads> ZenMsg.exe Usage: ZenMsg [--error --alert --info --question] [--title] [--text] [--button label] [--icon name_or_file] [--default label] [--cancel label] [--disabled n] [--version] [--help] Use the "--help" option for more help. (and it goes into detail on all the options)
If you call it with
ZenMsg --help it goes into full detail (the same documentation that's in the ZenMsg.html page the program ships with), including all the names of built-in icons. Every icon available on the Error Message Generator is built in to ZenMsg, and you can point it to a custom image on disk to use your own icon:
BUILT-IN ICONS Here is a list of all the built-in icons that you can use by name: aim_guy - Blue AIM guy icon aol_icon - Blue AOL icon attention - Yellow triangle around an exclamation mark bomb - Round black bomb icon bomb_dynamite - Icon of a bundle of dynamite and a trigger bomb_grenade - Icon of a grenade bulb - White light bulb butterfly - MSN Butterfly icon cake - Slice of pink cake on a blue plate circularsaw - Icon of a handheld circular saw control_panel - Generic control panel icon cow - Icon of a cow and a computer tower defrag - Disk Defragmenter icon disk_blue - Generic blue floppy disk icon disk_blue_label - Blue floppy disk with a label disk_orange - Generic orange floppy disk disk_red - Generic red floppy disk disk_red_label - Red floppy disk with a label disk_skull - Gray floppy disk with skull and crossbones disk_yellow - Generic yellow floppy disk error - Old-school X in a red circle error dialog icon error2 - Modern, shiny incarnation of an error dialog icon error3 - Beveled error dialog icon (like Windows XP) error4 - A red X icon file_cabinet - File cabinet icon find - Find Files icon floppy_drive - Generic floppy drive icon fortunecookie - Icon of a fortune cookie garbage_empty - Empty garbage can garbage_full - Bloated garabage can gun - Icon of a revolver pistol hammer - Icon of a hammer heart - Icon of a shiny red heart help - Old-school Windows Help icon hub - Icon of a hardware hub of sorts (networking?) hwinfo - Icon of a PCI device with blue "i" bubble above it ie5 - Icon of old-school Internet Explorer info - Speech bubble with an "i" inside keys - Generic icon of keys keys2 - Old Windows key icon keys3 - Generic key and padlock icon labtec - Icon of a server or something? mac - Striped colorful Apple logo mail - Generic icon of an envelope mail_deleted - Same envelope with a red X emblem in the corner. mailbox - Mailbox with the flag down mouth - Smiling mouth icon msdos - MS-DOS icon mycomputer - A "My Computer" icon mycomputer2 - A "My Computer" icon mycomputer3 - A "My Computer" icon newspaper - Generic newspaper icon peripheral - Generic computer peripheral icon plant_leaf - A certain green leafy plant pocketknife - A swiss army pocket knife question - Icon of a speech bubble with a "?" inside radiation - Yellow and black radiation symbol ram - Icon of a couple sticks of RAM recycle - Green recycle arrows logo recycle2 - Recycle arrows enveloping a globe of Earth scanner - Generic scanner icon screw - Golden screw icon screw2 - Gray screw icon setup - Generic icon for "setup.exe" type programs skull - Black skull and crossbones skull2 - Picture of a skull skull3 - White skull and crossbones tux - Icon of our favorite Linux mascot tux_config - Tux dressed up like a repairman ups - Icon of an uninterruptible power supply zipdisk - Icon of a single zip disk zipdisks - Icon of numerous zipdisks
You can call ZenMsg from a batch file or any other program (e.g. a Python or Perl script could call ZenMsg.exe and send it parameters). For example, open Notepad and save the following as "example.bat" (with quotes, ensuring that it gets a .bat extension and not .bat.txt) and place it in the same folder next to ZenMsg.exe:
@echo off ZenMsg --alert --title "Critical Error" --text "Now you've done it." ^ --button "Ok" --button "Cancel" --button "Accept blame" ^ --disabled 1 --disabled 2 > zenmsg-answer.txt echo The user had selected: type zenmsg-answer.txt del zenmsg-answer.txt
Double-clicking your example.bat file would then pop up that alert box. ZenMsg prints the user's selected button to its standard output, which we captured above by piping it into zenmsg-answer.txt (it's possible to get output from commands in e.g. Perl scripts too, so your program can ask the user a question and then have branching behavior depending on which button the user clicked on).
What kind of music do you listen to?
I listen to all sorts of things but most frequently are the following:
I generally like a lot of indie & electronic music in recent years. I have a Spotify playlist of several artists I like. Depending on my mood, some of my top go-to artists are Plantrae or Dirtwire if I just want some cool music with no/minimal vocals. Plantrae is also a great one to put on as some ambient music at the background of a party. Otherwise ZHU is often the one I click on and let Spotify have its way with me. Bob Moses is another favorite if I want something a little more bass-ey to jam out to.
I listen to a fair amount of pop music too, my top exposure to it being my car radio when I'm driving around, so whatever's on the Top 40 at a given time. Sometimes those songs will get stuck in my head and I'll play one on Spotify and let it wander and play similar songs for me. I also have a number of country artists/songs I like when I'm in the right mood and I have a short playlist on YouTube of sad songs when I need to get some emotions out.
And probably my #1 most favorite song in the world (which I don't let myself listen to very often, so that I don't ruin it for myself) is Canon in D.
Ax Wilson asks:
For some reason it is not opening the ZenMsg file how do i make it work.
ZenMsg is a command-line program designed to be invoked by batch scripts or similar apps when you want to show a customized alert box pop-up. When you run the program without any command-line parameters (including if you just double-clicked on ZenMsg.exe from your file browser), the program just prints out its usage instructions to your command prompt and then exits; if you double-clicked to run it, exiting means you saw a cmd window for a brief second which then closed immediately.
To run it properly, open Command Prompt (or Powershell) first, navigate into the directory you placed ZenMsg.exe in, and run "ZenMsg" at the command prompt to see its usage instructions. For an "easy" way to get a Command Prompt opened to the right directory, you can open Windows Notepad and type this text into it:
@echo off cmd
And save it as "terminal.bat" (with quotations on it! so that it saves with a ".bat" extension, and not "terminal.bat.txt") in the same folder as ZenMsg.exe; then double-clicking on the terminal.bat will open a Command Prompt already pointed at the current directory, so you can just type "ZenMsg" to run the other program. For more info about the Command Prompt, see the DOS tutorial on ComputerHope.com which is where I myself learned how to use the Command Prompt, way back in the day!
Why is ZenMsg a command line program?
My Error Message Generator program is a GUI where you can build your custom alert box message visually, and ZenMsg is a command-line version that can pop up your alert box without the ErrorGen GUI being needed.
The reason that ZenMsg is a CLI tool is so that you can invoke it from other programs easily, including from batch files or scripts written in Perl, Python or anything else. Actually, it's name, "ZenMsg" is based on the GNU/Linux program, Zenity from the GNOME project.
You should also be able to create a Windows shortcut file that runs ZenMsg with parameters so you can have a desktop icon that, when double-clicked, pops up a ZenMsg alert box with custom icon, message and buttons if you want to prank your friends or something.
What does your sites name kirsle come from/ what’s the meaning?
The short answer is that Kirsle is just an AOL screen name I came up with back in middle school and doesn't mean anything; and it turned out to be such a unique name (that most all Google results for it were about me), that I decided to keep it around forever.
The longer answer is that it was originally inspired by a videogame character on the game NiGHTS: Into Dreams for the Sega Saturn. One of the baddies in the game was named Kircle, with a C, but when I read it I thought the C should've been pronounced like an S but anyway my screen name was based on Kircle for a time. But after multiple people (including text-to-speech programs) were "mispronouncing" it, I swapped the C out for an S and in doing so found a very unique username for myself.
Also, fun trivia: kirsle.net was the first ever domain name I registered, back in 2005 when I was in high school (my mom had to buy the domain for me!) I took the ".net" extension instead of ".com" because I thought "kirsle.com" didn't roll off the tongue very well; and because I didn't have a bank account to just buy my own domain names, but I already had several different websites, I thought a ".net" suffix would go well to put a bunch of subdomains beneath ".kirsle.net" to host all my various sites on one domain name! (Before kirsle.net, my other sites were hosted on random free subdomains I could find online, also had a few free .tk domains back in the day!) I do now have kirsle.com and kirsle.org and they just redirect to kirsle.net because that name still sounds the best to me!
It's been a while since I posted an update about my videogame project, Sketchy Maze but I've still been working on it and had released a handful of updates since my last post about v0.7.1 and my game is starting to get interesting. 😉
Since my last update about v0.7.1 the game has got:
The full change log is always available on the Guidebook for more details.
If you haven't seen my game yet, check it out! It's still in beta so it may be buggy or crash sometimes, but any feedback is welcome!
About two weeks ago I again put my SIM card into my Pinephone to see whether I can make it a daily driver device. The last time I tried this was nearly a year ago so I have that benchmark to compare it to as well as some new information now.
This week, some news about Waydroid made its way to the r/linux subreddit and in the comments I saw a Pinephone owner write about their experience with Waydroid and none of his complaints had anything to do with it being slow or clunky or broken, which is about what my experience was the last time I tested out Anbox about a year ago.
So it prompted me to check Waydroid out, and... it works remarkably well! It really surprised me. Waydroid makes use of containers to run Android directly on your own Linux kernel, without emulation, and so it performs very well -- some Android apps even run more smoothly than their native Linux counterparts!
I wasn't expecting that the Pinephone was ever going to be able to run Android apps smoothly on a GNU/Linux system, but now that it does, and does so this well, this is a game changer in terms of the Pinephone being "daily driver" ready. Finally, I have a way to use Slack and Discord from my Pinephone, something that was basically not possible at all before!
Now, to be clear: even without Android, there are a very good collection of Linux apps that already work well on the Pinephone. Having the option of Android for the odd proprietary app like Slack or Signal is nice to have. Read on to the full blog post for how Waydroid works right now, what are some of its pain points still, and a few screenshots of my Phosh app drawer showing everything I have installed on my Pinephone.
For the past few years, on and off (sometimes more off than on), I've been working on a videogame called Sketchy Maze and had been taking screenshots of it along the way. This blog post will be a bit of a retrospective and a series of screenshots showing it from its very first prototype up to the state that it's in now.
I wasn't even sure I was going to get very far on this project. I had once attempted programming a game in Perl and lost steam after barely having a working prototype. I had dabbled a few times getting started programming a game but then decided my brilliant idea of an RPG game wasn't worth all the programming. Stubbornly, I never wanted to just use a game engine like Unity or Unreal but wanted to program it all myself. And programming from scratch is considerably the harder way to go, so your game idea had better be worth it in the end!
The game idea that won out is a personal and nostalgic one. Back in the 90's when I was growing up with videogames like Sonic the Hedgehog and Super Mario Bros., I would often draw my own "mazes" or levels like on a 2D platformer game, with pencil and paper and then "play" it with my imagination. I'd imagine the player character advancing through my maze, collecting keys that unlock doors, pushing buttons that activate traps somewhere else on the page. I'd write little annotations about which button did what, or draw a dotted line connecting things together. My mazes borrowed all kinds of features from videogames I liked, all your standard platformer stuff: buttons, trapdoors, conveyor belts, slippy steep slopes, spikes and water and whatever I wanted.
So my game concept was basically:
See the full blog post to read how I even got this started and see screenshots of progression between the "Before and After" pictured below. My first target goal was just a stupid simple white window that I can click on to turn pixels black and save it as a PNG image. If I could get that far, I could do all the rest.
It's been a while since I last wrote about my videogame project, Project: Doodle, which has now been given a proper name: Sketchy Maze. There have been a few releases of the game since I last wrote about version 0.4.0 and they bring some exciting new features!