Random Thoughts of a Scatterbrain.
 Wednesday, March 22, 2006

Random DevTools Entry: #006

3/22/2006 3:32:02 PM (Eastern Daylight Time, UTC-04:00)

While browsing the Dojo Toolkit site today, I noticed their bug tracker.

Hey now, this looks sharp!

Turns out it's this product called Trac by Edgewall Software.  Best of all, it's open source!  Looks good.  I'll have to see if I can convince anyone to use it.

I have to say, I've taken a long look at Bugzilla and the thing that turned me off (I know, it's rather shallow of me) is the sub-par interface.  I guess it was designed to be highly portable across browsers and platforms.  But damn, it looks like they didn't even bother making it a bit more attractive.

The TracBrowser feature is great too!  Code browser, HTML diff viewer, and all hooked into Subversion.  Incredibly awesome.

Maybe it's a good time and incentive to learn some Python

Random link: some Python IDEs reviewed.

(Random) Update: I spent some time whipping together a nifty little Subversion _svn directory cleanup script :-D It's great.  Simply download the file or copy the contents into a new .vbs file.

I've been meaning to do this for quite a while.  It's written in VBScript and based off of another script (which, for the life of me, I cannot remember where the original source is from).  You will need to have Windows Script Host installed (I believe) to be able to run this script.  Simply place it in the root directory of your project and it will remove all "_svn" directories in the context directory (directory you placed it in) and recursively into the sub-directories as well.

There is one confirmation dialog that allows you to change your mind and cancel the deletion if you double click it by accident.

svn_script_confirmation_t.gif svn_script_result_t.gif

Just the thing you need when zipping up and sending a project to someone without a Subversion client installed.

Enjoy!

 Tuesday, March 21, 2006

I Confess...

3/21/2006 9:37:23 PM (Eastern Daylight Time, UTC-04:00)

I'm a code perfectionist.  I like nice code.  Nicely formatted.  Nicely structured.  Nicely designed code.  Of course, first and foremost, the code must do what it is designed to do; it must fulfill its functional spec.  But any programmer worth hiring can make code work.  It's not terribly difficult to hack code together.  But it takes a true craftsman with an emphasis on extraordinary craftsmanship to write good code.

Man, I am looking at some baaaaaad code today.  Ugly.  Let me run down the list:

  • Untyped DataSets?  Check.
  • Poorly named functions?  Check.
  • Poorly named variables?  Check.
  • Cramming all code into one file?  Check.
  • Did I mention poorly named functions?  Double Check.
  • Inline SQL?  Check.
  • Using concatenation instead of StringBuilder?  Check.
  • Useless catch{} statements?  Check.
  • Seemingly random spacing of operators?  Check.
  • Using DataSets where a DataReader would be more performant?  Check.

GaaAAAAaaaAAAAAaaaaaahhhh!  It's seriously killing me to have to mix this code together with mine...I feel the urge to go in there and rewrite every line of it.  Damn, I'm a serious code perfectionist.

I look at this code and I'm reminded of the multi-threaded web server that I wrote when I was in college.  The whole thing was implemented in like, 2 files!  But heck, this isn't college.  I expect good code and good coding practices from the developers I work with.  Or am I wrong to impose my perfectionist attitude on the work of others?  As long as it works, right?

I touched upon my madness in "Letter to a Colleague" (an actual email that I sent to a co-worker) and "On Enterprise Library".  It's disheartening to see code like this; it's actually somewhat painful for me because of "The Perfectionist Plague".  I mean, Enterprise Library isn't the most interesting solution when it comes to object persistence, but it's a "standard" in the Microsoft .Net space and comes with a nifty configuration UI that makes it super easy to use...why do people still resist?

I dunno...I was hoping that I'd get away from these types of bad practices that are common in consulting and large companies.  I had hoped that going to a smaller shop would buy me more influence and a tighter developer community where we could develop to best practices and standards.  I had hoped that it would be an opportunity to not only make cool stuff, but do it "the right way" and write clean, extensible, well partitioned codebases.  I was hoping that I could get the company onto the Subversion bandwagon (it's free, it's fast, and it's more stable than VSS by far).  I was hoping that the developers would be open to object persistence alternatives like NHibernate or maybe EntitySpaces (or, dare I suggest, DLINQ?!? Only in my wildest dreams).  I was hoping that I would meet up with developers interested in design patterns and forming a common design language.

