Geeks With Blogs

Rob Reynolds

Subscribe to Fervent Coder RSS
Subscribe to Fervent Coder by Email

About Me

I manage several open source projects. Need...
   ...package management for Windows?
   ...automated builds?
   ...database change management (migrations)?
   ...your application to check email?
   ...a monitoring utility?

I also write for

Like what you are reading? Want to buy me a cup of coffee?
PayPal - The safer, easier way to pay online!

Fervent Coder Coding Towards Rob Reynolds Code
this.Log– Source, NuGet Package & Performance
Recently I mentioned this.Log. Given the amount of folks that were interested in this.Log, I decided to pull this source out and make a NuGet package (well, several packages). Source The source is now located at Please feel free to send pull requests (with tests of course). When you clone it, if you open visual studio prior to running build.bat, you will notice build errors. Don’t send me a pull request fixing this, I want it to work the way it does now. ......

Posted On Wednesday, December 19, 2012 11:21 PM

From Zero To Deployed Contest–Winner Announced PLUS Extension To Most Creative
Recently we had a contest to see who could beat my time to get from no code to deployed. Thanks to everyone that participated and everyone that thought about participating in the contest. Most Creative From Zero To Deployed Contest Extended! Unfortunately there were not enough entries to award the most creative video for ZtD. So what we are doing is extending the most creative until May 15, 2011 @ 11:59 PM CST. This gives you almost two months to get your videos in! If you entered before, you are ......

Posted On Monday, March 21, 2011 12:09 AM

RoundhousE – ADO.NET over SMO
One thing most database change management tools use is SQL Server Managment Objects (SMO). Most do that because ADO.NET doesn’t allow the batch statement separator keyword GO in sql statements. So most people write off the ability to use a database change tool for sql server without actually having the sql server installed on the machine that is running the tool. This is not a reality in some organizations, especially when licenses for SQL server are limited. Split the GO Recently, a few guys have ......

Posted On Tuesday, February 23, 2010 9:49 PM

Warmup – Getting Started
What if there was a tool out there that could let you specify a structure for a project (visual studio solution + everything else) and save you up to 3+ hours of work every time you started a new project? Warmup was an idea by Dru Sellers to remove all of the setup work required every time you set up a new project. You know, create the solution, add projects, put in your references, etc. Then how about getting the infrastructure for your service/website/console set up as well with things like IoC, ......

Posted On Monday, February 1, 2010 8:10 AM

Windows Mobile Phone Bug: Text/SMS messages coming in from 2016 – Need a fix?
If you are seeing text messages coming in from the year 2016 and thinking this is a total WTF (mate?!), put down the phone. There is no need to break the phone. It’s fine. Nearly all WM phones are experiencing this right now. I repeat, there is no need to break the phone! There is a fix for this that requires maybe five minutes of your time. DISCLAIMER: You do this on your own terms. I am in no way liable if you follow these instructions and damage or render useless anything at all including but ......

Posted On Tuesday, January 5, 2010 11:28 PM

Two Major Milestones for RoundhousE and UppercuT
This last year I had a focus to get more involved in Open Source (OSS). The year before I had been involved a little by submitting a patch here and there, but 2009 was a big year for me in OSS. I now manage 4 open source projects that have solved a need for me and others. Coming up on the end of the year it was important for me to get some final touches into at least two projects to finish out the year. UppercuT UppercuT (UC), for those of you who have never heard of it, is an automated build tool ......

Posted On Friday, January 1, 2010 2:55 PM

Lessons In Building An Email Parser
The Classic Infinite Email Loop When building an email parser, one must think about validating an email address that sends you a message. Just because that email address is where the message says it is from does not really mean that is a valid email address. Some of you can already see where I’m going with this. I was building something in Bombali that would respond to emails when receiving them. When Bombali received a message from an address, Bombali would send a response. No checking on the address. ......

Posted On Friday, December 18, 2009 3:15 AM

