Random Thoughts of a Scatterbrain.
 Tuesday, November 01, 2005

Live, From Austin, Texas

11/1/2005 11:25:23 PM (Eastern Daylight Time, UTC-04:00)

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!

 Monday, October 31, 2005

Installing VS2005 and SQL2005

10/31/2005 1:30:37 PM (Eastern Daylight Time, UTC-04:00)

RTM versions were downloaded over the weekend and I'm setting them up now.

Weird error encountered with SQL Server 2005 setup; On a WinXP SP2, I'm getting the following message:

"SQL Server Setup failed to modify security permissions on WMI namespace \\.\root\Microsoft\SqlServer\ServerEvents\DEV2005. To proceed, verify that the account and domain running SQL Server Setup exist, that the account running SQL Server Setup has administrator privileges, and that the WMI namespace  exists on the destination drive."

I googled the first line and found no results, so I figured I'd post this in case anyone else runs across this error.  Further googling led me to an MSDN article regarding Setting Namespace Security.  I followed the instructions but wasn't able to find the namespace \\.\root\Microsoft\SqlServer\ServerEvents\DEV2005.  Note that I'm installing 2005 as a named instance ("DEV2005" being the name of my instance), so this may not be an issue with default instances.

My current action is to abort the install and try again...I'll update if there are other developments.

Update: I switched to the default, non-named instance and it seems to work fine...however, I get an error when the installer tries to install the sample databases 'doh!  It says that my account is not an admin account, even though it is...

 Friday, October 28, 2005

CS476 Represent!

10/28/2005 11:22:03 AM (Eastern Daylight Time, UTC-04:00)

Heh, this is a Friday shout out to my project group for CS476--Ed (Myung) Kim, Roger Chang, and Craig Lichtenstein.  These guys were a great group to work with as everyone really took responsibility for their parts of the project and helped to deliver, what I felt, was a pretty cool application.

First, a little abstract.  In college computer science courses, even though you're told that you're supposed to work on programming assignments yourself, I think that no one really ever did.  If I may opine, this is a poor idea to begin with as no programmers in the real world work in isolation.  Now keep in mind, there are different working relationships.  In some cases, people are just moochers and just want to copy your code or steal your solution ideas.  In others, it's really a relationship where each of the students feeds off of the others to arrive at the solution together.  I had such a relationship with one Lew Fernandez, a fellow computer science major who was my roommate for half of the semester (a rocky freshman year).  I've always been one of those guys that could figure things out better if I had to discuss and explain different aspects with other people.

At some point, the idea occurred to me that it would be cool if we could work on the same codebase, collaboratively and interactively, even from remote locations (for example, if he was on one campus, and I was in our dorm room) without having to install any software.  Basically, you could work on code collaboratively from anywhere that you had access to a web browser.  Thus was born the idea of what would eventually turn out to be WebEdit, the project I designed for my CS476 Advanced Web Applications course.

