What is radioScan ?
 radioScan is a widget that pops up a window on top of your weblog page and lists the titles of all your log's posts, most recent first.
 A small form at the top of the window lets you narrow the list by posting date, category, or title keyword.
 Clicking on a title in the list displays the full post in your browser's main window.
 Why such a widget ?
 To get an overall idea of what a weblog is about.
 To quickly locate the relevant information.
 When I started considering a weblog tool, then specifically Radio Userland, as a way to create a knowledge base for reliable practices in system administration, I soon realised I was missing something to quickly browse thru all the material published by my fellow bloggers.
 Blogging is in essence time driven, pieces of knowledge are added one at a time, among a background of noise, the definition of which is different from reader to reader.
 When reading a blog for the first time, it's difficult to locate the meaningful parts: a full text search, when available, lets you focus on the keyword(s) you've entered, but you may be missing other relevant information. And browsing thru all the blog pages in HTML, going backward day after day, is time consuming.
 Imo, radioScan is a natural component of a K-log, as defined by John Robb.
 How does it work ?
 Well, it's not for the faint hearted, at least for now :-) So here goes...
 1. radioScan relies on a special table of contents blog page.
 This page is a Radio story, aptly named table of contents, which holds a single macro

Testing upstreamingBeta10

This is it - it is really :-)

Testing upstreamingBeta09

Second Post

Radio Upstreaming Beta and activeRenderer

activeRenderer Users Gallery Update

Outline link macros

With the webOutliner tool installed...

With the webOutliner tool installed

In the left pane, a tabbed selector lets you choose between different document sources, either available on your local computer or published on remote web sites.

Welcome to the webOutliner

aR frequently asked questions

Additional keyboard moves:

With the webOutliner tool installed

Download activeRenderer 2.5

Test post

activeRenderer 2.4 Steps Forward

Read About Pete Dako's First Time Experience

This is a test post

activeRenderer version 2.3 released

rssBox and activeRoll wizards

Elections Demo Page Updated

activeRenderer For Movable Type Progress

Technorati Cosmos Links in Radio Templates

Gallery: Gwénaël Le Dréan

activeRenderer version 2.2 released at last

Release delayed

Gallery: Gerald Gleason

Mailing Lists

Documentation en français

Gallery: Wealth Bondage

Bringing the Dark side of syndication to Light

activeRenderer version 2.1 released

Radio RSS publishing fixes

CSS tip for expanded paragraphs

Journey Inside a Tool

Gallery: Bruce Loebrich

A first step towards localisation

EnhancedAggregator Updated

Planning activeRenderer's next release

Introducing the enhancedAggregator

Gallery: The ITU's Newslog

Outlining the Aggregator

US Elections Demo Page

Gallery: Donovan Watts

Transcluding Topics

RSS vs Atom support

More RSS Search Engines

Radio Documentation Central

Gallery: Thomas Burg

Firebird Morphs Into Firefox

New Parameter For rssBox

RSS Syndication Redux

rssBox enabled weblog page demo

new activeRenderer site and 2.0 release

activeRenderer version 2.0 released

Test for Phil

Experimenting with topics

And a second one

This is a first message

Countering The Bush Doctrine

Gallery: Katy and Bruce Loebrich

Gallery: David Soul

Is This Site Misbehaving ?

Gallery: David Buchan

Wireless In Austin

Aggregating The Italian Way

activeRenderer's Rendering Service

Gallery: Paolo Valdemarin

Outlined RSS Comes to the Browser

Gallery: Law Blawgs Directory

Sendmail Security Alert

Gallery: Coral Reef Directory

Coming Soon To A Weblog Near You

Gallery: Endless Web Page Redux

Gallery: Salvation Army's Edmonton Temple

Gallery: Lord of the Rings Quiz

Tom Tomorrow Rocks my World

TidBITS: A Personal Statement on War in Iraq

Contact Sheet View Enhances Gallery

Gallery: Mikel Maron's Brain Off

activeRenderer Developer's Notes

Gallery: Matt Mower's Topics Index

RSS Newsfeed Rendering Preview

Outlining Radio's News Aggregator

activeRenderer's Macros Reference

Gallery: Windley's Enterprise

Hierarchical Thoughts

Good Question

Those Were The Days...

activeRenderer Faq Update

