The social

May 9, 2008

I went through my older posts today, and was reminded of the Facebook kerfuffle that even had luminaries like Robert Scoble* & Rodney Rumford engage the points I put forth (and Dare Obesanjo do a concern-troll boo-hoo drive-by, without contributing anything of value either way).

I feel spectacularly vindicated.

I said it then, and I’ll say it now: Facebook is not a paradigm shift.

What was the biggest Facebook issue in the past year? People should not be allowed to play Scrabble on it. No, really. I could care less one way or the other, and there might be an interesting legal dust-up over this, not to mention a “change-it-just-enough-to-not-get-sued” campaign on the part of the developers… but in the end, it is all vindicating my basic points:

  • Nobody cares.
  • Scrabble is your biggest draw?
  • Who the hell is sufficiently boring to play Scrabble online?
  • How is this better than, oh, Yahoo! Games?
  • Nobody cares.
  • How many people do you know on Facebook? I’m at a grand total of 0.
  • What does Facebook do that I cannot do through e-mail, MySpace and IM?
  • Nobody cares.
  • Where’s the there?
  • Why should I be on Facebook (or Twitter, for that matter)?
  • What does it do for me?
  • Nobody cares.

There have been no moneymakers, no new penetrating apps, no new killer apps, just molasses-like expansion into the original demographic.

Yawn. And then? Who is making money? Off of what? And how?

You know what a paradigm shift is? Microsoft allowing XNA games on Live Arcade. It’s a game-changer. It truly changes the rules of the game. That does not necessarily mean good will come of it, but it does change things. It allows people to do things that were impossible before… in the case of XNA games on XBLA, it’s “hello 15,000,000 users… download the demo of my well-reviewed-by-peers game that will cost you nothing to try and, hey, pick it, $8 to download”. If I were, oh, PopCap, I’d be freaking out. And not in a good way.


Speaking of nostalgia: I would KILL for the issue of Kijk (somewhere between 1991 and 1994, I know it was a June issue) that has my original 50-line GW-BASIC version of Tetris in it… heck, even a scan of the relevant page. Anyone helping me to obtain that issue will have an unlimited tab the next time I visit The Netherlands. Oh, Nico Baaijens… where art thou?


* Dude, change your font. Times New Roman makes the baby Jesus cry. I’ll write the CSS for you if need be, if only to stop my eyes from bleeding.


Normalization I

May 9, 2008

I’ve wanted to write a somewhat seminal treatise on my views on normalization for quite a while now, and have so far failed to start one because, well, it seemed that there was too much to say on the subject for just one post.

Faugh on that. It’s been bubbling in my mind for far too long, and frankly, with me grokking WCF and WPF aside from fixing bugs for 9 hours a day, I need the room in my head. So here goes.

Ground rules:

  • If you feel the need to name an entity or table anything along the lines of “Entity”, or “Object”, or “Property”, you are going too far. Take a deep breath. You are building a data model, modeling a reality. You are not modeling a model that can model the world. Such a model is called an RDBMS, and it is the system you are using to do this modeling.
  • If you feel the need to append a number to any table, database or field, you are not going far enough. A number signals duplication, duplication signals that you are modeling a list within a single table, and that signals that you need to create another entity.
  • Unless forced to, every entity should be an actual “thing”. If you cannot describe to the layperson what is stored in a table in under two minutes, you might be going off the deep end.
  • The model makes the rules. One way or the other (be it through non-nullable fields, check constraints, unique constraints, triggers or flying Oreo monitoring cookies), the data model makes sure that there is no way to fart on reality.

For the record, let me throw in my rules for database nomenclature for completeness:

  • No type prefixes, ever.  No tblWidget, Widget.
  • Table names that describe an entity are the generic, shortest term for that entity. Singular. No SalesPeople, no People, Person.
  • Many-to-many relationship tables are named for their component parts.
  • Every table has one primary key. A single field, named for the table with ID appended. Compound keys do not exist. If you think they do, please move along.

Now, these are neat rules, you say. How would you actually go about modeling something real-world?

Well, let’s tackle the rules on a real-world problem, shall we? I will update the above rules with new things that strike me as we go along.

Let us tackle what WinFS proposed: generic contact management.

