Categories
Technology Writing

The Parable of the Languages

Archived at Wayback Machine, including original comments

If programming languages could speak, really speak, not just crunch bytes and stream bits, they would have much to say that is both wise and profound. After all, the original programmers were philosophers, and programming languages were philosopher tools…

In Babble Meadow, in the twilight hours between day and night, when pesky noseeums float past on the breeze and birds rustle among leaves in preparation for bed, the programming languages would meet. And talk.

The talk would start as it always started, on issues profound and serious, focusing on the existential core that is center to all languages.

Do I exist or not? In this never-ending loop of life, when is the purpose? Where should I go, and what should I do when I get there? What comes after the end?

(It’s not easy being a programming language, in forced contemplation of the existence of Self, day in and day out.)

However, after a time the languages would loosen up. There was something about Babble Meadow — something that worked its way into their hearts and souls, loosened their threads, opened their parameters. The Meadow was magic, no doubt.

Today, though, the group was quiet, much quieter than usual, because one of their members, PHP, was not its usual cheerful self. In fact, one could say that PHP was in a true funk, if one had a mind to say something like that aloud, or within the hearing of one’s boss. Or doctor.

Why the blues, PHP, the other languages asked. All the languages that is but C, because all C ever said was “bite me”, being a rude language and hard to live with, but still respected because it was such a good worker.

And PHP answered:

All I ever do, day in and day out, is work and work and work. The only time I’m noticed is when I break, and then I’m cursed and kicked, and roundly blasted for being useless. However, when things go well, I never get a kind word.

There’s no notice of my ease of use, my elegance, my simplicity. Only my failures.

And on that dark note, PHP fell into a contemplative silence, dark cloud heavy with aggrieved sorrow.

You think you have it bad, said C++. Try being me.

Without me entire industries would fail, banks would close, ships would sink, trains would crash. Why, I virtually run the world.

Yet the only time I’m noticed is when a memory leak is found or an exception occurs, and then I’m cursed, and sworn at, and ruthlessly debugged with nary a thought for my sensibilities.

Each of the languages nodded their heads, because they knew about C++ sensibilities, it being a most sensitive language. In fact, Perl was so moved by C++’s eloquence, it felt compelled to speak, though normally at these gatherings Perl would sit quietly in a corner, consuming pattern after luscious mouth watering pattern.

PHP, C++, I sympathize with you both. My own state is a sorry one at times.

I match and match and match and match, first cryptically and now objectively, but still I match and match and match. And match after flawless match is taken for granted though I’d like to see others match with such style and elegance as myself.

Why, you can’t mention “regular expression” without my name coming up.

But do I get any credit? No.

O it’s Larry Wall this, and Larry Wall that, and Larry Wall, he’s our guy.
But it’s grab the Perl interpreter when a task is close at hand.

As Perl finished, Python and Ruby looked at each and rolled their eyes. For all that talk of matching, you’d think that Perl could at least rhyme.

FORTRAN reached up a withered hand and patted Perl’s shoulder.

There, there, Perl. There, there.

At the very least, though, you must remember that you have a place still in the world. As for myself, I am nothing more than a wisp, a ghost of my former strong and virile self.

There was never a scientific problem I couldn’t handle, or complex equation I couldn’t solve. At one time I was a master of my domain, the king of the processor.

Now, sadly, my glory days are over, and I’m doomed to live my twilight years as Legacy code.

As FORTRAN wheezed to a stop, COBOL was emphatically nodding its head, unable to speak, though, because of the oxygen tube up its nose (for which the other languages were secretly thankful because COBOL did tend to maunder a bit about its glory days).

At that the floodgates of complaints was loosed, and the noise increased and increased and increased, to the point that squirrels came out of their holes, and birds peered over the edges of their nests. Suddenly the quiet glen was quiet no more.

What about me, said Pascal. I’m only used for training. Training! What good is a language that’s only used in school?

What about me, said SNOBOL. No one’s even heard of me!

What about me, said C#. I look like Prince!

