Interview: John Godley of Urban Giraffe

[DM] How long have you been writing WordPress plugins and what was the first one you wrote?

[JG] I've been writing WordPress plugins since I first started using WordPress, nearly two years ago.

I wanted to put a website together, looked at various pieces of software, and found that WordPress felt the best. There were several things I wanted it to do that it didn't, and so I looked at extending it with plugins. I think the first one I wrote was a very basic version of HeadSpace (HeadSpace2).

[DM] Only two years? You're a pretty prolific coder! I know you've done a number of plugins, do you have an exact count?

[JG] There are 19 on my website, and probably the same number scattered across various other sites.

A few!

[DM] You have a very useful set of plugins available some of which are nearly unique, where do you find your ideas for plugins? Is it just what you need, or do you look in specific places for what others need?

[JG] The majority are plugins I personally need (or needed) on my own sites, or were needed for other sites I've worked on. They are typically born out of wanting to make my own life simpler. A few were created entirely by chance. For example, HTML Purified was created because I read about HTML Purifier on some site, thought it was interesting, and decided to make it into a WordPress plugin.

[DM] You also design themes, and your theme is a pretty advanced one, Do you have a core philosophy that you use to determine when to just include functionality in your themes, and when it needs to become a plugin?

[JG] Wherever possible, and when appropriate, it should be in a plugin. Plugins are more flexible and more usable by a greater number of people. Doing so also improves the theme as it becomes less specific to what I want, and is more likely to achieve what someone else wants.

[DM] What predictions do you have about the path WordPress will take over the next year and a half between now and the end of 2008?

[JG] I imagine that Matt and co. have a few neat ideas up their sleeves and it will interesting to see how WordPress progresses. From a practical point of view I think (and hope) there will be a push towards improving the administration interface, allowing it to better handle larger sites, and making it as flexible as the rest of WordPress. I also think that the image attachment functionality will be greatly improved, allowing faster photo-blogs. On a more personal note I'd really like to see WordPress adopt some kind of automated testing strategy. This really makes a lot of sense as more and more businesses are now basing their websites on WordPress, and it's reaching the point where people need to know that a new version is stable and won't be a headache to upgrade.

I also imagine that over the next year WordPress will start attracting a lot more commercial development.

[DM] Are you seeing an increase in interest in having customization done for commercial entities, then? What do you see as some of the ramifications of the commercial world adopting WordPress for greater use in the near future?

[JG] Yes, I've certainly seen that commercial entities are using WordPress more, and that they usually want it to do something that requires additional work. This can be something as simple as changing what appears on the front page, to something as complicated as integrating it with external database systems.

Hopefully the increased commercial use will lead to a greater concentration of effort towards improving WordPress, making it more stable, and increasing the depth of resources (such as reference books etc). At the same time, as with anything that becomes popular, I'm sure it will lead to some dilution and unwanted noise (spam-style!)

[DM] Do you write plugins or extensions for any other applications?

[JG] I've written a few plugins for Mambo and bbPress, and some hacks for SMF and Coppermine, but otherwise WordPress has (so far) managed to provide most of the requirements I need (or at the very least, can be forced into doing the things I want).

[DM] Is there any one thing you'd like to see done with the core code that would move more things into the "requirements provided" column and out of the "force fit" column?

[JG] Better modularity would really help. WordPress is essentially one single piece of software, but one with really great support for plugins. Sometimes you need more than this, and it would be nice to replace core parts of WordPress with other modules. For example, if the URL rewriting was itself a module then you could replace it entirely, rather than tapping into it from above with a plugin.

Of course, you could argue that if you needed to replace something so fundamental then you should really use a system more suited to it. I'm not faulting WordPress for this, and it stands up admirably to a lot of abuse (from a code perspective).

[DM]You are a programmer in your professional life right?

[JG] I studied Computer Science at University and I've been working in the industry for the past 10 or so years.

[DM] Are you available for custom projects, plugins or programs?

[JG] I am available for custom work (WordPress or otherwise), and I have produced a substantial amount of custom WordPress software for other people.

[DM] And for any readers who might be interested in commissioning some work, whats the best way to contact you, through the contact form at Urban Giraffe?

[JG] Yes, people can get in touch via http://urbangiraffe.com/contact/.

[DM] What languages do you write in other than PHP/MySQL?

[JG] I've spent most of my working life programming in C and C++, both on Windows and Unix. I started learning PHP when I first used WordPress and picked that up quickly due to its similarities with C/C++. I've also done some work in Ruby and Ruby On Rails, which is a lot of fun. There are numerous other languages and scripting systems that I've used over the years, either willingly or as part of some specific project.

[DM] What resources would you recommend to someone wanting to get started with writing WordPress plugins?

[JG] Resources! The web is full of them, and lists about them, so it's hard to isolate a particular set. A familiarity with PHP is essential, and the official PHP site (www.php.net) is a superb resource explaining all about PHP. I learnt everything I know about PHP just by reading the documentation and comments there. The WordPress Codex will also be your best friend when starting to write plugins, especially when it comes to knowing what functions to call and what parameters to pass. For me the biggest help at the start was to simply look at what other people have written.

