Industrious Stupid People

a typical hard working programmerI’m constantly stunned by the damage that can be caused by Industrious Stupid Peopletm. I used to think the phrase “lead, follow or get out of the way” was just too quaint by half. Two decades making a living in the pseudo-real world have taught me that there’s a reason for cliché.
There’s a good paper which I’ve squirreled away and bring up every once and a while and send it out via emailing:
Unskilled and Unaware of It: How Difficulties in Recognizing One’s Own
Incompetence Lead to Inflated Self-Assessments

People tend to hold overly favorable views of their abilities in many social and intellectual domains. The authors suggest that this overestimation occurs, in part, because people who are unskilled in these domains suffer a dual burden: Not only do these people reach erroneous conclusions and make unfortunate choices, but their incompetence robs them of the metacognitive ability to realize it. Across 4 studies, the authors found that participants scoring in the bottom quartile on tests of humor, grammar, and logic grossly overestimated their test performance and ability. Although their test scores put them in the 12th percentile, they estimated themselves to be in the 62nd. Several analyses linked this miscalibration to deficits in metacognitive skill, or the capacity to distinguish accuracy from error. Paradoxically, improving the skills of participants, and thus increasing their metacognitive competence, helped them recognize the limitations of their abilities

You see this all over the place, in every single field. But it seems to be a particularly big problem in the software industry. In pretty much every other industry, if you have someone who is truly incompetent doing something, there usually is a real world measurement that can be easily tracked by theoretically more competent people and it will be fairly obvious fairly quickly that something has to be done about the incompetence. In theory, this is the whole idea behind markets – i.e. if you’re screwing up sufficiently, you will eventually find that you have no customers and market forces will eat your lunch and you will have to find something else to do.
But I’ve found that software seems to break the rules that would seem to normally apply. I mean, in a world where Microsoft can continue to ship software which randomly blows up and people not only accept it but continue to pay upgrades for newer versions which also blow up randomly…. well, you have yourself a rarefied environment where the normal rules don’t seem to apply.

Continue reading

Eclipse Vs. IntelliJ IDEA III

Okay, now that I’ve been playing with Eclipse for a week, things are kind of back to some semblance of normalcy. Once that blue pill dissolves in you stomach, things ain’t so bad. And the lobotomy surely helps (although I can’t remember why).
Still, there’s a lot of annoyances and little odd quirks of Eclipse that should be noted. One is that it’s pretty much impossible to deal with hierarchal source code bases in any easy way. Eclipse doesn’t (seem to) have any way of excluding subtrees from a project which are “owned” by a project in that sub tree. Yes, I know you can exclude things as a source folder. But all that does is create a replica of the subtree in the parent project which isn’t a Java source folder – it’s it’s all still there an annoying the hell out of you.
And this example – and believe me, this is just one – is really a symptom of a disease we are all infected with as programmers. We have a mind set on how work is done and that bleeds through everything we do – despite our best efforts. Eclipse is plainly a result of a lot of ex Smalltalkers and VisualAgers. Very 90’s in a lot of ways.
Still, this is just issues that I have moving from something I’m intimately familiar with and have grown quite comfortable with – i.e. IntelliJ. IDEs and text editors are kind of like your underwear. If you change brands or styles, it can be quite uncomfortable until you get used to it. Hell, look at all the flame wars between Emacs and VI users (BTW, I’m an Emacs user, so suck it up VI weenie).
Now that I have the source code control all figured out (man, what a pain to figure out), I think I’m going to stay in the new house. It’ll be nice not having to pay for an editor that I can’t really figure out how to adapt (sorry, that’s just me). The simple fact is that Eclipse has a stunningly huge community and there’s a zillion plug ins out there – of varying quality, of course. But there’s a shit load of them out there, and building your own is actually not that hard.
And the thing that is the clincher for me is the fact that Eclipse is built on OSGi. Every Eclipse plugin is an OSGi bundle. Since I am now basing all my work on OSGi, and given that Eclipse is now the de facto development environment for OSGi, it’s a no brainer. I wish that I could continue to use IntelliJ, but it’s simply not an option any longer. They have a different plugin module, and getting the built in support for OSGi will simply not happen any time soon unless I actually take the lead and do it myself – something I really am quite frankly not even interested in since I already have Eclipse.
I wish the IntelliJ folks well and hope to god that the produce something in the future which will tempt me to throw money at them again, but for now I’m going to have to hang man testicles on the wall and become an Eclipse weenie.
God, I feel so dirty.

