Entries for March, 2008

When I was in middle school (and sporadically through high school), I played a lot of Magic: the Gathering. Every Saturday, after working at a family friends' breakfast joint for the morning shift, I'd go home, take a shower, and be dropped off at the local card store in Timberlyne shopping center, where I'd play cards the whole day.

I remember seeing the same people week in and week out - I'd get to know some of the older guys who played every conceivable card/board game out there ... I wonder what happened to all of them.

One of guys who worked there, Travis, was a real cool dude. He'd sneak me a free booster pack every once in a while.

Looking back, it seems pretty pathetic ... but I remember it one of my happier moments from my childhood.

(I'm not sure what brought on this nostalgia, but I'm pretty sure it's listening to Stone Temple Pilots - I think I used to listen to these guys weekly through the store radio).

Posted by roy on March 1, 2008 at 01:32 AM in Ramblings | 5 Comments

Interesting: Zend has a PHP interface for Lucene bundled into their Zend Framework.

I'm really surprised that nobody's combined Hadoop and Lucene on EC2 to offer a scalable "search in a box" solution. I'd just like to have a REST interface to push all my Tabulas entries to, so I could finally get searching of entries to work...

. . .

Korean super-group Turbo's front-man, KJK, has some pretty catchy singles in his solo career:

That chorus is way too catchy.

This is a video of Turbo's biggest hit, "Black Cat" from 1995:

The video is strange, even by my standards.

Posted by roy on March 1, 2008 at 03:31 PM in Web Development, Tabulas | Add a comment

While going through my mail, I just realized that I'm actually flying back to NC this week. I bought the ticket a few weeks back - time really snuck up on me!

I'll flying back on Thursday at noon (won't get in until Thursday night) - I'll be at home from March 6th - March 16th for a friend's wedding.


Posted by roy on March 2, 2008 at 03:25 PM in Personal | Add a comment

Man, sometimes I'm in amazement at how cliche my life is:

This be my refrigerator.

Posted by roy on March 3, 2008 at 01:07 AM in Ramblings | 3 Comments

Great post on meeting Obama in person by Marc Andreessen, of Netscape/Loudcloud/Ning fame.

Posted by roy on March 3, 2008 at 01:44 PM in Ramblings | 1 Comments

i don't take compliments well, but if you ever want to guilt me (and make me feel good that there's something worth feeling guilty about), write a post like this:

So Tabulas, I love you. You've got spirit. You don't jabber legalese at me like that MySpace guy. You're not obsessed with cheap gifts like Facebook. You're uniquely you and I love that about you.

Do you think you could find it in your heart, Tabulas, to get just a little more together? You could totally win over all my friends if you'd just play nicely with Semagic and their other already installed blog clients, if you wouldn't break CSS hacks every time the file is edited, if you would link to the right documentation instead of to 404s or broken pages.

I know that deep inside, you're so much better than I'm making you sound; it's just that you're a little shabby right now. That's okay. Everybody has down times where they hang around the house in the sleepwear. I see the greatness in you even when you haven't brushed your teeth all week.

But don't you think you could stand to wash your hair, put on a clean shirt, and present yourself just a little better, so everyone can see how wonderful you are?

To answer publicly: Yes, Tabulas is in a shifty state. It *is* being worked on (a few hours a day). All these issues *will* be addressed. I know it totally blows, cause I use Tabulas, and I wish it worked correctly all the time, too.

I took a look at the Atom PubSub spec over the weekend, and it doesn't seem too hard to implement. However, it doesn't have the benefit of having a lot of support, so I'll have to implement MetaWeblog first. (ugh RPC).

And honestly, I'm surprised that nobody's come and blown Tabulas out of the water. I still can't believe (and I use a *lot* of webapps), that I keep coming back to Tabulas to journal (and it has absolutely nothing to do with the fact that I write/maintain the app).

Posted by roy on March 3, 2008 at 04:11 PM in Tabulas | 6 Comments

This posts' contents are lifted directly from Gizmodo, so check their post out for more pictures of Apple/Braun comparisons.

