django-openlike v0.1

A Django template tag for easily implementing and extending OpenLike protocol.

Source code available at GitHub:
http://github.com/tomatohater/django-openlike

Release notes (v0.1):

# django-openlike

Django template tag for easily implementing and extending OpenLike protocol.
See http://www.openlike.org/ for more info.

FEATURES:
- Templatetags for displaying OpenLike widget

USAGE:
- Basic: {% openlike %}
- Less basic: {% openlike "http://domain.com/" "Page title" %}

TODO:
- Documentation.
- Add support for extended sources.
- Configuration via Django admin

AUTHOR'S NOTE:
This app is most definitely overkill given the simplicy of OpenLike and the
ease of pure JavaScript implementation. But it was a fun project to fully
support a third-party service in Django.

My slides from RightScale MeetUp 2010

Last month, I presented on how PBS utilizes RightScale to manage our servers in the Amazon Cloud.

This is my deck from RightScale MeetUp 2010 before it was incorporated into RightScale’s template. The full MeetUp presentation is up on RightScale’s website.

At the MeetUp, I met a ton of really smart people with interesting problems to solve… many with the same problems I’m working on as well.

Talking points: Django v. Drupal

Why you should use Django instead of Drupal.

At PBS, I frequently find myself with a proposal to build a web application with Drupal. We’re primarily a Django shop, so you can imagine my bias against Drupal. Yet these proposals continue and I routinely find myself pushing Django instead.

To date, we have attempted exactly four Drupal sites at PBS. Three of them eventually made it to production. All three experienced significant delivery, quality assurance and/or scalability problems. These apps were built by experienced development shops, even some who had proven track records and delivered exceptional (non-Drupal) applications in the past.

I am sure that it is possible to build a solid, highly scalable Drupal application. There are many examples out in the world. So what’s the deal?

In a recent post, Drupal v. Django, Nick Sergeant provides some excellent talking points on the matter. I agree with every one of his points. Some of my favorites are echoed below:

  • Django is a lower level development framework (than Drupal) that encourages rapid development and cleanly written & organized code.
  • With Django, we’re able to construct custom functionality at a more rapid pace than Drupal.
  • Drupal funnels data into chunks of content referred to as “nodes”, which developers must often force their content into. The content should define the data structure, not the other way around.
  • Because Drupal stores so much configuration and definitions of functionality in the database, it becomes incredibly difficult to version control the software.
  • Drupal’s default admin interface is riddled with UI and workflow problems (one of the primary focuses of the upcoming Drupal 7 release).
  • Django’s default admin interface is designed to encourage quick and easy content management, and allows developers to quickly design custom admin interfaces and workflows.

I don’t mean to add fuel the Django versus Drupal fires, so let’s just rename this post to “Why you shouldn’t introduce Drupal into a Django-centric environment.” I’m just looking to add some sanity to my life.

Tomatohater.com is Mingus-ified!

I just finished migrating this blog from vanilla django-basic-blog to django-mingus.

While django-basic-blog is perfectly sufficient to power this site, I was interested in testing how Monty Lounge extended it. You see, django-mingus isn’t really an application itself; there’s really not much code involved. It is more like a recipe for combining a number of existing reusable Django applications that make up a solid blogging platform. The article The apps that power Django-Mingus describes the 28 apps that have been nicely imaplemented into a single project.

My experience setting my Django-mingus blog was ridiculously simple. My only issues were related to the pip install script…

  1. BitBucket was down tonight…
  2. One updated dependency had had trouble finding the version specified …
  3. One dependency was broken
  4. I had to change it to use git+http:// since my web host blocked traffic on the git:// port

Other than that, I didn’t have to do much customization. I treated my site design just like a new Mingus theme and attempted to make all my changes in CSS. I did have to rearrange some of the HTML to support my layout. I then did a bunch of clean-up in the Django templates to get consistent page titles and page themes.

I’m only using a few of the apps included with Mingus… I’ll be digging into the rest to see whether I’m missing out.