Professional Programmer Notes

or just call this my soapbox


leave a comment »

Overview of ZeroMQ from pieterh
This slideshare makes me wonder about the different ways ZeroMQ could allow me to scale .NET applications?

Written by curtismitchell

April 16, 2013 at 12:32 pm

Posted in Uncategorized

Tagged with , ,

To whom it may concern

leave a comment »

For the last four years, this country has been governed by an African-American president. A little more than four years ago, (soon-to-be) President Barack Obama excited a large variety of citizens of this country – particularly, the citizens that do not share the same racial or gender demographics as the previous forty-three presidents. We were excited by his charm. We were excited by his cool. We were excited by his race. More importantly, we were excited by his priorities, his promises, his resolve, and his confidence that he could lead this country into a much brighter, more just, and more united future.

That was then.

Today, I reflect back on the presidency of this man and I am amazed. I’m not particularly amazed by his policies or compromises. But, I am amazed at the cool way he has conducted himself in the face of a country that has shown a very hateful side of itself.

When the ink dries on the pages written about President Barack Obama, the record will reflect the uprisings of Americans that simply had enough. The books will reflect photos of citizens that united against this president, with signs scarred by hate-speech and caricatures of our president with exaggerated lips and ears. And, sadly, somewhere (not just here), a story will be written about the gas station in NC where a staged lynching of our president and other African-American men was put on display for all to see.

I don’t live too far from that gas station.

Today, I feel like me and my family were just threatened. In my head, I hear the voice of some of my more conservative associates reminding me that no law was broken by the person(s) responsible for this display. However, when I consider the intent of the messenger(s) and the history of Black Americans and lynchings in this country, I see this as an act of terror.

I see this as yet another very serious offense that will go unpunished, unexplored, and unquestioned. Why? Because it is not uncommon.

In turn, I’ll look to the current leader of these United States for something I can’t get from a Mitt Romney or Paul Ryan. I’ll look to him for an example of how a man could conduct himself in the face of hate. I’ll be cool. I’ll keep my charms. And, I’ll do the terrorists a favor by not being fearful or terrified.


Written by curtismitchell

September 5, 2012 at 10:22 pm

Posted in Uncategorized

On a nodejs kick today

leave a comment »

I’ve recently increased my interest in nodejs. Today, I revisited a framework called Mojito by Yahoo. I first learned about Mojito on, an awesome site for the IT-minded.

Mojito uses nodejs. It is a framework for developing applications in javascript. Interestingly, Yahoo also developed a project called Manhattan that serves as a platform-as-a-service for your Mojito applications – similar to Nodester.

As great as that all sounds, there is more! Check out this 5 minute demo by the lead engineer. It’s interesting stuff.

Cocktails in Action

Written by curtismitchell

May 16, 2012 at 12:41 pm

Sequence Diagrams made easy…and fast!

leave a comment »

Sequence Diagrams made easy...and fast! would be straight buttah if this were 1990

Seriously, click on the (above) image and see how easy it is to create sequence diagrams from your browser.

Also, if you’re looking for other types of UML diagrams, checkout (below).

Class, Activity, and Use Case Diagrams from Yuml

Written by curtismitchell

December 7, 2011 at 8:29 pm

Posted in web

Tagged with , ,

SEWDI (Someone Else Will Do It) Disease

leave a comment »

What is it?

A productivity block that often affects the work of developers that habitually search and find solutions to technical problems.

History (feel free to skip to “How it affects us” below)

In the past, research was very time consuming.  It often involved 
  • traveling to a library that may not have computers
  • learning and utilizing the Dewey Decimal system to increase efficiency
  • identifying possible books and/or periodicals on the topic
  • reviewing many sources to adequately research the topic and add depth to the research
  • compiling the research into a format to be reused
  • consuming and/or sharing the research
Then, the Internet was invented and things started getting better!
Today, we can simply
  • open a web browser on one of the many computers available to us (even at libraries now)
  • type a term or phrase into one of many search engines
  • click on a few of the links that were instantly presented 
  • use what you learned and move on (no need to compile it or save it because we can always just search and find it again later)

In other words, research is relatively cheap and easy.

How it affects us

The ease of research has impacted how developers respond to problem-solving.  As professional problem-solvers, our natural response pertains to how the problem can be solved.  This helps us identify an approach to solving the problem that we think might work.  That’s the easy part. 
Next, we have to actually do the work to prove the approach solves the problem.  That’s the hard part — especially when there is often an easier way.  Instead of doing the implementation work, we research solutions to the problem.  Often, we find solutions that can be implemented with little or no effort.  We call that efficient.
Meanwhile, we are conditioning ourselves to be dependent on this readily available resource known as the Internet.  In addition, we are subconsciously depending on the hard work of strangers.  Given enough successful Internet searches, we start to believe that failing to find a response means one of two things:
  1. Our search terms need to be refined
  2. The solution is not available … yet.
This means either we need to approach our search differently, or wait until someone comes along and solves our problem.  Either way, actually solving the problem becomes the last option!
That’s the magic of the Internet and the illusion of productivity that hides procrastination.  We will “work on solving the problem”.  We are professionals after all.  It’s just that “working on it” takes on a new meaning like 
  • refining our search terms
  • asking colleagues how they solved similar problems
  • or, distracting ourselves with a new problem until someone else solves the first problem – thus, this blog entry 🙂