This application popped back into my head recently as I was browsing a post on Web 2.0.  I came across the application Writely and it clicked, immediately, that what we had built was eerily similar to the idea behind Writely.  Admittedly, the implemenation and polish is very different (ours was slapped together in what I would say was roughly a week's worth of development time).  But it's nice to know that we had some good ideas back then.

WebEdit (aka JavaCVS3), utilized a Java applet frontend embedded in a web page that could communicate with a central server using Java RMI.  Chat was also in there, but that required a socket connection between the applet and the server, so it was limited somewhat depending on the networks and the firewalls sitting between any given client and the server.  The really cool part was that we didn't explicitly use the file system to manage files; everything was done through CVS.  Projects had to be imported to a CVS repository after which, different group members could check out a working copy by simply selecting the project from a drop down (projects were associated with groups).  As you're working on your working copy, you can update your copy if another user commits (you are notified interactively) and, using CVS merge, we were able to automatically merge your changes to those that were checked in by the other user.

While I'm here, I'd just like to take a moment and thank the guys for doing such a great job on the project and really working like a team (we pulled at least one 10 hour programming session topped off by celebratory coffee and doughnuts from DD).  As I was digging through some of the old documentation while trying to get everything set up again (to be clear, it was lacking in that respect), I was just amazed by the level of detail and attention in the documentation, especially by Ed; it made the process a bit easier for me.

So in any case, all this nostalgia made me want to see it up and running again.  The original application was designed to run on the Unix platform (including all of the sub-systems like CVS, Apache, and MySQL).  I know that at some point, after I graduated, I had tried to port our work over to a Windows platform quite unsuccessfully and gave up.  I was somewhat saddened as it was great work, but just not enough documentation/information to set it up and make it work on a different platform...until today.

After a lot of digging, prodding, and trial and error, I finally got it working again!  I had to substitute CVS with CVSNT, not knowing whether CVSNT would work exactly like the version of CVS we were running at Rutgers (no one ever wrote down the version).  It took me a few tries, but I finally figured out the version of Java that we originally compiled the source with (or at least the highest version without issues).  I also had to reverse engineer the database from the codebase (the database documentation was very high level and I didn't have any sample data to work from) and change the code to work with SQL Server instead of MySQL.  After a whole day of fidgeting, I finally got it working again!  Joy!  Particularly enjoyable since I haven't worked with Java in so long (roughly 2.5 years now).

webedit_capture.jpg

So this post is for you guys, if you should ever happen to stumble across this blog ;-)

 Wednesday, October 26, 2005

Walmart = Evil?

10/26/2005 12:15:18 PM (Eastern Daylight Time, UTC-04:00)

After reading the recent articles regarding the leaked Walmart memo regarding the hiring of "unhealthy" persons, I couldn't help but be repulsed by Walmart.

Another retailer, CostCo, which battles Walmart's Sam's Club, is almost the complete opposite of the Walmart in terms of business practices, values, and principles. I dug up a little writeup from a few months back:

Jim Sinegal = Hero

I was really moved by an article that I read about CostCo Ceo, Jim Sinegal.

"Costco's average pay, for example, is $17 an hour, 42 percent higher than its fiercest rival, Wal-Mart's Sam's Club. And Costco's health plan makes those at many other retailers look Scroogish.
...
Costco was founded with a single store in Seattle in 1983; it now has 457 stores, including two in the Houston area. Despite Costco's impressive record, Sinegal's salary is just $350,000, although he also received a $200,000 bonus last year. That puts him at less than 10 percent of many other chief executives, though Costco ranks 29th in revenue among American companies."

There are other positive articles on CostCo's business practices floating around the web.  I also learned a lot about CostCo and their absolutely awesome business practices from some people on Fark.

How's this for being treated well...

I'm an hourly NON-MANAGEMENT employee at a non-union location who makes $19.32 per hour and time and a half on Sundays for $28.98 per hour.

Besides this I get a bonus of $3,000 twice per year (full time employee), I get FIVE Weeks of paid vacation each year, 8 paid holidays, 6 paid sick days, I pay 4% of the total cost of my health insurance, I get 2% back on all my purchases, I get a free turkey every Christmas (winter holiday), ....

Did you know that a cashier at Costco who has worked for the company full time for 4 years makes more money than an Assistant store Manager at Wal-Mart?

Wait HERE's A GREAT ONE THAT I ALMOST FORGOT!!!!! ONE THAT IS SURE TO MAKE THE LIBERALS FLAME!!!

If you are a Costco employee and leave the company to enlist in the military, COSTCO HOLDS YOUR JOB FOR YOU FOR 5 YEARS!! AND IT GETS BETTER! If you end your active military service (you can stay in the reserves) and decide to come back to Costco within 90 days of your discharge, Costco not only takes you back, BUT THEY TAKE YOU BACK AS IF YOU HAD NEVER LEFT!!! You get the same or equal position and you accrue raises and bonus eligibility based on how many hours you worked per week for Costco before you left for the service!!!

So if you're a full time employee with say 6 months on the job, you can join the service, do a 4 year tour to get your GI bill, leave the active duty military and come back to Coscto as a topped out employee making $18.32 per hour with full benefits!!!!

-- "The_Pink_Pimp"

Now that is impressive; all this stuff really moved me (strange, I know). To me, this is what true patriotism is in the 21st century; it is supporting your fellow Americans by giving them fair wages, good benefits, and treating them like first class people.  An honest business practice that actually rewards the people that make the business profitable day-in, day-out?  That's almost unheard of in todays environment of Enrons and Tycos. As the cherry on top of the whipped cream, CostCo is also more profitable per square foot of retail space and per worker than Walmart...by a large margin:

Costco actually keeps its labor costs lower than Wal-Mart's as a percentage of sales, and its 68,000 hourly workers in the U.S. sell more per square foot. Put another way, the 102,000 Sam's employees in the U.S. generated some $35 billion in sales last year, while Costco did $34 billion with one-third fewer employees

Just goes to show you how fair pay, good benefits, and respectable business practices do pay in the end as employees are far more motivated, satisfied, loyal and, ultimately, far more productive.

I checked out their website and found out that they use ASP.Net :-D

CostCo just got another convert.

 Tuesday, October 25, 2005

Acrylic Doodle

10/25/2005 9:25:19 PM (Eastern Daylight Time, UTC-04:00)

scan.jpg

A little doodle I did in Acrylic. I'm really digging the vector brushes; they're great for doing lineart like this (looks even better in higher resolution). There are some quirks when working with bitmap and vector layers involving an opaque bounding box around the brush stroke that blocks out the other layers.

 Monday, October 24, 2005

Porn, Hollywood, and Microsoft

10/24/2005 2:26:51 PM (Eastern Daylight Time, UTC-04:00)

It's a wonder why you and I are still viewing movies via physical mediums like DVDs.  To be honest, I'm really not sure why there's even such a huge fuss over BluRay vs. HDDVD.

About three or four years ago, I was working at Dreamzotic (NSFW!!).  First of all, from what I understand, Rob, the founder, was streaming video via Dreamzotic all the ways back in 1996!  Yes, almost a decade ago.  When I worked there, we were streaming up to 300 Kbps.  Today, I don't know the exact number as I no longer work there, but it would seem that Dreamzotic is offering near 1 Gbps!  On top of that, they also have a managed download so that you can grab the movie in its entirety.  The DRM protection prevents the video from being played on any machine other than the original.

I was once told that porn has been one of the largest forces behind innovation in Internet technologies.  To some extent, I think we can all agree that this is very, very true, especially in the case of streaming video.

So what I don't quite understand is what Hollywood doesn't understand about the current state of the movie industry as a whole.  With the introduction of large, high definition televisions and cheap, affordable surround sound systems, the theater going experience is dated.  To be clear, I hate going to the movie theater to see new releases.  Hate it, hate it, hate it.  From the stupid kids with their cell phones to the jokesters that try to be funny during a film to the dirty, dirty floors and restrooms, what is there to like?

For the past 8 months, I've been using Netflix and basically avoiding the movie theater (which is right across the street from our development).  It's quite obvious that the only two downfalls of Netflix is the method of distribution and the fact that no one has the balls (or insight) to do a simultaneous theater + DVD release (well, Mark Cuban has both, but I haven't seen anything major from him yet).

Whereas the porn industry has been chugging along (especially with the introduction of DRM to Microsoft Windows Media Services), you really have to scratch your head at all of the fuss in Hollywood and why it's taken almost a decade to catch up.

Bill Gates gets it right regarding BluRay vs. HDDVD:

"Well, the key issue here is that the protection scheme under Blu-ray is very anti-consumer and there's notmuch visibility of that. The inconvenience is that the [movie] studios got too much protection at the expense consumers and it won't work well on PCs. You won't be able to play movies and do software in a flexible way.

It's not the physical format that we have the issue with, it's that the protection scheme on Blu is very anti-consumer. If [the Blu-ray group] would fix that one thing, you know, that'd be fine.

For us it's not the physical format. Understand that this is the last physical format there will ever be. Everything's going to be streamed directly or on a hard disk. So, in this way, it's even unclear how much this one counts"

 Saturday, October 22, 2005

Thoughts on Microsoft Acrylic

10/22/2005 4:48:18 PM (Eastern Daylight Time, UTC-04:00)

I started playing with Acrylic a bit today and I'm amazed (bet you didn't see that one coming).

For the purpose of reference, so you know where I'm coming from, here's some background:

  • I started doing graphics work with Paint Shop Pro back in the day and I eventually moved onto Adobe Photoshop 5.5.
  • Since then, I've only upgraded to Photoshop 6.0, so I haven't had much experience with the newer CS versions of PS.
  • I've used Illustrator a bit, but mostly to draw my lineart, and not for any serious graphic design.
  • I have a copy of Corel Painter 8 or 9, but I never got into it because it was sooooo poorly optimized that I'm not sure how anyone seriously used it.  Likewise, doing freehand artwork in Illustrator 9 is insane.  At 300dpi, an 8x10 image takes nearly 5 minutes to save (and I'm on a 2.4 Ghz Pentium IV with 1280 MB of RAM).
  • I've also worked with Corel Draw and Flash.
  • I haven't been doing as much artwork lately.