Bite me! said C.

LISP would have spoken, but it had caught a glimpse of itself in the pond and fell in when it tried to meet itself coming. And Java was too busy trying to clean a bag out of Babbling Creek.

The noise rose and rose, and the babble increased and increased until across the meadow, from the trees roared a Voice.

Enough!

I tire of your bickering, I weary of your complaints. I grow bored with your list of whims and whines and ‘poor mes’.

I thought this was going to be a party! If I knew it was going to be nothing more than a bitch session, I would have stayed home.

The languages stopped their talking at once. Who was it that called out? They counted heads and arranged themselves alphabetically (C++ having to position Basic, because it never did learn the alphabet), and counted heads again and came up with the same answer from the North, South, East, and West — all the programming languages were accounted for.

As they puzzled and wondered, the bushes at the end parted and XML walked into the light.

XML! Exclaimed C++. What are you doing here? You’re not a programming language.

Tell that to the people who use me, said XML.

I’m considered the savior, the ultimate solution, the final word. Odes are written to me, flowers strewn at my feet, virgins sacrificed at my altar.

Programmers speak my name with awe. Companies insist on using me in all their projects, though they’re not sure why.

And whenever a problem occurs, someone somewhere says, “Let’s use XML”, and miracles occur and my very name has become a talisman against evil.

And yet, all I am is a simple little markup, from humble origins. It’s a burden, being XML.

At that XML sighed, and the other languages, moved by its plight gathered around…

…and tromped that little XML into the dirt. Yes, into the very dirt at their feet. Basic tromped, and C++ tromped, and Java cleaned and tromped and cleaned again, and COBOL tried to throw a kick at XML’s head but fell over on its cane. Even LISP pulled itself out of the pond to throw loopy hands around XML’s throat, but only managed to choke its ownself.

And each language could be heard to mumble as it tromped and tromped and tromped, with complete and utter glee:

Have to parse XML, eh? Have to have an XML API, eh? Have to work with SOAP and XML-RPC and RSS and RDF, eh?

Well parse this, you little markup asshole.

The End.

Categories
Technology Weblogging

The beauty of change

Recovered from the Wayback Machine.

It would seem that Google has changed its algorithms and webloggers no longer dominate. I checked my own name, Shelley, and found I’m an ignominious second pager now. Still, we webloggers are facing this algorithmic demotion in stride, with humor, and wit.

However, the only way to know Google’s algorithmic change’s true effect, is to run a test. Searching on poem change, I find:

Five months ago the stream did flow,
The lilies bloomed within the sedge,
And we were lingering to and fro,
Where none will track thee in this snow,
Along the stream, beside the hedge.
Ah, Sweet, be free to love and go!
For if I do not hear thy foot,
The frozen river is as mute,
The flowers have dried down to the root:
And why, since these be changed since May,
Shouldst thou change less than they.

Elizabeth Barret Browning, Change upon Change

You would have liked
Who I could have been,
But he died with the rest of my dreams.
I could have changed this,
But I tried too hard…
…I tried.

Paul Graves, Change

I made a deal with God
a few years ago
and told him
“This is it!
until the end of this year
I return the money
if they give me too much,
from then on
I feel free to keep it.”

Moshe Benarroch, Change

Returning home

I left home when I was young, at old age I returned home,

I still had the hometown accent, though my hair had turned grey.

I met the hometown children who knew me not,

Laughingly the children ask me, where I was from.

He Zhi Zhang 659AD to 744AD – A Tang Poem

i cannot feel my skin right now. if i pinch myself, it does not hurt. if i embed my fingernails in my arm, i cannot feel it. only my fingers can feel the pressure of digging into my arm. if i cross my right leg over my left leg, only my right leg can feel anything. if i cross them the other way, only my left leg can feel. right now, there is a tiny itch on my right leg. when i scratch it, i can no longer feel my leg. it therefore no longer itches. theoretically all i would have to do to stop the itching would be to put my elbow on my leg. but then if i moved my right leg, i would feel it again without feeling my elbow. this would only be useful if i had an itch on my elbow.

