Andy Loughran

Pinax

Thanks to listening to the #ubuntu-uk PodCast - I came across this little gem.

Pinax Project

It's a collection of reusable django apps - all designed to be reusable - together.

What this means?

This project needed a critical mass to get it off the ground.  Basically the way things are referenced across all the apps need to be the same.  There's no point having two reusable apps.. if they both require different ways of interfacing with the same object.  They break if one has 'name' as being fullname, and ther other requires name to have two separate name fields (for firstname and lastname).  You've then got to write a way of getting around this problem, which just increases as more features were added.

Well, the neat guys over @ pinax have started up a project on creating re-usalble apps that sing of the same hymnsheet - and they look awesome.  Having watched a presentation on youtube, the following phrase (quoted) stood out for me:

"If you want a man to build a boat, do not send him out for wood and nails, but teach him to yearn for the wide and endless sea." -Antoine St Exupery

It's really accurate for these kind of projects - writing reusable apps off some other guys prescribed instructions doesn't fill the heart with glee - but seeing what can be achieved by doing this makes you want to contribute.

So Cloud27 was born - it's a social network, but made up of the componenets developed on pinax - meaning you get to play with what you're about to download an integrate into your own project.

It looks really good, and there's a project I've been meaning to do which has been yearning out for a kickstart - I think this may have just done it!

Django.. I finally made the jump.

Sep 03, 2008 0 Comments
Tagged: , , , , and

After working on my own php + mysql system for Purchase Order Generation, I realised that in order to get the code 'right' - I'd need to rewrite it multiple times in order to utilies the Object Orientated advantages.  After rewriting a single page about three times, each time improving my code and making it more scalable, I felt that I was wasting my time.. as each time I finished it, I'd improved myself sufficiently to see a better way of doing things. How annoying.

For the last few months, I've been looking to Django.. not for this project - but as something to be used for designing some private websites.  It looked neat, used python (and language that I find quite intuitive) and a few guys from SBLUG used it.. so I knew I had some people to go to for support.  However, my first few attempts at the tutorial involved me really immersing myself in the framework.. and having not used a framework before, I really wanted to undestand the entire structure of what I was doing.

Finally, I was able to designate a portion of my time to this new Django project.  Since my php+mysql project needed rewriting, I thought Django would be a good way to kickstart that.. and I wasn't wrong.  I don't think I'd have had much success had this been my first exposure to Django, but I managed to get things ticking over quite smoothly.  I went through creating my models and populating the database with ease.  There were a couple of problems that I had to get the guys in #django, and the lovely Danux from SBLUG to help me with.

Despite all that, what had taken me a few rewrites to do in php+mysql was running great in Django.  I'd even managed to set things up so that the functonality I needed could be provided entirely thorough the admininstration interface.  Coupled with the brilliant contributed permissions and user/group modules - I was able to set everything up exactly how I wanted.. with much more functionality that I could have hoped to acheive using my previous approach.

So, God Bless Django.. and I hope that this is the beginning of a fantastic partnership.

 

all my code is available on Launchpad.. www.launchpad.net/~andylockran