Categories
Burningbird

Come together

I finally started posting the updated chapters for the Practical RDF book, over at the weblog. These have been edited, drastically, since the last release. The end is in sight for this book and I’m not sure who’s happier: me or my editor. This book has been a long time coming.

Thanks to my most recent announcement about the TOC, I was introduced to some new and very interesting uses of RDF/XML out there ‘in the world’; including a very sophisticated commercial application. These are all covered in the updated chapters.

Other work, though the effect is subtle: I’ve made some majors modifications here and there. For instance, the Recent Comments, Recent Trackbacks, and Recent Writing sections now cross all of my weblogs/web sites. I found that with the Practical RDF, weblog keeping it in isolation from Burningbird was not a good idea.

Now, no matter what main page you go to you’ll be able to see, at a glance, what’s happening elsewhere in the Burningbird Network. I used PHP/MySql to make these change, and once I test the code out a few days, I’ll post it online.

I didn’t use Movable Type plug-ins because by the time I’m finished with the Burningbird Network re-organization and my porting of all the BB Net pages to Moveable Type, I’ll have over twelve main weblog/web site pages. MT plug-ins would require a re-build of all these pages whenever a comment or trackback arrived or a new posting or edit was made.

There’s much less CPU involved just by accessing recent activity directly from the database. Since the amount of data is small and the queries are optimized, the data access should be lightweight. If anything, the PHP processing is what slows the page accesses with my current host, which tends to be a bit CPU and bandwidth bound, rather than I/O bound.

(In other words, with my current host, CPU resources are a bit strained, as is the available Internet bandwidth; however, internal file access, which is what happens with local database queries, does not seem to be strained at this time.)

Of course, all individual and category or secondary pages are static HTML. They’re only re-built when a change is made to the page that impacts them, only, so it was more efficient to use MT plug-ins with them. The only exception is the Backtrack PHP page, which is why it’s linked from the individual pages, instead of incorporating the processing directly into the page itself.

It’s coming together. It’s all finally starting to come together. Right now, over you.

(Apologies to the Beatles for taking their song title and messing with their words.)

Categories
Writing

Mockingbird’s Wish

Recovered from the Wayback Machine.

The news spread first as a whisper and then as a shout: First Mother was granting to each creature one wish. One wish, only, but whatever was asked, would be granted. Mockingbird heard the news from Hawk who head the news from Sparrow who heard the news from Robin and the forest was atwitter with the sound of the birds as they discussed this extraordinary event.

When the Great Day came, all the birds gathered in the Glen, bending the limbs of the trees until they grumbled and groaned out from the weight. Suddenly, a smell of new grass and old dirt and the sound of sea breeze and rustling sand and the light of the sun and the moon entered the Glen, and all the birds bowed low because this was First Mother, the first of all of them. The light was so bright they could not see her form, but they could feel her warmth, and when she spoke each word seemed weighted, as if pulled from Time itself.

:My friends, today I give each of you a wish. One wish only, but whatever you ask, I will grant it.

The birds clacked their beaks and moved their wings until the Glen was full of the sound of feathers; but they fell still when First Mother spoke again.

:Before you ask your wish, though, think hard, and think long. Whatever you ask will be given on to you and to all your descendants for all time. Do not spend your wish foolishly.

And, as the words ended, a beam of light shone out from the glory of First Mother and fell on Cardinal.

:What will you have Cardinal?

Cardinal shied back at first, startled at being the center of eyes, shaken by the light that shown dully on its plain brown feathers. After a moment, though, it spoke out.

“First Mother, I have long been plain. Neither small, nor large, with no interesting markings and no particular song. I would wish, more than anything, to be beautiful. To be of a color so rich that it is noted throughout all lands. This is what I truly wish.”

:So be it, Cardinal.

The light on Cardinal began to intensify and became so bright that all of those in the Glen had to turn away because it hurt their eyes so. When it suddenly stopped, the birds blinked their eyes to adjust to the darkness. As each recovered its sight it turned towards Cardinal, and gasped out at what it beheld.

