Executive summary of this long post: I took a long, recharging break; the site’s still alive; I’m rebuilding it bit by bit, slowly but thoroughly and surely; no due date, but you’ll hear from me again. Oh, and the new version’s going to be pretty awesome.
Followers of this blog may have noticed that updates have been few and far between. Until last week, your author had not posted an update for three months, and while previous posts had mentioned ongoing work, nothing has changed. Cobwebs gathered on the site; issues went unfixed; the account section bore witness to Facebook dialogs long since relegated to Palo Alto’s dumpsters. Even Mealstrom’s one-year anniversary in October failed to elicit the faintest murmur of life. Loyal readers, you would be quite justified in wondering “Is Mealstrom dead?”
The answer (happily) is a resounding “No!” Not dead, just hibernating, sleeping a long slumber from which the site is slowly starting to wake. After my wedding (itself a distraction without peer), I took a much-needed break from the site, reading books, recharging, and getting some valuable distance from and perspective on this meal-blogging service. Around the same time, I started a very cool phase of a project at work, building a new platform from scratch and learning how much my skills and knowledge and ideas have changed since I started the current version of Mealstrom. When I reopened the Mealstrom codebase, I quickly realized that rather than fixes to the current version (built as a learning exercise), Mealstrom deserved a substantial rewrite.

Mockups, or, my goal
Since November 3rd, when I branched the site, I’ve been working on a completely new version. I’ve set myself a series of goals for the rebuild:
- Thought-out designs: before starting each page, I’m creating a Photoshop mockup of the layout. Design first forces me to envision and refine the page before I get distracted actually by building it. Though I’m not a graphic designer (as the mockup example here shows), I am fortunate to borrow the time of a talented UI engineer to make sure these designs will be straigthforward and easy to use.
- Dynamic content: each page should be as responsive and active, providing feedback on your actions, letting you drag and drop pictures, preview Twitter posts, and in all other ways behave as as you would expect and want (without being overly flashy, of course). I’m moving the site’s Javascript from Prototype to jQuery and jQuery UI, and fully planning and executing each page as I go rather than deferring work until later. Which leads to…
- Complete features: having built the site once before, I know what features Mealstrom should offer, and now I intend to build all of them. I’m scoping and building out all features of each page before starting new sections, rather than hopscotching around building one thing here, one thing there, as I did before (justifiably, since it was a learning experience).
-

Javascript testing with JsUnit
Reliable code: you deserve a site that works, and I have to make one. As I create the new Mealstrom, I’m writing code and test scripts side by side. It’s hard to overstate the value of testing, both front- and back-end; defining how I expect my code to work means I’ll find bugs as I make them, rather than when your meal blog goes kablooey. I can’t approach this rebuild any other way: working nights, weekends, and mornings, I don’t have time to bug fix the same code over and over again. (With no external deadlines, I have the luxury of doing this right.)

So alpha the section header's wrong
The meal blogging page is an example of these goals at work — it’s the most complicated page on the site and the most critical to Mealstrom’s success. I started here with my mockup (see above), tweaking and completing it over several weeks before I wrote the first line of code. As that shows, the new version is going to be a big improvement over the existing, static page — file uploads through an advanced Flash-based tool, drag and drop image sorting, tagging friends, tracking eating habits, and more. I’m building it chunk by chunk starting with the photos, writing markup and Javascript that work, encapsulating the Javascript into classes, and writing thorough tests. Once it’s done, I’ll have a complete page that I won’t ever have to worry about and can start the process anew for the next part of the site.
So when will this be done? I only have a few minutes every morning, evening, and over the weekends to work on the site, so while there’s constant movement, it’s going to take me a while to finish. I won’t promise any dates, only that this will happen, and that the new version will be worth it. However:
I’m once again excited by Mealstrom and am eager to get this awesome new version up and running. I’ll keep posting as I make progress; as soon as I have enough rebuilt, I’ll post new versions to future.mealstrom.com.
That wraps up the update — stay tuned for more.
Always happy eating,
Alex