<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>in Chris Velazquez's words...</title>
  <link rel="alternate" type="text/html" href="http://www.chrisvelazquez.com/blog/" />
  <link rel="self" href="http://www.chrisvelazquez.com/blog/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2010-01-19T08:52:55.7624179-08:00</updated>
  <author>
    <name>Christopher S. Velazquez</name>
  </author>
  <subtitle>a blog fertilized by my mental droppings</subtitle>
  <id>http://www.chrisvelazquez.com/blog/</id>
  <generator uri="http://www.dasblog.net" version="1.9.6264.0">DasBlog</generator>
  <entry>
    <title>The Job Hunt</title>
    <link rel="alternate" type="text/html" href="http://www.chrisvelazquez.com/blog/PermaLink,guid,b6ca3d9a-0dbf-4250-9107-f6c55faeffbe.aspx" />
    <id>http://www.chrisvelazquez.com/blog/PermaLink,guid,b6ca3d9a-0dbf-4250-9107-f6c55faeffbe.aspx</id>
    <published>2010-01-19T08:52:55.762-08:00</published>
    <updated>2010-01-19T08:52:55.7624179-08:00</updated>
    <category term="general" label="general" scheme="http://www.chrisvelazquez.com/blog/CategoryView,category,general.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">I was chatting with a recruiter from New
York City, and he told me that in the past 12 years, this has been the worst market
for IT hiring that he has ever seen.  I can believe it.  I have been without
a job for several months now, and have come frustratingly close to scoring some really
good positions, only to be edged out by minutiae.<br /><br />
I applied for a Senior C# developer position at a well-known energy exploration company. 
The process started in November, and it took a while before they would even consent
to interview me.  They were very interested in my resume, and invited me for
an interview.  I thought I had totally bombed the interview - I drove home despondently. 
But the intervening recruiter told me that they have rave reviews for me and were
very interested and they wanted me back for a second interview.  This gave me
a little bit of hope.  So for my second interview I dressed to the nines, I was
spot on with every question they flung at me.  I was friendly, funny and fantastic. 
There was no way I could have blown this.  But then I got no response for a week
from the recruiter.  So I called to ask what was going on.  She told me
that they decided to pass on me because I didn't knowa WPF (Windows Presentation Foundation)
yet and they decided to go with the two other candidates where were "already approved"
by the HR department.  This truly sucked because I thought we had a genuine rapport,
and I still think I would have been the best candidate for that position.<br /><br />
And I trudge onward...<br /><p></p><img width="0" height="0" src="http://www.chrisvelazquez.com/blog/aggbug.ashx?id=b6ca3d9a-0dbf-4250-9107-f6c55faeffbe" /></div>
    </content>
  </entry>
  <entry>
    <title>Back from a long absence</title>
    <link rel="alternate" type="text/html" href="http://www.chrisvelazquez.com/blog/PermaLink,guid,b2e0f424-803b-449b-852c-2892f2b74174.aspx" />
    <id>http://www.chrisvelazquez.com/blog/PermaLink,guid,b2e0f424-803b-449b-852c-2892f2b74174.aspx</id>
    <published>2007-05-14T17:58:05.634992-07:00</published>
    <updated>2007-05-14T17:58:05.634992-07:00</updated>
    <category term="frivolity" label="frivolity" scheme="http://www.chrisvelazquez.com/blog/CategoryView,category,frivolity.aspx" />
    <category term="general" label="general" scheme="http://www.chrisvelazquez.com/blog/CategoryView,category,general.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Thank you, patient readers, for indulging my long absence.  I will be adding
some new articles shortly, including nifty tricks you can teach Subsonic to do, more
C# .NET Interop magic, more news from people with similar DNA, and perhaps some revelations
on audio processing, IMVU and search engine strategies for your blog.
</p>
        <p>