Where Cardinal had been, dull and brown and plain and unseen, now stood a glorious creature of incredible color! Rich red shown from its wings and around its face dark velvety black. Slowly, Cardinal became aware of the other birds stares and tentatively stretched its own wing out. When it beheld its beauty and its color, which shown out even in the darkness, it was overcome, bringing both wings over its face, body trembling with joy at the change. When it could finally speak, it whispered out, “First Mother, thank you. Thank you from the bottom of my heart, and thank you from all my descendants throughout all time”. At those words, Cardinal bowed low to the ground.

Cardinal among trees

The act was repeated many times. The shining light, the wish, the incredible change. On through the afternoon and through the night and the next day, First Mother granted the wishes of whomever the light shown.

Eagle wished for sight that would allow it to spot food from high above. Pelican wished for a beak that would allow it to hold many fish. Crow asked for cunning, and when it made its bow in gratitude, unlike the other birds it kept one eye cocked towards First Mother, always alert for the main chance.

Owl asked to see at night, and Nightingale asked for glorious song. In fact, many birds asked for a special song, all of their own, all unique and beautiful. To listen to each sing their first song after their wish was granted was a glorious experience indeed.

Mockingbird watched all of this in wonder and more than a little envy. It thought it to itself, “I would have liked to have the red of the Cardinal, and the eyesight of the Eagle, and the song of the Nightingale, but they were asked first.”

As time went by and other birds had their wishes granted — Seagull to fly and Penguin to swim and Ostrich to run — Mockingbird’s envy grew, until in the midst of its discontent an idea came to it. The Idea of all Ideas! It smiled to itself, sure that it’s wish would be the best of all. When its turn finally came, when it felt the heat and warmth of the beam, Mockingbird knew what to ask.

:What will you have Mockingbird?

“First Mother”, it said. “I have listened to the song you’ve given Nightingale and Canary and Meadowlark. And I asked myself why should I have only one song, one sound, when I can have many.” Mockingbird boldly looked into the light that was First Mother.

“That is my wish — to have all the songs of all the birds of the world. To be able to hear any bird and any song and sing as sweetly or as cleverly as they do. I want all the songs, First Mother. All of them.”

:Mockingbird, your wish is both vast and shallow. Are you sure of your wish? Are you sure that what you want is all the songs of all the birds?

“Yes, First Mother. I am”, Mockingbird replied, smug in the knowledge that First Mother would grant the request.

:So be it, Mockingbird.

Slowly the air around Mockingbird brightened until it had to close its eyes from the light. A faint shock went through its body and settled in its throat, and it knew that its wish had been granted. As it waited for the light to dim, and to be able test its new abilities, it was surprised to hear what sounded like a sad sigh within the glow around it.

After the beam stopped and the light faded, all the birds looked at it in silence. “This will never do”, thought Mockingbird to itself. “You there, Canary. Sing something!”

Canary moved to protest but of course the protest issued forth as glorious song. And after a few notes, Mockingbird felt something come over it and opened its beak and from its throat came sounds twin to Canary. Canary was so surprised it’s song sputtered to an indignant stop.

Though its song was lovely, indeed, Mockingbird wasn’t satisfied. “You, there, Meadowlark! Sing!”, it demanded.

As with Canary when Meadowlark sought to protest its protest came out as song and soon the sounds of Meadowlark joined the song of Canary, and were eventually joined by Nightingale and Robin and Finch and so on until Mockingbird’s song outshone all of them for it’s intricate beauty and complex melody, one bird’s song after another. Even the trees were moved to silence and ceased their complaints at the wonder of the sound.

The other birds were not happy because what was once uniquely their’s now belonged to another. However, they didn’t complain because to do so would be ungrateful to First Mother.

After all the wishes had been granted and after First Mother left the Glen, the birds dispersed to their homes, some to plains, some to the sea, and some to forest where Mockingbird made its home. Over time other creatures came to the trees and they were eventually joined by First Man and First Woman. Villages sprang up and roads were built. and Mockingbird took delight in siting in the trees near the villages, singing its song, well satisfied when it looked down on the entranced faces that stared at it.

