Search sites continued …

Posted by Martin Homik | Posted in Semantic Web | Posted on 14-08-2008

0

Search sites that base their knowledge on semantic information are clearly progressing. Watch the awesome video of  Freebase Parallax. There is another interface here.

Search Sites

Posted by Martin Homik | Posted in Uncategorized | Posted on 06-08-2008

0

For a very long time, Google has been my primary search site/engine. The other day, however, I stumbled upon a few alternatives.

Cuil is a nice search site which encapsulates some semantic information. for instance, when you search for “Apache” then it will come up with hits distributed by category like “Software”, “Tribe”, or “Helicopter”. That’s quite useful and more accurate than Google’s hit list.

The other site I’d like to mention is SearchMe which is very fast. Results are presented a previews. That is, instead of clicking a link and going to the site, you can just browse WebSites more or less in CoverFlow. And the hits are also very accurate.

Debugging Maven projects with Eclipse

Posted by Martin Homik | Posted in Java, WebApp | Posted on 31-07-2008

0

Debugging Maven projects with Eclipse or any other IDE on Windows is not trivial. In the beginning. But once you know the mechansim, it’s simple. I googled and found a few helpful pages. Look here. Here are my experiences.

Maven supports two debug modes: the Generic and the Surefire. If you want to debug maven itself, one of maven’s plugins, or a maven project, use the Generic Approach. If you want to debug a test in your project launched by surefire, use the Surefire Approach.

Surefire Approach.

  • Create a new Java Project and call it “Maven Debug”. This Project will never have any source code in it, it is just a shell for attaching the debugger.
  • Create a debug configuration: Run -> Debug Configurations and then right click on Remote Java Application and select New launch configuration. Call it “Maven Surefire”.
  •  On the Connect tab click the Browse button and select the “Maven Debug” project.
  • Set connection properties to localhost and port 5005. This is the port on which Surefire waits for the debugger.
  • The connection type is Standard (Socket Attach)
  • On the Source tab add all projects that have any Maven source that you want to debug.

Now let’s do the actual debugging.

  • Select break points in the code you’re are going to run. Note, you cn select only code in your test classes. It won’t work on classes outside the test phase.
  • In your command line, append the following switch to your maven command: -Dmaven.surefire.debug. For example, to debug the tests run by the maven lifecycle install do mvn install -Dmaven.surefire.debug
  • Wait for maven to pause its execution and display the message: Listening for transport dt_socket at address: 5005
  • Attach the debugger to the running maven by selecting the “Maven Surefire” debug configuration created above. Your debugger should stop at your breakpoint.

Generic Approach.

  • Follow the instructions, presented here. The only instructions that worked for me. They are very similar to the Surefire Approach.
  • Note: use Maven 2.0.8 or higher. The, you don’t need to write your own maven debug script. It’ll be sufficient to use the shipped mvnDebug script.

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.