Wednesday, January 28, 2009

RSS Popper: Home - Free RSS add-in for Outlook & Outlook Express

This is a free plugin for outlook 2003 to allow rss feeds in outlook.

RSS Popper is a news aggregator add-in for Outlook & Outlook Express. News items delivered directly to Outlook as e-mails. No need to use a separate program for reading RSS anymore. All RSS/RDF/Atom formats are supported.

RSS Popper: Home - Free RSS add-in for Outlook & Outlook Express

Friday, January 23, 2009

Grass Roots Agile

I’ve been doing a great deal of reading lately on Agile software development, Scrum and XP in an effort to get up to speed on how to implement an Agile Software development practice in our organization.

This article is phenomenal because it touches on many of the principals that I feel strongly about in software development and highlights one of the biggest problems that I see with traditional software development.

Software development efforts fail because the traditional ceremonial approach to software development is fundamentally flawed. Worse yet, many adaptations of the most popular iterative and incremental processes are little more than reinventions of faulty practices resulting in slightly varied manifestations of the same problems that have plagued the software industry for years.

The article talks about fundamental practices that have to be implemented as a grass-roots movement within the team. Things like unit testing, continuous integration, adaptable requirements, defect management, etc are all covered here. Check out the whole article, its a pretty good read.

Mom’s work is never done..

My wife sent me this video…love it.

What’s really funny is that both my wife and I have said each of these things at least once.

Windows Live Writer

I initially set up this blog as a way for me to explore the whole Web 2.0 world and as a working example to a co-worker who I had discussed the idea with for sharing industry information within our team.  At that time, I was using the Google toolbar as a means of facilitating the process.  Since that time, I’ve done a little more exploring and I ended up installing Windows Live Writer because I wanted to update my messenger client.

I was pleasantly surprised to find out how good this actually works.  The nice thing about it is that it is a full featured text editor that has nice formatting features and tools for inserting and positioning images, creating tables, links, maps, tags, videos, etc.  I found that although the built in editors for blog tools are nice, this one allows me to maintain a whole bunch of blogs with a common interface and publishing tools.

To get started you have to go and download the live installer at

This installer allows you to install the whole suite from windows live, including office live and messenger.  You don’t need all of this to use the writer, but the other tools have their uses too…I just haven’t found a need for them yet.  You just uncheck features you don’t think you need.

Once you have the writer installed, you can fire it up and add your blog account to it.  It downloads all of your labels, styles and so on and then opens an editor window.  You can add as many accounts as you like and switch between them easily.  Also, it creates a menu item in your Internet Explorer tools menu so that you can easily blog while browsing by clicking the ‘blog this in live writer…’ menu item.

I also encourage you to check out some of the plug-ins from the online gallery…tools to insert and format code snippets, videos, etc.  There is also a plug-in for integrating the blogger with firefox.

Thursday, January 22, 2009

pdf 995: create PDF documents easily for free

Creating PDF files is very easy to do, and free.  This piece of software allows you to create PDF documents by ‘Printing’ them to a file.  When you install this driver, it creates a printer that you can print to and then prompts you for a file name.

This is nagware, so you can register it to have it print PDF documents quietly, but otherwise it just displays a little splash screen every time you use it…I’ll live with the splash screen.

pdf 995: create PDF documents easily for free

CamStudio - Free Screen Recording Software

I often have a need to create little computer howto videos to show people how to do things on some computer screen. We’ve used commercial software in the past, but one day I came across this little nugget that does screen capture to avi and converts to shockwave if you want it to…and its free.

CamStudio - Free Screen Recording Software

Introduction to the Dojo toolkit, Part 1 - JavaWorld

Introduction to the Dojo toolkit, Part 1 - JavaWorld

This article introduces Dojo, an open source javascript programming toolkit.

Wednesday, January 21, 2009


I've been waiting for someone to come up with something like this. Perf4J is essenatially a logging utility that outputs performance statistics the same way that Log4J outputs debug messages in Java code. Awesome...

Perf4J 0.9.7 -:

"Perf4J is a set of utilities for calculating and displaying perfomance
statistics for Java code. For developers who are familiar with logging
frameworks such as log4j or java.util.logging, an analogy helps to describe
Perf4J is to System.currentTimeMillis() as log4j is to

OpenEdit DAM

Source Digital Asset Management / OpenEdit DAM

Looks like a new Content Management system. Open source and free. Not real sure about it

Free JavaFX Programming Training Online Course

