Programming, Policitcs, and uhhh Pineapples.
# Monday, October 05, 2009

Ordering Wood Floors Online

Monday, October 05, 2009 2:16:48 PM UTC

Growing up in the Internet Age, I've become fairly accustomed to and comfortable with buying just about everything online.

But even for me, ordering wood floors online -- by the pallet, no less -- was fraught with "what if's" and a bit of trepidation.  It isn't one of those things that you can just return if you get it and you don't like it or it's damaged or something and it's not exactly easy to get more product if you happen to be short a few square feet.

After doing much research and collecting dozens of samples (over a period of a few years...), I finally decided that I was ready to pull the trigger a few weeks ago and decided on BuildDirect.com for a couple of reasons:

  1. They were having a sale on some really nice engineered mahogany.
  2. Their prices couldn't be beat, even factoring in delivery charges (which are very high compared to some other e-tailers).
  3. Their web app was top notch; very well done.

This review is for people who are considering ordering from them (or ordering flooring online in general) since there weren't many online resources when I was researching them.

Ordering Samples

The sample ordering process is pretty simple and the samples are free (minus a delivery fee).  I've ordered at least a dozen samples from them over a period of two or three years, trying to find the perfect flooring.  Compared to other online flooring companies, I've found that they give pretty generous sample sizes in terms of length so you can get a better feel for the wood.  I will note that there are some products which you have to call to obtain a sample for.

I would recommend that when ordering certain types of wood, get multiple samples since with mahogany or Brazilian cherry, for example, different boards can show dramatically different colors and patterns.  We were considering mahogany, Brazilian cherry, acacia, and some of their twisted strand bamboo (really, really nice floors, IMO - definitely check these out).

I particularly like how the web app displays the weight information, the delivery source, and calculates the cost of shipping and adds it to the price per square foot calculation. 

Their sample ordering process gets a 5/5.

Ordering Product

Once you've decided on your flooring type and measured your square footage, the next step is to go online and order the flooring.  It should be noted that you should probably order at least 110% of your measured square footage.  We had installers put down our floors and the first crew wasn't very conservative with their usage and we ended up one box short.  At that point, you really have a tough choice to make; for us, we've decided to sell the extra flooring (or give it away to family members) instead of ordering additional flooring since the shipping costs would be silly.  Our kitchen was supposed to get the wood as well, but since we were short about 30 square feet, we decided to just leave it for now.

The initial ordering process is generally pretty easy.  It's not much more difficult than the sample ordering process.  However, there does seem to be this extra step of having to call their offices to confirm the order and what not.  At times, it can be difficult to reach anyone in the office (a secretary always picks up, but then you need to be transferred to the right department).  This became a pain-in-the-ass game of phone tag trying to reach the guy.

It was also a bit of a pain to adjust the order size once I had the installer come out and measure and estimate.  Again, it was hard to reach someone in the right department.

They were also initially somewhat inflexible with their pricing.  I had purchased a large quantity (most of it) on a sale price but then wanted to add an additional 400 or so square feet and some accessory pieces.  The sales rep. initially gave me some beef about adding the additional square footage at the original sales price until my wife called and threatened to cancel the order.  We did get the flooring at the sale price, but I don't understand why they made us jump through hoops to get it considering this order was coming in at several thousand dollars already.

One minor gripe is that you can't just go online and order more accessories; if you try to do it online, you have to order more product to be able to do it.  It seems like you should be able to go to your original order and add a limited quantity of product or accessory pieces.  In the end, I simply had to call them up to get one or two more transition pieces, but still, it would have been easier to do it online.

Their ordering process gets a 2.5/5.

Delivery

The delivery was probably one of the most annoying aspects.  The first issue is that their delivery window is very large; you won't know when you'll get it until you get a call the day before asking you to schedule delivery.  This is a pain in the ass.

The second issue is that while their web site is generally pretty well done, their delivery estimates aren't very well integrated with their stock levels as we were delayed by a month as their stock levels were low.  This wasn't an issue for us since our schedule was flexible, but I can see how this might be an issue if you're in the process of building a house and you have a much less flexible timeline.

The actual delivery itself was a bit of a pain as well.  The product comes in pallets, but the pallets for our product were like 8x4 (oblong), which makes it a bit harder to store (say in your garage since you have to clear out a lot more space).  Not only that, they're only supposed to drop it in your driveway!  As I wasn't home that week, we asked my father-in-law to accept delivery for us.  He gave the driver a $50 tip to help him get it into the garage using his hand lift.  Just beware that the delivery process is less than optimal for average folk.

It would be one thing if they could give you a very specific delivery date and then you could schedule your installers to be there at the same time to move/install the product, but the combination of such a wide delivery window and delivery service (driveway drop) makes it a bit of a pain.

On the other hand, I have to say, the product was very well packaged and had no damage at all.  This was one of my primary concerns, that there would be damage during transit and that we'd have to deal with a messy return process.

Their delivery process gets a 3/5.

Product

Despite all that, the wife and I absolutely love the floors.  The engineered material is pretty good at this price point when you compare it against the stuff you'd find in big box stores like Home Depot or even from Lumber Liquidators.  The specific engineered flooring that we got, their house brand Vanier Santos Mahogany, came with a 4mm wear layer.  At this price point, if you were going to get it from HD or Lowes, you'd probably be getting something like a 0.5mm wear layer.  With a 4mm wear layer, it can be sanded and refinished at least once in its lifetime (probably twice).

From a durability perspective, we've only had it for a few weeks now, but we have three cats and as far as I can tell, it looks to be holding up well to their claws.  I was worried about rolling around in the office chairs and leaving marks, but so far, it's been fine, even without a protective plastic mat or an area rug.

I was a bit worried watching the installers handle the product since they were pretty rough with it, tossing around pieces here and there, stepping over them, hammering it pretty heavily with rubber mallets...but it held up.  There were only like one or two places where their rough handling was apparent (possibly from dropping a nail gun).  Otherwise, the boards seemed fairly resilient - no breakage, no splitting of the veneer from the base, no cracking.  I should note that watching the installers cut the boards lengthwise, they did it by simply using a hand held circular saw and they were able to get very clean cuts.  I would think this speaks a bit to the workability of the product.

Overall, in the 60 some boxes that were installed, there were probably only 3-4 boards that had defects in them (hairline cracks in the finish, splintered tongue, etc) and only a few boards which weren't very attractive (only based on the specific tree or the section of the tree that it was cut from - we set these aside or used them in closets).  Otherwise, the boards were remarkably well milled and 99% perfect in terms of being square and straight.  The accessory pieces also matched nicely in terms of color and finish.

The packaging should also be noted as well: the contents of each box were sealed with fairly durable plastic and there were thin layers of foam sheets between each layer of the product inside the box.  I was pretty impressed with the lengths they went to ensure that the product wasn't going to be damaged in transit (although I wasn't too happy about how much waste this generated).

The product itself gets a 5/5.

Overall

I'd say I'd probably order from them again in the future and would recommend them to friends and family.  In the end, I think it's a great value as long as you're willing to plan it out properly and accept the risks with ordering this stuff sight unseen (it can be really hard to judge some types of flooring based on samples).

I'd say it's a solid 4/5.

# Monday, August 31, 2009

Misc. Adventures

Monday, August 31, 2009 7:45:16 PM UTC

Just some random photos to unload from the camera.

We recently saw this little guy scouring our Mums for prey:

Spent the weekend in Tennessee. Stopped by a BBQ/country music festival in Nashville. Got myself some Bayou Billy's homebrew soda. Love their tagline: "Put Some South In Your Mouth":

You're supposed to keep the mug for lifetime $1 refills. Sandra particularly liked how I carried mine around:

Spent Sunday at Cheekwood Botanical Gardens just outside of Nashville. Amazing place; a shame that I didn't have a better camera, lens, and -- well -- skill to capture it all.

The main mansion was beautiful as well, however, photography wasn't allowed.  The backstory is that it was once owned by one of the early investors in Maxwell House Coffee (The Cheek family).  There's a whole section of the garden, the sculpture trail, that we didn't do...maybe next time.  Also, there's supposed to be a Dale Chihuly exhibit next year if you're planning on making a trip to Tennessee!

If you're ever in Tennessee, don't pass up the chance to stop by Cheekwood.  Bring some comfortable hiking/walking shoes, a bottle of water, a nice camera, and some time.  Oh, and finally: where did this guy come from?

# Saturday, February 07, 2009

Cappuccino

Saturday, February 07, 2009 9:54:55 PM UTC

Got myself a Bialetti cappucino/latte set this week. I have to say, I'm pretty impressed. Check out the results for yourself:

It comes with a milk frother cup, which worked out really well.

Check out my Amazon review:

I'm a pretty "average" coffee drinker; I'm not so into it that I'm going to be roasting my own beans anytime soon. On the other hand, I've also had my share of watered down and bitter tasting sludge water once in a while from national chains as well and I can appreciate a good cup of coffee.

This little device seems like a good middle ground. Not so steep in price that you feel like you need to be a coffee snob to really appreciate it, and yet it produces an above average cup of cappuccino. You can certainly spend a lot more on a coffee preparation device, but there's no guarantee that you're going to get results that really justify the extra cost.

Compared to some devices I've used in the past, I would list the key pros of this one as:

1. Very easy to clean. The frothing cup has a non-stick coating and it's easy to rinse out. The percolator is pretty easy to assemble/disassemble once it's cool. All the parts are easy to remove and rinse clean. The coffee grinds are very easy to remove as well (one of my main concerns).

2. The frothing cup works GREAT. I was a bit tepid to try it out with some organic skim milk, but it worked out great! I set about 3/4 cup of milk over very low heat until I saw a bit of steam coming off the cup and put the plunger over it and within 10-15 pumps, I had a nice, thick, frothy mixture (even with skim milk!).

3. Paired with some Illy coffee, the coffee came out very, very well. Perhaps the best coffee I've had in quite a while. No bitterness and, to my surprise, even with the fine grind of the beans, the coffee was pretty much free of grinds.

4. To my surprise, I was able to get a bit of crema! Yes, it's possible even with this relatively cheap device (there are a few videos on Youtube demonstrating this).

A few things held this combo back from being a 5 star product:

1. The directions are TERRIBLE. No suggestions on the amount of grinds to use (yes, to some degree, this is really dependent on your personal taste, but at least give me a baseline!). There's also no suggestion on the grind to use either (I ended up using a fine grind Illy). There's no measuring cup and at least on mine, there were no water level markers on the inside of the percolator. I ended up filling it about 3/4 of the way to the valve. As for grinds, I ended up using a bit more than 2 tablespoons and it seemed to work out well for me.

2. Unless you're standing next to the thing the whole time, there's really no way of telling when it's done; you really have to kind of stand there and watch it. With enough usage, I assume that you'll get the time down, but it would be nice if had some mechanism to alert you when it's done.

3. At least on my gas stove, it takes a while to heat up. Compared to a drip machine or other electric percolators I've used in the past, this device does take a bit more time since you can't really use high heat on your stove (unless you have an electric one). Since the base is rather small, you have to use it over a smaller burner and even then, you may have to use a rather low heat setting. All of this means that it takes a while for it to heat up. While this might contribute to a better tasting coffee, it also means more time.

All in all, I think it was well worth the $40 some dollars I paid for it. It's a great weekend companion; it's very satisfying to wake up on a lazy Sunday morning and make a cup of cappuccino for the wife and I and sit back and relax, without having to get dressed and rush out into the cold winter air. It's probably not ideal for every day use as it is a bit more time consuming and there is a bit more cleanup involved compared to a paper filter drip machine. But then again, if your working life is busy and hectic, it might be just the thing you need to slow down for a moment and enjoy a hot cup of cappuccino!

# Monday, January 26, 2009

Battling Heroin in Afghanistan, Chinese New Year, Work, and Family

Monday, January 26, 2009 3:04:24 PM UTC

Heroin in Afghanistan

A cool story on how some enterprising individuals are working to battle the heroin trade originating in Afghanistan:

A former homeless drug abuser from Swindon is the unlikely champion of an initiative that aims to fight Afghanistan’s vast narcotics economy – with fruit juice.

James Brett, 39, who once spent a year living rough before becoming a fruit juice magnate, is behind a scheme that aims to replace opium fields with pomegranate orchards.

Mr Brett’s scheme will begin in March with 100,000 pomegranate saplings in the eastern province of Nangahar. He hopes eventually to plant 175,000 hectares (432,250 acres) of orchards across the country.

This is all sorts of awesome (well, because I love pomegranates :-P)!

Chinese New Year!

Happy Chinese New Year! (Year of the Ox)

Work

I've been working through Eric Brechner's I.M Wright's Hard Code.  I'll have more on this in the coming weeks as I continue to digest the awesomeness of this book.  Excellent pieces on software engineering and dealing with the mess of it all.  Highly recommended reading.  I finished this up on my trip to Taiwan...

Family

It's been a long 2009 for me already.

My grandmother passed away near midnight on January 8th.  It's kind of strange, I wasn't all that close to her, but in the aftermath of my weeklong trip to Taiwan to attend services, I feel a sudden sense of emptiness.  It's a sort of spiritual/cultural/familial emptiness...an uncertainty about the future of my ties to Taiwan and to my family there. 

I was quite surprised that my family wasn't as emotional as I would have expected; but then again, to reach the ripe age 88 is not a terrible fate.  It was quite sudden for my grandmother, who was about as energetic and lively as a 8 year hold hopped up on a few bottles of pop.  My goodness, you would not believe the copious amounts of food that she could consume for a frame no bigger than 5' (maybe).

She was from a different generation, a generation that saved every yuan, ate every last grain of rice, and lived simple, disciplined lives.  She was stubborn to the end, from what I heard from my aunts, but it was her way of expressing her love for her family.  I think the following phrase best summed up her view of her matriarchical role:

The true meaning of life is to plant trees under whose shade you do not expect to sit.

-- Nelson Henderson

So I've been pretty depressed through all of this.  The Chinese place great emphasis on the family name and as the only son of her only son, it seems that the tradition of the Chen family will end with me as my children will surely grow up as Americans who may never really connect with their Chinese heritage.  I have an itch now to sell my house, store most of my stuff with my mom, and move back to Taiwan for a few years to better learn Chinese (I'm conversational on a 3rd or 4th grade level), get to know my aunts and cousins, and enjoy the awesomeness that is Taiwan.

For now, it's just a pipe dream.

# Sunday, June 22, 2008

Wildlife

Sunday, June 22, 2008 2:23:30 PM UTC

My house backs a small forest.  So from time to time, we get some interesting visitors.

I saved these guys while I was mowing the lawn...I hope I didn't kill any of their siblings :-S

I briefly considered feeding them to my bearded dragon, Quincy, but decided that it was better to just put them back.

This deer came by about two weeks ago:

It was pretty cool because he walked right out into the main yard before he got spooked and ran back into the woods.

We've also had a red fox visit our back yard one time.  There's also this little garden snake living under our front stairs which I keep seeing every few weeks.  I've been trying to catch him, but who knew snakes could crawl backwards?

# Tuesday, May 06, 2008

Buy This Book!

Tuesday, May 06, 2008 11:15:31 PM UTC

This is quite exciting: my wife is now a published author (with her own ISBN and everything :-D)!

Check out her book The Parent Connection for Singapore Math.

:-D She's also got a media set, you know, if you've got $459 and nothing better to spend it on :-P

# Wednesday, December 05, 2007

Notes From Austin, TX

Wednesday, December 05, 2007 4:44:11 AM UTC

Austin is just an awesome city.  There's just something about it that attracts me to it.  I can't really say why I like it there so much.  I'm not really a clubber or a bar hopper, so the 6th Street Entertainment District really doesn't do it for me (although it was definitely fun to stroll through there with all of the live music and partygoers).  I enjoy live music, but I'm not fanatical about it (although it was awesome hearing live music all around the 6th Street area after sunset - from bands on the street to bands in open bars).  I like window shopping about as much as any guy does (but it was definitely cool hitting up the row of quirky shops on Congress Ave.).  I'm not really a food snob nor am I really picky about what's "good" and what's "bad" (but I must say, the TexMex in Austin simply trumps anything we get here in NJ).

But I leave you with a badass video from the Austin Zoo during Tiger feeding time:

While small and a bit run down, the Austin Zoo is otherwise awesome in that the crowds are small, the commercialization is low, the peacocks are just free roaming...very awesome, and they have a huge collection of large cats (not to mention a black bear display that is practically asking for a lawsuit because you can literally reach your hand in there and pet the cuddly guy).

# Saturday, September 22, 2007

Programmathon VII Begins!

Saturday, September 22, 2007 3:41:20 AM UTC

So I'm back in Utah.  Today is day one of Programmathon VII. This time, we have two new faces, Dan and Thuy (all the ways from Vietnam!)

The highlight of any of the Programmathons are the meals and awesome sightseeing that we get to do while we're out in Utah (some trips being more memorable than others) to break up the long hours of work and occassional heated technical debates.  Of course Brad would probably disagree: the highlights of the Programmthons are really the 14 hour days we pull to get things done.

We ended up at Park City for dinner on day one.

The steak at Grub Steak was pretty good (and so was the atmosphere), but the waiter totally oversold the awesome-ness of their steaks.  7.5/10.

Luckily, I ended up with a Honda Odyssey instead of the Ford Freestar I was supposed to get.  This thing has some guts...no problem hauling 7 full grown adults up some pretty steep climbs.

Park City is a quaint little area.  The main street is lined with all sorts of eateries, expensive art galleries (expensive).  From left (above): Jim, Dave, Thuy, Me, Dan, and Brad.

More pictures with the locals.

Ice cream at Cow's.  Very good stuff.

Seems like the calm before the storm.  Only a few days left to wrap up version 1.

# Monday, July 16, 2007

Commitment Chains, GUIs, Frustration, And Other Ramblings...

Monday, July 16, 2007 3:29:58 AM UTC

Warning: massive brain dump ahead...

As I was laying down to sleep and having a discussion with my wife - much to her dismay - the topic of her current graduate class came up and she mentioned how much she enjoyed just sitting down and writing for 45 minutes each class.  I found it strange that she should put it in such a perspective.  I mean, there's nothing preventing her from taking the time to sit down and write for 45 minutes each day (and she did keep a journal up until maybe 3 or 4 years ago) as surely, countless minutes of her day (and any average person's day) is spent doing mindless things like watching television or eating or something else equally useless.