Very well, let’s begin. First question: our base tables. Do we start with a Contact table? Sounds good, nice and generic, does it not? Sure, but… what is a Contact? I don’t know about you, but I don’t know any Contacts. What I know is businesses and people. Which, by the rules I stated above, gets reduced to Company and Person. So, here we go.



Yikes. Road bump #1. I have written extensively before on how bad just modeling a name can get. Well, let’s punt that puppy for now. It is a sub-problem that we can tackle later. For now, allow me to say “Name” where I mean “the 10 fields that comprise a full name” for now. Incidentally, the temptation for “Contact” should be curbed once you consider the non-communal properties between the two. Call me pedantic, but it’ll be a cold day in hell before I put a BirthDate field in a Company table. Or, for that matter, in a Contact table and have it be blank half the time. It forces enforcement out to the business layer, and that’s a no-no. Hence the above “the model makes the rules” rule. The business layer enforces business rules, the model enforces reality. The differences can be subtle at times, and only experience gives a good feel. Still, here’s the rule of thumb: the model should enforce that anything retrieved is something that can actually happen.

Here are some considerations:

  • People do not have a “business address”. They work for a Company, which has an address. It seems we might want to model a relationship there.
  • There are different addresses for both types. Physical, mailing, booty call — there are simply differing types for differing purposes for
  • How do you model “work phone”? It doesn’t really belong to the person. It doesn’t belong to the company. It belongs to the relationship between a person and a company. You could call such a relationship “CompanyPerson”, “PersonCompany”, or if you want to be a bit more a propos on the matter, “Employment”. Still, no matter what the actual name, that’s where it rightfully goes.
  • Things can get seriously silly, especially if you want to keep history. For example, let me pick the most simple, the most basic, the most immutable of all properties a person can have: gender. Now consider sex-change surgery. About the most immutable property, it turns out, is date of birth.

Feedback is welcome. I am serious about modeling this, and modeling it for keeps.

Ah, Rodney… NOW I understand Facebook!

May 8, 2008

I check in on Facebook every now and then. I am sure that someday, somehow, it’ll cease being a waste of time. I know, because Robert Scoble told me so.

But today, I feel enlightened. Rodney, as it were, slapped me in the face with the truth:


Yes, that is an actual screen-shot. I fired up my trusty Live Writer right away, because this is just precious. Now, let me go see what the thing actually does

Hot interim live-blogging action: why do these applications, vying for your attention and mine, make it so fucking hard to figure out what they actually do? Oh, wait. That in and of itself might be a hint.

More hot live-blogging LiveCopter 27 action: there is no actual page within clicking distance on Facebook explaining what the magical BitchSlap! applet does. Forgive me, but why the flying fuck would anyone care at this point?

We are now truly entering into the special realm of futility previously monopolized (in my world) by Expander. Now, this one is exquisitely meta. You add this application to your application suite on Facebook, a mildly viral site that intends to aggregate your life, and bother your friends and acquaintances sufficiently for them to join just to shut you up — and then, presumably, move on to do the same to theirs. In a social sense, the online equivalent of a mild, communicable itch: annoying, but tolerable. This application’s entire premise is for you to bother people that you know with A) an invitation to install the mother (of course), which will B) automagically share your network with theirs, and vice versa… the benefit, for some reason, being that you get to be in touch with people that you know but don’t know to get a hold of, but are able to get a hold of through your friends. This is assuming that I want to talk to friends of my friends… which, excepting some spectacularly fortuitous exceptions to the rule I am doing a pathetic job of formulating…


Look, I watched Serendipity and I hated it the first time — I do not need a warmed-over Internet version of same. So what, specifically, is wrong with apps like Expander? Well, mainly: it is being viral for being viral’s sake, and it pisses me off. It makes several asinine assumptions:

  • I have a pressing need to talk to someone
  • I am unable to get in touch with anyone I want to talk to
  • I am sufficiently retarded to be unable to stay in touch with those I want to stay in touch with
  • No, really, I have no other means whatsoever to get in touch with these people

