Found this handy task list in Visual Studio 2010 today after marking something with a TODO comment.  You can view the Task List through the View menu

View > Other Windows > Task List

It pulls up a nice list of everything you commented with //TODO so you can make sure you’re not forgetting to implement everything.


It’s that time of the year again!

Draft Day is near! Here is some SQL to randomly determine the draft order






      NAME VARCHAR(50)


















I recently installed ReSharper and haven't been able to play with it as much as I like, but it is pretty clear how incredible the add-in is! ??It makes writing code so much faster and helps to keep everything clean and tidy. ??We have a standard set of rules that are in an XML document in source control which are easy to import and use, making sure all of the developers using it are in sync. ??Everyone I know who has used it says they can't live without it (which is good and bad), and I'm starting to see why!

Communication is Key

Here are my thoughts on some keys to communication. I’m a young guy and don’t have too much experience so I’m sure that my views on these things will change and grow as I gain more, but these are my current observations.

  Meetings – Some people view meetings as a way to waste some time and view it only as an expense.  After all, when a whole department or division gets together for a meeting they are not out getting work done but they’re still getting paid!  But really unless you’re going wild with the meetings and 50% of your day is filled with them, they can be quite useful.  It all comes back to teamwork, you can be a group of independent people all working separately or you can be a team of people working together.  Let’s take a weekly 30-60 minute team meeting as our example and say we have 5 people on our team.  That really adds up, 150 – 300 minutes worth of time that could be spend at a desk or in the field!  However, in the meeting when you start discussing what you’re working on and how you’re planning to accomplish these things your team members around you are able to offer advice, previous successes or failures, or perhaps a solution that is already in place.  It opens up the channels of communication that might not happen naturally and can really enhance teamwork.  Imagine if two employees both have a need for a similar solution to a problem, instead of each coming up with a solution they are able to work together and generate a common solution that works for both.  Scenarios like these will not waste time, but rather save time!  It will also help to keep each employee feeling involved in the team and increasing job satisfaction and motivation. They’re no longer just working on the things handed down to them, but rather working on a bigger picture as part of a team.


                 Responding – This aspect is key in all parts of life, not just work.  When someone gives you information or asks you to do something, respond!  Let them know that you have received their message and will be looking into it, or that you have completed the task.  I feel that email makes people especially bad at this, but only because it enhances some people’s desire to avoid confrontation or interaction.  It’s as simple as saying “Thanks!” or “I’m on it!”, just a short response to let them know that you received their message and it did not disappear somewhere in the interwebs.


                 Listening – This is definitely the hardest part of communication! It’s not speaking articulately, being persuasive, or giving the best details possible, those things are sometimes challenges but the hardest part is listening.  It’s not just hearing what they said, but rather hearing and understanding what they said.  Listening is interactive!  After you are done listening, questions should be asked to clear up anything that you need cleared up (what do you mean by that?) or to make sure what they are asking for is really what they want (What is the root of the problem?).  In today’s world of email, this can mean waiting to catch up on your inbox before responding to anything.  There have been instances where I’ll start reading and hit an email which merits a prompt response, and then after I reply to the email and continue reading I find that someone else has already taken care of it and my email was unhelpful and a waste of my time.


SSRS 2005 to Excel Colors

Excel and SSRS 2005 colors don’t always match up the way you want them to, so here is a comparative analysis that will hopefully help you select colors that match up well.


SSRS Design



SSRS Rendered





Some of the colors that match up well:

Black, White, Gray, DarkGray, Gainsboro/LightGrey, Maroon/DarkRed, Red, Brown/SaddleBrown, Salmon, LightCoral, OrangeRed, LightSalmon, Sienna, Peach Puff, Dark Orange, BurlyWood, NavajoWhite, Orange, Wheat, LemonChiffon,  Cornsilk, Gold, LightGoldenrodYellow, Olive, Yellow, LightYellow, YellowGreen, ForestGreen, Green, Lime, Turquoise, MediumTurquoise, MediumSeaGreen, DarkSlateGray, DarkCyan, Cyan/Aqua, SlateGray, Royal Blue, Midnight Blue, Navy/DarkBlue, Blue, DarkSlateBlue, MediumOrchid, Purple, Fuchsia/Magenta, Crimson, Transparent


In 2008 they load a custom color palette based on the colors used in the report, so the colors will always match what is in your report.  While this is a nice feature I have found one bug that occurs when merging two spreadsheets that have been rendered through SSRS.  The color palette of the main workbook will be applied to all other sheets that are added to it, and they appear to use some sort of index to reference the color.  So if you have two SSRS rendered report with different colors and you attempt to merge them into one, the colors on the added sheet will go haywire.  You can try to match the colors between the two SSRS reports, but even having the order of the colors in the report off will give you some strange results (presumably because the index of the color in the palette is used.) So watch out for this!


The very word Cryptography can be intimidating, not many people know much about it.  I’m definitely among those people, but it struck my interests today when encrypting my password to use in a test application so it wasn’t stored in plain text.  I was using an MD5 Hash algorithm for my Key, and a TripleDES algorithm to encrypt the password.  I decided to look at the different encryption types built in to .NET to see if these were actually secure, and it’s a good thing I did!  Though I’m just encrypting my password which is not a matter of national security.

If you do a bit of googling or check out StackOverflow on the topic, it turns out that MD5 has long ago been broken and it’s not recommended to be used.  So I switched over to a SHA256 which is a member of the SHA-2 family, which is currently the recommended version for hashing.  They are currently working on a SHA-3 encryption, and are having a friendly competition to find the best possible solution for it.  It will be pretty cool to see the results of this contest and how the winning version works.

The TripleDES seemed to be a decent solution, but I switched over to AES instead because it’s said to be faster in software.  This isn’t really an issue when decrypting a short string like a password, but would be if we were encrypting a large file or a database.  The payment industry currently uses TripleDES so it can’t be too bad (one would hope), but I went with AES for my own project.

Either way, this is pretty interesting stuff!  Wikipedia shows how the algorithms work and even shows code for some of them, and the calculations for the math nerds