The idea of commitment chains occurred to me as I was using an analogy about exercise and trying to convince her that writing for 45 minutes each day is relatively trival compared to working out.  Think about it: in exercising, one starts a chain of commitments which can seem unconsciously daunting.  To exercise is to sweat, to sweat is to necessitate an immediate shower (well, unless you don't mind body odor or the salty stickiness of sweat), to exercise necessitates a larger load of laundry, and most importantly, in this proposition, is that it necessitates a healthy lifestyle lest that exercise went for naught. 

It is a relatively large commitment chain to make simply by exercising and perhaps this is why so many people find it so difficult to maintain a healthy lifestyle: the weight of this commitment chain is simply too heavy.  On the other hand, writing for pleasure carries little commitment of any kind.  You write if you want to, you don't if you are not in the mood.

What's the point?  No point, really :-D  I guess if there was a point, then perhaps it is that very often in life, we don't really take into consideration how little commitment it takes to do what we want to do and do what we enjoy.  We also fail to realize how these low commitment activities have a profound effect on our lives as they help us feel like we've done something.  Simple things like taking a stroll around the block, watering some flowers, laying down and watching the clouds pass, sitting with a cat on the grass, drinking a cup of lemonade on a hazy summer afternoon.  Perhaps that's the secret to finding balance in life: to have a healthy mixture of tasks with long commitment chains (work, family, health) mixed with activies of low commitment (I'm mixed on whether blogging is the former or the latter, but I do find it constructive to put thoughts to text some times).

Shifting gears now.

Prior to this discussion, we had another discussion about how we visualize dates.  I was thinking back to something that I had once read about how to interview tech candidates: propose that some object typically comes in a set of 14.  Now 5 additional elements are introduced...ask the candidate how he or she would organize the new elements.

Some people, like my wife, would tend to place the 5 elements "below" the 14 elements and line them up and start to form a multidimensional array - or a matrix, if you will.  Some people like me, would visualize it as a separate block of elements, but in a linear manner...more like containment where the first set contains 14 elements and the second set contains 5, but they are part of yet a larger set.  It is less of a repeating pattern and more of a general grouping.

This manifested itself clearly in the way in which we think about and visualize dates.  For her, as day of the week is important, she tends to organize her events and key dates in a typical calendar fashion and in fact, she can visualize it so well, that given one event in a month, she can probably tell you the day of the week of any other date in the month nearly instantly.  She views the set of 7 days in a week as a part of a matrix much as a calendar is typically visualized.

In my case, as day of the week is generally not that important, I visualize date and time as linear and quite abstract (I think the most natural way to think about it since it really is linear and absolute...it is only the incidental cyclical nature of our orbit around our Sun that defines constructs like seconds, minutes, hours, days, weeks, years and so on).  In my case, I am terrible at remembering dates and I am terrible at remembering order; I only roughly index that I have something to do some time in the future.  Ask me what I'll be doing two weeks from now, and it'll take me a good amount of time to figure that out whereas my wife's response will be nearly instantaneous.  I tend to think of time in blocks where I have commitments (meetings, errands, and so on) and blocks where I don't have commitments.

When you really think about it, time itself is completely abstract (what is it? will it end? when did it start? how much of it is there? what does it look like? what is the absolute unit of time?  can it really even be counted?), but the organization and demarcatinon of time into units seems...weird and useless to me; I am fine thinking about it in the abstract (i.e. "some time in the future, I need to do this") and not as an absolute (i.e. "on such and such date at such and such time, I need to do this" or "x units from now, I need to do this").  

There is a parallel in my profession: as a software developer, there is nothing tangible about the constructs that I build; the contructs that I build are purely abstract in nature: every GUI, every construct in software, is but an abstraction of numerous lines of code - or, is it the other way around?  Software is but one layer of abstraction on top of another...modern day software could not exist without the huge levels of abstractions that have been built to allow programs to be written efficiently.  Buttons are not buttons, they are rectagles.  Rectangles are not rectangles, they are arrangements of lines.  Lines are not lines, but merely a linear set of pixels.  But in essence, there is nothinig to grasp and to utilize to visualize proportion, all of it is purely hypothetical and kind of "uploaded" into my brain as a set of objects, relationships, and other abstract constructs when I sit down at my desk in the morning. 

In actuality, I find this process of uploading and unloading quite unpleasant (particularly the unloading part).  I have been told by my coworkers, wife, and family members that I can become quite unruly when I'm involved in my work.  The reality of it is that when I'm in my groove, unloading and then loading so much abstraction and so much data causes some sort of mental instability...I just get frustrated at the individual forcing the purge or I just lose my groove and have to kind of veg for the rest of the day...I simply cannot be constructive.

From an observer's perspective, I think this makes me seem like a loner or anti-social or if a colleague is coming to me with questions, it may seem like I'm impatient or uncooperative.  In reality, my bitter reaction is more of a defensive mechanism to kind of keep myself from having to go through these periods of derailment as in my case it's not a temporary derailment...it's like a long term derailment once it happens as there is simply too much data to store and reload that it's taxing on my mind.

For this reason, I think I've recently been in some hot water with some coworkers.  I simply don't take afternoon interruptions very well as that is the time when it is hardest to recover from derailment at that point.

Of course, the whole reason that this discussion and train of thought came up was the movie Stranger Than Fiction (it's an absolutely brilliant screenplay with an absolutely excellent performance by Will Ferrell (everytime you think he's going to break into his "normal" genres, he surprises you and keeps his acting true to the character...a brilliant perfomance)). 

This movie draws my attention on various levels: it is at once a deep inspection of what it means to live and to be alive, it asks what exactly is the scope of one life in the grander scheme of the universe, on some level it is a movie about religion (I haven't really fully formulated this part of it yet), and of course, it's a touching romantic comedy :-).

I also found the specials (and this isn't the first time) to contain some very insightful information on teamwork and project management that would apply to almost any field (but that's a discussion for another day).

What also caught my attention was how director Marc Forster and the visual effects team realized how Harold's thoughts were visualized with these planar "screens" with metrics, text, and data layered together.  It's much the same way I visualize data, code, structures, and tasks, all on virtual screens that I slide around, stack, layer, and intermingle.  I now realize that there is no organization to how I think about these constructs and abstractions...I simply see them in my mind as if before me was a stack of cards strewn about and yet I am able to reach out and pluck the ace of spades at will with no effort.

Maintaining such mental order requires a lot of effort and a lot of concentration.  I think it is because of the amount of effort required to work the way that I do, that I am so unpleasant when interrupted (much to the dismay of my wife, mother, and coworkers).  And believe me, it's not that I don't like to help others with the development issues or educate other developers and team members, rather such tasks are not my primary concern and shifting gears is extremely difficult when you have to maintain such large abstractions and structures in the mind.

So of course, the question is, what is the solution?  Well, perhaps I need to invest some time in some organizational books.  Perhaps I need a whiteboard to help unload some of the data and make it easier to reload as well.  Perhaps I need a bigger desk so I can scribble more and keep better notes.

Well, I think that about wraps this up.  Possibly not the most coherent or well organized entry, but it contained data would have kept me up all night if I didn't unload it :-)

# Sunday, July 15, 2007

Sticking It To The Man (Maybe)

Sunday, July 15, 2007 9:31:38 PM UTC

There used to be a time, decades ago, when there was only one telephone carrier and everyone was forced to use it, regardless of whether the service or price sucked. 

Nowadays we have a much greater variety of choices from AT&T to Verizon to MCI for local and long distance calls.  We also have some new comers to the game such as Comcast and Cablevision who offer telephone service over cable.

For the longest time, my mother was using MCI for her local and long distance.  For whatever reason, she suddenly decided (as she is oft inclined to do) that it cost too much.  We decided to switch to AT&T as she felt that it was a trustworthy and reliable brand.  Little did we know that the new AT&T seems to outsource its customer service, charges a hefty connection fee (even when no physical connection setup was required), and she ended up spending exactly the same each month as she did with MCI...

Jump forward a few months after the AT&T debacle (they were still trying to get her to pay a connection fee...).  After a year, her promotional rate with Comcast for Internet connectivity jumped dramatically.  At this time, her best option - of course - was to switch over to the Comcast Triple Play.  We were assured that the cable telephony was a good choice and that the battery backup on the modem meant that even when the power went out, we would still have dialing capabilities.

Of course, what they failed to mention was that if the Internet connectivity gets flaky (as is oft the case with Comcast), so does your ability to use the phone...D'oh!  Well, it should have been obvious to me, but I dunno, I was thinking that maybe the modem had special capabilities that allowed it to operate indepenently of the Internet connectivity.  Turns out that every once in a while, we'll pick up the phone and there will be no dial tone because the modem loses connection or the DNS servers are down somewhere on the grid or some other issue.  It also turns out that the special telephony modem that we have to use is noticeably slower at servicing Internet traffic compared to my previous Motorola (blazing fast); there is now a noticeable lag when frequenting some of the web pages in my daily queue.

For the time being, the promotional price is great: about $33/month ($99/month for Triple Play for one year) for unlimited long distance to anywhere in the US.  This is much better than what Verizon or AT&T charges for the same features (about $50/month).  What they don't always make so clear is that after a year, the price jumps dramatically to $140.95/month or roughly the same price for telephone service as with Verizon or AT&T...except without the reliability of the good old PTSN.

If you really sit down to think about it, that comes out to roughly $600/year for phone service.  That's PS3 territory.

But there is an alternative, there is a brave new world in telephony: Skype (okay, it's really not that new, but I don't personally know anyone who uses Skype exclusively of landlines (although I know a few who use cellular lines exclusively)).

I signed up for a free trial at the end of last year that gave me 30 days of SkypeOut for free.  I found the service to be generally acceptable and convenient (since I spend almost all day in front of the computer anyways).

But what makes Skype even more compelling are the new accessories which are being developed around it: standalone (no PC requried) devices which allows one to use Skype as a total replacement for landelines.

The two that I looked into were the Netgear SPH150D and the Philips VOIP8411B.  Both of these phones sport the following features:

  • The latest DECT technology
  • Multi-handset capable (up to 4 each)
  • Dual mode (supports PTSN and Skype)
  • Don't require PC to use

What seals the deal is that SkypeIn, which allows you to get a number that any landline or cellular line can dial and features unlimited calls anywhere in the US to landlines and cellular lines (and of course free calls to any other Skype user), costs only $60/year.  So for a tenth of the cost of traditional landlines or cable telephony, I can get roughly the same quality services and I can call from my computer.  I also think that the portability is also cool as hell...I can answer my phone anywhere in the world as long as I'm connected to the Internet.

I convinced my wife that when we move this time (just about 20 days to go), we're gonna try to go cold turkey with Skype (we're went with the Netgear phone) and see if it'll work for us.  We both make long duration long distance calls pretty regularly for our jobs so it'll be interesting to see how it works out.  For us, 911 capabilities is not an issue as we both have cell phones.  Dependency on the Internet connection is also not a problem as it's no worse than Comcast or Optimum and whenever we tend to be on long important calls, we also tend to be in some sort of net conference...so having the reliability of PTSN is kind of pointless if the net meeting is down. 

So overall, I'm excited to stick it to the man :-D

I'll keep this site posted with my review and experiences as I spend more time with Skype and the Netgear phone.

Update:

Argh!  Chalk this one up to poor product description, packaging, or something like that, but it wasn't clear at all that one needs to purchase SkypeOut/Skype Unlimited to receive the unlimited outbound calls.  In essence, $60 only buys an inbound number and unlimited inbound calls...outbound calls with SkypeIn are still charged at local/long distance rates. 

I'm kind of conflicted...on the one hand, dude, it's $90 for a whole year.  On the other hand: Damn these people for not clearly advertising their services and costs and using sensible bundles to do so.

# Tuesday, May 29, 2007

5 Lessons For Barbeque'n

Tuesday, May 29, 2007 12:03:00 PM UTC
  1. Cut veggies into large sizes.  This makes it easier to work with them and not have them fall through the grate.
  2. Put small items onto skewers.  Items like shrimp just won't work on the grill without a skewer.
  3. If you're making chicken or other meats low in fat, brush the grilling surface with some oil first.
  4. Make bigger fires.  Charcoal is surprisingly difficult to light without lighter fluid.  Do it right the first time and make a big-ass fire.  Put some newspaper under the coals.
  5. Enjoy yourself!
# Monday, May 28, 2007

25 Up

Monday, May 28, 2007 6:01:42 PM UTC

I just finished watching the documentary 49 Up.

There's something quite moving in watching people mature from 7 to 49 in a matter of minutes and to see the change in their ideals, dreams, and their lives.  It was fascinating watching these individuals age and see how their lives took shape.

It's equally fascinating as you start to reflect on where you've been and where you shall be in  more years.

If there's one thing I've taken from the movie, is the importance of being happy in your circumstances and making the best of your lot in life.  Dreams come and go, as do opportunities.  Mistakes are made and there trying times are a certainty, but in the end, it's important to realize the brevity of your existence.  It is easy to blame circumstance and others for one's misfortune and hardships, but ultimately, the life is your own and you must do with it what you will.

The Dalai Lama writes in The Meaning of Life:

Shantideva reasons that if something can be done to fix a situation, there is no need to worry.  Whereas on the other hand, if there is nothing that can be done, there is no use in worrying.

If there is one person in the series that embodied this the most, I think it would have to be Neil, who, for a good part of his adult life, seemed to wander aimlessly.

Neil turned out to be one of the most interesting of the entire group. At seven he was funny, full of life and hope. At 14 he was doing well in comprehensive school but was more serious and subdued. In one of the biggest shocks of the series however, by the time of 21 Up he was homeless in London, having dropped out of Aberdeen University after one term, and was living in a squat and finding work as he could on building sites.

At 35 amazingly, he had turned his life around to a great degree and found his calling in politics.

For some of the kids, like Andrew, life turned out exaclty as scripted (either by themselves or by their parents).  For others, it is a meandering journey where childhood dreams are often crushed by the realities of the world.  The key, I think, is to be able to accept these defeats, take a lesson from them, and to see the opportunities ahead instead of the failures in the past.

The thread that struck me the most about the lives of each of the individuals in the documentary is the common importance of family and how it is a driving force in finding that peace.  Of the subjects, only Neil did not marry or have children; at 49, this lack of a family of his own and the troubled relationship with his parents, was perhaps one of his own greatest regrets in his life.

In reflecting on my own thoughts on this subject, I find that today, I'm much less enthused about the idea of being a father then I was when I was a teenager.  Not because I don't like kids or that I don't want the experience of being a father - one day - but it just feels like I'm still a bit too selfish to my own needs to be a father.  I like living my life on my schedule.

49 Up is an excellent documentary that I think all young adults should watch and study.  I think it reveals a lot about how fleeting one's perception of the world is and how it evolves over time.  It gives insight into what it really means to find happiness and to find purpose in life.

# Monday, April 30, 2007

Mortgages And Leadership

Monday, April 30, 2007 4:13:20 PM UTC

I saw Thank You for Smoking over the weekend, a great movie, and I wasn't planning on writing anything specific about it, but an article that I read this morning (and I guess thinking about the current circumstances of my life) changed my mind.

In an article on SI.com, Chris Mannix discusses how Jason Kidd, perhaps the greatest point guard of this generation (even though Nash has more MVPs to his name), has made a career or making his teammates better.  The most interesting observation that Mannix makes is:

For his part, Kidd relishes the idea of not only making his teammates better, but also serving as a human lottery ticket.

Well, what exactly does this mean, "human lottery ticket"?  Quoting Jason Kidd, he writes:

"I loved playing with all those guys," says Kidd as he walks down the tunnel towards the parking lot. "Rex Chapman. Shawn Marion. Kerry Kittles. Scalabrine. K-Mart. When you can help a guy make a better life for his family, it's the best feeling."

To go off on a tangent, for a moment, at some point in the last year, I was considering leaving Zorch as there were other opportunities available to me with better compensation overall.  But of course, there isn't that satisfaction of being a core component of a small startup.  At some point, the CEO of the company came out for a meeting with a client and had some time to meet me for lunch.  Perhaps the most interesting concept that I took away from this meeting was his statement that he's not in it for himself, he's in it to build the wealth of those around him.

And indeed, our employees are all a close knit bunch with one of our developers having been with him for over a decade through at least two companies.

In a sense, he has a Kidd-esque quality about him.

In quoting Lawrence Frank on what makes Kidd so great, Mannix writes:

"He takes away the thinking process for his teammates. He gets the ball to them on time, on target, so they can just go into their move."

Similarly, I like to think that our CEO (and any good leader) does the same: he creates the conditions for success by taking away the barriers for individual success; he makes it easy to do what you know how to do.

Okay, so back on the topic at hand.  So what does Jason Kidd have to do with Thank You for Smoking?  Well, Nick Naylor (Aaron Eckhart), the protagonist of this movie, is asked how he can do what he does, knowing that the entity he fronts produces a product that kills thousands of people a day.  His justification?  He's effortlessly good at it and it pays the mortgage.

In a sense - and I know it's quite cynical - life in the modern world (especially for my generation) boils down to doing everything you can to make that monthly payment; mortgages are a painful reality for the vast majority of us. 

So what is the conclusion to draw from all of this?  I guess this is really a post on career advice: find someone to work for or work with that will be your "human lottery ticket" :-D

# Wednesday, January 31, 2007

Sandra In The News!

Wednesday, January 31, 2007 11:56:24 PM UTC

How could I have forgotten to post about this?

My wife was recently featured in the Home News and Tribune; not once, but twice!

To begin with, gosh, could they have used worse pictures of her?

But to be honest, it's an extremely proud moment for our entire family (my mom was really going off the walls over this).

My wife is kind of a dynamic person in this respect: you would never guess, just talking to her, that she has a fairly high level grasp of mathematics (not to mention that in person, she looks like she's 18 (especially when she goes with the curly hair)).  I was quite suprised to see some of her coursework in psychology and education which had her in classes similar to mid-high level computer science math courses (probability and statistics).

As a teacher, she's one of those increasingly rare ones that won't take any crap from the students or the parents...she's very straight up to the parents about her expectations of them and how their role in the development of their child (at least while they're in her class) is crucial to the child's success.  She has a whole crazy system in place to make parents and their kids accountable.

So if your school district is intereted in this Singapore math business, do take a look at her SDE profile ;-)

# Friday, January 26, 2007

Utah - Day 3, 4, 5

Friday, January 26, 2007 3:26:53 AM UTC

Programmathon was fairly successful. While I enjoy the freedom of working offsite, it's definitely good to get together once in a while and get face to face with everyone (although my gastrointestinal tract begs to differ).

But of course, no trip with Jim is complete without a trip to Hooters :-P

Zorch @ Hooters

Me @ Hooters

Check David's Spiffy Hat

In the Salt Lake City vicinity, the mountains are omnipresent. It's very beautiful out here (but dry as a desert (I started to bleed under my fingernails due to the dryness)).

Mountains Are Omnipresent.

Of course, we had to visit the Standard Supply company nearby the office where they had a giant toilet (for the obese I assume). Brady labeled this portrait: Stinking Man.

The Stinking Man