Okay, with that out of the way, I'd like to say that I'm pleasantly surprised by Acrylic (I remember reading a lot of bad first impressions very early on).  Some observations first:

  • First of all, it seems to combine many of the tools into one as it allows for the creation of pixel (bitmap) and vector layers so that you can work with both types of objects in one document.  Previously, at least with PS6, this was not possible.
  • It's much more finely optimized than Illustrator or Painter.  No slowdown at all (and I'm currently on my laptop).
  • Some of the new UI paradigms are great; I'm quite fond of the "combo-lock" style toggles and the easy to access sliders (in PS6, a lot of the sliders are hidden/context sensitive).
  • To go with the above, many graphic artists are going to have to do a bit of retraining.  I mean, gosh, I feel like the Adobe PS interface is so ingrained in my mind that I find it a bit hard to adjust...I feel kinda lost :-S.
  • Acrylic allows to to completely customize the hotkeys!  Excellent!
  • Unlike the Adobe products I've used in the past, this, even in such an early stage, ships with tons of predefined brushes.
  • Wow, I love the way it allows you to toggle the width of a vector brush stroke.  I think I'm in love.  Illustrator was such a pain in the ass in this respect.
  • There's an XAML exporter as well (as a seperate install).  I'll have to try that out later and see how it works.  I'm actually quite curious how the vector and bitmap objects will map to XAML.
  • I don't know that I'm so fond of the way the layers are represented.  Unlike in PS, where layers are in their own window, the layers are represented with a subwindow of the main document.
  • Where is the history?
  • There is no "Save for Web" option as far as I can tell...