Gallery: The West Virginia Supreme Court

Wiki Wiki

Outline Inclusion Howto

Gallery Exhibitor #4: Adam Curry

Gallery Exhibitor #3: Howard Greenstein

Jon's activeRolls

New activeUsers Gallery

activeRenderer Past 400 Users

Outlining Your Weblog

Publishing browser bookmarks

activeRolls HowTo

Updated Tutorials

Updated activeRenderer Description

Updated Tutorial: Tuning Outlines Layout

Style change

s l a m is forking

Outlining Email

activeRenderer Maintenance Release

OPML Directories

Welcome In Vienna*

activeRenderer Hits 300

A Major Suspect in Qaeda Attacks Is in U.S. Custody

activeFix for liveTopics

activeRenderer Version 1.3 Released

Watch The Edge Bleed

activeRenderer bug fixes

Outline Image Inclusion Issues

Qaeda Uses Teeming Karachi as New Base, Pakistanis Say

activeRenderer, Gems and Outlines

Paolo and His Webcam

U.S. and France Near Deal on Iraq Attack

Pushing Towards activeRenderer 1.3

Home Sweet Home

Intermission

activeRenderer 1.2 Released

Jimmy Carter Wins Nobel Peace Prize

Pakistani Fundamentalists Do Well in Election

Congress Authorizes Bush to Use Force Against Iraq, Creating a Broad Mandate

One Of The 133

House Passes Iraq Resolution With 296 to 133 Vote

Excerpts From Senate Debate on Iraq Policy

Pakistanis Hold First Election Since Coup

Transclusion Breakthrough: The Endless Web Page

Farmers in Afghanistan Face Fields of Bombs

U.S. Presses for Total Exemption From War Crimes Court

A Trojan In Sendmail

Arab Leaders Glumly Brace for Inevitable War

Really Really Cynical ?

Le Weblog Strikes Again

Lawmakers Make Their Cases as Votes on Use of Force Draw Near

Tune your Radio to Italian

Playing With liveTopics - Part II

Vulnerability In Redhat's glibc

I Dream of NetNewsWire Lite

Securing Linux: Why It's Worthwhile and Achievable

European Union to Recommend 10 Candidate Countries for Admission

Pakistanis Are Skeptical of Musharraf's Promises

U.N. Inspection Team Leaders Agree to Delay Return to Iraq

First Of Month

Tracking activeRenderer

Playing With liveTopics - Part I - Addendum

Radio Preferences

Bush and House Leaders Reach a Deal on Iraq Resolution

Turns Out Mordor is in the West After All

Iraq and U.N. Agree on Unfettered Access for Inspectors

What Is Abstracter ?

Awash in a Sea of Spam

Europeans to Exempt U.S. From War Court

U.S. Is Dismissing Russia's Criticism of Strikes in Iraq

Shareware 101

Playing With liveTopics - Part I

RedHat 8.0 Is Out

Rich Nations Criticized for Barriers to Trade

Democratic Congressman Asserts Bush Would Mislead U.S. on Iraq

A Step in the Right Direction

Third Post

Second Post

This is a test post

What's the difference between topics and categories?

They Don't Make You Feel Stupid

News of the Times

Stop the War in Iraq

Powell Urges Nations to Fulfill Afghan Aid Pledges

Sluggish U.S. Economy a Global Concern

OmniOutliner Not Quite Yet With OPML

Amazing

Spinning on Iraq

MSIE X Updates To 5.2.2

activeRenderer Donations

activeRenderer's Macros Reference

DiveIntoRss?

Who Watches the Watchers?

Oil For Food

Conditions Are Said to Improve in Iraq

A Visit To Amanda

activeRenderer's New License

Regular Expressions

OmniOutliner Update

JIRA does RSS, so cool!

Don't think, it's not worth it...

Epistula Syndication Format

Kyrgyzstan Seeks Reward for Helping Fight Terror

liveTopics RSS Feed now available

activeRenderer Site Updated

OPML Support Coming to OmniOutliner Soon

activeRenderer vs 1.1.3 and Roadmap Ahead

C.I.A.'s Inquiry on Qaeda Aide Seen as Flawed

Cradle of Taliban Reverts to Cradle of Commerce

The Road To Browser Based Transclusion

Random Notes

Gloomy World Perspectives

Random Notes

Random Notes

