Site Structure


I'm in the midst of very slow changes to the site and the way I'm building it. I've hinted at the architecture of this site, but I don't think I've explained it in any detail.

I started off with some content files written in Markdown that were set up in a very hastily-organized structure. I made a simple Ruby script to parse the markdown and create some HTML. In the HTML I generate, I include some javascript to make Disqus work. Then, I uploaded the static HTML to my web server, and, voila! Instant static blog.

Now, I'm restructuring a bit to give me more flexibility. I want to be able to add images. I want the structure to stop being annoyingly cumbersome -- there's no reason for me to break down posts into "YYYY/MM/DD/## - Title" type paths when I post so infrequently. I want to be able to add structure beyond blog posts (e.g. there's a cooking section brewing that will have more semi-static content). I want templating and efficiency in generating output (presently, I regenerate the whole blog each time -- which takes nothing because this is a small site).

There are a couple of really nice things about having a static blog. First, it's very easy on my little server. I'm buying cheap space and my poor little virtual machine can't take heavy loads. My initial attempt here involved some Node.js-based solution (don't get me started on how bad of an idea I think Node.js is) and it was awful. CPU utilization was high for a site that basically served almost no traffic. Second, there are fewer attack vectors. Amazingly, even my little site has some script-kiddie activity showing up in logs. Sure, I could block it -- and maybe one day I will, but, for now, there isn't a whole lot these folks are going to be able to do. While I'm sure a DDoS would work, it would basically go unnoticed until my host shut me down and shot me an email and I'd be shocked (and probably semi-honored) that anyone bothered.

Realistically, a blog doesn't need to by dynamic in any way except for the comments. It's really just done for convenience (or ease-of-programming) sake.

The downside is that, to update it, I either have to roll my own HTML or continue to work on a very light platform that does what I want. Good thing I like programming and little design problems. :)

That said, I have been focusing more on dumb activity than actual progress. Renaming all of the blog posts and making them produce the same output to overcome a minor annoyance isn't exactly moving things forward. I need to focus more on the additional sections I want to add.

Speaking of, I'm having a little trouble deciding what I want to do with the RSS/Atom feed for a cooking section. For blogging, feeds are obvious. New content goes into the feed. For static pages, should it just be new content? Should it be any update to the content? Should it be nothing and content in that section never makes it into the feed? Or should I have to blog about it for it to show up anywhere? I'm still puzzling that one out. And, given the amount of time I spend thinking about it on any given day, I have the feeling I'm unlikely to come to any real workable solution anytime soon.