Geekus Con Livus

Malcolm Anderson's home for Geeks With Lives
posts - 92 , comments - 87 , trackbacks - 23

Thursday, January 15, 2015

Looking for Rails tutorial, 3rd edition community.

A journey of a 1000 miles begins with a single step. 

With that in mind, I'm getting started with the new Rails tutorial, 3rd edition and I'm hoping to find other people on the same journey.

Accelerated learning is something that I've always been passionate about and one of the first pillars of accelerated learning is to harness all three of the learning modalities, Intellectual Learning, Applied (Hands-On) Learning, and Teaching Learning.

Why am I doing the Rails tutorial?  Because hands on learning is the fastest way to maximize the 80 / 20 rule of learning.  20% of what you learn will provide 80% of what you accomplish.  Rails seems to be a useful programing language, and besides, as a business consultant, it's always good to keep in touch with my programmer roots.

So, if you are also working with the rails tutorial, let me know, come join my tribe, or invite me to your tribe.

The site I'm working from is

I'm hoping to either find the rest of you where you are already communicating about your learning adventure, or, I'll be opening up a google group and getting one started.

Talk with you all soon.

Posted On Thursday, January 15, 2015 6:42 PM | Comments (0) |

Thursday, July 26, 2012

Paste without formatting using a single hotkey

Have you ever tried to copy text from one place and when you try to paste it, it ended up with all the formatting from where you copied from?

Word, Excel, and even GMail suffer from this.

Normally what you have to do is open up notepad, paste into notepad, select all, copy again, AND THEN paste it where you wanted it.

Now you have another option, by using and installing PureText, that entire process has been shortened to Windows-V.

Posted On Thursday, July 26, 2012 11:29 AM | Comments (1) |

Monday, July 9, 2012

Excel duration converts to date

I'm working on an Excel 2010 spreadsheet and I'm trying to put in durations for some tasks I want to schedule.

The interesting thing is that up until a few minutes ago, I couldn't do it.

I was entering in "47:00" and excel was (and still is) converting it to "1/1/1900 23:00:00"

In my mind, I want the value to be 47 minutes, but for the life of me I cannot find a fix for this behavior.

Here's the weirdest thing, I haven't had this problem in the past.  Usually I put in times, add them up and they work like magic.  Put in 18 entries of 20 minutes each, total them and excel will usually tell me that it's a total of 6 hours.

No problem.

Today, problem.

Here's the weird bit:
As I was writing this post, I got it to work.
By formatting the column as custom "[hh]:mm" and summing the columns, I can get total times.
But the times are still being formatted into dates if I look at the underlying data. 

Bottom line, if you need to calculate durations, you can, but don't look too closely at what is happening underneath the covers.

Posted On Monday, July 9, 2012 3:24 AM | Comments (0) |

Sunday, July 8, 2012

Tree Surgeon 2.0 - The future on the T4 Express

If you've never been a fan of TreeSurgeon ( then skip this post.

However, if have been there have been some interesting developments over the last couple of years.

The biggest one is T4

Recently Bill Simser wrote a detailed post about the potential future of tree surgeon,
called "Tree Surgeon - Alive and Kicking or Dead and Buried"

He raised the question:
Times have changed. Since that last release in 2008 so much has changed for .NET developers. The question is, today is the project still viable? Do we still need a tool to generate a project tree given that we have things like scaffolding systems, NuGet, and T4 templates. Or should we just give the project its rightful and respectful send off as its had a good life and has outlived its usefulness.
For myself, the answer is, keep it.

I've spent the last couple of years doing agile engineering coaching and architecture and from my experience, I can tell you, there are a lot of shops out there that would benefit from having Tree Surgeon as a viable product.  Many would benefit simply from having the software engineering information that is embedded in the tree surgeon site be floating around their conversation.

Little things like,
  • keep all of your software needed to run the build, with the build in the version control system.
  • Have your developers and the build system using the same build.
  • Have a one-touch build
  • Separate your code from your interface
  • Put unit tests in first, not last
I've seen companies with great developers suffer from the problems that naturally come from builds taking 3 and 4 hours to run.  It takes work to get that build down to 10 minutes, but the benefits are always worth it.  Tree Surgeon gives you a leg up, by starting you off with a project that you can drop into your Continuous Integration system, right out of the box.