Written by curtismitchell

December 7, 2011 at 8:11 pm

Posted in Uncategorized

Tagged with ,

Don’t let my face stop you from giving to a good cause

leave a comment »

Hey You,

As you may or may not know, I’m participating in a very exciting event called Movember. It is when people everywhere set their own pride and vanity aside, and grow mustaches throughout November to raise money to help combat common Men’s health issues like Prostate Cancer.

One requirement was to start the month cleanly shaven. Here is me on November 2nd:

Clean shaven

Look Ma! No mustache!

Here is what I looked like on November 11th:

Barely a mustache as of 11-11-11

Stache still missing

If the whole purpose of Movember is to grow a mustache in order to raise awareness, I am failing badly. I can’t help it. My face just isn’t cooperating.

However, I still owe it to you, LexisNexis (my company and Movember team), to provide something that will raise awareness and money for the cause.

Without further ado, here are some pics of me with potential mustaches.

Michael Jordan Stache

My Michael Jordan Stache

Michael Jordan Mustache

Michael Jordan's Hanes Mustache

My Juan Valdez Stache

My Juan Valdez Stache

Juan Valdez

Juan Valdez

Obviously, I need help. I’m borderline desperate. Since my mustache refuses to work with me on this, please work with me on this. Checkout my Movember page and donate dollars to the cause.

UPDATE (11.18.2011)

Hulkamania Stache

Written by curtismitchell

November 11, 2011 at 11:32 am

.NET Devs: Make |DataDirectory| resolve to a path of your choosing

leave a comment »

I’m working on a desktop application that uses and embedded database. In my case, I’m using Sql Server Compact Edition 4.0 with Entity Framework 4.1. This tip could also apply to usage of Sqlite. In my app.config file, I have a connection string that tells my application to put the database in the “Data Directory” by using a syntax similar to this:

    <add name="DbConnection"
         connectionString="data source=|DataDirectory|\MyDb.sdf"
         providerName="System.Data.SqlServerCe.4.0" />

In ASP.NET, the |DataDirectory| token would expand to an App_Data folder under the root of my web application. For desktop applications, it is the bin directory. But, what if I wanted to point to a different location?

It turns out that DataDirectory is a macro. It is resolved using the AppDomain. The following line of code allows me to set the DataDirectory path prior to using the connection string:

AppDomain.CurrentDomain.SetData("DataDirectory", @"C:\temp\data");

That would expand my connection string to: data source=C:\temp\data\MyDb.sdf

Written by curtismitchell

June 21, 2011 at 2:14 pm

Posted in Uncategorized

WPF’ing around with Boo and external xaml files

leave a comment »

Here is a snippet of Boo code (formatted with Python syntax highlighter) that will load a xaml file into a WPF Window:

import System
import System.Windows from PresentationFramework
import System.Windows.Markup from PresentationFramework
import System.IO

class XamlWindow(Window):
	def constructor(name):

	def load_xaml(name):
		xaml_file = File.OpenRead(Path.GetFullPath(name))
		self.Content = XamlReader.Load(xaml_file)


See for reference.

Alternatively, here is the equivalent IronPython code:

import clr

from System.Windows import Window, Application
from System.Windows.Markup import XamlReader
from System.IO import File, Path

class XamlWindow(Window):
	def __init__(self, name):

	def load_xaml(self, name):
		xaml_file = File.OpenRead(Path.GetFullPath(name))
		self.Content = XamlReader.Load(xaml_file)


Lastly, here is an example xaml file

    <Label Content="Hello World" />
    <Button Content="Clickable" />
Note: There is no UserControl or Window element and the namespaces are defined on the root container, the StackPanel.
screenshot of very simple wpf app

Written by curtismitchell

May 22, 2011 at 5:39 pm

Posted in .net

Tagged with , , , , ,

HP Mini with Ubuntu needs Firmware upgrade for Wireless

with 2 comments

I recently installed Ubuntu Netbook Remix on my HP Mini 311.  The OS is beautiful.  It is a great fit for what I use my netbook to do: web development, view videos, and surf the net.

Unfortunately, I realized my wireless adapter was not working after installation.  It had a message that said something about needing a firmware upgrade.

I did some soul searching and internet surfing and found an answer to the problem! 

Open a terminal and execute the following command:

sudo apt-get install –reinstall bcmwl-kernel-source

After a restart, my problem was solved. 

I found this answer here:


Oh yeah – I’m also selling the netbook to make room for my next toy.  Info is here:

Make me an offer.

Written by curtismitchell

December 3, 2010 at 5:23 pm

Posted in Linux

Tagged with , ,

VMWare VMDebugger “unable to detect current startup project”

leave a comment »


I spent many small packets of time trying to find a solution to this problem over about two months.  Luckily, I stumbled across an answer that actually worked for me.

Problem: Visual Studio 2008 with VMWare VMDebugger integration does not work.  When I try to launch debugging in a VM, I get a message that says “Unable to detect current startup project”.

Solution:  Remove any installer projects that are in the solution.

Source: Read MartinMoesby comment here.

Written by curtismitchell

November 9, 2010 at 5:48 pm