Django + App Engine

Django Meetup
Opening slide from my Google App Engine + Django presentation

Tomorrow (Tuesday, November 25th) at 7pm, I’ll be giving a short presentation at the Vancouver Django Meetup on my experiences using Google App Engine with Django. I hope to see you there.

And on Wednesday, don’t forget to come to the 2nd RDF Vancouver Semantic Web Users Group event — it’s at WorkSpace at 7pm. Dorian Taylor and Gerald Bauer will be giving talks. I’m going to give a short presentation about the Vancouver Base I created at Freebase (it’s a featured base this week!).

Update: I’ve posted the slides from the presentation.

2 comments November 24th, 2008

Innaugural RDF Vancouver event followup

Watch the video in full size on Blip.tv or get the raw video from archive.org.

The first RDF Vancouver was a success. Thanks to Michael Kalus for filming the event.

We’re having another event this month. Please join us at 7pm on Wednesday, November 26th at WorkSpace. Here is the event signup page.

I’m planning on giving a mini-talk on the new Freebase features, including the new Vancouver Base. I’ve been playing around with it, adding structured data that might be useful to people in Vancouver. As an example of what can be done, I’ve updated data for all of the local elected politicians, as well as an incomplete list of Vancouver bloggers. If anybody wants to add stuff, feel free to join!

Add comment November 3rd, 2008

RDF Vancouver Semantic Web User Group

RDF Vancouver

I’m organizing a local “meetup” style event for people in Vancouver that are interested in Semantic Web technologies. We’re having the inaugural event on Wednesday, October 29th at 7pm at WorkSpace. You can sign up for it over at upcoming.org.

Additionally, I’ve set up a TiddlyWiki-based site for the group at rdfvancouver.org.

I hope to see you there!

2 comments October 15th, 2008

Linux Plumbers Conference

LPC Map
Hitting the road…

I’ll be at the Linux Plumbers Conference in Portland, Oregon for the next few days. If you’re there, get in touch!

Add comment September 16th, 2008

“Own the Stack”

Office #2 - Co-Working at WorkSpace (Photo Credit: Jean Cloutier / IN2CC)
Office #2 - Co-Working at WorkSpace (Photo Credit: Jean Cloutier / IN2CC)

Now that I’ve set out on my own, my plan has been to set aside a couple of months to solely work on “my project”, without the distraction of getting involved in any freelance client work. I think that it has been a great idea to set aside time to do this, as it has really allowed me to really catch up on what’s happening going on out there. I only wish that I was able to set aside even more time. It’s been about a month so far, so it’s time for an update.

So far, most of what I have been doing in the past month falls under the category of “triangulation”. Mostly, I have been looking at what is happening in various open source areas, and I have been digging deep into the projects which are of particular interest to me. I have some very ambitious goals, so I have to be strategic about what I take on. I’m very excited by what I have found so far.

I’ve got one more free month. Then, starting in October, the plan is to start doing freelance contract work for various clients in the Vancouver area. I’m very encouraged by the amount of interest I’ve received so far. In September, I am going to concentrate on improving my infrastructure, so I can quickly “spin up” a development environment to work on any component of the software stack that I support. As Brian Shire said at his OpenWeb Vancouver talk, it’s important to “own the stack”.

The “stack” that I am interesting in “owning” is quite a large one, encompassing all of the software I use on a daily basis. I run a server with Xen and Linux, plus I have some additional inexpensive VPSs, and I want to incorporate various “cloud” services such as Amazon’s EC2/S3 and Google App Engine (but without the vendor lock-in). On top of that, I want to target the client side in a cross-platform manner. That means utilitizing “Open Web” technologies and working with Web Standards and Javascript. And beyond that, there is still the need to build native client-side applications and virtual machine environments for the mainstream platforms - Win32, OS X, Linux. Plus there’s all manner of interesting embedded platforms out there (I have an iPhone now).

There’s a lot of work there. I’m ambitious, but I’m also a pragmatist. There are a few tools that are missing that would really make it easier to digest such a huge a amount of software. My first “project” is going to revolve around plugging some of those gaps. I’ll try to sketch out the first big problem I’m going to try to tackle.

Most software these days is characterized by the following:

  • Very deep stacks, from the UI, through the network, all the way down to the OS and underlying CPU microarchitecture
  • Lots of virtualization, so parts of the stack can be interchanged
  • Lots of modularity, with lots of plugins or drivers
  • A wide selection of very good languages and APIs to choose from
  • Less optimization, because the chips just keep getting faster

There is a whole lot of software behind a typical application these days. Even seemingly trivial applications may invoke the work of literally thousands of previous contributors at various levels of the stack. The complexity is incredible.

The most interesting software that I am finding lately is all at the “edges” of various free software / open source projects - typically, a developer builds a plugin for use in a prototype of a system, and just tosses it out there. Unfortunately, most plugin authors do not have the time or resources to build a full project around their creation, so usually the code just sits out there for a long time until it gains some adoption. More often than not, the code does not get immediate adoption (even though it might be really good) — meanwhile, the underlying APIs and interfaces it is built upon continue to evolve and change. There is an awful lot of contributed code out there that is really cool, but has been afflicted with “bit rot“, so it takes extra effort to get it working again with the latest stuff.

There’s a simple solution to the “bit rot” problem — build unit tests, and do continuous integration.

The big problem is that most continuous integration platforms are not at all geared towards the needs of individual plugin authors (or users). Generally speaking, all of the available continuous integration systems involve a huge amount of setup and are oriented towards use with a centralized code repository. With the advent of distributed version control systems such as git, mercurial, bzr, darcs and monotone — more and more development is moving to the “edge”. It would be really nice to have a “distributed” continuous integration system that would have less of an “impedance mismatch” with the new world of distributed version control systems.

I don’t really have a name for this new project yet. Although, I imagine a good slogan might be “Continuous Integration for the Long Tail”.

For the next post, I’ll talk a bit more about some of the really cool technology I’m going to attempt to do the front-end UI with.

1 comment August 30th, 2008

Previous Posts