Well, it used to be right out of the box.  Today, you have to play with the project to make it work for you, but even with the issues (it hasn't been updated since 2008) it still gives you a framework, with logical separations that you can build from.

If you have used Tree Surgeon in the past, take a few minutes and drop a comment about what difference it made in your development style, and what you are doing differently today because of it.

Posted On Sunday, July 8, 2012 8:20 PM | Comments (1) |

Wednesday, June 13, 2012

The Agile Engineering Rules of Test Code

Lots of test code gets written, a lot of it is waste, some of it is well engineered waste.

Companies hire Agile Engineering Coaches because agile engineering is easy to do wrong.

Very easy.

So here's a quick tool you can use for self coaching.

It's what I call, "The Agile Engineering Rules of Test Code" and it's going to act as a sort of table of contents for some future posts.

The Agile Engineering Rules of Test Code

Malcolm Anderson


Test code is not throw away code

Test code is production code


8 questions to determine the quality of your test code

  1. Does the test code have appropriate comments?
  2. Is the test code executed as part of the build?
  3. Every Time?
  4. Is the test code getting refactored?
  5. Does everyone use the same test code?
  6. Can the test code be described as “Well Maintained”?
  7. Can a bright six year old tell you why any particular test failed?
  8. Are the tests independent and infinitely repeatable?

Posted On Wednesday, June 13, 2012 10:42 AM | Comments (0) |

Friday, June 8, 2012

Getting FxCop 10 to run under cruise control dot net

I don't know who Mikhail is, but his 4 year old entry on FxCop and CCnet was perfect.

The only thing I needed to do was to change the references to from FxCop 1.35 to FxCop 10.

I was prepared to use Basharat's solution, but it turns out that ccnet version 1.6.7981.1 is already taking care of the FxCop v10 reporting issues.

Posted On Friday, June 8, 2012 1:16 PM | Comments (0) |

Tuesday, January 17, 2012

"Testing In An Agile World" Article Posted On Developer Fusion

My article in Developer Fusion was just published and you won't believe what I said about testers in an Agile world.

Developer Fusion is a 13 year old web magazine focused on bringing together the best developer content from across globe.

My article can be found at

Posted On Tuesday, January 17, 2012 10:29 PM | Comments (0) |

Tuesday, January 3, 2012

Installing MSMQ - The illustrated companion

Its been a while since I've played with Message Queuing and C# and decided that I should reduce that counter.

During the simple process of figuring how to follow Microsoft's MSDN directions, I ran into a couple of headaches that could have been solved with a few navigational pictures. 

To the small number of people that this may help (and my future self when I need to do this again) here are the needed pictures.

My journey started out with google and the keywords "installing MSMQ", the first selection is the msdn page.  It's a good start.

Microsoft's answer looks pretty simple and straight forward. 

Installing and Managing Message Queuing

Applies To: Windows 7, Windows Server 2008 R2

You can install Message Queuing on computers running Windows® 7 or Windows Server® 2008 R2. In Windows 7, you install and uninstall Message Queuing by using Programs and Features in Control Panel. In Windows Server 2008 R2, you install and uninstall Message Queuing by using the Add Features Wizard available in Server Manager. For more information, see Install Message Queuing.

In Windows 7, Message Queuing is managed by using Computer Management. Message Queuing is located under Services and Applications.

Off to my control panel, if Win 7 is anything like XP, this is going to be easy.

Now to find "Programs and Features"

No luck.  (This is about when this blog entry was born)

After a bit of digging through all the menus looking for "Programs and Features" or "Computer Management" or even "Services and Applications" I was frustrated.

So I took another pass through the menus.  Finally, almost by accident I modify the "View by:" drop down.
For many of you, this was obviously the answer, but for me, when I read "View by:" I thought "sort" and thought it was stupid to have a sort option on 8 items.

Boy was I wrong.  Once I selected "Small Icons" my "Programs and Features" showed right up.

From there I went to another screen

Thankfully, I used to be a pretty technical person and I knew that the key was that little text off to the left side "Turn Windows features on or off."  I say thankfully because nothing in the MSDN article would have indicated that this was where I needed to look.

From there it was as simple as scrolling down to MSMQ and turning it on.

The main reason for this post is that MSDN could occasionally use some navigational pictures.  These are mine.  If you get any use out of them, please take a moment to say hi.

Now to go write some code.

Posted On Tuesday, January 3, 2012 3:09 AM | Comments (0) |

Tuesday, July 12, 2011

Getting Ready to Launch a new Blog

It's not there yet, but in the next couple of week, we're going to be launching a new blog focused on agile development.


Stay tuned.

Posted On Tuesday, July 12, 2011 3:48 PM | Comments (0) |

Tuesday, February 22, 2011

Response: Agile's Second Chasm

William Pietri over at Agile Focus has written an interesting article entitled, "Agile’s Second Chasm (and how we fell in)" in which he talks about how agile development has fallen into a common trap where large companies are now spending a lot of money hiring agile (Scrum) consultants just so that they can say they are agile, but all the while avoiding any change that is required by Scrum.


It echoes the questions that I've been asking for a while, "Can a fortune 500 company actually do agile development?"  I'm starting to think that the answer is "usually not"


William ask 3 questions at the end of his article that I will answer here.


1) Have I seen agile development brought in and then preemptively customized (read: made into ScrummerFall)?   Yes, Scrum is hard and disruptive.  It's a spotlight on company dysfunction.  In a low trust environment like most fortune 500 companies Scrum will be subverted by anyone who has ever seen "transparency" translate into someone being laid off.


