Archive for the ‘Rants’ Category

Unobtrusive Metaprogramming Considered Harmful

Tuesday, February 9th, 2010

Diego_Velazquez

Sean O’Halpin did a very nice job with his Unobtrusive Metaprogramming rant/presentation that has been making rounds particularly in the Rails community.  Sean’s suggestions seem thought out, and the ideas he gives for the maturing rails community are sound.  That said, I can see a bunch of folks taking Sean’s thinking as dogma (ala Edgar Dikjstra’s famous letter “Goto Considered Harmful”). I understand the futility of my efforts, but cannot help my urge to fight creativity-bashing dogmatic thinking.
Talks such as Sean’s are about how to be polite.  And for sure politeness is a nice thing to be around. “Politeness is the art of choosing among your thoughts”, wrote Madame de Stael. So while a programmer should certainly choose carefully among the thoughts they offer the rest of the world, should we really care? No, and in fact, I would argue that new languages like Ruby and Go have grown out of the desire of programmers to have power restored to their hands, maybe at the expense of some politeness.
I’m talking here about the difference between Convention and Protocol. Convention helps people get along, if they want to. Protocol prescribes pre-arranged actions and consequences. Woe to those who violate protocol. The protocol of programming has become deep. Don’t use goto, don’t use private data, don’t use globals, don’t monkey patch, don’t put more than one class into a file, don’t return except from the end of a function, yada yada yada. Now I understand protocol is a great way, albeit Maoist, to get along, but convention is really a better choice for many programmers.
The fact that your patient gets well does not prove that your diagnosis was correct.  ~Samuel J. Meltzer.
Many will point out that function calls really did improve the general quality of software from the the spaghetti-coded goto-strewn mess that preceded it. Likewise, it is also true that I see goto often and productively used in device drivers and OS kernels where conciseness and complex control are inevitable. And there lies the rub. Bruised fingers do not argue for outlawing hammers. Though a pneumatic nailer is a nice thing too. I once had a land-lady that insisted the workers replacing her roof use hammers. I understand her feeling.
Sometimes to do great work you need to have full control. Craftsmanship requires being so close to the workpiece that great skill can be distinguished from the damn near inevitable errors. The error has to be as likely as success to expose the skill, and the art. Folks choose Ruby so that they can monkey patch. If that’s a bad thing, maybe Java is a better choice for the project at hand? The agility of a tool like Ruby brings the possibility of getting cut by one’s own knife. And you know, that just might be a good thing.

Sean O’Halpin did a very nice job with his Unobtrusive Metaprogramming rant/presentation that has been making rounds particularly in the Rails community.  Sean’s suggestions seem thought out, and the ideas he gives to the maturing rails community are sound.  That said, I can see a bunch of folks taking Sean’s thinking as dogma (ala Edgar Dikjstra’s famous letter “Goto Considered Harmful”). I understand the futility of my efforts, but cannot help my urge to fight creativity-bashing dogmatic thinking.

Talks such as Sean’s are about how to be polite.  And for sure politeness is a nice thing to be around. “Politeness is the art of choosing among your thoughts”, wrote Madame de Stael. So while a programmer should certainly choose carefully among the thoughts they offer the rest of the world, should we really care? No, and in fact, I would argue that new languages like Ruby and Go have grown out of the desire of programmers to have power restored to their hands, maybe at the expense of some politeness.

I’m talking here about the difference between Convention and Protocol. Convention helps people get along, if they want to. Protocol prescribes pre-arranged actions and consequences. Woe to those who violate protocol. The protocol of programming has become deep. Don’t use goto, don’t use private data, don’t use globals, don’t monkey patch, don’t put more than one class into a file, don’t return except from the end of a function, yada yada yada. Now I understand protocol is a great way, albeit Maoist, to get along, but convention is really a better choice for many programmers.

The fact that your patient gets well does not prove that your diagnosis was correct. Samuel J. Meltzer

Many will point out that function calls really did improve the general quality of software from the the spaghetti-coded goto-strewn mess that preceded it. Likewise, it is also true that I see goto often and productively used in device drivers and OS kernels where conciseness and complex control are inevitable. And there lies the rub. Bruised fingers do not argue for outlawing hammers. Though a pneumatic nailer is a nice thing too. I once had a land-lady that insisted the workers replacing her roof use hammers. I understand her feeling.

Sometimes to do great work you need to have full control. Craftsmanship requires being so close to the workpiece that great skill can be distinguished from the damn near inevitable errors. Error has to be as likely as success to expose the skill, and the art. Folks choose Ruby so that they can monkey patch. If that’s a bad thing, maybe Java is a better choice for the project at hand? The agility of a tool like Ruby brings the possibility of getting cut by one’s own knife. And you know, that just might be a good thing.

The Blue LED of Death

Friday, September 11th, 2009

