KBD

Keith Devens .com

Wednesday, October 15, 2008 Flag waving
Civilization advances by extending the number of important operations which we can perform without thinking about them. – Alfred North Whitehead (Introduction to Mathematics)

Archive: April 04, 2003

← April 03, 2003April 05, 2003 →

Daily link icon Friday, April 4, 2003

Third Animatrix movie released

Via Slashdot, the third Animatrix movie has been released.

Weblogs in Business

Check out this article about the benefits of Weblogs in Business from the Kalsey Consulting Group.

You need to communicate with customers, partners, employees, and prospects in order to succeed. A weblog makes Web publishing simple.

A weblog gives you an easy way to place information on the Web and have that information be instantly archived, categorized, and searchable.

Weblogs can help your business with marketing, customer retention and attraction, knowledge mangement, team communication, and customer collaboration.

Simon builds an RSS aggregator

Wow, it's really a day of RSS aggregator news, isn't it? Simon's building an RSS aggregator and discovers that...

It has been quickly becomng apparent that "Really Simple Syndication" is anything but! There are currently three major (and goodness knows how many minor) specifications doing the rounds, and the majority of feeds seem to pick and chose between the three at will.

Read the post to see lots of great examples why all this stuff is a huge pain in the butt.

He also references REX: XML Shallow Parsing with Regular Expressions, which I've never heard of before.

Sort indices instead of data

You may have noticed my new blogroll on the left. That's generated straight from my list of feeds produced by my new RSS aggregator, NewsDesk. The source OPML file for that is at /mySubscriptions.opml (that seems to be the standard place for these things).

As you can see, the OPML file isn't sorted either by category or by feed name within the category. It would be nice if it were sorted (it's sorted within the program), but whatever, life isn't perfect. You'll notice that the blogroll on my left is sorted by category, and the feeds within each category are also sorted. So, I had to write code to sort that.

Sorting this OPML file isn't as simple as sorting a list of numbers. You can do that easily with built in sort routines. To sort my blogroll, I used a trick I've used before. You sort the indices, but leave the data alone.

I use my XML parser (part of my XML-RPC library) to parse the OPML file. Anyway, I'm not sure how to explain it much more beyond just showing code:

<?php

$cms
->incLibrary('xml');

$c = &file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/mySubscriptions.opml');
$b = &XML_unserialize($c);

$cat = &$b['opml']['body']['outline'];
$cat_count count_numeric_items($cat);

$categories = array();
for(
$n=0;$n<$cat_count;$n++){
    
$categories[$n] = array('text'=>$cat["$n attr"]['text'], 'index'=>$n);
}

usort($categories'blogroll_cmp');

function 
blogroll_cmp(&$a,&$b){
    return 
strnatcasecmp($a['text'],$b['text']);
}
?>

You get the idea. Then I iterate over $categories, not $cat, but index into $cat, and do basically the exact same thing for the feeds within a category, printing out HTML along the way, etc.

Anyway, I just wanted to relay the technique of sorting indices, rather than sorting the actual data, because it comes in handy in a lot of places. If anything, sometimes it can simply be more efficient because you don't have to actually move a lot of data around within the system.

Miller on Leno

Man, I wish I had seen Dennis Miller on Leno last night.

Hey, here's an interesting article on comedians at a time of war.

Incredible story of the rescue of Jessica Lynch

John at Right Wing News relays the incredible story of Jessica's rescue.

Awesome

Update: A few more links at InstaPundit.

RSS reader jubilation!!

I think I've finally found it. An RSS reader I like!! What a relief!

Via Bill Kearny's weblog at Syndic8.com, check out NewsDesk. I've installed it, and I'm switching to it right now!