2) If I had to do it all over again, would I change anything?  No, this is a natural progression, but the agile principles are powerful enough, that the companies that don't adopt them will no longer be competitive and will start to fail.


3) Is this situation solvable?  I think it is. 

I think that one of the issues is that you often see companies implementing Scrum, but avoiding the agile engineering practices.  I believe that you cannot do one without the other.  Scrum keeps the ship sailing in smooth deep waters.  The agile engineering practices keep the engine running smoothly and cleanly. 

If you implement agile engineering practices without Scrum, you run the risk of ending up with a great running piece of software that is useful to no one. 

On the other hand, implementing cargo-cult Scrum without the agile engineering practices and you end up (especially in a fortune 500 company) being steered in the right direction, but with your development practices coming to a dead halt because you have code that can not keep up with the changes in requirements.


If you are trying to do Scrum, make sure that you hire some agile engineering coaches, or else you may find your deveolpment engines grinding to a dead halt in the middle of the open ocean.

Posted On Tuesday, February 22, 2011 1:00 AM | Comments (0) |

Friday, January 28, 2011

Test Driven Development with vxml

It's been 3 years since I did any coding and am starting back up with Java using netBeans and glassfish.  Right off the bat I noticed two things about Java's ease of use.  The java ide (netBeans) has finally caught up with visual studio, and jUnit, has finally caught up with nUnit.  netBeans intellisense exists and I don't have to subclass everything in jUnit. 


Now on to the point of this very short post ( request)


I'm trying to figure out how to do test driven development with vxml and have not found anythnig yet.  I've done my google search, but unfortunately, TDD in IVR land has something to do with helping the hearing impared.

I've found a vxml simulator or two, but none of their marketing is getting my hopes up. 


My request - if you have done any agile engineering work with vxml, contact me, I need to pick your brain and bring some ideas back to my team.


Thanks in advance.


Posted On Friday, January 28, 2011 8:51 PM | Comments (3) |

Friday, December 17, 2010

Social Engineering approach to collecting from deadbeat ebay winners

You just sold something on e-bay and now the winner won't pay up.  What do you do?  I'm not sure what the legality of this kind of Social Engineering hack is, but I believe you've got to give it points for elegance.


Here's the link to the post (I can't find the original Reddit post.)