I was interested to see how people are finding this blog.  It appears to be a
common practice for IT recruiters to google prospective developers.  Many people
are finding this blog by my name "Chris Velazquez", as well as the misspelling "Chris
Velasquez".  In fact, a google search on just "Velazquez" shows this web site
in the top 100 results, despite the more obvious relevance of Spanish painter Diego
Velazquez, congresswoman Nydia Velazquez, and the fact that Velazquez is quite a common
name in the Spanish-speaking world.
</p>
        <p>
There seems to be some interest in <a href="http://www.chrisvelazquez.com/blog/CommentView,guid,9908a5a8-b6d5-4a33-941d-75acf748c5b2.aspx">C#
dictionary of delegates</a>, an alternative to using a switch statement.  While
this isn't an earth-shattering revelation, several programmers have picked up on this
technique, and I am beginning to use it more frequently in certain parts of my own
code.
</p>
        <p>
As expected, many IE7 users want to use <a href="http://www.chrisvelazquez.com/blog/PermaLink,guid,cbbfdc06-2ffe-4e6f-830f-9ccf1f73f9fe.aspx">BugMeNot</a> to
bypass mandatory registration.  And also as expected, people are having problems
trying to get MS Office and Excel to work seamlessly with their C# code. 
Surprisingly, the image of my daughter holding balloon with static cling in her hair
is becoming a hit on the search engines.
</p>
        <p>
I'll be fertilizing this blog with my mental droppings shortly.  Stay tuned!
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.chrisvelazquez.com/blog/aggbug.ashx?id=b2e0f424-803b-449b-852c-2892f2b74174" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Microsoft Launches Visual Studio 2005 update for Windows Vista</title>
    <link rel="alternate" type="text/html" href="http://www.chrisvelazquez.com/blog/PermaLink,guid,9629eeae-5834-45c4-907c-75f534955e2c.aspx" />
    <id>http://www.chrisvelazquez.com/blog/PermaLink,guid,9629eeae-5834-45c4-907c-75f534955e2c.aspx</id>
    <published>2007-03-09T17:29:21.2101168-08:00</published>
    <updated>2007-03-09T17:29:21.2101168-08:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=90e2942d-3ad1-4873-a2ee-4acc0aace5b6&amp;displaylang=en">Get
it</a> at <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=90e2942d-3ad1-4873-a2ee-4acc0aace5b6&amp;displaylang=en">microsoft.com</a>.
</p>
        <p>
          <a href="http://www.eweek.com/article2/0,1895,2101297,00.asp?kc=EWNAVEMNL030707EOAD">Read
about it</a> at eWeek.
</p>
        <img width="0" height="0" src="http://www.chrisvelazquez.com/blog/aggbug.ashx?id=9629eeae-5834-45c4-907c-75f534955e2c" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Friday Frivolity #3</title>
    <link rel="alternate" type="text/html" href="http://www.chrisvelazquez.com/blog/PermaLink,guid,1176c441-b630-4a59-be36-497f7ac7d2aa.aspx" />
    <id>http://www.chrisvelazquez.com/blog/PermaLink,guid,1176c441-b630-4a59-be36-497f7ac7d2aa.aspx</id>
    <published>2007-03-02T07:38:16.959-08:00</published>
    <updated>2007-03-02T12:01:02.3392-08:00</updated>
    <category term="frivolity" label="frivolity" scheme="http://www.chrisvelazquez.com/blog/CategoryView,category,frivolity.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>News from people with similar DNA</strong>
        </p>
        <p>
          <img alt="Tracy Velazquez" hspace="10" src="http://www.chrisvelazquez.com/blog/content/binary/tracy_velazquez.jpg" align="right" vspace="10" border="0" />The
