Category Archives: java

Today EclipseCon started in Santa Clara, CA. The day was devoted to tutorials, a lot of interesting topics were discussed.

In the morning I went to the ”Building commercial-quality plugins” tutorial; I already read the book, and the talk was delivered by the authors, so I got a deeper understanding of some topics, pretty cool.

In the afternoon I went to the ”Mylyn best practices”, by Mik Kersten, and it was kinda awesome having a talk delivered by the author of the tool himself.

Anyway, so good so far, the conference is running smooth and nicely, lots of interesting topics and people. Looking forward to tomorrow’s talks…

In order to create a large and lively open source community around the Android mobile OS, Google has launched the Android Developer Challenge, which will provide $10 million in awards for mobile applications built on the Android platform.

Submissions will be accepted from January, 2nd through March, 3rd, 2008.

More info about Android and Android SDK (YouTube links):

Believe it or not, the price of a single SMS text message here in Italy is 0.15 EUR (0.20 USD, more or less). Let’s get it a bit more impressive: a single character is a byte, a single text message is 160 characters long, so I get charged 0.20 USD to send you 160 bytes, which means transferring a megabyte of text would cost to the final Italian user 1325 USD. It looks like a lot of money, right?

Fortunately a lot of smart people live on this planet, and Davide Marrone – a 24-years-old computer science student @ University of Milan – developed Skebby, a java app to enable people texting via their mobile phones (through Skebby’s servers) at a much lower rates.

The free membership allows users to send a limited number of text message (exploiting free services) at a cost of 0.01 EUR.

The premium membership allows no-limit texting at rates depending on how many text messages you buy in advance, but you might get till a 50% 70% off the current price.

[UPDATE: You should also add the cost of connecting from your mobile to Skebby's servers. ]

I don’t remember but if I’m not wrong Skebby.it is still only in Italian (actually it was on the national TVs yesterday, so servers went down immediately, they’re moving on right now :D ). If so, I hope they’re going to get an English version as soon as possible.

I want to recap my summer of code so far, before the final evaluation starts. Here’s what I accomplished so far. It was a lot of work, and a huge fun as well, hope to catch your interest and get some feedback on future developments! :)

GUI CONTRIBUTIONS

global_view

  • new component submission view (drag and drop support from the repository explorer to add dependencies easily :) )
  • repository explorer view
  • preference page (set repository URL)

IMPLEMENTED FEATURES

  • submit a new component
  • usual search features (name, version, tags)
  • search components providing a set of tasks
  • search components providing all the tasks of the selected ones
  • “smart” search of components functionally equivalent to the selected one (reasoning here)
  • search components depending on the selected one
  • assert functional equivalence between components

HANDS-ON

Let’s take a test drive. I submit a new component, in this case (just as an example) the “last-gsoc-demo” one. I fill in some data, and press submit. I can just drag-and-drop dependencies from the repository explorer to the dependencies viewer.

submit drag drop

I previously submitted some sample components. Now since all jdbc drivers implement the same specification, to some extent it is correct to consider them “functionally equivalent”, and I push this statement in the knowledge base.

find-eq

For sake of brevity I ask you to trust me without further shots, what I did is just assert all jdbc drivers in the repository (besides the “dummy-jdbc” one) “functionally equivalent” to the postgresql one, and then assert the “dummy- jdbc” only equivalent to “mysql-jdbc”. I can ask now the repository to give me components “functionally equivalent” to the selected one (“dummy-jdbc”), just clicking on the context menu item:
assert-eq

Here’s what I obtain:

inference-rulez

You might notice that the selected item is still there, which makes sense since everything is of course functionally equivalent to itself. ;) Furthermore, it is worthwhile to note I only said the “dummy-jdbc” was equivalent to “mysql-jdbc”, full stop! The rest is just the result of the reasoning process.

Now, I can also describe a component in terms of the “tasks” it carries out. Let’s suppose – just as an example – I have two components, one for “dom-parsing” and the other for “sax-parsing”.

tasks

Suppose now I was not on earth in the last years and I want to know if there exists a single component doing the two things.

union-tasks task-union-found

I can select both of them, click on the shown item and I’ll get xerces-j actually does both things. I might decide to use it if it fits my needs, since a single dependency is better than two, in most cases.

