Hello there, and welcome to my blog, Coding.Cookies.

My name is Dominic Charley-Roy, but I usually go by jokeofweek. This is my first step into the world of blogging, and I must say it's quite exciting. This blog will focus primarily on programming topics, specifically application development, whether it be online or offline. And hopefully it will have a touch of humor as well, as I do tend to indulge in it.

As a first post, I'll just briefly mention the blogging platform I am using for this site. This blog currently runs on the blogofile platform, which is a static website generator oriented towards blogs. If you've never heard of static website generators, they are essentially applications which allow you to describe:

  • The content of a website in text files (usually enhanced with markup languages such as markdown and textile),
  • The templates to be applied to the pages through the use of a templating library such as Mako and reStructuredText
  • Any scripts to be applied to the content, usually written in the same language as the generator and allowing you to automate systems such as blogging systems. One fantastic application of this is the integration of syntax highlighting using pygments at 'compile time'.

Once these files have been set up, the generator can then 'compile' the files into a static website which can be uploaded to practically any web host, and can be edited at any time by simply modifying the files and re-building the site. Getting one setup has been quite an experiment for me, and it's letting me brush up on the little Python knowledge I have. A few advantages stood out in my mind however when deciding whether to choose a static engine or a more traditional database-oriented platform:

  1. A larger number of pages can be cached and significant performance boosts can be gained as no dynamic code is run in order to view a given page.
  2. As the pages are all statically generated the security risks traditionally associated with dynamic pages, such as authentication and database vulnerabilities, become nearly non-existent.
  3. The content, templates and scripts can easily be placed under version control, and using a tool like Git allows you to access the website and modify the contents nearly anywhere.
  4. The templating engines, along with the integration of Python, allow powerful dynamic code while still being convenient to host as the actual website is entirely static.

In order to simplify the tasks of building the site, compressing the CSS and publishing, I use Apache Ant. I also use Ant to commit to Git on every build and publish so that I can easily navigate different versions of the website. I will post a sample of my build.xml eventually (minus the FTP credentials!) as well as my blogofile configuration in order to help anyone trying to get it set up.

I highly recommend you take a look at the variety of static website generators which are out there, as they are being written in a variety of languages to suit an equally varied set of needs. Feel free to check out this comprehensive list of static website generators to find one which appeals to you.

So this concludes my slightly self-absorbed first post. I hope you enjoyed it, and I'll see you next blog build.