One day Mockingbird was sitting in a tree near the road when an old man and a little girl walked beneath it. It began its song, a complex weaving of Chickadee, flowing into Hawk cry, mixed with the mournful tone of Owl, and ending on delicate otherworldly chimes of Hummingbird. The old man and the girl stopped, caught in the spell of the sweet sound.

“Grandfather, what kind of bird is that, which can sing so many songs!”, the little girl asked.

“Well, granddaughter, that is Mockingbird. And it can sing all the songs of all the birds in the world. In fact, there is no song it cannot hear that it cannot sing.” The old man sighed. “Is it not beautiful?”

“It is grandfather. A lovely sound indeed.”

The little girl listened for a time and then turned to her grandfather, a puzzled expression on her face.

“But Grandfather, what is Mockingbird’s true song? How can we tell which song is true and which song copied if it sings all the songs of all the birds in the world?”

“Granddaughter, the Mockingbird has no song of its own. It’s only sound is that which it borrows from others.” At that the girl seemed sad, and the old man hastened to reassure her. “But isn’t its song beautiful and rich? Why are you so sad?”

“Because, grandfather, the Mockingbird has no song of its own.”

On hearing this Mockingbird’s sound faltered and it fell silent. When the song ended, the old man and the little girl, released from the spell of the music, walked away, leaving Mockingbird alone with its thoughts.

Thoughts now filled with regret.

Categories
Diversity People

I have a dream

Recovered from the Wayback Machine.

Five score years ago, a great American, in whose symbolic shadow we stand signed the Emancipation Proclamation. This momentous decree came as a great beacon light of hope to millions of Negro slaves who had been seared in the flames of withering injustice. It came as a joyous daybreak to end the long night of captivity. But one hundred years later, we must face the tragic fact that the Negro is still not free.

One hundred years later, the life of the Negro is still sadly crippled by the manacles of segregation and the chains of discrimination. One hundred years later, the Negro lives on a lonely island of poverty in the midst of a vast ocean of material prosperity. One hundred years later, the Negro is still languishing in the corners of American society and finds himself an exile in his own land.

This will come as no surprise that I’m a proponent of Affirmative Action. However, lest you think I believe in Affirmative Action because I’m some kind of fuzzy headed 60’s flower child liberal do-gooder with more ideals than sense, be aware that my interest in Affirmative Action is purely selfish in nature.

It is my opinion that while this nation is one where most of the wealth and power is held in the hands of one race, and one race alone, it will never be great. It can never hope to be great. It will always limp along in its own blind self-image of greatness, smug in the belief that great power deserves great respect; yet most of the people of this world, and too many in this country, see the United States as the ultimate hypocrite — the land that calls itself equal when it is anything but.

 

So we have come here today to dramatize an appalling condition. In a sense we have come to our nation’s capital to cash a check. When the architects of our republic wrote the magnificent words of the Constitution and the Declaration of Independence, they were signing a promissory note to which every American was to fall heir.

This note was a promise that all men would be guaranteed the inalienable rights of life, liberty, and the pursuit of happiness. It is obvious today that America has defaulted on this promissory note insofar as her citizens of color are concerned. Instead of honoring this sacred obligation, America has given the Negro people a bad check which has come back marked “insufficient funds.” But we refuse to believe that the bank of justice is bankrupt. We refuse to believe that there are insufficient funds in the great vaults of opportunity of this nation.

So we have come to cash this check — a check that will give us upon demand the riches of freedom and the security of justice. We have also come to this hallowed spot to remind America of the fierce urgency of now. This is no time to engage in the luxury of cooling off or to take the tranquilizing drug of gradualism. Now is the time to rise from the dark and desolate valley of segregation to the sunlit path of racial justice. Now is the time to open the doors of opportunity to all of God’s children. Now is the time to lift our nation from the quicksands of racial injustice to the solid rock of brotherhood.

 

I was disappointed but not surprised when President Bush decided to throw the power of the White House against the University of Michigan’s admissions policy, one in which factors such as ethnicity, neighborhood, and economic status can influece a person’s admission into the University. President Bush says using race as a factor in college admissions is unconstitutional.