week after next I'm going to have a visit with my sister, <a href="http://www.commonweal.net/about.html">Tracy
Velazquez</a>.  She's coming to Houston for some conference and of course will
spend some time in Boerne with us.  Yes, this is the Tracy Velazquez that <a href="http://web.archive.org/web/20050210042510/http://www.tracyforcongress.com/">ran
for Congress</a> in 2004.  I was the one to blame for her campaign web site,
including the blogging software.  So I must confess that I'm not the first
person in the family to have started blogging.  If you visit the archive of her
site, you'll see that her <a href="http://web.archive.org/web/20050210042510/http://www.tracyforcongress.com/#0ch7183wkmww">sense
of humor</a> is similar to mine, once again proving indisputably that we have
similar DNA.  Alas, she lost that election, even though she's "hot".
</p>
        <p>
My son, Tony (11), recently advanced from Cub Scouts to Boy Scouts at the Blue and
Gold banquet held at the Boerne Convention Center.  I was unable to get any decent
photos with my cheesy cell phone camera.  I did, however, get a picture of the
most beautiful, talented, creative and intelligent girl in the world.  That would
be my own daughter, of course, Aria (7).  She is pictured here demonstrating
the effect of static electricity from balloons on one's hair.
</p>
        <p align="center">
          <img alt="The static electricity  in the balloons attracts her hair" hspace="10" src="http://www.chrisvelazquez.com/blog/content/binary/aria_balloon_static_electricity.jpg" vspace="10" border="0" />
        </p>
        <p>
          <strong>No respect</strong>
        </p>
        <p>
Last night, Tony told me he had found the perfect song for me.  It's called "<a href="http://www.jonathancoulton.com/songdetails/Code%20Monkey">Code
Monkey</a>" by <a href="http://www.jonathancoulton.com/">Jonathan Coulton</a>, and
you can listen online or buy the MP3.  I tell you, I get no respect.
</p>
        <p align="center">
          <img src="http://www.chrisvelazquez.com/blog/content/binary/codemonkey-01.jpg" border="0" />
        </p>
        <p align="left">
          <strong>My swag's in the mail</strong>
        </p>
        <p align="left">
Erin from <a href="http://blogs.activestate.com/activestate/2007/02/warning_another.html">ActiveState</a> referenced
my blog earlier this week, and she got a creative marketing idea from my <a href="http://www.chrisvelazquez.com/blog/PermaLink,guid,47354cd4-9c0c-4840-918e-be0a00e7187a.aspx">Nutty
Warnings</a> blog entry. I pinged her back, teased her a little, and got a free T-shirt! 
I love geek swag.  The last time I was this happy was when I won the puzzler
from <a href="http://www.softartisans.com/">SoftArtisans</a> (using a Perl script,
heh heh) and received a free SoftArtisans T-shirt and a license for <a href="http://officewriter.softartisans.com/">ExcelWriter</a>,
which I am still using in production today!  Actually I was more excited about
the T-shirt, because for a few hundred dollars anyone can license their software!
</p>
        <img width="0" height="0" src="http://www.chrisvelazquez.com/blog/aggbug.ashx?id=1176c441-b630-4a59-be36-497f7ac7d2aa" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Retiring the E-Mail Server</title>
    <link rel="alternate" type="text/html" href="http://www.chrisvelazquez.com/blog/PermaLink,guid,488f986c-ddee-4ab5-970a-61b42cb0d63d.aspx" />
    <id>http://www.chrisvelazquez.com/blog/PermaLink,guid,488f986c-ddee-4ab5-970a-61b42cb0d63d.aspx</id>
    <published>2007-03-01T12:11:44.366-08:00</published>
    <updated>2007-03-01T13:13:51.9965376-08:00</updated>
    <category term="general" label="general" scheme="http://www.chrisvelazquez.com/blog/CategoryView,category,general.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img title="You've Got Spam" alt="You've Got Spam" hspace="10" src="http://www.chrisvelazquez.com/blog/content/binary/youve_got_spam.jpg" align="right" vspace="10" border="0" />I've
raised the white flag.  I've had it with hosting e-mail.  I just purchased
an e-mail hosting plan from GoDaddy, and I'm in the process of moving all the e-mail
accounts.  And instructing customers on how to change their Outlook settings
for the new system.  Hopefully, I can get everyone moved over in the next couple
of weeks.
</p>
        <p>