Being Monday, everyone had to go watch 24 (except me as I don't really watch TV) so we didn't go out to dinner, which saved my body from yet another caloric bombardment. I was too tired anyways, so I plopped down and went to bed early.

On day 4, we went up to "Snow Bird" to have lunch at a lodge there. It was absolutely beautiful. Some of those runs looked incredible...but yeah, I'm too much of a pansy to ski :-P Basketball for me, thanks.

Up On SnowBird For Lunch

SnowBird

Leaving SnowBird

As beautiful as the scenery is out there and as nice a place as Utah seems to be, I'm glad to be back home in New Jersey. My skin and fingers are doing better in just a day back home (be sure to bring some moisturizer with urea if you go out there) as the air out there is just so incredibly arid. It's also kind of weird being in a social setting where 98% of the population is so homogeneous.

One thing that I've learned on this trip is that mini-vans actually aren't that bad. The Sienna was quite peppy for such a large vehicle and rode very well. It even made it through 3-4 inches of snow without issue.

# Sunday, January 21, 2007

Utah - Day 1, 2

Sunday, January 21, 2007 3:34:56 PM UTC

It was rough getting out of Newark.  A freak snowstorm delayed the landing of the plane that I was supposed to board and the subsequent snow buildup necessitated de-icing.  I touched down about three and a half hours behind schedule.  To make matters worse, the Hertz counter where my car was reserved was manned by perhaps some of the most incompetent people.  Ever.  There were probably 6 groups in front of me and it took me at least an hour and fifteen minutes just to get my car >:-[ There's something weird about driving a mini-van when you're not expecting it.  While I was supposed to have a Corolla reserved, the only thing they had in the same price class was a Toyota Sienna.  This is actually the first time that I've driven a mini-van...it's kind of weird since I'm used to smaller cars.

We had lunch at Rubio's, a Mexi-Cali place that specialized in fish tacos.  I had a grilled salmon taco, which was delicious (out east, we only have the kinda shitty Baja Fresh).

Dinner was at Joe's Crab Shack, a great seafood place where Jim (our CTO) finally found a satisfactory martini in Utah.  Unfortunately, they also pulled the birthday-boy schtick on me and I had to dance around on a broomstick horse and cowboy hat (I have pictures, but it's just too embarassing)...

DSC00002.jpg

This morning, I woke up to find 3 inches of snow on the ground.  But by that time, I was already dressed and ready to go to the gym.  I wasn't too excited by the prospect of trying to drive in the dark to a gym which I only had rough directions to in 3 inches of snow in a mini-van with California plates...

DSC00012.jpg

But I'm glad I did.  I ended up at the new Lifetime Fitness gym here.  DAAAAAAAAAAYUM.  This is the nicest gym I've ever seen.  It's bigger than the Costco back home.  The indoor pool had two huge, twisty water slides like the ones you find at amusement parks.  The basketball court was full size, well lit, and they actually had good basketballs, too.  And the workout floor: at least 100 weight machines and wall to wall plasma TVs.  It was kind of weird being the only person in such a huge building...I think I would move out here just for this gym :-P

I ended up at the office earlier than anyone else (or so I thought) so I killed some time by writing my name in the snow...

DSC00019.jpg

DSC00018.jpg

So begins day two of Programmathon II...

DSC00013.jpg

It turns out that Jim had already arrived at the office. He saw my snow writing and walked downstairs and let me in :-P

We had lunch on day two at some Chinese place in the food court at a nearby mall. Damn that gave me gas (actually, I think eating out anywhere give's me gas).

DSC00020.jpg

After a long day of programming, we ended up having dinner at Johnny Carrino's. I checked the score on the Colts-Pats game and it looked like the Pats were gonna blow the Colts out.

DSC00021.jpg

As you can see, it was my birthday again. Forced against my will, I finished the free chocolate cake and ice-cream.

DSC00022.jpg

# Wednesday, January 17, 2007

Forgive And Forget

Wednesday, January 17, 2007 10:33:04 PM UTC

I really think that one of the big keys to success and happiness in life is to be able to forgive and forget.  With some people, it just comes naturally and easily; they can move on and mend relationships without regards to whatever transpired.

Of course, for many people, this is an acquired life skill that comes with maturity.  Take my mother, for example.  In her younger days, she was probably too unwilling to compromise and too headstrong.  She held her grudges against my father for the longest time, but as the years have passed, she has come to understand how she erred in not being more flexible.  Nowadays, she's pretty much always happy-go-lucky when you bump into her.  Even when we have disagreements or we have a small fight, she never holds it against me.  It's not just me, she's the same way with everyone she meets.

I'm still working on it.  I am kind of egotisctical and unerring in my presumption that I'm always right :-P (just ask my sister).  On top of that, it takes me a long time to forgive and a longer time still to forget.  I hope that I can correct this over time...life's truly too short to hold grudges.  It's just that for some, like me, it takes a really long time for that to set in.

I started thinking about this after reading an article on Jeff McInnis, who was basically banished from the Nets team for a whole year and whose career was put in limbo - especially so considering his age.  But of course, one of the things that comes with age is maturity:

McInnis has refused to criticize New Jersey coach Lawrence Frank, who was apparently upset with McInnis' work ethic following knee surgery last January.

"If that was the case, I'd hold a grudge against every team I've played for," said McInnis, who has played for eight teams. "I can't think of it like that. They gave me $7 million to better my family. I can't be mad at Jersey. They made a decision last summer not to bring me back, but I'm here now. I want to focus on the Bobcats."

"When I was younger I probably wouldn't understand it, but I'm older, I know what's going on. I don't have anything personal against Jersey."

To be honest, with all the trash and rumors I had heard about McInnis and how the Nets treated him (not the classiest ways of doing business), this is a surprisingly mature response.  I hope that I can develop that same outlook on life and learn to be more optimistic and forgiving.

# Monday, January 15, 2007

In Memory of MLK...

Monday, January 15, 2007 2:57:46 PM UTC

In celebration of this day, I think it's worth the time to listen to a recording of his historic speech.

Could the civil rights movement have had a better, more visionary, and stronger leader than MLK?  It's hard to believe so.  Let's hope that his message doesn't die and lose it's power with today's generation.

I often find myself wondering whom in our time can even be compared to the great people of years past.  Who will we remember as "great" in the decades to come?  It often seems that such people are increasingly rare these days...

I leave you with a passage from his speech which resonates with me:

But there is something that I must say to my people, who stand on the warm threshold which leads into the palace of justice: In the process of gaining our rightful place, we must not be guilty of wrongful deeds. Let us not seek to satisfy our thirst for freedom by drinking from the cup of bitterness and hatred. We must forever conduct our struggle on the high plane of dignity and discipline. We must not allow our creative protest to degenerate into physical violence. Again and again, we must rise to the majestic heights of meeting physical force with soul force.
# Friday, January 05, 2007

More on Dean Karnazes

Friday, January 05, 2007 2:21:29 AM UTC

I mentioned a short article on Dean Karnazes in the current (January, 2007) issue of Outside magazine in my previous post.

There's a great passage that I really liked:

I think Western culture has things backwards.  We equate comfot with happiness, and now we're so comfortable we're miserable.  There's no struggle in our life, no sense of adventure.  I've found that I'm never more alive than when I'm pushing and I'm in pain and I'm struggling for high achievement.  In that struggle, I think there's a magic.

Unless you're pushing yourself, you're not living to the fullest.  You can't be afraid to fail, but unless you fail, you haven't pushed hard enough.  If you look at successful people and happy people, they fail a lot, because they're constantly trying to go further and expand.

It's a good mindset to keep in mind as you start out your new year and try to stick to your resolutions :-)

# Wednesday, January 03, 2007

I Want To Dunk.

Wednesday, January 03, 2007 4:16:33 PM UTC

I have no idea why, but I woke up this morning and I thought to myself "I want to dunk" :P

First, a little background: I've been playing basketball on and off during the last 10 years, some times really intensely (like in high school, when I played 2-3 hours every day) and sometimes less (like nowadays, when I only have time to play an hour or two at the gym).  During my high school days, I could actually dunk a ball on the rim (it's true, I actually did it once).  (But alas, cursed with average sized hands for a 5'10" guy, I could never palm the ball with a strong enough grip with one hand for a dunk.)  Yes, at one time, I could actually jump vertically (no running start) and grab onto the rim.

Over the years, as I've become more sedentary, as most programmers are inclined to, I've lost much of that leaping ability (although my calves still look fantastic (no, really :-D)) even with regular weightlifting and workouts.

For the past three months, I've been battling various issues that have hampered my usual workouts: a sprained ankle in Sept./Oct., my intensely dry skin which basically precludes me from playing basketball at all, and my fractured finger (which is just now healing to the point where I can close my fist).  Not to mention that I packed on 6 pounds (mostly -- okay, all -- fat) due to inactivity and holiday feasting.

But I figure now is as good a time as any to work on this goal and get back to my regular regiment.

By way of Google, I stumbled upon an article by Josh McHugh of Outside (which, by the way, recently had an excellent mini article on Dean Karnazes -- so good that someone actually ripped the page out of the Outside magazine at the gym) and Wired magazine fame.  I think I'm gonna try for it.  There's quite a bit of investment involved in some equipment (enough to get myself a Treo 700wx!), but I think it'll be worth it even if I can't dunk, at least so that I can swat some more shots at my gym pickup games :P (man I sound like such an old fart).

JumpUSA has most of the products including:

I'm having a hard time deciding between the weight vest and the belt.  The vest seems like it's more natural and easier to deal with (less motion on the body when running/jumping) but seems like it'd collect more sweat and also add more weight above the waist, which could strain my lower back.

So it'll be interesting to see how far I can take it.  I'll keep my progress posted.

# Friday, December 29, 2006

Happy Holidays!

Friday, December 29, 2006 1:22:57 AM UTC

Yeah, it's been a looooong time.

First of all, happy holidays to anyone reading this (hi Mom!).

Second, I know, no one likes to read excuses on blogs :P but I swear, I've been super busy and that fractured finger made extracurricular typing difficult.

One of the more exciting things that happened this week is that we switched the whole family to Sprint.  It's one of those weird things...no one I know aside from my boss has Sprint.  No one my sister knows has Sprint.  So it was kind of scary to switch; when you think about it, it's really a huge commitment!  But the allure of Sprint is in their rock bottom prices compared to the other major carriers and also the $15 for unlimited data access (I didn't believe my boss when he mentioned this, but it's true!).

Yeah, it's been a pretty freakin' long time since I've switched carriers, but for the price I was paying, Cingular just wasn't cutting it with the services provided.  For less than what we were paying for three phones (well, we did have 900 more minutes), we now have four phones with unlimited data access on two phones.

So yeah, speaking of phones, I think we may have gone overboard in that regards.  We ended up getting two Treos, one 700p and one 700wx (taking advantage of the 30 day exchange period so that we could figure out which one is better). I've read that the wx has some issues, but so far so good.  While I'm happy with the features I'm getting for my price, one thing that has me second guessing is that there seem to be pockets of my house where I'm roaming (as weird as that sounds).  Well, we'll see how it goes, but I'm loving the download speeds on the Sprint Vision network.

I've also been trying to get back to the gym...man holidays.  I always end up gaining like 6-7 pounds.  This year, it was compounded by my still healing fractured finger.  One good resource I came across is the Mayo Clinic's guide to core exercises.  I'm going to put some of these to good use.

On the professional front, I've been doing a lot of work with WF, WSS3, and Office 2007.  I wrote a great review on Amazon for Essential Windows Workflow Foundation by Dharma Shukla and Bob Schmidt, but it seems like it never made it to the product page :-(  It's a 4-star book for those that want to understand what's under the hood and the internals of WF (from a high level).  It's not a good "cook-book" type of book and it doesn't have lots of pictures, but I think it has some great info.

Well, that about wraps this up.  Happy New Year folks!

# Tuesday, October 31, 2006

Fitting Halloween Posting

Tuesday, October 31, 2006 7:54:39 PM UTC

Bones?  Halloween?  Yah?  No?  Wait, I got another one: Charlie "digital", get it? Okay, lame, I know :-).

In any case, that's my finger.

That little piece of bone hanging off of my middle phalange is a chip fracture that I suffered about 4 weeks ago at the gym playing basketball.  Turns out it was more than just a fracture.  As my finger was hyperextended, the tendon at the joint actually tore partially (which explains the excruciating pain and swelling) and as it tore, it actually took a small piece of the bone with it.

The ER doctor had my finger in a straight splint for the last four weeks, which totally messed up my finger because it needed to be in a curved splint to account for the hyperextension and to release stress on the tendon.  Doh!

I've been mostly getting by with 4 finger typing on my left hand, but spelling mistakes are plentiful and I feel as if my WPM is down at least 33%.

Well, looks like it'll be another 2 weeks in a splint for now.  This has me wondering: can/should us keyboard jockeys insure our hands?

In any case: Happy Halloween!

# Thursday, October 05, 2006

Worst Day Ever.

Thursday, October 05, 2006 8:44:01 PM UTC

We all have dreams about our own lives.  Where we see ourselves in a few years.  The kind of life we want to live.  You plan your life around these dreams so that they are dreams today, but reality tomorrow.

I have these dreams.  I think about them when I lay down. 

About the house I want to build.  About the life I want to live.  About the family I want to have.

This is the worst day of my life up until now.

Right now, it feels like all of that has been stolen from me...my dreams have been stolen by the person I trusted the most.  It's a sinking feeling...like there's no way back to the surface.

I haven't cried for myself in a long time...not since I was in high school.

Today, I cried for myself...

# Tuesday, October 03, 2006

Finding One's Path

Tuesday, October 03, 2006 3:35:26 PM UTC

Quote from an AP article on the Nets:

"We had a lot of conversations about the game itself and about his expectations about who he can become as a player," Carter said. "At first it kind of seemed weird to him, but then after a while when he opened up it made things easier. Once you get it out there in the open and figure out who it is you want to be, you kind of put it together and you become a basketball player."

I'm looking forward to a very productive season from Antoine :-)

# Wednesday, September 20, 2006

On Leadership and Teamwork

Wednesday, September 20, 2006 12:44:25 PM UTC

A great quote by Joe Torre I came across in an article on A-Rod's recent struggle:

"What Jason said made me realize that I had to go at it a different way," Torre says. "When the rest of the team starts noticing things, you have to get it fixed. That's my job. I like to give individuals what I believe is the room they need, but when I sense that other people are affected, teamwise, I have to find a solution to it."

It's also a great article in and of itself and speaks a lot about how our own expectations, not to mention the expecations of those around us (in this case, millions of Yankees fans) can weigh down on our ability to perform.

I think it also reveals a lot about how one should approach difficult tasks. To seek assistance, guidance, and counsel are things that many avoid in tough times due to pride or some such inner roadblock, but in fact, honesty and openness are the likely best approach. Honesty with oneself about the expecations and one's failure to meet said expectations.

It's well worth a read.
# Monday, September 11, 2006

Remembering September 11, 2001

Monday, September 11, 2006 1:32:55 PM UTC

I don't want to get all mushy here and get too deep into this historic event.  I remember being awoken by my girlfriend then (now wife) with a frantic call to turn on the TV after the first plane had already crashed into the World Trade Center.  I watched in disbelief, as if it were some sort of fiction, as the second plane crashed into the second tower on live television.

My mother was a mere five blocks away from the World Trade Center...it was quite frantic trying to check on her condition as all of the cellular channels were overloaded.  Luckily, she was unharmed and was able to make it out of the city that evening.

There's not much else to comment on this I guess, so I'll leave this with a photograph that I took in March of 2002:

World Trade Center Memorial

# Tuesday, August 29, 2006

It's Not Facism When We Do It!

Tuesday, August 29, 2006 2:58:14 AM UTC

There's an interesting thread on Fark about one Raed Jarrar and his experience at JFK airport.

To summarize, Mr. Jarrar had been wearing a t-shirt with the text "we will not be silent" in both Arabic and English.

What followed is perhaps every immigrant or non-anglo's worst nightmare.

It's an amazing account that must be read.  It raises the obvious question, "What the fuck is going on in this country?"

I don't know.  I find it quite scary as an non-anglo American.  While I'm from Taiwan, I wonder how I could be treated by anglo-American's should a war break out with China over Taiwan.  It's a scary thing.  I wonder how my wife
(of Polish-Italian descent) would be treated, sight unseen, as she bears my last name of Chen.  Would her appointments be declined?  Would people change tone once they saw her face to face?  How would people view me?  "Hey, I'm on your side!  Go Taiwan!  Go USA!"  I can only guess what the majority of US citizens of Middle Eastern descent, Muslim or not, are going through right now...

It's depressing in a way because, as Mr. Jarrar states, the very reason so many immigrants have come to call America home is because of the freedoms afforded to us and the Constitutional rights that America instills upon her citizens.

Raed asked of his interrogators:

"Why do you want me to take off my t-shirt? Isn't it my constitutional right to express myself in this way?" The second man in a greenish suit interfered and said "people here in the US don't understand these things about constitutional rights". So I answered him "I live in the US, and I understand it is my right to wear this t-shirt".

Zefrank sums it up best in this video:

As long as a small group of people can inflict mass panic across a large population, the tactic itself will remain viable.  One way to deal a blow to the effectiveness of terrorism is to deal with the terror itself.

The stupidity of the whole situation cannot be escaped: it's a freakin' t-shirt and security let him board the plane with the t-shirt anyways!

As we continue our fight to bring our style of democracy to the Middle East, ironically, we continue to see our rights and freedoms eroded.  Quite a quandary.  It's intriguing to think whether this is the brilliance of Osama in action.  Has he calculated this type of response in his attacks?  Has he forced the West into an anglo-Christian vs. Muslim battle (or at least the appearance of one) so that he might get more support and strength?  Is this how he wants us to react: to create another generation of dis-illusioned and malcontent Muslim youth to continue his Holy War?

While I do believe that Mr. Jarrar was intentionally trying to be provacative, I believe that it is his right to express himself according to the rights afforded to him by the Constitution.  Obviously, they did not deem him to be a threat to security as they let him on the plane after changing his shirt, but I can't help but feel how humiliating it must have been for him to have his rights stripped of him like that.  It would be one thing to request an extra air marshal to keep an eye on him...it's an entirely different story to confront him like this and violate his rights.

There are proponents of profiling that believe that this is the type of action that we need to take to increase the efficiency of our airport security and for the convenience other passengers.  But have we forgotten Timothy McVeigh?  Have we fogotten that white American citizens, working for the US Government, can be had for the right price?  In the end profiling would simply be a "feel-good" security measure that would in fact, decrease the security in our airports.  Even Israelis can find Arabs sympathetic of their cause and convince them (or perhaps force them) to spy on their country men for Israel.  What makes us think that the same couldn't happen with anglo-American's?

I really don't know where I'm going with this, so I'll offer some choice quotes from the Fark thread:

"ingvar" suggests:

If i was there, being an average-looking white (non-terrorist'ish) dude, i'd have stood up and said 'hey man, lets just swap shirts. they won't care if an average-loking (non-terrorist'ish) white dude is wearing an Arab Hate-Spech shirt, it'll just be like "fashion" to these moron's, so lets just swap shirts' .. and i'd let him wear my "Free Winona" or "OBEY (André)", or maybe "Nuke Gay Whales For Jesus" t-shirts

"Scandalous" raises excellent points against the "but it's a private jet" argument:

I cannot believe that I am arguing in support of Raed, but the "privately-owned jet" argument is not very persuasive for the following reasons:

1) Purchase of a ticket forms an express written contract, where the airline gets paid and in return promises to deliver the bearer of the ticket from place X to place Y, subject to certain regulations, and barring unforeseen emergency.

2) There was no unforeseen emergency other than that created by the airline in connection with Raed's shirt.

3) A statute, an airport rule, or an airline regulation are all examples of "certain regulations" in (1) above. The security personnel could not identify a regulation that could bar specific performance of the contract that the airline entered into. Hence, I am not convinced that such a regulation exists. I am therefore compelled to side with Raed in insisting that the airline carry out their side of the bargain.

