My Software Toolbox

by Bobby Cannon August 19, 2010 02:54 PM

I wanted to post what tools I have in my toolset for developing software. These are tools that I use everyday either at work or in my personal coding efforts.

Visual Studio 2010

The best IDE ever. What else needs to be said?

Resharper

Code refactoring tool that allows you to very quickly refactor, format and simple code your projects.

YourKit Profiler

This is a memory / CPU profiler. If your application has a memory leak then this tool will help you find it. I've only used it once but it worked great and it did lead me to the issue. I haven't purchased it yet but I definitely have plan to add it to my toolbox.

SVN Server

This is my choice for source control. I've used Team Foundation server and it has always been too big for our small teams. It's also a beast to keep and maintain the Team Foundation server. I use Visual SVN server and it's very easy to install, backup and maintain. Simple backup a single directory to get all your configuration.

Tortoise and Ankh SVN Client

I use two SVN clients. Tortoise integrate itself into the windows explorer. No GUI required to activate / control the SVN client. Just the file explorer and a folder. Ankh SVN client integrates into Visual Studio 2010. This allows me access to source control directly inside Visual Studio.

TeamCity

This is the Resharper guys automated build server. It's free and it works great. I have not set it up for any of my personal project but we use it at work and it's awesome. Very simple and it works. What else you need?

YouTrack 2.1

Just started using this to track software issues, bugs, and tasks. I have really been loving it so far. I'm using the 60 day evaluation then I will probable purchase it.

Tags:

Programming | Source Control

SharpBlog

by Bobby Cannon July 30, 2010 11:40 PM

Approximately 4 weeks ago I decide to dump my old website in favor of a real blogging engine. I decide to go with BlogEngine.NET. I really like the engine and thoroughly enjoyed it for about 2 weeks. There where a few issues that just couldn't be handle without diving into the code. I thought about asking the developers to "fix" the issues (technically add the features) but I would not dare ask. 

I just could not bring myself to ask when I know that I'm very capable of adding the features myself. One of the feature that I wanted was a old URL to redirect to the new one. Ex. "/articles/3" to redirect to "/page/Bobby-Cannons-Resume.aspx". I research on how I could simple create an extension but it just couldn't be done. I thought well if I add this one feature I will own the blog.

I've decide to branch BlogEngine to SharpBlog. I thought simply contributing to the project but I've changed so much. I've upgrade the assembly to .NET 4. I also changed the website project into a web application. This took a good bit of work and the changes are just too much to feedback into the BlogEngine project. However if they ever decide to move forward then I would love to simple use BlogEngine. I fear by that time I will simple have made to many modification and upgrades to move away from SharpBlog.

I am a refactoring freak. I will be walking through the whole project line by line. If I find problems I will be reporting these problems to BlogEngine to be sure to give back to the project.

Tags:

Blog

Scott Hanselman has a very good point about blogging

by Bobby Cannon July 19, 2010 10:13 PM

I've always been a fan of Scott Hanselman. He very smart and entertaining. I subscribe to his weekly 30 minute podcast called Hanselminutes. The link below are to a video cast of Scott explaining why every developer needs to have a blog and I couldn't agree more. Getting your ideas out to print is very beneficial. I feel that my blog has helped me greatly with my communication skills. Yes and I'm still working on them.

My website has been through many changes through out the years. At first it was just to help me learn HTML. Later I started developing software and wanted to sell it so it became very commercial. I finally decided that no I want to simply blog so I created my own "blog" engine which totally sucked. Just a few weeks ago I decided that I'm done trying to recreate the wheel (there is a time and place for this but that's another blog entry) and installed BlogEngine.NET. Now I have a real blog with RSS feeds and everything that a blog should be. 