The sordid tale of the <a href="http://en.wikipedia.org/wiki/Tar_baby">tar-baby</a> from
hell begins about four years ago, when I was having problems with the ISP that was
hosting my e-mail service.  As things happened, I came upon an open-source mail
server called <a href="http://www.lumisoft.ee/">Lumisoft</a> that was written in C#
and was able to handle SMTP relays, POP3 inboxes, and had a cute WinForms UI for administration. 
It must have been the macho call of the wild - I can do this!  I grabbed an old
computer, wiped it clean, installed Windows 2000 Pro on it and set up the mail server. 
I had initially intended to use it for just my own purposes, and my wife and I used
it for our e-mail.  But as things progressed, I started getting calls from customers
who were getting angry that their ISPs weren't filtering their spam and letting e-mail
viruses get through.  So I picked up <a href="http://spamassassin.apache.org/">SpamAssassin</a>,
and wrote a couple Perl scripts (shoutout: using ActiveState ActivePerl) that would
comb the mail looking for spam to tag and also tossing out anything executable. 
These Perl scripts were fired off by a little C# Windows Service I wrote in a half-hour. 
And I'm happy to say I haven't had a single e-mail virus in Outlook in four years. 
But things quickly deteorated.  To summarize:
</p>
        <ul>
          <li>
            <strong>Network downtime</strong> - my ISP doesn't answer the phone on Sundays, so
when do you think it goes down? 
</li>
          <li>
            <strong>Security Breach</strong> - a slacker at my ISP had a null VPN password, allowing
a Japanese spammer to hijack my mail server as his own personal SMTP relay. 
</li>
          <li>
            <strong>Spam</strong> - causing an increasing burden on the old 450 MHz Pentium II. 
</li>
          <li>
            <strong>Abandoned E-mail Accounts</strong> - piling up the spam and filling up the
disk 
</li>
          <li>
            <strong>Disgruntled Customers</strong> - I always know when the mail goes down, oh,
I hear about it! 
</li>
          <li>
            <strong>Clueless Customers</strong> - who sign up for all sorts of online crap and
wonder why they have so much spam! 
</li>
          <li>
            <strong>Hardware Issues</strong> - Ugh</li>
        </ul>
        <p>
I've had it up to here, and now I'm putting POSTAL to pasture. (Yes, I named the computer
"POSTAL" as a joke.  Ha ha, just serious.)  I can get 100 POP3 e-mail
accounts from GoDaddy for just $30 a year, and it comes with a webmail interface. 
The admin interface is a pain in the rear, but I'm sure they can do a better job with
uptime than I can.  I will miss having a bottomless e-mail account that users
could send 100 MB files to, but the need for that has decreased as well.  At
least I won't be wasting any more time on this.
</p>
        <p>
This is better than going postal.  Don't you think?
</p>
        <img width="0" height="0" src="http://www.chrisvelazquez.com/blog/aggbug.ashx?id=488f986c-ddee-4ab5-970a-61b42cb0d63d" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Microsoft publishes PostgreSQL how-to</title>
    <link rel="alternate" type="text/html" href="http://www.chrisvelazquez.com/blog/PermaLink,guid,534833ac-2fde-4f22-b4ed-740a83762c2b.aspx" />
    <id>http://www.chrisvelazquez.com/blog/PermaLink,guid,534833ac-2fde-4f22-b4ed-740a83762c2b.aspx</id>
    <published>2007-02-26T07:43:05.203616-08:00</published>
    <updated>2007-02-26T07:43:05.203616-08:00</updated>
    <category term="database" label="database" scheme="http://www.chrisvelazquez.com/blog/CategoryView,category,database.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Curious as it sounds, Microsoft's open source lab has published an article on <a href="http://port25.technet.com/archive/2007/02/22/postgresql-on-windows-a-primer.aspx">how
