Well, it’s finally here. I’m sure a lot of you weren’t convinced that it would ever happen, but here it is. Four Island 3.
For those of you who don’t know, Four Island 3 is the third major revision of the Four Island codebase. Basically, I’ve reimplemented the entire site, a feat I performed once before: Four Island 2. Four Island has been running on the Four Island 2 codebase for quite a while (three years as of this June) and as I’ve worked on it and modified it over the years, it’s become incredibly messy. In fact, I wrote the entire thing back in a time when I may not have had the best knowledge of design patterns anyway. It’s been time for a change for quite a while now, and finally, it’s happened.
Now it’s time for me to bore you.
Four Island 1, or The Original Four Island, was pretty horrific, let me just say. It was 2007, I really didn’t have that much experience with website design, the only other real website I had created being The Private Site for my cousins and I. The Original Four Island was a hideous mess of code that somehow fit together and resembled a working website. The very very first revision of the codebase, I literally threw together in a day when I decided I wanted to make a public website. It was a simple blog, and I called it Hatkirby CDI. It was so simple that it didn’t even record the dates on which I published posts. Comments, for Pete’s sake, were stored in static HTML files. Over the following months, I gradually added more features while also doing my best to make the website less aesthetically hideous. It worked, for a while, but let me tell you that I still have nightmares about that code sometimes. Not really. I do still have the latest revision of it, though. It’s quite an interesting piece of history.
Sometime late May, early June of 2008, however, I realized that Four Island simply needed a whole ton of work. Back in that time, I had an obsession with integration. The Four Island blog is my website, but so is the Fourm and the Quotes DB and the wiki–they should all be integrated into one website! A fool’s dream. The New Four Island (Four Island 2) came out June 13th 2008 and while the code was a whole lot better than Four Island 1, it wasn’t perfect–not by far. I was rather proud of myself for throwing together a rudimentary routing system, but didn’t even learn about MVC until quite sometime later. Also, all of the components of Four Island–the blog, the Fourm, the Quotes DB, the wiki…–all of it was merged together into one visually constant website. As I would come to learn later on, this didn’t really work too well.
It wasn’t really until January of last year that I first voiced my intention to rewrite Four Island again, but it would be a long time (as you can clearly see) until a finished product revealed itself. The first reason is revealed in that same Fourm topic that I just linked to, two posts down, when I say that “any code to be used as a base framework for Four Island must be written by me.” I’ve, for a long time, been incredibly opposed to using any code not written by me (other than phpBB and MediaWiki, of course) on my website, and for what reason? I think it was pride. I think I had pride in being able to completely design and build a website from scratch, but just because you can do something, should you do it? Just because you built your website from scratch, does that make it better than a website running on WordPress, a community package worked on by tons of people for years in order to get it as perfect as possible? Just because you want people to know you’re awesome, you don’t have to make yourself suffer. Really, after all of this time, and perhaps with a little growing up, I’ve realized that the smart thing to do, the reasonable thing to do, is to switch my blog from my own homegrown code to WordPress. Really, three years ago, what was my biggest argument against WordPress? It didn’t have a pending queue. I don’t even use a pending queue anymore, and even if I did think pending queues were a good idea anymore, I’m sure there are plugins available to provide that functionality. Seriously, getting over my obsession with homegrown code was a major breaking point for Four Island. If I hadn’t had this breakthrough, we may have never seen Four Island 3, or if it did ever come out, it would suck eggs. I originally planned to rewrite phpBB using Ruby on Rails. Try telling me that’s not mentally deranged.
This brings me to my second fault. Integration. I was obsessed with integration. And… why? I haven’t a clue. Maybe it was cool or something? Perhaps it was comment lust. I’ve realized, though, that independent entities with distinct functions work far better than a kludge of several completely different things mashed together in some kind of website facsimile. My blog is my blog, the Fourm is the Fourm and the Quotes DB is the Quotes DB. You shouldn’t need to be able to log into my blog with your Fourm account in order to comment. It’s simply not necessary. This brings to mind my third problem with the original plan for Four Island 3: absolutely effing insane feature creep. Feast your eyes on the original Four Island 3 specification. Yes, I recognized that my commenting system was terrible, in fact, I blogged about it. That post also contained the idea to not only reform my commenting system, however, but also to create an independent commenting system package like IntenseDebate or DISQUS which, aside from using on Four Island, I could put up for download and let other people use on their sites. I wanted to create a network of users called FourNetwork which would allow you to single-sign-on to any FourNetwork site and comment/post/whatever. It was even supposed to have control of ACLs for each website. I wanted to create a freaking chat system, which would run on an XMPP server configured to recognize FourNetwork accounts, and would also have a Facebook chat-like interface present on Four Island, so any freaking person who visited Four Island could chat with their other Four Island buddies. I’m sorry, but while I would love to have a nice XMPP-based chatting system to use to talk to my friends with (because a few of them still insist on using Facebook instead of Google Chat, and I’m sorry but Facebook really seriously just sucks eggs), it’s not at all appropriate to integrate into my personal website which exists for the sole purpose of other people reading it. Did I perhaps think, for a moment, that I was creating a new Facebook? If you haven’t already, read the entire specification–some of the things in it are quite hilariously insane. A freaking search engine for Pete’s sake–and the sad thing is that I had already implemented it, back in 2009. It just never ended up getting integrated.
So, what, after all of these revelations, did Four Island 3 eventually turn out to be? Not an insane integration-amalgamation of random stuff. Not The One Website with everything you could possibly need in it. No, Four Island 3 is a newer, cleaner and better working version of my personal website, with a Fourm and a Quotes DB, both of which, however, have been separated from the blog. I may eventually, some day, do some of those other things, but most of them probably won’t be integrated into Four Island.
Here’s what you’ve all been waiting for. What the heck is new in Four Island 3? Well…
- The blog now runs on WordPress, which means it’s much stabler and, well, doesn’t suck.
- Commenting is now not something you do as a last resort before your escape pod runs out of oxygen–no, now you no longer need either a Fourm account or a heck-load of patience to comment on my blog. You can either comment anonymously, which is totally awesome and not the huge hassle it used to be, or you can comment using your Facebook, Twitter or OpenID account.
- I may get into a posting groove now that I’m able to use MarsEdit to publish to my blog :P.
- On that note, emoticons now no longer shift blocks of text around with their larger-than-text-height.
- Unlike after the transition from Four Island 1 to Four Island 2, all legacy-style links to posts will be 301 redirected to their new locations. Backlinks, awesome.
- An entirely new theme, which is a modified version of K2. I’ve also written a whole page about Four Island’s themes. As a side note, the Theme Switcher has been abolished.
- Four Island also now resides at www.fourisland.com, breaking my No-WWW vows I took so foolishly, for the sole reason that Bluemonkey gave me in a comment on the post I just linked to. How silly am I? 😛
- Ding dong, the witch is dead, which-o-witch, THE BBCODE! Finally, with WordPress, I’ve abolished that silly BBCode Four Island’s been using since Four Island 2 came out, and possibly even before that. Now, users comment with whitelisted HTML. It’s all good. 😀
- A mobile layout, for those of you (including me) who like to visit Four Island on his or her superphone. 😛
- The Fourm remains mostly the same, though it has been upgraded to phpBB 3.0.9.
- It also features a brand new, beautiful theme, one that was not descended from prosilver and one that does not look horribly like the rest of Four Island.
- The Quotes DB was rewritten entirely in Ruby on Rails and separated from the Four Island blog.
- Quotes now keep track of how many upvotes and how many downvotes they each received, rather than simply their ratings.
- Quotes can now be tagged.
- Quotes can now have notes attached to them, separating information about the quote from the quote itself.
- You can now, after having voted on a quote, revoke your vote by voting in the opposite direction. For instance, if you upvote a quote and later decide to downvote it, you can downvote it, returning the quote to a non-voted on state, and then downvote it again.
- There’s a pretty stats page now.
- You cannot use a Fourm account to bypass moderation when submitting a quote. However, quotes entering moderation are now emailed to me, ensuring that I’ll get to them quickly.
- Spam prevention techniques have been put into place for submitting quotes.
- Nonsense, the weird quote generator, has been integrated into the Quotes DB.
- The Quotes DB now resides, as it did in Four Island 1, at quotes.fourisland.com. However, legacy-style links to fourisland.com/quotes/ quotes will 301 redirect to their new locations.
- I’ve selected an assortment of humorous one-liners from quotes and other Four Islander situations, which I can continue to add to, one of which is randomly displayed at the top of every page in the Quotes DB, along with a citation link (or none if no web source is available).
- An entirely new design, which while looking nothing like the rest of Four Island, was actually adapted from one of the early designs for Layout 8.
- Quote flagging, now that every quote must go through moderation, has been removed.