Archive for the ‘Geek’ Category
I’m speaking at DevDays 2010

Don’t sit on the bench, get to DevDays 2010 and score with us! Laduuuuuuma!!!!
It’s here! Microsoft DevDays is the premier developer event of the year and is all about learning, sharing and interacting with one another and having fun! DevDays 2010 brings you the best of current developer technologies, along with a preview of soon-to-be-released Microsoft tools and technologies.
I spoke at DevDays 2009 and had a blast. This year, I’ve been invited back to deliver two new talks:
- Getting started with Silverlight development
Interested in Silverlight development but not sure how to get started? Learn the basics of Silverlight application development – the tools and fundamental concepts behind Silverlight. Find out how to re-use your existing .NET development skills to build exciting new applications. This session will focus on the fundamentals of Silverlight including layout, data binding, data access and styling. - Open Source and Microsoft – Working Together
Microsoft AND Open Source? What?! Come and learn how Microsoft platform works with open source platforms like PHP and Java form the server room and into the cloud. Come and learn how Microsoft is opening up and supporting open source development and technologies.
Find out more, and register at http://www.microsoft.com/southafrica/devdays/default.mspx
Most importantly, entrance is free! Please join us for a wonderful day of learning and networking.
Buzz off, Facebook

In contrast to a week allegations of “internecine warfare among Microsoft’s established divisions and a dysfunctional corporate culture that squashes innovation” comes yet-another-innovative-Google-product, Google Buzz. Google Buzz is Mountain View’s first convincing entry into Social Networking, that isn’t limited to merely an API.
Gina Trappani, posting on Smarterware, says it all: “This ain’t no Orkut.”. Google are very serious about taking down Twitter and Facebook.
Jason Calacanis, posting to his email list this morning, made it clear that he sees this as a major challenge to facebook:
1. Google Buzz 1.0 is better than Facebook after six or seven years.
2. Facebook’s history is one filled with stealing other people’s
innovations and doing them better (i.e. Zuckerberg has stolen every
idea Evan Williams and the Twitter team have released). How ironic now
that Google has out “Facebooked” Facebook. Google3. Google has excellent privacy record and Facebook is a disaster.
Most folks do not trust Zuckerberg and Facebook any more because of
their privacy record (filled with lawsuits) and because they steal
every good idea they see (i.e. Twitter’s innovations and FourSquare’s
checking in).4. Google Buzz auto generates your network–this is MUCH better
process than Facebook’s.5. Google Buzz is way faster than the sluggish Facebook–this is a
HUGE advantage.6. Google Buzz puts relies and updates into your GMAIL as
threads–this is BRILLIANT and a HUGE advantage.
Perhaps Jason is spot on. It certainly does seem that Google has almost everything in place to flip the switch, and take over the Social Networking space.
- Status
Google: Buzz Status and GTalk Status
Facebook: Status - Photos
Google: Picassa,
Facebook: Photos - Videos
Google: YouTube,
Facebook: Videos - Email
Google: Gmail since 2004
Facebook: Project Titan (not yet released) - Instant Messaging
Google: GTalk with XMPP/Jabber
Facebook: Facebook Chat (XMPP just released) - Applications
Google: Not yet.
Facebook: Farmville, and a few others. - Media Sharing
Google: Google Reader, YouTube
Facebook: A mix of rss importing tools, and (possibly) the recently purchased FriendFeed.
The only problem, in the words of the imitable Reinhardt Zündorf, is: “This is lame, now I can’t find out which dog I am (via a five bullet questionnaire) and share it with my facebook friends”.
Monitor your World of Warcraft server, on Twitter

Its no secret that I spend a fair amount of my time in World of Warcraft. My main character, a Human Paladin, is on the US-based realm of Stormscale.
In order to support the 12 million players, Blizzard operates a network of 500+ servers (called Realms) across the globe. From time to time, these realms are taken offline for maintenance or upgrades by the Blizzard Tech staff. This post is about how to track these periods of downtime so that players can easily monitor the status of their realm.
- Start by visiting http://warcraftupdate.net/ – a directory of all the US-based realms.
- Search for your realm, and click on the title once found.
- This will link you to your Realm’s Twitter profile (such as the one for my realm, Stormscale).
- Follow the profile in order to receive updates whenever your realm goes up or down.
For the alliance,
Tim
Comparing two MySQL tables
From time to time, I need to compare MySQL database tables and see what data has been added to the one in the time since I mysqldump’d the first one.
For example: Let’s say I have table_a as my snapshot’d table, and table_b as my newer table which has one or more new rows in it.The query below will return all records that are in table_b, and not in table_a.
SELECT table_b.* FROM table_b
LEFT JOIN table_a ON table_b.id = table_a.id
WHERE table_a.item_id IS NULL
This idea can be extrapolated to comparing the tables of two different databases:
SELECT database_b.sometable.* FROM database_b.sometable
LEFT JOIN database_a.sometable ON database_b.sometable.id = database_a.sometable.id
WHERE database_a.sometable.item_id IS NULL
The you can take those results and use them to INSERT the missing records, should you want to do this.
School kids – want to learn computer programming?
Calling budding programmers, developers and geeks!
Google Go