I agree. But since race has been a factor in college admissions for hundreds of years in this country, I think it’s only fair to continue this practice until everyone has had a chance to play. After all, Bush himself benefited by this unconstitutional application of race, and the connections to power and wealth, in his own entrance to Yale.

 

We cannot walk alone. And as we walk, we must make the pledge that we shall march ahead. We cannot turn back. There are those who are asking the devotees of civil rights, “When will you be satisfied?” we can never be satisfied as long as our bodies, heavy with the fatigue of travel, cannot gain lodging in the motels of the highways and the hotels of the cities. We cannot be satisfied as long as the Negro’s basic mobility is from a smaller ghetto to a larger one. We can never be satisfied as long as a Negro in Mississippi cannot vote and a Negro in New York believes he has nothing for which to vote. No, no, we are not satisfied, and we will not be satisfied until justice rolls down like waters and righteousness like a mighty stream.

 

My interest in Affirmative Action is purely selfish. I believe that if blacks had been freed when the immortal words, “All men are created equal” were written, we would have a different country today. And if blacks had been treated with respect and given opportunities several hundred years ago, instead of only the last few decades, we would have a better country today.

If blacks had been allowed to become doctors, we might have cures now for cancer. If blacks had been allowed to become scientists, we might have fusion power; harnessing the energy of the sun in a safe manner so that even in the cities amidst all the lights we might still see the stars because the skies are free of smog.

We might have less poverty, less crime, more music and art and literature. What plays were unwritten because blacks were not allowed to read or write? What great books have been lost? If we had not denied equal opportunity to so many in this country for so long, we could truly be great today, and no one, no one could deny this. I believe this.

 

I have a dream that one day this nation will rise up and live out the true meaning of its creed: “We hold these truths to be self-evident: that all men are created equal.” I have a dream that one day on the red hills of Georgia the sons of former slaves and the sons of former slaveowners will be able to sit down together at a table of brotherhood. I have a dream that one day even the state of Mississippi, a desert state, sweltering with the heat of injustice and oppression, will be transformed into an oasis of freedom and justice. I have a dream that my four children will one day live in a nation where they will not be judged by the color of their skin but by the content of their character. I have a dream today.

 

Some people say that Affirmative Action is discrimination, a positive discrimination, and I say so what if it is? If the saw that cut me one day is all I have to save my life against the winter cold, can I be blamed for picking it up again to cut wood?

We must use every weapon in this war against the status quo because those who seek to protect the status quo will use every weapon in their power to resist, up to an including the use of the term “discrimination”. How this word must taste of ashes in their mouths.

Blacks make up 13% of the population of this country — this means that 1 out of about 8 people in this country is black. In a truly equal society, then, every profession in this country should have, at least, one black for every eight people. Stand up the next time you’re at your job and look around you? Do you see one black person for every eight employees? I know that in my computer technology field I don’t see this. In fact, I have been at some conferences and among several hundred people attending I’ve not seen one black face. Not one black face.

Don’t believe me? Next time you attend a technology conference, look around you. What do you see? Are there blacks among the attendees? Among the speakers? Or are the only blacks you see those who bus the tables at lunch.

If blacks had not been denied opportunty all those many years ago, where would my field be today? Would we have had computers earlier? Would we still be using keyboards and monitors or would computers be in the air around us, listening for our spoken words and with the ability to display an image in the air in front of us anywhere we are. What could we do? What couldn’t we do.

 

I have a dream that one day the state of Alabama, whose governor’s lips are presently dripping with the words of interposition and nullification, will be transformed into a situation where little black boys and black girls will be able to join hands with little white boys and white girls and walk together as sisters and brothers. I have a dream today. I have a dream that one day every valley shall be exalted, every hill and mountain shall be made low, the rough places will be made plain, and the crooked places will be made straight, and the glory of the Lord shall be revealed, and all flesh shall see it together. This is our hope. This is the faith with which I return to the South. With this faith we will be able to hew out of the mountain of despair a stone of hope. With this faith we will be able to transform the jangling discords of our nation into a beautiful symphony of brotherhood. With this faith we will be able to work together, to pray together, to struggle together, to go to jail together, to stand up for freedom together, knowing that we will be free one day.

 

