Category Archives: Senior Project

Senior Project: Introduction

Since I have one of these blog-type-things, I’ll be not only making my posts about RLST 245: “Apple, Google, Facebook” here, but also posting weekly updates about my Senior project, which is to build a blogging platform.

“But Erty, there are a lot of blogging platforms already! Why make another?” –You

I feel that there is an open niche for an extremely lightweight blog platform. I have seen a lot of instances of people wanting to have a blog on their site, but not knowing (or wanting to deal with) MySQL, a 14MB wordpress installation (often larger than the rest of the site!), or an external blog like Tumblr or Blogspot.

My goal is to write a blogging platform that:

  1. Requires nothing except a webserver
  2. Is entirely self-contained (no external database)
  3. Is, at time of installation, less than 1MB, uncompressed
  4. Requires less than 5 minutes for a non-tech to set up

I feel that my Yoctoblog will meet all of these requirements. I’ll be working in PHP, but keeping an eye out for ways to remove even the dependency on the PHP parser, perhaps by using Facebook’s HipHop. Whether or not this will require compilation on the target system is a topic for further research.

I have a working prototype of Yoctoblog, which is available in a Github repository. However, I feel that there are some fundamental issues with the current architecture, so I will be restarting from scratch in order to make an even more efficient and portable blog platform.

Some decisions I need to make about the project:

  1. Do I want to include a WYSIWIG, BBCode, or other text editor?
  2. What is the scope of the project that I feel I can complete within my time and space requirements?
  3. What level of optimization should I do, and what tools should I use to do that optimization?
  4. How do I want the posts to be structured in the database?

I will also be focused on security and modularity throughout the project, attempting to make the project both open for modding (probably required, considering the restricted feature set), and secure (required to be on the playing field).

One of the things I’ve noticed in web development is that you must write programs for someone who is simultaneously an infamous hacker and a complete idiot. Hopefully Yoctoblog will be useful for both.