Some experience with RSS/Atom frameworks

Posted by Martin Homik | Posted in Java | Posted on 20-06-2008

3

10 days ago, I had the idea to enhance my web application by integration Roller. Instead of implementing a blog model myself, I wanted to implement the UI only and pass all the blog entries to a stable blog server. The problems were:

  • Blog entry management. How to exchange blog entries with Roller?
  • User management. How to synchronize users with Roller?

To solve the the management of blog entries, Roller provides an RSS/Atom interface. The only thing I would need is a blog client. Lucky me, there is the ROME and ROME Propono. ROME is a RSS/ATOM framework and Propono is a subproject of it that implements a RSS/Atom client. It seemed to be a good solution, because:

  • ROME is quite mature.
  • It is written by Dave Johnson, the author of RSS/Atom in Action. Dave is also involved in Roller.
  • Dave keeps blogging on a regular basis and informs the community about progress.
  • There is a discussion forum on Nabbles.
  • The blog client, described in the book has been extracted from the example sources and and has been further developed. Today we know it as ROME Propono.

But once, I started to test, compile, and integrate into a Maven based project, I ran into trouble. To make a long story short:

  • ROME has never reached 1.0 status. Propono is still 0.6. Progress is slow. There is since 2006 a discussion what needs to be done to move to 1.0. The discussion was never intense and therefore, never reached a fix point.
  • Dave works for a different company and does not invest too much time in ROME.
  • Compiling ROME 0.9 is okay, but Propono 0.6 requires 0.9.1-dev. So you need to get the binary or get the sources from CVS. But even these don’t compile.
  • While ROME is available via Maven repositories, and hence, easily to include into a project, ROME 0.9.1-dev is not available. Actually, there is no need for that, because ROME Propono is not available via Maven repositories add all.
  • Finally, I observed quite often that users in discussion forums waited for answers from experts quite long. Some questions stayed unanswered.

Meanwhile, I found an article about Abdera in Dave’s blog. Abdera is a promising Atom framework that provides many features. It has many committers and the forum seems to be quite busy. It is easy to integrate into maven projects and even the build is fun. Despite of its early status it promises a good quality. Documentation is still scarce, however, it is sufficient to get started. One annoying thing is, that James Snell, one of the project leaders, maintains a wordpress blog which does not offer RSS/Atom feeds. This is really dull, because he is blogging about Abdera and the Atom specification quite often.

To solve the user management requirement, Roller offers an atom admin interface to create/update/delete users. This is necessary in order to have the same users on Roller as in my application. Again, to access the interface, the source application needs a client through which it can talk to Roller. Propono offers an atom client solution. However, it is not applicable because of the explained problems. The work around is to use Abdera. Abdera has a clean interface and following a few examples should help to solve this requirement.

In the end, I dropped both approaches due to some Spring problems I did not understand. Instead, I looked at the Roller’s code closely and decided to integrate very basic blogging facilities into my application. To get things done, this is the most efficient way. Maybe, one day, I get back to Roller.

Java Podcasts in iTunes

Posted by Martin Homik | Posted in Java | Posted on 11-06-2008

2

Yesterday evening, I came across the Podcast function in iTunes. I downloaded a few keynote presentations by Steve Jobs and uploaded these to my iPhone. I had the idea to use my iPhone for education for some time, but I could not find any good video podcasts. Today, I went o iTunes store, selected the podcast tab and searched for Java. I got a few hits, some of them I want to recommend:

  • Algorithmen; a German lecture podcast on algorithms and Java implementations
  • jQuery

Do you know any other video podcasts? In particular, I am searching for conference podcasts related to Java, Web2.0, and e-learning.

OSGI and Spring

Posted by Martin Homik | Posted in Java, WebApp | Posted on 11-06-2008

0

There is a great presentation on OSGi and Spring at Parleys by Adrian Colyer and Costin Leau. They give a great introduction into OSGi and Spring and explain how to integrate both frameworks.