Enter The Dragon: RoundhousE DB Migrations
One of the coolest projects I have been working on is how to solve issues with database versioning and migration. A project dubbed RoundhousE. RoundhousE is an open source automated database deployment (change management) system that allows you to use your current idioms and gain much more. Currently it only supports Microsoft SQL Server, but there are future plans for other databases. It seeks to solve both maintenance concerns and ease of deployment. We follow some of the same idioms as other database ......

Posted On Wednesday, November 11, 2009 4:51 PM

Sproc Executing Slow? It Might be This
So you have stored procedure and it’s having issues. When you run it, it returns really fast. When .NET runs it, its like a dog. The first thing you learn about SQL Server is that it has something called ARITHABORT and it is turned on in SQL Management Studio and OFF in ADO.NET. Yeah you heard that right. OFF. So when you find this out, your first thought is WTF, mate?! Why do we have to make this hard on ourselves? Reference post: ......

Posted On Friday, November 6, 2009 12:02 PM

UppercuT and Mono Migration Analyzer
If you are using UppercuT, you will be pleased to know that it now supports Mono Migration Analyzer (MoMA for short). All you have to do is upgrade. And with the design of UppercuT, we’ve made it super simple to upgrade. How hard is it to upgrade UppercuT? Just drop in the files in your build folder, check for changes to the lib folder (especially in the NAnt directory) and new folders, and then check for any changes to the .bat files and UppercuT.config and you’re done. Mono Migration Analyzer Here ......

Posted On Sunday, October 25, 2009 2:05 AM

UppercuT – Elegant Solution to Strong Naming
Here’s how you can sign a set of assemblies in a project with a key using UppercuT: 1. Open the UppercuT.config file. 2. Change the following to “true”: 3. Done. Did I mention that creates a private key if it is not there as well?! This was from a patch sent in by Dru Sellers. Thanks Dru! With this knowledge you shall build ......

Posted On Saturday, September 26, 2009 12:09 AM

UppercuT Presentation Afterthoughts
The presentation for TopDNUG went pretty well. There were some good questions and back and forth. The room really seemed to come alive when in a matter of less than ten minutes I added UppercuT to two different Open Source projects (Reflexil and Quartz.NET) and had them off of the ground and building. Full builds, too. With versioning, compiling, unit testing, packaging, etc. I also unveiled the new logo for UppercuT: Here is the slide deck: UppercuT Presentation (may need to be renamed to .pptx) ......

Posted On Friday, September 25, 2009 11:57 PM

UppercuT – Automated Builds - Change is Good
Recently I reported that there were going to be some changes to UppercuT. And there have been. These are a summary of some of the most significant changes: Uppercut now reports it's version. This is helpful to know where you are versus the current version. It also reports the time when it finishes a build. Custom Replacement Tasks are now implemented. This is to add a task to the custom folder that completely replaces the normal workings of the build step it is replacing. A pre or post custom step ......

Posted On Wednesday, September 23, 2009 12:31 AM

Universal NAnt Script for Gallio
So Gallio has been out for a little while and I admit that I am a little slow when it comes to looking at new frameworks. I mean there is so much to look at and only so much time in the day allocated to programming. Anyway, there really isn’t much documentation out there yet for using Gallio with NAnt. I am of the thought that is due to all of the people who are really smart with builds are using Rake and/or PSake now. So I set off to create another universal script. This basically follows the conventions ......

Posted On Sunday, September 20, 2009 10:37 AM

UppercuT Undergoing Some Major Changes

I’m slimming it down and rethinking some of the idioms it is currently using. Stay tuned…

Posted On Monday, September 14, 2009 10:51 PM

UppercuT – Mark an Application Executable to Use More Than 2GB of Memory (Large Address Aware)
If you’ve ever built a .NET application that runs out of memory constantly, it’s because you are hitting a 2GB limit. You may have known about marking an assembly “/largeaddressaware”. You may have not. The process of doing this is actually somewhat easy once you learn about it. You normally just start a Visual Studio Command Prompt (found in Start Menu under Microsoft Visual Studio version/Visual Studio Tools). Then you find the compiled application and run the following command: editbin /largeaddressaware ......

Posted On Thursday, August 20, 2009 1:42 AM

Topeka .NET User Group Meeting – Moved to August 20th