Free JavaFX Programming Training Online Course

This may be interesting, there is an online course with discussion forum to learn JavaFX. JavaFX is a new technology to do Rich Interface development both inside and outside the web browser. It is based in Java and uses all of the familiar java libraries behind the scenes.

Tuesday, January 20, 2009

Linux Permissions

I was describing to a new coworker how to set up secure shell (ssh) to use private key authentication instead of password authentication. As I was showing him, I mentioned that it was important to make sure that the user’s key file had the right permissions on it. He responded that he had trouble wrapping his head around Linux permissions, so I thought I would post something here.

File permissions in Linux hinge greatly on the ownership of a file. In Linux, each file is owned by a user and a group. Permissions are then assigned based on what the owner can do, what the assigned group can do, and what everyone else can do.

If you look at the properties of any file in Linux, you can tell all of this information. Usually, you can use the ‘ls’ command to reveal pretty much everything:


What you can see is that each file has an owner and a group. In this case all of these files are owned by scrosby user and assigned to scrosby group.

The permissions for the file are laid out in order from left to right in one long string shown in the first column of output. The first character is a file description, the next three characters are the permissions that apply to the files owner. The next three after that are the permissions that apply to the group assigned to the file and the last three characters are the permissions that apply to everyone else.

The next part is the actual permissions. The basic permissions are Read (shown by the letter r), Write (shown by the letter w) and eXecute (shown by the letter x).

When the read flag is set for the owner, then that means that the owner can read the file. This would be shown as:


A file that looks like this is read-only for the owner. If I wanted a file to be read/write for the owner, it would have:


If I wanted a file to be read/write for the owner and the group, it would look like:


If I wanted a file to be read/write for owner and group and read only for everyone else, it would look like:


Scripts and directories also will sometimes have the x flag set. If I want a file to be read/write for user and group, and executable by the group, it would look like:


These permissions are set using the chmod command or in today’s world, there is usually a dialog box with check boxes to set permissions. If you are a dinosaur like me though, the command line is a bit quicker and more reliable for this type of thing. The command line uses a bit mask to create permissions. If you are familiar with binary code, you will know that three 1’s (ie 111) is equal to 7 in binary, 010 is 2, 011 is 3, and so on. If you want to set all three bits (read, write, and execute) you set all bits to 1 (which is machine talk for ‘on’) convert it to decimal…or 7. If you only want to enable read and execute, you set the first and third bit to 1 like 101 which is 5 in decimal. This is set for all three user categories (user, group, others).

For example if I want a file to be read/write/execute for owner, read/execute for group and unreadable for everyone else, the bit mask would be 750. This mask is used with the chmod command to set the permissions:

chmod 750 somefile

Screen Capture and Print Screen software

Screen Capture and Print Screen software

I came across this utility for taking screen captures. Nice little program..(did I say free)...that allows for quick screen captures directly to file. You can hook it into a hot key like ctrl-printscrn and then have it prompt you for the region, window, etc...prompt for the file name, pick your file format and boom...(did I say free?)

There are preferences to add drop shadow, etc as well. I think there is a professional version that has a few extra features for only a few bucks, but this one works well for me.

Interesting Facts

Got this forwarded by Janet...interesting...

In the 1400's a law was set forth in England that a man was allowed to beat his wife with a stick no thicker than his thumb. Hence we have 'the rule of thumb'
Many years ago in Scotland , a new game was invented. It was ruled 'Gentlemen Only...Ladies Forbidden'...and thus the word GOLF entered into the English language.
The first couple to be shown in bed together on prime time TV were Fred and Wilma Flintstone.
Every day more money is printed for Monopoly than the U.S.Treasury.
Men can read smaller print than women can; women can hear better.
Coca-Cola was originally green.
It is impossible to lick your elbow.
Intelligent people have more zinc and copper in their hair.
The first novel ever written on a typewriter: Tom Sawyer.
The San Francisco Cable cars are the only mobile National Monuments.
Each king in a deck of playing cards represents a great king from history:
Spades - King David;
Hearts - Charlemagne;
Clubs -Alexander, the Great;
Diamonds - Julius Caesar
If a statue in the park of a person on a horse has both front legs in the air, the person died in battle. If the horse has one front leg in the air the person died as a result of wounds received in battle. If the horse has all four legs on the ground, the person died of natural causes.
Q.. Most boat owners name their boats. What is the most popular boat name requested?
A. Obsession
Q. If you were to spell out numbers, how far would you have to go until you would find the letter 'A'?
A. One thousand
Q. What do bulletproof vests, fire escapes, windshield wipers, and laser printers all have in common?
A. All were invented by women.
Q. What is the only food that doesn't spoil?
A. Honey
In Shakespeare's time, mattresses were secured on bed frames by ropes.
When you pulled on the ropes the mattress tightened, making the bed firmer to sleep on. Hence the phrase.... 'goodnight, sleep tight.'
It was the accepted practice in Babylon 4,000 years ago that for a month after the wedding, the bride's father would supply his son-in-law with all the mead he could drink. Mead is a honey beer and because their calendar was lunar based, this period was called the honey month, which we know today as the honeymoon.
In English pubs, ale is ordered by pints and quarts... So in old England , when customers got unruly, the bartender would yell at them 'Mind your pints and quarts, and settle down.'
It's where we get the phrase 'mind your P's and Q's'
Many years ago in England , pub frequenters had a whistle baked into the rim, or handle, of their ceramic cups. When they needed a refill, they used the whistle to get some service. 'Wet your whistle' is the phrase inspired by this practice.


