A whirlwind of activity from Tabulas-land.

With my mother back from Korea, I've had a huge chunk of time free up on a daily basis which I've been using to tackle a lot of the issues in my Tabulas to-do list. (Speaking of which, I realized a few days ago that everytime I edited it, it would refresh the RSS feed. Apologies to those who read my site through RSS)

The biggest things I've dealt with:

Refactoring of the message center

The DB schema for the messages was a single table with the standard fields (messageid, timestamp, messageText, etc.). I realized that if I wanted to ever use the message center to spam my members with GREAT offers [hahaha, I would never do this - or would I?], I would need to make the message center much more scalable. So I split up what just used to be messages table into messages and messages_text. messages_text now contains the static information of the message (the text, timestamp, and sender) and now messages contains information on a per-user basis (e.g. sent to whom? has that person read it?)

There are still a lot of shortcomings within the message center (threaded discussions would be nice, as well as 'reply-all' functions. But honestly, I think 0 people would use those two features extensively, and we've got e-mail already!

Commenting Stuff

You would not believe this, but I made a real effort to implement the smileys popup on every entry. But I failed. I'm not sure what was happening, but IE was being a real pain in the ass ... so I gave up on it. Sad. But now the link in the notification e-mails that are sent out actually contain the link that will reply to the comment itself, so you don't have to click the link in the e-mail, then click reply. One less clicking!

Crossposting

A lot of thanks goes to Ree for the post that listed all bugs in the crossposting feature. I fixed up all bugs with crossposting, and with the other bug fixes reported in the Tabulas forums, I think everything is dandy there!

The next big step for crossposting will be capturing ID values for each entry so an edit in Tabulas automatically edits your posts to your crossposted journals and entries. Xanga will be the toughest to manage there since I had to roll my own solution given the lack of a usable API.

Upgrading Accounts / Handling Referrals

The upgrade center was broke beyond belief. I'm not sure why it broke so horribly (I blame mostly my moronic coding), but I spent some time fixing it. I also got the whole referral system set-up; 6 valid referrals (I'm using a script to decide whether referrals are valid: (a) is it from a different person? (b) did the person who get referred really *use* Tabulas. Upgrades now also notify via e-mail that an upgrade has gone through (something I never implemented for some reason).

Now if more people would upgrade using PayPal, I could actually check things!

DELETING USERS MUHAHAHAHA

I never built a deletion function, figuring it would be "real easy" to delete users. Wrong. Especially in a control panel that doesn't have a proper MVC model in place (MVC basically separates the programming from the display from the data, so it's easier to change any one of these three components) and hodgepodge programming ... I ended up spending a bulk of the time refactoring a lot of the code so the functions made more sense (e.g. I hardcoded a lot of functionality into each individual page instead of shared libraries).

Long story short, user deletions now work. I ran the batch on the 84 accounts that were set for deletion, and things worked great. There were some problems syncing between the personal data servers and the control panel, but that was expected. I'll hone this up in the future.

So if you PISS me off, I will delete you FOR REAL NOW. Just kidding. Unless your name is Terrence or Yush or Han. Then I really will delete your journals.

Color Scheme Selector

Remember on the old Tabulas how you could choose colors for your Tabulas? Well, I brought it back ... and it doesn't such technically now (actually using styles on dropdown menus are a really bad idea). It required a lot of Javascript trickery, but I got it all working. Woot.

Control Panel Refactoring

Moving more functionality to shared libraries, even if they're being used once ... cause you never know when you will need them somewhere else!

I've also been renaming a lot of my functions; the vast number of functions makes it really hard to debug complex problems. I've also been moving more to a standardized method of handling passed parameters in functions. You would not believe this, but I use three methods for passing a simple "true/false" value to functions: (a) 1/0 (b) yes/no, and (c) the boolean true/false. Obviously I'm moving everything to the (c). But it's taking time.

The CP refactoring will be a critical piece; for the most part, www.tabulas.com has a MVC model in place, so I don't need to change that for the Tabulas Brasil launch. But the control panel will require a TON of work. But I'm looking forward to it. Problem solving is MY forte, just like the Wolf from Pulp Fiction!

All in all, I'm feeling really content with the level that Tabulas has reached. There's a lot of work to be done, but for the most part, a lot of the bugs have been patched. This feature freeze (sort of) has helped me stabilize the system. And have you noticed we've had great uptime? I'm really surprised Tabulas hasn't crashed once ... with the 4 odd servers I'm running ... I would expect one of them to whine once in a while. Oh well ... knock on wood.

In any case, because I've gotten so much done, I can finally focus on the more theoretical problems rather than the boring bug fixes. Whoo, so excited!

Oh yeah, don't be scurred, but Sal has notified me as to a HUGE security hole in Tabulas. The solution requires about 15 Roys working nonstop for one day, so it may take me a while to patch it. But I'll write all about it (the first big security hole in Tabulas!) once I'm done.

Currently listening to: Deep Blue Something - Breakfast at Tiffany's
Currently feeling: satisfied
Posted by roy on February 15, 2005 at 02:38 AM in Tabulas | 2 Comments

Related Entries

Comment posted on February 16th, 2005 at 05:35 PM
I haven't a clue as to most of what you described, but... YOU GO, ROY!! :)
Comment posted on February 15th, 2005 at 07:57 PM
Good job!

Want to comment with Tabulas?. Please login.