Michael Brunton-Spall on Rant, Django, The Guardian, JQuery, History, Conference, Web Development, Performance, Python, The Future, Identity
Find me on
  1. On 18th of December, 2009 at 22:57
    Posted in Python, Open Source, Regular Expressions, regex-builder

    I'm not a big fan of regular expressions.  They can be powerful, but for anything remotely complicated they can be a nightmare to maintain and re-read.  I had an idea recently for an easy to use chaining regular expression building library but I can't find anybody doing it, so I've created one myself.

    I've borrowed the concept of chaining from the jquery library, so each function on the Regular Expression Builder object returns the modified object.  This makes the interface easier to read, and makes constructing a complex object pretty simple.

    The code can be found at github

    Using it in your code is pretty simple, import the library, and start building the regular expression

     

    from regex_builder import *
    regex = str(literal('abc').one_or_more(literal('ef')))

     

    So why is this useful? Regular expressions can start to get pretty large and funky. So for example, we might want to match a set or urls something like/travel/france and /travel/france+skiing and also /travel/france+science/nanotechnology

     

    /[a-zA-Z0-9]+/[a-zA-Z0-9]+(?:\+(?:[a-zA-Z0-9]+/[a-zA-Z0-9]+)|[a-zA-Z0-9]+)?

     

    Writing this in the first place without making a mistake is painstaking and fiddly.  Coming back to it 6 months later and having to change it is even worse.  Here is the equivalent using my library.

     

    slugword = one_or_more(range('a-zA-Z0-9'))
    section_and_keyword = literal(str(slugword)+'/'+str(slugword))
    combiner = literal('/'+str(section_and_keyword)).optional(
                   literal('\\+').alternate(section_and_keyword, slugword))

     

    Now it's not perfect by any stretch of the imagination.  I'd love to not have to use str and literal to repeat a defined regex, but the current architecture means that executing "slugword.literal('a')" modifies every instance of slugword. 

    Other Todo's includes adding word, whitespace and digit methods, adding an any_character method and finding bugs by actually using it.  I'll also be extending the framework to automatically match using the re module, so you won't have to manually compile and match by hand.

    I also think it would be fairly easy to port to Java, so thats on the cards

    Let me know what you think, use it and tell me what regex functions you use that I'm missing.  I only implemented the simplest functions, so there is a lot of lazy flags, special repeat types and stuff that I've never personally used, and so didn't implement.

  2. On 10th of November, 2009 at 15:24
    Posted in Conference, Speaking

    What do you do when you are at a conference and bored?  Do you start using the backchannel to start sniping at the presenters taste in clothing, presentation background, or speech idiosyncrinisities?  I've seen this at a number of conferences and I find this to be extremely unprofessional behaviour, especially in a public forum.  If you see my twitter feed, you will see that I might object to the content of a presentation, for example my dislike of Objective-C as a language.  However to object to a presentation because of the presenters choice of words to describe a fuzzy topic, or the quality of photography in their slides as I saw at a recent conference, is the epitome of rudeness. When somebody who is an expert in their field, has given up their time to attempt to share with you, picking holes in the format of the message rather than the content of the message is small-minded and rude.

    So what should you be doing?  In my opinion what you should be doing is asking yourself one very important question - What is this presenter doing that is not keeping my attention?

    As a sometime presenter I find myself analysing what good and poor presenters do.  I find myself looking to see what is irritating me, whether it be the presenters suit, or the way she keeps swearing, or the number of times he says Um.  But at the core I tend to find that if I'm focusing on how many times the presenter says Um it's because I've lost interest in the core topic.

    There are a number of reasons that a presenter can lose my interest as a listener.  It could be that I'm just not interested in the topic, but a really good presenter might be able to keep me interested regardless.  It's more likely that the presenter is making a mistake in preparing and delivering the presentation.  this can be caused by

    • a lack of preperation, when a presenter doesn't know their material enough.
    • a lack of passion, when the presenter doesn't manage to enthuse me, because they don't seem enthused their selves
    • a lack of aim, when the presentation is clearly aimed at the wrong audience, like a code heavy presentation at a designers conference.

    In a future presentation I'll cover what I try to do to prevent these from being a problem when I present, but for now I leave you with this question,

    Why am I not interested in this presentation?

  3. On 04th of November, 2009 at 16:56
    Posted in Performance, Scalability, Conference, Scale Camp

    I've been to a fair few conferences recently, and something that has struck me is the large number of people who are dealing with similar issues.  How to deal with large numbers of users. how to scale their website to handle peak loads, how to identify what capacity they have for peak loads and so on.  The problem here is that although people are talking about it at conferences, and there are a few books around, there isn't anything dedicated entirely to performance and scalability.  The only thing I could find was the Velocity conference, run by O'Reilly over in the states, but over here in London?  Nothing that I could find.

    I first raised this with Simon Willison soon after he joined the guardian.  He, and other colleagues here agreed that a conference would be a good thing, and suggested I might like to organise it.   So much for my big mouth!

    So it gives me great pride to announce the first UK Scale Camp.  

    We decided early on in the planning, that the best format for this conference would be a *Camp style event, like BarCamp or FooCamp.  A *Camp for those not in the know, sometimes called an Unconference or an Open Space, is a conference where the delegates themselves do the presenting.  Essentially everybody coming to the event is encouraged to participate, to make the conference what they want.  There is a big blank grid, with timeslots and rooms on it, and delegates come with talk or discussion ideas prepared, they find a slot for their idea, and put it on the grid.  This means that the conference is completely open, any of the delegates can speak, and anybody can go to anything.

    The reason for choosing a *Camp style is that with an event of a smaller size, it helps to break down the barriers between speakers and attendees.  At some conferences, the speakers get VIP treatment, they stay hidden away in special rooms and don't mix with everyone else.  But at a *Camp, all the speakers are on an equal footing.  That means that there is an equal chance to share what we know.

    *Camps also tend to encourage more discussion based panels than a normal conference.  These can include discussion panels where a number of experts sit and discuss, as well as roundtable discussions or even goldfish bowls, where anybody can take a seat and join in the discussion.

    This really matches the vision of the Scale Camp.  I came up with the idea because I've been focused for a time now at the guardian of making our website scale, and we've done a pretty good job of it but I don't know everything about scaling.  In fact I hardly know anything about scaling, because our approach is based upon our under.lying architecture and our usage patterns.  In a room with 100 of the brightest and best minds in performance and scalability in the UK, I didn't want everybody to be focused on a few people, I wanted everybody to talk, to discuss and to share ideas.  I wanted to find myself talking one minute to a genius in RabbitMQ, and the next minute to somebody who manages hundreds of servers in a data center.

    To get this all organised has been made much easier by the wizard events team here at the guardian and our first sponsor, Nestoria. The day itself will be pretty simple, there will be some tea and coffee and a brief introduction into the concept of a *Camp and the vision of Scale Camp, and hopefully people will start to put up some session ideas.  The sessions themselves will continue all day, with a few breaks for lunch and tea and coffee, and then we will have a quick thank you talk, and notification of a nearby pub that people can retire to.

    If you've already got your ticket, then taking part is easy.  Think up something you want to talk about or something you want to learn.  We'll probably kick the day off with an introduction game, asking you to identify yourself with a few "tags" so people know something about you, then hopefully you can either put up a talk suggestion or find someone who's tags interest you and ask them to talk about something.

    If you plan on presenting, then there will be projectors and whiteboards available in most of the rooms, but feel free to do a talk that is technology lite.  If you plan on doing a talk that is code heavy, please let people know in advance by putting that in your talk title.  "Memcached - Implementing it in a java stack" is better than just "Memcached".  We would love to encourage you to use a talk that allows for participation and discussion rather than lectures.

    This event is already looking to be a great day, talking and learning from some of the brightest minds in the industry.  We already have people from such companies as Yahoo, Flickr, Google, the BBC, Claranet, Cloudsoft, Nestoria, and Thoughtworks coming to the event. 

    There are still some tickets left, but they are going fast.  We've reserved 20 tickets until a few days before the event, the rest will probably go in the next week or so.

  4. On 26th of October, 2009 at 19:49
    Posted in JQuery, Javascript

    A quick one here.  I develop most of the functionality to this website when I am offline on the train.  I wanted to use the jQuery library on my website, and the most performant way of doing so is to use Googles javascript mirror. (Yes I know about the privacy implications).  However that doesn't work offline, rendering my website into non-jquery mode and making it a bugger to implement jquery features.

    After removing that call and checking it in a few times by accident I did something I've never seen anybody else do.

    	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2/jquery.min.js" type="text/javascript"></script>
    	<script type="text/javascript">
    	if (window.jQuery == null) {
    	document.write('<scrip'+'t src="/static/js/jquery.js"></scr'+'ipt>');
    	}
    	</script>
    

     

    This is absolutely no use to anybody browsing my website in it's deployed form, and I should put a wrapper around that to only use it in developer mode, but what it does is simple and perfect for me.

    First it gets jquery from googles servers.

    Then it checks to see if jquery is actually loaded.  If not it adds a script tag that loads jQuery from a relative URL.

     

    That is all

  5. On 21st of October, 2009 at 12:52
    Posted in Rant, Theology

    I am a christian and I am proud of the fact.  My faith makes it clear that I should be willing to share my faith whenever and wherever I can, but sometimes that can be made hard.  Not because of beligerant athiests (most of the most hardcore athiests I know are lovely) but because there are some supposedly Christian organisations that portray the Christian faith in such a bad light that it makes me feel ashamed to be branded as a Christian.

    Recently an article was written in the Daily Mail by Jan Moir.  It had undertones and overtones of shocked moralisation and suggested that Stephen Gately had died an unnatural death simply because of his sexuality and sexual proclivities.  But because Jan Moir doesn't claim to speak for Christians, and although her article was so offensive that it was rapidly retweeted around the internet and caused the Press Complaints Commision's webserver to crash under high load due to it's judgmental content, it didn't cause me any shame.

    However, I found my way to a press release by the Christian Voice which made me a combination of angry and ashamed.

    Angry because I could suddenly see the level of hatred and judgement  that tars all Christians with it's unacceptable bile.

    Ashamed because the Christian Voice's tagline claimed to be speaking for Christians across the UK.

    The Christian Voice claims "Homosexuals may try to justify Gately's and Cowles' behaviour by saying that some heterosexual couples get up to similar things with strangers. But there are orders of magnitude of difference."

    Let me be clear here, because I believe in biblical truth, I believe homosexuality to be a sin.  I also believe that wearing garments of two cloths to be a sin and thought of committing adultery to be sins.  Paul made it very clear that all sin is equal, and that the wages of sin are death.  I don't feel that there is a get out clause here for good people.

    There is no concept of second class sin, and no concept of second class sinners in Jesus's eyes.  Even if you are a Christian and believe that your sins are forgiven, you are still a sinner in the eyes of God.  His self-substitution on the cross defeated sin when standing before God in his role as Judge.  But it does not make us sinless, it covers those sins up.

    Jesus and Paul were very clear that other peoples sin was not our problem or within our christian remit, and that the only sin we should concern ourselves with is our own.

    "Judge not, lest ye be judged" is how it is often translated, "Remove the plank from your own eye before pointing out the speck of wood in another's eye"

    We are not called as Christians to judge those around us who are sinners.  If we are to follow Jesus's example we should be with them, feeding the hungry and clothing the poor.  Jesus did not mean that just literally, he meant that we should be providing for the needs of all sinners, irrespective of their sins and their views of the sinfulness of their lives, instead giving to them openly, without strings attached.

    Jesus for example did not suggest that we should only give food to the poor who won't sell that food for some material gain, and he did not suggest that clothing only the poor who wanted clothes and would be willing to listen to a sermon in exchange for the clothes.

    Casting aspersions on a recently departed idol to millions, explaining why his life was sinful and holding it up for the public to see is exactly the sort of behaviour that the Pharisee's of Jesus' time tried to do.  They caught a woman in adultery (and some commentaries suggest that they in fact arranged for her to be caught by encouraging the man to commit the act) and brought her before Jesus.  

    They asked him to stone the woman, as she had clearly broken the ancient laws, and should be judged and found guilty.  This was an open and shut case, a person found in debased debauchery.  But Jesus gave that woman a gift, the bible tells us he did not answer, but bent down and wrote in the dirt.  He did not choose to look at her, increasing her shame, he did not call out her sins for everybody to see, instead he gave her the only thing he could, some dignity.  

    When the Pharisee's asked him again, he said that only one of the Pharisee's who was without sin could stone her, so let him do so.  The Pharisee's knew they were caught, none of them were sinless, they all had desires and sins that they would not proclaim loudly in the square, so they slunk away.  Jesus then released the woman from her sins, forgave her for her sinfulness against God, and told her to go and sin no more.

    If only the people at the Christian Voice had treated Stephen Gately with such respect and given him his dignity.  He may have led a sinful life, but I am confident in saying that nobody at the Christian Voice has led a sinless life, and therefore is not qualified to cast the first stone, they are not qualified to judge Mr Gately, nor should they try.

    I leave you with the words of Jesus - If you are angry with someone, you have sinned as surely as if you had murdered him.

  6. On 19th of October, 2009 at 23:45
    Posted in Identity, Facebook

    The more I think about Facebook Connect and identity the more worried I get.  Lets start with my basic premise, your online identity is much too valuable to be controlled by a single company.  We've been there before, we've seen what happens to the internet when a core technology is controlled by a single company, and Internet Explorer 6 was the result.

    The problem really lies in that as a website developer I can understand exactly why Facebook Connect is so appealing, and in fact why I am likely to end up supporting it on my website for commenting and social web stuff.  It's because facebook have put a lot of effort into ensuring that developing social knowledge applications for your website as easy and rewarding as possible.

    If I want to support you logging in to write a comment on something I write, I have a number of possible solutions.  Firstly i can outsource all the complexity to another site, like Disqus or Pluck.  Secondly I can program it all myself, using OpenID, OAuth, Open Contacts and probably some other API's that I'm  not a specialist in, or finally I can use the nice Facebook shim.

    If I use someone like Pluck or Disqus, I still get no real control over my own users.  I've still given up control to a third party, just not the identity behemoth that is Facebook.  Other than through their management and reporting systems, I've got no visibility of who users are, what they are doing, or any more information about who they are than I started with.  I might know that happy_boy_206 has commented twice, but I know nothing about who that user is, nor do I know when she/he just browses the website but doesn't comment.

    With Facebook Connect, I can get information about users, and because users tend to stay logged into facebook at all times, as a web developer I can see when they come to my site, and what they do providing they are logged into facebook.

    Even more importantly from a user experience point of view, Facebook is very easy to use. My mother is on facebook, my aunts and uncles use facebook, even most of my church and other non-technical freinds use facebook.  They might wish that I wrote in English on occasion instead of technicalease, but they understand facebook.  They do not have an OpenId account, or if they do (because of a yahoo account, or some other open id provider) they don't understand it as OpenId.  I could create a login box that contains a list of possible accounts, including google accounts, yahoo accounts, other open id providers etc, but lets face it, the average user is likely to have a facebook account and know what it is.

    Finally, the information that facebook gives to me as a website is amazing.  You the user can log in, and grant my website permission to know who you are, and I get access to a large amount of your personal data.  As a Web Developer, turning down that offer of access to your personal data and social graph is foolish.

    So Facebook appears to be winning the identity wars, and because it's winning, it's becoming the defacto standard that can be used, and because it's a defacto standard, even people like myself who are wary of the power of the monolithic corporation need to use it's technologies.

  7. On 10th of October, 2009 at 01:07
    Posted in The Future, Twitter, Web Development, Discus, Diary

    So I've finally added a couple of new features, so thought I'd pop up a quick explanation of what I did and why.

    Firstly, you should hopefully have noticed that everything got bigger, a lot bigger.  Looking around at a number of websites, and then at mine, I realised that on any screen other than my netbook, I had to squint.  For a site that is designed around readable content, that's a bad thing.  Not sure I'm totally happy with how big it is, so let me know if you think it's ugly big, or nice big.

    Let me know, I've said that before, on the basis that the 4 people who've looked at this site so far are friends of mine and will let me know somehow.  But the first comment I got on the site was "You asked for feedback, but I can't give it".  I tried, actually quite hard, to add a facebook comment box, using the fancy new facebook connect API.  And while adding a comment box itself was easy, the scripts make a lot of weird calls that I didn't expect, Adding the connect button only if you're not already logged in requires some very strange javascript foo that I don't appear to possess, and I could not get comment counts out at all.  Instead Paul Carvill suggested I try Disqus, which took me all of 25 minutes to add to the post page.  Since Disqus also supports facebook, twitter, openId and so forth as a login system, I figure it's probably a win all round.  

    Final little change, the tags are now applied to bookmarks.  I've not gone back through the bookmarks yet to add tags, but I'll try to get through them soon.  At the moment it's pretty useless, but I'll add a link so you can see articles by tag, which once there is more than 5 or 6 articles will be useful.

    Next steps, I need to work on pagination, since I'm reaching the limit of articles and bookmarks that can fit on the front page.  I've added an RSS and ATOM feed, but I need to add some logo's or links of some sort, and I guess a picture of me, or some form of picture would be nice.  The most technical next thing is the desire to add an automatic tweet when i post a bookmark or article, and linking bookmarks into delicious.com to create a delicious bookmark.

    So you can now leave comments on my pages to let me know that you hate the new big fonts.

  8. On 09th of October, 2009 at 23:18
    Posted in History, The Future, Twitter, Web Development, Diary

    One of the requested articles on this site was a comprehensive diary of what went into building this website, and why I did so.  Since for shits and giggles wasn't exactly the answer you wanted, I thought I'd elucidate on why I built this and how I went about it.

    Essentially this site is here to serve my vanity, to give me a project I can work on with some cool technologies, and to enable me an outlet for some of the articles and opinions that i've built up over time.

    I used to have a mibgames blog but since I'm no longer gainfully working on my own indepentent games I've decided to gracefully retire it.  I've also started to shift away from an online presence based around the mibgames persona and instead concentrate on the bruntonspall name.  This is because I've been talking at more conferences around web 2.0 and web development, and I'm often asked why I have the twitter name mibgames.  A better "brand" for me is the bruntonspall name, since it's more personally identifiable, and in a way slightly more professional.

    So anyway, whats the story behind this website, and the planned features?  Well I covered a bit about the story behind the website in my first post, but here's a bit more back information.

    I work at guardian.co.uk as a web developer.  Part of that work involves working on new web functionality, and often involves using new technologies and so forth.  But the guardian website is not the sort of site you can just play around with.  Adding something like facebook connect, or openid is not the sort of technology one can decide on a whim to play with.  So the need to have somewhere to play came up, and I tried making a few toy projects, but my heart was never in it, I knew this wasn't a real project, and so I couldn't really be bothered.

    So with the upcoming 30th birthday, the need for a real project, and the decision to start shifting my online presence I decided I needed a new brunton-spall website.  The old one was shockingly bad after all!  This gave me the necessary impetus to decide to try out some new web technologies and try some stuff i've never done before.

    Because of it's existence as a test bed for technologies this site is unlikely to be entirely stable at all times.  It was never meant to be, and things might shift around, features might get added or removed.  I'm going to try my best to not lose any data, and to obey the rules of the web, so addressed content should stay there if at all possible, but we'll see how this goes.  As the website gets bigger and more popular I'll think about moving it onto a more permanant host, and creating a beta site, that has mirror content but with less stable technologies.

    So how about the future?  Well I'm gonna keep some of that under my hat still, mostly because it's not all laid out or planned very well just yet.  You can be sure however that my first thing to develop is some method of bi-directional communication.  This website isn't just for me to put even more stuff into the world, but a way for you people to comment back.  I'm undecided right now whether to add the comment system via Disqus, or Facebook Connect.  If you hae an opinion, then twitter me at @bruntonspall

  9. On 06th of October, 2009 at 21:28
    Posted in Web Development, FOWA

    So what was the highlight of the second day of FOWA for me?  Believe it or not the marketing stuff.  We were exhorted, repeatedly, that listening to your customers is the most important thing in business.  Something that I've forgotten, and something that can be applied to all areas of Software Development.  The customer is king, fail to understand what he/she wants and you may as well be building sandcastles for all the good it will do when the tide comes in. 

    So, back to FOWA, first up was Brett from Twitter, who was here to tell us about the future of frontend engineering.  Unfortunately again this was a fairly disjointed presentation, with a couple of good points, covering thinking about your javascript and frontend systems as scalable full systems from the start, rather than the way that we often do, which is to consider it an addon, and not managing the system complexity the way we would for any other language or programming area.

    There was an interesting announcement that Brett managed to sneak in, which is that twitter has been working on a twitter labs feature.  They will be open sourcing some backend code that allows them to store a number fo option bits against different users, and turn them on and off.  This enables the twitter labs features in much the same way that google labs allows certain google docs and mail features to be applied on a per user basis.  Interesting announcement, we'll see how it turns out.

    Next up Simon Wardley of Canonical came to teach us about the cloud, and to let us know what canonical is doing, in the guise of Eucalyptus, to ensure that no single vendor controls the cloud.  They see that the future of web applications as being commoditisation, like cloud computing, and that in order for it to not become a dangerous monopoly run by a single company, open source is the only way to go.
    Simons presentation was excellent in outlining how murky the cloud is defined at the moment, and the commercial dangers for a web app that is hosting itself on the cloud, in the sense that it is held hostage by the cloud provider if it is unable to migrate to another cloud platform easily and portably.

    Alex Hunter spoke about marketing your web application, and he spoke very pursuasively about how important branding is to your company, and the many ways you can totally screw up your companies image.
    Alex suggested that companies need ot be empowering employees to love the company, love the brand and get out and talk about it.  Companies that restrict the employees access to talk to the customers, who restrict the customers ability to talk back to the company are dying and surely because they are not responding to their customers and not providing what they want.
    Alex then followed that up with some excellent advice on how you can work out what your brand values are, I wont cover that here, but let me assure you that he said if you have a brand meeting and come up with "Fun, Ethical and Challanging" you've missed the point.  Every company wants to be and says it has those brand values.  What do you do to actually represent those values.

    In startup metrics for pirates, Dave McClure also pointed out that companies that don't listen to their customers are loosing out.  He suggests that you should cut back on features in your web app, and measure the actual customer usage.  He suggested removing a feature a week, wait until the users really scream, and then you've found the killer feature, so bring it back, and focus on it.
    Listening to your customers will ensure that you are not wasting your time on features that only 0.2% of your customers use, but take up 80% of your time.

    After an exhausting day, there was an excellent talk by Chris Lea about performance and scalability, which I'll cover in a totally separate post, and then it descended into the live demos, launch events and fun of FOWA.

    My overview of FOWA as a whole is that it was an enjoyable and fun conference if you are starting up a company that runs a web based application, or have the open mind to not be totally focused on technical things.  A few of the overly technical people I met seemed very unhappy about the lack of hard technical content, but that I think is missing the point.  FOWA is not a technical conference, and is aimed at more rounded individuals who have to do a bit of technical development, a bit of marketing and a lot of decision making around the business.

  10. On 01st of October, 2009 at 22:44
    Posted in The Guardian, Web Development, Ubiquity, HTML5, FOWA, Geek Nights

    So today I've been down to London to attend the Future of Web Apps conference, and it has been a fascinating day for me.

    Firstly, the talks were a suprising variety of business and developer focused.  As a developer I often find the business talks "fluffier" and less easy to get my teeth into, but not to the point that I think those are worse talks, just that they are not entirely aimed at me.  Some of my fellow attendee's made their displeasure known on twitter in a very forthright and in my opinion, unprofessional way.

    Secondly, the conference has nicely provided power in what can only be described as a fire inspectors nightmare.  The power cables are a set of standard 4 way extension leads, that are daisy chained from the back of the hall, to the tune of 15 - 20 extensions or so!  However since my current  netbook battery lasts around an hour, I was pretty happy that they managed to provide power for me, however they did it.

    In terms of interesting products, the demo of 280slides and 280atlas was just amazing.  I couldn't work out if it was mac OS X only, or would work under Ubuntu and Windows as well.  I obviously enjoyed Chris Thorpe talking on behalf of guardian.co.uk, his talk was entertaining and informative without being an overt pitch talk.  He was unfortunately bracketed by the two talks that stole the days show.  Bruce Lawson's talk on HTML5 was awe inspiring.  I've heard him talk before, at Oxford Geek Night, but he was even better this time.  He is probably one of the best speakers I've had the joy to watch.  On the other side of Chris was Aza Raskin from Mozilla who talked about how the web will be used in the next 3 years.  His view is that if we can sort out the security implications, the web browser will manage identity and payment, freeing the websites up to provide simple login buttons (like openid) and payment options and allow the browser to manage that kind of stuff.
      He finsihed off by showing off Ubiquity, which was an awesome presentation, but the reality on my ubuntu laptop seems to fall a little short.  However for a labs beta project, it does it's job, which is to inspire awe and get me to think about how to use any apps I write.

    I'm sure there are many others that I've forgotten, I've got pretty full notes that I'll try to write up later, many of the talks were interesting, but without a lot that left me excited and able to write from the top of my head, these included talks about engaging the community, marketing your web app, using social media and so forth.

    So off to bed for me, and another full day of FOWA tomorrow.

  11. On 28th of September, 2009 at 19:52
    Posted in Django, The Guardian, JQuery, Fabric, Apache, Diary, Nginx, WSGI

    Most people for their 30th birthday do something to recapture their youth. I went paintballing and created this site.

    This site is going to be my 'blog' as much as I hate the word and term, detailing my thoughts and allowing me to play with some cool technologies.

    This site was developed over about 5 hours of programming, using a number of cool technologies. Firstly the site is written in the django framework, and python based web framework. I know the first thing one should create with a web framework is a blogging application, but luckily this is not the first thing I've written in Django so I'm saved from that embarrassment at least

    The blog itself is hosted on Apache and mod_wsgi, and goes through an nginx proxy. The site is deployed using Fabric.

    I've also added a little javascript magic using the jQuery library.

    You'll notice on the right is a list of things I've recently bookmarked, that's powered with a nice little bookmarklet that I borrowed from Simon Willison, and it will soon be replicating into delicious and twitter.

    There is plenty more to come, including some developments around the tagging of the content, and I'll riff a little on these subjects over the coming weeks.

    The main thing that this blog is intending on focusing on is the various areas that I deal with in my work at the guardian as a web developer. This will vary from Java to Python and Ruby, from performance and scalability to test driven design, and of course may well meander of course occasionally into personal subjects close to my heart.

    Happy reading and I hope to hear from you soon.