User Interfaces

I am a frustrated developer, sitting on a mountain of barely started, half-finished, abandoned projects that I feel don’t need to be finished for one reason or the other, or would require too much effort to finish.  Dozens of source directories are lost to time and reformats, reinstalls, broken systems, and outright manual deletions.  I am, by definition, a terrible developer, one who never finishes his work and therefore cannot prove his worth via a decent library of applications.

But I finished one, and it’s one that I actually use myself on a regular basis — a graphical launcher for the game Doom‘s source ports on GNU, such as chocolate-doom, gzdoom, and zandronumOriginally known as gdoomsday and written in GTK+ specifically as a launcher for the engine doomsday that is now a self-contained Doom launcher via an in-engine configuration, my program enyo-doom¹ can play host to any number of engines, games, and add-on configurations, all of which can be saved to specifically launch such configurations as “TNT: Evolution using chocolate-doom”, gzdoom using Doom II: Hell on Earth with the Brutal Doom add-on”, and other combinations, all with a simple selector that can be configured to save specific WAD file (main game files), addon WAD and PAK file (files that change the behavior of the main game in one way or the other), specific engine, and custom commandline option combinations into a single drop-down option.

The reason I wrote this program was simple: I needed it.  Back when doomsday was the main Doom engine that I used, I was frustrated that GNU didn’t (at that time) have a launcher program for it that the Windows version had.  Eventually, doomsday did get a launcher (first Snowberry, then the options contained in the engine as noted above), but by then I had moved on to other engines such as chocolate-doom and gzdoom, and I used both for different purposes.  At first, I started repurposing the gdoomsday program in an attempt to solve these problems, eventually renaming it enyo (and later, enyo-doom to differentiate it from the JavaScript framework of the same name), but I ran into a problem — the way it was coded, and the mess of code required to use GTK+, meant that it was very difficult to add new features and change existing ones.  Eventually, I bit the bullet and recoded the entire thing from scratch — which still amazes me given that not only was I able to finish a project, but finish the same project, twice — using the much more flexible Qt framework.  There were tremendous growing pains using Qt over GTK+ at first, but as I learned more about it and moved the build system from the GNU build system (autotools) to CMake, the easier things got, and I was eventually able to put in everything I wanted, and as of now, at version 1.04, it is as feature complete as I need it to be, and I am almost happy with the results.


gdoomsday essentially started as a clone of the old Windows doomsday launcher that it had in its early days, and the current enyo-doom hasn’t changed its look very much.  And frankly, it’s showing its age.  There are much more efficient and usable user interfaces out there for launchers and other programs, and looking at enyo-doom now, I think it looks very cluttered and unorganized.  In my mind, this has led to a struggle — yes, it doesn’t look as good as it should, but it’s functional, and isn’t that all that matters, really?  Should I spend the time again to re-remake the program into something else, something less, well, ugly?  It’s amazing enough that I was able to force myself to create this program twice; could I actually do it again?

And that’s where I stand right now, wondering and thinking about a new design for enyo-doom, and maybe even a new name to give the whole thing a fresh start.  Should I do it?  Should I bother?  Or am I just fishing for something to do, thinking that if I can’t finish anything else I’ve tried, maybe I can finish something that basically just needs an interface redesign, to make myself feel content that I can at least finish something. 

Maybe I shouldn’t bother, and just try to finish something completely different for once.  That’d be a change.


Debian 9

Debian is one of the oldest and most respected distros in the history of GNU, and it recently released version 9, codenamed “Stretch”.  So since it has been a good while since I’ve taken a look at any version of Debian (I used to use the Unstable version as my main OS, but other distros became more appealing to me), so I figured I would install it in a virtual machine to give it a good look.

The Debian I am familiar with uses a text-based installer (an interactive one, not “here’s a command prompt, have fun installing” like Arch), and while Stretch gave me the option, I figured I would try its graphical installer.  I seem to remember trying Debian’s graphical installer before, but I didn’t remember much about it, so I decided to give this one a try.  As I was booting from a netinstall disk, it would have to download a ton of packages from the internet to install, but this was fine — it really didn’t take that long all things considered, and I was up and running fairly quickly.  One nice little bit on the installer was that it asked me which desktop environment I wanted to use, something that other distros should really consider doing.  I know that it might confuse some people, but at the very least, distros like Ubuntu would do a lot of good at least telling people that a default option (now Gnome) is highly recommended, but give them alternatives with some brief explanation of their benefits.  I chose LXDE, wondering why I was not given the choice of the newer and more slick LXQt (maybe they hadn’t made it available in Debian yet?), and everything installed easily and I restarted into a new desktop without any problems.