I've done just about everything he said not to in his talk. I've blogged so many times about not blogging. Sounds silly now that I look back on it. I really feel that I have gotten it right this time. I will blog when I have something to blog about. Turns out if you just do it that it's not that hard. And it is easier than you think. Yes some may say that it's not worth it because no one will read your blog. Well that's fine but there's plenty of other reasons to do it. Check out the video cast and prepare to become a Scott Hanselman fan!

Note: You may need to download the WMV or Zune (Quality WMV, still will play in WMP) because I kept getting the error below when trying to stream the video cast.

[quote]

In this talk, I propose that EVERY developer needs a blog.

In 2009, I presented a talk at Wintellect's Devscovery conference called "Social Networking for Developers." My postulate was that EVERY developer should be using Social Networking, and this talk I gave was my introduction of this idea to a large group. This was the keynote for the conference. I finally got ahold of the source recordings (only guerilla recordings had been available previously) and as even those recordings were popular, so I'm preserving these talks here as a way of encouraging more discussion.

[/quote]

Every Developer Needs a Blog - Part 1

Every Developer Needs a Blog - Part 2

Tags: ,

Blog | Career

Numeric Textbox Control in WPF

by Bobby Cannon July 17, 2010 08:17 AM

I am in need of a small utility to do some testing so I decided I would write it in WPF. I'm not that familiar with WPF so I figured this would be a great little application to use to learn.

On my dialog I need an input for "Quantity". I looked for the old faithful NumbericUpDown control but it does not exist. I was sad but decided to push forward.

I placed a textbox down and started figuring out how to block non numeric values. This turned out to be completely different than I expected. Maybe my expectation where wrong. I thought I would start by using the PreviewTextInput event to ensure that the input was a number.

private void TextBoxQuantity_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    e.Handled = !e.Text.All(Char.IsNumber);
}

This worked great... except it would not capture the space key (" "). Look as the possible input.

This would not work. I'm not entirely sure why the PreviewTextInput event is not catching the space key but we can fix this by using the PreviewKeyDown event. Let's take a look

private void TextBoxQuantity_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Space)
    {
        e.Handled = true;
    }
}

Now the textbox will not accept the space input. At this point many would think we are done but we are not. Take a look at what happens if you "Paste" into the textbox.

Well that's no good. We cannot let the user paste text into a NumbericTextBox. We will disable the context menu (copy, cut, paste) and disable the paste command (CTRL + V).

This code will get rid of the context menu.

public MainWindow()
{
    InitializeComponent();
    TextBoxQuantity.ContextMenu = null;
}

This code will disable the paste command.

XAML

<TextBox CommandManager.PreviewExecuted="TextBoxQuantity_PreviewExecuted" />

Code

private void TextBoxQuantity_PreviewExecuted(object sender, ExecutedRoutedEventArgs e)
{
    var commandName = ((RoutedUICommand) (e.Command)).Text;
    if (commandName == "Paste")
    {
        e.Handled = true;
    }
}

This is acceptable for my small utility but I will need to figure out how to handle the accepting or rejecting of "pasted" data. It would be nice to still allow the user to paste number into the textbox.

Now we have a textbox that will only accept numeric numbers.

Tags: ,

Programming

Adding your WoW calendar to Outlook

by Bobby Cannon July 16, 2010 07:09 AM

I've taken a short break on WoW. This last week I really didn't play the game that much. I did our 25m ICC run so the guild wouldn't have to find another healer. During this short break I missed a raid that I had "accepted" and if you play WoW then you know what that means. People were a little upset that I wasn't there. If you sign up for a raid you better be there. I thought I had accepted as "Tentative" which then it would have been OK. 

I wanted to be sure that I had access to this information easier without having to log into WoW. I thought it would be nice if I could add this to Outlook. Sure enough you can do exactly that. Take a look! The items in blue are my normal calendar and the items in green are on my WoW calendar. You can see the Midsummer Fire Festival at the top.

Now I will never miss a raid and I have my WoW calendar at my finger tips. How kewl is that? EPIC! More...

Tags: ,

Gaming

Month List