Seldom Logical by bootload, on Flickr

Image credit: "Seldom Logical" by bootload on Flickr

It’s time to kick off the party!

It is the purpose of this blog to record my progress and experiences through the Fall 2014 session of “Mathematical Expression and Reasoning for Computer Science”, commonly known as CSC165. I will do my best to not bore every reader of the blog, so I’ll avoid doing line-by-line recap of lectures and tutorials and instead focus on personal perspective and problems related to the material of the class.

TL;DR: Blog is on Jekyll and GitHub. Click on a speech bubble on the right side to comment. Subscribe via RSS. Check out the repo too: https://github.com/c8ivanov/csc165-slog/tree/gh-pages

The challenge of the week has been to create a SLOG. While not strictly course material, it has brought me to research a number of options and consider what qualities a SLOG platform should have. The requirements for a SLOG platform as outlined were:

  1. Must be public.
  2. Must allow separate posts.
  3. Must allow comments from readers.

Some things not outlined in the document had to be considered:

  1. This is a CS course. The blog platform should be code- and math-friendly.
  2. People will be viewing this blog regularly. It would be useful to have an RSS-feed of posts.

I also added some personal requirements:

  1. This is a CS course. Use open-source software to allow for experimentation.
  2. I am in school. I need something that has a small overhead when publishing a new post.
  3. There are two tools I use consistently: Dropbox and GitHub. It would be great if the blog interfaced with one of them.

The combination of requirements and preferences ultimately suggested that a classic blog hosting won’t do, while a self-hosted blog may just be too much effort.

I ended up settling on Jekyll served via GitHub Pages. Here are some pros of this solution:

  1. To create a new post, you can simply write a text file containing title, date, and post text.
  2. Jekyll uses Kramdown, a flavour of the well-known Markdown syntax. You can write posts in any text editor, yet choose from a number of editors that support Markdown syntax highlighting and completion and on-the-fly preview.
  3. Did I mention Markdown is totally code-friendly? It is! (It is also friendly.)
  4. Publishing a post is as simple as git add .; git commit; git push.
  5. Jekyll does HTML generation for you. It can also aggregate posts into an index or an RSS-feed.
  6. More sophisticated examples of aggregation include post classification with LSI. Something to try out!
  7. Entirely transparent process. You can see every step taken to create this blog or its contents.
  8. This also means that one can easily re-trace all the steps and set up their own blog!

The big challenge and drawback of using Jekyll was the lack of support for comments (or any dynamic content, for that matter). This was easy to solve with Disqus, a comments hosting platform. Click on one of the speech bubbles on the right to open the comments!

Get in touch and let me know what you think!