Great features:

  • Freaking categories! Thank you! With drag and drop even!
  • It works and is fast
  • Imports and exports every format you need, OCS and OPML
  • Searching - oh man!
    • When you search, it filters all your feeds based on your search terms, and when you click on a feed it only shows you those items that match the search term.
  • It has an inline browser like Syndirella. In fact, it's based on .NET too.
  • It's got a three-paned interface like you'd expect. However, it works like I always thought an RSS aggregator should work. If you click on the feed name itself on the left, in the right two panes it shows the list of posts on top, and in the bottom pane it immediately shows a summary of all posts for that feed. Then if you click on a feed in the top list it shows that individual post.
  • It integrates heavily with NewsIsFree. Not something I need, but it's nice.
  • You can drag a url to it to add a feed. It has lots of features like that - it even supports the click-a-button-on-a-web-page-and-have-it-invoke-your-rss-reader feature like AmphetaDesk and Radio have.
  • It has lots of system tray features. Again, not something I need, but it seems to work really well.
  • It comes with an RSS to e-mail thing that can e-mail you new headlines! Freaking awesome, but I haven't tried it yet.
  • It's fast! I don't expect to have any of the horrible memory problems that I've consistently had with Syndirella.

It's just really really awesome.

Now for some nit-picky things.

  • Comes with an icky default background color. It's like a puke brown/olive color (See, this is how small my issues are) But you can change it easily.
  • I'd like a modification of the summary of all posts for the feed feature I mentioned above. I'd like it to at least have an option to show only the unread posts for that feed, rather than all of them.
  • I'd like to have unread posts show up in bold, rather than just have an "unread" marker next to a post (which also happens to be a few pixels too close to the text of the post title for my comfort).
  • When you first import a feed (from an OPML file, for instance), the "Get New Headlines" option is greyed out for that feed for some reason. I don't know if that's also the case when you add a new feed, in addition to when you import it. It takes a restart of the program to fix that.

See how minor my problems are? I'm very pleased. I'll update this if I run into any problems, but for now, I'm very happy. Watch for my Blogroll to be updated directly with the feeds from my OPML file, now that I use an aggregator that has categories.

Also make sure you check out John Abbe's great and comprehensive list of RSS readers.

Ok, one crash, while I was dragging stuff around into different categories. Though, it caught the exception and didn't seem to have a problem continuing. I reloaded my feed list just in case... update: yeah, it always crashes if you drag feeds around, and let your mouse hover over another feed so that it loads the contents of the feed into the right panes. But it's always able to recover from the exceptions. I'll have to e-mail the author...

Hey, and it doesn't leave crap bogus referrers!

Some other features I want:

  • I'd like to have it be able to use my system default browser when opening an external browser.
  • I'd like it to open the website for the feed when double clicking on a feed in the lefthand tree.
  • The parser isn't as forgiving as Syndirella's is. One of the error messages on a broken feed is the following: "Invalid byte was found at byte index 2569." It seems that you should be able to replace that byte with a space and try parsing again, repeating as necessary.
  • The list of feeds on the left seems like it's more "spaced out" than a normal explorer view is. With a lot of feeds, I'd like it if I can fit more feeds on a screen somehow. Don't know if that's possible. However, the categories and alphabetization make up for that in spades because it's much easier to check whether a feed has new posts because it is where you expect it.
  • There's a filter to show either "all headlines" or only feeds that have new posts within the last 15 minutes, hour, all the way up to 72 hours. I'd like that to have an option that just shows all feeds with any unread posts.
  • I'd like to be able to right click on a post in the top-right hand pane and get an option to copy that post's permalink to the clipboard. Syndirella has this, and it's convenient (except where the feed doesn't have permalinks to its own posts, but rather to a link in the post.
← April 03, 2003April 05, 2003 →
October 2008
SunMonTueWedThuFriSat
 1234
567891011
12131415161718
19202122232425
262728293031 



RSS feed RSS feed for Keith's Weblog
Atom feed Atom feed for Keith's Weblog
Weblog archive
Recent comments
  on 4 posts

Recent comments XML

new⇒Girls, please don't get breast implants

you people implants are fine these​days but they are like body organs​not e...

kym: Oct 15, 5:25pm

Spider solitaire

I have now won, at the "Difficult"​level, 186 games of Spider​Solitaire.  I...

75.179.28.113: Oct 13, 9:34am

I hate PHP

Elliot Anderson,

Dude!! You the​man! The reverse replacement for​array_u...

Alex Ndungu: Oct 11, 1:35am

Generated in about 0.058s.

(Used 7 db queries)

mobile phone