Entries for June, 2005

I'm honestly perplexed by recent postings about RSS feeds and their 'usability.'

Basically the discussion revolves around how a RSS link should be shown to the user.

I've developed Tabulas from the mentality that RSS syndication links should not be shown by default.

Users hate/are confused by the RSS button concept. RSS is a power-user tool for the web - I've consistently tried to get my casual friends to use RSS to keep up with Xanga, Livejournal, and Tabulas sites, but they just don't want to. They rather go through their bookmarks rather than take the effort in learning a new technology with a new name.

(As an aside, at the last Chapel Hill Bloggers Meetup, someone asked how to get casual users to blog, and one of the suggestions was to stop calling it blogging. People are MUCH more likely to update "a website" rather than "a blog." Hell, people are much more inclined to update their Xanga or Tabulas rather than a blog. I have never liked the word blog [you'll notice I refer to what I do as journaling] and continue to see it as a hindrance more than a benefit in getting the general public on board).

I remember a long time ago (a few Tabulas users may remember this), but Tabulas put the orange RSS buttons on all sites by default. Let me just say that everybody hated it with a passion. Even I did.

To me, the default behaviour for RSS should be using meta tags; people should automatically assume that any URL on a site is also going to reference the RSS feed - RSS aggregators should be smart enough to pick up on the <link rel="alternate" type="application/rss+xml" title="RSS" href="" /> tag.

This creates a consistent system for subscribing to RSS feeds - a user simply puts in the URL. No need to find the orange XML button, or the orange RSS button, or the textual RSS/Atom link.

When I subscribe to RSS feeds using Bloglines, I always just use the URL. If the URL doesn't autodiscover, then the site owner is at fault. Why create additional widgets (RSS buttons), when the URL works just fine?

On a side note, since I'm sipping heavily from the hatorade today, I will get this off my chest:

I hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate "summaries" or shortened RSS feeds. RSS is a syndication format meant to empower the reader. Offer summaries if you want, but give the option for full-text! If I wanted to get summaries, I would bookmark every site; I don't have time to go through 180 odd sites and click through all the summaries.

Nothing irks me more than people who try to use the "I have to monetize my content" argument. If you're on the Internet for the purpose of monetizing your content, you're missing the point. As far as I'm concerned, the primary goal of the Internet is to be a tool for efficiently disseminating and aggregating information free from external actors (obviously not an inclusive list).

If you need to pay off costs, that's fine. But you cannot convince me that you're actually saving money by forcing people to visit your site. Your fixed costs are primarily bandwidth and CPU usage ... which takes more... a textual RSS feed (for sites like Bloglines which is loaded once every few minutes for quite possibly thousands of users?) or a whole website?

It seems people who argue against full-text ads with the defense of needing to monetize the content were in it for the money to start, and that's a damn shame.

Posted by roy on May 31, 2005 at 11:36 PM in Ramblings | 5 Comments

Please take the time to hit the little 'comment' link and add a comment to this entry. If you're just a stalker, feel free to post anonymously... I just want some feedback because I'm curious.

How many of you keep a daily to-do list? Do you write it down physically or do you keep it online? Do you have an 'extended' to-do list (more like week-long goals and such)? Do you use any software for this?

Thanks a bunch!

Posted by roy on June 1, 2005 at 01:09 PM in Ramblings | 34 Comments

Here's a shoutout to DROOLS (as promised):

. . .

Thanks for the comments in the previous entry asking for how you manage your to-do list. I'm not sure if I'm getting busier, or if smaller tasks are occupying a greater portion of my attention, but I've been finding it harder and harder to manage my daily tasks. Between work, home stuff, and my own side projects ... I get very scatterbrained.

To the anonymous guest who posted about their moleskin, I used to have a moleskin too! I had a small one that worked perfect while I was traveling in Korea (although my to-do items in Korea were mainly "go out and eat," "go check your email at the internert cafe," and "go meet some ladies"). Once i got the States, I tried to break down the moleskin into sections to manage the to-do lists into groups ("life stuff", "tabulas stuff", "audiomatch stuff", etc.), but this just fell apart. The problem became organizing on a meta-level and sorting through an existing list ... I like to keep a prioritized list of items, and this is simply impossible to do (this comment points out the problem: you end up rewriting your lists over and over again).

I then moved onto the physical post-it notes. This worked well; I would write a post-it and stick it on my wall. When I got finished, I would take it down. But again the problem I ran into was the simple problem of organization and structure. I couldn't move the post-its around too often (I have some cheap free ones) that would fall apart. And if one were to fall off while I was sleeping, that task would never get completed. Oh, the horror of the missing post-it note. (Not to mention post-it vandalism by my sister; one day I woke up to find a post-it that had in suspicious girly handwriting, "Anna is the best sister ever!")

So I started keeping a list on Microsoft Word. But to load up MS Word every-time I want to edit a small task? That just didn't work. So I naturally switched to Notepad. That worked the best out of all the solutions thus far.

I've never been a fan of the virtual post-it notes that people have on their desktops. I've seen it on Alice and Lillia's computer, and I can't *stand* cluttered desktops. I go to extreme lengths to keep my desktop free of stuff (including changing the icons on the recycling bin to nothing and moving disabling my computer/my network/all that crap).

The best solution for me, seeing as how often I'm in front of the computer and we have broadband ... was through the internet. You'll remember how I used to keep a stickied post on this Tabulas for Tabulas to-do items. That worked well. It only was cluttersome if I brought it up, it didn't require any extra programs I wouldn't already have open, plus it was a clean implementation.

Lately for work, I've been keeping my to-do work list updated on my workspace, so my bosses can keep track of what I'm doing and what I'm going to be up to (my company develops software for this purpose and a whole lot more).

Ideally I'd like a web implementation of a hassle-free list manager. Something that doesn't have a clunky user interface so I can manage my to-do list efficiently ... something that lets me quickly reorganize my list with a drag and drop interface. Something clean. Something standards compliant... something on the web so I can access it from different places - ideally I can tie in my cell-phone to send a text message somewhere to add an item to my todo list, or through a PDA, or through a wireless connection. You get the idea...

Or maybe I should just build a robot instead.

Posted by roy on June 3, 2005 at 12:22 AM in Ramblings | 1 Comments

My left arm started tingling. I stared curiously at it for a while, but decided it was nothing serious. But the tingling stayed with me ... until my fingers started going numb too. I started freaking out ... perhaps I had spend too much time in front of the computer (my scare with carpal tunnel's a few years ago has led me to adopt "correct" postures in front of the computer, except for my slouching) and my left arm was punishing me!

In any case, it was only a dream, but it scared me enough to try to take it easy today. Of course, that and a splitting headache was enough to push me away from the computer all day. I've put in roughly 14 hours a day in front of the computer this week, so it was bound to catch up to me. I don't think humans are meant to sit in one place and stare at a flickering monitor all day. But what do I do, I'm just a dumb kid.

Anyways, woke up with a splitting headache. This has happened before, but normally I can just work it off. Not today's headache. The little monkeys in my brain were not happy with the amount of work they had to do this past week - they kept pounding away. I gave up on work after about two hours and emailed my bosses saying I was taking the day off and went back to sleep. Woke up around 2pm, and it's a bit better, but sitting in front of this box is bothering me, so I'm forcing myself to stay away from this thing (aside from scanning items on my reading list and putting them in my "to-read" list.

But seriously, what's up with all these lies about me being posted online? What have I ever done to deserve being embarassed online?

haha. oh you silly children...

Posted by roy on June 3, 2005 at 01:42 PM in Personal | 7 Comments

I feel like writing a technical post, so feel free to read below. I'm trying to make it as layman-oriented as possible. This post focuses on how to deal with security on websites without using any advanced methods (like secure HTTP connections).

One of the many problems about websites is the lack of security when a user inputs their password. Given the fact that many users tend to reuse passwords over and over again (my Tabulas password is nearly the same as my Bank of America online account, which is also very similar to some of my server passwords), websites must put in some basic methods of protecting these passwords.

When you submit a form from a website, whatever you submit gets sent over the Internet. Think of it like a phone call - you've called Tabulas and you're saying your username and password over the phone. Your sister could be on the phone as well, listening to what you're saying. The internet works in a similar way; anyone who is on your immediate network can watch what traffic leaves your computer. This means the passwords you submit are being sent in plain-text (not being converted!) ...

Obviously this is a horrible security measure.

The obviously solution is to use something called HTTPS, which is "secure" http. The server makes a direct connection to your computer and encrypts the data being sent back and forth so nobody can view it. But this is not feasible on many sites like Tabulas, because:

  1. Creating HTTPS connections from a server to each individual computer utilizes a lot of server resources. Obviously for sites like banking sites, you're willing to sacrifice speed for security. But for stuff like Tabulas, the cost in computing power is not worth the security (except for the facts that I mentioned above, but that's a human error issue)
  2. It costs money and is a bit more difficult to implement. It's not easy to "plug and play" these features from site to site, which is my ultimate goal.

So what does a developer like me do? We take advantage of something called a MD5 hash. A MD5 hash will convert a word(s) into a 32-length passcode. For example, the word 'hello,' when it is converted to a MD5 hash, looks like this: 5d41402abc4b2a76b9719d911017c592.

There's a lot of mathematics behind it, but the end result is that no two words will ever create the same MD5 hash, and MD5 hashes cannot be reversed. This means that if you are given '5d41402abc4b2a76b9719d911017c592', this means ONE word (which we know to be 'hello').

This is a one-way hash; we can convert something in one direction, but we can't "decode it."

So the first step any webdev should take in developing a site is to MD5 those passwords.

But the problem still occurs: people will iinput their passwords, it will be sent to the server, then it will be MD5 hashed. For someone listening in on the phone conversation, they'll still pick up on the password. Then they can just MD5 hash the password and send it to the server and pretend to be someone they are not.

So the obvious solution is to do something with Javascript ... some sort of awesome Javascript function that would create a MD5 hash of the password, delete the password being sent, and send the hash to the server instead. And such an awesome system already exists.

Great, so we hash the function! So when Roy sends his password of hello to the server, the server receives Username: Roy, Password 5d41402abc4b2a76b9719d911017c592. But wait. If the server is accepting MD5 hash, someone could *still* intercept the MD5 hash and just send the MD5 hash to the server! This hasn't done anything besides convert the plain-text to a simple hash.

So we add what is called a "salt." A salt is a randomly generated token (it could be a word or a number) that is added to the password. For example, let's say Roy wants to login ot the server. On the login page, the webpage automatically adds a random number (119834727) to the password, then MD5 hashes the whole string, THEN sends it to the server.

So the webpage submits this new MD5 hash of our password and salt combined into one word as well as the salt by itself. Our receiving server then receives the salt, takes the password (which we know), adds the salt and password words together, then MD5 the result. If they come out to be the same MD5 result, then we know the right password was put in!

The next step one should also take is to store all the sorts in memory; the salt simply adds another layer of complexity to the program ... but a hacker could take the salt, the md5 hash, and do a repeat attack. By storing the salt on the server, the server can reject any request that sends a salt that it's previously used. When creating salts, it's most useful to use a number you KNOW won't ever be reused - I use the number of seconds since the UNIX epoch (number of seconds since January 1, 1970).

I will be sorely dissappointed if anybody actually read this and commented. Get a life, you fools!

By the way, if you've ever been curious how something works on Tabulas or with websites, feel free to ask below. Maybe I'll write more technical articles... it's kind of fun.

Posted by roy on June 5, 2005 at 07:56 PM in Web Development | 8 Comments

There's a very good article entitled "Five reasons social networking doesn't work" on CNET. For those of you lacking the terminology, "social networking" is yet another buzzword which makes no sense. It basically is any website that promotes social interaction (umm, hello, the Internet?) ... Friendster, Face Book, Livejournal, and Delicious are all sites that are considered "social networking" sites. (I do believe Tabulas is also considered a social networking site)

As ironic as it sounds, I'm not a huge believer in the social networking phenomenom. That's not to say I don't believe in the power of the Internet in connecting people and distributing information efficiently ... those are both fundamental tenets for me. What I don't believe in is creating websites that specifically exist for the purpose of emphasizing your cliques or connections between people. This is what's ludicrous to me.

If you think about it, we're still rather at a very crude phase of the Internet. Visions and goals are not in sync with the realities of developing the technology, so many websites have ugly "hacks" around it. To me, the very concept of having to go to a site and specifically list your friends is anathema. I'm going to take a wild guess, but I seriously doubt anybody goes around in real life categorizing their friends and specifically listing who is connected to whom. Specifically listing your friends is an issue for control freaks - in real life, we don't need to explicitly state our friends.

So how does this apply to the web and "social networking?" I've always taken the stance that social networking needs to be handled "behind the scenes" by computers. This is getting a bit far beyond my skills, but sites should be able to figure out who is friends with whom by the metainformation generated by the user. For example, the fact that I constantly reference Terrence and Yush in my posts is a sure indication that I consider them a "friend." I'm sure most of you who read this journal are aware of who my friends are, and I've never had to explictly make a list of them. This is the way social networking sites should work.

In fact, I seriously doubt the necessity of even having sites that exist solely for the purpose of creating social networks. As the Internet matures and standards like FOAF catch on, computers can begin to figure out who is linked to whom and create a Friendster that isn't bound to a single company ... the Internet itself will serve as one massive social community!

I've always developed Tabulas as a tool for individuals - there's a few community features (which I've always wanted to expand), but the reason why Tabulas will succeed in the future is because it simply does offer reasons why people use the site. Look at the (superlame) slogan I use: "Tabulas: Chronicle your Life." Tabulas is about letting people efficiently document and share stuff about their lives ... and meanwhile I use all the metainformation generated by Tabulas to create "true" social networks.

Remember the moods metadata I generated? Remember the interesting referrals data that showed who the "true" supernodes of the Tabulas community were? Sure, they are both incredibly crude implementations of what I think social networking should be, but you get the idea.

Posted by roy on June 5, 2005 at 08:16 PM in Tabulas | 6 Comments

3:11 AM, currently listening to Star's "Calendar Girl"

i dreamed i was dying as i so often do
and when i awoke, i was sure it was true
i went to the window, threw my head to the sky
and said, "whoever is up there, please don't let me die"

but i can't live forever
i can't always be
one day i'll be sand on a beach by the sea
the pages keep turning
i'll mark off each day with a cross
and i'll laugh about all that we've lost

. . .

I was recently inspired by a post ("How to become an early riser") into changing my sleeping habits.

College students are notorious for screwing with their body's biorhythm, but I've taken things to a whole 'nother level. Back when I was a freshman in college, I went through a phase (for about 3 weeks) where I converted sleep schedule such that I slept about 8-10 hours every other day. In essence, I ran 36 hour days. This was back when I was a hardcore freelancer and still learning all the ins and outs of webdesign and business. Oh yeah, I had classes too (*snarfle*).

In any case, the post inspired me to try to wake up by 730am every morning. I decided Sunday that I was going to DO THIS NO MATTER WHAT starting yesterday. The post (correctly) makes the point that waking up early has a high correlation to increased productivity (whether it's an actual causal relationship is debatable - I've always felt that in the morning I'm confronted with Lazy Roy and Diligent Roy. Lazy Roy wants to sleep in - if I let Lazy Roy dictate my morning, Lazy Roy usually dominates for the day).

So yesterday ... I found myself awake at 4am. No worries. I'll sleep extra tonight, just like the post said! So I woke up at 8am (a little off the mark, oh well!) and started my day.

It is now 318AM and I find myself awake again. And I'm not tired. If anything, I feel like my mind is racing into overdrive right now ... and I know I have to wake up in roughly 3 and a half hours and start my day once again.

So basically I'm just going to bed at the same ridiculous hour ... but I'm just waking up at another ridiculously early hour. But as long as my body doesn't complain, I shouldn't whine, right? More hours awake = more chances to get stuff done.

. . .

I've been making a concerted effort at growing up. I've felt over the past few months I've really let myself slide in terms of self-control, responsibility, and diligence. I'm trying to get organized with my life (which is why I asked about todo lists), trying to cut down on unnecessary expenses (last week I only spent 2/3 of my budget!!), and trying to get into a good rhythm so I can be a productive bee.

. . .

But one of the problems I'm facing is the inability to finish projects. I never got AM done. I never finished my own personal webpage. I'm constantly in Tabulas development flux. It occurs to me that I haven't released any project or any release of notable worth since Tabulas 2.0! That's pretty sad, given the number of hours I've put in to all the projects!

So another personal goal I'm adding on top of getting my sleep schedule on track is to get some of these projects finished and out the door. I'm currently working on my workplace's stuff (8-10 hours a day), spending a few hours on Tabulas (1-2 hours) and spending 1-2 hours on a small fun project that I'll be releasing by end's week (if I meet my personal goals!).

In an effort to give myself a much needed confidence boost, I'm going to spend time on the home.tabulas.com page. It's small enough that I can get it done in a few days, but big enough that it'll make a big impact on Tabulas as well as give me a sense of well-being ("You're being productive. Good job. Have a cookie. NOW GET BACK TO WORK").

. . .

Sorry for all the really boring technical posts as of late. My mind's been racing ... and I just need to get it down.

Posted by roy on June 7, 2005 at 12:25 AM in Personal, Ramblings, Web Development, Tabulas | 7 Comments

The Cracker Barrel has, quite possibly the best complimentary detail of any restaurant I've visited.

They have a little mindteaser game at the table. There is an online version of the game that you can play.

Anyways, it said if you have 4 pegs left remaining, you were an "eg nor am moose." I kept saying that phrase out loud, wondering what it meant, until my dinner friend told me it was "ignoramus" ... phoenetically. Boy, was that a sad moment for me.

Unfortunately, because I'm a moron, I was unable to solve the puzzle at the table. My lady friend was most distressed and was not impressed by my obvious lack of intellectual prowess. (Before the comments start popping up, we are good friends going back four years, so don't get any dumb ideas).

This got me to thinking. A very good way to impress a lady on a third or fourth date at the Cracker Barrel (when you're out of the "let's wow her" stage and are at the "let me try to look like a homely down-to-earth type of guy" stage) is to go to the Cracker Barrel knowing the solution to the puzzle. Attempt the puzzle a few times and look frustrated. Then, cajole the girl into helping you with the puzzle. Do something like, "Ok, I'll go once, then you go once." Gently hint at the right solutions ... then when you solve it, it'll look like you two did it as a TEAM! And you TRICKSED the silly hobbit!!! SHE'LL NEVER CATCH ON!! SHE'LL THINK SHE MAKES YOU BETTER!!!

I mean, you should never do this. A relationship built on lies and cheating at a Cracker Barrel game is bound to end disastrously.

A good friend of mine is leaving Chapel Hill forever! Good luck with life, and stay safe ... thanks for all the memories :)

Posted by roy on June 7, 2005 at 10:05 PM in Ramblings | 10 Comments

"Sounds like someone's got a case of the Mown-days..>"

Just to help you get through this week ... watch this little video from the Muppets show. Two pink creatures and this muppet dude sing the catchiest song ever ... called "Manah Manah."

Muppet Show - Manah Manah (22 meg MPEG)

Manah Manah MP3

MANAH MANAH!!!!! (Sometimes I totally feel the dude singing manah manah... it's just one of those days sometimes... NOBODY GETS YA!!! EVERYONE EXPECTS YOU TO MANAH MANAH BUT SOMETIMES YOU JUST WANNA DO THE "NEERNER NEERNER NUHR NUHR" SOLO ... BUT EVERYONE JUST SHOOTS YOU DOWN!!!! BUT I FEEL YA!!!!)

Posted by roy on June 8, 2005 at 12:21 PM in Ramblings, Foolishness | 7 Comments

I don't normally participate in memes, but this one has some inherent value, so I'll bite.

easyjetsetter posted her book meme and tagged me to throw in my 2 cents.

I should warn you that I did not read any books throughout college. I avoided books like the plague; only recently have I been reintroduced to my childhood love of reading (you have NO idea how fast I tore through Tom Clancy books in middle school) ... so the list is somewhat recent. I also focus primarily on non-fiction books, so hope this is an interesting list.

Number of books I own
Roughly 80 or so. All bought within the past year from Amazon or from Barnes (that stupid membership card is killing me). Mostly non-fictional books, and mostly NYTimes bestsellers (even in books, I'm an addict to "pop" culture.

Last book bought
About three weeks ago (roughly), I bought Freakonomics by Steven Levitt and Stephen Dubner. I also bought The Lexus and the Olive Tree by Thomas Friedman as well as his new book , The World is Flat. I am currently reading The World is Flat, and am absolutely loving it.

Last book read
Sadly, the last book I completely finished was Aces and Kings by Brad Reagan and Michael Kaplan. Not a very impressive book, but being a student of poker, I was interested in learning about the background of some of the venerable poker stars. The rise of poker has paralleled the growth of the Internet ... so it's really interesting to see the stories of how these guys grinded out their living before poker got big.

Five books that mean a lot to me
I absolutely adore Hernando de Soto's The Mystery of Capital: Why Capitalism Triumphs in the West and Fails Everywhere Else. This book examines what forces have allowed America to succeed, and what can be done to help make the transition for those fringe countries trying to get with the globalized economy.

From my high school days ... Ender's Game by Greensboro author Orson Scott Card is my favorite fictional book of all time (low standards, huh?). I've recommended this to all my guy friends (it's a guy book), and they've all loved it immensely. The book iexamines the stresses and psychology of a child genius as he is tapped to save the humans from aliens (but it's not really a sci-fi book!).

I'm going to cop out and put 1984 and Brave New World as one book - and for obvious reasons.

Blink/Tipping Point/The Wisdom of Crowds/Freakonomics are also books that have really shaped the way I view the world. The power and intelligence of the masses is quite evident; as the internet allows us to become more collaborative, how much can we get done?

5 bloggers to tag
Let's hope you guys have time to do this: Matt Compton (the ultimate book expert), Terrence, Mikey Mike, Yush (although he's in Taiwan, maybe he'll have some time), and .... spaceinthewho.

. . .

The catchiest song ever. These guys are out of Berklee, and it's clearly evident they're looking to create the ultimate pop album. Indulging in pop albums is one of my guilty pleasures - I own a copy of Ashlee Simpson's "Autobiography," which is one of the better pop albums from the last few years. In any case, these guys got the image, the sound, and the swagger. I hope their album is good.

The Click Five - Just the Girl

She's cold and she's cruel
but she knows what she's doing
she pushed me in the pool at our last school reunion
she laughs at my dreams but i dream about her laughter
strange as it seems, she's the one i'm after

cause she's bittersweet
she knocks me off of my feet
and i can't understand why i don't want anyone else
she's a mystery
she's too much for me
but i keep coming back for more
she's just the girl i'm looking for

she can't keep a secret for more than an hour
she runs on a hundred-proof attitude power
and the more she ignores me the more i adore her
what can i do? i'd do anything for her

cause she's bittersweet
she knocks me off of my feet
and i can't understand why i don't want anyone else
she's a mystery
she's too much for me
but i keep coming back for more
she's just the girl i'm looking for

the way she see's it's me on her caller ID
she won't pick up, she'd rather be alone
but i can't give up just yet
cause every word she's ever said
is still ringing in my head
it's still ringing in my head
she's cold and she's cruel
but she knows what she's doing
knows just what to say so my whole day is ruined

cause she's bittersweet
she knocks me off of my feet
and i can't understand why i don't want anyone else
she's a mystery
she's too much for me
but i keep coming back for more
she's just the girl i'm looking for

Posted by roy on June 8, 2005 at 10:11 PM in Ramblings, Music | 7 Comments

This is primarily for those of you overseas in the Philippines, Indonesia, Malaysia, etc... how prevalent are cell phones? How ingrained into the culture are cell phones, specifically text messaging and camera phone picture taking? And what serves are popular for posting to the web directly pictures from a camera phone or text messages?

And if you do use these services, how do they primarily work? I'm guessing you use the text messaging feature to send the message to an email address that's already set up for you?

Much thanks.

Edit: Actually, everybody answer! If you're from the US, tell me your service provider and how well the whole system works for you.

Posted by roy on June 11, 2005 at 04:34 PM in Web Development | 14 Comments

Tabulas.com got a new front page today.

Some notes:

  • Implemented the user-hashing mechanism for protecting passwords. It's off by default (need to check that 'high-security' box to activate it)
  • Usability: XHTML 1.0 validation, semantic markup (try viewing without the CSS file, still looks fine, em instead of px, bigger fonts for readability, etc. etc.
  • No more javascript errors popping up left and right (a big problem on the old site)
  • Backend rewritten from scratch (again)
  • Moving away from the home.tabulas.com subdomain primarily because maintaining multiple subdomains is a bitch (can't share libraries as easily), and also because i think it screws up tabulas' pagerank (not that i'm into that stuff, but it's really frustrating to see non-tabulas related sites come up when i search for 'tabulas')
  • New login method - hopefully some of the weird login issues will be resolved ... using sessions on top of cookies, so this should help alleviate stress loads on the server
  • Recently updated journals and galleries used to cause a problem with the database server - it was a huge, inefficient SQL ... which was causing a ton of problems on the DB server ... so now I've chunked recently updated entries and galleries into a separate table which is used to generate this data. This means I can also update it every one minute instead of doing it every 12 minutes, and it won't kill the database server in the process!

Um yeah.

Posted by roy on June 11, 2005 at 06:07 PM in Tabulas | 1 Comments

I remember with great fondness the all-nighters I pulled with Paul, George and NeerajS in Davis library for some obscene chemistry exam. Part of the excitement was the prospect of actually learning something from Paul (I wasn't much of a classroom-attender, which caused problems with some professors, cause apparently the fact that I was paying them tuition wasn't enough ... no, they wanted me to attend classes The nerve!) while the other half was the excitement of what tangents we might discuss while "studying."

One night while we were studying, Paul mentioned that consuming wood alcohol would lead to blindness and maybe even death. Of course, being the smartass, George remarked, "Yeah, but I bet you'd get f'ed up real good before you went blind." That elicited a few laughs before silence fell over the table.

As I'm starting to skim over the same paragraph I've been reading for roughly 20 minutes, George remarks, "Goddamnit, Paul. My lab has a bunch of wood alcohol. Now everytime I work with it, I'm going to think about taking a little sip."

It's just like when the little voice in your head says something, and curiosity gets the best of you. The thought becomes louder and louder in your mind, and it consumes you. Of course, George was never actually dumb enough to try consuming wood alcohol, but I remember I got a few good chuckles in later labs whenever I had to do something with wood alcohol (much to my lab partner's bewilderment).

In any case, I was doing yardwork today when my dad remarked that the area under the hedges in our yard was a primo spot for poison ivy. Curious, I crouched down under our hedges, and sure enough ... there was TONS of poison ivy!

Now, I've never gotten poison ivy before in my life (I've also never broken a bone even with the nasty bike spills I took as a young'un), so I've always wondered whether I was "immune" to poison ivy. I would imagine all the time I spent traipsing around in the woods when I was younger would lead me to brush up against poison ivy or poison oak at least once... or was I just fortunate?

The little voice in my mind started saying, "Hey Roy ... take those gloves off, and rub the poison ivy on your arm! Then you'll really find out if you're immune to it or not!" At first, being a responsible adult (*cough cough cough*), I immediately discounted the thought. But the more I stood there and stared at the shiny poison ivy, the more the idea made sense. It was like the echo chamber...except every time the idea got louder and louder, and I started to trick myself into thinking it was a good idea.

Shouldn't we know these types of things? Shouldn't I know whether I'm allergic to bee stings (never been stung before) or poison ivy? It could be useful, some day! What if a situation arises where someone needs to run into an area infested with poison ivy to retrieve an errantly-thrown football? I could easily volunteer for the dangerous task, thus earning the respect of my compatriots.

Anyways, I must of been squatting there for only a moment or two before my mom came over and inquired what I was doing. I explained to her that I was thinking of taking a little bit of poison ivy and rubbing it on my arm to see if I was allergic to it, and she went ballistic.

Calm down, mom. I was only joking... or was I?

Boys are stupid, throw rocks at them

Posted by roy on June 12, 2005 at 03:20 PM in Foolishness | 3 Comments

I don't think I've seen a movie poster as perfect as this one:

Movie info

. . .

Big milestone today... finished the first feature from beginning to end on the new Tabulas control panel. The first one is always hard because it's the one that you use to develop your UI tools; I wrote all the skinning and templating stuff so that everyone gets formatted nicely.

The first feature I completed was usericons. The UI stuff is still not done, but here are the important things that I got done:

  • All output messages are being drawn from a centralized language file; this allows for easy translation into other languages
  • Editing/deleting/renaming/replacing icon images can be done one at a time, or you can use the checkboxes to edit multiple ones at the same time (a power user tool)
  • I rewrote the communication script between the tabulas control panel and the data servers. In essence, there's a private API being used, and it needed cleaning up (in terms of method calls and such, and the horrible spaghetti code!)

. . .

The database is starting to die, so I need to throw more stress at the hard drives, so I may start caching stuff. I didn't want to deal with this before the 2.1 templating engine rewrite, but there needs to be a stopgap measure of some sorts (and I'm pretty sure I can write the code well enough so that I can just copy it over to 2.1). I'll be writing the simplest of simplest caching engines - the system will be responsible for storing timestamps of items as they get updated (for example, the last time someone's particular tagboard was updated); everytime the server receives a request for someone's tagboard, it will first check to see if there is a cached copy that is not older than the last update of the tagboard. If the cached copy is still fresh, it will simply read the cached file. Otherwise, it will refresh the data from the database and generate a new cache file. Very simple. Should only take a few hours to build a rough prototype and throw it into Tabulas, since tagboards were shut down to stave off the death of the database server :)

. . .

Seems like everybody around me is going through some sort of transition stage... I guess this is pretty normal when you graduate from the nice collegiate bubble and your friends get scattered all over the nation cause of jobs. Plus the whole identity thing once you get a 9-5, working for the paycheck every other Friday. Personally, I'm not unhappy with my situation because I really think I got a great situation going at my current job, but I know that eventually sometime I'm going to want something more. Already I've been having longing to have a day when I can just wake up and hack around in Tabulas; it's been so long since I've developed any features that the user's want.

But I guess that's just growing up.

Currently listening to: Keane - We might as well be strangers
Posted by roy on June 15, 2005 at 12:11 AM in Personal, Web Development, Tabulas | 7 Comments

Wrapping up my day at work now. One of those rare days when I did a lot, but accomplished nothing. I took today to tackle some of the lingering items on my todo list that I knew were probably not going to make it into our 1.0 product from my end... but given my "required" todo list getting shorter and shorter, I decided today would be a good day to "chase my tail."

. . .

In any case, this is a most distressing image. Be prepared to be very :(

. . .

Watching Batman Begins tonight. I've been looking forward to this movie FOREVER!

Posted by roy on June 15, 2005 at 03:55 PM in Ramblings | 9 Comments

No spoilers, so don't worry.

I've been looking forward to Batman Begins, directed by Christopher Nolan of Memento fame ever since seeing a preview for it months ago. I'm not a big fan of the Batman movie franchise in general - quite honestly I remember watching all the earlier Batman movie's but not being very impressed with them at all.

The movie was friggin awesome. I absolutely loved it. I had a big-ass smile from the beginning straight to the end because the movie was everything I expected it to be.

The storyline is a bit clunky in only a few places, but for me, the character transition from Bruce Wayne to Batman was very well done. It didn't drag, but certainly wasn't rushed like the "turning" of Anakin (ugh). I really liked Christian Bale as Batman/Bruce Wayne ... he was very well-cast for this role (plus he kicked total ass in Equilibrium).

I heard a long time ago that Darren Aronofsky (Pi, Requiem for a Dream) might write and direct this Batman (Source), which had me under the impression that this movie would be a completely character-driven gothic view of Batman, but Christopher Nolan does a wonderful job of balancing out the character and the action in this movie.

I also LOVED the fact that there wasn't too much focus on the retarded love interest. I'm not sure why directors/writers/studios feel the need to dilute the value of a wonderful movie with a stupid love interest that seems forced. I'm not saying that love interests should be removed, but some movies... they just don't belong. The love interest in this movie seems almost pointless, but I guess it's always good to have SOMETHING that would humanize Bruce ...

Superbly cast, well-paced, action-packed ... all met my expectations. A great movie to start off the summer.

Posted by roy on June 16, 2005 at 11:39 AM in Ramblings | 5 Comments

Wenn ist das Nunstuck git und Slotermeyer? Ja! ... Beiherhund das Oder die Flipperwaldt gersput.

Posted by roy on June 16, 2005 at 04:20 PM in Foolishness | 2 Comments

Basketball fans, which is worse:

  1. Blowing a 2-0 lead in the Finals by being blown out two consecutive games in a row
  2. Being scored on by Darko Milicic (and all the implied things that go with this)


Currently feeling: impressed
Posted by roy on June 16, 2005 at 08:55 PM in Sports | 14 Comments
The most effective way to criticize U.S. behavior is to frankly acknowledge that this country should be held to a higher standard based on its own Constitution, laws and traditions. We cannot fulfill our responsibilities as the world's only superpower without being perceived as a moral authority. Despite the risks posed by terrorism, the United States cannot indefinitely detain people considered dangerous without appropriate safeguards for their conditions of detention and periodic review of their status. - From the Washington Post
Posted by roy on June 18, 2005 at 02:03 PM in Ramblings | Add a comment

One of my best buddies, Potter, is now back in town for the Duke MD-PhD program. We befriended one another in high school... and then he went off to Princeton for undergrad (turning down the esteemed Morehead Scholarship to Carolina in the process). In any case, Potter, Hao, and I had dinner at Charlie's Chinese, then headed back to Potter's for some chill time in the gazebo his brother built from scratch (this deserves a separate entry).

We all engaged in lively conversation (this rarely happens with me) about life, technology, and future plans. One of the interesting points of conversation was the pervasiveness of cell phones. Potter and I (in general) see eye-to-eye on things (our conclusions are the same, but the methods in which we get there are usually completely different), and we made a point that cell phones were changing the dynamics of social contact in a negative way.

People who carry cell phones suddenly become obligated to be "connected" all the time. People who call you expect you to answer - leaving your cell phone off or not answering it suddenly becomes a big headache for the person calling you. Suddenly, since the phone is mobile... you're always expected to have it.

But what's worse is that most of these calls have no real purpose - they are just idle chit-chat to "catch up" on things. How many times have I gone to the supermarket and heard the lady in Aisle 3 talking to her friend about what her co-worker did today? This, in and of itself, is not horrible.

What Potter pointed out was the absurdity in picking up a cell phone call while you're hanging out with real life people ... and engaging in a conversation with somebody else. One could argue that you are being polite to the person calling (since we've already established that not picking up calls is "not cool"), but what about to the people around you? What more are you looking for in terms of socializing than seeing people face-to-face and talking to them? Using a cellphone to talk with some random friend?

This is not to say that I think proper etiquette is ignoring phone calls - I used to think like this, but I've gotten around to picking up the phone (even while I'm doing other things), but the phone call is usually quite short. When Potter first called me to let me know he was in town, I was at dinner with someone else; I told Potter I couldn't chat now, and he understood. The value of conversation from a person right in front of you is worth far more than that of someone on the phone.

And what about when you're driving with some friends, blasting music loudly? Someone's cell phone goes off ... and all conversation grinds to a halt. The music is turned down, and everyone listens in on that conversation. If the receiver of the call is smart, they'll hang up as soon as they can (assuming they even pick it up). But it's poor etiquette to ruin the experience of others in the car for one phone.

I remember while I was teaching in Korea, my co-worker Joseph also had very similar views to cellphones. He carried one around (only at his girlfriend's behest), but he would *never* pick it up unless he knew it was important. His mentality was, "If it's important, they'll leave a voicemail." But one of his main gripes was that cell phones encourage people to be late to social events.

For example, if you're supposed to meet somewhere at 9pm to go barhopping, your ass is usually on time ... or else the group leaves. But with cell phones, people suddenly feel like they can be late ("Oh I'll just call"), and this irked Joseph to no end.

That's not to say that cellphones aren't valuable - they are incredibly useful. I just don't like how people place such a high priority on cellphones so they ruin the environment around them. Pick up your cellphone discreetly, please.

Currently listening to: The Clash - Lost in the Supermarket
Posted by roy on June 18, 2005 at 05:40 PM in Ramblings | 5 Comments

No more excuses. I am not posting until Tabulas 2.1 is out the door.

See you on the flip side.

Posted by roy on June 19, 2005 at 12:25 AM in Personal, Tabulas | 18 Comments

2.1 isn't done. Sorry. What can I say? I have no self-control. But I have a Tabulas-related post for you to make it up for you! Like you REALLY care!!!!!!!!!

(Things are taking forever)

The feature list for Tabulas 2.1 has been finalized, and I'm releasing it here: http://www.tabulas.com/2.1/. These are features that will be added to Tabulas for the 2.1 release. I have been working on them when I can spare time from work, and it's coming along nicely. It's a pretty ambitious list, but I've got to aim high.

Let me know if you think a critical feature is missing from there :)

Posted by roy on June 25, 2005 at 02:10 AM in Tabulas | 17 Comments

Congrats to Marvin (#2), Raymond (#5), Sean (#13), and Rashad (#14) for getting drafted! Go Heels!

I still got hope Jawad goes early 2nd...

Milwaukee and Toronto are absolute retards.

Posted by roy on June 28, 2005 at 06:21 PM in Sports | 1 Comments

I think if there's one thing website users take for granted, it's the fact that browsers crash and that data must be "lost."

For example, let's say I am posting an entry to my Tabulas using this crappy old control panel. What if I were to accidentally close my browser? I know that if this happened to me a few weeks ago, I would have cursed my stupidity, but I never would have blamed the site.

It occured to me yesterday that it really shouldn't be that hard for autosave functions to be built into websites; especially sites like Tabulas where people have a tendency to write longer entries. Imagine the JOY of a user if they were writing, their browser/computer crashed, they cursed, they signed online, and saw... the entry still in their browser! I have yet to lose an entry due to browser crashes (knock on silicon), but I have lost huge amounts of text on other sites (LJ back when they had no servers; this is pre-Tabulas)

Technically, I don't think it would be horribly difficult to pull off.

On the backend, you would have a receiving script that would accept two values: username and the entry. The backend script, whenever it receives any information, would create a temp file (maybe something like /tmp/roy.txt).

On the entry page itself, there would be a JS script that would listen. The idea is *not* to add any type of user-oriented actions; I want to limit the number of buttons displayed to the user, so having a 'save' button is not what I want. I'm thinking of just having a JS function count the number of keypresses on a given textarea, and execute a XMLOverHttp request for every 128 keypresses (or 256). So basically every 128 characters you typed, the site would take that data and save it to some backend without you knowing! When you hit 'submit,' the site would delete your temp file. So the idea is if you accidentally leave or your computer crashes, the site has a somewhat fresh copy of whatever you last typed. Of course, if you opened up for a new entry and the site detected a temp file in existence, it would automatically fill out your textarea with that entry.

I'm not sure how memory-intensive it would get on the client side (wouldn't be anything more than a simple onkeypress and storing a counter), but it would definitely be lightweight on the server side (no db hits; just a simple receive and dump it into a text file).

Food for thought.

Posted by roy on June 28, 2005 at 11:45 PM in Web Development | 10 Comments

For those of you who know Ed in real life, he's has opened up a Tabulas. Given his first few posts, I'll probably be referencing him quite often here.

Also, happy birthday to Han.

Posted by roy on June 29, 2005 at 09:18 AM in Ramblings | 3 Comments
« 2005/05 · 2005/07 »