Jonathan Ive, designer of beautiful Apple products, has drawn heavily inspiration from Dieter Rams, a designer for Braun. Check out the Power Mac and iPod comparisons:

Braun T1000 Radio and Apple's Power Mac

Braun T3 pocket radio and Apple's iPod

And Dieter Rams' 10 principles for good design:

  • Good design is innovative.
  • Good design makes a product useful.
  • Good design is aesthetic.
  • Good design helps us to understand a product.
  • Good design is unobtrusive.
  • Good design is honest.
  • Good design is durable.
  • Good design is consequent to the last detail.
  • Good design is concerned with the environment.
  • Good design is as little design as possible.

Roy likes!

Posted by roy on March 4, 2008 at 06:16 PM in Ramblings | Add a comment

My primary machine is a Motion M1400 tablet that I got in 2004. It has a whopping 12.1" display and is woefully underpowered at 512MB RAM. It's never failed to serve me; even after I got a Power Mac G4 with one of those nice Dell 24" monitors ... I kept using the tablet.

Well, I just knocked it over from my desk. Surprisingly, it works fine (even the tablet functionality!). Unfortunately, the screen now looks like this:

Words cannot express my sorrows right now, but I'm still really surprised this tablet is chugging along with no problems. You'd figure a drop of 3 feet straight onto concrete would do more than aesthetic damage.

Anyways, I'm now forced to look into getting a new computer ... I would reclaim my personal laptop from MindTouch, but the thought of moving my development environment onto another laptop is not enticing (it contained a 5GB VM image of multiple Deki Wiki environments!)

Decisions, decisions... (good thing I get to go home and delay making this decision for another two weeks!)

A moment of silence for my soon-to-be-retired tablet... thank you.

Posted by roy on March 4, 2008 at 11:21 PM in Ramblings | Add a comment

I just saw the best movie I've seen in a while: The Lives of Others, a German film about the East German secret police ... definitely check it out if you get a chance.

Posted by roy on March 6, 2008 at 01:53 AM in Ramblings | 1 Comments

Back at home, getting into bad habits (i.e. not sleeping until late - perhaps my body's always been on West Coast time).

Anyways, I was trying to go to sleep, when I was reminded of a story from my UNC days. It has no bearing on anything in my life, and doesn't serve any purpose, but it's stuck with me for a while, and I figure I'd share it. The details are already getting hazy, so it's a good chance I'll completely forget this within the next few years; better get it down while I can still remember parts of it!

My junior year at Carolina was when I started taking a heavy dose of non-major courses (basically anything besides economics or chemistry). One of those classes was CHIN050, which I believe was ancient Chinese history (or something along those lines). Basically we read a lot of books about ancient Chinese history.

One of our first papers was to analyze one of the ancient Chinese texts we had read and offer our insights into it (Yush, did you take this class? Do you remember what it was?). The professor seemed really cool and liberal and oozed that coolness that I hadn't seen yet from my chem or econ classes. So when he gave us some leeway into how we wrote it (and the opinions we took), I decided to write a satirical paper that criticized the text.

Bad move. I remember getting a horrible grade (I think it was a D or an F) with the note: "This paper is not college material." Oh snap. Obviously the professor was a bit offended that I decided to bash his life's research (even if I was just being satirical). After that, that class quickly fell into my list of uncool classes, and I stopped caring.

Of course, even when I don't care, I do show up for finals and turn in papers (unless it's a chemistry class, in which I'll knowingly skip the final, but that's a story for another day!). Before our final exam, we had one more paper to write. Freshly scarred from the academic smack-down I had gotten on the first paper, I wrote the most straight-laced paper ever. It was well organized, packed with facts and references, and incredibly boring. Basically one of those papers that'd do well on those "buy an essay sites."

Apparently this paper went over a lot better with the professor, cause he gave me a great grade on it (I think it was an A, but it coulda been a B).

But that wasn't the amazing thing. The professor followed up with an email the following week, apologizing for being so critical on my first paper (he realized I wasn't an idiot, I was just being satirical), and he retroactively changed the grade on the first paper to a B (I remember this grade exactly, cause the whole email struck me as kind of weird). I didn't even ask or anything! I had simply stopped caring about that class, and he remembered to go back and re-read my paper, and apologize for it. I was pretty impressed.

