Blog Posts in "django"

Wailly wailly

Posted at 11:54:20 on Fri, February 05th 2010 by graham
in: django frabjous panic relief silly what was i thinking wordpress

Well, it looks like I jumped the gun with my last post. Turns out that the shiny media features that Wordpress 2.9 has, and which I got so glum about not having in Frabjous have actually been in Frabjous for about a year. And I wrote them. Yes, I fail.

True, they're a bit more rudimentary, because Frabjous's admin interface isn't nearly as polished as Wordpress's (because it pretty much just uses the Django auto-generated admin interface; something that I keep meaning to get around to fixing). However, for all that, they work, and work pretty well. They'll do exactly the job I need of them and, with a little bit of tweaking, more besides, which is fantastic for me because I'm no longer having to worry about migrating from Frabjous to Wordpress with no obvious migration path in sight.

Phew.

And now, back to our regular scheduled programming.

Blog engines stuff and things

Posted at 15:21:13 on Sun, July 19th 2009 by graham
in: code development django frabjous projects python things-wot-i-did

A few months back, when I was on a Launchpad Bugs sprint in Vilnius, Tom and Gavin asked me whether I'd thought about open-sourcing the engine that runs grahambinns.com. My answer then was that I'd thought about it but never done it because:

  1. It wasn't very good
  2. The code had a lot of grahambinns.com-specific code in it
  3. It wasn't very good.

It's still not very good, but I've removed all the grahambinns.com specifics and now I'm reasonably happy to announce (like the father of a slightly ill-coordinated child) Frabjous version 0.1, "Not a lot of men can carry off a decorative vegetable", is now available for download under the GPLv3 at launchpad.net.

Some questions and answers:

  • Q: Why 'Frabjous'?
    A: Because I was reading Jabberwocky at the time I was trying to think up a name.
  • Q: Should I replace my Wordpress installation with Frabjous?
    A: Emphatically no, unless you really, really want to. Frabjous is, for all that I've removed a lot of the me-specific code, pretty awkward to adminster just yet (well, I think it is). Wordpress is as good as it is because it's very mature; Frabjous isn't.
  • Q: Do you want Frabjous to be a Wordpress killer?
    A: Not really. I want it to be better than it is at the moment and I'd like people to use it, but Wordpress is a fantastic piece of software and people will doubtless find it easier to use and set up than Frabjous for quite a while.
  • Q: That being the case, why do you use Frabjous rather than Wordpress?
    A: I originally wrote what would become Frabjous because I wanted to learn Django. I also had a cordial dislike for PHP after years of working in it and wanted never to have to run it on a server of mine ever again. So far, I'm succeeding.

So, please go and try it out. You can grab the trunk from Launchpad using bzr branch lp:frabjous; please feel free to have a look at the code, hack on it and file bugs. Patches welcome, branches even better.

For the record, I have no illusions that anyone other than me will ever use this code, especially with so many other blogging and site management platforms available. However, you can always treat it as a learning exercise, and that's fine too.

If this works

Posted at 18:58:16 on Sun, January 18th 2009 by graham
in: django huzzah new site

Then this site has finally been updated to be compatible with Django 1.0.2.

Let joy be unconfined.

Edit: Okay, almost everything worked. Fixed now.

Feeling the WSGI love

Posted at 17:44:19 on Thu, December 11th 2008 by graham
in: apache django

This site is now running on Apache + mod_wsgi. Win.

If you're seeing this...

Posted at 15:19:42 on Sun, June 22nd 2008 by graham
in: blog code django new design news new site postgres writing

... then the DNS records have propagated correctly and your RSS feed reader is now slurping from the new grahambinns.com server, which is just hunky dory as far as I'm concerned.

I've been working on this version of things for a while. Besides a re-skin - which taught me a lot about how I should be designing my templates and CSS, so it should be a bit easier next time - I've also tidied up the codebase a bit and added some new features. Most of them are under the hood, but here are some of them for those of you that care:

  • Each piece of content on the site has its own license. For example, all my photos are CC-BY-NC-SA, as is all the content here so far. But when I start adding stories here (and it will happen within the next few months, I hope) I'll be able to license them as I see fit.
  • I can now make posts using markdown syntax. This might not seem like a big deal but over the years I've come to loathe sites that simply turn linebreaks into <br />s (yes, Wordpress, I'm looking at you. You still do it, even with valid HTML posts). On this site I used to use TinyMCE as a WYSWIG HTML editor, which worked fine but was pretty horrendous to load on a slow connection. Now I just use markdown and let Django's markup app do all the work. Fantastic.
  • You can now post comments using markdown syntax. No more trying to post a link and having Django eat it!
  • I can now post to the blog by email. I thought about using gpg signatures to validate my emails but realised that it was too complicated (we do it in the Launchpad email interface and one look at that code a while back persuaded me to not do it unless I had to). Instead I've gone for generating single-use authentication tokens, which suits me fine and should hopefully - along with an obscure incoming address - stop spammers from doing nasty things.
  • The site now supports pingbacks, though at the moment it can only receive them until I iron out some issues with the pingback sending code.

There are a lot more things that I've fixed, added, tweaked and polished, but none that are particularly interesting.

So here, finally, are the vital statistics of the new site:

  • Server: Bytemark virtual server running Ubuntu 8.04.
  • Django 0.97-pre (to be upgraded to 1.0 stable when it comes out in September).
  • PostgreSQL 8.3 (the migration to which fixed so many problems it's unreal).
  • Apache with mod_python for serving the Django stuff.
  • Lighttpd for serving the static files.

About

Graham Binns is a writer, photographer, musician and software developer from Lancaster, England, with far too much hair, a penchant for odd t-shirts and a magnificent hat. He has been making things up for as long as he can remember and has been making code work for long enough to make a living from it.

He has written one novel, which is in the process of composting, and is working remembering how to write before embarking on a second. In the meantime, he photographs things, since it's easier not to have to make the world up in his head all of the time.

From the gallery

Out of frustration, a self-portrait More Katie Green More Katie Green More Katie Green More Katie Green