If our country had been based on tolerance all those years ago when it was born, how much richer as a people would we be now? Would we have fought the wars we fought? Would we be faced with a war in Iraq now? How different would this world be if we had been the first to show that people of different races, and religions, and beliefs could exist side by side in harmony.

We had a choice then and walked down the wrong path and we’ve paid the price and we continue to pay the price and it is a heavy one. Let’s not continue to walk down that path — it’s time for change, true change. The status quo only benefits a few who ask too many of us to die to defend it. I think its time we stop being the pawns and started thinking for ourselves.

I think it’s time we started living up to the ideals that we put into words and song, “The land of the brave, the home of the free.”

 

This will be the day when all of God’s children will be able to sing with a new meaning, “My country, ’tis of thee, sweet land of liberty, of thee I sing. Land where my fathers died, land of the pilgrim’s pride, from every mountainside, let freedom ring.” And if America is to be a great nation, this must become true. So let freedom ring from the prodigious hilltops of New Hampshire. Let freedom ring from the mighty mountains of New York. Let freedom ring from the heightening Alleghenies of Pennsylvania! Let freedom ring from the snowcapped Rockies of Colorado! Let freedom ring from the curvaceous peaks of California! But not only that; let freedom ring from Stone Mountain of Georgia! Let freedom ring from Lookout Mountain of Tennessee! Let freedom ring from every hill and every molehill of Mississippi. From every mountainside, let freedom ring.

When we let freedom ring, when we let it ring from every village and every hamlet, from every state and every city, we will be able to speed up that day when all of God’s children, black men and white men, Jews and Gentiles, Protestants and Catholics, will be able to join hands and sing in the words of the old Negro spiritual, “Free at last! free at last! thank God Almighty, we are free at last!”

Martin Luther King, Jr. I have a Dream

Happy birthday, Martin Luther King, Jr.

Categories
Technology

YAM—Yet Another Modification

One more modification. Since I do make updates to a weblog posting — to add new information, make corrections, whatever — I made these easier to spot.

First, I’m now highlighting the change, putting a box around it with a different color of background. In addition, I pulled my old MT tag-based recent entry list and replaced it with a PHP/MySql application that lists the ten most recently modified weblog postings, regardless of whether this modification is a new entry, or a modification to an older one.

This list, which is between the Recent Comments and the Recent Trackbacks, should help you keep up with all my fast fingered, quick typing, multi-faceted, many changeable weblog posting entries. It’s part of my strategy to bubble-up changes to the top.

Champagne development and caviar schemes.

Of course, I realize that I’m violating one of the sacred rules of weblogging: thou shalt not edit. Oh, but it’s so fun! I could use this list in addition to the traditional MT Recent Entries listing, but for now I’ll just stay with the recent modified list.

I’ll probably get back to non-tech posts in a bit. Right now, I’m having a little bit of fun playing around here, in this my toy box. However, I feel a Mark Twain post hovering near my mind.

Code: Change database, blog-id, user, and password, as well as your own archive location and archive file format. Do not change the status or you’ll end up with the draft posts as well as the published ones. Could be embarrassing.

 

<?php

$link = mysql_connect(“localhost”, “user“, “password“)
or die(“database errors”);
mysql_select_db (“database“);

$query = “SELECT entry_id, entry_title, entry_modified_on from mt_entry where entry_blog_id = 2 and entry_status = 2 ORDER BY entry_modified_on desc limit 10″;

$result = mysql_query($query) or die(“database errors”);

while ($line = mysql_fetch_array($result, MYSQL_NUM)) {
$input = $line[0];
$input = str_pad($input, 6, “0”, STR_PAD_LEFT);
printf(“<a href=’http://weblog.burningbird.net/fires/%s.htm‘>%s</a><br />”,
$input, $line[1]);
}

/* Free resultset */
mysql_free_result($result);

/* Closing connection */
mysql_close($link);
?>