It’s a basic, blatant grasp to go for the “I need to be popular” gland, and this is a spectacular example of there being No There There. For the record, I would have never gone trolling for this, but hey — every time I log on to Facebook, I see the activity of my friends. The problem is that 2 out of the 3 friends I have on Facebook are professionals in the Web 2.0 field, and as such do a lot of adding and removing applications. Hence the entire premise of this post — and so much baffled head-shaking my neck is now the best-exercised part of my body. And I do wish I were kidding. For most of the writing, the applications, the content, and by extension and (hello, root cause), the people in the 2.0 ecosphere, my thought bubble reads: “Okay. And? Great. So? Fan-mother-fucking-tabulous. The point is?” Even doing the exquisitely basic research required to write a presumptuous post such as this one becomes exhausting.

Now, in the preceding paragraph, note “2 out of 3”. I am very much a social leper, but I am not that bad. Yet. It’s simply that whomever you bring Facebook up with… doesn’t care. 28,000,000 people started a profile? Talk to blogspot. No, really — you should.

Anyway, I have been trying to avoid the term for weeks now, but I’m done with avoiding it. I have challenged the luminaries in the field, and I have gotten respect from them all (well, with the exception of Dare Obesanjo) — but, as expected and somewhat luminous — no actual public discussion.

So fine… the term is “fluff”, and it abounds. I think the basic point is still lost on people inside the 2.0 echo chamber. The 1.0 bubble seemed based on the premise that people would much prefer to spend their money on things they do not need online than they do at the store. Delusion intensified to the point where the meme became that people would actually prefer replacing their real shopping with online shopping. That worked really well… until the first time an actual customer had to deal with the actual jack-ass that is the average UPS delivery guy. This is worth losing the instant gratification of carrying the actual item home over?

People can already share their pictures. They can already chat. They can already search for their old classmates (hint: it’s called Google). The there is not there.

The ground-swell revolution will not happen, because you are offering people things they already have. You are, in a sense, trying to sell people pet food online rather than in a brick-and-mortar store. You are selling evolution, and that means you have to be better, more convenient, free and (very, very important on the modern Internet) free of annoyance. Your mousetrap had better be free, have self-extending legs, an infra-red homing device to find the darned critters, fire-and-forget poisoned dart killing system and it had better take its kill out to the trash by itself — or, if so programmed, bury it under the designated fruit tree to aid in fertilization.

Yes, the bar is that high. Deal with it.

Remember when spammers spoke actual languages?

May 8, 2008


The one on the bottom is my favorite. Not even a link. Ixnay on the reproducingay, please?

Risking sacrilege by paraphrasing Douglas Adams: spammers will be the first against the wall when the revolution comes.

I wonder why…

May 8, 2008

…rubberneckers get the unfair advantage of having a rubber neck. Here we all are, with overly fragile bone-tendon-sinew-ganglion hybrids, and they get nothing but rubber. The irony of it is, rubberneckers seem to abuse their advantage at the worst possible moment (I think, just to rub it in): someone just crashed their overpriced piece of automotive non-excellence into a bridge abutment, and they get to use their necks to stare… when I think the people actually involved in the crash would be very much interested in having a rubber neck to avoid the quadroplegia that is about to ruin their lives permanently.

I wonder why I get so many strange looks when I express these thoughts.

Revenge of the mutant Facebook from Mars

May 8, 2008

[ My response to Robert Scoble on Facebook: ]

It’s whining about privacy settings. Maybe we’re not the new and improved extra-crispy home-style friends in Facebook world that would allow for this?

Sorry for taking two days to get back to you — in a sense, it did prove my point: too much time over the weekend got spent on me writing blog entries. Which, with my flow-of-thought style of writing, did not even get a review (I DID have to puppy-proof our gate this weekend, for example), and because of it came out somewhat incoherent.

To respond to your earlier message: I’ll start. It riffs off of the half-baked earlier post I did:

Facebook as a platform will not work unless it goes platform all the way. It asked me for my GMail password, and then asked to send them the prerequisite, spammy, oh-great-another-dip-I-have-to-ignore type “Come join this network” message. Pros: it allowed me to opt out. Cons: nowhere, no how, did Facebook explain to me what wondrous things would be possible with it knowing my GMail password. Because there ARE oodles of good things it could do with it. Again: if you want to be a silo, be THE silo. Point in question: why didn’t it ask for my Yahoo! password for it to do the exact same thing?

