Tim Keller

Web, IT, Telecoms, Development, Networks, Photography, Life.

Buzz off, Facebook

has one comment

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. Google

3. 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”.

Posted on February 11th, 2010 at 12:35 pm by Tim Keller

Monitor your World of Warcraft server, on Twitter

has one comment

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.

  1. Start by visiting http://warcraftupdate.net/ – a directory of all the US-based realms.
  2. Search for your realm, and click on the title once found.
  3. This will link you to your Realm’s Twitter profile (such as the one for my realm, Stormscale).
  4. Follow the profile in order to receive updates whenever your realm goes up or down.

For the alliance,
Tim

Posted on February 7th, 2010 at 6:03 pm by Tim Keller

An interview with me

has no comments

The Website Team at Umoya tend to interview one of the staff every couple of weeks, this week was my turn.

It is time we took up the mic again and interrogated some of the team here. Today, we decided to pick on: Tim Keller : Lead Developer and general software guru.

[Ed] Tim, you’ve been with a Umoya for a few years now, how did you get to be working here?

[Tim] I got to know Peter through Sunvalley school, he became aware I needed financial assistance to complete my university studies, took a risk and offered to fund me in return for me coming to work at Umoya.

[Ed] Are you Cape Town born and bred?

[Tim] I am indeed. I’ve lived in the same house all my life (until just recently).

[Ed] Ah yes, you’ve just given up bachelorhood I believe – congratulations!

[Ed] I gather your dad is head of Sunvalley Primary, is your mom also a teacher?

[Tim] My family: Teachers, Teachers and more Teachers

[Ed] I sympathise – my siblings were also all teachers.

[Ed] Have you always wanted to be a software developer?

[Tim] No, as a kid I wanted to be a …. wait for it – Teacher! Then of course an Astronaut, Computer Engineer, then Lawyer…. the list goes on.

[Ed] Where did you study?

[Tim] The great UCT!

[Ed] [what is it about UCT students?! Humble as anything.]

[Ed] So was it straight from school to varsity to Umoya?

[Tim] Not quite. I’ve worked as: a teacher, video editor, sound engineer, and web designer.

[Ed] What are some of the things you love

[Tim] My wife (hopeless romantic I know) [Ed: don't worry, you'll get over it], Apple Macs [Ed: terrible fanboy!], photography, formula1, gadgets and (good) music.

[Ed] What do you hate?

[Tim] Hating things.

[Ed] o…k… moving right along…

[Ed] Your role in Umoya?

[Tim] Lead Developer and Systems guy for staffroom. I created staffroom in response to my dad’s frustrations with school admin, and it is now looking like being something that could gain some substantial usage in South African schools. It helped immensely to have Umoya take staffroom under their wing.

[Ed] You’re known in Umoya as…?

[Tim] Pink shirt guy.

[Ed] If you were a wild animal, what would you be?

[Tim] Meerkat (pokes head up every now and then to see the bigger picture)

[Ed] A meerkat in a pink shirt? I’m going to let that one slide right by or the conversation might turn weird!

Posted on February 5th, 2010 at 5:43 pm by Tim Keller

Comparing two MySQL tables

has no comments

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.

Posted on February 1st, 2010 at 5:05 pm by Tim Keller

School kids – want to learn computer programming?

has 2 comments

Calling budding programmers, developers and geeks!

Are you interested in learning computer programming? Want to find out what it is all about, without devoting too much time? Do you have a child or learner that might be interested? The University of Cape Town is holding a free course to give young learners an introduction to computer programming. They will teach the basic skills needed to start creating your very own fun and useful computer programs.

The course will be run from Friday 26 to Sunday 28 February 2010. It is targeted at learners in grades 7–10 with little or no knowledge of programming, but learners of other grades are also welcome. The course will teach Python: a real-world programming language used by many large companies such as Google, Yahoo and Industrial Light & Magic that is also easy to pick up.

The only prerequisite for the course is a fair level of computer literacy: using a web browser and text editor. The course will start from the very basics of what computer programming is about and end off with an introduction to programming concepts: flow control, lists and functions.

You can apply online at http://algorithm.cs.uct.ac.za/apply. Dead- line for applications is 21 February.

Posted on January 22nd, 2010 at 4:51 pm by Tim Keller

Getting Married

has 2 comments

Wedding Day - GK-049

19 December 2009: Tim and Amy get married at Simon’s Town Methodist Church

Our official photographer will be turning in her beautiful images this week, but in the meantime I thought I should get just a couple of pics from the day up! Thanks to our family and friends for capturing some truly special memories for us.

First and foremost, thank you to all our friends and family who joined us on the 19th. Your presence and presents were most appreciated!

Getting married is just about the most exciting, scary, complicated and wonderful event you’ll ever experience. The sheer number of things which need to come together on the day is quite astounding. Invites, guest list, seating plan, dress, suits, flowers, cars, pastor, mariage contract, marriage counseling, traveling friends/family, Honeymoon booking, speeches, lunch/dinner, cake, photographer, videographer, and rings – its all quite something.

As part of my commitment to Project52 – to blog once a week for the next 52 weeks – I’ll slowly be taking apart our Year 2009 and explaining how we were able to put together an amazing wedding without breaking the bank. From Engagement to Honeymoon, Amy and I will share via this category of posts the steps you can take to put together a beautiful wedding experience of your own.