to install and configure PostgreSQL on a Windows Server system</a>.  This
is very interesting, considering how PostgreSQL can be considered a competitor to
Microsoft's own SQL Server 2005.
</p>
        <p>
For those of you not familiar with <a href="http://www.postgresql.org/">PostgreSQL</a>,
it is an open-source, industrial-strength relational database with most of the features
you'd find in a mature database server.  It has triggers, stored procedures and
views, and can handle a variety of stored procedure languages, including Java, PHP
and Ruby.  On the client side, PostgreSQL ships with both OLEDB and a .NET data
providers.  One of the fascinating features of PostgreSQL is its ability
to have inherited tables.  I can see where this could dovetail with OR mappings
for subclasses.
</p>
        <img width="0" height="0" src="http://www.chrisvelazquez.com/blog/aggbug.ashx?id=534833ac-2fde-4f22-b4ed-740a83762c2b" />
      </div>
    </content>
  </entry>
  <entry>
    <title>More MSIE CSS Stylesheet Screw-ups</title>
    <link rel="alternate" type="text/html" href="http://www.chrisvelazquez.com/blog/PermaLink,guid,495e2e9f-9cd3-4eb5-9c35-db5d3352172f.aspx" />
    <id>http://www.chrisvelazquez.com/blog/PermaLink,guid,495e2e9f-9cd3-4eb5-9c35-db5d3352172f.aspx</id>
    <published>2007-02-25T15:58:00.082-08:00</published>
    <updated>2007-02-25T19:25:38.8878656-08:00</updated>
    <category term="web development" label="web development" scheme="http://www.chrisvelazquez.com/blog/CategoryView,category,web%2Bdevelopment.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I did an overhaul on the look of my blog because I had an actual visitor from the
outside world.  I feel like Sally Field winning the Oscar: "you like me, right
now, you really like me!"  If figured I'd give it an extra touch of CSS geekiness. 
I hope you like it.
</p>
        <p>
Apparently, Internet Explorer doesn't like it very well.  If you scroll down
the page, the size of the DIV elements changes for some entries when you use either
the scroll bar or the mouse wheel.  This is just plain bad.  I know that
MSIE 6.0 had this problem, but they still haven't fixed it yet?  What's up with
that?
</p>
        <p>
Here is what it is supposed to look like:
</p>
        <p>
          <img src="http://www.chrisvelazquez.com/blog/content/binary/style_ok.jpg" border="2" />
        </p>
        <p>
And when MSIE 7.0 messes up it looks like this:
</p>
        <p>
          <img src="http://www.chrisvelazquez.com/blog/content/binary/style_bad.jpg" border="2" />
        </p>
        <p>
Notice how the space is too wide and the subject title is stuck in the margin. 
Scroll one more notch and it's OK again.  Send this one back!
</p>
        <p>
BTW, the blog looks just fine in Firefox.
</p>
        <img width="0" height="0" src="http://www.chrisvelazquez.com/blog/aggbug.ashx?id=495e2e9f-9cd3-4eb5-9c35-db5d3352172f" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Weblog Usability - Guilty or Not Guilty?</title>
    <link rel="alternate" type="text/html" href="http://www.chrisvelazquez.com/blog/PermaLink,guid,6c7878b9-d673-4258-9035-0883eb635719.aspx" />
    <id>http://www.chrisvelazquez.com/blog/PermaLink,guid,6c7878b9-d673-4258-9035-0883eb635719.aspx</id>
    <published>2007-02-23T14:15:32.673-08:00</published>
    <updated>2007-02-23T14:16:09.576176-08:00</updated>
    <category term="general" label="general" scheme="http://www.chrisvelazquez.com/blog/CategoryView,category,general.aspx" />
    <category term="web development" label="web development" scheme="http://www.chrisvelazquez.com/blog/CategoryView,category,web%2Bdevelopment.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just came across an article from Jakob Nielson's UseIt.com web site concerning <a href="http://www.useit.com/alertbox/weblogs.html">Weblog
