return to OCLUG Web Site
A Django site.
November 19, 2012

Michael P. Soulier
But I Digress
» Joysticks? We don't need no stinking joysticks...

So, after unpackaging my brand-spanking new Mac Mini, I grabbed a copy of the X-Plane demo, dropped in an old usb joystick and fired it up. Oddly, X-Plane itself asked me if I wanted to calibrate the joystick, which struck me as odd, that hasn't happened in years, not since my days with plain old DOS. DOS didn't have a controller subsystem so there was no way to calibrate a joystick once, for all apps, but Microsoft fixed that long, long ago. Even Linux has jscal to allow the same thing. It's command-line, but it works.

So of course I assumed that on a Mac, with it's reputation for dead simple plug and play, everything just works, dead simple and easy, it would have the same right? Umm, no. No command-line tool, no graphical tool, no voice activated tool, no swiping on my LCD, nothing. It's left up to the application, kinda like DOS. Way to go Apple.

Now, why do I care, since X-Plane has such a utility? Well, in X-Plane, I don't. But after downloading and installing Flightgear, I do. They leave the joystick calibration up to the OS, and rightly so. So, I can't use the joystick in Flightgear, not that I'd want to use it on this machine anyway, as I've already found out that the OpenGL rendering performance on the Mac Mini is horrid. Wow, another strike over my cheap Linux box sitting next to me that was made out of spare parts from a friend's basement. That is truly, utterly, sad.

Seriously Apple, is that the best you can do? If you think I'm interested in tilting an ipad to fly a plane in any realistic simulation, you guys have been smoking way too much of what you usually smoke. I want realism, and last time I flew, the pilot didn't have to lean to bank the plane. At least, I hope not, the door was closed and locked, post-9/11 and all, but I digress.

Bottom line Apple, for what I paid for this thing, you could have done much, much better in this regard. X-Plane rocks, but Intel graphics in the mini? Pleease, put a smoking Nvidia chipset in there and give me a decent framerate for games!

Are you listening?

November 17, 2012

Michael P. Soulier
But I Digress
» Umm, done unzipping yet?

So, the first thing I did after after wrapping my head around the cocoa interface was to start installing software like a madman. I wanted Firefox, VLC, Kobo, Gimp, Vim, etc, etc, etc. So, I had to learn how to install apps on OS X.

Apps in OS X seem to come in at least two different forms: .app files, which are self-contained application packages that you simply drop into /Applications on the system (totally awesome), and .pkg files, which are more windows-like installers.

The latter seems to be required with more complex installs, like plug-ins that need to put files in privileged places all over the system, requiring root access to install. As an admin user, I can already put .app files into /Applications without root access, the implications of which are that a virus could infect the apps in /Applications too, so that's a strike, security-wise, for OS X over Linux. Still better than Windows though, where a Power User can change anything under Program Files or Windows without escalating privileges.

The .app files or .pkg files can come in many forms, the most common of which is a .dmg file, which is a disk image that OS X will casually mount on a loopback. I've noticed that the Finder can mount .dmg and .iso files with a simple click. With an .app file, you just drag it to /Applications, and you're done, and uninstalling is just a simple. Far superior to any OS that I've used in the past. It's also common to download .zip files, which clicking on in the Finder fires-up the Archive Utility.

So there I was, clicking along and installing, and then a progress bar indicating that the .zip file was opening just kept going, and going, and going. I looked online, and found that I am not alone in having this problem. Apparently, the appleeventsd daemon requires killing under those circumstances, something that the nice guy at Apple support did not know. Looks like the issue is in OS X 10.8.2, which I am running.

Hmm. Bad timing in jumping on the Apple bandwagon? I wonder how long they'll take to fix the issue. Good test for what it will be like to live as part of Apple's ecosystem.

November 4, 2012

Michael P. Soulier
But I Digress
» Dusting off old games

Back before I had any real responsibilities, I spent a lot of time playing various games. I've probably played most of them. Roleplaying games, tabletop battle simulations, although I stayed away from the card games like Magic. I'll rant about that some other time.

My two favorite games were Air Superiority, and Starfleet Battles. As a science fiction fan, I did like Star Trek, and like a lot of boys my favorite parts were the ship to ship combat. SFB simulated that combat better than I'd ever seen before, and even spun off a pretty cool video game that spawned a couple of sequels. I still have the first one.

