Categories
Programming Languages

Dabble

I agree with Sam Ruby: a successful tech is a diversified one. You can’t always depend on a new millennium to justify sticking with one and only one programming language.

This last week I worked with Java, JavaScript, PHP, Python, and Ruby. I had been on a long hiatus from Java after the end of the dot-com era, but now I’m back and plan on sticking it out with the language. Yes, even unto J2EE.

I also agree with Michal Wallace: you are more likely to have an easier time getting work if you focus on .NET than Python. In some ways, I think that the interest in Ruby has slowed the interest in Python. Sure you can work with both languages: but why would you want to?

In St. Louis, the demand is for .NET (VB or C#) or Java. That’s it. I mean, that’s really it. Most of the other work in PHP or Python or Perl is off-shored.

When I move to the northwest, I imagine I’ll either need to get back into .NET or brush up my C++ skills, in addition to the Java. If one has up to date C++ skills, one can usually find work.

As for JavaScript — every web developer should be proficient in JS. Eventually you’re going to want to validate a field before sending it to the server, or have to muck with cookies. There will always be someone somewhere who will say, with breathless excitement, “What about AJAX?” JS is ubiquitous.

PHP is also ubiquitous, but there just isn’t the work for it. Nor Python. Perl’s fading. I have my eye on Ruby, though.

Categories
Critters

Squid attacks

Thanks to Scott Reynen for the link to a second squid focused weblog–this one by Laughing Squid. The site has two items that especially caught my eye (figuratively) this week:

War of the Worlds with a real squid.

Filming the Red Devil — a National Geographic film clip showing large Humboldt squid attacking the man who is attempting to film them. It’s an incredible film — well worth multiple viewings.

Categories
Critters People

The Rule of Small Deer

There were three deer on the path in front of me.

They didn’t run when they saw me. They just stood there staring at me. Finally, as one, they moved: one pawed the ground, one began eating the leaves from a small bush, the third started walking towards me.

Deer are supposed to run from people, not approach us. I walked closer to the deer coming towards me and it didn’t stop.  I stamped my foot and it didn’t stop. I raised my arms and waved and it didn’t pause, didn’t blink, didn’t stop. I turned around to go back and only then did it head back to the other two.

I turned around, back towards the deer. The little bold one swung around back to me, as if it were on a string pulled by my movements. I began to walk towards it, thinking this time it would shy away. It didn’t. I moved closer until I could see the ragged edges of its fur and the tiny black at the center of its eyes. Still, it came.

I didn’t know what to make of the deer, but I could imagine.

I imagined it had run from humans one too many times. Run from the food and the best footing and the last of the sunshine. Run back into the trees and the shadows and the low branches waiting to trip it and the bushes already picked clean.

Probably decided to hell with it. Yes, that’s it. To hell with it. You push anything hard enough, even a small deer, and they’ll think to hell with it.

Categories
RDF Semantics

I love you 25% of the time

Oooo. This is fun. *claps hands*

David Weinberger asks:

Let’s say I want to express in an RDF triple not simply that A relates to B, but the degree of A’s relationship to B. E.g.:

Bill is 85% committed to Mary

The tint of paint called Purple Dawn is 30% red

Frenchie is 75% likely to beat Lefty

Niagara Falls is 80% in Canada

Other than making up a set of 100 different relationships (e.g., “is in 1%,” “is in 2%,” etc.), how can that crucial bit of metadata about the relationship be captured in RDF?

In my opinion, there is no one way to record a percentage in RDF. That’s the same as saying that being faithful to a lover 50% of the time is equivalent to eating only 50% of a banana split.

So let’s take just one of the examples David gives us: Niagra Falls is 80% in Canada. At first glance, if we wanted to limit ourselves to recording this fact, using one and only one triple, we could do the following:

Niagra Falls — has an 80% existence — in Canada.

That records the fact. If I were specifically looking this information up, I would have it. The only point is, that’s all I would have. I could continue this, as David says, with an 81% existence, and an 82% existence and so on. How tedious. Humans don’t work this way. We don’t memorize every single number in existence. No we memorize ten characters, and we devise a numeric system to derive the rest–learning how to use this number system instead of memorizing all possible numbers.

What we need is a way of capturing that ability to derive new concepts from existing facts using a set of triples in the form: subject predicate object.

Rather than dive straight into the triples, let’s look at the question from a perspective of David, being David, and me being me, and this being April, 2006. In other words–let’s look at what David is really saying when he gives the sentence: Niagra Falls is 80% in Canada.

When David said Niagra Falls is 80% in Canada, what he’s saying, in an assumed short-hand way, the following:

Niagra Falls exists 80% in Canada.

This statement was made in 2006.

Canada is a country.
A country is a political entity, which may, or may not have, a fixed physical location.

Niagra Falls is a physical entity.
Niagra Falls has a physical location.
Niagra Falls has an area, bounded by longitude and latitude.

Niagra Falls’ physical location has nothern terminus longitude of ____.
Niagra Falls’ physical location has a southern terminus longitude of ____.
Niagra Falls’ physical location has a western terminus latitude of _____.

In 2006 Canada’s southern most border is at longitude ____.
In 2006 Canada’s western border is at latitude of ____.
In 2006 Canada’s northern most border is at longitude ____.
In 2006 Canada’s eastern most border is at latitude of ____.

Why all of the different sentences? Because there’s more to the statement “Niagra Falls is 80% in Canada” than first appears from just the words. We want to capture not only the essence of the words, but also the assumptions and inferences that we, as humans, make based on the words.

Given David’s statement that Niagra Falls is 80% in Canada, what can we infer?

That the statement about Niagra Falls being 80% in Canada was made in 2006.
That Niagra Falls has an area bordered by such and such latitude and such and such longitude. This is a physical, fixed, location (though not immutable).
That in 2006, Canada has an area border by such and such latitude and such and such longitude. This is a mutable, political border, though rarely changing.

Based on all of these, we can determine that 80% of Niagra Falls is in Canada.

The semantic web means capturing information so that we can make inferences based on conclusions. Since wetware is still experimental, and we haven’t yet created machines that can build inferences without a little help from us’ons, we provide enough of the other details to reach a point where we can infer all the facts from a given statement.

Therefore, we have the following triples (using English syntax rather than Turtle or some other mechanistic format, since I’m writing for people not machines right at the moment):

A geographical object has a physical existence at a point in time.
A geographical object’s physical existence can be measured in area.
The area of a geographical physical object’s physical existence is found by taking the length of one side and multiplying it by the length of the other (broadly speaking).
The length of one side can be found by finding the difference of it’s boundaries, as measured by it’s southern and nothern longitudes.
The length of the other side can be found by finding the difference of it’s boundaries, as measured by it’s western and eastern latitudes.

A geopolitical object is also a geographical object.
A country is a geopolitical object.
Canada is a country.

Canada’s 2006 border has a northern most longitude of ____.
Canada’s 2006 border has a southern most longitude of ____.
Canada’s 2006 border has a western most latitude of _____.
Canada’s 2006 border has a eastern most latitude of ______.

Niagra has a northern most longitude of ______.
Niagra has a southern most longitude of ______.
Niagra has a western most latitude of _____.
Niagra has an eastern most latitude of _____.

Seems like a lot, but this is actually capturing what David is saying; he just doesn’t know he’s saying it. If we just recorded the fact Niagra Falls is 80% in Canada, we would be leaving all the important bits behind.

There’s better schema folk than I, and they can, most likely, come up with better triples. The point is that RDF doesn’t record facts. We have existing models that do a dandy job of recording facts. Given an infinitely long, one-dimensional flat plane where all facts have a single point of existence, we have systems that can capture snapshots of this plane far more efficiently than RDF.

Consider instead, a model of knowledge that consists of an infinite number of finite planes of information, intersecting infinitely. That’s RDF’s space, recording these points of intersection.

Categories
People Photography Weblogging

Lonely impulse

One of my favorite webloggers has been very quiet and I did my usual, which was go into the comments of his last post in preparation of putting in a comment about being quiet, missing him, that sort of thing. Another had already been there, and commented the same, but what stopped me was the response. The weblogger wrote back about getting inspired of this topic or that, but asking himself was he going to a pleasant and helpful person with his writing, and upon answering himself, marked the items as read and went about doing other things.

I thought about emailing the weblogger and telling him he’s missed, and he’s cherished, and we love all his bits no matter if they were “pleasant and helpful” or “acerbic” and even more helpful. But I decided, and this is the reason I don’t name him specifically, that he has to make his own decision about the value of his weblog to himself–I have no right as reader to scold him, as if he’s withheld a lolly by not writing to his weblog. As a reader, the only right I have is to read, or not.

Being a person who also feels friendship with the weblogger, I have even fewer rights. The only right we have is to feel friendship, express it, but we can’t demand a thing in return. We may think we’ve given a precious gift, and as such the other owes us something in return. They don’t owe us a damn thing, and that makes life interesting, challenging, and sometimes, disappointing.

The greatest leap of faith is not based on how we feel about God, all apologies to Kierkegaard. It’s how we feel about one another. Those who study yoga, who sit in silent contemplation of self for hours at a time–they may think they are discovering much about themselves, but what they are doing is creating a walled garden about themselves; building barriers against the binds and ties with others; these connections that we can’t control and that can go from gentle and fulfilling companionship to wild fury in an instance–like the mustang on harness, lipping sugar from our hands one moment, demanding freedom with sinewy strength and desperation the next.

I can empathize with my friend, the weblogger. I’ve felt the last few months that much of what I’m saying seems to be counter to something, or in disagreement with someone–verbally, I’ve been drop kicking the puppies, kittens, and bunnies in our midst. And why not? They raise their butts in the air, they taunt us, demanding kicks. And when I blaze forth in words, the site seems to come alive and sparkle and we’re all engaged and everything seems to click. Most importantly, no puppy, kitten, or bunny was truly harmed in the writing of the screed. When I kick the proffered butts, I send the puppy or kitten or bunny flying higher than it would reach, sitting on the ground looking harmless. And cute. And innocuous.

When the coin of the realm is attention, we all benefit.

Nothing changes, though. I have not built anything during that time. I have not created a great work of writing or art. I have not added to my book, or worked on that new RDF application I’ve had in mind. All I’ve done is fluff what was already fluffy, and polish the shiny parts.

But the attention feels so good! What, you think that for all my talk of disdaining attention I don’t like it? We all like it. Some of us even crave it–like that horse and the sugar. We crave the feeling of connectivity–I bet even the most popular of us counts comments, feeling them, fondling them like sugar cubes in their pockets. That’s an apt analogy, too, because the attention we get is the sugar that also keeps us acquiescent and tamed to the hand.

A fortune I found in a cookie yesterday read:

Your artistic talents win the approval and applause of others.

Emily Dickinson sat at her desk in her home for decades, writing poem after poem, which she would sew into little books and then place into a chest. She asked that they be burned on her death. We, of course, betrayed her to our own good. Most of us, however, write what could be safely burned with little loss. That is our purpose: we are Not Emily. The Emilies need us Not Emily. If we were all Emily there would be no Emily.

It wasn’t just her talent that set Emily apart from other poets. Emily’s writing is unique in that her words are written in a state of being that is absolutely adrift from any other human being. She had achieved a perfect dis-connectivity in her writing. There was no desire to please, or displease in her work; there was no reaching out; no attempt to initiate emotion in others. She was both creator and consumer–the play and the audience. Her writing just was.

Emily found the same state discovered by the Irish airman in my favorite William Butler Yeats poem, An Irish Airman Forsees His Death: she had found her lonely impulse of delight.

I know that I shall meet my fate
Somewhere among the clouds above;
Those that I fight I do not hate,
Those that I guard I do not love;
My country is Kiltartan Cross,
My countrymen Kiltartan’s poor,
No likely end could bring them loss
Or leave them happier than before.
Nor law, nor duty bade me fight,
Nor public men, nor cheering crowds,
A lonely impulse of delight
Drove to this tumult in the clouds;
I balanced all, brought all to mind,
The years to come seemed waste of breath,
A waste of breath the years behind
In balance with this life, this death.

Should my friend return to weblogging? Well that’s a decision he’ll have to make for himself and one with which we have no influence. I won’t lure him, though, into returning, with hints of attention and promises of continued readership and expressions of kinship. He knows I like his writing, but that may not always be. He knows I like and respect him, but people change and life goes on.