Usability</a>.  I figure I should go ahead and take the test and see how my own
blog stacks against the ideals of the guru.
</p>
        <p>
          <strong>Top Ten Design Mistakes in Weblogs:</strong>
        </p>
        <p>
          <strong>1. No Author Biographies - <font color="#008000">Not guilty</font></strong>
        </p>
        <p>
I have my real name and some real info about myself in the "What's this?" box to the
right.  If you visit my home page, you can even download my resume.
</p>
        <p>
          <strong>2. No Author Photo - <font color="#008000">Not guilty</font><font color="#a9a9a9">(anymore)</font></strong>
        </p>
        <p>
Yes, I have posted an unflattering, but honest picture of myself.  I do have
a nice picture of myself that was taken at my wedding by a professional photographer
almost 17 years ago.  I don't think I can really use that, though.
</p>
        <p>
          <strong>3. Nondescript Posting Titles - <font color="#008000">Not guilty</font></strong>
        </p>
        <p>
I just barely squeaked by on this.  I try to title each blurb accurately, and
when I'm in a playful mood I may throw in a double entrendre, such as "Nutty Warnings". 
Some titles are lame, I admit it.  I throw myself on the mercy of the court on
this count.
</p>
        <p>
          <strong>4. Links Don't Say Where They Go - <font color="#008000">Not guilty</font></strong>
        </p>
        <p>
This is classic Web 101 fare.  Search engines look for this; SEO depends on it.
</p>
        <p>
          <strong>5. Classic Hits are Buried - <font color="#ff0000">Guilty</font></strong>
        </p>
        <p>
The dasBlog software doesn't lend itself to breadcrumb navigation, and I have been
too busy/lazy/apathetic to do anything to about it.  I don't have any real "hits"
because I have so few readers that it probably doesn't matter.  I'll get off
with probation on this.
</p>
        <p>
          <strong>6. The Calendar is the Only Navigation - <font color="#008000">Not guilty</font></strong>
        </p>
        <p>
I do add categories to each blog entry, honest, officer!  Once again, I'm at
the mercy of dasBlog on this one because it show categories in a linear fashion instead
of a hit-based or frequency-based heuristic.
</p>
        <p>
          <strong>7. Irregular Publishing Frequency - <font color="#ff0000">Guilty</font></strong>
        </p>
        <p>
I have not made a serious attempt to publish regularly, even though I can write quickly. 
As they say in the Holy Grail, "I'm getting better".
</p>
        <p>
          <strong>8. Mixing Topics - <font color="#ff0000">Guilty, Guilty, Guilty</font></strong>
        </p>
        <p>
The fertile crevices of my brain are aching to explode with information to tell the
world.  While I do try to keep the topics programming-related, I suffer from
ADD of the fingers.  What was I writing about, now?
</p>
        <p>
          <strong>9. Forgetting That You Write for Your Future Boss - <font color="#a9a9a9">Hung
Jury</font></strong>
        </p>
        <p>
I have deliberately refrained from including profanity and NSFW content from my blog. 
So I get a silver arrow point for that.  Some people might be offended by my
cheeky humor and unabashed assessments.  If that's the case, then they have a
problem with my personality.  One of my criteria for accepting a new position
is that I can get at least a chuckle during the job interview.  If my boss has
no sense of humor, chances are he will melt down or blow up during a difficult situation,
which will make my own life miserable.  So I guess in a way you can say that
I am writing proactively in self-defense.  Yeah, that's it.
</p>
        <p>
          <strong>10. Having a Domain Name Owned by a Weblog Service - <font color="#008000">Not
guilty</font></strong>
        </p>
        <p>
Oh, c'mon!  You can't spring the $7 a year it costs to have your own domain name? 
Personally, I'm helping fund Bob Parsons' kids' college education.  But let's
not go there.
</p>
        <p>
          <strong>The Verdict</strong>
        </p>
        <p>
