2013-06-09 16:49:11

Sometimes, I have difficulties entrusting my data to software that I do not understand. With regard to web content, this has led me to inventing the wheel or at least rebooting my sites several times over by now.

Early days

I started in about 1999-2000 with creating my own web pages completely by hand, learning how to do so with the help of SelfHTML. I learned soon that it is quite a lot of work to manually handle folder hierarchies and internal links. Of course, there is nothing a little Perl script cannot fix, and as a student I could not afford a proper server, so manual web pages it was.

Website management with Perl

My first hand-written CMS system was using Perl and CGI. I learned how to store content in MySQL (and why it is not a good idea to use the name of a page as its primary key). Then, during my vicariate, I wrote a website management system with Perl and CGI::Application. The main goal was to have a simple system with which non-technical people could add pages to the parish's website. And it offered a user interface in German, which was quite rare those days.

I could have used a PHP CMS / blogging system, but those were the days when every time you opened a IT news page, you would see  another report about an expoit in a piece of PHP software. So I decided to keep my server's pages free from PHP (:poop:). And CGI::Application is quite powerful - I have encountered it later in my first IT job and used it to write a medium sized web application for SMS messaging (before starting with Catalyst).

Later, I would use a simple script based approach to generate my personal web pages, because I didn't really need dynamic features then.

Plone

But why create your own Web-CMS, when there are hundreds of viable alternatives? And some of them even sported a good security track record, like Plone. Plone is written in Python and is incredibly complex. It comes with its own database and a lot of plugins. So, tired of tinkering with my little CMS, I decided to go for the professional solution and deployed Plone. "I just want it to work" ... which it did. Sort of. My Plone experience was one of an easy setup and then slowly discovering that there is no real learning curve, just a hard wall. Which I hit every time I wanted to change something like user management, permissions, installing plugins etc. You see, Plone has been around for some time and it has embraced the Perl motto of "there is more than one way to do it" - but without a clear path to do so. Of course, it may have been my reluctance to dive deeper into this ecosystem to learn it properly. When an upgrade broke one of my sites completely (without *any* way of getting it to work again), I decided it was time for a change again.

You may use Plone if you have to maintain a large website with many editors and you can afford to have someone on staff whose sole responsibility is to manage your site. As for creating personal blogs, it's complete overkill.

Octopress

Octopress is quite nice. You can write posts in markdown format (which is as close to pure text as you will probably get) and then have a Ruby script run and generate a static site and deploy it to your web server. It offers syntax highlighting for code, which is useful when adding little code snippets to your blog articles. Of course, even a simple blogging system may break completely if you update it. I could have done a rollback, but I lacked the motivation to do so, as by now I wanted something a little nicer, preferably with the ability to edit my pages from different machines (tablet, smartphone).

Joomla

Yeah, it's written in PHP. But then, it has been around for some time, the obvious security bugs should be gone and I do not recall reading much about core Joomla security breaches in recent times. And the administrator's GUI sure looks nice and it was easy to setup. And they promise that upgrades will be easy, which is important to me...

So, I have started with handwritten HTML code, wrote my own Web-CMS, used a professional enterprisy piece of software followed by a simple script-based approach and now I am trying to "just get stuff done" with the current version of Joomla instead of falling prey to the NIH-syndrome again and spending weeks to extend the Cinnamon webclient with a web-CMS interface for public pages. We will see how that works out...