Categories
Technology Weblogging

Burningbird’s threadneedle strategy

Recovered from the Wayback Machine.

I wanted to provide the details of my overall Threadneedle strategy to fill in some of the gaps in the material I’ve supplied to this point for comments, Trackback, and Backtrack. I also want to provide instructions on how to incorporate some of this into non-Movable Type environments.

My goal is to encourage and track conversations related to, and surrounding, any one of my posts. Ultimately, from a Threadneedle perspective, this effort will add my thread into others in a distributed conversation open to any interested party.

This multi-step guide should provide the detail about comments, trackback, backtrack and related technologies, so that you can incorporate much (or all) of this information within your weblog, regardless of tool. Read on…

Step 1The first step in Threadneedle enabling this weblog was to enable comments. Comments allow people to join the conversation associated with a post, even if they don’t have a weblog (or prefer to be anonymous). The use of comments was further refined by the “Recent Comments” functionality. Recent Comments allows my readers to see where new comments are occurring so that they don’t have to hunt around among my posts — even older posts — looking for new activity. You can read how I enabled Recent Comments in this posting.

In parallel with this activity, I’m replacing all of my web sites with weblogs, and enabling comments on all of my work, not just the so-called ‘traditional weblogging writing’. I’m making this move because weblogging software, with its comfortable templates and lean, but sophisticated content management is, to me, an incredibly effective tool to use for all web content management. And comments add a dynamic to my existing static pages, which should help them to remain vibrant and healthy, rather than dulled, dusty, and disused.

However, I don’t want all of this material across all these weblogs to exist in isolation, so I want to show on each ‘main’ weblogging page — not the individual pages, which should be kept free of processing — the recent comments across all of the weblogs. I could use a MT plug-in, but this would be forcing a re-build on all of the main weblog pages for each new comment issued. This is prohibitive. A better approach is a well-tuned SQL query, embedded in PHP.

At this time, I’m using Movable Type tags to track recent comments for each individual weblog. A future enhancement will use PHP/MySql to track recent comments across all my weblogs.

If you’re not using Movable Type, then, of course, you’ll use whatever comments are available in your environment. This also applies to how you would track comments across many implementations of weblogs, something I just can’t cover here because the different comment implementations vary too widely.

 

Step 2 

The second step in my threadneedle strategy was to enable Trackbacks. With this, people who link to me, or write something related to one of my posts, can send me a trackback ping. This ‘ping’ is really an HTTP call with some associated data, such as entry being pinged, the link of the remote posting that pinged me, and that posting title and an associated excerpt. The Trackback functionality, implemented as part of Movable Type using Perl and CGI on my system, takes this information and stores it along with the associated weblog posting that was ‘trackback pinged’.

In my main page is a link that opens a CGI generated page that lists all of the trackbacks that have been made against the page, along with the unique trackback ping for that entry. A movable type tag lists the number of trackbacks the entry has received and when I receive a trackback ping, my main page is automatically re-built so that this number is incremented.

Additionally, I also added trackback to my individual posting archive pages so that each is listed just above my comments. You can read how I accomplished this functionality in this weblog posting

On final change I made was to add the RDF/XML for Trackback auto-discovery. This is added to the individual posting page, and allows any tool that can process the RDF/XML to find out the trackback ping id, excerpt, title, and link associated with that posting. You don’t have to add this RDF/XML to your page, as long as you provide some other way for people to discover your trackback ping URL and identifier. But the RDF/XML allows automated discovery.

Embedded RDF/XML causes XHTML validation to fail, so the RDF/XML is enclosed in HTML comments. Read more about this RDF/XML here. Read more about enabling trackback in MT weblogs here.

In a nutshell, trackback works by generating a unique trackback ping identifier and associating this with a specific weblog entry. Since I use MT, trackback is incorporated into my weblogging tool, but there is also a very handy stand alone Trackback Server that the Trott’s have released under Artistic license. This means you can copy it and use it, or even include it in your weblogging software distribution, as long as the code is left relatively intact, and the copyright information is kept within the code.

