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
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…
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...
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...
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...
May 2011
1 post
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...
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
March 2011
2 posts
February 2011
5 posts
let's support the product people →
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,...
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...
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...
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.
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.
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…
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...
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...
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...
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...
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.
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...
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.
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.
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.
...
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,...
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”.
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...
6 tags
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
June 2010
2 posts
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...
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.
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...
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...
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.
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...
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,...
February 2010
4 posts
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
...
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...