Posted by roy on March 7, 2008 at 01:53 AM in Ramblings | 1 Comments

I noticed today, driving to (UNC) campus that the intersection at 15-501 and Erwin had finally gotten an overhaul - it was such a horrible intersection. Thank god for Google Maps for providing satellite views. The original intersection looked something like:

(I had to draw in the yellow lines which were the old roads used to be, and Google Maps doesn't have historical views)

The problem with the old intersection was the following:

Since blue line had right of way, red cars would inevitably get stuck. And somebody would always be blocking that intersection, so cars would get backed up into the intersection. A few years back, they moved the service road on the left side back - then they moved the one on the right back.

So when I last visited, the intersection still looked like this:

I thought I had heard they were gonna turn the whole intersection into a giant roundabout, like the one at the other end of Erwin:

I was excited about this after my road trip to Massachusetts a few years back, when I got to experience the first-hand benefits of a roundabout at a busy intersection in Cape Code.

Much to my surprise today, it wasn't an 'true' roundabout, but a Michigan left.

Under circumstances I don't remember, I remember reading about the Michigan left on Wikipedia a few months ago ... finally! Useless knowledge coming to my rescue... I felt pretty badass that I knew what it was called. (And I hope it's actually a Michigan left, cause I'd be embarassed if it wasn't).

When Google Maps updates their satellite pictures, I'll post them to this entry.

(And if you're wondering what I do with my spare time, now you know).

Posted by roy on March 7, 2008 at 03:18 PM in Ramblings | 1 Comments

A story, in 3 parts:

Photo credits: ???

Posted by roy on March 10, 2008 at 11:46 AM in Sports | 1 Comments

I can't stop listening to this specific remix version of Cascada's "What Hurts the Most":

. . .

We went deep-sea fishing for Nasty Nate's bachelor party this past weekend. Suffice it to say, I will never set foot in a boat ever again.

. . .

I thought I hadn't grown personally since moving to San Diego. Coming back home, I realized the wrongness of this assertion - I have grown quite a bit. Leaving your comfort zone is helpful in gaining a perspective on life. This leads me to my next conclusion: San Diego is now my comfort zone. San Diego is my home. Every time I read that, it feels weird. I've considered NC home since the 5th grade ... and now I consider Cali my home. I'm not much for change in my personal life, but this is a pretty jarring realization.

Coming back home made me realize how hectic my life is in SD - being forced out of my (work) element has been one refreshing experience. I forgot how nice it is to work from home - PeteE is one lucky bastard!

Posted by roy on March 10, 2008 at 11:29 PM in Personal, Ramblings, Music | Add a comment

Just got back from a day trip to Washington DC ... man I forgot how long that drive was (250 miles each way!). It was great seeing familiar faces.

Some thoughts from the trip:

  • You know how sharks and remoras live peacefully with one another? I felt like a remora today, as I tailed a tractor trailor going north on 85 at roughly 85mph. I figured the cops would pull the tractor trailer over first, plus I also figured the tractor trailer knew where all the speed traps were.
  • Washington D.C. has a lot of smart people - I overheard talks about academics and books as I was walking around - something that rarely happens in SD
  • East coast cities definitely have a different vibe to them. Never noticed it until now

Time to pass out!

Posted by roy on March 12, 2008 at 10:50 PM in Ramblings | 8 Comments

For Nasty Nate's bachelor party, we went deep sea fishing. From this picture, you'd think I was the only one who got sick from the super rocking waves (which broke the main engine on that boat!):

And yes, Han was mocking me. I'd have punched him the nads, but I was afraid any movement would cause me to dry heave some more.

And here is a picture of Nasty Nate (center, getting married tomorrow!!!!!) and the "best men" (more on this tomorrow).

Tony, Fred, Nasty Nate (Alex), Me, Yush, Han

. . .

I really think this song is beautiful:

This was the song that inspired my last crappy short story at 3am (I had listened to that song all night, then I just had this scene that I wanted to get down on paper).

There's one line in this song that resonates with me: "if you let go, then that's where time will stand." How many moments have I captured in my mind, like a Polaroid... just replaying that scene over and over again? Moments of great personal triumph, of failure, and of crushed hopes? Being back in NC has unleashed a flood of emotions and nostalgia for moments and peoples past ...

Anyways, the lyrics to the song:

Jimmy Eat World - Firefight
this is where our diligence has lead
the waves roll in to claim our patient steps
can we become more than just ourselves?
and leave the sand, our want, our will, our doubt

it's firefight, i won't run
there's spit and spite all through my blood
for you and me, there's nowhere left to hide
except you and me, there's no one else alive

this is now the moment after next
all these still the eyes of the temptress?
why open the door if you won't go?
don't ask twice if you don't wanna know

is there an answer?
and if it's an honest one, honestly worth it's question
there's no question
the city as my witness
i am who i wanna be, but you could be anything
just be anything here with me
love is quartz and breath the second hand
if you let go then that's where time will stand

it's firefight, i won't run
there's spit and spite all through my blood
for you and me, there's nowhere left to hide
except you and me, there's no one else alive

. . .

I've been surrounded by a lot of different type of people this week - (student) crusaders for environmental reform, people going through personal struggles, and creative photog types. It's refreshing to be surrounded by such diversity, simply because I can talk about some other things besides work and computers. I can feel the creativity flowing again.

Posted by roy on March 13, 2008 at 10:46 PM in Ramblings | 2 Comments

An interesting snippet from a post I read yesterday:

As I read this it really got me thinking. In most of the process agile / lean related books that I’ve read there seem to be a few common themes:
  • Trust people to do the right thing for the company
  • Give them freedom and authority to work the way they want to
  • Push decisions down the chain as far as possible
  • Work in small batches and change things that aren’t working
  • Allow those who are capable of leading to lead, no matter what their title or position is
  • Put quality checks in place - whether it be test-driven development, or quality checks at each step in an assembly
  • Fix problems at the core and stop the line as quickly as possible - in development this would be TDD and automated builds. Once a problem is found, find the root cause and put a test or quality check in place to ensure it doesn’t happen again
  • and finally, Trust people to do the right thing for the company

This is definitely where we're being led at MindTouch (if we're not already there). We do rapid iterations of releases (once a month for minor updates, and once every 2 or 3 months for major releases).

