Author Archive

Google shows Ad Networks will bloom even in this Financial Climate

Tim Wintle - October 16th, 2008

Google announced an increase in both profit and revenue today – showing a 26% jump in profits – showing that the advertising networks (such as our own Viral Ad Network) have the potential to not only weather the current economy, but grow within it.

The fact that Google’s stock rose 8% on the news may also be a sign that the markets have room to recover – since even with reduced inter-bank lending there is obviously enough liquidity in the markets to make the most of a clear opportunity.

Not that Google is immune to the climate – they have reduced their hiring, only hiring 500 employees in the last quarter (according to news in about 5 minutes ago) – a dramatic drop (not like us – we’re growing, and looking for python programmers in Bristol among many other careers)

Tim W

Jamie Oliver starts to get viral marketing

Tim Wintle - October 15th, 2008

Recently Chris Quigley did a post entitled when viral food goes wrong on the Rubbertopia blog.

I saw another episode of Jamie’s show last night (I don’t watch much television, but happened to also see the first episode) I was surprised to see how much Jamie has improved his chances of teaching people how to cook.

For strangers to this blog or myself, I work on Seeding Virals through the Viral Ad Network at Rubber republic – and as a viral marketing company, we spend most of our time trying to encourage “advertainment” content to be spread through word of mouth.

Jamie’s basic idea is simple – start by teaching a group of people how to cook a simple meal, and then let them teach some other people. Hopefully the people they teach will teach still more, and eventually the number of people that know how to cook grows massively.

For those who didn’t see it – the first episode started with teaching several people who had never cooked to cook a simple meal, and then getting them to teach a friend – who in turn would teach another friend. The equivalent of this would be if every time we started to seed a viral, we sent it to a few people via email, and asked them to pass it on.

The problem is that for this method to work straight out, you have to expect that each person you send it to will send it to at least one other person. How large this number is doesn’t really matter in the long run as long as it’s more than one – if it’s less than one you’ll quickly end up without it being passed on any more. (Well, actually you have to expect more than one as it gets passed on further, but that’s a good approximation for the first few stages.)

What actually happens here, is that you end up with the message (how to cook in this case) passed on only a few stages before stopping.

Jamie’s initial mistake was in asking people to pass the recipe on to one friend. This means that when you include all the people who either don’t bother, or don’t have time to send the recipe on you end up with an expected “pass-on” rate less than one: In fact the only way that his initial plan could have worked would have been if every single person who was taught a recipe passed it on to a friend – no exceptions.

Not surprisingly, this method didn’t work very well – it quickly ground to a halt after a couple of stages. Given that he had very few people to start with, the final number ended up under 30 people.

Jamie’s newest technique (which was on television last night) started far better. His technique this time was to find 20 local companies, and get them to bring 50 members of staff along who wanted to learn to cook. Taking groups of companies at a time, his first group of 10 cooks (from the first show) would each teach five people, and those five people would then teach two more people, who would teach two more, and so on – up to the total of 1,000 people taught to cook in a day.

Why do I think this method is more likely to work?

Jamie has two massive factors working against him this time – firstly it relies on all of those employees having close enough friends outside of work who they want to teach to cook, and secondly since these 1,000 people weren’t chosen as carefully as the first group they are less likely to actually pass it on at all (the first group responded to an ad asking if they would like to learn to cook and pass it on, and have Jamie Oliver breathing down their neck to make sure they do).

But: Even though only five groups of 50 staff actually passed on the recipe (10%), that’s still 1,250 people in total – making 250 more (“new”) people who may pass it on in the future (along with the first 1,000) – compared to about 10 “new” people who had the recipe passed onto them from the first technique (closer to 100%).

In fact, after the recipe has been passed on just a few stages you aren’t really in control of what kind of people the content has been passed on to – so the chances they will pass it on becomes the same however you get to them. That means that Jamie should reach around 25 (that’s 250/10) times more people from the second method – and probably more than that due to the other 1,000.

What did Jamie get wrong?

One thing Jamie did notice was that the recipe that he taught changed slightly as it got passed from one group to another, and responded by making the instructions more clear. In my opinion that was short-sighted. If he had instead learnt from what it had been changed onto then he could have ended up with a recipe that was more liked by the local population, and more likely to be passed on. Harnessing the social effect of this could have also been useful – perhaps picking several of the best and naming them after the company that produced them – giving the cooks more of an attachment, and making them more likely to pass it on to more people.

He also tried to persuade the entire company to pass the recipe on in one go to 50 people from another company after the event – by encouraging this he relied on bosses providing cooking utensils and time off for staff to teach another group. Perhaps by encouraging people to teach their friends privately he could have increased the percentage of people that got taught – and got it closer to the magic number one.

Tim W

PyCon UK 2008

Tim Wintle - September 15th, 2008

I’m writing this on my way back from PyCon Uk in Birmingham. It’s been a great weekend, with a great selection of talks and a very social feel to the weekend.

meal PyCon UK 2008

