Posts
832
Comments
691
Trackbacks
1
October 2008 Blog Posts
The ‘end’ of Linq to SQL

You can read the details here.  They don’t explicitly say that it is dead, but, basically, it is.

From a product placement perspective, this makes a lot of sense (then again, I’m hopped up on cold medicine, so judgment might be sketchy right now).  From a developer perspective, this kind of sucks.  I have a major project that uses it, so it is rather annoying.  Since I have my entity layer sit on top of my Linq to SQL data layer (which frankly everyone should have been doing anyway already), it’s an easier path for me to migrate to EF or NHibernate or whatever, but it is still annoying.

I think the likelihood that Linq to SQL will make it to open source status is pretty remote, so I wouldn’t plan on that becoming a reality.

posted @ Friday, October 31, 2008 7:01 PM | Feedback (0)
Marillion’s Happiness is the Road, a review

Update: forgot to mention, if you live in the US and/or UK, you will be able to get the release in stores, otherwise head to http://www.marillion.com/home.htm to purchase.

 

I won’t go through every single song, since there are 20(21 if you count the hidden track) of them, but I will do a fairly full review.

1st digression: I find it massively annoying when someone uses simply pop psychology to analyze a popular work.  One thing I have learned through life is that the intentions and motivations of almost all human psychology is complicated, and so almost by definition, trite and clichéd pop psychoanalysis is just that.  “He’s unhappy because he never earned the respect of his father”, “she’s unhappy because she never had the love of her father” (as a side note, bad fathers are a major cause of unhappiness….I’m perhaps more attuned to this than some because I had a good one, but it’s a common cause/thread in the lives of so many people that I’ve met/know that Dad was a schmuck..but I digress again), but these are usually all simple explanations for more complex situations.  And very annoying.

Now that I’ve said that, a lot of my review of Happiness is the Road will revolve around somewhat simplistic analysis.  I’m added in that Steve Hogarth, lead singer and lyricist of Marillion, has talked publicly about some of the motivations/intentions behind some of his songs, and the public marketing for Happiness is the Road has mentioned a book that Hogarth found inspiring (called 'The Power Of Now' by Eckhart Tolle, which I haven’t read but am inclined to think from the description is complete twaddle).  So, I’m not completely pulling all of this out of my behind.  I also want to make clear that in my review when I am doing some trite pop psychoanalysis, I am absolutely *not* talking about myself in any way, shape, or form.  Absolutely not.

One other digression before I get to the actual friggin’ review:

When I taught Intro to Philosophy, I often started off the semester by listing something like the following three propositions on the chalkboard;

- The Earth rotates around the Sun.

- Capital punishment is immoral.

- The Beatles are a better musical group than Duran Duran.