Cleared on six counts, found guilty of burying the evidence, negligent publishing,
and crossing the center line of my weblog.  I am hereby put on probation and
required to attend a defensive blogging class as well as blogger sensitivity training.
</p>
        <p>
Now, how well will <u>YOUR</u> blog stand up?
</p>
        <img src="http://www.chrisvelazquez.com/blog/content/binary/jakob_nielsen.jpg" border="0" /> "I'm
vahtching you"<img width="0" height="0" src="http://www.chrisvelazquez.com/blog/aggbug.ashx?id=6c7878b9-d673-4258-9035-0883eb635719" /></div>
    </content>
  </entry>
  <entry>
    <title>Nutty Warnings</title>
    <link rel="alternate" type="text/html" href="http://www.chrisvelazquez.com/blog/PermaLink,guid,47354cd4-9c0c-4840-918e-be0a00e7187a.aspx" />
    <id>http://www.chrisvelazquez.com/blog/PermaLink,guid,47354cd4-9c0c-4840-918e-be0a00e7187a.aspx</id>
    <published>2007-02-23T06:46:39.352-08:00</published>
    <updated>2007-02-23T06:55:18.5723376-08:00</updated>
    <category term="general" label="general" scheme="http://www.chrisvelazquez.com/blog/CategoryView,category,general.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img hspace="10" src="http://www.chrisvelazquez.com/blog/content/binary/peanuts.jpg" align="right" vspace="10" border="0" />Last
night, I was enjoying one of my favorite snacks, peanut butter on a spoon.  Not
the <a href="http://www.cdc.gov/ncidod/dbmd/diseaseinfo/salmonellosis_2007/outbreak_notice.htm">salmonella-infested</a> peanut-flavored
Crisco that you buy at Wal-Mart, but the good stuff: organic natural creamy peanut
butter with nothing but peanuts and salt.  And I looked at the label and saw
the following warning: "<strong>This product was manufactured in a facility that processes
nuts</strong>".  Now I know the placement of this absurd warning has something
to do with legal liability, otherwise it would make sense.  This bears a certain
similarity to <a href="http://www.wired.com/news/columns/0,72774-0.html?tw=wn_index_18">the
way we handle homeland security</a> in 2007.
</p>
        <p>
What would the world look like if we put these warnings on software?
</p>
        <ul>
          <li>
Windows XP Installation disc: <strong><font color="#ff0000">Warning</font></strong>:
this disc contains an operating system that is capable of executing coded instructions
and may be susceptible to malicious activity. 
</li>
          <li>
Microsoft Excel: <strong><font color="#ff0000">Warning</font></strong>: Errors in
formulas and macros may lead to incorrect results. 
</li>
          <li>
ActiveState ActivePerl: <strong><font color="#ff0000">Warning</font></strong>: Improper
use of the Perl programming language may result in incomprehensible gibberish. 
</li>
          <li>
World of Warcraft: <strong><font color="#ff0000">Warning</font></strong>: using this
software to excess may deteriorate your social life.</li>
        </ul>
        <p>
In a sense, I guess that's what the modal dialog box was created for.  Sometimes
you actually do need a warning if there is a side effect to the desired action. 
If I want drop a database table, I want to know before I clobber a bunch of related
stored procedures and program code.  More often than not, though, it is
for some patronizing reason that we "interrupt the proceedings with idiocy" (as Alan
Cooper puts it).  "We can't just let the user do that", I've heard from marketing
types.  I recently had the displeasure of executing an old VB app that someone
had written.  It always prompts with a modal dialog whenever one decides to change
MDI child windows.  Why?  The data had already been saved in the database
- you could reboot the computer and the data would still be available.  These
dialogs were totally unnecessary.
</p>
        <p>