I came across this technology as part of my foray into the world of Web 2.0. Many sites today are using a sort of single sign-on for the web that allows web-site developers to be able to link in with an external third party to perform identification for users so that they (the users) don't have to maintain a whole lot of usernames and passwords. Essentially, the website gives the user the option of linking their identity from this central provider to their internal user databases.


Monday, January 19, 2009


Free Cheat Sheets for Developers | Refcardz

This seems like an interesting resource. These are short 2 and 3 page PDF documents that give the skinny on popular technologies. On on ESB, SOA, XML, etc. It requires you to create an account with a valid email address and emails the link to the document to you.

Wii Fit

Check this out and see why Wii Fit is the latest in physical activity

Sunday, January 18, 2009

A Dream of Eagles

I just finished my seventh book in the series written by Jack Whyte about the rise and fall of the almost mythical empire that centered around Camulod, King Arthur, Merlin, Lance and all the others known mainly from legends.

What an awesome story, I was gripped from a few chapters into the first book...granted, the first few chapters were a little dry, but once the story began, I was entranced by the real-ness of the story. So many parts rang true that I found myself asking "did it really happen this way?"

Jack Whyte has done an amazing thing with this series. I went out today and grabbed "Uther" since it is written in the same setting as the other books, but from the vantage point of Uther Pendragon, father of Arthur, High King of Britain.

Summary of Life

I got this as an email from my Dad. I liked it so much I thought I’d post it here.

1) No matter how hard you try, you can't baptize cats.
2) When your Mom is mad at your Dad, don't let her brush your hair.
3) If your sister hits you, don't hit her back. They always catch the second person.
4) Never ask your 3-year old brother to hold a tomato.
5) You can't trust dogs to watch your food.
6) Don't sneeze when someone is cutting your hair.
7) Never hold a Dust-Buster and a cat at the same time.
8) You can't hide a piece of broccoli in a glass of milk.
9) Don't wear polka-dot underwear under white shorts.


1) Raising teenagers is like nailing jelly to a tree.
2) Wrinkles don't hurt.
3) Families are like fudge..mostly sweet, with a few nuts.
4) Today's mighty oak is just yesterday's nut that held its ground.
5) Laughing is good exercise. It's like jogging on the inside.
6) Middle age is when you choose your cereal for the fibre, not the toy.


1) Growing old is mandatory; growing up is optional.
2) Forget the health food. I need all the preservatives I can get.
3) When you fall down, you wonder what else you can do while you're down there.
4) You're getting old when you get t he same sensation from a rocking chair that you once got from a roller coaster.

5) It's frustrating when you know all the answers but nobody bothers to ask you the questions.
6) Time may be a great healer, but it's a lousy beautician.
7) Wisdom comes with age, but sometimes age comes alone.

Thursday, January 15, 2009

ISPs Injecting Their Content Into Websites

ISPs Injecting Their Content Into Websites - Rogers tests new cap warning system, raises neutrality alarms... -

A collegue sent me this article. I suggests that Rogers has aquired a technology that allows them to modify traffic being downloaded by their clients to include a frame that has their DSL bandwidth information at the top of the browser.
I think this may be another technology led 'feature' that has not passed muster with the needs of their clients. Overall, I think I am fundamentally opposed to this type of activity simply because it has the potential to impact the intended message by the website author albeit without malicious intent by Rogers.
That said, website authors have always had to deal with new technologies impacting the message, but I think this one falls outside the control of the author.
If this is a fine service for Rogers customers that they want, why not have an opt-in that allows them to run a little app in their system tray or something.
No, I would say that this move has little to do with the needs and wishes of their clients, but more to do with an internal issue at Rogers that they are trying to solve.