I did so because I wanted to get the students to think about whether there was any difference in the objectivity of any of the statements.  They would typically be willing to accept the first statement as objective, sort of mixed on whether the second statement was objective, and generally resistant to the idea that the third statement was objective.  Until the last day of the semester, I never revealed my own opinions on the matter (ignoring the examples I gave, I believe statements about physical facts, moral positions, and ‘artistic’ positions are usually equally objective.  It would take too long to explain all the reasons why, but focusing on the statement that “The Beatles are a better musical group that Duran Duran,” I pointed out what seems to be an obvious fact, that I can personally prefer something while also accepting that my preference does not contradict saying one group is better than another.  This explains why Mystery Science Theater 3000 worked so well.  The movies they spoofed/ridiculed really did suck, but you could prefer to watch them precisely because watching them being spoofed/ridiculed was enjoyable.  Similarly, to refer to a recent blog post, I can say that I enjoy “Midnight Blue'” by Lou Gramm while at the same time acknowledging that the enjoyment is a ‘guilty’ pleasure, because I also know the song kind of sucks.  If there was nothing objective about judging musical groups or songs or whatever, I couldn’t say this.  Since this is a blog post, I won’t go more into the philosophical defense of this, but just leave it as is.

I include this because almost all of the songs on Happiness is the Road are about relationships.  If you aren’t in the mood or aren’t inclined to like songs about relationships, then the lyrical content of this work is probably not necessarily going to be something you think is the greatest thing in the world.  Disregarding how I think about relationships, I think that a lot of popular music is at its greatest and most impassioned when about failed relationships.  There’s a reason for this:

Next digression: Stephen Wilson is the lead guitarist and creator of Porcupine Tree (among other bands…more on that in another post) and in some webcast interview, the interviewer remarked to him that a lot of his songs seemed to be about failed relationships and dealing with the outcome of them.  From outward appearances, Wilson is not a depressing sort of guy.  He’s engaging, somewhat upbeat, etc.  Wilson’s response (and I’m paraphrasing of course) was brilliant, or at least I get it: “When life is going well, I don’t feel like writing music about it.  I enjoy living it.  When it isn’t going well, I feel more like writing music about it.”  Exactly.  Not that I know anything about this, of course.

So, on to the review.

Almost. 

There are (at least) two themes that have shown up in recent Marillion works that re-appear in Happiness.  The first requires revisiting ‘Neverland’ from their Marbles release:

“Some people think I'm something
Well you gave me that, I know
But I always feel like nothing
When I'm in the dark alone

You provide the soul, the spark that drives me on
Makes me something more than flesh and bone

At times like these
Any fool can see
Any fool can see
Your love inside me”

From webcast interviews, this was a love song to his wife of (however many double-digit years at the time). 

You can immediately guess that they then got a divorce.  Life is fun, isn’t it?

Anyway, on the otherwise forgettable Somewhere Else release, the one great song was, well, ‘Somewhere Else’ where Hogarth reflected on what had happened:

“And I have time to look at myself
Look at myself
Look at myself

And I've seen enough
I've seen enough
Everyone I love lives somewhere else
Everyone I love lives somewhere else”

I didn’t appreciate the song half as much when first listening to it as when I watched the YouTube live performance.  Hogarth ‘emotes’ the hell out of the song, if that makes sense, and Rothery’s guitar work is brilliantly done (it’s a Gilmour-esque performance in the sense that he never plays a million notes a second (which has never been his style), but what he plays is perfect for the song, expressing the desperate hurt of the lyrics).

So, on Happiness, ruminations on failed relationships abound.

The second theme involves the notion of living for the moment, which appears on Marbles in “Don’t Hurt Yourself”:

“Put it away this dream you can't stop dreaming
Put it away this anger and desire
The open road is infinitely hopeful
Take all those memories and throw them in the fire

And don't hurt yourself
Don't hurt yourself
Don't hurt yourself anymore”

As I’ll discuss later, I think this theme is garbage, even harmful psychologically , but, it is there.

With all that in place, the actual review.

Happiness is split into 2 CDs.  The first, Volume 1 : Essence, takes up the first 12 tracks (I thought previously that it ended with “Happiness is the Road” but there is a hidden track to provide space and then “Half Empty Jam” ends it.  The second is Volume 2 : The Hard Shoulder.  The first CD is the ‘concept’ album, while the second is the collection of songs that didn’t fit into the first, or whatnot. 

I will talk about individual songs.  If I don’t talk about a song, it doesn’t mean I hate it (though I’ll mention if I do hate a song), it just means I have even less useful things to say than normal.

Essence, Track #2 - “This Train is My Life”

A very nice song about embarking on a journey with someone (see, there’s this train, and….you get the idea).

“So take my hand
Squeeze it tight
Make some light
In the darkness
I'm glad you came on this trip
Don't lose your grip
Don't lose your grip
This train is my life
This train is my life”

Rothery unleashes a nice solo toward the end of the song, but it seems like it should be a bit more than it is.

Essence, Track #3 - “Essence”

As the title song to the volume, one might expect it would emphasize a fundamental theme, and yes, it does.

“Aint one damn thing means a thing in this life 
til you get close to Essence, til you try
Every man and woman listen to me, hey
Live in the moment or you'll never be free“

When i get to the ‘summation’ part of this review, I’ll have more to say about this, but I like the song in spite of the theme.

Essence, Track #4 - “Wrapped Up in Time”

Probably my favorite song on the entire release, it starts with a nice piano intro and then Hogarth pegs the feeling/experience/whatever of reminiscing about something that used to be but is now gone, exactly.  Not that I know anything personally about the experience, but it pegs it.

“Things come wrapped up in time
Like the past in a present
Or the perfect line in a song

They take their time
And when they're gone
They take their time with them

And you can't have them back
Because the time for them has gone
And their time has gone with them”

I think it captures perfectly the experience of regret.

Essence, Track #6 - “Nothing Fills the Hole”

If there seems to be a recurring theme, well, that’s because it is a recurring theme.

“I wanted it til I got it
Believed in it til I saw it
I needed it til I had it
Then I wanted something else”

Essence, Track #9 - “A State of Mind”

The music for this is really good, somewhat compensating for the lyrics.

“We came a long, long, way with each other
We’re goin nowhere til we see we’re only
Sisters and brothers

A state of mind
A state of mind is a contagious thing
Spread it around you never know what the future brings..”

Essence, Track #10 - “Happiness is the Road”

As the title track to the entire release, one might think it would emphasize a fundamental theme, and yes, it does.

“You're a slave to your mind
But you are not your mind
You are not your pain
Say it again
You are not your pain
Say it again
You are not your pain

Happiness aint at the end of the road
Happiness aint at the end of the road
Happiness IS the road“

I’ll get to this in the summation, but there is a desperation to the song that I’m not sure Hogarth is aware of.  Along the lines of ‘Happiness *has* to be the road because if it isn’t, I’m screwed.’

Essence, Track #12 - “Half Empty Jam”

A basic statement of rebirth, “I used to be half-empty/but now I’m half-full” as one moves from a failed relationship to a new one.  The fact that both sides are described as ‘half’ indicates the tentative nature of it.

 

“The Hard Shoulder”, which is volume 2 is a lot less interesting and so I won’t spend a lot of time talking about it.  Hogarth on occasion likes to sing about politics, and the end result is usually not that great.  “The Man from Planet Marzipan” and “Asylum Satellite #1” are generally pretty bad.  “Especially True” is pretty good, and, whatever one thinks of world affairs, has an effective line “America/Shock and Awe/Not anymore” surrounded by good music.

“Older Than Me”, “Throw Me Out”, “Half the World”, and “Whatever is Wrong With You” all deal with relationships in ways that you can probably figure out from the song titles.

The last song, “Real Tears for Sale” comes across to me as pretty bitter (I can guess that it has to do with various real life celebrities).

“All the hurt, All the secrets, All the damage, All the shame,
All the dirty cuts and bruises, All the rage, All the rage
All the rage.
Boo hoo.”

But the music is solid.

 

Summation

Of all the bands I like, Marillion is by far the most hit and miss of the group.  The Fish era had Misplaced Childhood which hasn’t aged as well as Clutching at Straws and the rest is okay.  The Hogarth era has had good to great releases like Brave and Marbles with the rest being pretty bad.  Happiness is somewhere between good and great.  As a so-called progressive rock band, there are no 13/8 time signatures in this release.  Rothery doesn’t unleash anything like the solos in ‘Sugar Mice’ or ‘Easter’ anywhere here.  But overall, it’s a good release.

The whole ‘live for the moment’ theme is troubling though.   Aristotle introduced the notion of catharsis, and it is clear that Hogarth rejects it.  The common theme is that you should just ‘live for today’ but this is a vapid way of living life.  There is a desperation that exists throughout the release, that one can or should just ignore one’s memories.  There is empirical evidence that different people process grief differently, and Happiness is clearly a work involved with grief and how to handle it, but its basic message seems to be to just ignore one’s past, which I don’t think is a sustainable way of living.  I mean, it’s a complicated topic (I think). Not to be flippant about it, but I am not unconvinced that there aren’t times when, for a shorter or longer period of time, repression isn’t a bad thing (I think that’s a triple negative), especially when memories are debilitating (if you’ve ever experienced anything like what Hogarth is expressing in ‘Somewhere Else’ you might have an idea of what I mean).  But I don’t know how to interpret ‘Live for today’ in a way that isn’t trite.  But that’s too complicated a topic for a blog post that’s a review of a double CD.

But, overall, I would recommend this work.

All lyrics by Steve Hogarth, copyright held and all that.

posted @ Wednesday, October 29, 2008 9:50 PM | Feedback (10)
World’s Toughest Fixes

http://channel.nationalgeographic.com/series/worlds-toughest-fixes

If you haven’t seen this show, it is about these incredibly difficult real-world physical engineering fixes and how they are performed.  So, for instance, they replace the turbine in a nuclear reactor (to make the reactor more efficient, etc.).

Couple of things that leap out when I watch these shows:

- they actually f&*king work.  With the nuclear reactor turbine, they have to unbolt exterior casing, unbolt interior casing, unbolt the actual turbine, lift it out on a crane, then bring in the new one, lower it into place, with something like a thousandth of an inch tolerance, line it up, replace the casing, sacrifice a goat, and other things, all while making sure there is no radioactivity leaks.  Oh, and when you turn it on?  It can’t explode.  I know that there is an amazing amount of work that goes into it, but I’m awed that you can do something like this and have it actually work (the fact that the Space Shuttle doesn’t experience a catastrophic failure every third flight surprises me…when all you need is one important thing to go wrong, and there are a lot of things that qualify as important, how do more things not go wrong?)

- software.  As in, they (practically) never mention it.  You know there *had* to have been some software design work around the new turbine (they show some of how they line it up), but they don’t really mention it.  I’m pretty sure it took neither of these forms:

“As a nuclear reactor owner/I want a more efficient turbine/So that I can make more money”

“Given I replace the turbine in my nuclear reactor/When I turn it on/ Then it doesn’t blow up”

but I have no idea what they actually did during the design phase on the software end. 

Working in an industry where it can often take dozens of people hundreds of hours to figure out how to get config file changes properly propagated through different environments (and I’m maybe only slightly exaggerating), this show fascinates me.  How do more bridges (like the one in Minnesota) not collapse?  Since I work in a tall building, how do fewer elevators experience cable breaks? 

Although I have no proof that there is anything connected to this, has anyone else ever worked in an IT department and noticed how many IT professionals cannot figure out how the friggin’ coffee machine works?

posted @ Monday, October 27, 2008 6:33 PM | Feedback (2)
Signs You Might Be Working For A Client That Isn't On The Cutting Edge #4 in a series

If they propose an architecture for the next version of the application where you create UML models and then click a button so that all of the code is magically generated for you.  That way, you don’t have to worry about build errors.

CASE, anyone?  Run.

posted @ Monday, October 27, 2008 6:06 PM | Feedback (0)
DDD Mysticism

Two recent blogs (well, within the last month or two anyway) about DDD have sparked this one.  The first is from Jimmy Bogard, the second from Casey Charlton.

Apparently I need to mention this, but both of these guys are smart dudes.  The fact that I’m reacting against what they are saying doesn’t mean I don’t think they are smart dudes.  That should go without saying, but some people seem to think this is comment worthy.

Since Casey’s blog was first, let’s start with that, where he talks about ‘The Tao of Domain Driven Design.’  As I’ve mentioned before, I love it when white people use Eastern/Asian terminology to talk about software development (out of curiosity, is anyone aware that Motorola and Toyota both suck these days?  And that The Art of War has nothing to do with .NET?  Just curious.), so whenever someone references Taoism/Daoism (not to be confused with DAO, which comes from Java) when it comes to software development, I get the giggles.  Doctor has prescribed something for it, so I should be okay.

Anyway, Casey is pointing out/lamenting is that DDD is not really (just) about the familiar software patterns (repositories, entities, services, etc.) that are a part of it, but is more about the experience of implementing the ideas popularized (not invented, in case anyone is confused) by Evans.  In particular, the basic idea (massively paraphrased) is that developers and business users/customers (it depends on the environment if it is either/or or and) should work closely together in developing a common language (called the ‘Ubiquitous Language’) that is used throughout the design process by both the developers and the users, in order to more closely align the two sides throughout the development process.  Although there is no explicit linkage with DDD and, say TDD/DDD/XP/Scrum/Whatever, there are some commonalities in play.

Where Casey goes wacko is with this:

“There is technically nothing new or revolutionary in DDD, there is only a guide to a better way of thinking.

While the Tao cannot be expressed, Taoism holds that it can be known, and its principles can be followed.”

Hold that thought.

Jimmy makes very similar points when attempting to answer the question “Where are the DDD sample applications?”  His answer is that there aren’t any, because the question is misguided:

“A finished application does not capture the journey.  It does not capture the conversation.  It captures the final product of learning and application, but not the road to get there. “

Within the comments, we had a little bit of a back and forth (I didn’t want to keep harping there since it is his blog, but this is my blog and I can harp if I want to, harp if I want to) and Jimmy said this:

“I say it's tied to the journey simply because of experience of going through many different iterations over the model, the discovery process, and the refinement of the model.  THAT'S the most valuable piece of DDD, IMO.  It's how we went about arriving at the model, the questions we asked, the modeling and learning sessions we had.”

 

Now, I think that both Jimmy and Casey are bringing up a good point, that when practicing DDD, it is as much the practice (e.g. the development of the Ubiquitous Language) that matters than the software artifacts (e.g. the codebase).

BUT, having said that, I think they both get something important wrong.

For one thing, DDD, or the practice of it, is absolutely NOT inexpressible.  Evans wrote a book on it.  Some people make the mistake of treating his book as a religious document, but regardless of that, you can express/describe/whatever the process of implementing DDD.  To suggest otherwise is to think that DDD is some ‘mystical’ thing, and the very fact that Evans, and others, have so described the process proves that wrong.

Moreover, the idea that with DDD, you have this need to go beyond the codebase and have whiteboard sessions, etc. that is different from other types of development is simply false.  With just about any environment, including those using data-driven architectures, you have to go beyond the codebase and have whiteboard sessions, etc. to really understand what is going on.  “Understanding the domain” is important whether you are doing DDD, TDD, or so-called ‘Cowboy coding’ (minor digression, but most of the best developers I have ever known, at some point, when really needed, did ‘Cowboy coding’).

To suggest that DDD requires an extra-super-special mystical experience is not only a false characterization of the truth, but also makes it that much harder to get a business to consider implementing it.  And it absolutely is possible to use sample applications to get people on the right road to implementing DDD.  Otherwise, DDD is a dead design methodology, because you will always have developers coming into a situation that weren’t a part of the previous ‘journey’, by definition.  They will, of course, start out ‘behind the curve’ so to speak, but the very idea of an Ubiquitous Language is that you can get up to speed with it.

DDD is not a mystical journey, and it is not rocket science.  It isn’t easy, sure, but it is still software development.

posted @ Sunday, October 26, 2008 8:27 PM | Feedback (5)
Great Songs : King Crimson - Starless from Red

Yet another one of my obscure ‘series.’

It occurred to me that as I grew up and learned to appreciate certain songs, types of music, whatever, that it was based on…. random luck?  Articles that I happened to read in guitar related magazines that I happened to read because for a while I was a halfway decent guitarist and read those sorts of magazines?

I don’t know for sure, and it doesn’t really matter.  So, here goes.

This song is the greatest rock song ever written.  I can imagine that anyone reading this will disagree, and that’s fine.  You’re wrong.

At the same time, this song is almost unlistenable.  Even in the pantheon of progressive rock, where this song rightly sits, where multiple bands have written multiple songs that are almost unlistenable, this song stands out.

Except for the last minute or so, Robert Fripp plays guitar throughout the song, and yet there isn’t anything like a memorable solo in it.  The lyrics end about 4 minutes or so into this 12 minute work, and as rock lyrics go, they won’t replace your favorite Bible verse or cause you to change your life (if rock lyrics cause you to change your life, you have issues, but I digress).

What Fripp plays is…weird.  Those who know his voluminous work know he can play the fastest riffs if he wants to, so it is…weird, that in this work he plays…well, it’s hard to describe, but the same note, over and over.  And then he moves it up slightly in the octave.  Or slightly lower.  And plays it over and over.

From interviews and whatnot, Fripp apparently had a nervous breakdown or something while recording Red on which this appears, but regardless, I still try to imagine what he said when he introduced his idea for what to play for this song..”Okay, guys, here’s what I’ve got…ding-de-ding-de-ding-de-ding-de-ding-de ding-ding-ding ding-de-ding….”

But it works.  And works really well.  Someone (laziness prevents me from looking it up…google is your friend) wrote a dissertation about this song, and how it follows sonata form and yada yada yada.  And his dissertation makes sense.  Song starts with beautiful music, goes through unlistenable crap, and ends up repeating the beautiful music in the unlistenable crap (this isn’t how he described it, of course).

From a technical perspective, King Crimson has recorded more complicated music.  But in some sense, they’ve never recorded a better song than this one, and couldn’t do so if they tried.

Give it a listen.  You will probably hate it.  But if you don’t, you’ll understand how brilliant it is.

posted @ Wednesday, October 22, 2008 10:19 PM | Feedback (2)
Happiness is the Road Deluxe Edition

Or whatever it is called.

Arrived in the mail, and there’s my name correctly spelled and everything in the extended book for CD2.

When I ordered it, I didn’t quite get the overall point of it.  What the band did was use the extra funds it cost to pre-order the sucker to fund the actual production of the work.  That explains my “what the fuck” reaction to the charge that appeared on my credit card when I did the pre-order.  I have no objections.

Scanning through the lyrics, there is a lot of ‘kumbaya, life is the journey not the destination’ blah blah there.  Not knowing all the details of Hogarth’s divorce and further personal life, it is obvious that it has had a lot of impact on his writing.  It will come as no surprise to anyone that I’m not a big fan of the whole ‘kumbaya’ thing, but that didn’t detract from Marbles so I can’t really complain.

I’ll probably have a longer review at some point, but my initial reaction seems to be holding.  It isn’t as good as Marbles, especially since it doesn’t have the sort of standout brilliant song like “The Invisible Man” but overall, it’s a solid piece of work.

posted @ Wednesday, October 22, 2008 9:45 PM | Feedback (0)
First Impressions of the Samsung Epix

Obligatory marketing blurb here.

So, I had an AT&T Tilt phone.  Maybe it was just my particular model, but it basically sucked.  Poor battery life, poor manufacturing quality (back panel broke pretty quickly), odd random touch screen issues, and so on.

Even though I’d had the phone for less than a year, I had enough and was able to get the new Epix.  Though there are various differences, it is basically a Blackjack with a touch screen.

It’s a shiny little bugger that likes to pick up fingerprints, but the main immediate thing I’ve noticed with it is the sensitivity (or lack thereof) of the touch screen.  It seems to require a more firm input than with the Tilt.  This isn’t necessarily a bad thing, but something I’ve had to get used to.

It’s definitely lighter than the Tilt brick.  I don’t text a lot so can’t say much about the keyboard, though I gather it is like the previous Blackjack units.

If it ends up being not great, I can always wait till the new Sony Xperia comes out.

posted @ Wednesday, October 22, 2008 7:47 PM | Feedback (0)
Jeff Hostetler is a Super Bowl Winning QB, Dan Marino is Not

This is another brief, bad analogy (though I think I might leave it unexplained to start, for the hell of it).  If you don’t ‘grok’ the NFL, this won’t necessarily be totally clear.  Even if you do, this won’t necessarily be totally clear.  But you knew that.

The goal of any professional football player is to win the Super Bowl (no, not that football, the World Cup is for soccer), and for various silly reasons, the careers of professional athletes are sometimes judged due to whether or not they have at some point won the championship of their sport (if you think about this, except for individual sports like tennis or golf, this is pretty stupid, but I digress).

When it comes to the National Football League, an interesting/time-wasting bar discussion concerns who the best QBs in the history of the league are.

Dan Marino was a stud college player who completely blew his senior year at Pitt along with Foge Fazio (not that I remain bitter about it), because of which he was drafted towards the end of the first round in 1982 or 1983 or whatever by the Miami Dolphins.  In a long and illustrious career during which he set multiple all-time records, he played in one Super Bowl, and lost to the 49ers (they used to be good, did you know that?  Yes, we had indoor plumbing then).

Jeff Hostetler was a relatively decent college player at West Virginia, decent enough to get drafted into the NFL and played for a few teams.  One year, with the NY Giants, he became the starting QB when the real starter, Phil Simms, was injured late in the season, and ‘led’ the team to victory in the Super Bowl over the Buffalo Bills, because the Bills place kicker had the most famous missed field goal in the history of the league.

 

No one, except maybe his mom, would ever think of listing Jeff Hostetler as a great quarterback (and even his mom, if she has any sense, would agree).  Everyone would list Dan Marino as one (he usually loses out to Joe Montana and/or John Elway as the greatest ever, precisely because he didn’t win the Super Bowl, but he’s in the conversation).  If one was faced with the choice, no one in his right mind would choose Hostetler over Marino to be the QB of his team.

And yet the fact remains, Hostetler is a Super Bowl winning QB, but Dan Marino is not.  And in case anyone else was wondering, yes, I could have used Trent Dilfer as the example.

 

And this is why I do not believe that Alt.NET always teaches the right way to design software, and in fact, sometimes teaches the wrong way.

posted @ Tuesday, October 21, 2008 6:53 PM | Feedback (0)
A handy quote to remember

I just read Leonard Susskind’s The Black Hole War : My Battle with Stephen Hawking to Make the World Safe for Quantum Mechanics.  I like reading this sort of thing, especially because the current state of theoretical physics is seriously f%^ked up.  I mean, amazingly.  Though that’s a topic for another post.

Anyway, on page 168, is the following (he’s talking about the concept of entropy as he learned it while doing undergrad work in Mechanical Engineering, though that’s somewhat irrelevant):

“Everyone copied it down, but no one understood what it meant.  It was as incomprehensible to me as ‘The change in the number of sausages divided by the onionization is called the floogelweiss'.’”

As a contractor, I sometimes find myself doing work on software within domains that I am not a master of (there’s a joke in there somewhere).  So, for instance, I’ve worked in the finance industry.  Sometimes, there are people who try to explain requirements in terms of their domain knowledge, never quite getting that I haven’t the slightest idea what they are talking about.  Even when they ask me for my opinion on something and I respond (as I did just yesterday), “I haven’t the slightest idea what you are talking about, but if I had to guess, the answer is no,” they seem to think that my opinion is relevant.  The aforementioned quotation perfectly sums up what I’m thinking in those moments.

  • The Theory That Ate the World
posted @ Tuesday, October 21, 2008 6:33 PM | Feedback (0)
Obscure Musical Gems: Roger Waters – Amused To Death

This work is why I created this series in the first place.  I have another entry that is Pink-Floyd-ish coming up, but will branch out afterwards.

Roger Waters is a strange cat.  No two ways about it.  As the initial post about The Final Cut should make clear, he writes what he writes because of what interests/inspires him, and sometimes, those themes are not what you would usually expect.  Because his father died during World War Two, he often writes anti-war-themish stuff (gee, that’s a surprise), and in Amused to Death that is one of the themes that comes up.  There’s also general stuff about alienation and the current culture and whatnot.

This work is not for the faint of heart or ‘I hope there is something I can dance to” set.  It is a concept album (like almost everything he writes) and very serious.  The opening track ‘The Ballad of Bill Hubbard’ makes this very clear, as it has a snippet of an interview with a World War One (not Two, One) vet talking about a soldier named ‘Bill Hubbard’ who he found wounded (mortally as it turned out) and tried to rescue, but had to abandon.  Like I said, this is not stuff for the faint of heart.

Another theme that is present in this work is anti-god/religion.

side note:  I’m going on memory here so if I get the details wrong, sue me/correct me, but there was this guy called Dr. Jack Kevorkian, also known as ‘Dr. Death’ who helped people kill themselves until he was (thankfully) sent to prison.  For reasons not clear to my memory, he would only assent to being interviewed by Andy Rooney from 60 Minutes.  As I grew older, the more I learned/heard about Rooney, the less I liked/respected him, but there was one part of his interview with Kevorkian that was brilliant.  He asked Dr. Death ‘Do you believe in God/religion.’  Kevorkian’s response was ‘Yes, but not in the traditional sense’ to which Rooney responded immediately without a beat of hesitation, ‘In other words, no.’  This was a brilliant insight.  If you don’t get why, you need to re-examine your own thoughts about God/religion.  If this suggestion offends you, too bad.

The various tracks about ‘What God Wants’ (parts 1-3) lay out this theme in various ways.

Since I’m lazy, I will just tell you to Google it, but in remarks about The Final Cut, Waters says that you can hear the tension he felt in his voice (about the near violent friction between him and Gilmour), and my thought is always “Compared to what?”  Roger often times gives up any pretense to singing his lines, or even trying to get the lyrics to rhyme.  This has never bothered me, but I can understand why some might not be so forgiving.  Within this work, he does this often (Bob Dylan is another artist who gives up similar pretenses, though that’s a bit misleading).

As with all of Waters’ work, the potential result can vary wildly from absolutely horrible (Radio KAOS is a horrible album, and ‘Leaving Beirut’ is right up there with Ani Defranco’s ‘Evolve’ and the Shaggs’ ‘My Pal Foot Foot’ as the worst rock/pop song ever recorded) to absolutely brilliant, and I think many of the tracks in Amused to Death are the latter. 

When I was younger and had hopes and dreams and more creativity, I wrote a rock opera about Tiananmen Square and the massacre there called A Song for Beijing and ‘Watching TV’ recalls the same events (with shared lead vocals from Don Henley) with great power.  In parts, he completely abandons the need to rhyme.

‘The Bravery of Being Out of Range’, with its’ lyrics ‘old timer/who you going to kill next’ is equally powerful in its ability to evoke a theme/feeling (regardless of what you think about it overall).

Waters’ solo work has included session guitarists to brilliant (I’m being redundant, whatever) effect, and here Jeff Beck, who isn’t note for note technically skilled like a Steve Vai, lays down wickedly moving solos throughout the piece.

The ‘concept’ of the album has something to do with a monkey watching TV and/or alien anthropologists trying to determine how the human species died.  This is almost completely irrelevant.

The Wikipedia article on this work states that there is an ‘uplifting’ ending, where the vet who had to abandon Bill Hubbard recounts seeing his name on a memorial and feeling a sense of relief.  I think this is completely wrong.  The vet is recounting the fact that he lived 60+ years of his life with a sense of powerful regret and sadness.  I guess it is better than dying with the regret, but it seems clear to me that the point of the narrative within the song  is to highlight the regret, not the sense of relief so many years later.  Regardless of what one might think about the necessity (or lack thereof) of war, maybe it is my personality type, but that overall sense of regret “if there was something  else I could have done…and that always sort of worried me” is searing (“when I was 87…1984, 1984”).  When I think about who I am and what I do for a living, I realize how far short I reach from those that who have done truly great things (fixing T-SQL vs…. yeah).

In any event, don’t expect you can dance to this, but I highly recommend a listen, if you can take it.  It is not a typical album.  It isn’t even a typical ‘progressive rock’ album.  I can’t imagine that ‘most’ people would like it, however that is to be judged.  But if you do ‘get’ it (whatever that means), this will be one of your most favorite albums.  It is that good.

posted @ Wednesday, October 08, 2008 9:03 PM | Feedback (5)
Obscure Musical Gems: Pink Floyd – The Final Cut

Another of my (unnumbered) series, I talk about works of music (usually albums (“daddy, what’s an album?”), sometimes songs) that I think are obscure (based on my opinion, of course) but also really, really good, and thus a gem.

There’s another gem that actually sparked this thought (coming soon), but I might as well start with something that might be used as a definitional example, and that’s Pink Floyd’s The Final Cut.

When one thinks of Pink Floyd, one thinks of the Wall or Dark Side of the Moon, not this one.  Yet, despite the general weirdness of the work, it is very strong.

The last release of the ‘real’ Pink Floyd (Gilmour and Waters together, not that the other members of the band didn’t matter, but…well, they really didn’t in the grand scheme of things) is obscure because it is, well, really kind of odd, a work of music sparked by the Falklands War.  As Roger Waters’ lyrics describe it:

Brezhnev took Afghanistan
Begin took Beirut
Galtiery took the Union Jack
And Maggie over lunch one day
Took a cruiser with all hands
Apparently to make him give it back

- Pink Floyd, ‘Get Your Filthy Hands Off My Desert”

Roger Waters’ father died during WW2, and so anti-war themes have long been a part of the work of Pink Floyd and Roger Waters’ solo work.  No surprise there.  There’s also general themes of alienation and whatnot (the title track ties in the anti-war theme with the personal).  Given the dissolution of the band that was going on during the time, it is no surprise that David Gilmour basically hated the album, but his guitar work is (thus) remarkably strong throughout, especially during ‘The Fletcher Memorial Home’, ‘The Final Cut’, and ‘Not Now John’, along with great sax work by Raphael Ravenscroft (especially on ‘The Gunner’s Dream’ and ‘Two Suns in the Sunset’).

The lyrical obscurity of the work, based on the war in the Falklands, contributes to the obscurity of the whole piece (I mean, it’s sparked by the Falklands War, think about it, it’s like writing a work based on the Contras in Nicaragua), but while I understand why many fans of Pink Floyd don’t like it, I think overall, it is a very strong effort and enjoy it whenever I listen to it.  Even if the anti-war theme doesn’t do a lot for you, ‘Southampton Dock’ is pretty powerful, especially as it flows into the title track.

And if I show you my dark side
Will you still hold me tonight?
And if I open my heart to you
And show you my weak side
What would you do?

- Pink Floyd, ‘The Final Cut’
posted @ Monday, October 06, 2008 8:27 PM | Feedback (1)
Setting up for TFS Installation on Windows Server 2005/2008

Again, I keep forgetting this, so this post.

You need to create/extend a site within SharePoint/WSS to install TFS.  But, you have to do more than create/extend a site.  You also have to create a site collection on that site after you create/extend it, otherwise, you will end up with 404 errors when running the TFS installation wizard.

posted @ Monday, October 06, 2008 7:11 PM | Feedback (0)
Guilty Musical Pleasures: Lou Gramm – Midnight Blue

This is part of yet another new series (not going to number them) where I mention rock/pop songs/albums/bands that I enjoy, even though I know I probably shouldn’t.

This entry is for Lou Gramm’s “Midnight Blue” song.  I think all that needs to be done to indicate why this song should not be liked is to relate the following lyrics:

I remember what my father said
He said "Son, life is simple"
It's either cherry red or...
Midnight Blue...

or

I won't apologize for
The things I've done and said
But when I win your heart,
I'm gonna paint it cherry red

 

Okay, so are you supposed to favor ‘Cherry Red’ or ‘Midnight Blue’?  The title suggests the latter, but then why is he going to paint his love’s heart the former?

And yet, I really enjoy listening to this song.  It needs a ripping guitar solo, but otherwise, it’s a lot of fun.  In a pathetic, guilty pleasure sort of way.

posted @ Monday, October 06, 2008 6:35 PM | Feedback (2)
Using SQL Server with WSS 3.0 SP1

I keep forgetting this, so putting up this post.

When it asks, choose advance over basic, and then choose web front-end.  It will then ask you for database connection information during the provisioning step.

posted @ Saturday, October 04, 2008 4:07 PM | Feedback (0)
On TDD

Roy Osherove has been posting a bit about testing, OOP, TDD, and the like.  You can go to his post and find tons of comments, links and so forth.  Because of all the different interpretations people have put forth, it’s hard to summarize the discussion without prejudicing it.

But what the hell, it’s my blog, so here’s a thumbnail sketch:  the adoption of unit testing is hindered by it being tied to TDD, design considerations, and confusing terminology (“a mock?  a mock what?”). 

A very good post by Udi Dahan takes a pragmatic stance about the whole issue, but contains two things that I want to comment on.

The first is this:

“In a well designed system, most ‘logic’ will be contained in two ‘layers’ - the controllers and the domain model. These classes should be independent of any and all technological concerns. You can and should get high unit test coverage on classes in these layers…Most other layers have some dependence on technology that makes unit tests relatively less valuable. Coverage on these layers is most meaningless. My guidance is to take the effort that would have been spent on unit testing these other layers and invest it all in automated integration tests.”

The second is a comment by Casey that Udi agrees with:

“I think, and hope, what you are saying is any code that does not add *business* value is of low value, and tests that have no clear purpose, or that further concrete an already weak design, will ultimately decrease business value.”

I agree with both of these, but in my own special way.

 

In almost any business environment (I can think of a lot of other systems/environments where the following isn’t true…a health diagnostic system for instance), software exists primarily to deliver business value.  Or at least, it should.  One of my strongest gripes with Alt.NET is that while I think just about everyone would give lip service agreement to this notion, it is quite often de-emphasized, and the focus is placed on ‘reducing friction’ or ‘increasing maintainability.'  And clearly, if you do those things, you increase business value, right?

Not so fast.  Notions like ‘friction’ and ‘maintainability’ are relative, usually to the developer in question.  Various people have blogged in great and painful detail about what reduces friction or increases maintainability, but what they advocate often times makes it clear that what they advocate is something that would reduce friction and increase maintainability *for them*, but which would do the reverse for most everyone else.  Since this post is about TDD, I’ll use that as an example in a minute, but just to throw out another example:  anyone who is advocating ‘deprecating the database.’  It isn’t that there is necessarily a *technical* argument against it (though I think there could be), but there are so many other considerations that go into software development that the technical merits or demerits of software design is almost always a very minor aspect (I’m betraying my roots in operations/deployment/production support here).  There is almost no environment where ‘deprecating the database’ is even a possible solution.

side note:  I’ve made the following point in many different ways, and in many different places, but I think it right to make it again.  In large part, I 'follow’ Alt.NET (even helped to create the Chicago Alt.NET user group, not sure how that happened…think there was drinking involved) out of laziness and greed.  I am trying to ‘shortcut’ my way out of learning many techniques through experience, because learning through experience is usually painful, and hurts someone else (usually a business/client).  You can’t completely do this, obviously, and I know that, but whether it is learning how to implement IValidator, IMapper or other techniques that I’ve ‘stolen’ (if you can’t tell, I just spent 15 seconds looking at one of my code bases), I hope to be able to avoid learning through the mistakes, and just learn from the end results of developers who I already know are better than I am.  Developers will be developers, so there will always be some numb-nut advocating a technically stupid design under the Alt.NET rubric, but in general, if you want to learn how to be a technically better developer, just read the Alt.NET blogosphere.  And if you don’t know what that is or what counts, look it up.  Google is your friend.

 

TDD is one of those techniques that has its fair share of evangelists/advocates, and that can decrease business value if done incorrectly.  On one of my code bases, I am forcing myself to use it as stringently as possible.  In almost every client situation I have come across it, it has been implemented poorly (and in the obvious case I can think of where it wasn’t, it was because of the single-minded determination and/or skill of the developer implementing it).  Like agile advocates, TDD advocates seem to be painfully addicted to confirmation bias (“I did it myself once and it worked great!!!!”), but that, in and of itself, has more to do with advocation (is that a word?) than TDD.  But it is pretty clear that in order to do TDD ‘the right way’ requires a lot of training, an eye of newt, and a lot of luck and/or skill.  In and of itself, this makes me skeptical of it, because any methodology that requires near-perfection in its implementation is essentially doomed to failure in the long run.

BUT, if it provides business value, which it can, you should use it.  I like very much what Udi said about layers that have dependencies on technology (I will expand this to include ‘protocols’ in a second) and what Casey said.  I’ve long advocated (yes, using that word on purpose) integration tests over unit tests (since there is always a limit on time and effort, if you have to limit what you can test, test the code that is actually in production.  Not mocks, not stubs, your production code.  If you have to run, e.g., Waitn tests, suck it up and do it), because of the ‘business value’ position.  No one in the business will generally give a crap about the latest developer ‘fad’ (since they generally neither know or care what counts as true progress versus fad, since they can’t judge it), but a set of tests that catch actual bugs in production code, before it actually gets to production, that usually gets people’s attention (if you are really good, your non-integration, TDD tests will give you the same, if not better, results…in theory, see side note).

How can you tell if you are providing business value or not?  That’s hard to say.  But, I will offer the following thought experiment (though it is based on a real-life example) as a guide:

Suppose you need to write code that will use FTP to go out to a site and download a file.  This is a typical requirement in almost every single business shop in the world.  If you immediately thought of creating an IFTPService interface, you have problems, and are probably part of the problem.  The FTP protocol is not going to be re-designed and neither should your FTP code.  Once it is built, it is done.  “But what about testing how the code handles different response codes from FTP?”  Setup a local FTP site that does whatever you want it to do, and create integration tests.  If you think an IFTPService interface is a good idea, not only are you wasting people’s time, but you are losing the semantic argument.  If you already have a TDD and/or top-heavy unit testing organization in place, then creating stupid interfaces like this is potentially okay because you can write the ‘extra’ code in a few minutes, but any seasoned developer is going to (rightfully) laugh you out of the arena if you think an IFTPService is a good idea.  Which will kill any chance you have of getting TDD in where and when it matters and can supply business value.

 

Business value, good.  Useless tests written because someone you read somewhere said you needed to have 100% code coverage, bad.

BDD, really bad.  But that’s another post.

posted @ Wednesday, October 01, 2008 8:26 PM | Feedback (17)