Welcome To liveTopics

Random Notes

Random Notes

Random Notes

Transclusion Rendering Hits A Wall

Random Notes

activeRolls And Blogger ?

Random Notes

Random Notes

Random Notes

activeRenderer vs 1.1.2 Released

activeBookmarks: Picturesque Definition

Random Notes

Random Notes

Does Justice Follow Bombs ?

Adding Comments To activeBookmarks

activeRenderer 1.1.1 Released

Random Notes

Random Notes

activeRolls Are Multiplying

The Rise And Fall Of The WTC

activeBookmarks Tutorial

Random Notes

Random Notes

Random Notes

Random Notes

Updated aR Release Notes

9/11

The War On What?

activeBookmarks Have Landed

OmniOutliner News

St Maurice Class Update

Zoe's New Site + Release

Site Logging And Monitoring

All Is Not Quiet On The RSS Front

What RSS Feeds Does Dave Subscribe To ?

activeRenderer Hits 200

BookMarks Tease II

From The World City

Instant Outliner Jabber Notification

Radio Tools Licensing

Memetics Experiment

InstantOutlining Redux

Leo Looks Fun

Bookmarks Tease...

Browser Bookmarks And OPML Directories

activeRoll and mySubscriptions.opml

Blogging To Salon+UserLand Revisited

Montréal Is So Hip

Random Weblog Surfing

omniBugging

blogRolls Are Going Active

aR On blogStreet

OmniOutliner Update - OPML Support Still Missing

Zoe News

Look Away, Look Away...

activeDocumentation

BlogRolling Outline Style