Due to scheduling conflicts, the meeting has been moved to Thursday August 20th.


Posted On Saturday, August 1, 2009 6:44 AM

Topeka Dot Net User Group (DNUG) Meeting - August 20th, 2009
Topeka DNUG is free for anyone to attend! Mark your calendars now! Speaker Dru Sellers is the Solution Architect for Federal Home Loan Bank in Topeka, KS. He has been programming professionally for over 8 years and spends most of his time in C# and VB.Net, Castle, and junk punches people who 'touch' his database. Topic Object Oriented Databases and other non-relational options Are you tired of writing SQL to maintain your databases? Are you using an object relational mapper and sick of the mapping? ......

Posted On Thursday, July 23, 2009 6:48 AM

.NET Binding Redirects – Updating Referenced Assemblies Without Recompiling Code

I wanted to keep link love – but blog wouldn’t let me keep the link with the .NET in it when I edited it. The link is now here:

Posted On Sunday, July 19, 2009 6:14 PM

.NET Binding Redirects – Updating Referenced Assemblies Without Recompiling Code
Have you ever seen this error? System.IO.FileLoadException: Could not load file or assembly ‘nameOfAssembly’, Version=specificVersion, Culture=neutral, PublicKeyToken=publicKey’ or one of it's dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) This means you’ve replaced the specific version of the third party assembly with either an earlier or an updated version. The assembly that uses it is compiled to point to a specific ......

Posted On Sunday, July 19, 2009 3:15 PM

log4net Note: Always Keep Your Logs On the Same Server
From what I have seen and used, log4net is one of the best tools out there for implementing logging (the best?)! That said, we noticed something recently that is very interesting. Let’s say you have a service. You keep it running all of the time. You have implemented logging for it. You keep those logs on a separate server for whatever reason. For purposes of discussion the server the service is on is the “app server” and the server the logs are on is the “log server.” When you reboot that log server, ......

Posted On Thursday, July 16, 2009 5:00 PM

UppercuT – Added Pre-Task Hooks for Custom Tasks
Tonight I committed pre-task hooks for custom tasks in UppercuT. What has been available up to this point is only the post-task custom hooks. Now you can hook in before a task runs and run your own custom tasks! This is done the same way as the post run custom tasks. The naming convention here is * in the name. For example would be the pre-task custom tasks for The post task custom tasks are now moving to a * naming standard. For now using the ......

Posted On Thursday, July 2, 2009 12:28 AM

TortoiseSVN Missing Context Menu After Vista Upgrade from Home to Ultimate
Recently I upgraded Vista Home to Ultimate. I could not get the context menu back. I thought I was going crazy trying to get it back. I uninstalled and reinstalled many a time trying to get it back. I still couldn’t get TortoiseSVN to show up. So I uninstalled and started a rampage through the registry to find what I needed to remove. I came across this key: HKEY_CURRENT_USER\Software\... It had an entry for Context Menus (which I had modified). I backed the key up and deleted it. Then re-installed ......

Posted On Monday, June 29, 2009 8:03 PM

Subversion 1.6, Tree Conflicts, and the Incompatibility of Subversion 1.5: What You Need to Know
NOTE: Subversion's new tree conflicts feature is something you need to learn about. Otherwise it will bite you later and you will be left with an uncommitted change and confusion about how to get it committed. Take a few moments to read this article. SVN 1.6 Client + 1.5 Server = "Error: Aborting commit: 'C:\SVN\source-branch\src\i... remains in conflict " and the file is gone. It's just gone! Subversion 1.6 has been out for awhile and quite a few of us just upgraded our TortoiseSVN clients ......

Posted On Wednesday, June 10, 2009 6:26 AM

SQL Server 2005/ SQL Server 2008 - Rebuild or Reorganize ALL Indexes in a Database
I found this gem while looking at a database that needed all indexes rebuilt. I actually had to create the programmatic way of doing rebuilding all indexes in a database based on the information in these posts: http://www.sql-server-perfo... http://www.sqlservercurry.c... ......

Posted On Tuesday, June 9, 2009 10:38 PM