"Mayhem_King" comments

He is misapplying Schenck v. United States. You can in fact wear a t-shirt that says, "I am a bank robber and going to a bank."

Clear and present danger was replaced with imminent lawless action.

If wearing a shirt with Arabic script is determined to create a lawless action, to be fighting words, or racially offensive, then a policy should be created and applied to everyone. In this case, an ad-hoc policy was created and applied only to him. That's the problem that I have here. If it is truly a problem to wear a shirt that has Arabic script, then add it to the growing list of policies. To be detained by Federal law enforcement until you change your shirt pretty much is a violation of free speach. That ad-hoc policy wasn't being enforced by a private company, it was being enforced by the Government.

mrvikings insistence that it never happened is weird. You can't prove that it happened so therefore, it never happened? Isn't that argumentum ad ignorantiam?

I think it is important that as Americans, we stand up for our civil rights. Standing up for our rights isn't being liberal, standing up for our rights and not letting our enemies get the better of us is extremely conservative.

# Monday, August 28, 2006

So I'm 25 Now.

Monday, August 28, 2006 4:36:53 AM UTC

This past week marked the 25th year of my life.

I've never been one to dwell on birthdays and the like; I'm not one to believe in relative and arbitrary systems, as our calendar is, but I cannot help feeling...old.

Yup, a "mere" 25 and I already feel old.  My wife says I have some gray hairs already.  You know, in high school, I used to be able to get my whole hand above a regulation rim (genetics cursed me with hands just ever so slightly too small to palm the ball while attempting a dunk); I used to be able to play basketball at the park in the sun for 4-5 hours at a time without much issue.  Nowadays, a few good minutes at the gym and I'm winded and heaving for breath.

Such is life.  Did I mention that I feel old?  Not so much in spirit I guess. I still enjoy many of the same things I did in my younger days (now I'm sounding old, too...just wait 'til I turn 30) like gaming, playing basketball, Scrabble, watching X-Files, and working out.  Simple things, you know?  But at this junction in life, I'm beginning to wonder whether I'm being too simple.  After all, there is a world to see and experiences to live out there.  But then again, I'm quite lazy when it comes to travel (lucky you're not my wife).

Perhaps Perry Bible Fellowship sums up my view of birthdays best with this simple comic strip.  To be another tick closer to the end of it all.  25 is a weird milestone.  It's the age when you're finally allowed to rent cars without penalty.  You typically get an auto-insurance discount when you're 25+.  It's the outlier of that 18-24 age bracket so covetted by advertisers (what, 25 ain't good enough for you?).  It's half ways to 30.

Not all is bad in the passage of the years; my relationships, I think, have gotten better in the last few years.  With my wife, with my mother, with my sister, and with others around me.  I've always been a personable guy (okay, maybe that's stretching it :-)), but not necessarily a sociable guy (likely due to my INTP profile).  I still live in my head waaaay too much, but I like to think I'm working on that (see what I did there?).

I watched The Weatherman today with the wife.  It's a great movie and I think it only made me start to do a bit more thinking about life.  I'm not sure who originally came up with the saying that "nothing worthwhile in life is easy" (paraphrasing), but it's quite true.  From interpersonal relationships, business endeavors, interior decorating (just because I've been on this interior decorating kick), cooking, basketball, photography, archery, anything...if you don't put effort into it, the end results will be nothing more than a fast food experience: passable, but ultimately unfulfilling and providing little nourishment (and it may even cause some constipation tomorrow).

You know, this last week I was stuck in a hotel in New Hampshire for four days and on my trip home, I contemplated what it was that I missed the most.  It was not my 42" HDTV (though I did miss my ESPN2 and USA Basketball).  It was not my leather office chair (though the room did have the most uncomfortable chair ever designed).  It was nothing like that.  It was my mom's cooking.  I missed it terribly.  I missed it because so much love and care goes into each meal she prepares.  She asks what I want to eat, she cooks with great enthusiasm, and she prepares the food with great care.  It's because it's not easy to prepare a full meal and work a full time job, as she does many days of the week, that I find it so worthwhile and fulfilling (or to put it another way, yummy in my tummy).  Needless to say, I'm not looking forward to "that day".

I guess growing old does this kind of thing to you.  You start to think about the things a little differently.

# Thursday, August 24, 2006

"The Ultimate Assist"

Thursday, August 24, 2006 5:07:49 AM UTC

There is a great article over on SI.com on the story of Kwame James.  It's a great read; don't miss it.

On a (vaguely) related note, I cracked open two fortune cookies on Tuesday and came away with some good fortunes.

Mine:

Don't be discouraged, because every wrong attempt discarded is another step forward.

And Sandra's (I stole her fortune :-D):

Doing what you love is freedom.  Loving what you do is happiness.

# Thursday, August 17, 2006

Quote of the Day

Thursday, August 17, 2006 9:05:26 PM UTC

I don’t accept the currently fashionable assertion that any view is automatically as worthy of respect as any equal and opposite view. My view is that the moon is made of rock. If someone says to me “Well, you haven’t been there, have you? You haven’t seen it for yourself, so my view that it is made of Norwegian Beaver Cheese is equally valid” - then I can’t even be bothered to argue. There is such a thing as the burden of proof, and in the case of god, as in the case of the composition of the moon, this has shifted radically. God used to be the best explanation we’d got, and we’ve now got vastly better ones. God is no longer an explanation of anything, but has instead become something that would itself need an insurmountable amount of explaining. So I don’t think that being convinced that there is no god is as irrational or arrogant a point of view as belief that there is. I don’t think the matter calls for even-handedness at all.

Source.

# Wednesday, July 12, 2006

To Be at a Crossroad...

Wednesday, July 12, 2006 1:39:49 AM UTC

The way our lives flow through time and the repitition that each of us encounter, day after day, tends to blur the multitude of crossroads that we reach and the different decisions that we make at each of these crossroads.

In a sense, this is what it's like to walk around a crowded city like New York City.  There are turns everywhere and roads and alleys which lead to every nook of the city.  But by design, it's never difficult to get back to where you were in case you do make the wrong choice and turn down the wrong road...these decisions come in passing and perhaps you don't even think about it.

But in every life, there are milestones that approach and crossroads that split into two clearly defined paths with no readily apparent way back to where you started. Looking down either road at this intersection, we imagine ourselves in the future and what it would be like to take either path.  Will we be fortunate and meet success or will it come to be that our decision haunt us in our dreams?  The decision is never easy as unlike a city street, it may be miles before we reach the U-turn.

I've felt this rarely in my near 25 years of life.  Even marriage was an easy and natural decision for me.  And now such a decision weighs on me with a paralyzing force; I just don't know what to do.  I am comfortable, but not completely satisfied.  My sensible side tells me to continue on the path that I have taken.  The dreamer in me tells me to ditch the map and head into the unknown.

Ah, to be at a crossroad in life, to be at once filled with hope and fear as well.

# Friday, June 23, 2006

So, Apparently, Teamwork is Counterproductive...

Friday, June 23, 2006 2:34:38 PM UTC

Teamwork is not easy.  It never is.  Whether it's basketball, football, sales, construction, or software, it's difficult to instill a sense of team and ensure that everyone operates as a member of a team.

There are individual egos to deal with, different levels of skill to integrate, different talents that have to be recognized in the context of the team, and there is the ever present problem of communication.

Lately, I've been disappointed in the level of teamwork I've been witnessing on my project (on a scale of 1-10, it'd be around a 2).  Sure we have our weekly call in and discussion and random emails throughout the week.  But is that enough to bring a large system, with multiple components together in a short timeframe?

I recently suggested to my teammates that we've been lacking the team spirit and that perhaps it's a good idea for those that will be interfacing with my component to at least install and test against the actual component that I wrote.  The following is my response to the response that I received, which claimed that such efforts at this time are "counterproductive" (names have been changed):

"counterproductive"?

Hmm...here I thought we were building interacting pieces ;-)

I don't know, maybe it's just me, but I feel like one person can only take code so far; working in isolation with little feedback leads to code with obvious bad practices and holes that are hard to spot once I've gotten a concept in my head. Not to mention that there will be tons of duplicate work efforts (as I discovered from Brian the other night, the database work I've been doing is also relevant for Don and Sam). I'm 100% certain that there will be bugs and inefficiencies that will only be turned up once you and Sam start to interface with it. Not only in my code, but also in your codebases as well. At least from my perspective, I'd like to find these bugs and hammer them out. To hope for the best when we plug it all together at the last moment is a bad way of working, IMO. I would even propose that the Friday session every week be turned into a full integration and end-to-end test session to get everyone to integrate and test pieces with a seperate Monday session to cover what the goals are for the week and catch-up.

And again, my piece is here to service WildCat and RazorBack...how can I be sure that it does this in an easy to use and well designed fashion if I'm the only one using it? It is certainly easy to use and well designed *to me*, but are there obvious mistakes in the design? Are the major flaws in the code that need to be fixed? Who knows? Everything looks rosy *to me*. End-to-end testing has not been done or setup and I feel that there are sure to be issues that will only be uncovered with end-to-end testing. I know there are flaws and I want to fix them, but many of the flaws are not so apparent to my eyes but would easily be exposed by end-to-end testing and WildCat and RazorBack actually integrating with the pieces.

I understand that we each have responsibilities. But isn't part of my responsibility to ensure that my piece properly services WildCat and RazorBack? Alternatively, isn't part of WildCat's responsibility to ensure that it can tell EastCastle to do what it wants?

I feel like the way we're working is much like a football team which never practices as a unit, each player only works on individual drills. Come game day, now all of a sudden the team is expected to play as a unit. How can the coach predict whether the team will work well if he never sees them practice as a unit? This is unrealistic even for the most skilled professional football players (that's what training camp and full team non-contact drills are for)...how can it be realistic for us? I dunno...building large systems is no less a team game than basketball or football or crew ;-) : the team that trains together wins together. Expecting pieces to magically work together after weeks or months of development in silos is dangerous and unrealistic to me.

Teamwork is difficult for any group of guys and gals.  Doubly so when the team is dispersed.  But is it "counterproductive" to try to build upon a team effort and really have everyone write software as a team?  Is it really an idealistic view of how software should be written that I'll discard as I age and become more cynical?  Bear in mind that I'm not debating "Aristocracy, Democracy, and System Design" as Fred Brooks does in Chapter 4 of The Mythical Man Month, as I strongly believe in "conceptual integrity" as a basis for simplifying and clarifying a framework or codebase.  But rather, what I'm questioning is the team working completely independently with little communication and actual testing of interfaces.

I'll admit that I myself haven't been the best of team players, but, none-the-less, all I was seeking was a minimum amount of teamwork: integrating pieces once in a while in "practice" as opposed to integrating in the few minutes leading up to game time and hoping for the best, you know?

# Thursday, June 15, 2006

Say Hi to Quincy

Thursday, June 15, 2006 10:22:20 PM UTC

That's Quincy, our new bearded dragon.

Interesting little critter...quite aware of us and of the surroundings; extremely inquisitive and quite cute :-) But also quite a pain in the ass to take care of.

# Sunday, May 28, 2006

I Feel Terrible...

Sunday, May 28, 2006 12:37:52 AM UTC

It was quite disturbing.

I was mowing the lawn and ran over a baby rabbit with the lawn mower.  I didn't see it in the tallish grass and it didn't move as I approached.

Ironically, I probably saved the life of the same rabbit three weeks ago when I mowed the lawn and noticed 6-7 of them huddled in a depression in the lawn and moved them to a safer area of the yard.

It was still alive and squirming after I ran over it with the mower.  I was struck with a deep sense of grief (seriously) and couldn't decide what to do.  I was thinking maybe drown it or put it under my car tire and back over it and give it a quick death.  But even that was painful to think about.  My heart really sank for a minute there.  I really couldn't imagine taking its life in any way, but at the same time, I knew that it probably wouldn't survive; a sense of panic washed over me.

Luckily, my mom was around.  She says it was dead when she picked it up.  But I suspect she killed it to end the suffering.

:-S

I really don't ever recall being in a situation like this before and I hope never to be again.

# Friday, May 19, 2006

Friday Inspiration

Friday, May 19, 2006 2:25:39 PM UTC

There's a great story about Gilbert Arenas, the Washington Wizard's guard, on CNNSI today (I'll paste because it's in a long-ish article):

It's a little before midnight when Wizards guard Gilbert Arenas enters the practice facility at Washington's Verizon Center. Tossing aside his gray sweat suit, he walks to the right baseline and puts up a shot. Swish. Collecting his own rebound he takes a step to his left and fires again. Swish. Slowly, he makes his way toward the foul line ... and stops shooting. Not yet, he says to himself. "I'm protesting the free throw line," says Arenas. "I'm disappointed in it. I want the free throw line to know, 'Hey, I'm not happy with you right now.'"

The sight of Arenas working out late is hardly unusual; after a wee-hours shooting session before Washington's playoff opener, he slept in the players' lounge. But now he has no games to prepare for. Two-plus weeks have passed since he went from deadeye to disappointment, his stellar first-round effort against the Cavaliers (34.0 points per game) undone by two missed free throws at the end of Game 6, setting up Damon Jones' series-winning corner jumper. Famously obsessive, the 24-year-old Arenas brooded about the foul shots into the night. "I just sat on my couch wondering what the hell just happened," he says. "Right then I knew I had to get back out there. You just can't let something like that linger."

Arenas was back in the gym the morning following the loss to Cleveland. And the day after that, and the next day and every day since, lifting weights and shooting jumpers -- but avoiding the free throw line until he feels ready for it. The Wizards' trainers have pleaded with Arenas to take a week off, as he had originally planned. Instead he has added laps in a nearby swimming pool to his regimen. Let your body recover, they cajoled. Instead he purchased a mountain bike to build his endurance on the 100-mile trails that wind through Washington.

I think we all have a little bit of this type of determination and passion within ourselves towards some goal that drives us, but sometimes, the vision of that goal and the drive to achieve it becomes muddied and diminished by the drudgery of crap that we have to wade through on a daily basis.  Other times, we let little setbacks pull us off the path and we use these as excuses to say to ourselves, "hey, I can't do this".

The goal seems too distant and far too high to surmount.  But in the end, the most valiant (and reasonable) effort that one can make is to put one's best towards achieving even a small portion of what one sets out to do.

I read a great reply by Shirin Ebadi, an Iranian human rights activist, in Time magazine a week ago; when asked about her favorite Koranic verse, she replied:

There is a verse that says God swears by time.  Anything you gain in life, you pay for with your time.  Time is the most important thing that has been given to man.  This inspires me because it reminds me how short our time here is.

My friend Joe recently (finally) cancelled his subscription to World of Warcraft so that he could focus on his graduate studies more.  I think sometimes we tend to forget just how short our mortal time is and as such, we tend to forget where our efforts are misplaced.

But look who's talking; I somewhat feel like a hypocrite since there are times when I'm terrible at managing my time and focusing my passion and drive to build awesome applications.  I admit that it's been quite a while since I've felt that drive, but it's always been that way with me; it comes and goes from time to time...now if I could only reign in the essence of that feeling...

# Wednesday, May 03, 2006

Random Happenings

Wednesday, May 03, 2006 6:55:38 PM UTC

Well, my pineapple died recently.

Yes, that's right, pineapple.  Sometime last year, I decided to start growing a pineapple plant after I picked up a weird interest in growing tropical plants (fruits in particular).

Why pineapples?  Well, I found out from various sites online that the pineapple has an amazingly rich history.  Plus, I love the taste of pineapple :-)  Besides, I figured it would be easier to try to raise a potted plant as opposed to, say a mango tree.

So I found some directions online on how to grow a pineapple and started to grow one from the healthiest crown I could find.

At first I was a bit skeptical as to how hardy the plant would be after reading the directions.  As it turns out, though, pineapples are amazingly hardy with regards to water and temperatures.  The plant survived sub-70 degree weather in my townhouse and office during the winter and wasn't any worse for wear.  But alas, it was not hardy enough for sub-50 degree temps.  I recently moved and since the weather was getting nicer, I started to keep the pineapple outside.  A couple of nights ago, I forgot to bring it inside only to wake up in the morning to find frost (!!!) on my car window.  Frost == dead pineapple :-S

It lived for over a year; not bad.  Quite an attractive plant, too.  I started to grow two more yesterday; we'll see how these two go.

On an unrelated note, I'm starting to suffer with "only" 1GB of RAM on my notebook (unfortunately, the max it can accept).  With VS.Net 2005 and ReSharper 2.0b running on a small project, it's taking up roughly 350 MB of memory.  To complicate matters, all of the 2005 apps (VS, SQL Management Studio, etc.) are such resource hogs, that there is noticeable lag when I use any of them.  I've had to shut down SQL Server for the most part (unless I really need it) and a lot of other services as well.

Merom can't come soon enough...

# Saturday, April 08, 2006

Life Goes On

Saturday, April 08, 2006 8:25:15 PM UTC

So I'm back from Utah.  Quite a trip.  I left New Jersey Monday morning at ~7:00AM EST and touched down in Utah ~11:00AM MT.  It only dawned on me when I got into the office there that it was quite a morning commute :-)

