Back in Gear

What has happened in the past seven years?  It is amazing that I haven’t posted on this blog for that amount of time!  Well, I’m back and ready to dig in again.  This blog was not intended to get me rich quick or to divine any deep wisdom upon the masses, it was simply a tool for me to store my career experiences for the benefit of my future self.  With that goal unchanged here are a few tidbits.

My friend Nick has written three fictional books, all of which I have edited.  The ramp up time to become a famous author is quite long and it is tough for an aspiring author to persevere.  I suggested that he write a book of non-fiction, something in the way of philosophy, which his fiction books are themed around as well.  His response was a question: Is the book “Zen and the Art of Motorcycle Maintenance” fiction or non-fiction?  Good question.

I had read this book back in my twenties, so had to brush up on my memory of the book.  It does have both elements of fiction and non-fiction in it: A story about a cross-country motorcycle trip for a father and son interspersed with philosophical teachings about quality.  I had first read this book after reading “The Dancing Wu Li Masters”.

I am tempted to reread these two books, but they have to be in audio format these days.  Life simply doesn’t afford me time to sit down and read the old way any more.  I see from this blog that my trek to find meaning is at least eight years old, and these books make me see that it is much longer!  Lately, I have been deep into Sam Harris’ podcast and books.  I also started in on the ‘Very Bad Wizards’ podcast recently.  I will get to the bottom of this question about meaning (tongue in cheek).


November 29, 2017 at 2:10 pm Leave a comment

Am I a Programmer or Scientist?

It is always fun when my daily work intersects with some real computer science. This week I was asked for an answer to this problem:

Please find a set of credit card charges that sum up to a given total. It seems that the bank disagrees with our records on the amount deposited for the day. This is a bit of a hard problem, but is solvable.

My program has been running for three days and hasn’t halted yet!

March 19, 2011 at 4:49 pm Leave a comment

Hubris vs. History

I’ve come to the conclusion that when estimating software, one should go with historical information whenever possible.  Every project is different, so our first instinct is to ask each other for estimates on this “new thing”.  We don’t think that our past is relevant.  The main reason this doesn’t work is because software developers are too optimistic when it comes to the number of hours it takes to do a task.  We are either too optimistic or our pride won’t let us admit some task that seems simple on the surface often has an ugly underbelly.

In the end, it will be much more freeing if we just use historical information whenever possible.  Then the hubris of the moment won’t handcuff the projects success.

October 10, 2010 at 2:17 pm Leave a comment

Circular References in WCF Services

If you have two classes that reference each other and you try to send them via a WCF service, you may get the following exception:

GlobalExceptionHandler: Unexpected Exception in WCF Service
System.ServiceModel.CommunicationException: There was an error while trying to serialize parameter The InnerException message was ‘Object graph for type ‘MyClass’ contains cycles and cannot be serialized if reference tracking is disabled.’

To fix this you could mark each class with an attribute [DataContract(IsReference=true)], but then your data may not be passed when you want it to.

It would be nice if you could just mark each individual property with an attribute like [DataMember(IsReference=true)]. This MSDN reference suggests you can do just this:, but in practice it does not work.

I thought about creating separate data transfer object classes that mimic my real classes, but without the circular references. In the end I decided against this due to all the duplication of code.

In the end my solution was to take out all parent references in my classes. This creates a one way chain of classes with no circular references. All operations that are made on an object will then require that the parent’s id be known at the time of the operation. We’ll see if this design decision hold up.

September 2, 2010 at 4:53 am Leave a comment

When do you ask for help?

How long do you research a problem before you ask for help? One of my old supervisors had a rule of thumb that if you don’t have an answer after fifteen minutes, ask. I’ve heard that same rule of thumb from others recently.

I think 15 minutes is too short. I would put the time at one to two hours. Otherwise you will ask questions that are too simple, or that you don’t know enough about to ask intelligently. Plus you may be wasting two people’s time instead of just your own if you ask too quickly.

This is balanced by the other extreme. You should not spin your wheels for days on a problem before asking for help. You may be going down the wrong road as well. Barking up the wrong tree, as it were.

So I say spend one to two hours researching, googling, and thinking about the problem before you involve others on your team. What do you think?

August 26, 2010 at 4:34 am Leave a comment

Charting for ASP.NET MVC 2

I did a little research on possible charting tools for ASP.NET MVC 2. Here’s the current state of the space in my estimation for normal charting:

Best option:

For a simple line chart, I think the cheapest and easiest option for charting is probably to just use Microsoft Chart Controls.

For an MVC web app there are two solutions using these Chart Controls:

· The cleanest from an MVC perspective: render the chart as an image

· Can also use aspx code-behind if chart needs to be dynamic

Alternative option:

If we need more complex charting: Essential Chart for ASP.NET MVC is a nice package. It offers an innovative data object model that makes it easy to populate a chart with any kind of data source. Essential Chart features an advanced styles architecture that simplifies complex multilevel formatting.

Radical option:

The Google Chart API lets you dynamically generate charts with a URL string. You can embed these charts on your web page, or download the image for local or offline use:

Not really an option:

Devexpress XtraCharts – For MVC 2 it is recommended that you use a ChartControl (WinForms) instance to produce a chart’s image. This solution is no better than MS Chart Controls.

Dundas Charts – At this time MVC is not supported. The milestone on whether they plan on supporting MVC has not been determined by their development team. (MS Chart Controls has roots in Dundas.)

August 15, 2010 at 6:34 pm Leave a comment

Summarize your experience with programming, in 10 words or less

Closed on SO, repeated here for my own entertainment 🙂

  • It works on my machine
  • Programmer: an organism that turns caffeine into software
  • I enjoy solving problems.  There’s always something new
  • Code Monkey have boring meeting with boring manager Rob
  • SELECT * FROM Users WHERE Clue > 0
  • I learned it. I liked it.  Then I burned out.
  • Hours of tedium and frustration interspersed with moments of brilliance
  • You’re doing it completely wrong

June 24, 2010 at 9:59 pm Leave a comment

Older Posts


  • Blogroll

  • Feeds