Happy New Year and welcome to 2010.

Posted on January 7th, 2010 at 11:13 am by Tim Keller

An Oxymoron’s Guide to PHP on Windows

has no comments

I had the privilege of speaking at SA Developer Cape Town last night. Twenty-something local geeks turned up to hear about how well the Open Source PHP language runs on Windows IIS, using FastCGI.

For the longest time, the utterance of “PHP” and “Windows” within the same sentence meant the speaker was either temporarily insane, or horribly misguided.

In ‘An Oxymoron’s Guide to PHP on Windows’ you’ll discover just how much the situation has changed in the past 12 months. Thanks to Windows Server, IIS7 and FastCGI, running PHP on Windows finally makes a great deal of sense. It performs admirably and facilitates integration with familiar Microsoft technologies like ASP.net and Silverlight.

Posted on November 26th, 2009 at 11:40 am by Tim Keller

Google Go

has no comments

Go Logo

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!

Posted on November 16th, 2009 at 5:17 am by Tim Keller

No VoIP for iPhoners without Wifi

has 4 comments

Skype iPhone needs WifiIt sounds like Dave Gale had a bad day with his iPhone 3G and Vodacom today.

I’m on the road today, between a client site [that's us] in Westlake and the home office when I discover that Vodacom have decided I don’t need to talk to anyone. I call my wife 3 times in a row to hear her repeating “HELLO?” in more and more exasperated tones while I bellow fruitlessly into my headset, then rip the headset out of the phone just in case it is on the fritz, not the network. Nada. No joy.

So I think, no problem, I have Skype and Fring on this pocket rocket-phone, I’ll just call via Skype-Out.

Not so much.

The iPhone SDK restricts apps from using the GSM network to make VoIP calls. The user has to have a Wifi connection via which these VoIP calls can be switched.

Dave continues (with links added by me):

They charge us far more than they should for calls, duck and dive when they’re pressured to reduce prices, and then it appears they block us from making use of VoIP over 3G.

The tragedy is that this should not be a problem for South African iPhoners. It is AT&T/Apple policy that has shaped the App Store’s T&Cs to protect the cellular network’s traditional voice business interests. It is Apple’s monopolistic behaviour that has landed the Cupertino-based powerhouse in hot water of the past.

But there seems to be some light in this iTunnel, according to Engadget Mobile:

AT&T’s restrictive network policies might have been behind some of the more notable iPhone app rejections in the past, but at least one major class of applications just got the green light, as Ma Bell just opened up iPhone VoIP calls over 3G. We can only assume this is the result of the FCC’s renewed push for net neutrality and AT&T’s argument that it’s doesn’t need new regulations to remain open, but — what does this mean for you? Well, Skype on the road, for starters, but we’re guessing a flood of interesting new VoIP apps will hit just as soon as devs can get their apps updated and submitted.

In the meantime, here’s the timk.co.za hacky work-around:

  1. Get yourself an old phone that has a Wifi chip in it (I use an old Nokia E65 with my iPod Touch when on the move)
  2. Download and Install JoikuSpot Light – a free symbian app which turns your device into a Wifi Access Point to serve up the phone’s 3G connection.
  3. Connect to the JoikuSpot from the iPhone’s Wifi Manager.
  4. Make your Skype/Fring calls

Hope that helps! If it doesn’t, you might be better off with one of these.

Posted on October 15th, 2009 at 12:29 am by Tim Keller

Silicon Cape idea – Develophpers Cape Town

has 2 comments

Luke, Tim and ChristiaanI was privileged to get to spend the day with some of the brightest entrepreneurs and founders in Cape Town at the Silicon Cape launch. It was incredible to see how quickly founders Vinny Lingham (of Yola) and Justin Stanford (of 4Di Capital and FireID) have been able to bring their vision of a Silicon Valley in the Cape to light. The event included big hitters like former Mail & Guardian Online GM Matthew Buckland, South African billionaire Johann Rupert, Western Cape Premier Helen Zille, and Dr Ramphela Mamphela.

The essence of the day can be consumed via various news sources, but ultimately three goals were exposed:

  • To develop a digital innovation hub
  • To give entrepreneurs a kick-start
  • To set up a Cape VC fund for start-ups

The main take-away for me was an issue raised by a delegate during the open-floor panel discussion: we have a drastic skills-shortage in the local tech start-up space. While the Silicon Cape may foster a community of entrepreneurship, we can’t do much without high quality, skilled employees. The majority of our bright minds are picking up corporate bursaries after High School, and moving straight into black suit and tie after 4 years at University. If we’re going to have great startups in the Silicon Cape, we need great programmers, sysadmins and techies who are available for employment.

With that in mind, I’m going to kick off a little group around this. I think it should be called “Develophpers Cape Town” – a community for PHP devs, aspiring and experienced. Let’s see if we can get some discussion going in the comments here. What is needed most: training, social geek-out events, hackathons, etc?

It is clear to me, that the Cape is onto something really exciting and potentially powerful. Let’s be a part of it.

Posted on October 12th, 2009 at 3:35 pm by Tim Keller