Blue_LED

Recently I bought a nifty little USB charger for my iPod touch and mobile phone.  You can build these things, but I was in a rush, and Radio Shanty had them on sale. I was so pleased at how tiny my vacation bag was without my enormous collection of wall warts.

We get to our mountain cabin, tuck the baby into bed, and plug in the charger. Ack! The Blue LED of death!  Why must almost every electronics manufacturer put these obnoxious super-bright blue LEDs into everything.  Is it really a feature?

Sure you can say “night light”. But what night light makes one wince? I once worked on a pair of computer servers from a reputable maker.  The blue LED on the front of the box was so bright it hurt (not kidding) whenever I failed to turn my head before approaching the machines.

When I looked inside these servers, I found a light pipe over one foot long to make the bright blue light come directly out of the center of the machine (straight into my face). So the design team on the computer actually worked long and hard to make this death ray come out of the center of the control panel.  This is really quite far away from the “pilot light” concept, the little stupid light that tells one a machine has power.

Of course the solution is black electrical tape.  However I would urge design teams to send the marketing girl/guy packing when they pop in to ask for a bright blue LED on something.  Apple has the right idea with pilot lights, dainty soft, unfocused lights, discretely hid on the front of devices.  Design is about removing that which does not belong as well as adding what does.  Unless there is a compelling reason to put a blue death ray on something, it’s better left off.

Apollo 11: And They took Velcro?

Thursday, July 23rd, 2009

Apollo-Moon-Mission

Last year at a family gathering, someone from the younger generation commented that they had no idea why NASA was still in the business of shooting people into space. They felt like the money was sorely needed for things like the next generation of renewable fuel, for example.

My father was there, a sixty-something electronic engineer who worked on Apollo. He said many important things came out of the space program. Naturally he was asked how exactly our society benefited from the Apollo program.  He replied that important inventions, like Velcro, had come from the space program. Velcro?

(more…)

Internet Luddites Attack!

Thursday, July 9th, 2009

self-illumination

Recently I read “The Internet devalues everything it touches..“  While I wantedto dismiss the premise of the article out of hand, I think this will be a popular opinion.  It is also worthy of study.  After all, it is easy to get caught up in the idea that everything Internet is always better.

Looking at the continuing development of IBDTs [Internet-based disruptive business technologies] and their relative low cost of development and nearly free distribution, it is easy to see that once they become widely used and implemented, we will see a massive reduction in the costs of doing business.

We will know when this scenario has occurred, or is occurring because we will see the signs: a strong and continuing deflationary trend. We will see a continual erosion in the value of products and services.

In simple terms, the Internet devalues everything it touches. Anything that can be digitized. I’m using the term “devalues” in a strictly materialistic definition and not in a cultural “values” sense.  And I’m using the term “Internet” to denote a class of distributed technologies and applications.

(more…)

What Happened to the Name?

Thursday, July 2nd, 2009

cotton-gin

When I started this blog, it was named The Cotton Gin.  I liked the name, and I liked the metaphor.  I still do.  So why would I change the blog’s name to the most boring thing possible: “John Conti’s Software Journal?”  Blame my favorite company Google.

You see, when I looked at the Google Analytics data for this blog, I saw a bunch of searches for information on, you guessed it, cotton gins, the kind Eli Whitney invented.  Google was putting more stock in the H1 and title tag at the top of every one of my pages, as opposed to all the other content, which never mentioned Eli Whitney (until now).

Sigh.  I buckled to the pressure.  It seemed like no service at all to those school kids working on social studies reports to end up here.  Well, I’ve changed my mind (or lost it).  I’ve decided to ignore Google.  After all, one of the most prominent ads Google placed on my pages is for tires.  So Google search and ads can’t be all that smart. SEO is one thing, following a dumb machine’s dumb ideas, is well…

Walk Softly And Travel In Numbers

Wednesday, June 17th, 2009

interesting-view-of-the-canal-from-land-photo-by-laurence-sunderland

Zac Sunderland is about to complete his trip around the globe in a sailboat.  At 17, he will be the youngest ever to accomplish such a sailing circumnavigation.  To read his posts is to see a young man full of energy, intelligence and humility.  Necessary for such a trip in all likelihood, and uncommon at his age.  Cheers to Zac.

However, if you’ve been following along, or read back through some of Zac’s posts you’ll find lots of  thanks for a hidden army of helpers behind him.  Of course, his friends and family are tirelessly aiding him and supporting him.  However, other helping hands are guiding, repairing, sheltering him and facilitating his trip at every turn.

It takes a lot of moxie to do what Zac is doing.  It takes a lot of help too.  My point is, if we think about it carefully we are all in the same position.  Even if we don’t reach to the heights Zac is, we rely on a bunch of people to do what they do, for us to do what we do.  It is useful, I think, to extend our minds for a bit to think about this occasionally.

