July 2008 Blog Posts
Off to Nashville

So, leaving tomorrow for the 'unofficial' King Crimson concerts in Nashville.  I hope to have a follow up post to the good comments that the Market Anarchist supplied at some point.

I don't know if I will have full concert reviews or even recaps.  Depends on the situation. Two things have occurred to me:

1) Are they going to vary the playlists?  I'm going to see them 5 times in 7 days, so I certainly hope so.

2) Especially if they don't vary the playlists, what if I don't like them?  I'm not a big fan of Thrak, so 5 times in 7 days of that wouldn't be the greatest thing.  I hope they play a bit from 'Power to Believe'.

Here's hoping.

posted @ Thursday, July 31, 2008 9:45 PM | Feedback (0)
Bad Analogy Time Again: Alt.NET Libertarians

Standard disclaimer:  Everything is analogous to everything else, just as everything is different from everything else.  So, what I'm going to do is create an analogy, an admittedly bad analogy, to explain something I think about Alt.NET.  And not really about Alt.NET per se, but just some members in it.  And not really about Alt.NET but about certain personality types.  But I digress.

Additional disclaimer: I thought of different things besides Libertarianism to make the point I'm trying to make.  I wanted to exclude things like Scientology and Objectivism, because everyone accepts those are nutty, and I don't want to imply that certain Alt.NET types are nutty.  Well, yes I do, but more explicitly (not just by implication), and really more along the lines of 'wacky' since I think 'wacky' is better than 'nutty.'  Since the statistical part of the argument is an important one, and since most people will have at least a vague idea of what Libertarianism is (or will get it from the descriptions I give that are relevant), I went with it.

Additional Additional Disclaimer: if you are a strong supporter of Libertarianism, you will most likely be offended and/or quibble with some or all of my description of it.  That's okay, just keep in mind that I don't care.  And if you are a strong supporter of Scientology and/or Objectivism, God bless you and good luck.