I think we were all impressed that Raymond Hettinger somehow managed to give four different talks, as well as a lightning talk. I made it to two of them (I’d seen one of the others at Europython), and took something very useful away from each one.

Perhaps the most entertaining talk was Simon Wilson’s lightning talk. One of those “and now for something completely different” moments, his talk on the history of Zeppelins left me a little confused but more undoubtably educated. For example, I had no idea about “spy zeppelins”. The idea being that a zeppelin would “park” above the clouds over the enemy, and slowly lower a “spy bucket” through. I’m also hoping that next year he will provide an update on the status of the re-make of the classic film “Zeppelins Vs Pterodactyls”.

zepplins PyCon UK 2008
The Keynotes were both focused on the same topic – Mark Shuttleworth of Ubuntu fame and Ted Leung from Sun focussing on the problems that Python may have with the massive expansion of hugely multi-core processors, and with other factors that the community should watch out for.

The conference dinner (see top image) was great fun , we were supplied not only with very carefully chosen beer (see below), but we were also given a comedy lecture on the history of astronomy in Birmingham in the 17th century (I kid ye not)… all in all a very entertaining and memorable conference.

holy ale PyCon UK 2008

Bristol Knowledge Unconference

Tim Wintle - September 6th, 2008

On Friday afternoon I headed down to Bristol eOffice to the first Bristol Knowledge Unconference.

I’d never been to an “unconference” before, and found the format quite unusual, essentially a fifteen minute talk, followed by small group discussions at your tables before asking the speaker questions.

psychologytalk Bristol Knowledge Unconference

“The Fragmentation of Knowledge in the Brain” – Derek Smith

The other unusual feature of the conference was that until we turned up we had no idea what most of the talks were going to be about.

The talks were great, ranging from the BBC News website, to the Open Shakespeare project. The two I probably found the most interesting though were the talk by Derek Smith of the University of Wales Institute Cardiff on the way in which the brain stores semantic knowledge and relates that to syntax, and the “on-the-day” Steve Loughran of HP Labs who’s working on Hadoop (readers may remember the high resolution buhddabrot that I posted a few months ago, which I rendered on a hadoop cluster). It was great to be able to ask some questions about Hadoop, especially since I had to miss the Hadoop conference in London a few weeks ago.

hadooptalk Bristol Knowledge Unconference

Steve Loughran Shows how he’s using Hadoop over anonamous bluetooth logs to show the council how many people regularly use local footpaths.

Fun with post-it notes and Use Cases

Tim Wintle - August 10th, 2008

After watching a great Google Techtalk on using generative research for systems architecture (Digging Beyond User Preferences by Indi Young), I was inspired to spend some of my Sunday afternoon playing with Post-it notes while thinking over some work I’m doing on our ad network and viral seeding applications.

I’d like to point out that I’m not following her process exactly in the images below…

Here’s what you’ll need:

postits Fun with post it notes and Use Cases

Three Colours of Post-It notes

postittower1 Fun with post it notes and Use Cases

A very large piece of paper on the wall, or a large whiteboard

Stage 1:

Come up with a full list of use cases for your application (you do know you’re user’s use cases don’t you?). Pick a colour of sticky note and write them all down.

Stage 2:

Organise all of the the use cases into similar conceptual ideas on upper half of the piece of paper, so if two people are looking for statistics on a particular item (but for different reasons) then those two use cases would be in the same column. Move the columns around so that they each type of user’s use cases are close together.

When you’re finished this stage, you should have a piece of paper that looks something like this:

postittower2 Fun with post it notes and Use Cases

Stage 3:

Now choose another colour of sticky note and write down the features that your application currently contains. Stick these below the “tower” of use cases which they specifically fix.

postittower3 Fun with post it notes and Use Cases

Finally, time to do some brain storming over new features if you are in the planning stage, and write theses on the final colour notes (or if you’re in the middle of implementing a feature then put this on the final colour sticky note). Add these in the same way as before.

postittower4 Fun with post it notes and Use Cases

The idea of this all is to try to draw your attention to which use cases are being fulfilled by the existing system, and which parts may been more thought in the future.

You can also group the columns by the type of user that has those use cases (not shown on the image above). For example, in the above image we actually have five different groupings of use cases, and I’m glad to say that the section that appears to not have features to support it (just left of centre), is the group with only one user, Me, so it’s probably the least important section of the system to get up and running – I have my own external tools to support them.

EuroPython – final day

Tim Wintle - July 9th, 2008

Well, today was the final day of Europython – and it’s been a great conference, unfortunately I can’t stay for the sprints over the next few days, but I have met some really interesting people and learnt a lot of advanced Python tips.

Conference Swag:

There seems to be a habit in the blogosphere of posting a picture of all the “Schwag” given out free at conferences, so here’s mine. As you can see, I’m heading to the plane tomorrow morning with significantly more tshirts than I came here with – Thanks to Google, Canonical (Bazaar) and Opera for adding their clothing to the official conference tshirt.

schwag EuroPython   final day

I also found an OpenSolaris Live cd, and a copy of NetBeans and the latest JDK from Sun in my welcome pack – to be honest I was a bit confused about having a Java Development Kit given to me at a Python conference, until I heard the news that Sun has decided to support Jython (the Python VM written in Java) in a big way – and now has several developers working full time on it – great news for anyone that wants to integrate Java with Python (e.g. for Hadoop)

Well, that’s it for now – I’m off to finish reading “Wikinomics” and try to avoid falling asleep before my early morning plane.

Tuesday at Europython

Tim Wintle - July 8th, 2008

It’s been an interesting day today, as I headed through talks on topics ranging from large scale python applications and software ideology to methods of inserting TeX-formatted maths into web pages – but here are some of the most entertaining events.

Harald Armin Massa gave another great talk as an introduction to the 5 minute lightning talks – “Is Python ready for Enterprise” introduced the new module ncc1701.py (google code page):

(Sorry about the quality of the image)

python enterprise Tuesday at Europython

Part of this code:

>>>import ncc1701
>>>p = ncc1701.Phaser()
>>>p.fire()
Traceback (most recent call last)
  File "<input", line 1 , in <module>
  File "ncc1701.py", line 86, in file
    raise PhaserNotLockedOnTarget
>>>s =ncc1701.Shields()
...

Despite the initial flaws, in the end we all saw that Python is indeed suited for controlling Enterprise applications.

At the end of the day Hans Rosling gave a very interesting keynote on the world’s economy using some very interesting interactive visualisation software designed for “people who are always being told what to do – young children and world leaders”. Here was one interesting slide:

“Where is child mortality highest?”

child mortality Tuesday at Europython

Yup, child mortality is higher in professors than in students, and almost as high as in Chimpanzees.

Monday in Vilnius (Europython)

Tim Wintle - July 7th, 2008

I am blogging this from the sunny city of Vilnius, Lithuania – the setting for this year’s Europython – straight after Guido’s keynote talk on Python 3000 (via teleconference, and at the end of the day due to the 10 hour time difference).
06072008489 Monday in Vilnius (Europython)
I’ll definitely say that I have really enjoyed the first day of the conference – especially Harald Armin Massa’s “Discouraging the use of Python” – a tongue-in-cheek look at different ways that “crafty developers” try to sneak Python into software companies, and ways to counter-act them. Here was my favourite example:

Developer:

“With Python, you have to write a tenth amount of the code as with C”

Why this is to be avoided:

“Less code means less programmers, less man-hours spent on your project, and a lower expenditure, which means that as a manager you will end up with a parking space further away from the office – stop it at all costs.”

I also went to two very interesting talks on PyPy, an interpreter for Python (and more) that would take more time to describe than I have now (and more than most would be willing to read through). It was great to be able to ask the developers some questions, and according to their first talk, we should expect production ready PyPy in between 6 and 12 months.

I also enjoyed the talk on “Building an App in a week” – a talk tailored at hacking together a django web site in very fast iterations – with some great tips, mainly under the heading “avoid doing work at all costs”.

If there is one slight problem I would complain about, it is that the wireless network here doesn’t seem to have been prepared for this many developers to all turn up at once with our IRC, email and ssh connections all running constantly during the talks. I heard one person complain that it was taking him 45 seconds to load the Google homepage – but amazingly Guido’s talk seemed to come through fine.

Signing off for now,

Tim
07072008499edited Monday in Vilnius (Europython)

The Reddit Algorithm

Tim Wintle - July 4th, 2008

As a developer working on the Viral Ad Network (our advertainment network), and viral video search engine viral sauce (and with a recent MSci in Maths – so excuse the equations), I’ve worked on a fair share of social media ranking algorithms, so I found this discovery of the algorithms behind some of the top social sites very interesting. These are well sourced, and very informative to anyone in the middle of a viral seeding campaign. Here is a perfect example:
Reddit:
let

t = (t1 – epoch)

(where t1 is the time the post was made)

let x be the number of up votes minus the number of down votes.

Then,

let y be:

  • 1 if there are more up votes than down votes,
  • -1 If there are more down voets than up votes,
  • 0 if there are the same number.

Now Let

z = max({x,1})

And We Have

ranking = C log10(z) + yt1

Where C is a constant (C = 45000).

You can find more algorithms in this great article.

Simutrans for Ubuntu

Tim Wintle - June 16th, 2008

There are some arguments that will never end:

  • Cats Vs Dogs
  • Linux vs OSX
  • Emacs vs Vim vs [...]

And of course (in this office at least) OpenTTD vs Simutrans.

I come down on the  side of Simutrans, so I was shocked to realise recently that while there was an OpenTTD package in the Ubuntu universe, there wasn’t a really simple way to Simutrans (Looking at Launchpad, this serious issue may be rectified soon)

To help the growing pool of Ubuntu users who don’t want to have to compile from source, or play around in a terminal, I have created a basic .deb package for simutrans – hope others find it useful.