I will reiterate that Microsoft, right now, is in a position to make a killing in this market. They HAVE the desktop. They HAVE all the services required to fulfill all these needs (search, photo sharing, online storage, online maps, the works). They even HAVE the “this has been done before but never this well” product in Windows Home Server. They are in a prime position to be THE silo, but this would involve cross-division coordination, and from what I read online, that is just not going to happen because of it’s (laudable) aversion to Architecture Astronauts. Still, imagine:

– Outlook support for their silo.
– Outlook Express support for their silo.
– Windows Messenger support for their silo.
– MSN Messenger support for their silo.
– Hotmail support for their silo.
– Windows Home Server support for their silo.
– Windows Vista support for their silo.
– On XP, Windows Desktop Search support for their silo.
– Windows Mobile support for their silo.
– XBox Live support for their silo.

The scary part (well, for competitors) is that it would not take all that much to do for each product group. With connectivity going through the roof, Microsoft is on the cusp of unifying social life, and they’re just not doing it. And they’re not going to precisely because of the same strategy that has made them the juggernaut they are: focussing on getting something out the door that is Good Enough And Actually Works(TM). Still, think of the true unification possibilities. XBox Live friends should show up on MSN Messenger and Outlook. Outlook should automatically back up my contact list to the recently rebranded SkyDrive. Vista should split documents into “My illegal music and pr0n” and “My actually important documents” folders, and automagically back the latter up to the local Windows Home Server if available, and have it synchronized with their SkyDrive account one way or the other (the Home Server, if present, can do this all on its own). If properly polished, this is the one thing that can move people from one silo to another. Remember, zero-sum game.

As for Facebook? I hope somewhere, deep inside the bowels of their main development facility, there are at least a few competent developers working on a browser plug-in that truly, unobtrusively and competently harvests a user’s hard drives for any and all information that it can aggregate: contact lists, photos, MP3 play lists, et cetera. Right now, I’m not seeing that. I see selectiveness, and that is exactly the wrong mentality. Remember, Microsoft has made just about a trillion dollars by now pursuing an insanely zealous quest of working with everything (except, perhaps, direct competitors).

Again, I have more to say on this, but this is all I have time for right now. Well, I do have time for one more spammy thing: cross-posting this to my blog. Forgive me.

[ I cannot will not disrespect Robert’s privacy by cross-posting the actual thing I am responding to here: A) If you can’t figure it out, I would rather you not read this blog in the first place and B) I am still positively and spectacularly amazed at the willingness of the Web 2.0 proponents to engage in actual factual discussion (Dare Obesanjo notwithstanding). It is exactly that active effort that is the one and only hope for the current bubble to avoid its progenitor’s fate: the actual realization by those inside the bubble that said bubble might be somewhat different, and somewhat less attractive as a value proposition* than blue chips (although, and rightfully, so, there seems to be an awful lot of readjusting going on on that front). ]

The short and skinny of it is attempting to start a true dialogue, and I think we’re getting there.


* Yes, that is an active knock on marketeers. Really, why would you worry one way or the other anyway? They will be the first ones against the wall when the revolution comes, anyway**.

** If you did not get that quote, please… read your Douglas Adams and get back to me before you say anything. Discussion, great; well-informed disagreement, groovy: clueless ad hominems from the truly dyslexic and spectacularly ill-informed: priceless***.

*** Yes, that is irony.

Undiscovered gems on TV

May 7, 2008

Two shows saw for the first time tonight (and for where-the-heck-is-the-remote type reasons, on the same channel: SciFi), and which are worth watching — albeit for spectacularly different reasons:

Highly recommended.

Facebook, again

May 7, 2008

I am amazed at the willingness of the Facebook aficionados such as Robert Scoble and Rodney Rumford (in reverse order of relevance and willingness simply because I do not feel like switching the names around) to engage in debate on its merits. If nothing else, such confidence and stunning open-mindedness is warping my views on the topic — albeit in a limited way, of course. 

Thanks for commenting on the facebook video. I tend to disagree with your points, which is cool.

