Categories
Diversity Weblogging

More than a little envy?

Recovered from the Wayback Machine.

I’ve been determined not to write anything on any of Halley’s posts about Alpha Males, other than a link here or there for fun. Today’s posting made hash of that, though.

There’s so much about this posting that really describes ‘everyman’ not just that mythical man beast, Alpha Man. And in many ways, I can enjoy Halley’s posting, when she writes:

 

At work he spends a good part of his day trying to dodge the bullets of getting fired, trying to climb the ladder to a promotion — only now it’s an escalator that used to go up but looks more like those endless automatic walkways in airports — stretching flat for miles with occasional rises — and when he’s not losing heart over his own circumstances, he’s called on to help other guys and gals deal with the same disturbing business terrain, which he does with good humor, courage and generosity.

What’s not to like, or to empathize with regardless of one’s sex? But then there’s a paragraph such as the following:

 

At breakfast, he’s doing 2nd grade math with his daughter who’s braiding Barbie’s hair and doesn’t care much about carrying. She does light up when he scribbles the answers next to the problems and lets her copy them in her scrunchy writing in the right place. His coffee isn’t the way he likes it since they’ve run out of half-and-half. Watch what our hero does — does he think, SHE forgot to get half-and-half and adds one more disappointment to his list of wifely misdeeds — NO! He looks over at her and sees she’s up to her ass in alligators as well, packing lunches, writing notes to teachers, dashing for school buses. She’s half dressed and not the sexy girl he married by a long shot. No, she’s not Dr. Holly Goodhead, but he goes over and gives her a hug and says something terrific like, “what’s a nice girl like you doing in a place like this?” and tells her how great she is. Wow! This guy knows how to do the right thing.

 

And I have to push back because the image of little girl too busy playing with Barbie to learn math, and Big Daddy helping her to cheat after he refrains from not yelling at his wife because she didn’t buy half-n-half shows us Mr. Hyde to go with Dr. Jeckyll. In this case saying the ‘right thing’ doesn’t erase the wrong image.

My first reaction was a complete rejection of the posting, but then I read Jeneane Sessum’s reason why she liked the post. In Jeneane’s comments, she wrote:

 

What I liked about it was that this one, unlike the others, had “her” in it–in other words, she was observing, not stating the case for all me/women. To me it seemed like she was waking up, going through the day with, and then encountering her dream alpha male as she walked down the street. I love when people put themselves into their posts. Like you!

I love when people put themselves into their posts Suddenly I could see what drew other people to the post, and to much of Halley’s writing — she does put herself into her posts. She draws people in.

I envy Halley. Not the Alpha Male stuff, which I see more as tongue-in-cheek. She connects with people, as if the weblogging medium is a clay that she can mold and extend from the page. Jeneane’s kindness aside, this is something I don’t do. Even at my most intimate, I am not intimate. Chances are very good that l will never meet other webloggers, or only a few. My connectivity with all of you will be through these pages, through these words, which I wrap around myself like a soft, warm comforter in a cold night.

I love my words, I love to write, but they make a thin comforter. Sometimes, this all becomes just too damn flat — like being a line person in the land of the three-dimensional.

Categories
Weblogging

Happy birthday, Jonathon

It’s the 24th here in the States, but it’s the 25th in Australia, which means it’s Jonathon Delacour’s birthday ‘today’.

I think you all should drop on by Jonathon’s weblog and wish him a Happy Birthday. Better yet, go to this posting, and write “Happy Birthday, Jonathon! Now go buy the damn PowerBook!”.

 


Birthday Cake

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.

Categories
Programming Languages Technology Weblogging

Trackback technologies

Recovered from the Wayback Machine.

Trackback stuff.

First, to re-cap, this page covers how to add trackback to your individual pages, and to force page re-builds when a new trackback ping arrives for the specific page.

I put the code for the Recent Trackbacks and Backtrack into text files that you can download and use in your MT weblog. It’s worked nicely since I put it in, and is ready for others to try. Consider it beta, and it’s not wrapped up pretty, pretty, but tech is gritty. Pretty bows get in the way of the moving parts.

The first file is backtrack.txt, which contains the Backtrack technology. To use this, modify the HTML to create a layout you want and then rename the file to “backtrack.php”, putting it into your main weblog directly.

Next, modify the individual daily archive page template to call the file:

 

<MTPingsSent>
<a href=”http://weblog.burningbird.net/backtrack.php?ping=<
$MTPingsSentURL$>”><$MTPingsSentURL$></a><br />
</MTPingsSent>

 

That’s it for backtrack.

Last, the PHP/MySql code that displays the Recent Trackbacks in the sidebar can be found in this file. To use, copy it into your main index template where you want the recent trackback list to go. You will need to change the username, password, weblog id, and database name in the code to match your environment. The values that need to change are bolded below:

 

<?php

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

$query = “SELECT tbping_id, tbping_source_url, tbping_title,
entry_title, entry_id FROM mt_entry, mt_tbping, mt_trackback where tbping_blog_id = 2 and entry_id = trackback_entry_id and trackback_id = tbping_tb_id ORDER BY tbping_id desc limit 10″;

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

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

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

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

 

Any suggestions to improve the code are welcome — feel free to leave in comments, or cross-post…with trackbacks, of course.

So, there you go. New Toys. Enjoy.

Categories
Weblogging

Worth more than all the fairy dust in the magic kingdom

Few things could have cheered me more than this picture, drawn for me by Mike Golby’s daugher Cathryn, and the wonderful, wonderful story that accompanies it.

Artwork of Cathryn Golby

From the bottom of my heart, thank you Cathryn. Thank you Mike.

(And Cathryn — it’s not a man. Not that I don’t love some of the guys here abouts. Strictly as friends, of course.)

And thanks also to Elaine, for doing that mojo that she do so well!

 


Elaine's Mojo
 

Thanks to my friends, this has been a marvelous, marvelous treat and a wonderous raising of quiet, gray spirits — and the sun just cracked through the dark gray clouds, and rays of golden sunshine are streaming through the window. And each mote of fairy dust dancing in the sun calls out ‘friend’.