Deprecated: Function eregi() is deprecated in /home/emarkwoo/public_html/inkblots/wp-content/plugins/captcha/captcha.php on line 1360
inkBlots » java

Archive for the 'java' Category

Rome & Persisted Feeds

Thursday, March 17th, 2005

The Rome project gives Java developers an easy way to consume any flavor of RSS or Atom feed and get a canonical SyndFeed object which carries all the feed content.

I joined the Rome developer team with an eye toward encouraging a subproject called Aqueduct - “Piping Feeds for Rome”. Essentially, the project is intended to spearhead efforts of persisting SyndFeed instances through ORM or whatever makes sense.

I decided to do an implementation of the Aqueduct DAO API using Prevayler, just to see how easy it would be. It was amazingly easy. So, I bundled up and checked in a distribution to let the Rome users community play around with it.

If you’re interested, check out the Rome|Aqueduct Prevayler Implementation page.

On that page you’ll find more information about the distribution, whether it makes sense for you to use it in your application, and instructions on running the sample programs.

The distribution is self-contained, so you only need to unzip the archive and you’ll be ready to run the sample programs via batch files. Have fun!

RSS/Atom Feed Wish List

Wednesday, March 2nd, 2005

Now that I’m officially an RSS/Atom addict, I want to get my feed fix for pretty much everything. Most of my current feeds are not blogs, incidentally, but range from news to weather forecasts to favorite comic strips to software build notifications at work.

But my addiction is not mollified. Here are the top things I wish I could get in a good feed:

  1. Airline flight status

    Wouldn’t it be nice to navigate to the flight you’re interested in, grab the feed for it, and let your reader tell you that Aunt May’s flight was delayed an hour, but then got an adjusted arrival time? They’re already showing that data in an HTML table, why not gimme a feed? (Yeah, some of the airlines will email you flight status updates. Yawn. RSS is so much better for this kind of thing.) The beauty is that your RSS/Atom reader would show you the deltas* of information updates.

  2. Retail pricing

    I’m not Mr. Big Shopper, but there are items here an there that I’d like to keep an eye on to find out when they go on sale. Sort of like EBay’s “watch item”, but without the old-school email.

    For example, it would be slick if Price Grabber provided a feed that tells you when a new merchant is selling the iPod shuffle cheaper than everyone else. (Marketing people at Price Grabber: This would be a great opt-in way get return visitors without being intrusive or needing personal information.)

  3. Homeland Security Status

    Without sounding too glib, if we’re getting nuked, I’d like my reader to tell me about it. I’m sorry, but this sorry piece of XML doesn’t cut it. Honestly, somebody please use some of my tax dollars to at least conform to the RSS .91 spec? Somebody?

    Even the Amber Alert system can be monitored via RSS. Wouldn’t the threat of an imminent terrorist attack in your city be worth knowing about at first warning, rather than tonight on the evening news?

  4. SNMP-to-RSS bridge

    Why not make everything that can be monitored with SNMP be served via RSS or Atom? Here’s an interesting (and easy) script to demonstrate poor man’s RSS-as-SNMP. The possibilities from this kind of approach are wide-open… and very cool. (The need for securing some of this information, however presents a problem. More on that later.)

    Along these lines: most hosting companies have a network status page (like mine) for their servers. I don’t want to bookmark-and-visit every day to see what’s going on; I want my reader to tell me. Again, they already did the work in an HTML table… spend the 30 minutes it would take to make it a feed.

  5. Bank Transactions

    Yes, I mean it. If we can secure online banking, we can do secure RSS/Atom feeds. I want to know when checks clear, when my paycheck gets deposited, and when my mortgage payment is automatically withdrawn.

    The problem is having a decent free reader that does both HTTPS and robust (up to NTLM) authentication. I have yet to find one that handles both. And before you suggest NewsGator online, don’t. Despite their claims I have had no success at trying to get to authenticated feeds.

To quote my son: Are we there yet? How about now? How about now? I can only hope as RSS/Atom becomes more common outside of the blogosphere that businesses start to tap into the potential. Until then, we wait.

* Pun not intended.

Addendum (March 3, 2005):
More info on secured feeds can be found in my new post here.

Aqueduct DAO RFC

Sunday, February 13th, 2005

I’ve got the first pass at the Aqueduct DAO interface layer, and have opened it up as a Request For Comments (RFC). To avoid duplication of content, check out the Aqueduct home page for the full scoop.

(The RFC is primarily to the developer list for Rome, but if you are absolutely itching to comment and don’t want to join the list, you can do so here and I’ll take it into consideration.)

Aqueduct: Piping Feeds for Rome

Thursday, February 10th, 2005

I’ve joined the ROME developer team today to begin official work on the “ROME Aqueduct” subproject. This project is intended to provide an easy persistence mechanism for SyndFeed and everything that goes with it.

The first order of business is to iron out an API for the DAO layer. Another one of the developers, Amin, has already done a big chunk of work with ROME and Hibernate, so the idea is to use his work + the work I’m doing in Castor to come up with a good set of DAO interfaces.

Atom + Jena

Tuesday, February 1st, 2005

There is a good bit of independent work being done on bringing Atom and OWL together. This coupling would make sure the metadata of Atom feeds will play nicely in Semantic Web efforts.

I thought it would be a fun experiment to take an OWL schema for Atom, run it through Kazuki, and generate some easy-to-use classes for Atom in Jena.

It would be oh-so-simple to move data between ROME and these beans in Jena.

So here is a jar of the source and binary files for concrete Java beans that represent the Atom RDF schema, have type-safe getters/setters, and will play nicely in Jena:

    atom-jena.jar

(In addition to the standard Jena jars, you’ll need the kazuki.jar as well. Get it here.)

If this proves useful to you, drop me a note and let me know. (I can’t support it in any way, however. Use it as a starting point for your own experiments.)

Note: I edited the original OWL schema file slightly to fix a couple of resource URIs. The resulting AtomSchema.rdf is in the jar. There may also be a couple of defined Datatype properties that are actually using Objects, according to the schema. I decided not to mess with those, so be on the lookout.