Coding Range

If NSW's upcoming ticketing system was run by Google 

November 28th, 2012

The amount of “hey look, I know Google buzzwords” and blind trust in an advertising company to run public infrastructure is way over the top. The Opal logo doesn’t even look like the Chrome logo - it’s more of a backwards colour wheel than Chrome’s shaded smaller colour palette.

Also, if Google actually built the system, it would be in beta for four years and not available at your station.

Bitsquatting 

November 19th, 2012

A novel way of thinking outside the box to ‘hijack’ DNS requests. I wonder what the rate of machines requesting the wrong URL shortener address is.

Installing Ruby Gems on OS X

November 15th, 2012

I’ve been considering playing around with CocoaPods for a while. I finally got around to it, only to discover it won’t install. If you get this error message while running ‘gem install’:

Building native extensions.  This could take a while...
ERROR:  Error installing cocoapods:
    ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/xcodeproj-0.3.5 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/xcodeproj-0.3.5/ext/xcodeproj/gem_make.out

just make sure you have the Command Line Tools for Xcode installed. They can be installed either through Xcode 4.3+, or as an independent package from  Developer

Why does nobody talk about debugging?

November 9th, 2012

Debugging is an extremely important part of programming. When something goes wrong, you need to fix it, but the first step of fixing anything is figuring out why it’s broken.

There’s been many, many words written on programming techniques and software development techniques in general. You can develop with a waterfall. You can develop agile. You can write tests first. You can write tests last. You can not write tests at all. You can use OOP. You can use functional programming. You can use message-based programming. You can do pretty much anything, and probably even make a Dr. Seuss-style story about it all.

I’ve yet to find a decent article discussing debugging techniques. Off the top of my head I can think of a few ways - putting println statements everywhere, using the debugger, using an interactive debugger (i.e. actually executing commands that aren’t in the code while debugging, such as Visual Studio’s Immediate Window or gdb/lldb), and cookie-jar debugging, but I have yet to find any detailed discussion on debugging techniques.

On debugging techniques, Wikipedia has a mere five bullet points. On programming techniques, RMIT has an entire course.

So why does nobody talk about debugging?

Bluetooth love 

September 20th, 2012

Its important to state that this is not theoretical; it can all be done and if no-one does it then I will.

Great idea from Alex Eckermann on using the Bluetooth 4 chip in more-recent Apple devices to figure out which device you’re actually using and cut down on excess duplicate notifications. i’m in complete agreement here, I really don’t need five devices beeping whenever someone mentions me on Twitter and this seems like a very clever and simple solution.

The (Honest) truth about Dishonesty

September 16th, 2012

Very insightful talk on (dis)honesty. I wonder how this could be applied to piracy and anti-cheat systems - piracy mention starts at 03:40.

Hello World 2.0

September 5th, 2012

I started this blog just under a year ago with the intent to post stuff related to development I was doing, but that kinda dried up after the first month or so, partly due to laziness and partly due to how annoying WordPress is, in my opinion, to write a decently-formatted post. It required me to be in a web development mood just to get everything laid out properly - for example, the old Software page took me the better part of an afternoon to perfect; rebuilding that page here took me about 5 minutes.

In Alex Eckermann’s blog reboot which pretty much inspired this one, he recommended SquareSpace as a simple but excellent platform. I’d heard of SquareSpace before from when I used to watch Hak5, but never really thought much at the time. I signed up for the free trial, and after a week of playing around with it, I’m pleased to say I couldn’t be happier both with their product and with their customer support. I’ve taken the plunge, and SquareSpace is now the new home of this blog. (You can tell by the HTML comments.)

I’ve kept the old posts, partly as reference and partly because if I put my Clang build script anywhere else I’d lose it. I’m planning on doing a bunch of posts on different things I’ve learnt in the past year as well as what I’m currently learning now, be it through University, work, or personal projects. I’m also considering linkblog-style posts to articles/pages/videos/etc., simply because when I link to content on Twitter I can never find it again - I’ve been on Twitter for about two years and the search still sucks.

Even if nobody else reads this (Hi!) it’ll still hopefully act as a diary of sorts where I can document things I’ve learnt and discovered and then find them later.

So hello again, and welcome (back).