Reddit user "BadgerMatt" (we'll call him Matt for short) recently posted a story about how he tried to sell tickets to a sporting event on eBay, but when the auction was won the winning bidder backed out of the deal. In some cases this is mainly an inconvenience and you can re-list the item, but Matt was selling tickets to a sporting event and no longer had the time to do that. With the losing bidders uninterested in the tickets, he was going to end up stuck with tickets he couldn't use and a deadbeat bidder who was unwilling to honor their contract. Rather than give up, Matt decided to trick her into paying:

I created a new eBay account, "Payback" we'll call it, and sent her a message: "Hi there, I noticed you won an auction for 4 [sporting event] tickets. I meant to bid on these but couldn't get to a computer. I wanted to take my son and dad and would be willing to give you $1,000 for the tickets. I imagine that you've already made plans to attend, but I figured it was worth a shot."

The woman agreed, but for $1,100. She paid for the auction, received the tickets, and then Matt (of course) never re-purchased them. Needless to say, the woman was angry. Perhaps it was the wrong thing for the right reasons, but I'm mostly jealous I never thought of it back when I still sold things on eBay.

Posted On Friday, December 17, 2010 7:59 AM | Comments (1) |

Wednesday, December 8, 2010

Asus Machine fails to start due to missing msvcr.dll - what?

So first off a thanks to the internet, knoppix and a post over at


My Symptoms: my laptop would not boot.  Would not let me get anywhere.  Just like the symptoms in the post.


Thankfully, all I had to do was go rename my avg directory and all was good.  But I needed something to boot from and I knew and trusted Knoppix from my past linux experimental days. 


If it wasn't for Knoppix, I would have probably reformatted my machine and I didn't want that.

Posted On Wednesday, December 8, 2010 11:30 PM | Comments (1) |

Tuesday, December 7, 2010

Interesting conversation about the nature of info-wars

Over at Schlock Mercenary, Howard Taylor has started a facinating conversation on the nature of Info-Wars.

As Howard puts it:


Somebody (I forget who) tweeted that the Wikileaks fight right now is the first infowar in history. I disagree. I think we've fought numerous infowars in the last fifteen years. And that's really what I want to see discussed in the comments. We can argue right and wrong until the eCows come but nobody is going to walk away convinced. I want to see a list of information-age conflicts that you feel qualify as "infowar." Me, I think the RIAA vs file-sharing qualifies. My buddy Rodney suggested RBLs vs Spammers (the spammers won that one.) Somebody pointed out that the Secret Service raid on Steve Jackson Games back in the 80's might qualify.


Posted On Tuesday, December 7, 2010 8:08 AM | Comments (1) |

Wednesday, December 1, 2010

Scrum Product Owners Oath of Stewardship

There's an interesting discussion going on over on the Scrum Development list, dealing with technical stories verses user stories.  The idea is that "Improve our continuous integration server" may not directly translate to visible functionality for a customer, so how do you handle this in Scrum.  It's a conversation that pops up regularly and there are a couple of schools of thought on the subject.  I'm not going to get into here.


In the midst of this discussion I jokingly (sort of) made a reference to the "Product Owners Oath of Stewardship."


right after that Alan Dayley pointed out that

Phrases seen in Scrum writings with regard to the Product Owner role:  "...owns the ROI of the product..."  "..represents the customer..."  "...owns the Product Backlog..." and the odious "...single wringable neck..."  And even the title of the role means *owner* of the product.

What part of these terms does not mean stewardship?  You are pointing out that Product Owners are not getting the message, *despite* what the Scrum training and literature states.  Maybe an oath would help but I don't think the message of product stewardship is lacking in Scrum.


When Alan pointed out that we imply Stewardship, but never actually use the word, it was like a gong going off in my head (or a badly aimed claymore).  When talking with product owners, If we don't explicitly set an expectation of stewardship, then *none* of those terms will mean stewardship.  Right now, there are teams out there that are begging to add some unit tests, begging to set up a continuous integration server, begging to try paired programming and they're getting shot down because it might slow *this* sprint down.


So what is Stewardship?  Well, to cherry pick from Wikipedia "Stewardship is an ethic that embodies cooperative planning and management of environmental resources with organizations, communities and others to actively engage in the prevention of loss of habitat and facilitate its recovery in the interest of long-term sustainability " It's a little wordy, and it's specifically focused on physical environments, but for now I think it's the one I'm going to keep.


At this point, I've got to at least post version 1.0 of this thing, if nothing else because when the movie rights get sold, I don't want some kid in the audience saying, "that idiot should have blogged about right away"


So, tongue in cheek, here goes, version 1.0 of "The Product Owners Oath of Stewardship"


As a product owner, I have a responsibility to my customer to deliver the most value in the shortest time possible.  I have a responsibility to show the customer working software and demonstrate new functionality every 1 to 4 weeks.


As a product owner, I am a steward to my product and therefore will listen to my team when they start to talk about refactoring and continuous integration servers.  I will accept that my team is also committed to the long term sustainability of our product and weigh their suggestions accordingly.


As a product owner, I will balance the need to deliver software ASAP, and improving my teams software development environment and practices while knowing that these are not mutually exclusive activities.  I will support my team in doing smart refactorings, and to allow the product backlog to suggest where improvements might be made.


Not so funny now is it?

Posted On Wednesday, December 1, 2010 11:58 PM | Comments (0) |

Powered by: