Software Design Engineer
 Thursday, July 21, 2005
Napoleon Dynamite and XXX Stole My Thunder

Have you ever felt like you had a good thing going before someone famous decided to give it an entirely new meaning altogether?  Believe it or not, it has happened to me but I will not be appearing on Oprah anytime soon.

Here is the story.  A few years ago I received a nice orange t-shirt from a family member as a gift, and it said something like “XXX Workwear” on it.  So I happily wore it around for a few months, and then Mr. Diesel starred in a movie called XXX.  Needless to say, everybody started to make comments when I wore the shirt, which isn’t bad or anything, but I felt the obligation to tell people, “I HAD THE SHIRT BEFORE XXX EXISTED!”

More recently I had a white custom t-shirt made that has black rings around the sleeves and collar and says “I Support Rabid Llamas” on the front.  My design even used a nice red font to stand out.  Now those of you familiar with the movie Napoleon Dynamite will know about the “Vote for Pedro” t-shirt.  Guess what?  I made the shirt before the movie was out!  When I wear my shirt I am guessing that people think I am copying the movie or something, which is far from the truth.

I am kind of amazed that this situation has happened to me twice in the last few years, and even more surprised that it has been over a t-shirt.  Oh well, let those darn movies ruin the meaning of my wardrobe.  At least we have all learned something from the movie XXX – you can deflect a missile with a serving platter!


7/21/2005 12:18:04 AM (Pacific Standard Time, UTC-08:00)  #      Indiscriminate Complaints

 Wednesday, July 20, 2005
Funniest .NET languages

What are the funniest .NET language names out there?  Here are a few that tickled my funny bone.  By the way, I ran them by my wife and she authenticated their funniness.  While I do openly poke fun at the names, it is all in good fun.  No harm came to the languages used in the making of this posting.

Boo
Common Larceny
Objective Caml
Hotdog
Tachy
TickleSharp


7/20/2005 11:30:01 PM (Pacific Standard Time, UTC-08:00)  #      Shrewd Programming

 Tuesday, June 28, 2005
Visualization Tools for Computer Science Education

One of my favorite subjects within the realm of Computer Science topics is computer graphics and visualization.  Part of the draw, especially early on in my school career, was the instant gratification that could be found in implementing graphics code.  You get to directly see the results of your labor plus you can easily share it with others who do not understand the implementation details.

There are basically three types of learning methods – auditory, visual, and hands-on.  Of course, most people use a combination of all three throughout their life.  I am not sure if I am more hands-on or visual, but I am certain that I do not learn best through auditory means.  Therefore, unless I am somewhat familiar with a topic to begin with, lectures seem like a waste of time to me, at least the prototypical theory-only college lectures.  I take notes, but I have no chance of “getting it” until I sit down and have some hands-on time with the material.

I think that students could benefit greatly from tools that help visualize core computer science topics such as search algorithms, recursion, data structures, etc.  Unfortunately, for whatever reason, my instructors did not know that these types of applications existed, and neither did I until recently.  There are some very sophisticated scientific and data visualization tools out there, but I am currently just referring to fairly simple instructional tools with good interfaces.

Here is a link to a J# application for visualizing sorting algorithms, recursion, simple image viewing, and an oscilloscope simulation.  It allows you to even test your own algorithm implementations and see how they perform (Visual J# .NET Product Team, Microsoft).

https://www.mainfunction.com/DotNetInAction/Technologies/display.aspx?ID=2710&TypeID=2

The next link has some Java applications that help visualize automata and formal languages (Susan Rodger, Duke University).

http://www.cs.duke.edu/~rodger/tools/tools.html

Here is a well written paper titled “Helping Learners Visualize and Comprehend Algorithms” by Hansen, Narayanan, and Schrimpsher.

http://imej.wfu.edu/articles/2000/1/02/index.asp

I am sure that there are more visualization tools out there.  So are these tools being used at the high school or even undergraduate college level?  Aside from the elected computer graphics classes that I took in college, I do not remember having an instructor utilize visualization software in any way.


6/28/2005 2:16:14 AM (Pacific Standard Time, UTC-08:00)  #      Worldly Observations

 Saturday, May 28, 2005
.zip file problems

There seems to be a few different species of .zip file out there in the wild now.  I have run into problems decompressing some .zip archives recently and decided I should look into the problem further.  According to one article from the September 2003 PCWorld, http://www.pcworld.com/news/article/0,aid,111772,00.asp, the problem with incompatibility typically comes from proprietary encryption schemes being used.  Even implementations of the AES encryption scheme can vary by .zip software package.
 
Unfortunately, I have run into situations where I get a .zip file from someone else and the Windows .zip software states that there is an error with the file.  The problem is not encryption.  I have not found the root problem yet as using another third-party tool is usually successful at unzipping problem files.  Next time I run into the problem and the file is not multiple gigabytes in size, I will set it aside for a more detailed investigation.