I've never read a book on Agile development, but maybe I should (or maybe it'd be like my avoidance of Ayn Rand, since I know I'll just agree with what's written, and the last thing I need is an echo chamber).

I'm a firm believer in "push decisions down the chain as far as possible", even though it requires a huge leap of faith when part of your development team is in Russia (especially if your ass is on the line). However, it's worked beautifully - I just give a general guideline of the goals I'd like to achieve, and leave it up to the dev to figure out how to get it done.

One thing I've noticed about Agile, is that although you're pushing the responsibility of decision making down the pipe, it doesn't absolve you from deferring all responsibility to the developers. The role I've found myself filling at MindTouch increasingly is to reduce the cognitive overload developers face in our "Agile" system. For example, because developers are now forced with the responsibility of making more decisions, it is up to me to clear the path to implementation for that developer.

For example, at MindTouch, we switched our SVN versioning to something that would support the more rapid iteration of our product cycles. Previously, there was way too much top-down decision making, which didn't work. (The jury is still out whether the change I championed is successful; we'll see a few releases from now) This change increased the risk of critical bugs on our primary production branch (trunk). To counteract this, bug reports were required for every bug fix that went into trunk (cognitive overload for developers). However, because we're now managing multiple branches on trunk (which is an achievement in itself), the categorization of bugs can get tricky. What may have been a bug fix for the 1.9.1 release may actually be moved to the 1.9.0 release if a service pack is being issued. This is where the Agile manager has to step in - the role is to reduce the pains for keeping the Agile development going, and to reduce the stress that developers may feel as a result of their implementation (bug regressions, etc.).