If you ask what are the benefits of going OSGi with Spring, read Adrian’s article Why should I care about OSGi anyway? 

Parleys.com

Posted by Martin Homik | Posted in Java | Posted on 10-06-2008

0

Parleys offers some new presentations on the latest Java technology. Also, the website got a new UI which looks pretty cool now. You can view the talks online or download and watch locally on your host.

Have fun!

Bluenote: Lifestream for Learning

Posted by Martin Homik | Posted in ActiveMath, Software | Posted on 06-06-2008

0

This is a suggestion for a Bachelor Thesis. Since I have been investigating syndication techniques, recently, I got thrilled by that
idea. In this bachelor thesis suggestion, I’d like to pick up Carsten’s idea of “Lifestream for Learning”.

Motivation: These days social platforms become incredibly popular. Not only, that they connect you with your friends, they also offer you loads of information about your friends’ interests. Users love to share their life and they also love to follow their fellow students’ activities.
Facebook is the most popular international social platform in this area. Business people and researchers have discovered Facebook for their professional life. By connecting Facebook with blogs, joining professional groups, adding (dozens!) applications that are connected to professional life, users are enabled to express their professional identity. Any action is published in a life stream and friends will be notified about these action. This feature potentially offers a high benefit. Hence, let’s use a Lifestream for Learning in ActiveMath.

See also article on Spiegel-Online: What users want.

Solution/Task: Agree on a set of actions that should go into a life stream. Examples:

  • “Anton created a new discovery book on ‘the average slope’.”
  • “Anton successfully completed his book on ‘the average slope’”.
  • “Eva’s competencies increased!”
  • “Bert successfully solved a difficult exercise on ‘binomials’. Want to try it, too? Go here.”
  • Anton added a public note titled “This definition of the average slope is wrong’. Do you want to discuss it?
  • Teacher “Edgar Kessler” has uploaded a new book “

Maybe , also some auto-generated news:

  • “10 students tried this exercise on ’slopes’ but none succeeded yet. Do you want to give it a shot?”

To create a life stream, the following components are necessary:

  • create a life stream newsfeed (Atom/RSS2.0) from the history/database and store it in a file. Tools will be provided. Add proxy chaches, server-side caches, and compression to reduce computer, network, and bandwidth usage.
  • read in life stream newsfeed from file and display in a DIV on the main entry page.
  • provide a RSS button to sign up for a newsfeed

Follow Up/Alternative: Devise a flexible architecture which allows to define/seperate life stream newsfeeds relative to user and to aggregate single newsfeeds to groupfeeds where groups can by defined by class, discipline, theory, competency, … etc. Means/Tools for aggregation such as “Planet Tool” will be provided.

Follow Up: Write a Facebook application that pulls the feed and displays the actions appropriately (to be discussed). One goal is, to ADVERTIZE ActiveMath by using large platforms as drivers. Better words for “driver” in German: Trittbrett, Zugpferd …

Here is an abstract from Carsten’s mail:

“My 2 cents for Web 2.0: One important principle of W2 is “open data”. Twitter for instance get most of its traffic via API, not via the Web interface. How can we make ActiveMath more open? RSS Syndication is an important step, and in addition to feeds for content changes/additions, I would include RSS feeds with search terms. In flickr, for instance, you can subscribe to RSS feeds for search terms and you get the latest n-results in a feed. This can then be used for mash-ups.

[...]

Also definitely worth investigation is live streaming. Every Facebook user knows this feature: what did your friends do, read, install, etc. In Facebook, this information is shown in your start page. Some argue that this user centered view on the Web is an example of a more general trend in the Web. By this as it may, imagine an ActiveMath start page that shows the achievements of your classmates. “Anton successfully completed his book on ‘the average slope’”. “Eva’s compentecies increased!” “Bert created a book on ‘functions’. Take a look at it.”. By communicating specific features, we could make them more popular and more well known.

