Tuesday, December 12, 2006

Happy Birthday Edvard Munch

One of my coworkers IM'd me this morning...

See Google's main page?

Every now and then they change the logo on the main page, either to celebrate a holiday or some other event.  Today is Evard Munch's birthday, and they have a Google Logo featuring one of his most famous paintings, The Scream.

As it happens, one of the many trinkets that fills my cube is an inflatable version of the main character in The Scream.  I also have a version that I use as desktop wallpaper on my computer sometimes.  So I wish a very happy birthday to the now departed Edvard Munch, who so aptly painted an event that I sometimes want to recreate at work on a daily basis.

#    8:57 AM by Nick | No Comments |
 Thursday, December 07, 2006

Brrr... It's Cold In Here

Our code froze!  A lot of companies include some sort of code freeze process in their development process, but few truly honor the meaning, and instead simply use it as just another artificial milestone that they can celebrate.  But what exactly is Code Freeze, and why is it useful?  At a very basic level, code freeze simply means that no more changes are allowed to be introduced into source control.  Generally this also means that all defects have either been fixed, or they have been reviewed and its been decided to either not fix them, or delay fixing until another release.  Usually the first build after code freeze is declared a Release Candidate.

The one important part of the code freeze process, which many companies fail to implement is the shelf period.  If you freeze code, and then immediately release your software the next day, then code freeze is pretty meaningless.  I personally recommend at least a one week shelf period after a release candidate (depending on the size and complexity of the application).  During this period of time, your developers and testers should continue testing and using the application.  Because nothing new is introduced into the code, this provides a period where everyone can feel confident that things are going well, and extra regression testing and user acceptance testing is performed.

Code freeze also signals an important change in the development process.  Before code freeze, defects are fixed at will by people, and changes can be introduced rapidly.  During code freeze, extra scrutiny is placed on any defects that are submitted, and generally only high priority defects are considered for fixing after a review process which includes the development lead, test lead, and project managers.  Defects that include changes to functionality should be flat out rejected, and only defects to already included functionality should be considered.  Also, any code changes that are made during the freeze must be associated with one of these defects, and must be reviewed by another developer on the team before it is to be included in another release candidate build.  Any changes made to the code that aren't related to the defect should be rejected by the reviewer.  I don't know how many times I've seen people try to sneak in changes during code freeze, just because they wanted to "clean up the code".  Now is not the time for those types of changes.  The reviewer should also verify that the change is safe, and that it actually fixes the defect.  The idea is not to introduce a new bug when trying to fix this one.

If multiple release candidates are created, it is up to project management whether the code freeze time will be extended.  This is generally done after examining the nature of the defect, and the also the size of the change, and how much code was effected.  If something as small as a spelling mistake is found, then code freeze would not be impacted.  However, if a generic library method is changed that is used by various parts of the application, then you'd want to extend the freeze to regression test the affected areas.

Remember, code freeze isn't just another meaningless milestone.  It should include process change, and should help to introduce confidence and stability to the software development process just prior to deployment.

#    10:39 AM by Nick | No Comments |
 Wednesday, November 29, 2006

Is That a Faraday Cage In Your Pocket?

Or are you just happy to see me?  One of my favorite online geek stores is Think Geek, and I subscribe to their RSS feed so I can get updates on their coolest new gadgets and toys.  One of their latest is an RFID blocking wallet.  It is a nice looking leather wallet, but has a Faraday cage built in.  Why is this important?

One of the scarier trends in the credit card industry is the inclusion of RFID chips in credit and debit cards.  Visa is marketing this concept as Visa Contactless, and MasterCard now has the PayPass system.  Many of their card issuers are using it already.  Unfortunately, with some simple equipment bought from Radio Shack, and a little technical knowledge gained from the Internet, identity theft becomes much easier.  With something hidden in a backpack or briefcase, a thief can now read your credit card information at a distance.

A Faraday cage built into a wallet is a simple, and very convenient solution to this problem, as it blocks the RFID signal from getting to the card.  That means that your card can only be read when you take it out of your wallet to pay with it, which is the only time you want it read anyway.  Most importantly, you don't need aluminum foil in your pants.  It's the perfect Christmas gift for the concerned consumer in your life.  You don't even need to be a geek to have one.

#    1:36 PM by Nick | No Comments |
 Monday, November 27, 2006

Yes It's Geeky, But It's Useful Too

Normally I try to only post the really geeky stuff on The Coding Monkey, but this is so damn useful, that I have to cross post it.  There is a new beta site called Zamzar, which is a free site for performing any of 150 different conversion types.  You see the complete list here.  Need to convert a Word document to PDF but don't have Acrobat?  Done.  Have some AC3 files you want to move over to MP3?  No problem.  Go check it out.

#    4:12 AM by Nick | No Comments |
 Wednesday, November 22, 2006

I Think Not

C|Net has compiled a list of the top 10 Geek Girls.  Among those on the list are Ada Byron (the world's first programmer) and Grace Hopper (who found the first computer 'bug').  Also on the list is Paris Hilton, apparently because her fetish for pink electronic goodies, and slutty ways, make it irresistible.  Talk about an insult to women everywhere.  You couldn't find an actual female geek to put on that list to round out your top 10?

She's not an actress (despite being on TV), not a singer (despite putting out a record), and definitely not a geek.  She's a tramp... and #1 on that list.  Oh yeah, Lisa Simpson made the list too.

#    10:46 AM by Nick | 1 Comment |
 Monday, November 20, 2006

I Want One Of These!

I think this is one of the coolest things I've ever seen, and I can imagine about a dozen uses for the programmability of this thing... not to mention the sheer cool factor.  Ladies and gentlemen... I give you the Optimus keyboard:

 

Granted it will be kind of expensive... at least for a keyboard.  But the OLED LED key technology that will switch the key display depending on the layout, and the ability to have visually different keys show up depending on what application you have active at the time is totally cool.  I have a feeling that this thing will be mine.  It's not released yet... but will be soon.  The developers also have a blog devoted to the project.

#    9:36 AM by Nick | 2 Comments |
 Thursday, November 09, 2006

Use This Site!

One of the most insanely useful blogs that I'm reading right now is Ajaxian.  I'm not even doing a ton of web or AJAX development right now, but the amount of insanely useful libraries and websites that this guy blogs about makes this site worth its weight in gold!  First add the Ajaxian feed to your aggregator, then read through all the archives.  I promise you won't regret it.

#    9:46 AM by Nick | No Comments |

Bar Camp USA

As if BarCampMadison weren't enough, now the same folks who are organizing the Madison event (me included) are going to be planning another Bar Camp in August 2007 called BarCampUSA.  You can find out more about the event and sign up at the BarCampUSA website.  It will be held at the Jefferson County Fairgrounds, which is about 2 hours from Chicago, and is planned to be jam packed with 4 days of events.  If you'd like to spread the word, you can also read about it on Digg and digg the story.

#    9:23 AM by Nick | No Comments |
 Thursday, November 02, 2006

Bar Camp Madison

To all of you software types in South Eastern Wisconsin... take a look at Bar Camp Madison:

BarCamp is an ad-hoc gathering born from the desire for people to share and learn in an open environment. It is an intense event with discussions, demos, and interaction from participants. BarCampMadison is currently planned to be 30 hour event focused on technology and creativity.

Bar Camps have been springing up everywhere.  You can find out more about the concept, and previous events, at the main page.  Bar Camp Madison is being sponsored by Stratagem Consulting, and is currently in the early organizational phases, with a goal of running in early 2007.  If you're interested, check out the site and sign up to participate!

#    2:49 PM by Nick | 1 Comment |