- Recent
- Popular
- Tags (1)
- Subscribers (28)
- DjangoCon and PyCon UKSeptember 15
-
September is a big month for conferences. DjangoCon was a weekend ago in Mountain View (forcing me to miss both d.Construct and BarCamp Brighton), PyCon UK was this weekend in Birmingham, I'm writing this from @media Ajax and BarCamp London 5 is coming up over another weekend at the end of this month. As always, I've been posting details of upcoming talks and notes and materials from previous ones on my talks page.
DjangoCon went really, really well. Huge thanks to conference chair Robert Lofthouse for pulling it all together in just two months and Leslie Hawthorne for making it all happen from Google's end. Google's facitilies were superb: the AV team were the best I've ever worked with and an army of Google volunteers made sure everything went smoothly. It's hard to see how it could have gone better; the principle complaint we got was that at only two days it was hard to justify the travel, something which future DjangoCons will definitely address.
Every session was recorded and the videos should be going up on YouTube shortly
- Announcing dmigrationsSeptember 3
-
The team at Global Radio (formerly GCap Media) is the largest group of Django developers I've personally worked with, consisting of 14 developers split into two scrum teams, all contributing to the same overall codebase.
Working with that many developers makes smart tools and processes essential, and in some cases we've had to develop our own. Today, we're releasing one of them as an open source project.
dmigrations is a Django migrations tool. It addresses a common problem in Django development: if you change a model after creating the database tables for it with syncdb, how do you reflect those changes in your database tables without blowing away your existing data and starting again from scratch?
django-evolution attempts to address this problem the clever way, by detecting changes to models that are not yet reflected in the database schema and figuring out what needs to be done to bring the two back in sync. In contrast, dmigrations takes the stupid approach: it requires you to explicitly state the changes in a sequence of migrations, which will be applied in turn to bring a database up to the most recent state that reflects the underlying models.
This means extra work for developers who create migrations, but it also makes the whole process complet
- Back to full-time employmentAugust 22
-
I've been freelance for a year and a half now, and it's been a great deal of fun. For me, being freelance meant having the freedom to pursue all sorts of different interests - technical writing, public speaking, Django, OpenID, JavaScript - and the opportunity to work with some really fantastic people.
It was going to take a very special opportunity to pull me back in to full-time employment, but I believe I've found that opportunity at the Guardian. I'll be joining them full time (well, four days a week) in mid-October as a software architect, collaborating with their development team on some ambitious API projects. The Guardian have access to a lot of interesting data and I can't wait to get stuck in to it. Since they're a newspaper, it shouldn't be a surprise that they scooped me to the story.
I'll be particularly sorry to say good-bye to the outstanding team I've been working with at GCap. I'm looking forward to talking about some of the things we've been working together over the next few weeks.
- The point of "Open" in OpenIDJune 24
-
TechCrunch report that Microsoft are accepting OpenID for their new HealthVault site, but with a catch: you can only use OpenIDs from two providers: Trustbearer (who offer two-factor authentication using a hardware token) and Verisign. "Whatever happened to the Open in OpenID?", asks TechCrunch's Jason Kincaid.
Microsoft's decision is a beautiful example of the Open in action, and I fully support it.
You have to remember that behind the excitement and marketing OpenID is a protocol, just like SMTP or HTTP. All OpenID actually provides is a mechanism for asserting ownership over a URL and then "proving" that assertion. We can build a pyramid of interesting things on top of this, but that assertion is really all OpenID gives us (well, that and a globally unique identifier). In internet theory terms, it's a dumb network: the protocol just concentrates on passing assertions around; it's up to the endpoints to set policies and invent interesting applications.
Open means that providers and consumers are free to use the protocol in whatever way they wish. If they want to only accept OpenID from a trusted subset of providers, they can go ahead. If they only want to pass OpenID details around behind the corpo
- Debugging DjangoMay 21
-
I gave a talk on Debugging Django applications at Monday's inaugural meeting of DJUGL, the London Django Users Group. I wanted to talk about something that wasn't particularly well documented elsewhere, so I pitched the talk as "Bug Driven Development" - what happens when Test Driven Development goes the way of this unfortunate pony.
The slides are up on SlideShare, but don't provide quite enough context so I'm going to cover the tips in full here.Making the most of the error page
Django's default error page is great - it provides a detailed traceback with local variables, lets you expand out the lines of code around the problem, provides a plain text exception suitable for e-mailing to colleagues and even a one-click button to send details to http://dpaste.com/ so you can go and talk about the error on IRC. It also serves the same purpose as phpinfo() - it shows you your application's settings, the GET, POST and COOKIE data from the request and the all important META fields assembled from the HTTP environment (great for remembering how to miss-spell HTTP_REFERER).
Useful tip number one is that you can trigger the error page from any view just by adding the following line:
ass