How does Trackback work? Following are the events associated with it:

 

 

  1. Write a post that references another post
  2. If Trackback auto-discovery is not turned on, find the trackback URL associated with the post you’re writing about, and use whatever means you have to send the trackback ping, which includes your posting URL, title, and a brief excerpt as well as the ping id of the posting you’re pinging
  3. If you do enable auto-discovery and the remote weblog has embedded RDF/XML into their posting, you don’t have to do anything further; however, if the remote weblog does not have the embedded RDF/XML, follow step 2.
  4. The remote weblog gets this ping, and pulls out the URL, title, and excerpt, as well as the trackback ping id and associates this trackback item with the proper post. It can do this because stored, somewhere, is a mapping between a weblog post entry, and a trackback ping id. Entry-ping. Entry-ping. Ping-Entry. Just like peanut butter and jelly. The grape kind.
  5. At this point, you sit back, feeling like Joe/Jill Cool because you’re on the hip, leading edge of technology and people are going to think you’re macho-techno-alpha-geek because you Implement Trackback. You techie hotie you.

 

Now, mechanically, how does TB work. First of all, TB is RESTful. You’ve seen this term used before, most likey, but what does it mean?

Without getting into gory details, REST follows a principle based on why get fancy when plain works. It uses standard HTTP calls to communicate data, rather than using the more encoded procedural call like processes to send data, such as SOAP or XML-RPC. Since all web servers provide access to data transmitted in standard HTTP calls, all web servers are already enabled to use REST.

Now you can see why people use RESTful — they aren’t just being weird.

REST makes Trackback extremely easy to work with, in different languages and within different weblogging tools, because it’s just HTTP, a little processing, and some static storage. That’s all it is.

Now, you don’t have to be using Movable Type to implement Trackback. In fact, you don’t have to be using Perl and CGI. All you really have to do is follow the Trackback Specification. To allow your site to be trackback enabled, you need to provide the technology that implements this specification, using whatever technology that works for you. For instance, the Homebrew Trackback Tutorial provides how-to implement Trackback in PHP.

The key element to this is sending an HTTP call with the required trackback info, and providing the ability to intercept an HTTP call and pull the information from it. This is combined with functionality to generate a unique trackback ping, and store the trackback information for each posting so that it’s accessible with the posting in whatever method works for you.

I know this sounds simple, and it is is you’re an experienced web developer. If youre not, and you’re not using MT, list in the comments what your weblog environment is, and what functionality can be used with your system, and we’ll see if we can’t map you to an implementation, or at least help point you in the right direction.

Rather than using Trackback, I could scan my referrer logs and pull referrers, but I’ve never been happy about this approach. I wanted to incorporate into my Threadneedle strategy a deliberate interest in being part of a conversation, and this occurs with Trackback — you have to enable it, ping me, or at least turn on Trackback auto-Discovery. No accidental tourists here.

One future enhancement I am making is to create a web page form that allows a person to enter the trackback information — link, excerpt, title, and so on — that will automatically create the trackback ping for whichever of my postings they wrote about in their weblog. A trackback entry would then appear for them in my posting without them having to enable trackback, at all. This is how the trackback works with LazyWeb.

 

 

Step 3 

The third step in my Threadneedle enablement was incorporating Recent Trackbacks (same as Recent Comments) as well as Backtrack. Recent Trackbacks is incorporated using PHP/MySql, and will only work with Movable Type, but you should be able to get this functionality within your Trackback implementation by polling recent entries in whatever store you’re using to map trackback entries to weblog entries.

(Again, if you need help implementing this with other systems, I would suggest writing this request in these comments, or in your weblog and trackback ping this entry. Or you could invoke LazyWeb — this is the perfect LazyWeb type of request. Something very doable, a small, one-person, fun type of tweaky task.)

My implementation of Backtrack displays a list of all trackback pings sent with one of my weblog postings (not received), listed below the trackback entries I’ve received, and labled with “Sticky Strands”. Now the trackback ping URL isn’t all that useful, so what I’ve done is created a PHP web page that takes this ping URL, adds a small bit of information to it and invokes it as an HTTP request. This HTTP request then returns with the title, link, and excerpt from the posting I trackbacked, and also a listing of other trackbacks that posting received, including my own. Both my readers and I can discover who else is participating in the conversation associated with the one posting.