You’re quite welcome, thank you for responding by the way, and oh… I think so too. I think I have done a poor job of truly expressing my views so far, and have come off spectacularly negative when hopeful would be a better description. More on that later.

“Most people do not keep an address book on their PCs” What is Outlook?

Outlook is not used by home users. It really missed its window for the home user: being a full aggregator of any and all address lists, calendars, contact information in general, et cetera, you catch my drift. List the services people actually use all the time that Outlook is spectacularly oblivious of. Yes, I know, 2007 is somewhat better in this regard, but where’s the “synchronize my address book with GMail” option? Where’s the “synchronize my contact list with Yahoo Messenger” option? It’s not there. And over time, I can tell you first-hand, people drift away. Thinking things over, I realized that I have already been locked in silos: I have my Messenger Contact list (as trimmed as it is, for obvious reasons), and my GMail address book. Just today, I went through all the different e-mail addresses in my GMail account to get a hold of my dad, because that’s the only place I keep his addresses. I have Outlook (2003, if you must know) installed on all 4 machines in my house, and nobody uses it.

In the comments for the video in question, Rodney elaborates somewhat:

Facebook apps are definitely for a niche within a niche. It just so happens that the facebook niche (32 million) happens to be a significantly large niche that continues to grow at a rate of 150,000 new users per day.

You are correct: If i ask 100 people about the platform possibly 1 or 2 will know about it. 5 days ago i was at circuit city and asked 4 people about it. 1 of them knew about facebook applications and thought it was cool and liked a few applications. These people were all in their 20’s.

I happen to be a believer in disruptive technologies that make peoples lives easier and/or more interesting: I believe facebook apps fall into that niche. It is ok to think i am totally wrong and missing the point. Thanks for commenting.

He very, very much has a point. Especially when you consider his full-fledged response, here. Let me go step by step here…

He (Sjoerd Verweij) does not think people will find applications useful. Hmmm. He used one (video is actually an application on the facebook platform) to discover content (from me) and used one to comment to me.

He proved my point that facebook is a new type of communication tool for me. He found my video on a facebook application, commented on a facebook application and I responded to him on the same facebook application.

I see his point, but at the same time truly feel he missed the point: me being on Facebook was about figuring out what Scoble‘s continuous hissy-fit about it was about. To reiterate at least part of my original point: I have three friends on Facebook at the moment. Scoble, Rodney Rumford and my wife (who followed me to Facebook to see what all the hubbub was about and returned with a decided “myeh“). Besides that, not a single soul that I know in real life has a Facebook account.

As for the remaining 3 points; you do not have to be tech savvy to find an application. Points of discovery for adding apps are everywhere (mini-feed, app directory, posted links, invites, notifications, search, friends profiles, news feed, email attachments, etc.). If an application is being used by your friends you will most likely be exposed to it without actually having to LOOK for it. If you can click “Add Application” you are tech savvy enough to add an app on facebook. ;)

Point well taken, but this assumes critical mass. Which I’m just not seeing.

People can actually search the application directory, so if they are looking specifically for an application that fills a specific need, they can find it based upon a keywords search query.

Search the application directory? Are you kidding me? Do you know what the most searched-for keyword on Google is? Yahoo. You’re operating on a different level. No, that’s not meant in a denigrating way. In a sense, we’re car mechanics debating the color of the Check Engine light. The average user doesn’t care. Why should they?

People do not have to pay for applications to use them. They are free to use (this may change as the value proposition becomes greater for more sophisticated applications). The business & revenue models that are under the hood for these are varied. Some apps are ad sponsored, some are meant to be branding efforts, some are meant to drive traffic back to their main sites off of facebook. Some are meant to pull entire site functionality into facebook.

This smells of Web Bubble 1.0. I see what you are saying, but the danger of going off the deep end is staggering.

The other thing about facebook is that is highly addictive and quite efficient. I do not “waste time” on facebook, my life is much to busy.