[Macro error: Can't evaluate the expression because the name

activeRenderer FAQ Update

Posting To Salon Now Has Pictures

August Linux Magazine Issue

Weblog Tools Comparison

Posting To A Salon Weblog From Regular Radio

UserLand / Salon Cross Posting Works

Second Attempt At Cross RCS Posting

'Latest' Widget Correction

tuo siht kcehC

Hi From Userland / Salon

Default CSS Stylesheet Update

Blogging At Salon, Continued

activeBlogRoll Follow Up

Blogging At Salon

An Active BlogRoll

Thanks...

Activating liveTopicsGoogleJazz

Outline Sharing With A Little Help From My Friends At eVectors

activeRenderer Tutorial Part 3

activeRenderer Tutorial Part 2

New activeRenderer Tutorial Series

myRadio Shows Promises

activeRenderer 1.0.1 Release Notes

New activeRenderer.root Updates RSS Feed

liveTopics Preferences and Suggestions

According To New Reports, activeRenderer and Wizzy Editor Are Getting Along Just Fine

Tracing activeRenderer

activeRenderer 1.0 Release Notes

liveTopics Closer To Release

Of Backtracks And Referers

More On liveTopics

Check Out activeRenderer's FAQ

activeRenderer Upgraded To 1.0rc2

Internet Explorer 5.2.1 for OS X Released

Updating Radio Tools

New activeRenderer RSS Feed

Download activeRenderer Version 1.0

Playing With liveTopicsGoogleJazz

liveTopics and its GoogleBug

activeRenderer 1.0 beta 9 Release Notes

Apache mod_ssl and openSSH Update For MacOS X

activeRenderer and Categories

liveTopicsBuzz Macro

Experimental post

liveTopics and Meta tags

liveTopics and See Also Keywords

activeRenderer 1.0 beta 8 Release Notes

Testing liveTopics, continued

Testing Matt's liveTopics tool

30 days to a more accessible weblog

activeRenderer Beta 7 Release Notes

Who Are ZDNet Readers ?

Internet Explorer Gets Anti Aliased Fonts

Test post

activeRenderer Beta 6 Out

SNMP Resources Directory

So Long, And Thanks For All The Passwords

Honeypots and Honeynets

Mail Sending Mistakes

activeRenderer Beta for Windows

Chimera 0.3 Is Here

activeRenderer Beta Update

Perl For System Administration

More On Outline Style RSS Aggregators

Monitoring Security

Wrap Up on Yesterdays's Tutorial

A Note To activeRenderer Beta Testers

Radio and XSLT

RSS Outline Style

SNMP Basic Tools

Host Resources MIB

Live From Usenix Tutorial Sessions

Usenix Conference Starts Monday

This Is A Silly Experiment

MacOS X 10.1.5 Update

Look Dave No UserTalk !

"slam"'s Neigborhood Is Expanding

Microsoft Office X SR1 Upgrade

Welcome To "slam"'s Neighborhood

RSS Subscriptions Auto-discovery

Link Autodiscovery Follow-up

Outline Abstract Draft

Outline Presentation Is Spreading

RSS Link Episode II: Dave Strikes Back

RSS Feed Auto Discovery

Working On Transclusion

Outline Survey First Results

Going Crazy With Outlines, Part III

Intermission

Going Crazy With Outlines, Part II

Going Crazy With Outlines

Better Tool Updating Security

Xml-rpc Tool Registration Service

WebEdit Rocks !

activeRenderer and Self-Updating

activeRenderer's Release Schedule

Instant Ouline Instant Rendering !

Releasing Busy Windows Files

Multi-Author Weblogging

Are Webloggers Situationists ?

Outline Rendering Survey

RSS Truncation Revisited

Yet Another Rendering Optimization

Paolo's new myNote macro

More Rendering Optimization

Rendering Optimization

Going the Tools Way

A Learning Opportunity

activeRenderer and Netscape 4

activeRenderer Installation Issues

More activeRenderer Updates

activeRenderer Updates

As We May Outline...

Still Working on Elision Rendering

Zoe, Searchable Mail Client / Server / Client / Server...

Radio More OS X Compatible...

Renderers: s l a m's New Frontier

SharedOutline: an Attempt at Outliner Collaboration

Coffee Galore

OPML Rendering in HTML the Radio Way

Radio synchTableWithFolder Fixed

rssTruncate Cleans Up RSS Feed

radioScan Widget Fixed

Working on Elision Rendering

G.O.B ?

Radio Facts for Geeks

PHP Security Revisited

SysAdmin Turns HTML Fashionista

Office X Combined Updater 10.0.3

MacOS X 10.1.4 Upgrade

Internet Explorer 5.1.4 Update

Espresso Drinkers Unite

More (sic) Office / Radio Links Ahead on MacOS X

2 Macros for Stories Rendering

SOAP::Lite Updated

Unmöglich

World Wide Directories

The Road To W3C Validation

Radio Posting From Word X

MacOS and Office Posting

Targeting the Google Box Macro

Potential Google SOAP API based Services

Playing with the Google.Box Macro

French Speakers Only

Securing SOAP::Lite - Addendum

Jon Udell Cuts Through RSS Description

About s l a m...

SOAP::Lite::Paul_Strikes_Back()

SOAP::Lite Exploit - continued

Upgraded Post to Weblog Menu

opmlRender: An Expanded Outline Rendering Macro

SOAP::Lite Vulnerability Issue

storyList and radioScan

opmlRender under way

Dave's wager

radioScan: the full story

blogScan becomes radioScan

MacOS X security update includes openSSH 3.1

Javascript mysteries

New blogScan widget

Blogging versus instant outlining

New ioLinks Macro

Publish and subscribe walkthrough

Dave's recentTitledBlogPosts Macro

Test post

Instant outline instant rendering

New renderCss macro

InstantOutliner rendering

renderCSS test

Upgraded Table of Content

Site todo list - week 13

New table of contents

Automated ToC test

Of bytes and Byte

Upgraded Subscriptions widget

Sound base for an headlines macro

Radio Community Server: better than a free lunch !

Automated stories list

Emailing to Radio categories

Using Radio on the road

The 2 faces of RSS syndication

Drivers for Radio's XML aggregator

Mozilla is coming...

The quest for a search engine

Radio web services

Jon's widget now operational

Aqua interface to syslog.conf

Radio title saga: happy end

Second title test post

Test post

New itemTitle macro

Google-it Macro

Race condition in GNU FileUtils

RSS Titles rendering

Updated RedHat 7.2 rpms

How to use the outliner

Programming Pointers

The UserTalk language

New title option... Yesss !

.
 This macro, initiated by Jon Udell, outputs an inverted chronological list of links to all the log's posts, with each post's title, date and categories.
 Every link in the table of contents has a special class attribute, 'toc', that can be used with CSS when rendering the story in HTML, and also serves as an identifier for later use by radioScan's javascript code.
 The storyList usertalk code is available here, just save a copy of the storyList.txt file in your Radio Macros folder.
 s l a m 's contents page is an HTML with CSS rendition of this table of contents story.
 Now the trick is to have this page upstreamed automatically every time you publish a new post.
 Radio has a friendly callbacks table to help you with this task, all you need is to enter some code there that touches up the table of contents story; Radio will upstream the HTML rendered version in the next 10 seconds.
 Open the Radio.root table and expand all headlines to user.radio.callbacks.publishItems.
 Double-click the item #1 headline, rename it to updateStoryList, of type script, then click zoom.
 Enter the following script:
 on updateStoryList ( adrPost )
 on touch ( path )
 try
 file.touchPath ( path );
 file.visitFolder ( user.radio.prefs.wwwfolder + "stories:2002:03:22", infinity, @touch );
 On a Windows system, replace the ':' directory delimiter with '\'.
 2. radioScan is called from a modified #homeTemplate.txt.
 The modified template needs some javacript code to pop up the widget window when you click on the radioScan link.
 I first created a function to pop a window up, and placed it somewhere near the top of the part :
 
 The '.opener' part of the script is important, since it's the way radioScan knows in which window to display the post's actual content when you click a title in the list. Some backward browsers do not support the opener property, hence this line.
 Then I placed a link to radioScan in the navigation sidebar part of the home page template, with an onclick attribute to start things rolling:
 onclick="newWindow(this.href, 'Scan'); return false".
 the href attribute of the link points to the radioScan main page.
 The best way to check this out is to take a look at the HTML source for any of s l a m's pages.
 3. At this point, you'd better download the whole radioScan folder, and place it in your weblog's gems folder.
 First unncompress the zip format archive of course.
 4. The main radioScan page is radioScan.html.
 It's a frame set with 3 parts.
 A query form at the top, points to 'crit.html'.
 A hidden frame to load the table of contents special page in the middle.
 And a result list frame at the bottom, points to 'toc.html'.
 The hidden middle frame in the version you've downloaded points to s l a m 's table of contents, modify it to link to your site's table of contents story.
 The header of the page has a link to all the javascript functions, laid out in the radioScan.txt file.
 the tag has an onload attribute, that creates a 'toc' table of contents object, and sets the default scan criterias.
 Creating the table of contents in an onload statement makes sure the table of contents special page is fully loaded in the hidden frame before initializing the object.
 5. The rest of radioScan is pure javascript. That's where it gets ugly :-)
 The constructor for the table of contents object is the Toc() function.
 A Toc class object is mainly an array of Lines class objects.
 Lines objects have several attributes
 A text string to store the post's title
 A date string to store the post's publication date
 A cats string to store the post's categories, if any.
 The function parses the storyList document in the hidden frame.
 It retrieves all anchor tags,
 filters out non table of contents ('toc' class) links,
 populates both the lines and cats arrays.
 A table of contents object has 2 methods: reset and write.
 Toc.reset initializes the scan criterias to their default values in the crit.html frame.
 The track/category select popup is initialized with the values in the Toc.cats array.
 The 'latest' input field is initialized with the first element of the Toc.lines array, the 'oldest' input field with the last element of Toc.lines.
 The bottom frame is loaded with the toc.html file, which displays user instructions.
 Toc.write lists the titles matching the criterias in the toc.html frame.
 Toc.write makes use of javascript RegExp objects to filter the rendering of lines.
 It creates a W3C DOM level 1 tree with the filtered lines, then replaces the top 'placeholder' node in the result frame with the new formed tree.
 So far, I've tested radioScan with all later versions of Internet Explorer on Windows 98, NT4, MacOS 9, and MacOS X, with Mozilla 1.0rc1 on MacOS X and Linux RedHat 7.2, and with Netscape 6 on MacOS 9 and MacOS X.
 radioScan should work fine with all modern Gecko based browsers.
 On MacOS X, current versions of OmniWeb and Opera are out for lack of decent Javascript support, among other annoying bugs.
 I haven't tested radioScan with Opera on Linux or Windows.
 It gets worse: radioScan as a collaboration tool
 There is no reason to limit the scope of radioScan to the table of contents of one single blog.
 If you know of other Radio blogs that run a table of contents with the storyList macro, you can include additional copies of the radioScan widget in a page to enable your readers to scan through those sites from your page.
 How cool is that ?