How this works: Backtrack relies on another aspect of the Trackback specification, which allows a return of information formatted in RSS. To get this RSS feed, you simply attach the following string on to the URL used for the trackback ping:

 

?__mode=rss

example: http://burningbird.net/cgi-bin/mt-tb.cgi/294?__mode=rss

 

At that point all you need to do is process the RSS into viewable content. My processing is based on PHP, but you can use whatever works for you. See this page for my code for Recent Trackbacks and Backtrack.

Now, a future enhancement could be to do something similar to what Sam Ruby does, which is to follow trackbacks he receives and find out who trackbacked them and so on; and follow my trackbacks to find their trackback pings sent, and so on. In other words, Sam allows a person to follow a thread all the way up and all the way down, without leaving his Backtrack page. (Here’s Sam’s Python code.)

Sam’s code works because of that RDF/XML that’s added to each page to support Trackback auto-discovery. I could implement this, but I’m hesitant, and the reason has nothing to do with technology.

I am a huge believer that one thing that differentiates weblogs from usenet or MetaFilter or online forums is the weblog itself — the unique location, and the unique look. The comments, and trackbacks, and previous postings all combine with the posting to create a unique avator virtually representing ourselves on the net.

Because of this, I don’t like putting full exceprts into my RSS files for aggregators — I want people to come here to read my writings. And this strong belief in the weblogging avatar also plays into my reluctance to extend Backtrack more than one level.

With just the one level, you can click on any of the links and go to that weblog posting, and see the writing within the avatar rather than stripped of all identifying characteristics. With multi-threaded Backtrack, it’s too easy to skip around, and you miss things. At least, this is my interpretation when I tried it out over at Sam’s. All it became at one point is just words.

Now, Sam’s idea is a great one, and the technology is cool. But for the nonce, I think I’ll keep Backtrack the way it is, same as I’ll keep my Trackback listings the way they are.

 

Step 4…n 

Continuing Threadneedle strategy incorporates enhancements to existing technologies, including providing email notification when a thread has received new input (such as a new comment or trackback thread) and an RSS feed for same for people to subscribe to (a Threadneedle thread RSS feed viewer? Hmmm.).

Additonally, following a thread is very doable with Trackback auto-Discovery enabled (that’s why adding the RDF/XML is so important.) I wouldn’t mind playing around with the graphics software available to generate graphical/clickable ‘maps’ of a thread in its entirety.

Lastly, I want to start a compaign to encourage all webloggers who are interested in weblogs as a mode to conversations to incorporate Trackback technology. I know there are some geeky alternatives, such as pingback, but the most widespread technique used now is Trackback. It would be nice for all of us to focus on one specification. This means encouraging non-Trackback enabled weblogs to trackback enable their tools. In the meantime, though, the Trackback specification tells users of some of the tools what they can do to trackback-enable their weblogs.

My personal to-do list:

 

  • Encourage implementations of Trackback in other technologies for others to use.
  • Finish transforming all web content into Movable Type
  • Implement Recent Comments and Recent Trackbacks across all weblogs
  • Create Form to allow Trackback pings to my posts from non-trackback enabled weblogs
  • Enable technology that allows a person to be notified by email when a thread they’re interested in has had activity (new trackback or comment)
  • Create RSS feed of a thread that a person can subscribe to
  • Perhaps play around with technology that tracks a thread in its entirety, cabled with web graphics software to draw graphical/clickable picture of same
  • Harrass other weblog makers to add Trackback specification capability to their tools

 

More Reading: Trackback White Paper. And Ben Hammersley has re-capped many of the Sticky Strand technologies.

This is a start to documenting Threadneedle as is is incorporated here at Burningbird (and elsewhere). I’ll continue to refine this, and will gather these documents into a separate How-To Weblog.

But one starts walkin’ before one starts skippen’ before one starts runnin’ and before one goes to the moon.