Political Satire

This is an old political comic I found in a news paper early in 2007, and I just wanted to share it (and store it in the cloud).  While the issues is not really relevant any longer, and despite your personal political views, I do think it accurate encapsulated a major factor as to why Howard lost the 2007 election.

Political Comic - Rudd vs Howard
I’m Kevin, and I’m here to help.

Woot! Valve Confirms Steam for Mac OSX

Its been speculated for some time now, but it turns out that sometimes rumours that seem too good to be true, do materialize after all.  Steam is coming to the Mac.

And not just im some crappy pseudo lameness through a dodgy emulation or some-such, but real honest to god native application which is, according to Valve to be considered a tier-1 level platform with simultaneous releases for PC, Mac and XBox 360 from now on.  Also, Mac and PC builds will be concurrent, patches will be released to both simultaneously as well.  The source engine, also gets the native treatment, now that Valve has incorporated OpenGL into its award winning, modular engine.

Portal 2 will be Valve’s first simultaneous release for Mac and Windows. “Checking in code produces a PC build and Mac build at the same time, automatically, so the two platforms are perfectly in lock-step,” said Josh Weier, Portal 2 Project Lead. “We’re always playing a native version on the Mac right alongside the PC. This makes it very easy for us and for anyone using Source to do game development for the Mac.”

This means that all steam games will be theoretically available to Mac users. Steam and Valve’s own library of games including Left 4 Dead 2, Team Fortress 2, Counter-Strike, Portal, and the Half-Life series will be available as soon as April (next month).

But looking at the bigger picture, I think this is a huge industry changing announcement from Valve.  I think this will be the event all Linux and Mac users had been hoping for to finally bust the lid off the “Windows is best for games”.  This is a great idea from valve because it means that they’re going to have access toa  huge market of new potential gamers.  I suspect that many OSX users will flock to Steam as their de facto games delivery platform, since historically only very large titles were ever ported to MAc, and generally years after the PC launch.

What’s more, if Valve is to be beleived, it may be more than just Source games coming, Gabe Newell, President of Valve said:

“As we transition from entertainment as a product to entertainment as a service, customers and developers need open, high-quality Internet clients, the Mac is a great platform for entertainment services.”

“Our Steam partners, who are delivering over a thousand games to 25 million Steam clients, are very excited about adding support for the Mac,” said Jason Holtman, Director of Business Development at Valve. “Steamworks for the Mac supports all of the Steamworks APIs, and we have added a new feature, called Steam Play, which allows customers who purchase the product for the Mac or Windows to play on the other platform free of charge. For example, Steam Play, in combination with the Steam Cloud, allows a gamer playing on their work PC to go home and pick up playing the same game at the same point on their home Mac. We expect most developers and publishers to take advantage of Steam Play.”

Given the lack of enthusiasm for Windows Vista, and given he number of people I know to be making the move from Windows to Mac, I think this will only lessen the ties people have with Windows.  Especially that source game licenses are granted for either platform.  Blizzard has done this too, for the record.  Its not quite as elegant as steam, but battle.net was (to my knowledge) the first way to get dual platform licences which could be downloaded from the web.

In summary, this is such exciting news for me, I am positively elated.  And I think that this will cause quite a stir in the games industry, in that games that support only one platform may finally be a thing of the past.

Why iPad? Because it’s Cheap!

ordinary people just want something cheap that works. And that’s how the iPad will seem to them. Many will never make a conscious decision to switch. They’ll get an iPad as well, then find they use their Windows machine less and less. When it dies they won’t replace it.

via ycombinator.com

I think this is totally true.  And interestingly, I think its the same reason why the MacBooks have taken off recently.  I am one of the converted.  Mac “gets” mobile computing.  They  seem to understand that when I am on the move, I dont want headaches with network connections and I just want my Laptop to work!

This being said, the iPad is a disappointment for me because I really wanted something a bit more.  I wanted something that run OSX, and had a stylus with multiple sensitivities.  I also wanted it to have a conductive touch interface and I wanted it to be as thick as the air.  THAT would have blown my world – however, I am convinced that this may actually be coming (at least in part) in the future.

I do think that the iPad was rushed and I do think that its uninspired (the iPhoneesque interface is starting to show its age).  But I also think that this wont matter at the till.  I also think that it opens up some interesting development ideas, specifically in the area of table-top gaming and traditional board games – especially when coupled with ‘linked’ iPhones.