UppercuT - TeamCity Integration - Part 4 (Code Drop / Artifacts of the Build)
In Part 1 we create a project. In Part 2 we set up the Build Configuration. In Part 3 we ran the build. Now we are just going to note how we get to our code. Code Drop / Artifacts TeamCity stores all artifacts in a database. So for every build, the drop location is not a physical disk location, it’s actually in a database. This is why we called zip.bat instead of build.bat. We have to download the items from TeamCity and want to just download the one file. If we download that file and unzip it, we ......

Posted On Monday, June 8, 2009 7:05 AM

UppercuT - TeamCity Integration - Part 3 (Run the Build)
In Part 1 we create a project. In Part 2 we set up the Build Configuration. This time we will Run the build. Run the Build Project 1. Click on Projects. 2. You can see that the new project has not run before due to the question mark. 3. Let’s kick it off. Click {Run |…}. 4. The page refreshes automatically to show that we are running. 5. NOTE: The first build may fail due to folder cleaning that is happening at the same time. You will see a note in the build log that it is deleting items at the same ......

Posted On Monday, June 8, 2009 6:58 AM

UppercuT - TeamCity Integration - Part 2 (Create a Build Configuration)
Last time we created a project. This time we will set up the build configuration with it. Create a Build Configuration 1. Click {add a build configuration} for this project. 2. In the [Name:] field, we need to add something descriptive. We are building the trunk on every change. Let’s call it Bombali Trunk CI. 3. In [Artifact paths:] enter code_drop/*.zip. 4. In the Fail build if: section, ensure that these settings are checked: a. build process exit code is not zero b. at least one test failed c. ......

Posted On Monday, June 8, 2009 6:52 AM

AutoTest.NET - AutoSpec for .NET
Recently I mentioned I mentioned that I wanted AutoSpec in .NET, but it looks like James Avery has already created it awhile back as AutoTest.NET. I gave the project a little automated build love using UppercuT (a super simple to use build framework. Automated builds as easy as 1 (solution name), 2 (source control path), 3 (company name)). Then I noticed the project looked like it wanted to use log4net, but hadn't really sat down and put that in yet. So I added that as well, plus a few more logging ......

Posted On Sunday, April 26, 2009 4:39 AM

I was on my way home this evening when I was thinking of a test generation framework that could help me write some of the tests I always write to test construction setters, properties and null inputs to methods. Basically the tag line was going to be "AutoSpec - For those of us that are Test Driven but want to automate some of the mundane tests." Once I got home, I started to look if anything like this is out there and came across something different. I came across a Ruby product called AutoSpec. ......

Posted On Saturday, April 25, 2009 11:34 PM

The Tarantino Project - Database Change Management
The Tarantino Project is a very simple to use database change management system that uses an application or NAnt deployment tasks to do so. I've been checking out Tarantino for about a week and I just started using it today and wanted to share my experience with how easy it is to use. To use Tarantino, all you have to do is follow a couple of conventions. You create a folder for a particular database. Then you have two folders under that, Create and Update. You name each sql task you want it to do ......

Posted On Tuesday, March 24, 2009 5:56 AM

The Tarantino Project and MSBuild
One feature I wanted to see in Tarantino is the ability to use either NAnt or MSBuild. So I sent in a patch to add MSBuild. If you want to be able to use MSBuild 2.0 with Tarantino, just apply the patch and rebuild. :D I've also included the patch with this post. Tarantino MSBuild Patch Update: I noticed that patches do not include binary files. In the lib\MSBuild folder, these are what need to be added. log4net.dll Microsoft.SqlServer.BatchPa... Microsoft.SqlServer.Connect... Microsoft.SqlServer.Replica... ......

Posted On Monday, March 23, 2009 10:52 PM

Nothin But .NET Coming to KC End of August
I attended JP's Nothin But .NET last November in Philadelphia and it was the best course I have ever been to! Sooner than you know it will be in Kansas City this year. It starts Monday, August 31, 2009 at 8:00 AM and goes through Friday, September 04, 2009 at 10:00 PM. I can tell you from experience it will probably be over more like at 4AM on Saturday morning! If the price looks like a lot, keep in mind that this price is REALLY CHEAP for the amount of training and learning that you receive. This ......

Posted On Thursday, March 19, 2009 6:57 PM

The DevHuddle
The DevHuddle. This is a term I started using to identify what my team does to plan development work for an iteration. Basically this is where we sync up and get everyone on an even playing field for consistency, map out our plans and design and coordinate who is going to do what. Why a huddle? In football the team gets the orders (prioritized stories) from the coach (project manager) and then the quarterback (team lead) explains the plan and how the players (the developers) are going to carry it ......

Posted On Tuesday, December 30, 2008 9:13 PM

ALT.NET Conference: Take 2 - Seattle
Registration looks like it just opened up! See you there if you get a seat! This event is April 18-20 at Digipen in Seattle, WA. As with the first conference, ALT.NET is free, but only accepts the first 150 people to sign up ......

Posted On Tuesday, February 12, 2008 3:59 PM

What is Your Alt.NET?
Passion. I love what I do and I get very passionate about it. I love to argue about the best way to go about architecting a system, learn things from others and teach others about the ways of the pragmatic developer. I love being surrounded by people who are very logical and can design whole systems in their heads (not that they do because that can be error prone) and see bugs before they even write a piece of code. I like it when people can go from high level to very technically deep, like up to ......

Posted On Tuesday, December 11, 2007 2:32 PM

Git - Distributed Version Control - New User Resources
JP recently talked me into it, so I finally took the plunge and decided to try Git using If you are new like me, there are some guides out there to help you get up to speed on Git pretty fast. A few starter notes, and I will release you to the resources available. Git is distributed source control, so each local copy has all of the history. That means you have all of the history of a project on your local machine. When using Git, there is the idea of staging, committing, and pushing. ......

Posted On Sunday, March 15, 2009 3:14 PM

Universal NAnt Script for MbUnit
If you run automated builds using NAnt, you may or may not know about the MbUnit Task you can add to NAnt. MbUnit has pretty good directions for how to do get their task setup. I've been out to their site a couple of times trying to remember the exact details of the mbunit NAnt task. Dru put the thought into my head, why not make the concept of running the tests a more generic and universal item so that you can just drop a couple of files into a project and be done? I thought about this for awhile ......

Posted On Tuesday, January 27, 2009 10:40 PM

The Real Reason to Use IoC/DI (Inversion of Control/Dependency Injection) and a Container Like Windsor
Can you imagine maintenance where you would only have to change a configuration? How about not having to touch existing production code but be able to completely change the behavior of an existing application?! The real reason to use a dependency injection container is Maintenance. When considering that after you write your first line of code, everything from that point on is maintenance, maintenance is a pretty big deal. Containers make changes seamless. Actually, interface-based development makes ......

Posted On Sunday, December 14, 2008 1:11 AM

Interesting Error with .NET Framework 3.5 SP1 Install
Thought you should know. :D Awesome ......

Posted On Friday, December 12, 2008 2:00 PM

Caveat to Adding the Everyone Account in VisualSVN Server
You may experience issues after allowing the Everyone special account in VisualSVN Server, such as not being able to commit code. VisualSVN Server is a great product to manage Subversion for you! Recently I posted on how to allow anonymous access to your repository and set up the special "Everyone" account, but I recently think I found a bug in it. It may be expected behavior for what the Everyone account represents, but for me, it's quite unexpected. Once I add the Everyone account , it will override ......

Posted On Wednesday, December 10, 2008 8:47 PM

Kansas City Day of Dot Net : Inversion Of Control With Windsor Container
Today I gave a presentation on Windsor Container at KC's Day of Dot Net. The presentation went pretty smoothly, other than accidentally unplugging the projector link. :D I introduced fluent interfaces into my presentation code this time around and it seemed to be somewhat well received. I also added Mass Transit's startable facility to the Windsor configuration and showed how easy it is to use Windsor to leverage production level code. Thanks to all that came! I appreciate the interest and the great ......

Posted On Saturday, December 6, 2008 3:03 PM

Nothin but .NET Developer Boot Camp - Wrap up
Over the past few days I have been honored to be at the Nothin but .NET Developer Boot Camp in Philadelphia, PA. I have also been posting updates every day. A few people have asked me if this course is worth it. I would say if you want to be passionate about what you do (or if you already are), then the answer is a resounding YES!! The sheer amount of benefit you get from knowledge and participation, you may feel like you are a bandit making out with only having had to pay the extremely reasonable ......

Posted On Monday, November 24, 2008 12:28 AM

Nothin but .NET Developer Boot Camp - Day 5
Friday was the last day of the training course and today we went over a couple of patterns and had a discussion on Domain Driven Design. After the discussion, we were released to continue working on our end to end solution. The team I was on (Go Conquistadors!) got all the way down to the database second out of four teams. We were first to have all parts vertical though. Then we started to refine our design even more. And that is where we left the solution on Friday night. People Bowing Out As the ......

Posted On Sunday, November 23, 2008 11:45 PM

Super D to the B to the A – AKA Script for reducing the size of a database
The following is a script that I used to help me clean up a database and reduce the size of it from 95MB down to 3MB so we could use it for a development backup. I will note that we also removed some of the data out. I shared this with a friend recently and he used this to go from 70GB to 7GB! UPDATE: Special Note Please don’t run this against something that is live or performance critical. You want to do this where you are the only person connected to the database, like a restored backup of the ......

Posted On Friday, December 14, 2012 9:43 AM

Refresh Database–Speed up Your Development Cycles
Refresh database is an workflow that allows you to develop with a migrations framework, but deploy with SQL files. It’s more than that, it allows you to rapidly make changes to your environment and sync up with other teammates. When I am talking about environment, I mean your local development environment: your code base and the local database back end you are hitting. Refresh database comes in two flavors, one for NHibernate and one for Entity Framework. I’m going to show you an example of the one ......

Posted On Wednesday, December 12, 2012 5:08 PM

Symbolic Regular Expression Exploration
This is a pretty sweet little tool. Rex (Regular Expression Exploration) is a tool that allows you to give it a regular expression and it returns matching strings. The example below creates10 strings that start and end with a number and have at least 2 characters: > rex.exe "^\d.*\d$" /k:10 This is something I could use to validate/generate the Regular Expressions I have created with both UppercuT and RoundhousE. Check out the video below: Margus Veanes - Rex - Symbolic Regular Expression Exploration ......

Posted On Saturday, April 17, 2010 2:02 PM

Virtual Alt.NET – UppercuT Automated Builds
Tomorrow on February 24th, 2010, I’m going to be giving a presentation on UppercuT (UC) at Virtual Alt.NET (VAN). If you are interested in learning about an automated build tool that will save you time and get you to a professional build in moments, not days, you can log into the VAN around 8PM CST on Wednesday (tomorrow). You don’t even have to go to a physical place to see the presentation! You can hang out from the comfort of your own home and watch me walk through how easy it is to use UC. Here ......

Posted On Tuesday, February 23, 2010 10:09 PM

HowTo: Use .NET Code on a Network Share From Windows
If you use VMWare/VirtualPC and you want to offload your source code repositories to your host OS and code from it inside the VM, you need to do a few things to fully trust the share. I’ve found that I keep heading out and searching on this every time I need it so I thought I would write it down this time to save myself the trouble next time. CasPol Changes Save the following as caspol.bat: %WINDIR%\Microsoft.NET\Fram... -q -machine -ag 1.2 -url file://e:/* FullTrust %WINDIR%\Microsoft.NET\Fram... ......

Posted On Wednesday, December 12, 2012 1:08 AM

DropkicK–Deploy Fluently
DropkicK (DK) has been in development for over two years and has been used for production deployments for over a year. Dru Sellers originally posted about DK back in 2009. While DK isn’t yet as super easy to grok as some of the other ChuckNorrisFramework tools and offers little in the idea of conventions, it is still a stellar framework to use for deployments. DK works well in environments where you know all of the environments you will deploy to ahead of time (although not required due to the ability ......

Posted On Sunday, October 23, 2011 1:32 PM

Copyright © Robz / Fervent Coder | Powered by: | Join free