Some of the highlights and commentary from the week that was (in random bulleted list format):

  • Brad, our CEO, cooked for all of us one night at his house.  Made some very delish fresh baked bread, pasta, and jumbo tiger shrimp from Costco (I'm gonna have to go pick some up one of these days too).  I remarked to my wife that the square footage of his kitchen is larger than the footprint of our townhouse.
  • I have a distaste for American cars.  Numb steering feel has to be my number one complaint.  The Cobalt just feels terrrrible with regards to steering feedback.
  • Wow.  I was able to convince everyone on the team to use Subversion and Trac.  Amazing.  So I spent most of Thursday night setting up Subversion over Apache and also setting up Trac as well.  Took me roughly 6 hours :-S...and I'm still not 100% done.  But I'm excited.  I've just had terrible experiences with VSS.  It had gotten to the point where I was doing a daily .zip backup of my local files to an external HD since I didn't trust the VSS repository.  It's also great that it runs over HTTPS; much easier to bring new team members on board and we don't have to worry about licensing.
  • We also decided to go with .Net 2.0 and VS2005 for all new development.  Woohoo!
  • Brad is quite excited about Trac.  I'm slightly concerned that he's going to go crazy making tickets.

Now some not so random stuff.

It took me exactly 12 hours to get from Salt Lake back to New Jersey.  My return flight was supposed to stop over in Cincy, but because of thunder storms, we were diverted to Chicago.  Very scary stuff.  The pilot was trying to squeeze into a small window in the storms to see if we could get in there, but seconds later, came back on and let us know that we were running out of fuel.  We had to touch down in Chicago to pick up more fuel.  All was well, but I missed my connecting flight out of Cincy once I got into there.  So had to settle for a later flight :-S

I don't think I've ever really been afraid of flying since I've been flying around since I was a toddler.  But for a brief moment, a deep sense of grief and fear overcame me as we were in the sky, being battered by the turbulence and hearing the pilot tell us that we were running out of fuel.

Aside from the return flight, it was a good trip.  I think we really had a better sense of team this time around and it'll be good to have Brad around now since it gives a better sense of purpose and clearer direction.

I also finished the NHibernate documentation on the return flight.  Very good stuff.  After reading it, all of the stuff that I was struggling with the first two times around made much more sense.  NHibernate is perhaps too flexible and powerful for its own good; it offers so many alternatives to get at the persisted objects, that it really takes a lot of practice and study to figure out the use cases for each of the different access methods.

The only part of the documentation that I was really disappointed with was the tools portion; it was pulled directly from the Hibernate documentation and still referenced Java command line instructions and what not, which is obviously disappointing since it raises the question of where else the documentation could be wrong with respects to differences in Hibernate and NHibernate implementation and syntax.

NHibernate, at this stage, does almost everything that DLINQ does (from the early documentation that I've covered) with respect to ORM with the obvious exception of language integration (they'd have to write a custom compiler or comipler extension to get that).

# Saturday, April 01, 2006

So I've Started the Journey...

Saturday, April 01, 2006 6:05:12 AM UTC

A journey of a thousand miles begins with a single step.

Man, I can remember just a few months ago when NHibernate had almost no documentation (and what little it had was terrible).

Now it's a 145-page beast.  Okay, not quite as dramatic as 1000 miles, but still, damn thing took me like 15 minutes to print all of it.  And no way in hell I'm getting a staple through all of the pages.  I kinda liked reading the DLINQ documentation, so I figured it's probably a good idea to reacquaint myself with NHibernate on a more intimate level.

I'm going to try and finish it on the plane trip in and out of Utah next week.  Yah, I'm bringing my camera this time; missed some beautiful scenary last time :-S  I think this week, it'll really feel like I'm working at a new company.  It's been slow going as the company's CEO has been working onsite with a client and the engagement is just ending now.  This means that hopefully, the fun's only starting to begin.

It's 1:04 AM...what am I doing up reading about NHibernate?

# Friday, March 24, 2006

Of Crack and World of Warcraft

Friday, March 24, 2006 2:51:36 PM UTC

No, this post probably isn't what you think it's about.  Yes, World of Warcraft is like crack in its addictiveness and its ability to ruin your life.  One of my college roomates, Joe, has a townhouse around the corner from me (he used to rent from me).  Since WoW came out, he's been hooked on it.  Whenever I go over there, someone in that house is always playing WoW.  It's gotten to the point where the kitchen is a disgusting, festering mess of putrid food and garbage (yuck, the whole first floor smells like nasty).

But anyways, I digress. 

I came across an article on Wired, You Play World of Warcraft? You're Hired!, which recounts the experience of Stephen Gillett an all around successful guy who also happened to be a guild master in WoW.

The article's premise is that playing games like WoW educates players in a way that's more powerful than tradtitional education.  In particular, it provides a sort of deep social education (how to live, work, lead, and interact within a group) that many of the players often cannot experience in real life.

Unlike education acquired through textbooks, lectures, and classroom instruction, what takes place in massively multiplayer online games is what we call accidental learning. It's learning to be - a natural byproduct of adjusting to a new culture - as opposed to learning about.

While Gillett is probably a bad case to use, since he was already pretty successful to begin with, it certainly does raise the question of how learning through immersive gaming can help build skills that translate into real world success.  What's significant is what is being learned, especially at the highest level of the guild.  At the level of a guild master, an incredible amount of things that translate into real world success are mastered and exercised on a daily basis. 

In this way, the process of becoming an effective World of Warcraft guild master amounts to a total-immersion course in leadership. A guild is a collection of players who come together to share knowledge, resources, and manpower. To run a large one, a guild master must be adept at many skills: attracting, evaluating, and recruiting new members; creating apprenticeship programs; orchestrating group strategy; and adjudicating disputes.

Indeed, it can take hours to organize and execute a coordinated raid of 20+ players all over the world.  Regardless of the venue, it takes a great amount of leadership to get any number of people to focus on a common goal and execute it in a timely manner.  Even more impressive is that in most guilds, leadership naturally evolves in the sense that most of these people come together without knowing each other and those with the ability and desire to lead tend to bubble up the chain of control.

The article further brings up a good point in stating that virtual worlds are great platforms for teaching these lessons because the cost of failure is low:

Where traditional learning is based on the execution of carefully graded challenges, accidental learning relies on failure. Virtual environments are safe platforms for trial and error. The chance of failure is high, but the cost is low and the lessons learned are immediate.

Cost of failure is a very real metric.  I think people are often afraid of trying new things or undertaking the journey to learn something worthwhile because of the high cost of "failure" in the real world (I'm certainly no exception; it's why I hate to read books because "what if it sucks?").  At the least, it costs you a lot of time to, for example, learn a new language, that you may never get to use frequently.  At the worst, it may cost you a significant amount of money if we're talking about running a business or making an investment.

When the cost of failure is low, it becomes trivial for anyone to adhere to the old adage, "If at first you don't succeed, try, try again."

As for WoW, my personal impression that the skills to be a successful guild master in WoW (or a clan leader in any other multi-player game) are no different than the same skills that it takes to be a successful project manager or business leader in the real world.  You have to be able to evaluate resources and place them in a position to succeed.  You have to find the right mix of resources (build a well balanced team).  You have to be a skilled people person (well, at least in your online persona) and be able to resolve member disputes.  You have to be able to motivate people by controlling incentives (distributing loot).  You have to have great communication skills and overall great organization skills.

In actuality, this isn't too different from what it takes to be successful at many things in life, including dealing crack.  In Freakonomics, Steven D. Levitt recounts the experience of Sudhir Venkatesh in 1989, then a young PhD candidate in the field of sociology, and "J.T.", the leader of a gang that he stumbled upon.

So how did the gang work?  An awful lot like most American businesses, actually, though perhaps none more so than McDonald's

J.T., the college-educated leader of his franchise, reported to a central leadership of about twenty men that was called, without irony, the board of directors. (At the same time that white suburbanites were studiously mimicking black rappers' ghetto culture, black ghetto criminals were studiously mimicking the suburbanites' dads' corp-think).

Levitt goes into further detail about the incredibly well organized structure of the gang and the immaculate sales ledger that J.T. kept regarding all of the income and expenses of the gang, mostly from selling crack.

In the end, J.T. prevailed.  He oversaw the gang's expansion and ushered in a new era of prosperity and relative peace.  J.T. was a winner.  He was paid well because so few people could do what he did.

"We try to tell these shorties that they belong to a serious organization," he once told Venkatesh.

As is obvious, leadership is a valuable skill, whether it's natural, learned through a proper institution, or acquired through accidental learning.  The interesting question is how well these skills translate into the "real" world of business.  My feeling is that very few gamers will actually make that virtual-real world connection.

It's simply amazing that Joe probably puts in hours of research each week regarding items, weapons, skills, map routes, raids, and so on.  I often wonder what could be accomplished if Joe put the same effort into his personal life as he did into WoW say doing research on SharePoint or .Net.  But then, the learning wouldn't be experiential in nature, so it's hard to say.  I also wonder whether any of these skills can actually be translated into real world success since the whole idea of the online persona is to be someone that you can't be in the real world.

I should also mention that I think that MMO gaming instills a more general type of positive social training that helps even the most rebellious and anti-social of people since, typically, you cannot reach high levels of success in MMO's without the help of a group and you are forced to fall into a social order.  In that sense, it's not much different (and perhaps even more effective since anyone can join) from traditional, contrived, school activities that serve the same purpose like cheering, team sports, debate club, etc.

I don't think Joe believed me when I first proposed to him that MMO's were ultimately about a social experience.  You see, he had started playing the game "solo" and didn't want to be a part of any guild since very few of the group of us that played games together were planning on buying WoW.  This kind of reflects his real life nature in that he has a very close circle of old friends that he sticks with and isn't the most outgoing person (and neither am I, actually).  But now, oddly enough, as I understand, he's one of the higher level leaders of the guild that he's in.

Well, I'm just kind of stammering on now.  So there you have it.  Next time someone makes the obvious comment that WoW is like crack, you can bring up a totally different angle and be a (bigger) nerd.

FYI: I do not play WoW; I tried Guild Wars for a month or two, but I just can't really get into MMOs, possibly due to my INTP personality profile; more likely it's just because I'm even anti-social in my online personas :-D

EDIT: There's some great commentary over at a related thread on Fark, I'll include some choice bits:

AdessoL:

I've been a guild leader in WoW. I've also held assorted real life positions of responsibility. The article has a good point. You need to bring 50 people of all ages and personalities together to perform complex tasks, without any of the typical forms of reimbursement. You can't force people to be there, and you can't really pay them in any way that has an impact in their real lives.

In general, I've noticed that the guild leaders in WoW have to be much more saavy than your 'real life' management. Most of the latter tend to exploit the power they hold over their employees...they know that they can get you fired, affect your pay, make sure you get all the shiat jobs.

In the videogame, you have to be more persuasive. Start bossing around a 15 year old whose never had a real job, and he'll just up and quit. Patronize a 40 year old who makes $100k/yr, and he'll quit. It's a much more individual-based form of management.

Xaneidolon:

Two candidates - all other things exactly equal - apply for a job. One tells me in the interview that he/she can keep a herd of 100 or so online gamers on task and organized for 4-5 hour chunks of time. That's gotta mean something.

ranak:

But irregardless, to do such a thing would take management. And that's what the article is really about. Proper management and people skills. Get the right people with the right mix of talents and you're set.

And if you can do that in the virtual world with jackass 13-year olds that nerf you and then question your sexuality, you can do it in real life.

# Saturday, March 11, 2006

Back from Utah

Saturday, March 11, 2006 1:24:03 AM UTC

So I just returned from Utah and a trip out to visit my new cohorts at Zorch Software.

Man, I hate flying.  Planes are just terribly cramped and my legs feel like Jello after even 2 hours.  Not to mention that fat people that always seem to end up next to me and take up 1.5 seats, seemingly.  And what's up with the cell phones?  I swear, people in and around airplanes talk extra loud when they're on their cell phones.  I visualize myself punching some of these stupid people in the face and yelling "STFU!"  I just didn't have the patience.  When the screener at the airport asked me to take my fleece off, I blurted out: "So what if I have a weapon strapped to my chest?"  Seriously though, what's the point of making me take my fleece off if you don't make me take my shirt and pants off?  What if I have a gun strapped to my leg?  Oh that's right, the metal detector would catch it.  So why the fuck do I have to take my fleece off?!?!  And seriously, you think a terrorist would be stupid enough to even try?  They'd surely come up with much more creative solutions than the obvious.  Our airport security is a joke.

Okay, enough ranting.

But anyways, Utah--around Salt Lake City, in particular--is a beautiful place.  The area where I spent my week is surrounded on both sides by huge, snow-capped mountains.  It was awesome waking up in the morning and seeing the mist move past the mountains as the sun was breaking just behind the mountains.  Simply beautiful.

Some tips for anyone going to the  Salt Lake City (SLC) area:

  • Utah weather is weird.  Very weird.  When I woke up Thursday morning, my rental car was covered in 3 inches of snow.  Later that day, a huge blizzard whipped through.  Honestly, I've neve seen such a violent snowstorm (I've seen more snow, but the winds were wicked).  But then by afternoon, it was 60F and all the snow had melted.  WTF?  It was like it never snowed at all.
  • Google maps is all wrong.  The exit numbers in Utah in the SLC area are all wrong.  I spent a good portion of Monday night trying to figure out where the hell I was because the directions I had were just terrible.  Brad told me that they actually made an error during construction for the Winter Olympics in 2002 with regards to the mile markers. Doh!
  • Lots of places to eat.  So much variety and so many different choices.  Downtown SLC is just jam packed with restaurants.
  • Impossible to get a hotel room during the middle of March.  So Brad only booked me for the first two days since he couldn't find anywhere to book the full week.  The hope was that people would cancel, but I wasn't so lucky.  So I spent Tuesday night calling around trying to find another place to stay.  Called like 8 hotels.  Nothing.  Which leads to...
  • As I was told by Blake, Utah is the skiing Mecca.  So many people there skiing.  Wish I wasn't such a pussy :-D

All in all, it was a fun and productive trip (and a bit frustrating at times (did I mention I hate flying?)).  Brad's house was beautiful, although incredibly hard to find.   Some genius decided to name all of the roads in the development the same name with a different suffix (i.e. Draper Woods Dr., Draper Heights St., Draper Way, etc).  Also curious is the fact that those Utes like to keep all of their street signs the same size.  So even long ass street names like "Everglade Mountain Way" got squeezed onto these fairly small signs.

Okay, I'm ranting again.

Well, anyways, I liked Utah.  I'd even consider moving out there.  If you have a chance, do visit and enjoy the sights.

# Tuesday, February 28, 2006

The Workspace

Tuesday, February 28, 2006 1:10:12 AM UTC

DSC01696.JPG

This was from about a week ago. There's an extra computer now, an old AMD based machine that I'm using as a source control server. Way too cramped now. Priority #1 when I get a new house: office.

# Friday, February 24, 2006

Of Creativity, Skill, and...Television?

Friday, February 24, 2006 2:33:21 AM UTC

I've never been much of a television guy, except for news and sports, especially "reality TV" shows.  But two shows have really caught my attention recently: Dancing with the Stars and Project Runway.

I think what catches my attention about these shows is the incredible amount of creative energy and passion displayed by all of the participants.  You'd figure that a guy like Jerry Rice, the greatest wide receiver ever, would have been through it all and experienced all of the emotion and passion that comes with competition.  And yet, you can just see how much he's enjoying himself and really, really working hard at this competition.

Drew Lachey is also amazing.  Like all of the other competitors, he is really, really into it and really driven.  (Just watched his final dance, non-freestyle, and it was amazing, perfect 30!).

The person that I'm more amazed by is Stacy Keibler.  Wow, she is beautiful.  Beautiful body and, more importantly, amazing skill.  Of the non-professional dancers, she is definitely the best one on the show (Drew is second).  Seductive, silky smooth on the floor, and absolutely amazing in all respects. 

When asked about this experience, Stacy said:

"This is the first thing I've done in my life where I have fans who are children and women, instead of just men...If I had the chance to do it again, I wouldn't think twice.  It reallly has changed my life.  I've been offered movies and I'm auditioning.  I kind of wake up every day with a smile on my face and pinch myself."

Maybe more schools should add ballroom dancing to their curriculum?  But to be sure, this is great, enjoyable television.

I also caught a short piece in USA Today on Dolly Parton's Oscar nomination for her song Travelin' Thru written for the movie Transamerica, a movie about a pre-operative transsexual.  Now I've never really known much about Dolly Parton, but this piece really boosted my respect for her a hundred-fold.

"Some things are strange to me, and some things are odd," says Parton, 60.  "But I don't condemn.  If you can accept me, I can accept you."

"Having a big gay following, I get hate mail and threats" she says.  "Some people are blind or ignorant, and you can't be that prejudiced and hateful and go through this world and still be happy.  One thing about this movie is that I think art can change minds.  It's all right to be who you are."

Just thought I'd share :-)

# Tuesday, February 21, 2006

Deep.

Tuesday, February 21, 2006 3:07:24 PM UTC

From my coworker, Igor:

It is too late for me. I had my formula. Man who clean cow's crap all his life afraid mostly that cow will die.

This was his reaction to Paul Graham's essay, How to Do What You Love.  A short excerpt, a few paragraphs, of the excellent essay:

To do something well you have to like it. That idea is not exactly novel. We've got it down to four words: "Do what you love." But it's not enough just to tell people that. Doing what you love is complicated.

The very idea is foreign to what most of us learn as kids. When I was a kid, it seemed as if work and fun were opposites by definition. Life had two states: some of the time adults were making you do things, and that was called work; the rest of the time you could do what you wanted, and that was called playing. Occasionally the things adults made you do were fun, just as, occasionally, playing wasn't-- for example, if you fell and hurt yourself. But except for these few anomalous cases, work was pretty much defined as not-fun.

...

It's hard to find work you love; it must be, if so few do. So don't underestimate this task. And don't feel bad if you haven't succeeded yet. In fact, if you admit to yourself that you're discontented, you're a step ahead of most people, who are still in denial. If you're surrounded by colleagues who claim to enjoy work that you find contemptible, odds are they're lying to themselves. Not necessarily, but probably.

I think this is a must read for anyone between the ages of 16 and 30; it's a revelation to why many of the youth today are mired in apathy and seemingly dragged down by the weight of responsibility.

# Sunday, February 19, 2006

Nate Robinson is my Hero

Sunday, February 19, 2006 9:11:20 PM UTC

For those that aren't familiar, Nate is the "vertically challenged" rookie point gaurd on the New York Knicks basketball team.

Yesterday, this 5 foot, 7 inch human spring won the slam dunk contest in the unlikeliest twist of events.  Just when it looked like Andre Iguodala was about to coast to a victory in the slam dunk contest, Nate pulled out one of the most flawlessly awesome dunks, EVAR. I absolutely exploded off my chair when he performed the dunk with Spud Webb and completed it on the first try.  Absolutely amazing.  Scared the crap out my wife and cats when I started screaming like a mad man.

I think what's more amazing is Nate's physical and mental toughness.  On that first point, the man exerts a ton of energy to be able to be able to propel himself vertically as high as he does against the laws of gravity (I'm not about to bust out the physics equations).  I give the man a great amount of credit for that as he failed to connect, try after try, on several of his dunks.  And yet, there was no quit in his body; there was no way he was going to give up and settle.  You could tell that this man willed his body to do this bidding.  Absolutely amazing.  On the second point, some people would be mentally frazzled by the failure of the first 10 attempts and accept that it was not meant to be.  On the contrary, you could sense that the thought of failure and accepting said failure never crossed Nate's mind; you could see the determination in his eyes, try after try.

Such determination and physical toughness was electrifying to watch.  I was simply captivated by this slam dunk contest.  The very best that I can recall ever having witnessed and one that will be memorable for generations to come, I think.

# Saturday, February 11, 2006

Weekend Thoughts

Saturday, February 11, 2006 8:04:05 PM UTC

Just a collection of random info to wrap up the week that was.

  • This is the first year I've ever filed my own tax return.  It's also the largest tax return that I've received...hope the IRS isn't coming for me. Did it all online via http://www.turbotax.com/
  • Every week, when I get back from Connecticut, my cat crawls on my leg and does this silly "floppy cat" act.  He just flops down on my leg and pretends like he's dead or something.  Conclusion: he needs to go on a diet :-D
  • Excellent issue of Time this week.  Covered some interesting topics, including science education in America and acceptance commitment therapy (very interesting topic).  It also had an interview with Terrance Howard, the Oscar Nominated actor who starred in Hustle & Flow and Crash:

    I want to be the condensation on the glass. I want to be that phenomenon that takes place between hot and cold.

  • Grad school is expensive.  But it's worth it for the sake of education, right?
  • Did I mention that I did my taxes?  I'm elated.

That's all.  I'm working on completing my latest workshop, "Of XML Schemas and Object Models" and I have two more in mind.  I plan on doing a workshop on creating a multi-threaded process status dialog and one on including inline images with CDO with .Net (I get a lot of hits via various search engines on this topic).  I'm also thinking about doing one on using CDO to create MHTML snapshots of web pages...so much stuff to work on, so little time.

# Sunday, February 05, 2006

The Problem with Ordinary

Sunday, February 05, 2006 8:44:03 PM UTC

I came across a very good article by Ian Thomsen on SI.com discussing Shawn Marion's "frustration" towards his role in Phoenix.

Marion is averaging career-highs of 21.4 points and 11.9 rebounds, well on his way to a fifth-straight year of producing at least 19 and 9. Those are enormous numbers for a small forward, yet Marion believes he could do more if asked.

"You can improve anything you want during the summer, but if you don't get to work on it during a game, it just goes away and you go back to doing whatever it is they want you to do,'' says Marion, 27. "That's one thing I don't like. It's frustrating for me because I can do so many other things on the floor and I don't get the opportunity. I'm limited to doing certain things, and that sucks.''

Context must be introduced before this train of thought gets carried away. Is Marion demanding a greater role in the Suns' offense? No. "We're in winning situation,'' says Marion. "You don't get bleep in this league unless you win; I learned that a long time ago. I've been around people who say it's all about them, but they're wrong -- it's a team thing.''

What he's trying to say is that he isn't as impressed with his numbers as everybody else seems to be. He knows they could be gaudier.

"When I'm in the summer, playing pickup and working on my game, I'm working on pick-and-roll, handling the ball, doing all that kind of stuff -- but I don't do that here and it just really goes away,'' he says. "I do everything in the summer. I play '1' [point guard] through '5' [center]. I'm a pretty good passer, but I don't get the assists because I don't have the ball.''

I think I'm in the same boat with Marion, on some level.  Recently, I've just been so frustrated by the type of work that I'm doing at my company.  But it's not just a temporary issue; I just don't see that the company is dynamic and innovative enough to really land the type of contracts that I want to work on.  I've been fortunate that the last 1/2 of the previous year, we were able to have quite a bit of freedom in terms of execution, but if the current project I'm on is any indication, then it's not a good sign.

Understand, that like Marion, it's not really an issue of selfishness; of course I want to help my managers, my sales guys, and my company succeed.  Rather it's the fact that I work hard to become good at what I do.  I'm continually improving my software engineering IQ by consuming information through books, weblogs, magazines, and webcasts.  I make a real effort to refine my technique and learn new technologies.  Like Marion, I'm willing to take a hit for the team (I'm travelling to CT on a weekly basis at the moment, which isn't too pleasant, and doing some grunt work).  But it's frustrating because I know I could do so much more in the right environment. 

It's frustrating because I could help the company even more if the leadership could create/find the right opportunities. It's frustrating because I work on understanding design principles, software engineering practices, new tools, and other aspects of building applications/software, but all of that goes to naught due to the nature of the work I do (heavy in volume, yet light on the factors that interest me).  It's frustrating because I always want to take a step forward in terms of professional development; I don't want to stagnate.

Bah!  Just more bitching and moaning career-wise I guess.

# Friday, February 03, 2006

A Little Introspection

Friday, February 03, 2006 12:32:09 AM UTC

I've always had a hard time figuring out what I want to do with my life. From a career perspective, I've always had a hard time defining what interests me because, to be honest, everything, interests me. Well, let me clarify that, everything technical, from a software perspective, interests me. From BizTalk to DHTML to .Net to software design, I want to learn it and I want to explore it.

For the most part, I'm not even particularly interested in mastering "it"; I'm just curious about how things work and what things do. Reaching a level of mastery with any of the technologies I work with is purely happenstance and a byproduct of my repeated experience with it (not that I've mastered any of the technologies I work with, but I think I'm certainly above average in most areas).

I think that, even beyond that aspect, I'm fascinated by refining and improving my technique.

The act of building a typical house is fairly standardized these days. For the most part, there's very little innovation and challenge in building houses because most houses are built from the same mold. Whether you build a 2000 square foot house or a 5000 square foot house, whether you build a house with brick face or a house with siding, whether you build a house with three bedrooms or a house with four bedrooms, the act and practice of building a typical house remains pretty standard for the most part. In fact, many companies have capitalized on this fact by building house "factories" which kind of lay out a house's frame and various bits and all of the core pieces of the frame are shipped on one or two flatbed trucks, partially assembled.

For the contractors that build these houses, there's very little challenge; there's very little knowledge gained after constructing such a house. The entire design process has already been thought out and the difficulties taken care of ahead of time. All that's left, really, is to do the manual labor.  At the end of the day, this is what most builders do because it's what pays the bills and that's good enough.

For a comparatively small set of contractors/architects, there are clients that demand houses that are different. What different means is up for interpretation. It may mean building a house on a site that makes it extremely challenging to build a sound foundation. It may mean constructing shapes that typically aren't constructed in cookie cutter houses. It may mean integrating systems (networking, electrical, software control, etc.) in ways that have never been integrated before. It may mean building with materials that typically aren't used due to lack of exposure and knowledge. It may mean utilizing untested and undocumented methods to accomplish what would otherwise be impossible. Whatever the definition, this class of builders/architects are driven by a different desire. They're not so much driven by the bottom line (making a highly profitable business) as they are by the chance to innovate (even if this term is used in a relative sense), the chance to try something new, and the chance to improve the understanding of techniques and tools that may otherwise be foreign.  If these individuals are successfull, financially, that's just the icing on the cake.

That's me in a nutshell :-)

In my consulting days the last few years, I've seen both sides of the coin. I've worked places where the work was so cookie cutter and boring, that I started to look for new positions even just a few weeks into the job. I've been in at least two organizations that were so creatively stifling and just not a developer friendly environment that I ended up just being so frustrated and a little drained each day I had to be there.  On the flip side, I've had positions that offered me opportunities (although not consistent) to build some really awesome solutions.  I've had positions where I've been given free reign to do some really creative work (both visually, programmatically, and design wise).

I think what I'm seeking, nowadays, is the ability to do the latter, but on a much more consistent basis; I want to feel like I'm doing something interesting and challenging every day that I wake up. I want to work where I'm expected and given the opportunity to learn ideas, concepts, constructs, techniques, technologies, processes, frameworks, and practices that would otherwise be considered unimportant to deadlines. I want to work with people that are as geeky (or even more so) than I am.  Certainly, I understand that the bottom line (dollars wise) is important, but I want to work where there's a fair balance between the that and taking some risks.

This morning, I was handed two printouts of lists of incentives from Handbook of Human Performance Technology (quite a hefty, but seemingly interesting book). The lists are broken down into monetary and non-monetary incentives. Reading through these lists, I could immediately tell what this superior was trying to point out to me. I identify very well with the items listed in the non-monetary list, including:

  • Choice of project,
  • Flexible schedule,
  • Informality,
  • Nature of work,
  • Type of community,
  • Type of organization,
  • Mentoring,
  • Participation in professional conferences,
  • Support for personal development,
  • Training materials,
  • Job aids and documentation,
  • Type of furniture,
  • Freedom to innovate,
  • Dynamic leadership,
  • Entrepreneurial support,
  • Membership in elite team,
  • Patents

On the other hand, I find far fewer items that I can identify with in the complementary list. Things like:

  • Overtime payment,
  • Weekend payment,
  • Clothing allowance,
  • Sick leave,
  • Club membership,
  • Expense account,
  • Medial insurance,
  • Stock bonus

Just don't concern me at all. I'll gladly work weekends, holidays, 16 hour days, etc. so long as the work is interesting to me. To confirm this, simply ask my wife, who oft complains about this and claims that my company is screwing me somehow. But I never think about projects that are interesting in those terms. I frequently work unbilled hours that I don't even count when I'm deep into something I'm interested in.

Well, I'm not totally agnostic of the monetary incentives. If that were the case, I'd be doing my PhD right now on my way to being a professor or a high school math/science teacher. I certainly believe in receiving a competitive, market salary and a fair bonus plan.

This last bit is the reason why I think I'm starting to fall out of love with my current job. Whereas in the early-mid portions of the last year, I've been able to do some fairly nifty work and work alongside some really good people, the last few months and the outlook at my current company seems bleak for doing the type of innovative and interesting work is waning. For the past year, I've made sacrifices (perhaps selfishly from the perspective of my wife) in terms of my salary for the opportunity to do cool things, work with people that I like, and work at a site close to home. But I'm just not feeling the love these days.

There's a good passage from this printout that I received this morning that kind of sums up my current situation to a T.

Adequacy is the condition of being sufficient for a given purpose. It is a relative concept: what is adequate for one individual or group may not suffice for another. There are two aspects of the adequacy of an incentive system: it should enable the employee to maintain a standard of living typically associated with the job, and it should be comparable to incentive systems associated with other jobs available to the employee.

The first aspect of adequacy deals with the cost of living at an expected level of quality of life. When the same level of salary does not tempt a computer programmer from Columbus to move to San Jose, it is probably because the salary does not fully compensate the increased cost of living in California. Similarly, a newspaper publisher must provide greater salary or allowances (including housing) to successfully induce an Indianapolis reporter to move to Tokyo. In many developing nations (and among such professions as teaching and nursing in developed nations), inadequate salary is the major obstacle to recruiting and retention of talented individuals.

I'm actually more interested in the second aspect, but unfortunately, the printout left that page out :-S I'm currently making a long journey each week from my home in New Jersey to a client site in Connecticut. It's not that the commute is that bad, really, it's that there's no incentive for me to do so. It's not even a matter of being short sighted; even in the long run, there's no incentive for me to do this because of the nature of my company, especially when the work is so boring and grinding (even worse considering that the environment isn't developer friendly).

So that's that. I think I may be leaving my current company, the longest tenure I've had with any company, in the next few weeks for either an opportunity to do more interesting work or at least make more money doing more driveling work :-) Just a little thinking that I had to get off my brain and put in writing.  As Nader would say, we shall see.