Recent discussions by the Austin Bobbsey Twins (Jeremy Miller and Chad Myers) brought this post about (actually, comments by Myers and Ayende on the EF Wiki brought this about, but Miller trumps Ayende in this case, for reasons that may or may not be clear later, not to mention the fact that I waited so long that I can't find the actual damn comments...maybe later, so I'll rely on paraphrasing, that can't be problematic).

There are a couple of trends that have become very apparent over the last few months, some good, some maybe not so much.  Since I'm a contrarian, I'll concentrate on the 'maybe not so much part' and try to explain it a bit by talking a little bit about Libertarianism.

Since Libertarianism is very hard to define (according to Wikipedia, and Wikipedia can't be wrong), I'm going to define Libertarianism accurately enough to fit my topic, but geared specifically to my purposes.  Libertarians, in general, emphasize the importance of individual liberty and individual action above all else, especially in the political and social spheres, and, in conjunction, to minimize or even demonize actions of the collective and/or the state.  There are many different aspects to this.  One common aspect is the belief that "The extent of my liberty ends at my fist", which is to say, I have the right to say or do almost anything, as long as it does not cause any direct, immediate harm to another person.  Thus, for instance, a libertarian might argue in favor of the legalization of drugs (they would object to the fact that drug use needs to be legalized in the first place) by stating that my potential act of shooting myself up with <insert illegal drug here> harms no other person directly.  To the potential counter-argument that there are other indirect costs/harms to the use of drugs, a convinced libertarian would respond that those indirect costs/harms can be addressed by other means, outside of banning the drug use itself.  In fact, a convinced libertarian would argue that the burden of proof should rest on those that want to ban individual actions.

It is equally important to talk about the minimization/demonization of acts by the collective and/or the state, carrying on from the previous example.  The act by a group or a government to limit or prohibit the consumption of certain types of substances is an act that limits or prohibits the liberty of individuals.  As such, from the libertarianism perspective, that act needs extensive justification or it should be expressly rejected (really, really, really convinced libertarians would say these liberty-restricting acts should be rejected always).  It's not just that I have liberties, but also that no group should have the right to interfere with them (an interesting thought is whether a really, really convinced libertarian could object to the act of one single individual to restrict the liberty of another single individual...strictly speaking, I think that should be regarded as okay, and dependent on which individual is stronger).

Having said all that, and talking about the use of drugs (just say no, kids), ignore all that, and consider the following example.

Wherever you live, you undoubtedly have a police force.   Ignoring the real life problems of corruption and whatnot, the police force exists to enforce the peace, and to do so, it limits the liberty of individuals.  Libertarians don't like police forces (at least really, really convinced ones), but the fact is that in the real world, police forces exist for a reason, and no community/state/government could exist without one, and pretty much all non-libertarians accept this.

Here's where it all ties into Alt.NET.  There are very strongly held convictions by some members of the community that sound obviously correct, and obviously positive, and obviously to be practiced.  And, I think, they are.  But just not in all situations.  And here is where the problem starts.

I'm going to use v1 of the Entity Framework as the example here since it is the common topic.  For those of you in the .NET developer community not living under a rock, EFv1 is this thing coming from Microsoft in .NET 3.5 SP1 that is going to impact everything under the sun.  SQL Server 2008 and Visual Studio 2008 SP1 are the two things most immediately to be impacted, but it looks like EF will affect/infect (had to include that) mountains of code coming from Redmond in the next few years.  And certain Alt.NET types hate it.

Why?  Well, if you want the list, go read the Vote of No Confidence and you'll get a bunch of reasons.  Reading the vote again tonight, it reads as reasonable and correct.  Except that it ignores the real world (where the 'real world' simply means the greater .NET developer community).  Most of the real world doesn't use TDD or care about Persistence Ignorance and does use Data-Driven Development.  And though I believe that TDD, so-called Persistence Ignorance (I think the term is a misnomer but that's another debate), and following DDD are all good, I think this real world 'ignorance' is justifiable and good.  In many instances, it is possible to use data-driven development to good use, and EFv1 helps with this.

And while Chad can rail (pun intended) that he is a real-world developer, his comments on the EF Wiki to the affect that one should just walk away from clients that don't fit his definition of good practices proves him otherwise.  And while Jeremy can call anyone who disagrees with him a troll (and to be clear, I have been one from time to time, but I'm generally pretty clear on when I'm being one), his mirrored insistence that anyone who disagrees with the vote is ignorant is, well, ignorant.

As a general rule, I think that almost all of the advice that one can read on the Alt.NET mailing list, or blogs of the luminaries that accept the Alt.NET label, is something one should consider following, despite all the name calling.  Except when it is wrong.

In other words, when an Alt.NET Libertarian tells you that a police force is bad, ignore them.

Or something to that effect.

posted @ Wednesday, July 30, 2008 1:35 AM | Feedback (11)
Signs You Might Be Working For A Client That Isn't On The Cutting Edge #2 in a series

You ask them if you can use NHibernate or some other popular and/or well-tested and used ORM within the .NET space, and they tell you "It isn't a good idea to use an ORM because they produce overhead."


posted @ Tuesday, July 29, 2008 11:33 PM | Feedback (1)
King Crimson 2008 Groupie Tour

King Crimson begins their mini-tour, celebrating 40 years of Crimson-hood, and bearing new member Gavin Harrison from Porcupine Tree next week here in Chicago at the Park West for three shows.

Except they actually begin this weekend with two 'warmup' shows at the Belcourt Theatre in Nashville, TN, since when you think Nashville, you obviously think of the Grand Ole Opry and King Crimson (I think the real reason is that Adrian Belew lives nearby).

I will be going to Nashville to catch the two shows, and will be attending all three shows next week in Chicago (can't afford the time/money for the Philly and NYC stops), making it 5 shows in 7 days, and me a groupie.

posted @ Tuesday, July 29, 2008 9:59 PM | Feedback (1)
Isn't That Special - Posting comments here

So, I was trying to add a comment to Ayende's blog the other day, and discovered that you couldn't do it in Opera 9.51.  He's also using some version of Subtext, so I started testing mine out.  Sure enough, can't post a comment using Opera, but since there are only 7 of us using it, that's not a big problem.  The bigger problem is that you can't post comments using (some versions) of IE6.  It doesn't throw an exception like Opera does, but it basically never returns after pressing the magic button.  Only IE7 and Firefox work reliably.

Since this is a massively low traffic site, I'm not sure when I'll get to fixing it.  Could be my first official open source patch.

posted @ Sunday, July 27, 2008 3:56 PM | Feedback (0)
Developer Friction is Relative

So, my buddy Derik Whittaker posted about MSTest and some problems he had with configuring stuff when using StructureMap.  The post was entitled "MSTest, why I hate you.... You cause me too much friction."

Now, my main point is not specifically connected with the details of Derik's post, so I could just leave that alone, but I can't resist.

Basically, Derik (who is used to using NUnit and MBUnit) was running into problems with getting MSTest to work nicely with StructureMap.config files.  He even asked the Austin Bobbsey Twins (one of whom wrote StructureMap, the other knowing as much about it as anyone I know other than the one who wrote it) for help, but in the end, basically moved the config data to app.config and went with that.  Read the posts for the details.

Now, if you read the comments, you'll discover that there are easy solutions to the problems Derik had.  Not to put too fine a point on it, but basically, he didn't RTFM, and incorrectly expected MSTest to work as NUnit did, and when it didn't, it caused what is called 'Friction' (which I don't know is ever defined anywhere, but it's basically those things that make you stop your productive work and have to deal with other things...there, that's vague enough). 

He could, of course, have entitled his post something like "Problems I've Had With MSTest and StructureMap.Config" but that would have been boring.  Better to talk about hating MSTest and get some extra kudos at the next 'Alt.NET Self-Congratulatory Back-slapping Workshop' or what-have-you.

Leaving all that aside, as one of the comments makes clear, the cause of the friction was because he expected MSTest to act like NUnit, as he had a lot of extensive experience with NUnit.  Without that previous experience, another user was able to get the problem solved much much quicker.

And I think this is actually a much more pervasive thing.  If you have followed Rob Conery's MVC series, you have watched an episode (one of the best, if longest) with Jeremy Miller, once again about StructureMap, and there is a moment where he is supposed to grab control of the session and start coding, but Rob's Visual Studio install doesn't have ReSharper, and so things comes to a screeching halt, since Jeremy is one of those luminaries who are self-addicted to ReSharper (which shouldn't be mis-read as a criticism, I understand the issue).  For someone like myself who has tried and tried and tried (and I'm giving it one more shot with ReSharper 4.0) ReSharper but hated it every time (I think because of how it reacts with aspx pages for a large part), working in VS 'nakedly' is easy.

I think this is important because Alt.NET people LOVE to talk about reducing friction, but always seem to think that this is some objective thing, as opposed to understanding that friction is often (almost, but not quite) always tied to their previous practices and experiences.

None of this should be understood as a post saying that MSTest is as good or better than NUnit.  AFAIKT, it isn't.

posted @ Saturday, July 26, 2008 6:33 PM | Feedback (1)
New Rig

So I think I'm finally up and running on my new main development system.  My desktop (not my computer desktop, but my actual desktop) looks like this:


This is actually remarkably uncluttered for my desktop.  Which is why I'm not showing what is on the right.  The picture shows my Maxthon browser on the left, and installing/running Timeshift on the right.

The machine itself is a PowerSpec E371.  The install process has not been the smoothest one.  I almost returned the machine.  It comes with XP installed, but I've been using Vista since January 2007 with almost no problems, so I used the included OEM disc to load Vista Ultimate 64-Bit.  Unfortunately, that did not go well.  The machine has a hardware raid system, and it looks like it doesn't like Vista 64-bit (which is really annoying since the rig is upgradable to 8GB memory).  The included floppy with the Raid drivers (a floppy?  The machine doesn't have a floppy drive, so not sure what to do with it) says 'for XP and Vista 32-Bit'.  I suppose I could have looked online to see if there were 64-bit drivers for the bios that I could...somehow...install.  Really kicking myself actually for not thinking of this.

Anyway, with 64-Bit the desktop (the OS desktop, not my actual desktop) would lock up hard.  Not blue screen, but lock up completely so that you couldn't do anything.  Good old hard power reset.  Would happen twice a day at least.

So, I installed Vista 32-Bit and for the most part, it has been okay.  I do get more crashes than I have ever had (of the minor "check online for a solution and restart the program" for almost always background processes) with any of my Vista  laptops.  I've got 30 days to return in case it is just a bad unit, but it takes me 3-7 days (depending on mood) to set up my dev machine, so if it isn't really bad, I'll probably go with it.

Sadly, the main reason I chose to stop using a laptop for my main machine was because I wanted to play Bioshock, and the server machine that I previously had it installed on before upgrading it to Windows 2008 64-Bit didn't like it.

What the hell, I like it so far.  Since I've *never* had problems with Vista, I guess this is the time for the Computer Gods to get back at me.

posted @ Saturday, July 26, 2008 6:12 PM | Feedback (0)
Signs You Might Be Working For A Client That Isn't On The Cutting Edge #1 in a series

You ask if you can use JQuery for some important javascript work on a single isolated page and they tell you "We don't want to link to open source libraries for that because we would have to put in extra work to troubleshoot it if it didn't work."

Oh my.

posted @ Wednesday, July 23, 2008 1:01 AM | Feedback (2)
Signs You Work For A Company That Hates You #1 in a series

This one is pretty obvious, but with the sneaky twist.

Suppose you are on a team that has uber-releases that require up to a year to plan, execute and deliver.  They require multiple divisions/departments to sign off on every step, and everything is a matter of massive debate.

When do you schedule the release?

Now, everyone will leap to the obvious answer, "Christmas."

But that's obvious.  That makes it too obvious that the management hates its employees.  When would you schedule it to convey the same hatred, but be just a *little* less obvious about it?

There are multiple correct answers, but one is: Mother's Day.

I mean, who cares about that?  None of the 70+ people required for supporting the uber-weekend-release care about that.


Digression: in either 1988 or 1989, I worked at a Houlihan's restaurant as a line cook.  It was a corporate type restaurant, no better or worse than any other I guess.  Anyway, the General Manager of the place was a Jehovah's Witness, and so, as such, he didn't believe in Christmas (that's probably inaccurate, but whatever), and so decided to open the restaurant for Christmas.  We were located in a strip mall type place, which, among other things, included a movie theater.  And, as it turns out, that Christmas Day was the opening day for The Godfather, Part 3.

I'm going to make up the numbers since I obviously don't remember exactly right now, but if the place did, say, 100 covers on a weekday night, 500 would be a pretty busy number of covers for a weeknight.  We were the only restaurant open anywhere in the area, and so as the happy (or not so happy, since IIRC, the Godfather Part 3 sucked) movie-goers came out of the theater, they came to us.

Now, I don't know for sure, but I think we must have done at least 1000-1500 that day/night.  We started running out of things, and so just started making up dishes to offer as alternatives (once the fried mozzarella strips ran out, we started breading and frying anything that was edible, for instance).

So, as it turns out, there are times when opening for business on Christmas can be profitable.

posted @ Friday, July 18, 2008 9:00 PM | Feedback (0)
LINQ to SQL Hack Solution to Changing LoadOptions

I keep forgetting where this link is, so saving it.


posted @ Tuesday, July 01, 2008 2:16 PM | Feedback (0)
Could not load type XXXX from custom assembly

There are many different things that can cause this, but here's one.

If you have an older version of a DLL in GAC, then any running code will apparently look there first, even if you have an updated version in the bin folder of your application (I could have sworn it was the other way around, but apparently not).

So, get rid of the old version from the GAC, make sure your reference copies the DLL local, and that should take care of it.

Again, just one solution out of many.

posted @ Tuesday, July 01, 2008 11:36 AM | Feedback (0)