I typically use the .zip implementation that is provided by Windows XP for convenience and compatibility reasons.  Since I rarely have a need to encrypt files then this simple implementation is just fine.  The XP .zip implementation uses compression method “deflated” from the .zip specification and “normal” for the compression sub-type.  These options should make XP .zip files compatible with all other .zip software, but at the same time I realize they are not all that modern or optimal.

Another interesting thing that I learned while skimming the specification for the .zip format was that 4GB is the upper limit for file sizes.  Definitely something to keep in mind when working with large files like Virtual PC images.


5/28/2005 1:26:22 AM (Pacific Standard Time, UTC-08:00)  #      Indiscriminate Complaints

 Tuesday, May 10, 2005
Rebates - a hideously complex marketing scheme that, although quite ingenious, sucks for consumers.

The word “rebate” invokes a variety of primal emotions, including fear, anger, hunger, and an itchy ancient cortex.  It can also lead to a number of physical ailments including hair loss, old age, arthritis, paper cuts, and sometimes even lockjaw.  While the cure may be many years away, support groups may be able to help.  If you know of any, let me know.

I think that many consumers will buy a product over another similar one because of a rebate offer.  Even consumers that have been burned by the rebate system before will repeat their behavior, hoping that this time they will win the lottery.  They think that maybe there have been enough complaints by consumer groups since their last rebate attempt that it will be a smoother process now.  I have received a rebate before, but it did require a few phone calls, emails, and general fuss to get it.

For me, there may be a certain monetary threshold to cross which forces me to take action like many others.  I no longer buy products just because they have a small rebate attached to them.  I know that it is not worth my time or aggravation.  The sad part is that I am still slightly aggravated because I know that the business marketing teams are winning.  Instead of playing the rebate game to save money, I think I will start a coupon collection.  Just by themselves they are worth something like 1/1000 of a cent.

My most recent rebate redemption attempt starts at Staples.  I purchased a wireless USB Ethernet adapter for my laptop and gathered all of the required rebate paperwork.  Now, at this point, I was not sure if I was going to go through the trouble of filling everything out and sending it in.  However, they now have this new rebate submission process code-named Staples Easy Rebates where you can submit for rebates online with no paperwork or UPC required for mail in.  The submission process was very easy, except for the fact that it took three attempts to enter my information.  After my submission I received this prompt email notice:


Thursday, March 31, 2005 2:25 PM
Subject: We got it. And soon you will get it back.
Thank you for submitting your rebate request(s) through Staples Easy Rebates.
We have received rebate information for the following product(s):
   NETGEAR 54MBPS USB 2.0 ADAPTER
   We will begin processing your request(s) shortly.


Much to my surprise I received this email next:


Wednesday, April 13, 2005 6:42 PM
Subject: The check is in the mail! (Really.)
Thank you for submitting your rebate request(s) through Staples Easy Rebates.
We have processed your rebate information for the following product(s):
   NETGEAR WG111 54 MBPS WIRELESS USB ADAPTER
We have mailed out your rebate, so check your mailbox!  You should receive it shortly. 
Thank you again for shopping Staples and for using Easy Rebates!


They must have some very excitable people writing their automated emails!  I especially like the way they worded their subject line in their last email to me.  Unfortunately, I have not received the rebate check that is currently circulating in the mail system, desperately seeking to get to Washington, hoping dearly to find Redmond, itching to locate my street, and we will see if it ever arrives in my mailbox.


5/10/2005 9:56:05 AM (Pacific Standard Time, UTC-08:00)  #      Indiscriminate Complaints

 Saturday, April 30, 2005
Skype (VOIP Internet Telephony) API is available for developers

In case you are unaware, Skype is an Internet telephony (VOIP) application that provides free voice communication, chat, and file transfer capabilities in an easy to use, cross-platform package.  For fee, Skype allows users to call regular phone numbers and allows regular phones to call into Skype.

The popularity of Skype has grown rapidly over the past two years since its introduction for a number of reasons.  Although I do not plan to go into many technical details here, I will say that Skype is a well engineered piece of networking magic.  It takes full advantage of modern decentralized peer-to-peer technology to deliver end-users a highly responsive system for communication.  The user interface is very simple to use and Skype is well known for simply working out of the box with very little configuration.

Skype released an API for the Windows platform at the end of 2004.  This alone sets it apart from a lot of the other big players like MSN and AOL.  As a developer, having an API available with this much power is an exciting thing.  If you are interested in taking a look, check out http://www.skype.com/community/devzone and look for the documentation and example code.

There are a number of third-party applications and utilities that have been developed for Skype.  You can check some of them out at http://www.skype.com/community/devzone/doc.html.  Skype also recently announced a contest for developers and they are calling for utilities, development tools, and other applications to help showcase their product.  After taking a look at their example C++ code I can see why they need some help with developer tools.  Here is a link to the competition.   http://www.skype.com/community/devzone/apicomp.html.

So long, and thanks for all the fish.


4/30/2005 12:05:07 AM (Pacific Standard Time, UTC-08:00)  #      Compelling News