# Monday, January 30, 2006

Happy Chinese New Year!

Monday, January 30, 2006 7:45:28 PM UTC

Yay!

I celebrated over the weekend with hotpot at my mother's significant other's house.  It was great...I love hotpot!  But so damn tired from my drive home from Connecticut the night before (I live in Jersey, but currently working in CT).

As we were eating, my sister relayed an amusing story to me regarding my Amazon.com reviews.  Apparently, one of her friends had come across my review for the Microsoft Natural Ergo 4000 keyboard while searching for a new keyboard.  As relayed to me by my sister, this friend became quite excited and called/emailed/messaged my sister and started asking if she had a brother in North Brunswick.  Funny how small the world is I guess.

Even more interesting, this morning, I got an email from someone who had read my review on the same keyboard and wanted to know if my opinion had changed since owning it.  Of course, I replied to this woman and told her that the 4000 is a fabulous <<in that nasal, metrosexual tone>> keyboard.

# Saturday, January 14, 2006

Now We're Getting Somewhere

Saturday, January 14, 2006 10:43:00 AM UTC

I think that in these last two weeks, I'm finally starting to figure out the answer to one of my least favorite interview questions: where do you see yourself in x years?

I think the problem, in my case, is that my technical skills always shoehorn me into a developer's role, by default.  However, doing things like building Windows forms and web forms here and there doesn't satisfy me.  It's not challenging to build point solutions here and there.