I'll keep updating this post as I play around with it a bit more.  I think I'm going to move one of my current projects into Acrylic instead.  So, my biggest question now is: Microsoft, how much is all this gonna cost?  If they price it around PS, work on a some minor UI oddities (embossed icons? I dunno), and add a web optimization interface, I think they have a winner on their hands as it seems, at least on initial inspection, to be quite a good product.

Now what I really want to get my hands on is Sparkle.

 Friday, October 21, 2005

More Microsoft Stuff

10/21/2005 1:58:20 PM (Eastern Daylight Time, UTC-04:00)

Have I mentioned that I'm excited about the tools and technologies coming out from Microsoft in the near future?

Via Manuel Clement, there is a preview (CTP) of the Acrylic graphic design tools available for download from MSDN.

I also came across a set of videos for the Visual Studio Express line of tools (and .Net 2.0 in general).  Gonna have to slot some time for these videos.

Lots of exploration to do this weekend when I get some time.

 Thursday, October 20, 2005

The Parable of the Concept Car

10/20/2005 3:32:08 PM (Eastern Daylight Time, UTC-04:00)

There's a great article in this month's Time magazine on Steve Jobs and Apple's success, even though the company operates counter what conventional wisdom dictates.

One bit that really caught my attention was Steve's "Parable of the Concept Car":