I am very hopeful that the iPad succeeds in creating a new category of applications that use it unique feature set.  I truly think that limiting it to Web browsing and Book Reading would be a terrible shame.  And a waste.

WebGAC Takes the Pain Out of .Net Dependencies

My good friend Paul Jones, has released a great tool called WebGAC to github.  WebGAC is a great way to manage .net assemblies and adding them to .Net projects from a centralised repository of binaries.  As someone who has used this tool on literally dozens of projects for nearly 2 years now, Its a must have tool for all Visual Studio developers.

Managing binary dependencies in .NET can be a complicated task. For small projects, checking the dependencies into source control tends to work just fine. So does requesting that all developers have various binaries available in their GAC. Grow much bigger, or add more projects, and managing that starts to get very difficult. The Java world has had a solution to this problem for a long time, in the form of Maven and Ivy. Remote servers store the binaries, and the build tool automatically downloads them on demand.

WebGAC adds the core of this functionality to .NET, but without requiring you to switch build tools, or maintain a separate configuration file. Dependencies are specified just the same way as normal, but if you don’t have them when building your project, WebGAC will fetch them for you automatically.

WebGAC is available at http://github.com/paulj/webgac. Browse over there for more information and installation instructions, or continue reading here for more details.

Has Your Windows Mobile 6.1 QuickGPS Stopped Working?

A few months ago, I had a very sudden and strange thing happen to the QuickGPS app on my Windows Mobile HTC Touch Cruise smartphone.  My GPS signal would take forever to get a signal and when I opened QuickGPS and clicked Download now I got the error “Connection failed. Please try again later”.  Needless to say, later didn’t help. It also said:

Download time: Not yet downloaded
Valid time: Expired

It happened if I was connected over 3G, GPRS, or through USB/ActiveSync. All other data networking is fine.  But nothing worked.   After many hours of googling I found this page. Basically, for some reason one or more of the phone’s registry settings are busted and need to be fixed (at least it was in my case).  I grabbed an application that let you edit the registry on the phone and then verified these registry settings – and my problem was fixed!


If editing the registry doesn’t sound like your kind of thing, someone in the forum of the above link has a cab file that makes the changes for you.

How To Install Phusion Passenger on a CentOS/cPanel Box

The Usual Disclaimer
Please beware that even if these instructions work, that they may break your setup.  While these worked fine for me, you should take extreme care applying them to your situation.  Follow these instructions at your own risk. They work fine for me on a CentOS 4.6 box with cPanel 11.23.4-R26138 and WHM 11.23.2.

First off, Phusion Passenger only works with Apache 2.x so if your server doesn’t have that thats the next thing you’ll have to do.  T o upgrade Apache, go to your main control panel at https://server.ip.address:2087/ and click the “Apache Update” link on the left.  If given the option, I highly recommend that you choose Apache 2.2 instead of 2.0.

Next, download Passenger. Assuming you already have Ruby and RubyGems installed on your server, simply run (as root) gem install passenger. This will pull the passenger library and code down to the server and place it with your other RubyGems.  It’s important to know that this does not install Passenger into Apache, so obviously its non-operational.  If you don’t have Ruby and RubyGems, you’re way too far down the line with reading this article and need to get up to speed with actually getting those on to your box.  Google can help with that!

At this point it’s probably useful to have the Passenger User Guide up on screen, just for reference.

Third, you need to compile and install the Passenger module within Apache. This sounds worse than it is, but before you do it, it is important to set a couple of environment variables to make it work properly.  In your SSH console type thrse two commands into it:

export APXS2=/usr/local/apache/bin/apxs
export APR_CONFIG=/usr/local/apache/bin/apr-1-config

Next, run:


It might take a few minutes, but if everything goes well you’ll eventually end up with Passenger telling you to add a few lines to your Apache configuration file (the code you get may differ slightly):

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.0.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.0.2
PassengerRuby /usr/local/bin/ruby

However, despite what it tells you, do not put it in the httpd.conf file – cPanel can rewrite that file and your changes can be lost breaking your passenger configuration and virtual site.  Instead, add it to /usr/local/apache/conf/includes/pre_virtualhost_global.conf – this file might not exist until you make it, but that’s okay.

Lastly restart Apache and if you didnt get any critial errors, you should be in business.  I have had issue on other servers where the Rails app failed to load because the RubyGems version was too old, so keep your eye on the error_log file if Apache starts but it still doesn’t work.  Also refer to the Passenger User Guide for further configuration and usage information.