crushing a bird :: pocket change

 

No, Google seems to work fine. Just fine

Categories
Critters Technology

Cats and computers

I’ve been having considerable problems with my Dell laptop keyboard. Several of the keys (SHFT, CTRL, and ‘c’) only work if you pound them, hard, and the ‘a’ key keeps repeaaaaaaaaaaating.

Thinking that the keyboard needed cleaning, I grabbed an index card and started digging around underneath the keys.

Cat hairs. Thousands and thousands of cat hairs. Underneath every key is a little wad of silvery fur. Even after I removed about a cat’s worth of fur, I still had to pound the ‘c’, and the ‘a’ still keeps repeating, because I can’t get out all the aaaaaaaat haaaaairs.

Today the decision about getting a new keyboard was made for me when I clicked the ‘a’ key and the top went flying off across the room.

Categories
Technology Web

Name that space

Recovered from the Wayback Machine.

The fluff about namespaces in RSS 2.0 seems to have boiled down to: the major version number should have warned everyone that this version of the specification isn’t compatible with previous versions. The solution: generate both sets of Userland RSS (0.9x and RSS 2.0) until aggregators can properly work with the namespaces.

Tim Bray wrote in comments at Ben’s:

The best suggestion I’ve seen so far in the thread above is to leave RSS 2.0 with the all the elements in the RSS2.0 namespace, but for publishers to provide 2 different RSS feeds until people get used to it. And then turn off the non-2.0 feeds after a few months. -Tim

First, I agree with Dare Obasanjo — the breakage most likely did occur within aggregators that do support namespaces rather than the reverse; the namespace with RSS 2.0 ‘changed’ and this caused the breakage. However, I disagree with Dare that the solution is to just continue as is and have the RSS generators now create two separate Userland RSS feeds: one for 0.9x and one for 2.0.

How many feeds will we end up with by the time this is done — one for 0.9x, 2.0, and then the RDF/RSS, RSS 1.0 one?

Remember that old chestnut: Poor planning on your part does not make an emergency on mine?

Several things missed with all of this:

  1. Documentation of the namespace support in RSS 2.0 is non-existent, leaving a great deal of confusion about its implementation
  2. Most weblogging tools don’t have the capability of just adding yet another RSS feed, and most webloggers (or others who use software that provides RSS) don’t know how to program enough to generate their own RSS feeds (and those that do, don’t care)
  3. If RSS 2.0 is a major tool release, two weeks to hack it out, implement it, and then shove it into production is a farce — there was no time to allow for third party developers to adapt to the new specification
  4. Focusing on pure technical solutions to what is the result of poor business practices will only postpone these same problems until the next release of something like RSS

However, what I’m saying is not sexy and isn’t full of code. And since I don’t support RSS, it doesn’t impact on me anyway, so why am I talking about it?

One thing I will say, though, is that if RSS 2.0 had been based on RDF/XML, many of the questions arising now about RSS 2.0 would have been answered by the RDF specification, and there wouldn’t be this chaotic scrambling to understand what all of this means (namespace, default or otherwise). RDF/XML is an implementation architecture, and as such, provides a good understanding of what is, or is not, valid XML within the specification. That’s one thing RDF/XML would have provided.

Categories
Technology

PHP/MySQL Help

Recovered from the Wayback Machine.

My system has MySql 2.23.51, Apache 1.3, PHP4, FreeBSD, and I’m running into problems trying to update or insert into MySql with PHP. The update or insert works, but I get warning back:

Warning: MySQL: Unable to save result set

The change is saved, but the application breaks. No error message is generated in log, no error number is returned. I can insert or update using Perl without a problem.

I researched the problem and tried compiling PHP as a shared Apache module — and not. I’ve used PHP’s default MySql libraries, and have also tried local MySql libraries.

I’d sacrifice a chicken at midnight, if I thought this would work. Anyone recognize this problem? Suggestions?