Over the past few weeks I have been working on tweaking a bunch of configuration files (aka “dot files”) for programs I regularly use, primarily those used on the command line, and I now have things working really well. Part of the reason for this recent effort is my switch from the bash shell to zsh. I don’t want to get too much into the “why” of that, but the main driver for that change was improved completions and other fancy features. I found a couple of really neat tricks to improve the usability of zsh. One was syntax highlighting while typing commands, another was toggling the cursor colour to red when in vicmd mode. While both are really neat tricks, I just cannot get things to work with my setup 100%.

For the syntax highlighting, I found that on at least one of my computers, enabling the “root” highlighter would cause every key stroke to emit an annoying beep while acting as a normal user, and then just wouldn’t work when root. The highlighter basically just inverts all colours to emphazise that you are in a special mode, which is nice, but I can live without, so for the time being I have just disabled it.

The vicmd cursor colour trick is a little more frustrating. I really like the extra feedback it gives to the user. It even works for me most of the time. The problem I’m having is that when I have it enabled and I am using tmux (a terminal multiplexer, similar to screen) and I am using all that inside gnome-terminal, I occasionally get a beeping sound and an escape code 112 gets printed to the screen. This code is emitted by tmux when it wants to reset the cursor colour to default, usually performed when the tmux status bar updates. Unfortunately, gnome-terminal doesn’t know what to do with this escape code, so it just prints it to the screen and beeps at you. One person online said that gnome-terminal does this on purpose to emulate xterm, but when I tried this in xterm, everything worked as expected. I tried for a little while to get xterm to do all the things I was used to having in gnome-terminal (URL detection, copy/paste without using the mouse buffer, paused tty scrolling, proper unicode display, decent font, etc.) but that was just more of a headache.

For now, I’m just disabling the vicmd cursor highlighting when I’m using tmux. I had been planning to switch from using gnome-terminal tabs to using tmux locally (right now I’m just using tmux on my remote connections). If I do make that switch, I’ll basically lose the vicmd colouring completely. What I need to do is find a way to get tmux to suppress the 112 escape code, get gnome-terminal to just ignore the code, find a less frustrating way to move away from gnome-terminal, or at the very least detect that I am both within a tmux session and gnome-terminal (which might not even work when reconnecting to a tmux session). I’ve been fiddling with this for a few days now and can’t seem to get a proper solution and just felt like ranting about it. If anyone has any suggestions for fixing this problem, I’m all ears.

At the end of last year, Microsoft launched the Kinect, a motion tracking add-on for the Xbox 360 gaming platform. Adafruit Industries, an open source hobbyist hardware company, announced that they would be offering a bounty to whomever first released an open source driver for the Kinect. The bounty started at $1000, but each time Microsoft complained about it, they raised the bounty. After only a week, the bounty had increased to $3000 and was awarded to a man in Spain. Within a few weeks of that, and having seen all of the interesting things that people were doing with the Kinect (and the large volume of sales they were receiving because of it), Microsoft changed their story, saying that they had originally left the Kinect open for such 3rd party projects.

I followed the story pretty much from the beginning and it was pretty interesting to see how things progressed. However, a few days ago Johnny Lee, a former developer of the Kinect and author of the Procrastineering blog, announced that he had been pushing for Microsoft to release Kinect drivers, but that they were unwilling. As a result, he had sponsored Adafruit to organize the Open Kinect challenge. While it probably would have been in Microsoft’s best interests to release the driver themselves, keeping Kinect development largely done on their platform, the Open Kinect challenge made a cross platform driver available which ends up benefiting everyone.

I have been using an Apple MacBook as my primary computer for almost four years now. The hardware is great (compact, light, and powerful) I have enjoyed that it has a clean interface and the same solid backend as some of my other favourite operating systems (after all, it is basically a customized, rebadged FreeBSD).

Today, however, I was prompted to install the latest OS X update and see that it mandates the installation of the Mac App Store. Anyone who has spent any time with me near an iPhone/iPad/Touch knows how I dislike the App Store. I will try not to rant too much here, but the basic points of my dislike of the system are as follows.

The App Store is a bottle neck for app developers, necessitating a long delay between completion of an app and release to the world. Many apps also get blocked, often with poor rational as to why. This leads me to my second point.

The App Store rejects apps for very hypocritical reasons. Two main examples come to mind. Google Voice was an app blocked because it replaced iPhone functionality. They also removed other 3rd party, Google Voice related apps at the same time. In reality no functionality was replaced as the iPhone had no support for using Google Voice on its own. In fact, there are a number of alternative dialers on the App Store that do replicate the iPhone’s features, yet they were permitted to stay. Another case was one where a dictionary app was blocked because it contained adult words. Meanwhile, the built in dictionary that comes with iOS contains all the same adult words and is included with the phone without an option to exclude those words.

The above points are both ones that I feel are valid concerns, but are mostly just annoyances. My last concern is with the fact that the App Store blocks un-approved apps and leaves Apple with the power to remove any app from your phone that they don’t want you to have (as was demonstrated with the third party Google Voice apps). This demonstrates that Apple has no desire to respect their customer’s rights as product owners. I know that they masquerade as doing this to maintain a high quality product (their success at which is debatable, at best). However, if that were truly their concern, they could provide an “approved” and “unsupported” section in the App store. Apps that are queued up in the approval process could be put into the unsupported section until they get the Apple stamp of approval. An even better option, if you ask me (and just about any free software advocate) would be to provide repositories that users could add to the App Store. They would work just like the unsupported section, possibly right along side it, and would remove the ability for Apple to pull the plug on user software.

This brings me back to the Mac App Store. This new store, to my understanding, requires an iTunes account to access it and, like the iOS App Store, contains Apple approved apps only. At the present, I am still able to install all my favourite apps without Apple’s help, but things are looking bleak in that area. It seems to me that it is only a matter of time before Apple locks down their Mac OS X system as much as they have the iOS devices. Seems like now is a good time to finally jump ship and move on to a system that respects its users.