Ask Apple CEO Steve Jobs about it, and he'll tell you an instructive little story. Call it the Parable of the Concept Car. "Here's what you find at a lot of companies," he says, kicking back in a conference room at Apple's gleaming white Silicon Valley headquarters, which looks something like a cross between an Ivy League university and an iPod. "You know how you see a show car, and it's really cool, and then four years later you see the production car, and it sucks? And you go, What happened? They had it! They had it in the palm of their hands! They grabbed defeat from the jaws of victory!

"What happened was, the designers came up with this really great idea. Then they take it to the engineers, and the engineers go, 'Nah, we can't do that. That's impossible.' And so it gets a lot worse. Then they take it to the manufacturing people, and they go, 'We can't build that!' And it gets a lot worse."

When Jobs took up his present position at Apple in 1997, that's the situation he found. He and Jonathan Ive, head of design, came up with the original iMac, a candy-colored computer merged with a cathode-ray tube that, at the time, looked like nothing anybody had seen outside of a Jetsons cartoon. "Sure enough," Jobs recalls, "when we took it to the engineers, they said, 'Oh.' And they came up with 38 reasons. And I said, 'No, no, we're doing this.' And they said, 'Well, why?' And I said, 'Because I'm the CEO, and I think it can be done.' And so they kind of begrudgingly did it. But then it was a big hit."

I think this is a common downfall of many organizations and projects and it results from a sort of "design by committee".  Fred Brooks makes a similar point in The Mythical Man Month with regards to building software:

Simplicity and straightforwardness proceed from conceptual integrity.  Every part must reflect the same philosophies and the same balancing of desiderata.  Every part must even use the same techniques in syntax and analogous notations in semantics. 

Concpetual integrity in turn dictates that the design must proceed from one mind, or from a very small number of agreeing resonant minds.

In the case of Apple, Steve Jobs is the bolt that holds the whole structure together and the success of Apple can be directly related to Jobs' vision.  From concept to implementation, he enforces coceptual integrity at all levels of the organization.

I think the significance of conceptual integrity struck me when I was sitting in OfficeMax one day as my wife was looking for some supplies for school.  Christopher Lowell's Seven Layers of Design: Fearless, Fabulous Decorating was sitting on a desk that was next to the executive chair that I was fiddling with.  In summary, Lowell drives each of the project rooms in the book with his "seven layers of design" to demonstrate how easy it is to change a room from drab to fab in seven easy steps (yes, that sounded non-hetero in my head, too).  As I flipped through it, I couldn't help but admire how he made his philosophy so succint and consistently applied it throughout the book; it made it seem so easy.

I think the lesson to be learned from this is the importance of conceptual integrity from design to implmentation.  Good designs often fall flat in implementation due to poor adherence to the core concepts and ideas of the designer.

 Wednesday, October 19, 2005

"Cross of Iron"

10/19/2005 12:59:16 PM (Eastern Daylight Time, UTC-04:00)

I came across a blog post today that examined Dwight D. Eisenhower's 1953 speech, titled Cross of Iron.

What struck me a bit was the similarity of his message and vision to that of the Dalai Lama when he was at Rutgers a few weeks back.

In particular, the following excerpts mirrored the the perspective of the Dalai Lama with regards to war in the modern, globalized world:

"First: No people on earth can be held, as a people, to be enemy, for all humanity shares the common hunger for peace and fellowship and justice.

Second: No nation's security and well-being can be lastingly achieved in isolation but only in effective cooperation with fellow-nations.

Third: Any nation's right to form of government and an economic system of its own choosing is inalienable.

Fourth: Any nation's attempt to dictate to other nations their form of government is indefensible.

And fifth: A nation's hope of lasting peace cannot be firmly based upon any race in armaments but rather upon just relations and honest understanding with all other nations."

In his lecture at Rutgers, the Dalai Lama expressed that, in today's world, as we are increasingly dependent on other nations in one way or another, it doesn't make sense to label countries as enemies and wage war.  In doing so, in a sense, a nation wages war against itself.  This is true on many levels with the US as we have seen our soldiers die, our funds sink into a hole as a (very expensive) natural disaster hits our shores, and our reputation damaged for the near future.

Gonna have to read the rest of that sometime later today.

RSS 2.0 Atom 1.0 CDF