As social animals we rely on others and many rely on us.  I think I mostly regard my life as a ship on the ocean.  But big ships need a bunch of help too.

How To Save The World?

Friday, June 12th, 2009

hurricane_felix_from_space

There is talk about stimulus packages, and economic recovery.  There is also talk about cheap offshore labor and sometimes slave labor.  There is talk of more wars.  It seems to me that these are issues our country has had to deal with again and again in its short life.  We also have some new issues like global warming, finding sustainable energy and global (possibly nuclear) terrorism.

Being builders, we Americans tend to create new stuff to work through our problems. While we need a new spurt of innovation to meet new needs, I think that we also need to think, as a society, or as communities, on how to sustain innovation.  I think in the process we need to teach the world to fish.  The way to accomplish this is to funnel stimulus funds to inventors.  Some ideas: (more…)

Analytics: The House Always Wins

Monday, June 8th, 2009

roulette-wheel

In the wake of Air France’s recent loss of flight 447, and the resulting deaths of over 200 passengers, I am forced to revisit one of the most irritating analytic farces (and one of the most long lived).  Aviation experts, pundits and safety professionals will often flippantly instruct the less worthy that flying in an airplane is safer than driving in one’s own car.  If you Google for this, you will see a variety of arguments (concocted) to support this claim.  It’s all Bull.

(more…)

Wired For Survival?

Friday, May 29th, 2009

wired_for_survival_book_covYesterday I heard the bad news about a young man, with a young family, committing suicide. Describing such a tragedy is best left to poets. I cannot write words to do justice to such a situation. However, the story changed my opinion about a mostly weak book I just read.  The book Wired For Survival gave me some hopeful thoughts, and reminded me of all the hopeless situations people are faced with.

(more…)

The Impersonal Computer Is Boiling Like A Frog

Thursday, May 28th, 2009

whites_tree_frog

It is said that if you throw a frog into a pot of boiling water, it will jump out; however if you put the frog into a pot of cold water and slowly bring the water to a boil, the frog will contently get warmer until it dies. I don’t care to know if this is true of frogs, but it is surely true of all companies and a large number of humans.  It is our nature.  But it doesn’t have to be our nurture.

(more…)

Maybe You Don’t Need A Job?

Friday, May 22nd, 2009

monster_truck_jurasic_attack1
I was amazed yesterday that a Do It Yourself (DIY) maestro, whose fine water rockets have racked up hundreds of dollars of collateral damage, had never heard of the Maker Faire.  That wasn’t the worst of it.  My friend did not know about the huge ground swell of DIY innovation sweeping our country, and creating jobs as it grows. Maybe we should all be making jobs not finding them.

(more…)

An Analytics Pandemic

Thursday, May 21st, 2009

influenza_pandemic_of_1918

Recently the Wall Street Journal dove into some of the influenza death rate numbers that have been bandied about since the swine flu “outbreak”Numbers can be particularly convincing, so finding new and “creative” ways to use them is a top priority for anyone with an agenda, even if the agenda is just to sell more media to panic stricken consumers.

(more…)

Linda Rising: Programmers Need Better Sex

Wednesday, May 13th, 2009

erect-bono

One of the latest fads in programming is Agile Software DevelopmentMost fads, after a while, take on a disturbing quality as the bandwagon swells to the teetering point. We’ve gotten to that disturbing evolutionary point with Agile Programming.  Talks and material from Linda Rising are the clearest indicators I’ve seen that Agile Programming’s days as a fad are numbered.

(more…)

WTF: The White House Needs Photoshop

Tuesday, April 28th, 2009

air_force_one

So apparently New Yorkers got a scare when an Air Force One photo op was conducted over lower Manhattan. The White House has apologized for the timing and lack of information.  Now I am, of course, pleased with the forthright step to take responsibility, but I have to admit I want another apology.

You see it takes about 100,000 dollars an hour (minimum) to operate those two aircraft (an F-16 was along with the 747).  You can buy a whole lot of beautiful photoshop for a lot less than 200,000 dollars. The above picture is real, and pretty mediocre.

So why is the new high-tech savvy white house flying jets around to get file photos?  A vastly cheaper photo of much higher quality could be produced by a decent graphic artist wielding photoshop.  Instead we probably blew half of a million dollars, risked a bunch of pilots and scarred the hell out of New York.  How about no more airplane photos! Sigh…

You Are Not A Statistic

Friday, April 24th, 2009

pouting_toddler

I often speak about the weakness of using numbers to manage software, or rather, the inappropriate use of numbers for the management of design processes. There are some other inappropriate uses of numbers around these days, and that includes job loss hysteria. Economic numbers are complicated, and journalists like Jack Gannsle that use summary numbers to stir fear and dread should be called drivel-ists not journalists.

(more…)