The key to avoiding dialog boxes <em>ad nauseum</em> is <u>reversibility</u>. 
Any action needs to be undoable, or a group of actions taken as a whole need to be
undoable as a group.  While at Conic Systems (now Tadpole Technologies) our software
implemented an "Undo Stack".  This was a pretty sophisticated approach for the
1990's.  You can use a design pattern called "<a href="http://en.wikipedia.org/wiki/Command_pattern">Command</a>"
to partially implement this.  Unlike the IDbCommand implementers in .NET, a good
Command object has the ability to reverse itself.  You place all the Commands
on the undo stack, so the user can undo anything.
</p>
        <p>
Undo a database record - Make sure the command object has all the information it needs
to perform the delete after add, the add after delete, and the data from changed field
values.
</p>
        <p>
Undo a file deletion - don't delete files!  Rename them and send them to the <a href="http://www.codeproject.com/csharp/csdoesshell2.asp">Recycle
bin programmatically</a>.  That way you can get them back upon undo.
</p>
        <p>
Undo a graphical operation - use the State pattern to incrementally change the state
of the drawing surface and roll back to the previous state.
</p>
        <p>
OK, enough of my soapbox rant.  I don't care if people think I'm nuts.
</p>
        <img width="0" height="0" src="http://www.chrisvelazquez.com/blog/aggbug.ashx?id=47354cd4-9c0c-4840-918e-be0a00e7187a" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Woman wins Turing award</title>
    <link rel="alternate" type="text/html" href="http://www.chrisvelazquez.com/blog/PermaLink,guid,59e3dd2c-87ab-45a4-97e6-e80f2f837c8c.aspx" />
    <id>http://www.chrisvelazquez.com/blog/PermaLink,guid,59e3dd2c-87ab-45a4-97e6-e80f2f837c8c.aspx</id>
    <published>2007-02-22T13:09:58.188-08:00</published>
    <updated>2007-02-23T06:59:36.1126624-08:00</updated>
    <category term="general" label="general" scheme="http://www.chrisvelazquez.com/blog/CategoryView,category,general.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
And sadly, that woman was not Grace Hopper.  The winner of the coveted 2006 Turing
award is none other than <a href="http://campus.acm.org/public/pressroom/press_releases/2_2007/turing2006.cfm">Fran
Allen</a>.  No, I've never heard of her either.  Apparently, she has been
a lifelong IBM software engineer, and her accomplishments include, uh, er, something
to do with optimizing compilers.  She is apparently the head of many different
computing organizations and has spent a great deal of time teaching classes as an
adjunct professor.  This reminds me of the adage, "those who can, do, those who
can't, teach".  I'm at a loss to explain why Ms. Allen was selected to
win the Turing award, other than she is an aging female software engineer,
and she is still alive to receive the award in person.  She didn't even have
an entry in Wikipedia until a few days ago, what's with that?
</p>
        <p>
          <img hspace="10" src="http://www.chrisvelazquez.com/blog/content/binary/grace_hopper.jpg" align="right" vspace="10" border="0" />It's
my opinion that if the ACM wanted to give this award to a woman that badly, they should
have honored Grace Hopper posthumously, with her family receiving the prize. 
Hopper had a major impact on the world of computing, with the invention of the
COBOL programming language, and this impact was felt most forcefully as we approached
the year 1900.  COBOL has always been the de facto standard for big-iron mainframes
that crunch data in back offices that are impervious to its stench.  And to prove
the point that people will actually pay money to romance a pig wearing lipstick,
Fujitsu is keeping the corpse alive with <a href="http://www.netcobol.com/products/windows/netcobol.html">NetCOBOL
for .Net</a>.
</p>
        <p>
So I give my personal award for best lifetime achievement to a woman in the IT industry
to Grace Hopper.  If it weren't for her contributions, we may still be using
a variant of RPG or PL/I.  Nuff said.
</p>
        <img width="0" height="0" src="http://www.chrisvelazquez.com/blog/aggbug.ashx?id=59e3dd2c-87ab-45a4-97e6-e80f2f837c8c" />
      </div>
    </content>
  </entry>
</feed>