Eclipse Vs. IntelliJ IDEA II

Wow. Okay. The learning curve for Eclipse is, as predicted, rather steep and somewhat strewn with broken glass and discarded pop bottle caps (rusty, of course). But the Maven 2 integration Eclipse plugin… man, that thing really sucks. it’s usable only for small projects, not – like I have – even a moderately sized workspace which consists of multiple projects.
Geesh. Those guys should be shot with silly string until they are forced to run from the room in shame.
I hear rumors that we’re going to see “real” integration of Maven into Eclipse real soon now. Man, it can’t happen soon enough for me.

Eclipse vs. IntelliJ IDEA

I’ve been an Intellij man for quite a number of years. I have personally provided an inordinate amount of money to fatten their coffers. However, I think I’m pretty much out of IDEAs. The final straw was the the integration of Jess into Eclipse. Part of the project I’m doing is heavily rule based and so having not only a syntax oriented editor for Jess CLP files, but an integrated debugger – well, what more need be said? To my credit I spent three days desperately trying to get at least a syntax sensitive editor replicated in IDEA. But, and this is probably more of a reflection of me rather than IntelliJ, the process was quite incomprehensible. The documentation was out of date and incomplete. Hell, I know that documentation is one of the things that always falls by the way side, but if you’re going to have a platform where you encourage developers to – well -plug in to your environment, it had better be damn easy and documented within an inch of its life.
I had built a couple of plugins for IntelliJ – the last was a desperate attempt to integrate the god forsaken source code control system we have here at House Harkonnen into the source control integration of IntelliJ. Since the stuff we use was based on Clear Case (based, as in “humans are based off of single cells”) I thought I’d use the plugin already developed for Clear Case. What a nightmare. Debugging this system was something I wish I had never witnessed. The required apis needed to integrate into IntelliJ were hardly documented and when things went wrong it was as transparent as mud.
Again, most of this is my issue. I usually ignore developer forums because I have found that 99% of my questions just flop against the wall and slide down with a sickening slurping sound until they hit the ground. My god, the Maven users mailing list is like yelling into a hurricane. But that is the subject of another post. My god, I could write a whole book on my observations of Maven. But I digress.
The long and short of it is that I had some pretty nasty experiences with IntelliJ plugin development and this latest one wasn’t much different. I did go to their user forum this time and overcame the initial hump which was nice to see. But the real issue really isn’t whether or not it’s easy to develop for the platform. At this point in my career, the issue is whether something already exists or not.
See, I believe that there’s 5.5 billion people on this planet for a reason. And that reason is to take care of the myriad of things that I am not interested in doing. I, myself, take care of a shit load of things that no one else seems to care about at all. And so it’s nice to see that things I’d like to use – use, mind you, not develop – already exist. All I have to do is simply use them. I don’t have to bang my head against another brick wall and figure out how to do something that was supposed to save me time but only turns into a time waster in which I end up spending more time developing than actually doing what I wanted to do in the first place.
But that’s the subject of another post – i.e. how to quit your job and slack off.
So, to bring this ramble back to the original subject, I’m sticking my toes into the Eclipse ocean to see if they get bitten off. So far, things seem okay. It’s a different system so it takes a while to get used to. And it’s built by a bunch of ex Smalltalkers so there’s that whole thing to deal with as well… But, as I said, so far things are going okay. The Maven integration is pretty poor, but that’s to be expected. I’m surprised that XML file handling wasn’t part of the base, but I found XMLBuddy and we’ll see how that goes.
Still, it’s going to be a bit of a learning curve. We’ll see if it’s worth it in the end.


Um, is this thing on?
So, I got rather tired of only having a political blog and since I didn’t really have much relevant to say (not that this stopped me from saying a lot), I’m finally starting up a tech blog. The two audiences have a vanishingly small intersection. No one who comes to a political blog likes to hear the ins and outs of OSGi programming and the subtleties of large scale distributed systems screaming in the night. On the other hand, not many in the technical audience are appreciative of why political blogging even exists.
In any event, here’s the first posting of my technical blogging. Needless to say, this blog is my own personal endeavor and in no way represents the views of my employer, House Harkonnen Oracle Corporation. All mistakes, laughable gaffs and bizarre diatribes are mine and mine alone.