Random Thoughts of a Scatterbrain.
 Wednesday, June 14, 2006

Fear of Change

6/14/2006 10:22:28 AM (Eastern Daylight Time, UTC-04:00)

Perhaps one of the most dangerous fears of Man is the fear of change. It is a fear of the new and a desire to remain close to "the old ways". This occurs on a macro and micro level. On a macro level, it turns once progressive nations inwards and backwards. Such is the case with many of the Islamic states around the world where extremist groups denounce the ways of the West and force the government to enact stricter codes adhering to the old ways and to Islam.

It happens on a micro level, too. My wife refuses to try sushi (not that I like it much myself, but I've at least tried it) not because of any real reasons like allergies or whatever, but because of fear. It is a fear of the different, a fear of the new, and a fear of the unknown. You can look at it, smell it, and poke it...but you won't know whether it tastes good until you put it in your mouth.

Perhaps this is a natural and reasonable fear that has developed through years of evolution and natural selection. Certainly, that red berry looks edible, but no one has ever eaten one...so who should be the one to test whether it is edible?

As a developer, though, this fear bothers me a lot when I see it in others. While I do not claim to be free from it, I've always adopted a stance of at least giving every technology a chance before making judgements. I keep a directory called "Sandbox" on my disk drive where I dump all of my code that I use to play around with various technologies, tools, and frameworks. I believe the only way to learn whether such things are useful is by actually using them, practicing their principles, and understanding how they work.

In a sense, the landscape of the software development world is like a giant buffet; there is so much variety, so many flavors, so many dishes, and so many variations of dishes, that it can be comforting to just stick with what you know and be a little skeptical about dishes that look foreign and/or different from your staple diet. It's quite a shame to go to a buffet and only stick to two or three dishes isn't it?

Perhaps it's because I'm younger, but I don't think much about trying out this framework or that tool package. I only know that I can't discern whether it suits my "taste" until I try it at least. Too often, working with the older generation is like taking my sister in law out to eat with us; her diet basically consists of chicken fingers, burgers, and occasionally, steak. It's frustrating to no end because she refuses to give anything a chance that even appears to be mildly "icky" like fish or mushrooms.

From a development perspective, such fears ultimately lead developers to cling to hold habits and old ideas because they work.  It burdens a developer in the same way that a fear of a "mechanized cart" would burden a man who refuses to trade his mule pulled cart for a car.  More importantly, it means that the ability to improve efficiency becomes limited by the ability of the developer.  This saddens me because these tools, frameworks, and practices are all developed with a singular goal: to make development easier.  Developers who hold this fear of the new and this fear of change close to their hearts ultimately sacrifice productivity for comfort.  While not all packages, tools, and practices lead to results (much like not all diets will lead to weight loss), it is very difficult to tell (unless the ideas are absolutely absurd) whether the idea is useful unless it is tested in use. 

But I think one has to go even further than that.  Evaluation cannot be done half-heartedly; one has to adopt the mindset of those using the tools and frameworks.  One must adopt the philosophy of the tool or framework in question.  Simply using the tool or framework without dropping one's typical practices and mindset for new ones (at least temporarily) will not do much good at all as it only leads to the inevitable "discovery" that "this tool doesn't do what I want it to do" or "it's no better than what I was using anyways".  Is that really the case?  Or is it really that it means that an old way of thinking requires some adjusting?  

A good example is NHibernate, which allows users to still use ADO.Net like data retrieval patterns via direct SQL queries (since there are obviously cases where it may be necessary, especially when bootstrapping it on top of an old/poorly designed database).  Some would try it and proceed to only use the direct SQL queries.  Evaluating NHibernate, then, without dropping the ADO.Net mentality leads the evaluator to a "it's no better than what I've been using" conclusion.

So what's the moral of this post?  Don't be afraid of new frameworks or new tools.  I absolutely hate it when developers generalize and flat out state "well, from my exprience, frameworks are always more of a hassle than they're worth", "they never do exactly what I want it to do", or "it'll take too much time to learn the framework" without having written one line of code against the tool, framework, or library.  First of all, it's a fact, 99% of all generalizations are false :-).  Secondly, these types of statements cannot be made accurately until actual code has been written.

Hunt and Thomas write, in chapter 1 of "The Pragmatic Programmer":

Managing a knowledge portfolio is very similar to managing a financial portfolio:

  1. Serious investors invest regularly--as a habit.
  2. Diversification is the key to long-term success.
  3. Smart investors balance their portfolios between conservative and high-risk, high-reward investments.
  4. Investors try to buy low and sell high for maximum return.
  5. Portfolios should be reviewed and rebalanced periodically.

Just like financial investments, it pays to diversify, to try new strategies, and it always pays to put in a lot of heavy lifting into researching a particular investment.  Tools, frameworks, and libraries already in one's portfolio should always be subject to re-evaluation and perhaps, when the time comes, it may mean that one's knowledge portfolio needs to be rebalanced.

 Tuesday, June 13, 2006

Sad State of Manufacturing in America

6/13/2006 5:06:36 PM (Eastern Daylight Time, UTC-04:00)

Over at engadget, a headline caught my eye today: "Chinese workers reportedly toil in the 'iPod City'".

It's certainly nothing that we haven't heard before, overseas labor is so cheap these days, who can compete with American labor and just and humane labor laws?  In the fight to save an extra nickel here and an extra penny there, we, of all nations, do nothing to seriously counter and discourage this type of "indentured servitude" and the poor working conditions in countries all over the world. 

What irks me the most is that there was a time when manufacturing jobs in America were well paying jobs; they were jobs that you could raise a family on and they were well respected jobs.

So what's happened in the last few decades?

I don't proclaim to know anything about economics or manufacturing, but I really wonder how we've lost our ability to compete.

Perhaps what I don't get is how we've lost the spirit and wisdom of Henry Ford.

On January 5, 1914, Henry Ford announced a new minimum wage of five dollars per eight-hour day, in addition to a profit-sharing plan. It was the talk of towns across the country; Ford was hailed as the friend of the worker, as an outright socialist, or as a madman bent on bankrupting his company. Many businessmen -- including most of the remaining stockholders in the Ford Motor Company -- regarded his solution as reckless. But he shrugged off all the criticism: "Well, you know when you pay men well you can talk to them," he said. Recognizing the human element in mass production, Ford knew that retaining more employees would lower costs, and that a happier work force would inevitably lead to greater productivity. The numbers bore him out. Between 1914 and 1916, the company's profits doubled from $30 million to $60 million. "The payment of five dollars a day for an eight-hour day was one of the finest cost-cutting moves we ever made," he later said.

There were other ramifications, as well. A budding effort to unionize the Ford factory dissolved in the face of the Five-Dollar Day. Most cunning of all, Ford's new wage scale turned autoworkers into auto customers. The purchases they made returned at least some of those five dollars to Henry Ford, and helped raise production, which invariably helped to lower per-car costs.

So what has happened to this belief that helping American's do better as a nation, in turn, helps the bottom line?  What has happened to this humanistic element of industry and work?  Is it really just about the bottom line nowadays?  Is it really just about padding executive salaries and stock price?

If American companies like New Balance, Japanese companies like Toyota, Korean companies like Hyundai, and German companies like Mercedes Benz can successfully employ Americans to manufacture products for the American market, why can't more American companies do the same?  Why can't Apple, a pretentious, image conscious company, do it?  I'd think it would make a great marketing campaign and improve sales (though probably lower overall profits) if it were made in the USA.

Perhaps we've simply lost our ability to innovate and perhaps we've lost our interest in industrial engineering and innovating in that field.  Surely, through superior industrial engineering and a willingness to take a chance, we can make American manufacturing as competitive (on a broad scale, factoring in the increase an wages).

There was a time when cars were only for the rich and elite.  There was time when those that manufactured the cars did not make enough money to own one.  Likewise, the Chinese who manufacture our iPods cannot own their own iPod.  But be aware, this will surely change as manufacturing jobs continue to flow offshore and the wealth of American's are transferred to other nations.

 Monday, June 12, 2006

Pure Genious

6/12/2006 1:00:40 PM (Eastern Daylight Time, UTC-04:00)

Pure Genious: http://www.realtechnews.com/posts/3155

Brilliantly simple and intuitive.

I'm a firm believer that the simplest, most obvious ideas are the ones that require the most ingenuity to come up with.


 Tuesday, June 06, 2006

Random DevTools Entry: #011

6/6/2006 11:46:20 AM (Eastern Daylight Time, UTC-04:00)

Web development in IE just got a whole lot better (well, at least for me).

Enter Microsoft's Internet Explorer Developer Toolbar (link).

This is one area where IE has been just left behind in the dust by FireFox.  But this is definitely a nifty add-on!

Just a short outline of the features:

  • Built in validation from a dropdown.  Nifty and convenient.
  • Built in onscreen ruler!  This is awesome.
  • Ability to quickly resize the window.
  • DOM browser like FireFox.

And a ton of other stuff.

If you make webpages for a living, then all I can say is: Must. Download. Now!

Note that after installing it, you have to enable it by selecting it from the View->Toolbars menu item (it's instinctive to look in the Tools menu and get baffled by the lack of new menu items).

Update: there's also a non-Microsoft, FireFox analogue.

 Saturday, May 27, 2006

I Feel Terrible...

5/27/2006 8:37:52 PM (Eastern Daylight Time, UTC-04:00)

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.

 Tuesday, May 23, 2006

So, How's Married Life?

5/23/2006 6:32:25 PM (Eastern Daylight Time, UTC-04:00)

I love this reply from Jerry Brown, the mayor of Oakland, in Time magazine this week:

It's a good thing.  There is a certainty, a finality about it.  I was very conscious that it was a vow, and I liked that.  It's part of a higher order.  In a frivolous age, it has a depth that is very welcome.

 Friday, May 19, 2006

Friday Inspiration

5/19/2006 10:25:39 AM (Eastern Daylight Time, UTC-04:00)

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...

 Tuesday, May 09, 2006

Believe!

5/9/2006 12:47:20 PM (Eastern Daylight Time, UTC-04:00)

My eyes just teared up (no, really...I'm still kinda all emotional inside) watching the Nintendo E3 press conference intro video...wow, incredibly moving.

Amazing.

Update: Man, the tears keep coming...I dunno...such a fanboy I guess.  Glorious day!

 Monday, May 08, 2006

Asus W5F == Hawt!

5/8/2006 8:50:49 PM (Eastern Daylight Time, UTC-04:00)

I'm not going to go into a detailed review with performance specs and what not (they're floating around the web already, no?), but just a quick take.

Purchased the notebook last week from Geared2Play (you can find details in this thread: http://forum.notebookreview.com/showthread.php?t=52014).

Price was right and service from G2P was good (wife said the man on the line (Eddie?) was friendly and knowledgeable).

Notebook was shipped Friday and I received it today in the afternoon with a great deal of anticipation.

First of all, the W5F is gorgeous in person. Incredibly sexy and attention grabbing. Coming from an S1A previosly, the W5F is an increase in weight (S1A was incredibly light, though). However, the weight is put to good use; whereas the S1A would creak under torsional stress, the W5F is solid. This is one of the most solid notebooks I've felt in a long time. No creaking; very rigid chasis.

The screen was a big surprise. The S1A really suffered in this respect as the screen was of very poor quality in terms of brightness and dot pitch. The W5F screen is beautiful. Incredibly vivid and sharp. The pictures came out a bit grainy due to the high ISO, but trust me, the screen is incredibly sharp and the contrast is excellent. I have to admit that the widescreen format makes it seem like the screen real estate is much larger than it actually is.

Haven't tried out many of the features yet as it will be wiped and OS reinstalled (wife needs to use it at work (elementary school) on a domain). The bluetooth worked out of the box with a bit of setup (hint: to get the mouse to connect, press and hold the reset button at the bottom). The mouse was a great addition, Bluetooth no less. Unlike the S1A, W5F does not ship with a carrying case. Not a big deal as we have tons at home

Setting up the network was a trial. It was pretty confusing (see the screenshots below) as I could get a signal and an IP from the router, but I couldn't access the network (no ping response from the router even). I had to fiddle around and reboot the machine to get it to work. The Intel software didn't help much (see screen).

(Some shots are grainy from high ISO)

Waited for UPS all day for this!

A box inside the box...

Yet another box....

Finally, the goods!

Size comparison to V3 Razr.

Not as slim as the S1A, but S1A had a modular CD-R/W drive.

Widescreen goodness.

Orange light is badass.

Keyboard has excellent texture and feedback. The touchpad texture is nice too (although it'll probably wear off after a while I assume).

Screen is very nice; much better than anticipated.

Very nice "soft" LED lights. The touchpad is actually textured (those little gray dots are bumps).

Incredibly vivid; the green shows the contrast much better.

Viewing angle is not bad! Much better than S1A and even better than my Chembook (Compal).

From the other side...

Vertical viewing angle suffers a bit, but acceptable.

Uh....what "Wireless On" option???

Widescreen looks good.

Another shot...

Open from the side.

All in all? Better than expected. I had high hopes (rightfully so for a $1700 notebook), but this notebook (so far) has exceeded them. Beautiful looks, snappy performance (primarily office usage and web browsing), decent weight, and great build quality.

Started Working with the NDoc 2 Alpha Build...

5/8/2006 5:17:06 PM (Eastern Daylight Time, UTC-04:00)

Just started.

Turns out that it requires "HTML Help 2 Compiler" or "VSHIK".

Having used the previous version of NDoc, I first turned to my VS2005 install CD to see if the help utilities were included but not installed by default (but I swear I looked through that thing when I installed it specifically for help utilities).

Not there :-S

Googling led me to this sie: http://www.helpware.net/mshelp2/h20.htm, which has info on how to obtain VSHIK and how to set it up.  The site also has a good primer on MSHelp2.

Will report on how NDoc 2 is coming along...

Update: First run looks good.  The HxS output format is still a bit confusing to me...will have to dig into that.

RSS 2.0 Atom 1.0 CDF