I dreamed of creating a system and process where everything would automatically work - developers would get bugs, they would fix them, QA would do regression testing, and product releases would get done. I wouldn't do anything - it'd be all automatic! I could then micromanage the UI developments. This most certainly is not the case. Besides the pressures from above (a post I'll save for another day), there's still a lot to do in making sure things get done, behind the scenes.

Developers need to constantly be reminded of the system (herding cats!), decisions on bugs need to be constantly made, and one needs to make sure that problems aren't be introduced. Problems early on in the cycle need to be caught and fixed - which is something I've been struggling to do with the QA team (although improved, our QA process is not where I'd like it to be). Every bug and issue found needs to be examined with this question: "How can we avoid this in the future?"

I find developers living in a bubble, unaware of the greater landscape, helps them focus on the task at hand. Giving vague milestones and the freedom to architect a stairway to heaven, developers will do as such. Once in a while, you have to be an asshole and tell people what they're working on is pointless and pull the plug.

I guess speaking more generally, the role I find myself doing lately:

  • Being the equivalent of Adam Smith's "Invisible Hand" by guiding development forward, with as minimal input as possible
  • Dealing with the stresses of individual developers (making technical decisions, making product decisions, helping people deal with design limitations from other parts of the stack). A big part of this is to never bubble those stresses upwards - the decision makers above do not need to be burdened with those problems
  • Planning the broad strokes of the future by allocating resources accordingly, nipping useless projects & ideas in the bud, and having a rough idea of schedules (so far, I only plan for the next release, which means I only have visibility roughly 2 or 3 months ahead)

The better you are at Agile management, the more invisible your job is. Because technical decision making is delegated down, and you're only guiding those decisions which affect the overall direction of the product (which nobody acknowledges - everybody seems to assume it's the natural path), you won't actually be able to point to something and say "that's me!" Probably the best mark of an Agile manager is somebody who is seen from the engineering side as being a great mentor, and being seen from the product side as not doing much (but somehow products ship on time).

Posted by roy on March 14, 2008 at 10:56 AM in Web Development | Add a comment
Posted by roy on March 15, 2008 at 11:16 PM in Ramblings | Add a comment

I got to see a lot of people this weekend that I hadn't seen in a while. I loved seeing everybody, but I don't think people got that impression. So, a quote to remind everybody who I really am:

jennhlin: maybe i do forget you're kinda socially retarded

Congrats to Eve and Alex on getting married!.

Posted by roy on March 17, 2008 at 11:15 AM in Personal | Add a comment
Posted by roy on March 18, 2008 at 11:46 PM in Personal | 1 Comments

Figures this game gets released after I kill my tablet ... check out the amazingness: (This is creativity at its best)


Posted by roy on March 19, 2008 at 11:44 PM in Ramblings | 2 Comments

The "Play Count" column looks so lonely in iTunes for unlistened songs. So tonight, I only listened to songs which (according to my iTunes) had not been listened to. Here's the list I got through tonight (God, all of these are awful):

  1. Creed - Higher
  2. Code Red - What Good is a Heart
  3. Carpenters - Close to You
  4. Bernard Hermann - Twisted Nerve
  5. Beatles - Strawberry Fields
  6. Air Supply - All Out of Love
  7. Ace of Base - Waiting for Magic
  8. Ace of Base - Don't Turn Around

I'm not sure how much longer I can do this...

Posted by roy on March 20, 2008 at 01:03 AM in Music | 4 Comments

For those of you who take sleep meds: Lunesta is pretty nice. At first, I had the horrible metallic taste in my mouth (as a side effect), but now that's gone. It puts me to bed far more effectively than Ambien ... but for some reason it causes me to wake up earlier sometimes.

If there's one side-effect, it's that it makes my head really hazy and foggy in the mornings. It generally clears up by mid-day, but it's still a side effect.

Posted by roy on March 21, 2008 at 01:13 PM in Personal | Add a comment

Being an Asian, I'm cursed with two conflicting set of genes: excellence at standardized testing vs. bad driving. Fortunately, the former set of genes outdueled the latter today, as I received a California license. I also paid the state $882 to pay off taxes on my car, so it could be registered in CA.

Right now, I got some iPartyRadio streaming in the background, while I do some Tabby development on my Mac (first time ever working on a Mac for Tabby!). Looks to be a pretty promising evening!

Posted by roy on March 21, 2008 at 06:35 PM in Ramblings, Tabulas | 1 Comments

This mix of Daft Punk's "Harder Better Faster Stronger" is pretty awesome:

I also checked out the Kanye's "Stronger" Grammy performance; I'm really digging the lit-up glasses. I feel like the lit-up glasses are from something else that I can't quite put my finger on ... anybody know where the inspiration for that was from? (Oh wait, I just remembered... it's from Sin City!) 