Solve uninitialized constant ApplicationController in Rails 2.3

So I am casually writing my Ruby on Rails application, like I have a million times before on the newest version of Rails (which at time of writing, was version 2.3).  So I open up an blank project with some code I use in all my Rails apps, and copy over the relevant files, and replace the application_crontroller.rb with application.rb.

But as it turns out, there were some major changes with 2.3, not the least being that the application controller is no longer called application.rb Now it’s referred to as application_controller.rb.

So it’s easy to fix, just rename the file or, it you’re into scripty goodness, run:

rake rails:update

Be sure to update your server stack before deploying. Obviously if you rename the file to get it working on Rails 2.3 and upload to a Rails 2.2 server you’ll be in trouble. Don’t forget that Rails 2.3 also requires a new version of Phusion Passenger!

How to recover from Windows Server 2003 Event IDs 1168 and 1003

Recently at the office we had a brown-out with devastating consequences.  All our servers are managed by UPSes and on this particular occasion, at the precise moment of this brownout the UPS failed and server lost power abruptly.  This caused some error in Directory Services, becasue after the boot the Windows Server 2003 (and primary domain controller) showed a message during bootup (but after logon) saying “The Active Directory is rebuilding indices”, just before network connection preparations. It hadn’t done this before.

After several hours waiting for this to go away (the server seemed responsive during the process so we left it) nothing changed.  We forcibly reboot the machine and it booted into Safe Mode automatically.

After several reboots and a scheduled CHKDSK /f on bootup, nothing changed, so we booted into Directory Services Repare mode to investigate further.  Now, looking through the event log showed that even more things were going wrong including the computer name being missing the domain being all messed up and an array of other issues, the most worring being several Event Id’s 1168 and 1003.

After a bit of googling I found this page, and based on my own knowledge condensed and modified the solution to work in my case:

  • First, boot the machine into Directory Services Repair Mode
  • Next, open a command window.
  • Then, type the command: cd %SystemRoot%\Ntds
  • Execute the command: Esentutl.exe /p Ntds.dit for me this took 8.3 seconds to execute.

Basically, the esentutl.exe is a utility used to perform various administrative actions on any databases using  Microsoft Proprietary Database format.  The Directory Services Database uses this format.  The ‘/p’ argument tells the utility to perform a “repair” on the second argument, which obviously is the database file.

Warning: The Ntds.dit file is the heart and soul of Active Directory on your domain.  Take extreme care with this file because if you don’t have an adequate backup of the system state on the domain controller, you may irrecoverably corrupt your domain.  This would be bad.

In my case, everything went smoothly, and the domain was back up after a reboot back into “normal” mode.  Obviously, we changed the UPS with a working one.  Who says network admins never get a happy ending?

Apple’s Magic Mouse Now Running Properly Under Windows

As I’ve indicated earlier, I am a massive fan of Apple’s Magic Mouse.  While it does carry a heavy price tag, I thought it was completely worth it.  But a sad draw-back was that under Windows (pecicially Boot Camp), the mouse only works as a standard 2 button mouse.

But thanks to a little hackery from Apple’s Bluetooth Update (located here) the Magic Mouses driver was extracted via WinRar resulting in a 32bit version and a 64bit version that you can install on any ordinary Windows PC that will enable all the scrolling ‘magic’ of the Magic Mouse.

Explore the Twitterverse with Mentionmap

I’ve just stumbled across a neat little web application which allows you to visually explore your Twitter network. It allows you to discover which people interact the most and what they’re talking about, as well as traverse the Twitter-verse and finds links to people you might otherwise not have found. Think “six degrees of separation” for your Twitter followers.

The visualization runs right in your browser and displays data from the Twitter API.  According to the maker, Asterisq, it works like this:

Mentionmap loads each user’s Twitter status updates (tweets) and finds the people and hashtags they talked about the most. The data is displayed using Constellation Framework, a graph visualization library for Actionscript.

In this data visualization, mentions become connections and discussions between multiple users emerge as clusters.

Clicking a user will display their network of mentions as well as details from their profile. You can also search for friends by typing their Twitter user-names into the search box.

Mentionmap - A Twitter Visualization

I think this visualization is really neat, and I’d really recommend you check it out and have a play.  I found it very interesting to see the relationships between the people I primarily converse with on Twitter.