Bluenote: Capturing Mood in ActiveMath

Posted by Martin Homik | Posted in ActiveMath, Software | Posted on 06-06-2008

0

Here is a suggestion for a Bachelor Thesis.

Motivation: In state of the art community products and social platforms, mood messages are a must! Examples are: Skype and ICQ as messengers. Facebook, Twitter, StudiVZ as social platforms. Mood messages are one of the most favorite functions and drivers on these platforms. Users like to share their mood messages. Hence, let’s use mood messages for learning!

So far, capturing moods in ActiveMath can be only done like this:

  • get mood information from notes. But: there are no implicit instructions to write about a mood state in notes. Moreover, notes are visibly only, when you select the appropriate menu item.

  • make assumptions based on performance. But: assumption may be wrong. How can you be sure that a student feels anger instead of disappointment when his performance is bad.

Solution/Task: Implement an AJAX GUI Interface that offers students to express their mood message by text and/or by a smiley. A smiley is a short-cut for “I am happy/disappointed/frustrated/angry/stumped …”. This information should be stored in the database (-> and history) and can contribute to the student model. Additionaly, implement an atom feed such that this information

  • can be forwarded to other platforms the students use or
  • can be processed in some other way.

Additional benefit: this feature can be re-used for e-portfolio platforms as well. :-)

Designing Learning Technologies for ICT Education in Tanzania

Posted by Martin Homik | Posted in E-Learning | Posted on 04-06-2008

0

Erkki Sutinen visited our group and reported about his work on teaching ICT in Tanzania. It was quite fascinating, as it requires you to change your thinking. Things and attitudes in Africa are so differently that you cannot introduce the idea of ICT in the same way as in Western world. For instance, to introduce the concept of programming, they gave sort of “lego blocks” to the students. These blocks are touchable, i.e., you can feel your program.  Each block had an electronic device, that implemented some function. The function represented either an input, an operation, or an output. By stacking blocks upon each other they formed procedures that perform a function.

The researches explained how to operate with these blocks. Then they just leaned back and observed the student’s creativity. Because the students were so open-minded and have strong roots in their culture, they quickly came up with practical usage scenarios. Consequently, researchers were able to observe the requirements and needs issued by the users themselves. Hence, instead of adapting Western mechanisms to African countries which would hardly work, they investigate approaches stemming from African cultures and try to map to Western countries. A fascinating idea.

Book Review: RSS and Atom

Posted by Martin Homik | Posted in Java | Posted on 02-06-2008

1

Like most of Manning’s books, RSS and Atom in Action is a high quality book. Beginning with some real-world scenarios, Dave Johnson introduces the interested reader into the world of blogging. Often, he talks about examples and points to ideas on how to (re-) use weblogs in a sophisticated way.

The book consists of two parts, the first part introduces related technical knowledge, the second part is a hands-on tutorial which presents various application ideas.

In the technical part, Dave Johnson presents details  on the history of different newsfeed formats (RSS and Atom), the ROME newsfeed utilities, a BlogClient API (known as Propono), how to serve newsfeeds, and how to publish with XML-RPC based APIs (MetaWeblog)  as well as with Atom protocol. All examples are accompanied by code snippets either in Java or in C#. The full code is available from the website.

In the application part, you’ll learn how to implement diverse applications such as as group aggregator, searching and monitoring the web, keeping your blog in sync, blog by sending an email (from your mobile), sending a daily digest by email, blog your software build process, blog from a chat room, distribute files podcast style, automatically download podcasts, automatically validate newsfeeds, and lots more.

You get the idea, this book is written for a practitioner who need to grasp the idea and learn by training. I highly recommend this book if you are interested in blogging, syndication, aggregation, etc.

If you need more details about software and if you are a Java developer, have also a look at Roller, Propono, and Rome. Dave is involved in all three quite popular frameworks. Follow his blog to get the latest news.