Saturday, June 23, 2007

Guitar Update

I'm still on the path to learning how to play my guitar.  In case your interested, I went out and bought a DigiTech RP350 from Guitar  Center for my birthday present earlier this year.

The RP350 has been pretty awesome and I haven't been able to use but about 50% of it.  It allows the signal of the guitar to be processed a dozen different ways.  Want to sound like AC/DC?  Punch in number 15.  Is that U2 your wanting?  That's number 9.

It comes with something like 70 preset 'sounds', including effects and different cabinets.  So yes, my 25w Spider Pro-Line practice amp can take on the rich tones of a Marshall.  Pretty cool, eh?  There's also the software that allows me to create my own 'patches' for different sounds.  Haven't even fired that up yet.  Of course, you can model them on the fly and store to the device, but the software allows you to pull in patches that others have created.  There's a pretty active user community support it.  Since the device supports USB, its very easy to record and lay tracks using Audacity.   This was something that I struggled with for a while, but now its a snap. 

Still working on my strumming and keeping a beat.  Its a lot tougher than I ever remembered it being (either that, or I certainly wasn't as good as I remember!).  I do think I'm getting up there where jamming with others will help speed the process along.  

Friday, June 22, 2007


We are going through our second round of testing some critical business flows in our test lab when it dawned on me how much we use the following NumberGenerator code.  We use it for almost every step of data creation...ok, not that much, but ALOT.  Its kinda goofy, but there you have it.  Its used in many of our scenarios where we are initially seeding data.  e.g. Purchase Order numbers, Work Order numbers, Pallet numbers, or anywhere else we need a sequence of numbers that are formatted with a specific pre/post fix, padded with a specific character to a fixed length and so forth.

using System;
using System.Collections.Generic;
using System.Text;

namespace ARTDC
class NumberGenerator

int _currentNumber = 0;
string _prefix = string.Empty;
string _postfix = string.Empty;
char _padChar = '0';
int _numberLength = 0;
int _startNumber = 0;

/// <summary>
/// Returns a formatted string such as 'CWTEST0000000000000001'
/// </summary>
/// <param name="prefix">Hardcoded prefix to string, e.g. 'CWTEST'</param>
/// <param name="startNumber">Number to start incrementing at. e.g. 1.</param>
/// <param name="numberLength">Total length of the formatted 'number' string. e.g. 20</param>
/// <param name="padChar">The character to pad to length with. e.g. '0'.</param>
public NumberGenerator(string prefix, string postfix, int startNumber, int numberLength, char padChar)

_prefix = prefix;
_startNumber = startNumber;
_numberLength = numberLength;
_padChar = padChar;
_postfix = postfix;

_currentNumber = _startNumber;


/// <summary>
/// Returns a formatted 'number' string on each call
/// </summary>
/// <returns></returns>
public string Next()

string result;
string tempNumber = _currentNumber.ToString();

result = string.Format("{0}{1}{2}", _prefix, tempNumber.PadLeft(_numberLength - _prefix.Length, _padChar), _postfix);


return result;


I'm not making any claims around it...just it was one of those moments where I reflected on the value of this little piece of code.  Of course, anyone could have cranked out the same piece of code a dozen different ways, using different tools, but we did it this way.  Anyway...I'm through reflecting..

How do you generate test data?

Windows Live Writer Beta 2

I'm toying with using Windows Live Writer to do blog posts, specifically for its plugin to insert syntax highlighted source code.  I've tried Beta 1 and it was my primary posting tool for a while...then I got tired of some incompatibilities between it and Google Blogger.  Maybe it was just me...anywho, giving it another go around.

This is some purely whimsical-nonsense source code to test the post with.

public interface IJdeDataService
List<JdeFunction> GetFunctionNames();

List<JdeFunction> GetFilteredFunctionNames(string filter);


Monday, June 18, 2007

Microsoft CPR Team Blog

Jeff, from the Microsoft CPR Team left the following comment on one of my posts. This is pretty cool that the CPR team is posting what are essentially training exercises for you and I!

Thanks, Jeff!

Hi, my name is Jeff with the Microsoft CPR (Critical problem resolution team), Nice post. I thought I would share some of the work we are doing with hang collection. If you want to automaticly detect hung window we put a sample on our blog that shows how it can be done. In addition we have a series of LABs with detailed training that shows you have to debug the dumps without source.

Visit the advanced windows debugging blog at

Our hang blog Is here

And our Hung Window?, No source?, No problem!! Part 1 blog is here.

Part 2 is located.

Thank you.

Jeff, Microsoft CPR.