July 2011
4 posts
Playing the odds on technical debt
mike-woome: Strategically Woome is very good at resource investment decision. As a management team we debate hard what projects get resourced and even then effort is only committed to step 1, the first decision point, and then we measure and iterate.  We try to apply the same logic in the day to day operational technical debt. Read More
Jul 21st
1 note
Mike's Stuff: self healing in nagios alert →
mike-woome: At Woome we’re quite lazy, I’ve mentioned that before. We write quite a lot of bespoke nagios alerts for our applications and on occasions we’ve found ourselves being woken regularly and needing to perform a simple restart of some buggy third party tool or a piece of code that we’ re waiting on a…
Jul 17th
23 notes
tiny javascript templating →
We’ve released our tiny templating language (calling it a language really is a stretch) as a jquery plugin. We don’t actually use the plugin because it’s simpler to just include it in your js: function tache(template, ctx) { var t = template; while (true) { var res = t.replace( /{{(.*?)}}/, function...
Jul 7th
6 tags
Lazy devops config recoverability with mercurial
At Woome we often suddenly create a new set of key information, such as a regularly changing nginx config. We use mercurial extensively, so the typical next step at this point initialise a repo for the data set and check everything in. As a team we’ve trained ourselves to check in changes to most admin data sets automatically, with a ticket number in the comment, so this is very nearly self...
Jul 6th
62 notes
June 2011
2 posts
an address book importer →
This is a new contact importer module for Django. We’ve just wrapped openinviter with some python… but what’s slightly unusual here is that we’ve wrapped it by calling php as a unix process, rather than as a webserver. That makes this a lot easier to setup. Indeed, it should just work with: pip install django-contactstore Of course, we recommend using veh to manage a...
Jun 23rd
2 notes
Jun 9th
May 2011
1 post
May 26th
April 2011
2 posts
monster chat! →
phew So we’ve pushed live our latest thing. This is monster chat a group video chat app that let’s you pull your friends from fb and twitter and yahoo chat and hopefully other places and have a right old natter. Dev on this has been pretty quick. We got the basic app working within about 2 weeks. A lot of the last 2 weeks has been making sure we tweaked the Flash audio/visual...
Apr 20th
April Fool!!!
Unlike google: and youtube (couldn’t grab that one, never mind) WooMe will not be having an April’s fool joke this morning. Why’s that? you ask. Because they’re totally lame we answer
Apr 1st
March 2011
2 posts
Mar 25th
Mar 25th
February 2011
5 posts
let's support the product people →
Feb 17th
ActionScript gets one (closure) over Java
Being a Scheme guy I’ve always thought Closures to be a vital part of programming. I guess they weren’t considered a big deal by James Gosling as he famously didn’t include them in Java (though you can do a hack and they are coming in latest Java). ActionScript3 on the other hand, which normally stands naked except for a rather flimsy bedsheet painted with the words I AM JAVA,...
Feb 15th
WooMe's XSLT based Django template engine →
We use django extensively but don’t use django templates. This is our templating engine, based on xslt and on the excellent lxml project. We think this works pretty well. And XSLT is a very powerful template engine of course. We’ve got a bunch more django related technology we’re trying to make public, including our own multidb engine which we think is better than...
Feb 7th
How we work at woome
Got fed up the other day at the ridiculous accusations being levied at us, so we team-sourced this piece explaining the sort of tricks and tips we use at woome to make our experience as relevant as possible for users who are online now. Working with a real-time social network is quite different from a lot of the more ‘cache now update later’ sites  and it requires you making sure that...
Feb 4th
WooMe scamming? Outrageous suggestion! →
I’ve linked to the HN thread because I’m too cross to link to the techcrunch thread. It would be nice if techcrunch “journalists” checked their facts before they publish a story.
Feb 2nd
January 2011
1 post
Nic's blog post about veh - the python virtualenv... →
we’re starting to use the veh tool at WooMe to manage more complex dependancies. Since this is helping us get to the point where we can release some of our cool code as free software we’re very happy about that.
Jan 20th
November 2010
8 posts
WooMe's ops director slams devops community →
mike-woome: Stop the #devops condescension now before you drive away the precise people you need to learn from. What strikes me right now, that the devops community, at least the bits I am meeting seems to be full of devs believing their bringing a revolution to the poor unwashed sysadmin masses. Well, you…
Nov 26th
trac slash
Following on from the trac hacking the other day I’ve now taken the next step and made a trac milestones query macro so we can replace a bunch of ticketquery macros with: == Release Candidates == [[MilestoneQuery(rc_%, ,)]] == Releases == [[MilestoneQuery(release%,completed,)]] This is sooo nice. Now to update our release tracking page I can simply use command line tools (and the trac...
Nov 24th
omg omg - trac awesomeness
At WooMe we do a lot of releases. We’ve done more than 1 a day so far this year. We’d like to go quicker. One of the things that slows us down is the way we manage releases. It’s fast but it’s very manual. We use trac. We make tickets for everything that is going into the release and then we display the releases on a page - when the releases are done we can move them...
Nov 19th
statement timeout. bzzzt.
Two posts in as many days. Things must be exciting. This is excting. I just wrote the most awesomest Django query evah! People.objects.extra(where=[ "id in (select p.id from webapp_people p where p.id in (select pp.id from webapp_people pp where pp.id in (select ppp.id from webapp_people ppp where email...
Nov 17th
keeping your testing light
Practically everyone agrees that selenium testing is a nightmare. The biggest problem is that you end up with too many tests. At WooMe, we think we have a secret sauce for making sure our testing doesn’t become bloatastic. We have very few core Selenium tests. The payments system, registration and email are the only things we test on every release. Everything else is done with acceptance...
Nov 17th
About how we made massive load drops on our... →
We’ve got a load more Django stuff tied up here at WooMe, including our own multidb. We’re working as hard as we can to release it to the community. The trouble is, we have these day jobs.
Nov 3rd
mercurial trick
Here’s a great little mercurial hack: hg heads --template '{rev} {desc}\n' This shows you the heads to be merged with the revision and the changeset summary: 21824 #7466 Fixed IE7 bug with captcha popup. Captcha field set to autofocus. 21823 #7454 Switch to keep getvip page active for clicktale bot. 21818 #7412 go round the problem with woome.com and first_landing cookie 21806 Added tag...
Nov 2nd
London Emacs meet up →
Nic is into Emacs, mostly the rest of WooMe are vim hackers. Which just goes to show Nic isn’t biased. However, he does exercise the right to hold the first Emacs user group in London we’re aware of. That’s pretty strange… we’re thinking there must be another one.
Nov 1st
September 2010
2 posts
the tech team are hosting a chat about continuous...
We’re aiming to collect a bunch of people who around sites of the same sort of size and complexity as woome for a chat about how continuous integration is done. Just to share stories, ideas and eat some pizza. Give me a shout on twitter if you’re interested.
Sep 23rd
wsgi replaces cgi
A neat thing we’ve just done in the dev team is to replace our cgi based multi-repo server setup with a single python server. We have lots of forks of WooMe’s codebase (all stored in mercurial) and each one needs to be served so we (the team) can see it and discuss it and suggest changes and so on and also so the selenium based QA can see it and run regression tests against it. ...
Sep 6th
August 2010
5 posts
6 tags
Memcached hashing fun!
We use memcached extensively and have been upgrading from ubuntu hardy to lucid. We’re not quite a continuous integration house, but server farm upgrades are obviously done in tranches to measure and manage risk. We just discovered that we bought this memcache change in the upgrade process. Resulting in our data in memcache being hashed differently on old servers to new servers. The impact,...
Aug 19th
Aug 12th
The boys pedalin high! on Twitpic →
WooMe is a bit of a problem for our waistlines. Fortunately the Mayor of London has come up with an answer. The answer isn’t “more cake”.
Aug 12th
Aug 12th
Aug 11th
July 2010
2 posts
4 tags
Web Logs
For years I’ve hated web analysis software - Its all sluggish as hell and its all a bit monolithic. Well - about 6 months ago one of our team had a ridiculous idea. He suggested “Why dont we stick the whole lot in a database, then we can just do stuff whenever we want.” Clearly we sacked him because he was barking mad. A couple of weeks later, we started mangling our log files...
Jul 16th
6 tags
WatchWatch
Yesterday (Friday Jul 2nd) both Nic Ferrier and me went to the CHAR(10) conference at the Oriel College in Oxford, UK. It was a very interesting conference (I personally learned some pretty neat stuff) and Nic did a presentation on the backend we use at woome using django and PostgreSQL and our internal multidb django technology that will be open sourced soon! - Marc
Jul 3rd
June 2010
2 posts
Jun 4th
why windows people make me cross  →
googling around for how to remotely run a batch file on a windows box for our test stuff I came actoss this. the poster asks how to run commands on a remote windows machine, the responses suggest: run the command locally but with the remote file system run telnet use something that doesn’t work That is why I find using windows or working with windows people so frustrating. My...
Jun 1st
April 2010
4 posts
nginx awesomeage →
WooMe uses nginx to frontend our django. It’s async IO is really great. But we don’t use any of this stuff, it’s quite mad. Brilliant. But mad.
Apr 21st
get an iphone get a girl... but SOAP?? don't think...
We were alarmed by this today: via get an iphone, get a girl Guys, want to get girls? Then buy yourself an iPhone. According to a survey of 1500 women carried out on behalf of Phones4U, men who own an iPhone are more attractive than those who don’t.The retailer said today that 54 per cent of respondents said they would more likely date a fellow if he owns an iPhone. Just over a third...
Apr 21st
our first public code - drivel: a COMET framework →
fanfares please!!! drivel is a framework for building asynchronous applications with python. drivel is important code at WooMe and is underpinning some exciting stuff we are doing. We’re going to be moving this forward quie a lot. This is also significant because it’s our first published code. We have a LOT of code that we want to publish but we haven’t been able to yet for...
Apr 16th
does it get you laid? →
The (in)famous article where Jamie Zawinski defines what groupware should be. If there was a mission statement for the WooMe tech team it is this.
Apr 16th
March 2010
3 posts
two trac tricks
Here are two little trac tricks I cooked up this morning: ticketsed - sed out trac ticket numbers in a block of text #!/bin/bash sed -rne 's/.*(#[0-9]+).*/\1/gp' ticketwiki - turn a list of tickets into a wiki query #!/bin/sh TICKETQUERY=$(sed -rne 's/#*([0-9]+)/\1/p' | uniq | tr '\n' '|') cat Need an example? how about this: $ cat <<END | ticketsed | ticketwiki nic - I'll do...
Mar 16th
1 note
Mar 10th
5 tags
Munin at WooMe
We’ve been using munin at WooMe for a while now and we’re hitting a wall. Now I’ve been a big fan of munin since I first stumbled across it for several reasons. Its massively simple to set up - even a lazy sysadmin like me can get it up and running on a small network in minutes. For the basic setup it is also pretty much install and forget which is just what you want. Here,...
Mar 10th
February 2010
4 posts
Feb 21st
Feb 21st
valentines day
We did all we could to discourage traditional valentines day celebrations and get people to indulge n threesomes instead but in the end here are the gift breakdowns: Gift Count BEER 2 BEERKEG 3 OSCAR 3 TURD 4 SCREW 6 ICECREAM 8 COCKTAIL 9 CAKE 10 SHOT 13 PANTIES 21 CANDY_HEART3 32 BALLOONS 32 DIAMOND_RING 36 ...
Feb 15th
3 tags
open messaging
messaging at WooMe was always dependant on you being a friend… we’ve done some analysis recently tho and decided that was a pretty strange thing to make people do. Friendship is an important concept, especially for a social dating site and we’re skewing that by forcing it for simple messaging. Interestingly the database table storing the friendships is also one of the...
Feb 13th