Thursday, February 03, 2011

In an open letter to the .NET community, RedGate announces Reflector is going commercial. Worse yet, the current version is set to expire after the 1st quarter of this year! I had reservations about the original takeover by RedGate - looks like it was right to be concerned.

It would be ideal if they would make a Community or Express version, with/without ads, with/without restrictions on business use. At the very least, they should make an old version perpetually free, as some other vendors have done.

If something useful but somewhat niche goes commercial, can MySql be far behind? Is Oracle any less profit-driven than RedGate?

Thursday, March 05, 2009

The problem with “You are not your code”

There is a commonly expressed idea (a recent example here) that can be summed up as “you are not your code”.  In short, if someone tells you “this is bad code”, you should rejoice, because it’s an opportunity for improvement. 

When expressed, everyone rushes to agree with this sentiment.  And so do I.  It is very difficult to improve if you cannot listen to criticism and make changes based on it.

But there is a another side to this that is rarely expressed.  When someone delivers this message, you are actually the person who wrote the code.  You are not the code, but you are a person who wrote bad code.

When you receive this message, it should be not only a time for rejoicing in the learning opportunity, it should also be a red flag.  You do not want to continue to be the person who writes bad code. 

Consider the situation where this message is delivered in a code review session.  The team is gathered, the code you wrote is being projected on the wall, and, well, it’s baaaaad.  People are snickering behind their hands or WTF-ing all over the place.  How many times do you want to hear “this is bad code”?  Put another way, how many times would it take before you would begin to be labeled as “the guy who writes bad code”?

No team wants that guy as a member for long, whether learning is taking place or not.  It’s a drag on everyone else’s attitude and on the team’s output – someone is going to have to write the good code to replace the mess you wrote (or take the time to supervise your rewrite).

So, go ahead and use constructive criticism to improve.  But don’t let yourself be in a position where you keep receiving such criticism. 

You’ve got to learn, and not just from code reviews.  Take the initiative to get out of this penalty box.  Take some time to study the code of team members who don’t get criticized, because they write good code the first time.  Read a book, subscribe to some RSS feeds on coding, do some code katas.  Refactor, using some better or clearer techniques from the language.

Monday, February 09, 2009

The basic syntax of F#

Here is a nice, concise overview of the minimum syntactical constructs you need to get a decent F# program up and running.

There are a couple of links to other posts that describe some features in more detail.

The basic syntax of F# - keywords and constructs

Monday, November 24, 2008

Visual learning

Sometimes a simple visual makes an abstract concept more understandable.  I find more and more that I like watching short webcasts about new concepts instead of just reading prose about them.

If you haven't tried it, check out Dimecasts for a collection of just that kind of presentation.  I find it great to not only see code, but also to hear why it is being written that particular way. 

Here's one I just ran across that explains pointers succinctly and clearly.

Learning about pointers from Binky

Wednesday, August 20, 2008

The Future of Reflector is Red Gate

In an interview with Lutz Roeder and James Moore entitled The Future of Reflector, we find out that development of Reflector is being taken over by Red Gate Software.  The promise is that Reflector will continue to be "available for free downloading".  Will source code still be available?  Not discussed in the brief transcript of the interview. 

It will be interesting to see what happens to such a widely-used tool.  How will the community of add-in writers react?  Will there be a hue and cry from the Open Source community at large?

Monday, May 19, 2008

Unit testing static classes

Cibrax describes a method to unit test static classes.  The example given applies to WCF, but it can be applied to anything that would otherwise be difficult to mock.