But it's not to be...yet.  Maybe my expectations are just too high.  I know I'm not the best developer in the world (I'm not that egotistical) and I'm certain that many would look upon my work as untidy, but there must be places out there where I'm expected to live up to expectations, not the other way around.

Actually, the worst part of it is that I just don't know how to approach other developers in a way that doesn't make me out to be a total ass (as I no doubt seem like now :-D).  I dunno...I'm not good at making slight hints; I'm just too straightforward and brutally honest.

Sigh :-S

 Monday, March 20, 2006

.Net Blogging Engines?

3/20/2006 5:56:28 PM (Eastern Daylight Time, UTC-04:00)

So far as I can tell, there are only three free, "lightweight", open source .Net blogging engines out there:

  • dasBlog.  This is what my blog is using.  It's okay, but definitely lacking in some respects like proper XHTML markup, database post storage, and available plug-ins.  But it's completely free!
  • Vine Type.  Looks good.  XHTML compliant (very much so that the source is almost not recognizable as ASP.Net source).  Unlike dasBlog, however, Vine Type isn't completely free; it's free for non-commercial use only (which is a very loose term nowadays in the blogging world with the explosion of AdSense supported blogs).
  • SubtextLooks to be the least "feature rich" of the three (but I say this without having actually tried it).  Oddly, it's the only blogging engine whose site is not running off of the engine itself, which is somewhat disheartening.  Also lacking screenshots and examples, which makes it tough to get a feel for the features.

So are there other options available out there in the .Net space?  I dunno...looks incredibly lacking in all directions.

Random link (just because I feel like it, k?): A good discussion on Ruby on Rails and  .Net with some inspired commentary (don't skip the comments!).

Suddenly, the Entire Universe Makes Sense!!!

3/20/2006 5:27:25 PM (Eastern Daylight Time, UTC-04:00)

Generally speaking, I like to keep my political leanings out of my postings, but I'll make a special exception today :-D

Via TheStar.com:

Remember the whiny, insecure kid in nursery school, the one who always thought everyone was out to get him, and was always running to the teacher with complaints? Chances are he grew up to be a conservative.

At least, he did if he was one of 95 kids from the Berkeley area that social scientists have been tracking for the last 20 years. The confident, resilient, self-reliant kids mostly grew up to be liberals.

The study from the Journal of Research Into Personality isn't going to make the UC Berkeley professor who published it any friends on the right. Similar conclusions a few years ago from another academic saw him excoriated on right-wing blogs, and even led to a Congressional investigation into his research funding.

So, which were you and what affiliation are you today?

I'd say that I wasn't very whiny; mostly quiet and introverted all along.  Today, I'm left of middle, not by choice, mind you (I don't go out to label myself).  It's more that my beliefs fall in line with more moderate "liberals".

 Friday, March 17, 2006

Subversion, Apache, Windows, and VS

3/17/2006 2:32:59 PM (Eastern Daylight Time, UTC-04:00)

I've been meaning to try to see if Subversion is a viable version control tool within a group of developers.  I've been using it myself as an alternative to Visual Source Safe about a year ago after stumbling on it while trying to figure out why VSS was killing my projects.

This morning, I finally upgraded my SVN version to the latest release, 1.3, and tried to set up the HTTP access as well.  I had never set up that piece before as no one actually wanted to dip their toes in with me, so there was no need to share access.  After a lot of struggling with Apache 2.2, the latest release, I decided to give up on it.  The current build of the Windows distribution of Subversion 1.3 is incompatible with Apache 2.2 due to the a change in the APR versions (Apache Portable Runtime) from .9 to 1.2.  I was just too damned lazy to figure out how to rebuild the projects :-D Maybe next time.  So I had to settle for Apache 2.0...but all is well now (thanks Nader)!

I plan on putting together a simple workshop for this in the near future as it was terribly difficult to find anything up to date and end-to-end.  Anyways, here are a few good reading points to get started with:

 Tuesday, March 14, 2006

Custom POP3/SMTP Mail Client

3/14/2006 10:21:39 AM (Eastern Daylight Time, UTC-04:00)

Think you can write a better web mail interface?  I know I do :-D.  I'll have to take a look at it a bit more when I get a chance.

If you're interested, here are a few good starting points for ya:

  • A small introduction for a C# client implementation.  Looks like a good starting point to get your code going.
  • RFC1939 and subsequent extension, RFC2449.   The official specification for the POP3 protocol; a good reference to clear up any ambiguities when writing your implementation.
  • RFC2821.  The official specification for SMTP (used for sending email messages).  I dealt quite heavily with this RFC when I was at Factiva.  Quite an interesting spec, but probably better to use CDOSYS instead if you have that available and you don't need full control over the SMTP implementation.
  • An article by Duncan Mackenzie on writing a custom client.  Duncan also has a neat little ballon popup implemented.
  • A .Net 2.0 library for POP3 communication.  Looks full featured and documented...good starting point if you're not interested in the intricacies of POP3.
  • A good sample POP3 session "conversation" example.  It helps to understand how the messages are typically used in a session.

Will be interesting, I'm looking forward to getting some free time to work on this.

I'm debating whether it makes sense, from a performance perspective, to use a sort of POP3-SQL Server synchronizer to move messages from one or multiple accounts into one repository for fast indexing and lookup.

 Friday, March 10, 2006

Back from Utah

3/10/2006 8:24:03 PM (Eastern Standard Time, UTC-05:00)

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.

Dick Cheney: Jedi Master

3/10/2006 9:47:15 AM (Eastern Standard Time, UTC-05:00)

The stunt that the Bush administration is pulling with this Dubai ports deal is simply genius (and of course, terribly disgusting from a political point of view).

About a month after I had gotten the job at Factiva, the recruiter that had brokered the deal called me up and took me out to lunch.  During that time, he had told me that one of the practices that they use when presenting candidates was to position the presentation in such a way that the client would see a few below par candidates to set up a candidate so that the last few candidates would all seem to be way above average.  In a sense, I was a closer in that there was no way that I could fail this interview given the setup that they performed (not that I needed it, the recruiter called and notified me that they hired me before I could even get back to my house, 20 minutes away).

This was confirmed to me by experience last year when I went in for an interview with JPMorganChase.  My goodness.  The guy they had lined up before me (due to a scheduling snafu, we both ended doing a "group interview" together) was a total moron.  Short guy.  Bad presentation.  Stuttering.  His main claim was that he built a website for his church using ColdFusion.  Wow.  Not to come off like an arrogant prick (which I probably am :-D), there was no way that this guy was going to even come close to getting the job over me.  (I declined, though, because I didn't like the manager and the environment didn't seem right for me.)

So what does all of this have to do with the Dubai ports deal?  It's fairly obvious that this has been planned all along by the Bush administration and in particularly, Dick Cheney as a setup for Halliburton to step in and take over control of the ports.  Could you imagine the outcry and resistance from the Democratic party and consipiracy theorists had they initially offered this deal to Halliburton?  The entire act was great.  Bush threatening veto (the man hasn't vetoed a single bill to pass his desk) was such a dead giveaway to the entire act and yet the public and the news outlets bought it up like a hot Christmas toy.  It was the perfect setup and the Democrats and some poor Republicans latched right on as planned.  After forcing the hand (having these Dem.s like Schumer give such a loud public outcry in the name of safety), it would look entirely partisan if they made the same outcry over Halliburton.

