Category Archives: community

I just booked my flight to the US, to attend EclipseCon. I will give a short talk about my Google Summer of Code project, and have the lucky chance to listen to a huge amount of interesting talks.

I will also take the chance to be some kind of a turist in the early days of my stay.

Updates will follow. :P

In my previous post I dealt (as the greatest part of tech bloggers) with Google Android Developer Challenge.

I just discovered in the FAQ these lines, which upset me:

Who’s eligible to participate?

  • The Android Developer Challenge is open to individuals, teams of individuals, and business entities. While we seek to make the Challenge open worldwide, we cannot open the Challenge to residents of Cuba, Iran, Syria, North Korea, Sudan, and Myanmar (Burma) because of U.S. laws. In addition, the Challenge is not open to residents of Italy or Quebec because of local restrictions.

Looks like the bureaucracy in Italy is way too complicated:

Fabrizio Giudici (post 405849595839) writes:

You might wonder what are those “local restrictions”. Well, for my country:

  • prizes must be assigned in presence of a notary public and a representative from an acknowledged consumer association;
  • prizes that are not delivered (for any reason, including recipient not picking them) must be donated to some non-profit organizations, explicitly listed in the contest rules;
  • there are some papers to fill in and the contest must be registered to two different Ministries (you know, in Italy there are a lot of Ministries, sometimes it’s hard to understand who’s doing what) and to the State Monopoly Administration.

But above all:

  • the entity which is organizing the contest must guarantee in advance a security deposit “cash loan” (not sure of the translation here, but I hope you get the point) covering the whole value of prizes.

I’m speechless… absolutely speechless.

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):

I just discovered UnSpun, an Amazon project (still in Beta) which allows you to “Find the Best, Find the Worst, Vote Your Opinion, Create Your Own Lists”.

To put it simple, you can create a new list (i.e., best bra color… anyway, that one is already in the top ten at the moment :) ), and make people vote, or search for an existing list and rank other users’ opinions, or just add yours if it is not present in the list so far. You can use your existing Amazon account, if you have one.

Both fun and useful (I suspect the “Best Xmas present for girlfriend/wife” list to show up in the top 3 in a couple of months :P ).

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.

Here is a very nice post by Andy Brice @ “Successful Software” about the importance of releasing early in software development. I commented the post as well, so I won’t say the same things here.

“You wouldn’t write a thousand lines of code before you tried to compile it. Why would you spend a year or more on development before testing it in the market?”

The author lists a few arguments “for” and “against” releasing early, and puts “Reputation” in the “against” list (ok, not properly, since he explains how not to get a bad reputation). I surely agree with his argument and I think “Reputation” should be in the “for” list as well.

If I release early and frequently add new features in response to users’ feedback, I will incrementally build users’ confidence in the product, acquire new customers, get blogs buzzing about the application and its improvements, and make users feel like their desires do really count and are driving future developments of the product.

On the other hand, if I come up with a late released, one-size-fits-all product, users won’t feel part of the development process at all, which is weird since they actually are important project’s stakeholders.

Anyway, some really good points are in the post… you made it easier on me to release v1.0 for my GSoC project (review coming soon) :P .

(BTW the blog is currently the “Fastest growing blog” @ wordpress.com. Congratulations. :) )

After last year great success, Italy didn’t make it this year: finalists in the software design category are Austria, Ireland, Jamaica, Korea, Serbia and Thailand.

Read more:

I am bundling the Semantic Repository for my GSoC project as an Eclipse plugin, relying on the embedded Jetty server shipped within Eclipse (yes, once it was Tomcat, used by the Help plugin).restlet

The repository publishes a set of REST API, and makes use of the RESTlet framework, and I just discovered that guys @ Noelios provided a nice and easy way to integrate RESTlet in plugin development: have a look at FAQ#21.

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 »

Yeah, right… chemistry :P I just spotted (thanks to