Archive for May, 2008

Screws of fury

May 9, 2008

The next time you sit down in a public bathroom, the kind that has multiple, erm, outlets… look around you. Odds are that the stall has been assembled of lowest-bidder fantasy-wood, covered with lowest-bid, I’ve-had-every-grain-of-creativity-burnt-out-of-my-soul veneer. Odds are, it will be some type of off-white (called something spectacularly creative which, in the end, means, off-motherfucking-white), or something gray (I don’t even know what the marketing droids come up with for these, nor do I wish to know).

Now, look at the fittings. I mean the metal bits that hold the sub-standard plastic/wood slabs together.

Notice anything odd?

Look at the screws.

Odds are, you are looking at a phenomenon that, as far as I know, did not exist a decade ago. I speak of the type of screws that only allow for tightening by conventional screwdrivers. To put it another way, screws that cannot be loosened by a normal screwdriver.

If you do not know what I am talking about, you have never seen them and I hereby suggest you go and spend your time on something more productive than reading this post, since it talks of things that do not apply to you. Go play with your dog, write a novel, mow the lawn. Go forth, in short.

Still here?

So you have seen them. Someone sat down, produced the blueprint and caused to be produced this (I could be wrong here, but this is the sentiment it provokes in me) most passive-aggressive odds-and-ends bit of hardware: the screw that goes in but does not come out.

What is the motivation behind this? No, seriously, think about this. Why, over a stunningly short span, have all new developments chosen this type of screw? To me, it implies that these screws are being used for a reason. Obviously, they are using these puppies because people were taking bathroom stalls apart.

Which, of course, leads to the next question:

Who the flying fuck takes bathroom stalls apart?

Where, pray tell, is this roving band of people taking public bathroom stalls apart (doing so, for that matter, in some way, unbeknownst to people actually using them at the time)? Is there a Bathroom Stall Parts Mafia that I have been previously unaware of?

Christ on a crutch, what is going on here? Am I missing something?


Fun with spam

May 9, 2008

I am torn. Is this pedophilia or a bed-wetting fetish?


No, I am not making these up.

Fun with spam

May 9, 2008

I’ll take the middle one.


No, I don’t make these up.

I wish I made it up

May 9, 2008


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.