Old Skool Rulez

Filed under: life,opinion,web development — jaydublu @ 4:36 pm

As posted earlier, I’m going back to my roots after 6 years in the relatively comfortable life of an employee of a large agency, and specifically as someone who has had a sabbatical from mainstream development whilst managing a team of developers.

Now I’m back on my own again I’m reviewing my skills and experience, the current state of the industry and best practice, and sorting my tools and techniques out ready to get busy (hopefully).

It’s amazing how much has changed in the intervening years and yet how much is the same. Packing up my desk and hunting down the books I took to Soup, many are well thumbed from regular use despite their age they are still relevant. I’ve also been compiling a wishlist on Amazon of titles bought for the company library that I will want to get copies of, but to be honest there aren’t many essentials – good references for PHP, MySQL, CSS, Apache, JavaScript etc. But even then can be found online – it’s much easier to type http://uk.php.net/explode to remember what order to pass parameters to explode() for instance than to find the book – but I digress.

I’ve been rebuilding a few sites I first built oh-so-many-years-ago – one was even still using Dreamweaver Templates <hangs head in shame> – but they are still doing the business for the owners and all they want is a quick design refresh and a bit of new content. “Oh, and while you’re at it could you just add a news section we can update ourselves?” So the quandary begins – how much do you reuse and how much do you rebuild, and what technologies do you use?

Perhaps unlike many working by themselves on ‘smaller’ sites, my recent background has exposed me to all shapes and sites of web content delivery technologies, from full on Enterprise level Content Management Systems such as Vignette and Stellent, other commercial ones like RedDot, or open source ones like Drupal or Joomla! or in between like Expression Engine, and then of course there’s all the custom applications that get written for specific applications, or reusable frameworks and libraries that can give advantages in rapid deployment / development.

And then there’s the platform to build on – once is was a choice of flat html (with some help from Dreamweaver perhaps) or Perl (or the new kid PHP) or ASP. Now there’s all the Java based technologies, Python based (I still reckon Zope should have become more mainstream) ASP.NET, Ruby on Rails, and of course my old favourite PHP is going from strength to strength. And it doesn’t stop server-side, with the advent of AJAX and frameworks such as jQuery, so much more can be done on the browser.

I understand and buy into Standards Compliance, Accessibility, Search Engine Optimisation, Usability and all the other buzzwords. I’m able to gather requirements, write specifications, manage projects and carry out quality reviews. I’ve been involved in projects that have been great successes, and others that have spectacularly failed, enough to know how to avoid the pitfalls.

But does all that knowledge and experience help in my current situation and perhaps give me an advantage over someone only just starting in the industry? It’s a mixed blessing because although I rarely have to say “I have no idea how to do that or what’s involved”, the opposite is also a problem because I know of perhaps too many possibilities and alternatives, and how things could be done ‘properly’.

As a little aside, I’ve often observed that any sort of development or design or construction or problem solving that is done in a constrained environment is likely to have a much more creative and pleasing outcome than if done with the luxury of infinite possibilities – it makes you focus and think and consider relative merits of alternatives with a clearer vision of the ultimate goal rather than being dazzled or distracted by niceties.

So how have I tackled these rebuilds? Well the Dreamweaver Templates site is hopefully a textbook example of how to use PHP to make a relatively simple brochureware site more maintainable. The templating features of Dreamweaver (ah yes, I remember them well!) have been replaced with PHP includes – so common elements like html <head>, top level page layout, navigation etc. are all shared. A ‘page’ is represented by a PHP file which sets variables such as page title, navigation state, calls the relevant includes for the top of the page, have the body content hard coded, then calls the footer includes. The one dynamic page is the news section which calls content from a MySQL database, with a little utility script allowing the client to manage news stories.

Why didn’t I use my first project as a freelancer again to flex my muscles and show off all my skills? Because the requirements didn’t need it. This application is beautifully simple, very easy to host and maintain, blisteringly fast, and hopefully will go another five or six years before its next rebuild. Any half competent developer could look at the source and figure out how to make any changes within minutes of getting access to the source. And it only took a couple of days to complete – including me trying to come up with some sort of new visual design and I’m no designer!

This approach has been used by me and my team for many years with great success, from small 6 page site to large corporate sites for FTSE100 companies. If it meets all key requirements what’s the advantage of making life more complicated? Admittedly the finer details of how to implement it have changed – using css for layout rather than tables for instance, good clean semantic markup, secure against XSS and SQL Injection (hopefully) and obscuring email addresses from spambots, with a sitemap.xml and Google Analytics tagging, and it’s all under version control …

