Battle of the Bits 3.0 in the works thanks to FECES
Wednesday, November 3rd 2010 3:04pm
It's been a slow evolution over the last six years. Two years ago began a complete rebuild of the BotB system. With my own fledgling php/mysql framework guinea-pigged on clients, I was poised for a huge dose of optimization in the BotB system. Porting the old code took me over a year, and some of it still isn't complete, but it functions enough to keep the community active. I also had to create all new templates and views to work with my new system : Firteen Electronic Content Engine System (FECES).
FECES does a few things for me. The 'Stack' is a singleton array of pointers. 'Fohat' is my database access object. Stack's job is to remember what Fohat fetched from tables so Fohat doesn't waste time and energy. The class/object plugins are rather straight forward model-view-controller files in their folder. 'Slotswatch' compiles those into html, js, css, etc. And there's a doo-dad here and there that wrap it all up into outputting a dynamic webpage.
For the most part, I'm really happy with it. I think performance could be increased with a more robust cache system. And I have spent countless hours trying to create an easy to use form handler. The sortable tables are laughable, especially when you start using pagination.
BotB has a lot of data available for display. Making the decision of what to display has classically been to display as much data as there is to display. Which is actually a lot of work. Writing this blog post right now is a lot of work. You have to stay focused and resolve some sense of purpose through complex assemblies of characters and glyphs. Sheesh
Right now, I am mainly focused on two things —
1) A new grid system. I tried out 960 for BotB 2.0 and ultimately, IMHO, it wasn't simple enough! I want to reduce clutter so I should reduce the number of columns. 960 is column craptastic happyville. I'm going with a header, two columns (content + sidebar), and a fixed dock footer. Sidebar will hold the media player radio guy, playlists (should I ever implement that), and various browsing suggestions.
2) A complete AJAX interface. I'm tired of the media player being in a popout window. If the page never fully refreshes while browsing, the player can sit on the page uninterrupted. I had experimented with some ajax features in 2.0 : tag writer, post editor, inner menus/contents. Namely, I use jQuery for assistance. Although I am an eager beaver to try out both mootools and dojo, I have to pick my battles, don't feel like making the time to learn. This interface will rely on URL hash marks - want a permalink? Remove the hash mark. Nice, eh?
But FECES surely holds up. I don't need to rewrite any of BotB's control code. It's a matter of page loading, layout and flexibility with the existing codebase. But all the views will need adjustment and I'm looking over all code as I go for evaluation, trimming some fat.
I'm not sure how long it will take to get BotB 3.0 into a beta mode. That would be the point where I reintroduce all classes/objects and tell the community it's time to try and start breaking it (which they'll surely do). The new interface needs to be intuitive and direct. The complexity of it's current state not only makes it difficult to navigate but difficult to make design decisions regarding new features. Simple. I want simple.
posted by Langel
Leave a Comment