Google is touting its new Go language as a modern systems programming language which is expressive, concurrent, garbage-collected. Go takes the development speed of working in a dynamic language like Python, and combines it with the performance and safety of a compiled language like C or C++.
In its Go FAQ, Google explains the main motivations behind the project:
No major systems language has emerged in over a decade, but over that time the computing landscape has changed tremendously. There are several trends:
- Computers are enormously quicker but software development is not faster.
- Dependency management is a big part of software development today but the “header files” of languages in the C tradition are antithetical to clean dependency analysis—and fast compilation.
- There is a growing rebellion against cumbersome type systems like those of Java and C++, pushing people towards dynamically typed languages such as Python and JavaScript.
- Some fundamental concepts such as garbage collection and parallel computation are not well supported by popular systems languages.
- The emergence of multicore computers has generated worry and confusion.
Bold words from Google, especially considering the number of new languages which have come and gone over the years. Surely its too risky to put the corporate name behind the project? Not once you hear who’s on the team.
The project is being staffed by some serious Computer Science heavyweights: Robert Griesemer, Rob Pike (Unix Team, Plan 9 OS, UTF-8, Inferno), Ken Thompson (inventor of B – forerunner of C, UTF-8, shepherd Unix and Plan 9), Ian Taylor, Russ Cox, Jini Kim and Adam Langley.
Coming from a C/C++ background during my university days, my first Go experience felt quite nostalgic. I grabbed the source via Mercurial, compiled it in the Terminal, and configured some shell environment variables. What I was left with was a native Go compiler for my x64 architecture (6g) and a Go linker (6l). These are the recommended compilation tools until the GCC-based (gccgo) version catches up.
Installation on Snow Leopard
Before you follow these steps, you should have XTools installed. You should also be running Snow Leopard as your OS. These instructions should also work for 10.5 Leopard, but you may have to use GOARCH=386.
Environment
Go needs a couple of shell/environment parameters to be set prior to installation.
Add the following lines to your ~/.bashrc file:
export GOROOT=\$HOME/Go
export GOOS=darwin
export GOARCH=amd64
export GOBIN=\$HOME/bin
Now use the source command to apply those changes:
source ~/.bashrc
Next we need to add the bin directory for Go, and map it on the system path:
mkdir -p $HOME/bin
echo "$HOME/bin" > go
sudo mv go /etc/paths.d/
eval `/usr/libexec/path_helper -s`
Source Code
The Go team are currently using Mercurial to handle the source code. If you don’t already have it installed, you can install it quickly and easily with the following command:
sudo easy_install mercurial
I encountered an issue whereby UTF-8 was not set as my locale language type. While some will not experience this, I had to force this by adding the following lines to your ~/.profile file:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
Adjust according to your locale, if neccesary. Big thanks to ricafeal for this.
This will use the Python easy_install tool to install the mercurial package on your system. Once complete, its time to checkout a copy of the Go source code:
hg clone -r release https://go.googlecode.com/hg/ $GOROOT
This will place a full directory of Go source in the directory defined in ~/.bashrc as $GOROOT
Installation
All the Mac OS X particulars are done and you can follow the standard installation procedure. That includes:
cd $GOROOT/src
./all.bash
If you get a message stating…
--- cd ../test
N known bugs; 0 unexpected bugs
… you should be good to go (oh the puns).
Hello World
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
To compile:
$ 6g hello.go
$ 6l hello.6
To execute:
$ ./6.out
hello, world
You may also want to check out Jeremy’s great little script which lets you compiler (6g) and ink (6l) in one, well, go.
More Go later this week!
The Macworld Philnote
iLife, iWork, MacBookPro 17-inch, and iTunes is finally DRM-Free!
It was, by all accounts, one of the most anxiously anticipated Apple Keynotes in recent history. Just 24 hours prior, Steve Jobs had finally released a letter to the community detailing the reason for his dreadful weighloss over 2008, and subsequent absense from Macworld.
Opensourcing some stuff
Hey all
It has – yet again – been ages since I’ve posted. Sorry to keep you *all* waiting!
We here at OneWebStudios have had great fun writing a lot of code over the past year, in various languages, and so today I’m pleased to announce that we’re going to start opensourcing certain projects. This won’t happen overnight, nor will it include our major projects (ChirpSchool, etc) but it will include smaller projects that we’d love some help with. If you’re keen to join the OWS family, drop us a comment on this blog post.
In the meantime, watch www.timokeller.net/opensource for news.
Tim