One thing that I like about being a consultant is that I get to see many different environments and I get a chance to see how many different companies operate from an IT perspective.  When I engage a client, I always end up thinking "big thoughts".  I inevitably share my "big thoughts" with others and (you'd think I would learn my lesson by now) always end up with the short end of the stick, one way or another.  Thinking "big thoughts" as a consultant isn't always a good idea for a number of reasons (or more accurately, sharing such thoughts with the customer); it inevitably leads to strife between the established developers and architects.  To begin with, the business of thinking "big thoughts" is typically held by an employee of the client or by a less technical, more senior "architect" (either consultant or employee). 

The problem with the former is that you rarely encounter an employee in a non-software related industry that really keeps up with the technology that changes so rapidly around them.  Often times, companies are slow to move to newer technologies.  There are companies that only switched from ASP to .Net in the last year; they're 3 years late to the party.  Not only that, working within one environment for so long to be trusted with the role of "architect" typically means that one becomes too engrained in the ways of thinking of the other developers within the organization so there is a resistance to trying something new; there is a resistance to improving upon designs limited by weaker frameworks of the past.  Instead, the new development is inevitably shoehorned into the "traditional" way of thinking ("this is the way we've always done it" (incidentally, this is what Scott Bellware meant to address when he coined the term "Visual Babytalk" (It's not that I have anything against VB.Net, in fact, I have a workshop written VB.Net, it's just that the majority of the developers that think in VB are from an antiquated era of software development))).  A developer that wrote the last system in ASP+VBScript is going to be a bad choice to design the new system which will be implemented in ASP.Net+C#.  The radical paradigm shift in architecture isn't apparent to many and most implementations end up being little less than .Netified versions of the old ASP applications using the same principles that were used when writing ASP.  Yuck.

The problem with the latter is that more senior architects are typically less technical or they've strayed from their technical roots.  Without a deep understanding of the technologies that are evolving, there is no way that good software design can arise.  It ultimately ends up in a design that mirrors last gen. thinking.  Now I'm not saying that senior architects can't design good systems.  It's rather that there are so few architects that remain technically rooted in the latest technologies and software design principles (of course this is not to say that there aren't fundamental, "old school" principles that still hold).  A part of the problem is the business model where a management position is equated with higher salaries.  So instead of equating a higher salary with a more technically sound and educated developer, companies like to promote and bring in new developers (employee or consultant) that already know the new technologies.  And let's face it, people have lives.  As you progress in life, you will have children, you will have a house to take care of, you will have multitudes of responsibilities that distract from your ability to focus on studying technology and design principles.  It's an issue I fear I will have to encounter in the next 5 years (and I thank my wife for taking a big burden off of me by taking care of most of the day-to-day responsibilities like paying bills and that sort of trivial stuff).

Now don't miscontrue my words; I hardly think that I'm "The One" or anything like that.  In fact, I openly admit that I still have much to learn.  When I say "big thoughts", I simply mean to think beyond satisfying immediate needs.  It's the difference between giving a man a fish and teaching a man to fish.  It's the difference between putting a bigger, more powerful engine into a below average car in hopes of driving sales versus building a better factory and hiring more skilled workers which will yield higher quality.  It's the difference between trading for a basketball player that averages 5 points per game more to try to win games versus rethinking the offensive and defensive schemes to improve the chances of winning (i.e. Dallas Mavericks).  It's the difference between designing a processor with a higher clock speed versus designing a more powerful processor (Intel Pentium IV vs. Intel Pentium M/AMD).  It's the difference between thinking 2 weeks into the future and thinking 2 months down the line.

So I think I know what to ask next time I go into a job interview: does your organization like to think big thoughts?  I don't want to sit around writing reports or tweaking Windows forms.  I want to write the framework to help the developers more rapidly write and deploy the reports.  I don't want to sit around tweaking Windows forms every time a business person wants to change a layout.  I want to write the framework to allow for an easy to reconfigure UI.  I don't want to do trivial programming tasks.  I want to build complex things.  I don't want to work under a technical architect/lead developer who's less technically educated than I am (I make a distinction between technical architect and business architect/analyst) unless said individual is open to new ideas, new technologies, and new ways of thinking.  I like to think "big thoughts".

My managers and the customers (business people) don't always like that.  Managers think small thoughts.  They're like children in the sense that they have short foresight.  Part of that is that they're at the whim of the business people and in the eyes of the business people, if you're not contributing to the bottom line today, you might as well be gone tomorrow.  They've been conditioned to operate in a mode where quantity is valued over quality, where getting it done now is more important than getting it done right.  When you work like this, what you end up with is a pieces of code that are cobbled together, difficult to maintain, and costly to fix. 

Unfortunately, very few managers that work outside of software related industries think big.  I don't think that I've ever met a manager that I would say "thinks big", but I think I've come close by having managers that allowed me to think big by trusting me and allowing me to work the way I like to work.

I remember telling Brian, my current managing consultant, that I like to work on things that don't have value.  More accurately, I like to work on things that don't have immediate value.  The value of such things is never apparent in the short term, as in the short term, the paying customer wants to see progress.   When building such things that have little immediate value, it's very difficult for the customer to understand that if a little more effort is put in upfront to solve the more complex problem, then it will be many times cheaper to solve the simple problems down the line.  Writing a framework to create and distribute reports costs a lot of money upfront with little to show for it.  But the benefits down the line far outweigh the immediate costs as report after report is written and deployed using the framework (and it's not like a business is going to ever stop writing reports).

It's unfortunate for me that I've never really worked in a software development company as I think that's where I'd fit in the best.  But at the same time, I think if I did work for a software development company, I wouldn't be exposed to the complex business problems that people are trying to solve.  But for sure, I now understand what I want to do in the next 3-5 years: I want to solve big, complex problems.

On a tangent, I think I've figured out why I have problems making small talk and chit chat.  It's because I don't want to talk about anything other than software design, technologies, and the process of building software :P Seriously, that's really just about all that I'm ever really thinking about when I'm not watching basketball or doing something mindless.

I guess I'm just ranting now :-D The problem is that I'm thinking big thoughts, but mired in a situation where I'm forced to work on small ideas.  It's terribly frustrating, to say the least.  I feel so un-energetic each day. :-S

# Wednesday, November 23, 2005

On Leadership

Wednesday, November 23, 2005 2:14:00 AM UTC

I came across an editorial on CNNSI.com on, among other things, the play of Baron Davis and how he's helped turn the perpetually bad Warriors around and get them off to their best start in the franchise's history.

While the editorial relates to basketball, I think it serves as a great analogy to anything in life that requires leadership and teamwork.

"No disrespect to the point guards who were here in the past, but Baron's the type of point guard that makes everybody better," says backcourt mate Jason Richardson. "He gets in the lane and just finds guys. I been waiting for a guy like him to come and he took my game to another level."

This is not, incidentally, the type of quote one reads about Marbury, despite his career averages of 20 points per game and 8 assists. But this type of appraisal, I would argue, is a simple, but fail-safe way to assess any point guard: do his teammates like playing with him?

So how, exactly, does one make teammates speak of you with the enthusiasm of Rex Reed reviewing a big studio film likely to quote him in its print ads? "Everybody needs special attention, especially from a point guard," Davis explained. "It's about learning my teammates and their personalities. Being a point guard is about making the guys around you confident to where they feel like they want to play with you because they know that you're looking out for them. I study guys and know where they like the ball and where they are effective. When I played with David Wesley and P.J. Brown, I knew where they liked it and tried to get it to them in those areas."

Great lesson to learn on leadership, I think.

# Friday, November 18, 2005

Fun in Philly

Friday, November 18, 2005 1:56:45 AM UTC

Wow, I had a lot more fun in Philly than I thought I would have.

Back up a bit.  I had originally registered for the Microsoft launch event in Philly as a participant a few weeks back.  Last week, Rich, my new manager, got 4 of us together, the only 4 that had really played around with SQL Server 2005, and asked if we could come up with a demo for the show as, apparently, we had a presence at the show. 

Long story short, I ended up taking up part of the responsibility of building the demo and also working the booth at the show.  Somehow, we ended up building a database mirroring demo which featured an ASP.Net 2.0 and Atlas frontend.

I also ended up with the responsibility of creating some posters and datasheets that we could hand out along with our demo.  Keep in mind that all of this came up last Thursday.  Having technical and graphical skills is both a curse and a blessing I guess.

Well, in any case, the show was a huge success.  We had people lining up to look at the demo and to talk to Igor and myself.  For an app that was put together in 10-12 hours, it was surprisingly stable.  We only had one major issue and that was a networking issue (dropped IP addresses).  It was so good that we had people coming back to the booth after seeing the datasheet from other people.  We had people coming back with their friends because they were so impressed.  It was quite amazing.  We ran out of the datasheets for the demo in the first 90 minutes of the show (maybe the first 60).  Fortunately, we also had it in poster form (which we didn't give away).  It drew quite a bit of attention and there were a lot of people who just stopped in their tracks to check it out.  The funny story regarding that is I almost didn't have the poster printed.  I was originally only going to print 8.5x11 copies, but Frank, another consultant, suggested that I go with the poster.

poster_web.gif

Believe it or not, I put it together in ~3-4 hours Tuesday night after I got back from a client site.  Everything on this sheet was created from scratch (Except for the computer graphic, which came from Visio).  I swear I was half asleep when I put it all together :-D

I actually heard a lot of comments on the poster, even one from a professor who said she really loved the layout and colors.  Even my wife was impressed that I put this together when I did/in the amount of time that I did it in.

So all in all, a fun but tiring day.  Man, I just love building cool stuff and I love connecting with other developers.  Hopefully, I'll have more opportunities like this in the future.

# Wednesday, November 09, 2005

All Hail Flying Spaghetti Monster!

Wednesday, November 09, 2005 2:08:56 PM UTC

Yesterday, news spread that the Kansas school board passed legislation to include intelligent design into the school curriculum.

As expected, there was some colorful discussion on Fark.

In an opinion piece in Time this week (11/14/2005), Eric Cornell, the Nobel Prize winner for Physics in 2001, brings up some good points with regards to an unrelated case in Dover, PA.  He states that:

"The central idea of intelligent design is that nature is the way it is because God wants it to be that way.  This is not an assertion that can be tested in a scientific way, but studied in the right context, it is an interesting notion.  As a theological idea, intelligent design is exciting."

That's the key right there.  At the core of all sciences is a process of exhaustive, systematic testing to draw a conclusion based on what can be observed.  No such systematic testing can be applied to the notion of intelligent design.  How can you test the idea that, because some beings are so complex, they must be born of some higher order being?  At best, the discussion should be relegated to some philosophy or theological course and have nothing to do with the sciences.

Notice how Cornell uses the term "God".  While ID activists will attempt to convince us that this isn't about Christianity and creationism, it is quite clear, based on the main leaders of this movement, that this is simply a cloak for injecting the creationist agenda into out public school systems.  Otherwise, we may as well teach Flying Spaghetti Monster as well, right?  It's frightening to think that certain parts of the coutnry are really not that far off from the fundamentalists and extremists that we so detest.

I think that the most important point that Cornell makes is that to use "The Will of God" to answer questions that science has no solution for yet, is dangerous to the progress of mankind.  It's dangerous in the sense that all science is driven by the knowledge to understand that which still remains a mystery. 

"The thrill is that our ignorance exceeds our knowledge; the exciting part is what we don't understand yet."

To use "The Will of God" as a blanket statement to answer questions that which we do not know the scientific answers to, is to say:

"Everything outside this box we can only explain only by invoking God's Will."

It creates an artificial constraint on the growth of our collective knowledge.  It hinders a generation of scientists and discovery by drawing a bounds.  In a sense, it's no different than those that claimed (and believed) that the world was flat.  If no man had the audacity to challenge this thought, if we had accepted such "facts", then it would surely be a very, very different world today.

# Saturday, November 05, 2005

Friday's Random Thoughts

Saturday, November 05, 2005 12:20:13 AM UTC

Just to wrap up my Austin trip, here's a few random, slightly organized thoughts on the city of Austin and my trip:

  1. There's lots of good, cheap Tex-Mex food in Austin (but I guess that this is true for most of the southwest).  Damn, I had some of the best Mexican food I've had in my life and it was ridiculously cheap.
  2. PT Cruiser...what an abomination of a car.  If you didn't know already, the rear window controls are at the base of the center console.  Double-U, Tee, Eff?  I didn't drive one, personally, but damn, it was ugly, slow, uncomfortable, and the antithesis of ergonomic.  Not that I had it much better; I had a Cavalier.  No wonder the American automakers are tanking so hard...I'm surprised they've lasted this long with crap like this.
  3. The capitol building in Austin has some very nice floorwork and craftsmanship in general.  Very nicely architected and designed.  It's kind of cool that there's so much concentrated in such a small area (two universities right around the capitol).
  4. Austin (and probably Texas in general) is very open compared to NJ (the most densely populated state in the country).  I like it.  No traffic jams, wide roads, well designed traffic patterns...I wouldn't mind living there, to tell the truth.
  5. TownePlace Suites is so-so.  For $89/night, it was a decent deal as I had my own kitchen, queen size bed, and a nicely sized living room.  The bed was very comfy, but the showerhead was weak and the "light continentel breakfast" really meant "bagel in a plastic bag".  Homewood Suites, on the other hand, was much better in terms of the food and accomodations (they had a basketball court in the back!).
  6. Being from the north, I tend to look at people oddly if they're walking around with a cowboy hat on, which seems to be common practice in the southwest.

All in all, Austin is a very nice place.  Not nearly as congested as most of NJ.

As I had a lot of down time, I made a bit of progress with The Mythical Man Month.  Without writing an entire essay, I'd just like to share some passages that caught my attention.

"Most organizations spend considerable effort in finding and cultivating the management prospects; I know of none that spends equal effort in finding and developing great designers upon whom the technical excellence of the products will ultimately depend."

"My first proposal is that each software organization must determine and procliam that great designers are as important to the success as great managers are, and that they can be expected to be similarly nurtured and rewarded.  Not only salary, but the perquisites of recognition-office size, furnishings, personal technical equipment, travel funds, staff support-must be fully equivalent."

I've never reall understood why so much emphasis was placed on middle management in most organizations.  I do agree that having exceptional managers can help increase organization and productivity dramatically, but the fact of the matter is that there are few exceptional managers.  My coworker, Igor, offered that instead, the emphasis should be placed on teams.  Small, self governing teams organized by technical function (database team, UI team, data objects team, etc).  The benefits of such a system of organization is clear, for no manager overseeing 20-30 employees can truly understand the strengths, weaknesses, and capabilities of each of the employees.  But such quandaries are easily sorted out in a small team where the team must bear the burden of the responsibilities and thus the team becomes accountable for understanding the function and capacity of each of its members.

One point, in particular, that I'd like to share is one of Brooks' bullet points on how to grow great designers:

"Systematically identify top designers as early as possible.  The best are often not the most experienced. [Emphasis mine]."

Too often in the software industry, the emphasis is placed on years of experience, and not on the actual merits and capabilities of the individual.  As the art and science of software engineering continues to expand and evolve, the best designers will expand their minds and evolve their techniques in parallel.  Software engineering is not a field in which the information and knowledge base remain static.  Certainly, there are core principles that never seem to change, but there are also many different new perspectives, practices, and patterns that emerge with each iteration of tools and environments.  I guess my point is that organizations must find ways to identify and then consequently nuture potential and not merely take the easy road by measuring years of experience.

There were also parts of the text that relate to a project I'm currently working on where the client continually makes change and feature requests, which, by themselves, are not necessarily bad.  But on some levels, the change affects the fundamental design principles of the application, which is time consuming and prone to introduce bugs without massive re-architecting and regression testing.  On this, Brooks says:

"The hardest single part of building a software system is deciding precisely what to build.  No other part of the conceptual work is so difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines, and to other software systems.  No other part of the work so cripples the resulting system if done wrong.  No other part is more difficult to rectify later."

"Therefore, the most important function that software builders do for their clients is the iterative extraction and refinement of the product requirements.  For the truth is, the clients do not know what they want.  They usually do not know what questions must be answered, and they almost never have thought of the problem in the detail that must be specified.  Even the simple answer-'Make the new software system work like our old manual information processing system'-is in fact too simple.  Clients never want exactly that."

How true this is.  That last point is particularly interesting.  It's something that I've never understood; shouldn't the idea be to make it better than what you already have?

As I was driving home, I was thinking about how, I would approach a software design project knowing what I know now.  Sitting in on a hardware infrastrucure design session, it's clear how different the art of designing hardware solutions is compared to software solutions.  This is not to belittle the work done by the EMC guys, not at all.  But the fact of the matter is that the constraints, requirements, and features are so well defined by the cost and physical limitations of hardware that architecting a hardware infrastructure is a far less torturous exercise than designing a software system architecture.

I've been asked before, during interviews, how I approach system design.  I think that the right answer is that there is no answer.  Anyone that dares give "an answer" is like a voter that votes strictly Republican or Democrat, regardless of the particular issues at hand; it's a foolish and dangerous approach to think that there is one method or methodology that can be applied to every system.

The secret, as I've discovered on one of my recent projects that I deem to be my finest work to date, is that software must grow in an almost organic fashion instead of being built.

Of this, Brooks' says:

"Must of the present-day software acquisition procedures rest upon the assumption that one can specify a satisfactory system in advance, get bids for its construction, have it built, and install it.  I think this assumption is fundamentally wrong, and that many software acquisition problems spring from that fallacy."

"Let us turn to nature and study complexity in living things, instead of just the dead works of man.  Here we find constructs whose complexities thrill us with awe.  The brain alone is intricate beyond mapping, powerful beyond imagination, rich in diversity, self-protecting, and self-renewing.  The secret is that it is grown, not built."

"I find that teams can grow much more complex entities in four months than they can build."

And so it was on my last project; the current (and I shan't call it final) design grew, piece by piece, line by line, class by class from a conceptual vision that I had in my head.  At every step, I considered where I could refactor the code, where I could make generalizations, where I could consolidate code, and where I could improve the interfaces and classes.  Where I spotted room for improvment, I did so.  With no interference, the very design itself grew as I learned more about the system and the dependent systems.

I can see that many of the practices and ideas behind agile and XP are not entirely new developments, but rather a natural evolution of the ideas that have been present in software engineering for decades.  Perhaps what's bothersome to me is that, even with this much time, the practice of engineering software is still very immature and it seems as if companies have not learned from the incidents and experience of the past.  We still see an over-emphasis, in many organizations, on management and not enough on discovering, developing, and rewarding top designers and programmers.

Okay, so maybe I've run on a little bit longer than I expected :-) But I'm done now, I swear!  Enjoy your weekend!

# Thursday, November 03, 2005

Coming Home

Thursday, November 03, 2005 2:04:07 PM UTC

Well, as it turns out, the client here in Austin wasn't really that interested in software related professional services at the moment.

I've spent the last two days working with two awesome consultants, Hillary and Bob, from EMC.  All I can say is that I'm extremely impressed with their amazing professionalism, knowledge, and approachability.  They both had an amazing breadth and depth of knowledge about their practice areas that I was just blown away.  These guys are simply amazing and I wouldn't hesitate to recommend them for architecting any sort of high availability, high reliability infrastructure for database systems.

I think that this type of konwledge comes from two sources:

  1. Extensive real world experience in implementing solutions.
  2. A company that really puts an emphasis on continuing educaiton for their employees on the different packages, products, and their capabilities.

On the first point, Bob and Hillary are both have an astounding amount of experience working with large network and storage systems.  It was clear by the understanding of the different product, their specs, and how it stacked up against competitor's products.  Not only that, there was an incredible understanding of how the products worked, down to how the very bits and bytes were being moved around on disk.  Amazing.  It's the type of experience and knowledge I have with some of the larger software systems I've built, where I know every in and out. 

On the second point, I think one of the coolest things that they had in their tool chest was a true, searchable knowledge base of their products that detailed exactly what their products do, their limitations, and the specs.  The client asked if it was possible to do this, and, within minutes, Bob was digging into the design documents for a product that did what the client described to make sure that it would work in their environment.  Amazing.  But it was very apparent that EMC kept their employees very well educated and up-to-date.

The client was great.  Very friendly and accomodating and incredibly well versed in a variety of different areas.  Unfortunately, my services weren't really needed, but I was certainly drooling over the prospect of helping them design and implement the system that they had already designed, spec'd out, and partially implemented in test.  I love working with large distributed systems, something we don't really get to do much nowadays.  While a lot of the tools and languages that I use everyday were new to them, like T-SQL and C#, I have no doubt that these guys will certainly do a pretty decent job with the system.

Well, it wasn't a totally wasted trip.  I learned a lot about some of our partners and had a chance to meet some great guys and gals out here; I only wish that my services could have been utilized to a greater degree (I hate the feeling of being paid to do nothing), but there was clearly an unwritten agenda on the client's mind and software related professional services were not on that agenda.  I helped where I could and offered what knowledge was relevant.  But I can't complain too much, I did eat pretty well.  I've got to figure out how to get these pictures off of my cell phone :-D

# Wednesday, November 02, 2005

Live, From Austin, Texas

Wednesday, November 02, 2005 3:25:23 AM UTC

I originally wrote this post as I was sitting in the back of a 737 to Austin.

In the software industry, there is an interesting Catch-22 situation that many young developers will find themselves in: you generally aren't afforded the opportunity to architect any meaningful system since you lack the experience to do so, but you really can't gain the experience unless you do it yourself.

No number of classes, books, and training material can prepare you for architecting a real world solution; only real world experience and trial and error can. So you may be asking, then where to all of the architects come from? Well, in my view, most architects come from three different paths:

  1. Promotion. This situation arises by the natural progression of careers. You typically start out as a low level code monkey and work closely with a lead develpoer and architect. You learn their way of thought by viewing their designs. You learn the software and environments by implmenting their designs. One day, as your career progresses, someone will say: "Hey, Chuck's been here a while, he understands the business model, he understands our environments, and he understands the tools, why don't we let him architect this solution?" This can take considerable time as managers are reluctant to use unproven resources to architect anything of significance.
  2. Training. Microsoft has a host of acrhitecture and solutions experts certification programs. Many times, companies, especially the big name ones, will hire based on this qualification alone. To me, this type of architect is the most useless (and dangerous) architect (if not combined with one of the other two). Why? Well, this type of architect typically has very little real world experience digging into the tools and environments necessary to build the solution. As such, any design that arises may make sense on an academic level, but will end up being difficult, impossible, costly, or messy to implement. To me, any sort of sterile classroom training will only take you so far; there is no substitute for experience and knowledge of the tools, environments, and business problem. My ex-coworker, Kent Brown, was really against this type of architecting.
  3. Accidental. I think that this happens the most in the consulting world. I've been an accidental architect at most of the places where I've worked, none-more-so than at ITT, where I basically redesigned their existing intranet applications and rebuilt them all using a new, common codebase and paradigm. I literally did everything, from the database design to the UI design to the actual implementation and deployment. In general, this can be a dangerous situation as you never know what you get when you "accidentally" put someone into an architecture position. But I think that ITT lucked out inthat I was much more experienced then they initially thought for a guy coming straight out of college.

So why do I bring this up? Well, I find myself as an accidental architect at the moment as I ride in the back of a 737 to Austin. Without really thinking about it, I responded "Yes" to a request by one of the managing consultants (MC) at my company, INS, to head out to Austin to help with, what was described to me as an Access to SQL Server upsizing project. While I'm primrarily a developer, this is not outside the bounds of my experience and skillset as it was one of my primary responsibilities at ITT. As I would later learn, this is not the real role that they need to fill, but rather one of an architect.

As I accepted, my cross-divider fellow cube-dweller, Dan, chimed in and asked, quite bluntly, "Are you nuts?" For I had accepted a gig in Austin for two weeks without any actual details. To be honest, I really didn't think about it that deeply. I mean, I had accepted other offsite gigs several times, none of which ever panned out (at least two). I was thinking that this would be the case as well. Plus, I figured that if my MC asked me to fill he had this role, then confidence that I could/would succeed at the task and I was assured that there would be more information forthcoming.

Hoooooo boy. I accepted late Friday afternoon and got "more" details, if you consider "more" one network infrastructure diagram with no legend or supporting documentation. Damn, I shoulda seen this coming. To make a long story short, I am currently heading to Austin with little knowledge of what I'm supposed to be doing or what the goal/scope of the assignment is.

Step back a couple of hours. Around 2 PM on Monday, I think it really started to sink in that I could be in a situation where I had no possibility of success (I hate that feeling). I had already booked my flight on Saturday ($1000+!!!) but i still didn't know what exactly I was supposed to be doing. By 4, I was jetting home to pack my bags. I had spent most of the afternoon trying to set up accomodations and discussing what little details of the project were known among the other consultants and thinking to myself: "Brilliant Chuck, juuuuust brilliant." One interesting tidbit is that my billing rate is actually a very fortunate number in Asian cultures, especially those that speak mandarin.

Bad news. As I'm driving home, my "service engine soon" light came on. Doh! I was just hoping to make it home in one piece. At the same time, my wife was enroute from work to help me pack and send me off (thanks hun!). We were cutting it close. We ran around and I prepped 7 days worth of clothing and other random stuff (like my Gameboy). We were packed and out of the house in under 30 minutes! Time: 5:00 PM.

Knowing Jersey, I really should have planned more time into this :-S No sooner had we passed exit 11 on the Turnpike did the traffic come to a standstill. It was literally a giant parking lot as we creeped at < 5 mph. Good gracious, we still had ~5-7 miles to go and baggage check-in. I don't think I've ever hyperventillated, but I was starting to as I was sitting there, not moving. Scanning the XM stations revealed that there was a stalled truck on the Goethals bridge at exit 13...unfortunately, we needed the exit right past that. Fortunately, the reports were that the truck was moved and traffic was slowly movinig again. Yay!

So for now, my thinking is that I'll try to make the most of it. Certainly, there are less qualified individuals that have been placed in my role in the past, right? Plus, at the least, it's a learning experience on working with total strangers :-D If it's what I think it is, then I may have a good chance to come out on top. Wish me luck!

# Tuesday, October 18, 2005

A Small World Indeed

Tuesday, October 18, 2005 1:17:45 PM UTC

On an interview yesterday, one of my interviewers asked about my experience at ITT.  Specifically, he asked whether I knew Chris :-o.

Now a quick flashback; Chris was my second level manager at ITT.  Towards the end of my stint at ITT, he and I were butting heads over whether to use Plumtree to satisfy an internal client's request.  Obviously, management wins in these situations.  He also took me into his office one time and chewed me out for asking for a raise (which he was nice enough to give to me anyways).

Back to the interview; I was kinda thrown off a bit and had to think for a moment on how to respond.  I mean, I have no hard feelings towards Chris, as I was able to work with a lot of freedom and responsibility when I was at ITT, but I can't say that we parted ways on the best of terms.  I decided to give the honest answer: Chris is one of those stubborn, hardnosed guys that can be difficult to work with at times (I am too :-D).  I think he took it well, as anyone who knows Chris knows that he can be a tough to work with at times (as am I).  All in all, I think it was a bad interview, but not necessarily any fault of my own.

To begin with, I had missed several tabs of an Excel spreadsheet that I was supposed to fill out and email back to the HR recruiter (who notices tabs in a spreadsheet?).  Doh!  In addition, there was tons of paperwork and a set of pre-interview questionaires that the recruiter had to fill out (would have been faster if I typed it instead of her).  That alone took 1.5+ hours to complete.  Then, during the interview, it really didn't seem like the interviewer was very interested (seemed as if he had more pressing matters).  He pretty much asked me the same questions I answered in the pre-interview questionaire (even though he was holding and obviously reading it).  Blah!  I also brought along my laptop with demos of my work, but the interviewer was obviously not interested, as I hinted several times that I could demo some of the work that I mentioned in my resume.

Not only that, it wasn't overly technical at all.  Actually, there was no discussion of technical skills whatsoever, which is a bit disappointing, as I think it gives good insight into the types of people an organization has (and also gives me a chance to shine).

As an aside, I've always wondered why IT consulting companies still rely so heavily on paper based procedures.  It would have been much easier to have the forms online and allow applicants to fill it out before the interview.  I mean, who keeps records of the addresses of your employers filed in your head?  What about reference contacts?

They did have a very nice building though.  Damn, it's one of the nicest buildings I've ever been in (even nicer than the Merrill Lynch Hopewell campus, which was a pretty nice building).  Even had a huge Samsung DLP television in the conference room; Awesome.

Overall, not a very good interview, but who knows.

In any case, it's one of those "wow" moments when you realize how small the world really is.  As I learned in the last month, one of my coworkers here at Immedient, Evan, previously worked at MarketSource, where my friend Hoon had worked just a few months before (he's now an actuary).  Oh yeah, and I almost forgot, the recruiter mentioned that she used to work down the street from where I work now and she used to cold call our company (for what purpose, I don't know).

A small world indeed.

# Monday, October 10, 2005

Saw the Jets

Monday, October 10, 2005 11:07:50 PM UTC

Yesterday was my first time at an NFL football game (Jets vs. Bucs).  This also means that I've been to each of the three major sports (NBA, MLB, and NFL).  (For my international readers, the NFL is the highest league for American-style football).

I must say, the experience is quite something.  It's very different from either of the other big three sports in that there is a whole huge sub-culture in the football world.  If you've never experienced it, there's nothing quite like it at all.

Sadly, I didn't have my camera with me, but driving into the parking lot of Giants Stadium I was just struck by how many people were there tailgating.  It was incredible, it was like a little town sprung up there that morning, with people pitching tents, watching TV, eating BBQ, throwing footballs around.  I mean, it felt like these people lived there.  What caught my attention as well was that a lot of men would urinate right by the side of the road without hesitation (since the lines for the port-o-potties was ridiculous.

The stadium itself was tremendous.  There's nothing quite like it in the enormity of it all; you get kinda queasy sitting in the third tier just looking down.

The game itself was great.  Vinny Testaverde was playing in his first game in 9 months since retiring with the Cowboys after last season.  I have to say, I can only hope that I'm that mobile and that fit when I'm 41, because damn, the guy can still move and throw the long ball.  He had the crowd roaring during pregame warmups when he threw a 60-70 yard pass to Laverneus Coles.  Wow.  Vinny only threw one interception, which was unfortunate (it was short only by a little), but acceptable considering that just two weeks ago, he was hanging out on his sofa watching the Jets play :-D

Afterwards, listening to Vinny talk, I was reminded of The Incredibles.  Vinny had some great years (the best of his career) with the Jets and here he was again, up to his old heroics after retiring from football.  And like in The Incredibles, it took a team effort to overcome the opponent.

In a totally unrelated sidenote, I got my copy of "Ghost in the Shell 2: Man-Machine Interface" on Friday.  My review is on Amazon, but I'll copy it here for the lazy:

"Before you read on, bear in mind that I'm writing this review in comparison to the first "Ghost in the Shell". While Shirow does mention that this book is not a continuation of the first, there are some major differences in style.

Let's start with the artwork. As I've noticed with Shirow's work, all the ways from Appleseed, his style has matured with each work and is at a very advanced level, in my opinion, among top comic book artists in the world. He has a certain style of coloring that, to me, is really unique in how subtle, lifelike, and tactile he makes fabrics and skin. While only roughly 35-40% of the book is colored, it is done so fantastically.

In addition, Shirow has a supreme mastery of the female body form. It's simply stunning to see how beautifully he can render the female body, especially with the dynamic energy he brings to his characters. While he renders many of the panels with the female characters in the buff, he does not render "R" nudity, but rather "PG-13" nudity, except in one panel). (As a sidenote, parents of younger readers should perhaps consider this an "R" rated book. While none of the nudity is gratuitous, it can be a little too much for some).

As fans of Shirow have noticed, he has been experimenting with integrating 3D, rendered environments and objects with his 2D artwork. He shows his mastery of this technique in many of the panels, where it seems seemless; you feel as if the character is really a part of the scene. Then in others, it seems poorly done (for example, he renders pigs in a sequence of panels and the pigs just look weird). I'd also offer some criticism of his rendering of "virtual space", as it quickly becomes cluttered and very difficult to navigate, visually, especially in the low-res, black and white lineart panels.

As with all Shirow works, there is certainly enough cool technobabble and gadgets to get your geek juices flowing. From exoskeletons that envelope and "swallow" the pilot, to oddly constructed androids, to the techno-metaphysical discussions of reality, life, existence, and justice.

My main criticism with the work is the incontinuity *within* the plot itself (I fully understand and accept that this is not a continuation of the first). Without going deeply into the plot, there are some scenarios where he will start what seems like an arc, but then the arc disappears, without entering into the plot again. It seems like whole parts of the book were created just for the sake of showing artwork, and not progressing plot (to me, plot should always come first in a written work, which this is, despite the medium). It feels like the recent Star Wars movies in that they are really a showcase for Lucas's technique with fully rendered sets and have lost any semblence of a cohesive plot and the great acting (especially Harrison Ford) that made the first three the classics that they are. Yes, while I do appreciate the eye candy, this is still a graphic novel, and, as such, I expect a cohesive plot and not random interjections of this and that and whatever.

Some fans will also find the lack of action (compared to the first book) a bit disappointing. The first book was far grittier and more action packed than this book. It also had a richer cast of characters. "Man-Machine Interface" really only features one character (albeit in various bodies and forms) and thus loses some of the dynamic interactions between characters. Shirow never gets a chance to fully developer the chief of Poseidon police and his crew.

Overall, this book is excellent if you simply love Shirow's beautiful artwork, mastery of the female body form, and creative techno-gadgets. The plot, especially the ending, will leave you sorely disappointed. Whereas the first ended on a revelation of a metaphysical type, this book ends in a fizzle."

If you're a fan of Shirow, it's a no brainer, you gotta pick it up, but it's certainly not for everyone.

I'm also working my way through Fred Brooks' "The Mythical Man Month".  I'm only 1/3 of the way through the book at the moment, but it's absolutely a great book that everyone in an IT organization (everyone!) has to read.  I mean, even after all of these years, the same problems persist in software development (doesn't anyone learn from history?).  If you're in the IT industry, whether you're a manager, a salesperson, or a developer, be sure to pick this one up.  It's an easy read, too, since Brooks' style is very inviting and personable.  He makes some excellent analogies.  I think I'll do a mini book review after I'm done with the book :-D

That's it for now...been busy at work, so less time to post during the day >.<

# Thursday, September 29, 2005

I'm Not Alone!

Thursday, September 29, 2005 3:19:35 PM UTC

This pretty much sums up how I've been feeling every-freaking-day for the last few weeks/months:

I've never been more unsure about everything in the entire universe. I no longer comprehend what is important in the essence of everything. All knowledge and understanding I have aquired now all just seems meaningless and empty. I feel I am completely hopeless. My mind revolves so much around school and stale concrete fact. I don't really have a life. Right now I am just existing, going day to day with what seems like essentially no purpose or direction. I can't find my foundation for thought or reason or action. This is the worst feeling I have ever had in my entire life. Nothing is important, which in itself is sigificant for some reason. I think. I don't know. I feel so overwhelmed. I feel like I'm trying to wrap my head around life. Do you know what all is in life? A whole fucking lot. And my mind feels obligated to figure out every fucking bit of it at the same time. I feel like I'm trying to wrap a rubber band around a dumptruck. I'll either stay frustrated like this, or I'll somehow keep trying to stretch until it snaps.

In my case, I don't think I can even recall a particular point in time when this happened. It feels like I've been in this kind of funk forever.  I envy people, like my wife, who (at least on the surface) seem to have figured out exactly what life is about, what is important to them, what their goals are, and what they have to do to get there.  I think it's healthy to have goals; it gives you purpose and meaning in every action that you do.  Problem is, I just can't seem to solidify mine.

:Sigh: :-S

# Wednesday, September 28, 2005

The Perfectionist Plague

Wednesday, September 28, 2005 1:07:30 PM UTC

There has to be other people out there like me.

I have issues.  Many issues.  We all do.  Perhaps the one that gets to me the most is that I'm a perfectionist when it comes to certain things, like designing software.  It's a curse, because I try to be perfect from the beginning and it adds to the inertia of getting the project started in the first place; getting that first, crucial prototype out the door is the key first step to any project.

This is an issue that I've had for a quite a while now and I know that software is supposed to be imperfect.  Particularly when you undertake to create something new, no one knows what it's supposed to look like; no one knows, 100%, what it's supposed to do.  Certainly, there is an idea of what problem a particular piece of software should solve with version 1, but I'm always trying to figure out what it's supposed to do in version 2, before version 0.1 is even complete.  Therein lies the problem.  My psyche forces me to understand the problem and solution completely before I can really start to make it a reality.

I have a pile of papers scattered around my desk at home and my desk at work with various projects that I've doodled or half started, but couldn't think through completely either due to waning interest or lack of time.  In all cases, I get stuck trying to see the whole picture before I've arrived at the destination.

As a developer, I know the importance of prototyping and building simple proof-of-concepts.  If fact, I do this often in my professional life.  But as soon as I start working on any type of personal project, this perfectionist drive just kicks in and immobilizes me from the get-go :-(

I can't be the only one that suffers from this afflictive emotion.  How do other developers deal with it?

One way is to work with others.  A couple of months back, I worked on a project with a friend I met while working at ITT, Blake Dubin.  It was great working with him as he had a vision of exactly what this tool needed to do, which relieved me from over-analyzing the requirements of the tool.  In addition, it helps that he prodded me to get the work done :-D Yeah, the code was a bit sloppy, but it was done in under 15-18 hours and it's really pretty cool to boot.

The problem is that in my day-to-day life, I rarely deal with other developers/managers that I feel are as interested in building these things as I am.  One of the big problems is that I'm surrounded by slightly older developers.  That in itself is not so bad, as there is always something to be learned from experience in the industry, but the problem is, they're not old enough that they can kinda shake off the responsibilities of family life yet.  These guys are in their late 20's and 30's, so they have to, rightfully, place family ahead of self, especially since they have very young kids, which leaves them with little free time to work on anything else.

I have a few friends who are developers as well.  My college roommate, Joe, lives right around the corner from me.  But he's absorbed by World of Warcraft.  The man is practically glued to his computer desk.  In addition, he doesn't have the same passion for creating random pieces of software (I think he'll end up in management in a few years).

I'm sure this problem is not restricted to just software development.  So how do you guys deal with this?  It's even more annoying that I realize that this is a problem that I have, and yet I'm unwilling or unable to resolve it by myself.

# Monday, September 26, 2005

Saw the Dalai Lama!

Monday, September 26, 2005 2:24:26 PM UTC

Quite a long weekend.

It culminated on Sunday with the lecture given by the Dalai Lama at my alma mater, Rutgers.

I also attended a wedding the same night; quite a spectrum of events to absorb in one day.

I would like to preface by stating that I am an atheist.  I am attracted to Buddhism not for the spiritual/religious aspect of it, but rather the philosophical/moral aspect and the message of the Dalai Lama, one of peace, compassion, acceptance, and altruism without exception.

To be honest, I didn't know what to expect from this lecture; I wasn't sure why I plopped down $30 for the tickets.  I was first formally introduced to Buddhism in my Chinese Civ. class by a Dr. Peter Li (who, in retrospect, reminds me a lot of the Dalai Lama in mannerisms, speech, and approach).  As I mentioned, I'm an atheist and thus, Buddhism, to me, is not so much a religion as it is a philosophy of living.

Having been removed from that academic environment, I've been slacking in terms of my continued studies of Buddhism.  To that effect, I wasn't sure that there would be any purpose or value in going to this event.  Was it just to satisfy my ego?  Bragging rights?  I don't know, but I felt that I had to go, being that this might be a <cliché>once in a lifetime chance</cliché>.

The day began early for us as we took the scenic route to Rutgers (really scenic).  As we waited in the stadium, I found that I was quite surprised at the number of people that showed up (I'm not quite sure why, as I knew that the lecture was sold out).  It's an awesome sight to see so many people congregate in one place for a non-sporting event.  What struck Sandy and I the most was the incredible diversity of the group that was present.  In our day to day lives, I think that most people rarely deal with such a diverse population (be it your classroom or you workplace).

Aside: The population of Rutgers, and New Jersey in general, is incredibly diverse.  I recall sitting outside, waiting for my classes to start and watching as people of all races, cultural backgrounds, and religious beliefs passed by.  What's amazing is the level of acceptance demonstrated by everyone.  I mean, yeah, we had our share of bad apples (I recall some anti-semetic graffiti), but for the most part, the Rutgers student body is bountiful in its cultural and racial differences.

It was simply amazing to witness the event; as 10:40 arrived, the entire crowd of thousands of people sat in silence, focused completely on the presence of a single man.  The Dalai Lama himself is a simple man of simple words and simple ways.  He began by addressing the crowd in Tiebetan and had a translator translate his greeting.

For the remainder of the lecture, the Dalai Lama addressed us in English, only turning to his translator for a few terms here and there.  The lecture had a very informal feel to it.  In speech and mannerisms, we, his audience, were just as "old acquaintances".  I half expected a much more formal, more serious tone to his lecture.  Okay, actually, I fully expected it to be a very stale lecture.  To my surprise, the entire stadium would occasionally erupt with warm laughter as the Dalai Lama made small jokes throughout his speech.

The subject of the lecture itself contained nothing earth shattering (I won't bore you with a transcript of what was said, you can catch that from the videos); nothing that you or I haven't thought of before.  In fact, when Igor asked me what I had learned from the lecture, I struggled to figure out what exactly moved me so much? Why should it matter that these views were being conveyed to us by this man?  I thought deeply about this after the lecture and today as well and I think the reason it was such a moving speech (yes, I teared up at one point) was the absolute conviction with which he delivered his message; one full of compassion, understanding, acceptance, and altruism.  The very embodiment of the Buddhist philosophy.  Yes, I found myself moved to tears as I sat there listening to his views, in complete silence, along with 40,000 of my brothers and sisters.

What made the entire experience even more enriching is that you can only truly realize how down-to-earth and "everyman" the Dalai Lama is if you see him, observe his mannerisms, and listen to his speech.  He made it plain and clear that he is just like everyone of us and no different.  He has his moments when he suffers from afflictive emotions such as anger and jealousy.  He doesn't claim to know all of the answers; in fact, he states the opposite quite frankly.  When asked about this thoughts about the conflict between the Israelis and the Palestinians, he offered his views, but added a footnote that since his history of the region and the background of the two groups was insufficient, he was incapable of providing us with The Answer. 

The appeal of his message, and of Buddhism as a whole, I think, is the idea that there is hope for humanity.  No, there is hope for all sentient beings to live in peace and contentment.  And the solution lies not in some mystical god who works in mysterious ways, not in some relic, not in some religion, but in each of us.  The fate of this Earth lies in our own hands and we can only truly achieve peace through education, self cultivation (be it spiritual or otherwise),  compassion, and shedding our ignorance inherent in perception (as opposed to reality).

Igor asked whether I felt that this was a religious experience or an intellectual experience.  In reality, it was neither.  It was a humanistic experience that occurs but rarely in our lifetimes.

I highly recommend watching the video recap of the lecture (linked off of the Rutgers site above).  And if you should ever get the chance to see him in person, even if you are Christian, Jewish, Muslim, Black, Caucasian, Americn Indian, or Martian ;-), I can only advise that you do not miss the chance as he is truly an extraordinary human being, whether he thinks so or not.

RSS 2.0 Atom 1.0 CDF