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.

http://en.wikipedia.org/wiki/P_%3D_NP_problem

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 http://tempuri.org/:SomeOperation. 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. http://stefanoricciardi.net/2009/10/22/making-wcf-serializer-work-with-circular-references/

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: http://msdn.microsoft.com/en-us/library/cc656708.aspx, 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

http://stackoverflow.com/questions/319835/new-aspnet-charting-controls-will-they-work-with-mvc-eventually#320891

http://www.codecapers.com/post/Build-a-Dashboard-With-Microsoft-Chart-Controls.aspx

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. http://www.syncfusion.com/products/user-interface-edition/aspnet-mvc/Chart

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: http://code.google.com/apis/chart/

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

SWOT

SWOT analysis

My analysis of a SWOT analysis is this:

Strengths: We like to identify our strengths.  Identifying the competitors strengths is done grudgingly.

Weaknesses: We don’t like to admit weakness.  Especially when two companies are merged or two departments are looking at the performance of one another.

Opportunities:  Here is where the pie in the sky stuff comes in.  You have to be disciplined when identifying these.

Threats:  This is a subjective subject.  One never has all the information on competitors or rivals.

SWOT analysis is a very useful tool when done correctly.  Just like anything in business, one must approach it professionally and with a healthy dose of realism.

June 13, 2010 at 2:06 pm Leave a comment

Studies have shown that UI matters.  If you make the user experience enjoyable, employees are more productive.  Microsoft has given us some wonderful new tools for creating beautiful UI in WPF.

Here are two areas where subtle changes can vastly enhance the experience:

  • Animations:  In real life, things don’t magically appear and disappear.  Yet in most computer applications windows and dialog boxes do just that.  For humans it is unnatural.  Fade in, fade out, slide in, slide out, and small movements all help to cue the user to use the app in ways to get the job done efficiently.
  • Color gradients: In real life, things aren’t one solid color.  As light hits objects at different angles, shadows and gradients result.  Our applications look more natural with color variation.  Plus, wouldn’t it be nice if every window wasn’t battleship gray?

June 5, 2010 at 4:04 pm Leave a comment

Are you a light-weight worker?

It’s often easy for us to add more process or paperwork to our jobs when things don’t go perfectly.  We figure if we can just put one more control in place things will go smoothly in the future.  But does it really help?  Some amount of process is necessary of course, just as there are necessities in all aspects of our lives.  As a backpacker do you really need a fifty pound pack?  Long distance hikers get ruthless about removing weight from their packs.  I tend to like new tools for my job, but are they really adding productivity or just adding to the psychic weight and stress of the job?  For example, TFS can support very sophisticated software release procedures, but should we implement all the features it has just because they are there?  Obviously not.

“Society perceives the owner of a big house which can hold more possessions as more successful, when in fact he may be held in bondage by high house payments, taxes, utilities, repair costs, and a general lack of freedom.” – Larry McDuff

Here’s an exercise to help you simplify:  keep a record of all the things you do at work for the next two weeks.  Then go thru the list and see what is absolutely necessary.  Eliminate all other activities.  You just might get back a few more hours every week.

“All we need to know is that it’s possible.” – Keith “Wolf”

May 15, 2010 at 4:43 am Leave a comment

Older Posts


Categories

  • Blogroll

  • Feeds