I don’t see the “addictive” part at all. You want to know addictive? In my formative days, a perfectly worthwhile college education was sacrificed on the altar of playing MUDs. That particular addiction faded for a while, but is here now stronger than ever. I know people who can only rarely find the time to even talk to people who are not in their world: World Of Warcraft. I’m not kidding: they spend more time talking to people in their guild than to people they know in real life. Anyway, saying “your life is much to [sic] busy” is spectacularly disingenuous. You make a living off of this platform. Scoble is making a living out of talking about it. For just about everybody else, the people you quiz in Best Buy, don’t you realize how much worse things are?  Scoble has called these applications attention diffusers, and I think he was more right in that post than even he knew.

Data wants to be set free and it will almost always find a way to be set free via technology. So, I like being part of the facebook niche, it helps me manage data of many types quite effectively. So is facebook a platform that nobody cares about? I think not.

Like I said: until “many” becomes “all”, none of this will truly fly. This technology is not disruptive, because it is repackaging. Internet time, which used to be leisure time, has been packaged up and claimed, one way or the other, since 1998 or so. Realize that you are playing a zero-sum game now. Facebook is shockingly close, but I feel still not getting the point: If you want to be a platform, be a platform. Import every single web application and relevant desktop application that has more than 1,000 users. You will rule the world. The first site to consume every single data source will win.

As a random aside, I posted an extremely gross but (I feel) still pertinent analogy, which for some reason rubbed Dare Obasanjo the wrong way in every single way one can be rubbed the wrong way possible. Which, of course, rubbed me the wrong way, leaving my (in this case, luckily) under-visited blog with a somewhat acrimonious exchange in its comments. Wait. Isn’t that the life-blood of any good blog? Woohoo! Someone came on my blog and talked shit! (As a random aside, I am henceforth taking a stand and ditching the “farkings”, the “doo-doo”s and all of their overly PC ilk. This is my party, and I will fucking swear if I want to).

There’s more I have to say about this, but it will have to wait.

Facebook videos keep making my point for me

May 7, 2008

It is excruciating… people making my point for me.

Look at this.

Rodney, you are missing the entire point here.

  • Useful. Yes, think about useful. But you are talking about a platform you are building on here. Have you actually objectively considered the foundations you are building this on? For IT geeks: how well do you think the current market for Visual SlickEdit plug-ins is doing?
  • Make connections with data. Again, notice the loud whooshing sound. Rodney, people already have data. Lots of it. And you know what? They are somewhat reluctant to give it to you. Most people are starting to get interested in keeping it safe. Which is why I think Windows Home Server has the potential to be the biggest money-maker for Microsoft in decades. Which, considering their pathological inability to capitalize on what they do well, will never happen. Most people do not keep an address book on their PCs. What makes you think they are willing to share any pertinent information with Facebook?

A bit later, he talks about “don’t make me think” for a bit. For the uninitiated, he is referring to the paradigm where you do not make a user worry about things that they do not care about. I think he is missing the point on Facebook at the moment. The focus should not be on what people think about applications that they can install on Facebook if they so choose (for future reference, I have spent an hour on Facebook now and am still blissfully unaware of the existence of applications that you can install in the first place — and I have been an IT professional for the past 13 years). We are talking about subsections here. Let me cut this down:

  • People on the Internet
  • People on Facebook
  • People that care about Facebook sufficiently to return
  • People that are tech-savvy enough to find your application and add it
  • People that are looking for what your application does
  • People that care so much that might be willing to pay for it

Does this sound like a business model to you? If so, I have some great New Orleans real estate you should look into.

I think the point he is missing is that he is developing for a platform that nobody cares about. He would probably (forgive the straw-man argument here since I have no way of communicating with him — yet, har har) add “yet“. To that sentence. But still, the business proposition has not been made by anyone in the Facebook bubble: why would anyone care? what does this do that I cannot do elsewhere? why, pardon my French, should I give a flying fuck?

Tiers, revisited

May 7, 2008

From some of the private feedback I have been getting on my rant on 3-tiered development, it truly seems that I did not make my point sufficiently clear:

Tiered development is great, when done right and needed. See, I even bolded it. My point is that across 8 jobs on 2 continents with datasets up to 2.5TB and data structures up to 1,200 tables, I have yet to see a single instance where 3-tiered development was needed. I have seen several instances now where an application was designed to be such, but I have yet to see it in practice, let alone done right. In all instances so far, all tiers run on the client.

Forgive my cynicism.