Ricardo Montalban dies at 88

Ricardo Montalban dies at 88 --

No more Khan?!?! I can't believe it. It seems that all of my childhood icons are rapidly dying off. My mother used to hate me watching Fantasy Island...she would say "that's all just fantasy, its not real..." Oh well, her heart was in the right place.

Khan was a truely frightening villain, back in the day...

Wednesday, January 14, 2009

Writing User Stories

I've been doing some reading about Agile Software development and how to implement scrum for a small development team. Mike Cohn is definitely an authority on Agile and scrum and I was catching up on some of his articles and I found this one that explains the benefit of capturing requirements in terms of user stories.
To clarify, user stories are little statements that define the value to a stakeholder that is to be realized in a system. These stories should not make references to technology or interfaces unless absolutely necessary. A user story just describes something that a user has to be able to do.

Advantages of the "As a user, I want" user story template Mike Cohn's Blog - Succeeding With Agile®: "In my user stories book and in all my training and conference sessions on user stories I advocate writing user stories in the form of “As a , I want so that .” While I consider the so-that clause optional, I really like this template"

I've spent a little time re-wording some of our 'enhancement' requests and requirements lists to follow this wording which I've found really helpful in clarifying what the software should do.

AVS - Overview

This is a link to an open source version control system and bug tracking tool. It runs as a windows service based on Java. It appears to have a bug tracking feature and complex data model for revisions.

AVS - Overview

Jailer 2.7.1 Released: DbUnit compatible Test Data Extraction

Jailer 2.7.1 Released: DbUnit compatible Test Data Extraction

I found this little application today while reading my feeds. It looks like a tool that can extract data from a database using a java model to do unit testing. Not sure what the applicatin would be, but perhaps it would provide a means to do some high level testing of our system.

Friday, January 9, 2009

Backlogs and Defects

Recently we’ve been looking into dealing with our big bug list that we manage in Bugzilla and as per the norm, we spent a few minutes (or hours) going down the list of bugs and enhancements that we’ve identified as being important to discuss what we are going to do with them.

I think the big problem with this is that it is challenging to come away from these meetings with any real action plan to get them done.  Since everything is treated as a bug, you never really feel like the project is moving forward at any great speed.

I got discussing this point with one of our analysts, and at the end of it, it seems that we have two main ‘types’ of bugs in the system.


Speaking ‘agile-ly,’ a backlog is a list of user stories that are required in a system.  They are new features that represent value in the system to the stakeholders, the users, the owner or the team.

Backlog is a way of keeping track of all those to-do’s that you eventually want to realize in a system.  These items should not presume an implementation.  A valuable backlog item specifies an item of value to the end user or stakeholder.  It shouldn’t refer to a needed button or column in an interface.  This limits developers which often results is kludged code.

An example of a proper story in the backlog would be:

“As a client I want to be able to view my current balance without having to call someone.”

As opposed to:

“The main client screen has to have the client’s current balance on it.”

Although both stories may be similar in nature, the first story has an opportunity for the developer to add this feature as a hot-key or an email alert, or have the ability to put it on all screens.  It also helps clarify what the actual point of the feature is.  Too often the developer gets bogged down in technical details and forgets that someone needs to use the feature.


Primarily our bug database is where the QA team puts things that are broken so that someone on the development team knows it needs to be fixed.

Reporting a defect requires that the QA department is aware of how the component is supposed to work in the first place.  In order to do this, there has to be a document or something that describes the tested feature and what the acceptance test is.

Ideally the original story from the backlog would have a description of what the acceptance test should look like.  This is the best way to determine whether or not the feature actually works.

At the end of the day, I think that maintaining a separate list of defects from the product backlog is a good way of planning the progression of a product.

Get rid of all that Techno Junk

HP Consumer Buyback and Planet Partners Recycling Program

According to their website, HP is offering cold hard cash for all your old computer junk...(so long as it functions I think) Instead of going to the landfill, you can get a quote and ship to them and they will send you some moolah.

Dilbert - Changing requirements « Running Agile

Dilbert - Changing requirements « Running Agile

This is Funny...and so true.