The tabletop game was as complex as any chess game, and a lot more fun in my opinion, so it was with no small amount of nostalgia that I dusted off the game for my 10-year-old son and I to look at a couple of months ago. To my surprise, Jaan ate the game up, even if the rules sound like legalese and combined weigh a few pounds. Now he can't get enough of the game, and I get to play too, which is pretty cool, 'cause I don't have a lot of time for these things anymore and I wasn't sure if anyone around Ottawa played it anyway.

I'm not really interested in all of the new material that ADB has released since I was into the game, as I have plenty of material for it already, and it'll take Jaan and I ages to get tired of it. The physics of the game are broken and there are holes in the logic that I'll go into later, but it suceeds in providing a fun gaming experience, and it's a hell of a lot more fun than playing Monopoly or Clue, with all due respect to those games.

Lets be honest, in the end, boys don't grow up, our toys just get more expensive.

July 23, 2010

Michael P. Soulier
But I Digress
» I really love *nix

So I’ve recently been playing with Ditz, a ruby-based distributed issue tracker, to go along with my distributed workflow in Git. It’s a good start, but not quite polished yet. I added the issue-claiming plugin, played with it for a while, and then realized that I don’t need it since I’m the only developer on the projects that I want to use it for.

Then I removed the plugin, but it left behind sections in the ditz yaml files that caused it to now spew warnings.

msoulier@egor:...ier/work/mbg-bugs$ ditz todo
warning: unknown field "claimer" in YAML for,2008-03-06:issue; ignoring
warning: unknown field "claimer" in YAML for,2008-03-06:issue; ignoring
warning: unknown field "claimer" in YAML for,2008-03-06:issue; ignoring
warning: unknown field "claimer" in YAML for,2008-03-06:issue; ignoring

Well that’s unacceptable. So now I need to remove this claimer line from each file. Well, this is *nix so I’m not doing it by hand. I could use a perl one-liner but I’m a tad more familiar with ex commands, editing in Vim all day as I do.

So, I make an exscript file containing this:


And then run it on the files like so

for file in $(find bugs -name "issue*.yaml")
   ex - $file < exscript

Presto. Fixed. So happy.

July 1, 2008

Michael P. Soulier
But I Digress
» Tftpy on Github

As distributed version control systems work far better for open-source software development, I’ve cloned Tftpy from SourceForge’s Subversion using git-svn, and pushed it to Github.

Check it out here, and feel free to clone it like so:

    git clone git://

» Playing in Git-land

I’ve been playing with distributed version control systems for a while now. First Mercurial, and now Git.

While I don’t find Git nearly as friendly and intuitive as Mercurial, I’m slowly starting to get into it. While a superior interface is often sorely overlooked, with the misguided believe that a more cryptic one must be somehow superior, I am finding that Git contains more potential.

While I am forced to do work on Windows, Git on CygWin works quite well, and there’s always the option of simply using Samba and running Git in a remote Linux box. At least merging works in Git on Windows out of the box, while in Mercurial they don’t even bother to fall back to simple conflict bars when no merge tool is available. Sad.

The basics of push, pull, merge, etc., are pretty much the same, but what I am finding Git fits my style better for is the ability to sync up my unfinished changes to the various places that I work. For some reason very little attention is given to this in version control systems. In Git I can work on a lightweight topic branch, and push that branch so I can pick it up as a remote tracking branch in other repositories where I work. I can keep that topic branch in sync until the work is done, and then merge it to master.

My main alternative in Mercurial for this is a versioned match queue, and pushing the patch queue around as a sub-repository of the main one. Thus far it seems like when you rebase, if your patches don’t apply, you’re expected to fix them manually without any kind of merge support.

I have constant questions, as much of Git is anything but intuitive, but I’m getting there. Interesting journey from CVS to Subversion to Mercurial and now to Git, not to mention the proprietary systems I’ve had to work with, being Nortel’s PLS and MCEPLS, and now Rational Clearcase (God save me from that one). Should be interesting as I learn more. Luckily there are some individuals with plenty of experience in it already to lean on.

May 29, 2008

Michael P. Soulier
But I Digress
» Tftpy 0.4.5 available

I just pushed out the latest version of Tftpy, my pure-Python TFTP library. Thanks to some helpful bug reports it now has better support on that other operating system, and some minor bugfixes in general.

I think I’ll have to spend some time doing a proper page for the project, and then integrate in some contributed patches to support uploads, and then add symmetric UDP support so it can work through NAT.