I also could want to know if other components rely on mine, or for instance how many components actually use one, which usually means it has great reputation. Remember the “last-gsoc-demo” component? I put “mysql-jdbc” as a dependency there. I just right click on the component, and find the components depending on the selected one. :)

search-clients client

CLIENT-SERVER ARCHITECTURAL VIEW (after latest modifications)

architecture

KNOWN BUGS

  • troubles with SPARQL queries involving literals: searching against id and tasks is ok, versions and tags are not (yet the http://repo.url/tag/{tag} resource works fine… i had no time to investigate further befor pencils were off)
  • dangling dependencies (i.e. after a delete operation) are not handled yet.

COMING SOON (random order)

  • rest (not in the soa-ish meaning)
  • enable license and license-style search criteria on the plugin
  • associate a new perspective with the provided views
  • improve repository explorer (i don’t like that tree very much)
  • bundled repository exploiting the eclipse embedded jetty server
  • import existing metadata from maven POM or OSGi manifest (URL drag and drop from web browser?)
  • address repository data access layer performance issues
  • setup an update site somewhere on the globe

CHEERS
That’s all for now, I really enjoyed the work, and I am confident this both- side fruitful collaboration will go on. A lot of things remain to be done on this project, and I won’t let it down after Google Summer of Code stops.

I want to thank Philippe Ombredanne for mentoring me, and all the guys @ #eclipse-soc for supporting me and other students day after day. It was an invaluable experience to work with you guys.

See you online,

cheers,

Savino Sguera.

I was really amazed reading this post by Chris Aniszczyk about moving webapp development towards OSGi bundles. A few Eclipse projects are active in that direction, and it is possible to embed Equinox (Eclipse’s OSGi implementation, which underlies Eclipse architecture itself) into a servlet container.

One of the original objectives for the server-side work was to look at what’s involved in launching and interacting with various server-side containers. Currently, there is actively maintained work in support of embedding in a servlet container.

This could really introduce a revolution in webapp development. Amazing.

PS: You might want to read more about the OSGi technology

mylynNo big news in this post, yet I stumbled upon an old post @ Internet Duct Tape (thanks to this bi-monthly digest) about time tracking for programmers, and some task management tools reviews.

The post is quite interesting, but I just noticed the tools list lacks Mylyn, an Eclipse plug-in (formerly known as Mylar) I personally started using not so long ago, but which has gained popularity among developers, and which is part of the Eclipse Europa release. For those of you who already know the Mylyn project, this post is absolutely useless… skip it. :P

Anyway, if there is anybody out there who does not know about it … Read More »

A series of 15 videos (plus a tutorial document) has been carried out by Mark Dexter to help beginners to get into Java development using Eclipse, Wayne Beaton reports.

I had a look at the first video on YouTube, and it looks very good and usable. Other videos are available @ Sourceforge eclipsetutorial project. Have a look :) !

Recap: previous status reportall about my GSoC project @ Eclipse

Most significant updates for this week:

  • Model refactoring
  • Ontology design improvement
  • Jastor classes update
  • Implemented marshalling subsystem (XStream)
  • Added persistency to Jena model (Apache Derby embedded DB)
  • Tested full stack data flow:
    Restlet’s DomRepresentation <-> Document <-> XML <-> Javabean <-> Jastor class <-> Jena statements <-> RDBMS
  • Discussed dependencies licensing issues (no problems ahead)
  • Started client’s architectural design (and assessed code reuse scenarios)
  • Added javadoc
  • Committed new code to eclipse-incub

Very next steps:

  • Discuss some modeling issues with Philippe
  • Implement REST layer
  • Get a live demo of the repository up and running
  • Start client design
  • Add a “dependencies” page to project’s wiki

Mid-term evaluation incoming, blogged about my Google Summer of Code project @ Eclipse Summer of Code Blog.

Some significant progress this week, I’m absolutely satisfied but a lot of work is still to be done.

Read the entry and feel free to drop a line of comment!

Eclipse now supports iPhone development by an Aptana plugin, LeNettoyeur reports. I’ve been dealing with aptana months ago, in this post.

You might want to have a look, it’s got some quite interesting features IMHO.

Looking forward for the iPhone to ship in Italy as well :P .