I’m starting planning a much bigger site that needs more content management, and have reviewed several frameworks and applications to make life easier, but have still settled on the approach above with one small change – using Smarty to separate logic from presentation, and moving more of the content into the database. But it’s still clean, simple, fast and reliable.

KISS – if it’s getting too complex it’s probably wrong.

Joomla!

Filed under: opinion,web development — jaydublu @ 1:46 pm

I’ve used Joomla! a few times in the past to deliver community based sites that need a CMS but can’t justify having huge amounts of time spent on developing the site. It’s taken a few goes, getting more comfortable every time (I’m too lazy to RTFM) but I might be starting to get it.

As with many things on the web, it’s not quite like anything else and there’s a critical mass of knowledge you have to accumulate before you really understand what’s going on and make good decisions.

I’ve been asked to help out with a site for a school – in theory Joomla! should be ideal.

My biggest challenge is deciding when to use static content and when to use the section/category com_content or whatever-it’s called. Ideal for blogging, news stories etc., but not so good for more brochureware type sites.

And then there’s the menu (navigation) – there seems to be a very tenuous link between the menu and the content – often you have to duplicate a content object with a menu item, then sort it, and if you want to change the type of object a menu item links to (Link – category item for instance) or the specific object – you have to delete it and make a new one.

It’s also a shame that the core user functionality can’t restrict users to specific areas of the site – you can’t have one group edit one area and another group manage a different one.

Anyway, I’m sure there are mods and bots that can address this, but I’ve been too lazy to find them – I’m managing to get it doing what I want now.

Flickr Groups

Filed under: Happisburgh,photography,tinkering — jaydublu @ 11:09 am

I’ve been slowly building a Flickr group for Happisburgh, and it’s coming along very nicely.

It was originally as a bit of R&D for work as a client wanted to use a group for some promotional work, so I needed to check how groups work. Initially I put a load of my pictures up, but thought I’d give it a go to run it properly so I searched for likely members and sent them FlickrMail invites – and most responded positively. Currently the group has 25 members and 215 pictures.

So I do a bit of administration, improve the group description a bit, do a bit of promotion on other groups and invite some new people to join. Also I make a couple of discussion postings.

Do I dare start another? Why not – I’ll not push it too hard yet but if I set it up right it might take off by itself – it will certainly be an interesting experiment. So I start Happisburgh Lighthouse group, put some of my pictures up, and link to it from the Lighthouse website.

That starts another line of enquiry going though – it would be cool to have a Flickr badge on there with a random selection of images, but it’s powered by Joomla! and the way TinyMCE is set up it doesn’t like Flickr’s badge code. So I’m now playing with flickr4j Joomla! extension.

Of course I’ll report back how I get on.

www.flickr.com

photos in Happisburgh Lighthouse More photos in Happisburgh Lighthouse

Open Source Software

Filed under: rants — jaydublu @ 7:55 pm

So while I’m waiting for my Gentoo kernel to compile, rather than drinking bourbon and folding paper (or browsing illicit web pages) let’s have a rant – after all, isn’t that what blogs are about?

I work for a fairly large ‘digital communications agency’ (new media in old-skool lingo) and we’re fortunate to have some fairly substantial budgets to work with, but that doesn’t mean life is easy.

My job, near the top of the food chain but in a technical capacity, is often to decide on a technical approach for particular projects. I hate re-inventing the wheel, and I’m lazy at heart, so if someone’s developed something that will do a job I’m more than happy to use or adapt it. (why do you think one of my categories is ‘tinkering’)

Today however, blessed with the fact that most of the Account Managers were out schmoozing clients and watching cricket test match, I spent most of the day perusing what’s available on the Open Source market for content management / blogs / community sites for a project with a ‘challenging’ budget.

My biggest challenge was figuring out what a particular package did, how it would make life easier, and what I’d have to do to demonstrate it to the decision makers. I had a fresh look at Joomla and WordPress which I’d played with before, and finally got round to finding out what Drupal and some of the wikis (MediaWiki in particular) offer.

The alternative is either to start from scratch with a bespoke application (possible, but have we the budget) or extend our own set of CMS tools that we’ve been developing in recent times.

Joomla! I know quite well because I use it to drive the Happisburgh Village Website and WordPress was considered to power this blog (still don’t know if I made the right call, but I do like this one so I’m sure I didn’t make the wrong one)

More later – I think I’m just getting warmed up…