Posted by roy on March 22, 2008 at 11:25 PM in Music | 4 Comments

One major complaint about Korean churches in the SD area: they all start at ungodly (HAHA) hours on Sunday. The two churches (which have websites) both list morning service at 9am ... and they're outside downtown! (Which means a 10 minute walk to my car and a 15 minute drive to the church).

I guess it's a good way to weed out lazy bums like me. Sigh.

Then again, I could go to the local super-church, which has service all day! Christianity, at your convenience!

. . .

I can't believe a week just went by. I was miserable this week. I have to keep reminding myself that vague specifications are the norm, not the exception. There's this one particular project which has been a thorn in my side: it's the first project where I cannot wrap my head around the scope of the project, which makes me very worried in terms of timelines. The project's already been delayed a few weeks ... and I still don't see the end in sight. Couple this with the fact that this project requires engineering resources that are only applicable to this one project ... and you can get an idea why I've been so ornery. Anyways...

I'm never one to embrace change in my personal life; doubly so when it comes to work that I'm invested in. We're hiring people at MT at such a scary rapid pace, which threw me into a bad mood of sorts (although most of it was related to the never-ending Mozilla project, to which I still don't see an end to the timeline)

I worked hard over the past few months to manage projects and processes to minimize overhead; to see so many new faces ... I just hope our company can swallow these new hires. A lot of them are fresh hires, so there's ramp up time involved - I expect to be working incredibly long hours over the next few months. Part of me doesn't want to see our productive, neat little team dissolve ... but there's no avoiding it. 

Of course, a bigger part of me is excited to have more people work on our product - even though people keep clamoring about how awesome it is, it still has a lot of room to improve and simply be kick-ass. There are so many ideas that I have, that I'm just not capable of pursuing because I don't have time ...

It's been a while since there's been such radical changes in my life (so sad that I consider work to be my whole life), so it's been tough dealing with them. But I don't think this applies just to me: over the past year, our team's grown comfortable in our roles and our little dominions. It's easy to feel very threatened when you see somebody with your skillsets come into the company - that insecurity makes you question, "What's my new role?" I imagine people will be trying to find their role in the company over the next year. It'll be interesting to see where we all stand a year from now.

Well, that was my week.

Posted by roy on March 28, 2008 at 10:35 PM in Personal, Ramblings, MindTouch | 1 Comments

Ree, are you there? This post is for you :)

So one of the benefits of the new control panel is that crossposting actually works. Anytime you publish a new entry, you have the option of getting it published to: Blogger, Wordpress, LiveJournal, DeadJournal, Blurty, GreatestJournal, and Xanga. The "push" mechanisms are now in place for Tabulas to broadcast out (that way, if one of your services goes down, you have like 8 other sites you've been publishing to!)

I spent last night hacking together a new MetaWeblog API for Tabulas (I highly recommend trying out ecto ... this thing's been a godsend in helping me test the MetaWeblog interface). The new MetaWeblog interface will be "officially" supported by me (I'll clarify what this means in a future post) and has access to all the methods, except the get and setTemplate methods (which are useless for Tabulas). The last piece I have is the newMediaObject RPC call, and then I'll be done. Edit: The MetaWeblog API interface for Tabulas is done!

This got me thinking - wouldn't it be neat to allow posts through the MetaWeblog interface also crosspost? Initially, I had a single checkbox which crossposted everything to every crossposting service you set-up.

But this seemed shoddy.

So I added new metadata around each crossposting service - you can now specify a category with each crossposting account ... any entry that is posted to that category gets automatically crossposted to the respective service. I got this idea based on Ree's usage of the "livejournal.com" category for every crosspost.

The next step is applying the same publishing concepts to the gallery - there's no reason why images stored on Tabulas should just be on there - having it automatically post to Flickr would be fantasgreat. Links could also be pushed out to Delicious (although I'd need to do a little work cleaning up the way tagging works).