You can almost visualize Cheney in a dark room with a spotlight over his head, wringing his hands in pleasure at how this turned out as the media and the public ate it up.  The man is genius.  Using the simplest of psychological tricks to get the media and masses to do his bidding.  Jedi Master indeed.

 Tuesday, February 28, 2006

One of Those Days...

2/28/2006 11:42:48 AM (Eastern Standard Time, UTC-05:00)

I feel like I have ADD today.

Focus! (as if that helps)

My mind has pretty much been in cruise control mode the last few days...can't think about technical things.  Perhaps it's just too much excitement and anticipation.

I'm changing jobs (yet again) by choice and necessity.  The passing of another slice of my professional life brings with it additional wisdom and bonds.  I'm getting better at these things.  At the same time, I feel somewhat lost inside as well.  Like the new kid at the school (a situation with which I have much experience with).

I do wonder whether I'll ever find that place where I'll feel whole and I'll feel at home.  Surely, nothing in life is so perfect, but I don't know that I've even come close in the last few years.  The closest I've been was way back in the summer of 2000, when I was working for Captain (Mr. Ezra Hedaya) at a little startup with big hopes.  That was a great summer.  Learned a great deal and worked with great guys and gals.  I think I've been trying to capture that ever since...to no avail.

Such concepts of stability are seemingly archaic.  It's not just jobs, it's everything in life.  Lease a car.  Free agency.  Netflix.  I don't know that I mind it; it's not as if my peers with more stable positions are much happier than myself.  In fact, from a dollars and cents perspective, I've been better off than most of my peers.  For the first time, I'll be making more than my mom...a 20 year veteran of the Mainframe Era (of course this era never ended...the vestiges still flourish in financial and manufacturing industries).  More than that, this constant shifting has also shown me more possibilities and better opporunities.

For now, at least, I'm looking forward to the possibilities and the future.  New people, new places, and, most importantly, new opporunities to show 'em my stuff.  My brain is exploding with ideas with no guidance to shape them and bring them to fruition.  Had I known what I know now, when I worked for Captain, we'd all be rich men by now, I think.  At the same time, I never feel like I know enough.  There's always too much to read, too much to learn, and too much to explore...bookstores make my head want to explode; I actually feel anxious when I walk into one.  The sight of neatly stacked books makes me feel like I have tons of catching up to do.  Too much to do.  I actually feel guilty when I walk out of a bookstore without a purchase.  As if I've somehow lost a leg of some imaginary race for wisdom and knowledge (but I always get over it once I'm break the plane of the exit :-D).

One step at a time, I guess.  My brain is always thinking into the future, which makes it hard to focus on the now, at times.  I find it weird that some of my peers seek my advice when it comes to careers...I myself seek it from those with more experience in these matters than myself.  I don't know that I want to buy into all of what they are saying (of course, I'll regret this in a few years).  But I always try my best to offer whatever insights that I have when I do get pinged (not much :-S).  It's always interesting to see where some of those midnight debaters and GoldenEye marksmen are today :-)

So, how is life?

 Monday, February 27, 2006

The Workspace

2/27/2006 8:10:12 PM (Eastern Standard Time, UTC-05:00)

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.

RSS 2.0 Atom 1.0 CDF