Even something as simple as the 'Hello Dolly' plugin will show you how to hook into WordPress and make it do what you want. Once you are familiar with basic tasks you can then look at more complicated plugins. Also, don't be afraid to go poking around the WordPress code. There's a lot of information in there, and you'll learn a great deal about how WordPress works just by looking under the hood.

As it happens I'm hoping to find some time to put together a plugin guide myself. I've also written a base set of code which I use in all my plugins, and it would be nice to document this and see if anyone else finds it useful.

[DM] Do you have any upcoming plugin projects you would like to let slip and plug here?

[JG] I've got a few plugins on the go. There's an advanced page management tool, something for adding visual notes to posts, an e-commerce library, a tool to manage nested menus, several major updates to existing plugins, and one or two 'top-secret' projects. There's always something to do!

[DM] The visual notes idea sounds really intriguing. Is that visual notes in the admin, or the front end? And if in the front end, would readers / subscribers be able to add them also, or just admins?

[JG] It's notes in the front end, created by admin. A lot of pages on my site needed additional notes to be added, but I didn't want to 'pollute' the content of the pages (I didn't want the notes to appear in RSS, for example, or clutter up the edit area or theme). I wrote a plugin to allow these 'notes' to be added to a post and attached to certain positions on the page - before the content, after the content, in the comments, in the sidebar etc - and then given a universal style (label it as a message, a warning etc). You can see this in effect in several places on my site, for example the Mediagate review has a note at the top of the first page, a note in the sidebar (linking to various FAQ entries), and a note at the bottom of the page reminding readers to visit the FAQ before asking a question.

[DM] Speaking of the top secrets, is there any way for people to sign on to a beta tester's list? Or do you keep that pretty tight?

[JG] I've not thought about a beta-tester's list before. If there was any interest then I'd certainly consider one.

[DM] I recently had a problem with one of your plugins and while I could tell you were very busy, you took the time to really get involved in what was happening with me, even though it wasn't a universal problem. Are you always, or usually this accessible with people using your plugins?

[JG] I try to be, yes. If someone takes the time to write then I'll try and make time to answer. It may not always be instant (and sometimes it has taken a few months) but I generally always get back to someone. I'm a stickler for details, and I like the sense of completion in knowing that my code works.

[DM] Urban Giraffe is such a unique and instantly captivating name... Tell me about that.

[JG] It's one of those spur-of-the-moment things. Several years ago I was in London Zoo with a friend and as we were watching the giraffes I declared that if I ever had a website I'd call it Urban Giraffe. When I actually did get around to registering the name it was still available, and the first version of the site limped out in a blaze of messy orange!

[DM] Heh, Wayback is down right now, I was hoping to see that, got a copy laying around somewhere? And, is there a theme or plugin out there you've done that you wish people would stop using, but they just keep doing it?

[JG] I don't have a copy of the original design, but it was a theme I downloaded (Connections, I think) and thought 'Giraffes... hmmm, I'll make it orange'. Some things are better left to quietly die in Wayback!

I have to admit that I do wince when looking back at some of my earlier work. PHP may be a relatively easy language, but there's still a steep learning curve to getting it right. I've tried to keep most of the plugins current, but some I no longer personally use, and don't have the time to update. When a bug report comes in it is quite painful to go digging around some dusty old code you'd rather forget!

[DM] What would you say your one WordPress contribution that you are most proud of would be?

[JG] I'm not sure I can say I've really contributed anything to WordPress itself, more added to the surroundings. I'm pleased at how well received my theme guide was, and how it's still proving useful almost two years and several versions of WordPress later.


Trackback URL for this post:

http://danemorgan.com/trackback/25
None
Login or register to tag items
 
Posted In
Tagged With
Like this?
Bookmark & Share:
StumbleUpon Submit to Mixx Save to Google Bookmarks Save to del.icio.us
Click, Copy and Link:
<a href="http://danemorgan.com/blog/interviews/interview-john-godley-urban-giraffe">Interview: John Godley of Urban Giraffe</a>

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

[...] Project BlogFrontier

[...] Project BlogFrontier Channel

Tools For Improving Concentration. | 7Wins.eu (not verified) | Fri, 06/27/2008 - 13:39

Thanks for the interview, it

Thanks for the interview, it was an insightful conversation.

I too am one of those who are thankful for John's work on the plugins, particularly the Search Unleashed one.

MacBoy (not verified) | Sun, 02/24/2008 - 03:39

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • Restrict text by wrapping in [restrict:roles=<comma separated roles>] and [/restrict]
  • Links to specified hosts will have a rel="nofollow" added to them.

  • Highlight terms in this textarea.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".
  • Use <fn>...</fn> to insert automatically numbered footnotes.
  • You may link to webpages through the weblinks registry

More information about formatting options

CAPTCHA
Please fill out this captcha to demonstrate your humanity.
12 + 0 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.