Future to-dos: Add more methods to the XML-RPC interfaces for photo management and a full Atom interface for entries/images.

Posted by roy on March 29, 2008 at 04:16 PM in Tabulas | Add a comment

I can't stop raving about this show. It's hilarious (but very offensive). Check out this video clip of Charlie singing "Nightman", the funniest song EVER: (courtesy of Hulu, which friggin' rocks with its customizable embeds)

Edit: Looks like the clip doesn't work ... sad. Check out the episode here and fast forward to the 11:58 mark.

Posted by roy on March 30, 2008 at 10:17 PM in Ramblings | Add a comment

Tabulas's control panel has gone through three distinct phases of development. (I'll use the category UI for consistency) You can click each image to get a full-sized image.

Phase one: The original (1.0)


Phase Two: The failed "new" control panel (2.0)


Phase Three: The "non-crappy" new one (2.5)

Why the original version sucked

Simply put, I was more interested in learning about PHP than designing a nice user interface when I first launched Tabulas. Features were added ad-hoc without much though into how they should be organized. This manifests itself through the cluttered (and unorganized tabs): there are 10 first-level tabs (and most of them don't even make sense - logout is an action ... it's a tab... really?). The 2nd-level organization doesn't even make sense: I put "Add entry" with equal weighting to "Entries", while everything else got only one treatment (there were no "Add categories", but just "Categories"). 

The 3rd-level operations (like "Add Category") were situated along the left side. This became slightly problematic when the left navigation became inconsistent; some pages would have left navigations, while others didn't. While this isn't so bad in itself, having to figure out if there are more actions available on every page was unnecessary cognitive load.

Furthermore, there was no way to quickly manage multiple categories. There should be a way to manage multiple categories at once. (Realizing this, I hacked in multiple <SELECT> boxes, which just made the page look god-awful).

Why the "failed" version sucked

I cut down the first-level tabs to 7 tabs. However, the 3rd-level operations are buried (Can you quickly locate "Add category"?). I was going through a "right hand navigations are awesome!" phase at the time, but I failed to realize that right hand navigations should supplement the primary content. Most people hit the "Categories" option trying to "Add a category" and had their eyes immediately drawn to their list of categories first, since we read left-to-right. FAIL. Nothing important should ever be in the right column.

Not only that, but I was using a table-based layout without any of the benefits. It's impossible to scan the "failed" version to see what's the most popular category quickly.

One of the benefits if multi-deleting became possible, using the checkboxes and the "Delete categories" option.

Why the new version sucks a lot less

7 tabs becomes 6 tabs. I don't mix actions with items on the 2nd-level navigation; instead of:

"Create entry (action) | Entries (items) | Categories (items) | Comments (items) | Autolinks (items) | Backup (action)"

I have all items:

Entries | Comments | Categories | Autolinks

The 3rd-level navigation is included on the page itself; no need to launch a new page to add a category - you just add it from the left! One thing that's not obvious from this page is that the other third-level options expand right underneath the 2nd-level navigation if they exist, as made obvious from this "Entries" view:

(the 3rd level will be converted to all actions that relate to "Entries")

I've also removed the right-side navigation, to bring focus to the actions available to you most immediately (that's the whole F-shaped pattern at work). I'm also experimenting with the latest design craze: vertical separation of content. So far, I'm hating having to scroll down to edit my most recent entry ... we'll see.

. . .

Edit: In celebration of fixed crossposting, I'm crossposting all my entries to my new LiveJournal account, as well as my new Wordpress account. When (not if {#innocent.gif}) Tabulas goes down in flames due to my incompetence, I'll have backups all over the place!

I also fixed the emoticons for the new editor today, can you tell?


Currently feeling: happy
Posted by roy on March 31, 2008 at 02:44 AM in Tabulas | 4 Comments
« 2008/02 · 2008/04 »