(Come to find out, Debian does have LXQt available, which made me wonder why it wasn’t offered over the older LXDE during install.  It was an odd choice given that LXQt is basically now the preferred choice over LXDE.  I ended up installing LXQt and using it instead of LXDE.)

After installation, I added the contrib and non-free repositories (what can I say, I’m a terrible person that cannot use an all-Free software distro) and set up everything needed for normal operation.  Since this was going to be a normal desktop, I opted for the use of sudo (if this was a server, I wouldn’t have), and after strugglinig with a stupid mistake in sudoers for a while that made me momentarily think that there was a problem with Debian’s sudo (I had left off the character that specified that the name was a group instead of a user), everything worked out fine in the end.

(An aside: why does Debian use the group name sudo to specify its sudo users rather than the more universally accepted group name wheel?  I mean, in the end it really doesn’t matter, I guess, but come on, Debian.)

My incompetence aside, everything in the end just worked and was remarkably stable, something Debian is long known for and the point of its long and carefully orchestrated release schedule.  This release was a long time coming, and the time between this release and the next major one will be yet another long wait, with packages mostly staying static in the name of stability (and security patches being backported instead of packages simply updated), so essentially, the stable branch of Debian is really not an ideal choice for a home desktop distribution, which mostly requires a system that keeps up with the latest package releases, but as a desktop for office desktops, rarely updated systems, and especially servers, it is an absolutely perfect fit.  Sure, you can roll the dice with the Unstable branch for home systems (there is also Testing, but its packages, when broken, generally stay broken until enough testing and updates are done in Unstable), but Debian is at its best on its Stable branch, and its latest looks like a gem.

Congratulations to the Debian team for bringing out yet another masterpiece that is the shining gold standard by which all other distributions are judged.


The Tomato Proof of Human Insanity

Now, granted, I don’t care much for tomatoes in any form, but the fact that fried green tomatoes exist leads me to believe that there isn’t much hope for humanity.

Think about it: tomatoes aren’t really ripe or taste as they should until they turn red.  But some time in the past, someone growing tomatoes was impatient enough to not wait until the tomatoes were ripe.  They wanted their tomatoes right then, and could not wait any longer.

Of course, whoever this was ate this not-yet-ripe tomato, and was disgusted with the results.  At this point, this person is already not very bright, but if he had stopped right then, fine, lesson learned, patience is a virtue.


“Hey, maw!  Whut can we do to this ‘mater (the redneck pronunciation of “tomato”) to make it good?”

“Hell, paw, do whut’cha do with everythin’ else, fry that sucker up!”

I am convinced that putting a ridiculous amount of flour and wash on any food and submerging it in hot oil (likely animal fat, such as lard, which makes my arteries clog up just thinking about it) basically destroys whatever flavor a food ever had.  Hell, these people could probably fry up some dog poop and think it’s good.  The very idea to not only fry a tomato, but an unripe, underdeveloped tomato, is just beyond insanity.  And the fact that people have bought into this insane idea and actually pay money to have people create this insane “food” for them has convinced me that the human race isn’t going to last much longer.


New York Minute

I’m sitting here listening to all my music, shuffled, and Don Henley’s “New York Minute” comes up.

Everything can change, in a New York minute…

This is how I feel about my attitudes and opinions about things these days.  One day I could be an advocate of something, and the next day I will be removing it from my life, spouting how bad it is, and maybe soon after I’ll be back to it, saying it’s not so bad.

I don’t know why.  I’m very much in a chaotic state of mind about things, I suppose.  There is a constant war taking place in my mind; one side, the activist, the person that wants the best out of everything, the advocate of Free software and human rights and freedom, the person that wants to use things that actually work well, against the side of me that tries to be conciliatory and agreeable, to use things that are generally used and in some way useful.  These two sides of me are always at odds, and it manifests itself as a constant war against myself, and to any observer of my behavior, bizarre, erratic, and someone that cannot make up his own mind, and can, indeed, change in a New York minute.

It’s a fair assessment, really, because most level-headed people stick to one side or the other, and aren’t so indecisive and unpredictable that they change back and forth between positions constantly.  But my mind is constantly caught between that idealism and pragmatism, and am trying to find some middle ground.  It may be frustrating to people who try to understand what I am about, but it’s something I can’t really help, and it’s frustrating to me, as well.

In a moment of frustration, I removed all of the posts on this blog because many of the positions I was advocating were, in fact, in flux or not valid any more.  And even the ones I still felt strongly about I wanted to just remove out of principle, and start anew with some sort of blog about me, personally, not just GNU (Linux) and technology.

And as my playlist that is now playing an Eagles tune says, I Can’t Tell You Why.