Archive for the 'opensource' Category

Dutch Ministry of Finance website goes live

If you’ve been wondering what I’ve been doing in Amsterdam lately, here’s the scoop. I’ve been working with the Hippo and the Clockwork guys, together with Andrew and other colleagues, to design and implement the new website for the Dutch Ministry of Finance.

This is the first major website to be based on the new, open source version of Hippo CMS and it’s not going to be the last one, as the website for the Ministry of Foreign Affairs is next in line, and then maybe other government sites will follow.

The website strives to be valid XHTML, even though validity checking is not yet complete, and accessible to everyone. Of course, you should be able to read Dutch… ah wait, there’s an English version available.

Congratulations to everyone involved and looking forward to many other big achievements like this one!

Speaking at OSCON

OSCON.gifJust got this in the mail:

Congratulations! You have been accepted as a presenter for the O’Reilly Open Source Convention 2006 at the Oregon Convention Center July 24, 2006 - July 28, 2006.

The following has been accepted as a 45 minute session for the event:

“Ruby for Java Programmers”

I can’t even try do describe how excited I am. OSCON is the Open Source conference to attend if you’re into OSS — not to mention speaking at it — even if someone may consider it a bit too commercial. At the same time, I’m somewhat scared. I’ll have to prepare a kick-ass talk and double-check all my facts if I don’t want to be thoroughly grilled.

Technorati Tags: , , , .

Faulty parallel between Open Source and sports

Matt Asay: “In short, open source = Arsenal. Enterprise bloatware = Juventus.”

If that were true, Arsenal would be the winning team, as Open Source is winning more and more often against enterprise bloatware. Instead, Arsenal is doing so-so and Juventus is about two win the second championship in a row. How comes? Well, I guess we’ll find out on March 28 ;).

Technorati Tags: , , .

Will the real Open Source please stand up?

An interesting debate is going on among a few prominent bloggers, most of whom I know personally, around the concept of Open Source and the risk it runs of being watered down by clueless companies trying to bend and exploit it for their own ends.

It all started with feather (the ASF marketing blog) quoting my friend and colleague Gianugo:

I think I’ve been through enough winters to understand that the world is a competitive pool full of sharks and deal with it, but still I’m disturbed by the number of people trying to exploit the Open Source wave with little to no clue.

Then Sylvain chimed in with:

There’s been a number of companies jumping in the Open Source bandwagon lately, using it merely as a marketing tool to find new creative ways of locking in customers.

Later Matt puts forward his disagreement:

I do think that the “real” open source community tends to view itself through an elitist frame sometimes, and fetishes over what’s being kept back rather than what is being given away. The upshot of even the lamest of open source companies is that a huge amount of code (much more than if the “real” community were left to its own devices - just take a look at the growth in Sourceforge since the mudbloods invaded) is now free. This is a positive thing, whatever the negatives (and I’ve written similarly to Gianugo’s comments before.

Finally, we have Matthew who does not want to take sides:

A bit like quantum physics (if you’ll pardon the glossing over) - the more people look at Open Source (with their varied backgrounds and goals), the more Open Source itself will change to become - well, who knows. Being successful in this marketplace will also mean being able to adapt quickly to the changes within Open Source and within the software business as a whole.

Personally, I too think that community is more important than code and that Darwinian selection will weed out certain companies, or at least their Open Source strategies, in the end. However, I’m not so sure we need to clarify what Open Source really stands for and that we risk being confused with “the suckers out there”. Regardless of the field we’re playing in, we’re bound to find opportunistic players, but we shouldn’t be afraid of being perceived to be one and the same with them, just as Rijkaard shouldn’t be afraid of being lumped together with Mourinho (I guess Matt will agree with me here. By the way, as I’m writing this the match is still 0-0 but Barcelona seems to be able to score sooner or later).

Most of all, I agree with Matthew: “it’s the customer who will, in the end, define what commercial Open Source turns out to be.”

Technorati Tags: , .

We’re hiring…

We still don’t have a logo (more on this later), but yes, we’re hiring.

We’re looking for developers who would like to work for a small company with a strong orientation towards Open Source, as in wanting to actively participate in Open Source communities and give back as well as take. We like agility, focus, getting real. We like to communicate openly: Open Source is mostly about communicating with your peers, after all. We have strong international ties, so you could find yourself traveling a bit, mostly across Europe, but we can also offer telecommuting arrangements if you like working from home.

We would like you to know most of the buzzwords in the enterprise Java world, like JDBC, JMS, JAXP, Spring, Hibernate, JDO; to know your way around the 1st and the 2nd generation Web, starting with HTTP and HTML and going through XML, XSLT, XPath, XQuery, REST, Web Services; to have a strong background in OOP theory and relational databases.

We’re looking for both junior and senior developers, designers and architects. So we expect you to know by heart most of what I listed above, but even if you’re fresh out of college don’t worry. If you have a good background and are willing to learn, we’re ready to teach.

If you’re interested, send your resume (in text, HTML or PDF formats only; any other format will be rejected immediately) to recruitment@sourcesense.com. We’d love to hear your story.

Updated to ping edgeio.

Technorati Tags: , , , .

Krugle

krugleIt might be a bit early to say something interesting about krugle, given that it hasn’t launched yet, but I’ll try.

Judging from the product brief alone, it should really rock. But of course, all that matters is execution. I think relevance can be a big issue here. One of the screenshots shows search results for “java hash map”. How do you decide that a search result from Eclipse is more relevant than a search result from Apache Portals?

Koders has the same problem here, though. However, searching for “java hash map” is not very meaningful: Any competent Java programmer would just use a java.util.HashMap. It would be more useful to search for, say, “red-black tree algorithm in java”. There Koders fails miserably, whereas Google does find some results which seem relevant. How will Krugle fare? I don’t know, but if I manage to be accepted in the beta program, I will surely report.

I have also some reservations about the emphasis on componentized software:

The world has shifted from inflexible, monolithic applications written in isolation to applications built with components that can easily be modified and leveraged.

Unfortunately, at least in my humble opinion, the promise of reusable, modifiable components has failed to materialize so far, except maybe for VB programmers. It’s true that you can find many freely available libraries, toolkits and frameworks, but try to find an application-level component that you can readily reuse without extensive rewriting and you’re suddenly faced with a much harder task.

Anyway, this shouldn’t detract from the fact that a search engine for Open Source code can actually be useful, if properly implemented. I’m currently thinking whether it would be possible and worthwhile to mash up The Open Source Zone with Krugle. Do they provide an API?

Last but not the least, they have Chris Locke on board as “Blog Wrangler”. Well, this probably shows that they have a clue, at least. ;)

Technorati Tags: , ,

Getting that Passion Back

I really dug this post by Berin:

In fact, part of what causes me to get going is the mission to make stuff that enables users. Things that let them do what wasn’t possible before. Learning new tricks and applying them to old problems. Solving new problems, etc. Bottom line is that my days in corporate life are numbered. I am going to make stuff that rules, and I plan on making money doing it. I am going to have a job that encourages innovation — even if I have to create it. That’s what keeps my fires burning now.

Indeed, passion is what prompted us to start SourceSense. We want to make innovative stuff that makes users happy. And of course, if we make money doing this, we won’t complain ;).

While I’m on the subject, I want to remember everybody that we have a contest running and you still have plenty of time to submit your works of art and possibly win a MacBook Pro. We already received a fair number of submissions: Some good, some less so, but if you want to make our choice harder, keep ‘em logos coming!

Design fancy logo, win a MacBook Pro

fancy logo goes here.pngWould you like a brand new, Intel-powered. MacBook Pro? All you have to do is design a logo for our new company. We will select the one we like most and award the winner a 1.67GHz MacBook Pro. Head on to the contest section of the website and be sure to read all the rules.

You might want to know who we are and what we do. You can read about us on the contest’s brief section, but the short version is that we are a bunch of Open Source enthusiasts who decided that founding a new company was the best way to further our passion and our interests. I’ll probably tell you more on this in the coming days.


Adium is the Future

Adiumy.pngTim Bray: “Software of the future will be Open Source, will have a sophisticated and smart user interface, will take responsibility for making sure it’s up to date, and will meet essential human needs. Like Adium.”

And maybe it’s not entirely coincidental that software exhibiting these kind of characteristics, more often than not, was made for the Mac.

New OSZ feature: User tips

I just finished adding a new feature to The Open Source Zone, inspired by a similar feature on CodeZoo. Users can now add short “tips” to a project. The tip can also contain a snippet of source code. Hope you’ll appreciate it.

Amazon Gets Patents on Consumer Reviews

I’m a bit worried by this:

Susan Kuchinskas, Internet News: “In one embodiment of the patent, the system sends consumers a message inviting them to write a review in a predetermined amount of time after the purchase. It’s a method widely used by online retailers, including Yahoo Shopping. The patent also covers the method of tracking who returns to rate products by asking them to click on a unique link in an e-mail.”

Apart from being worried in a general way about the ongoing spread of patents concerning business methods, I am worried in particular because when I designed The Open Source Zone, one of the explicit design goals was to build an Amazon type storefront, with user contributed reviews at its center.

Now, we don’t send messages to users inviting them to write reviews, but Susan also writes: But the patent even covers collecting reviews by letting visitors to a Web site fill out a form., which seems to cover also our usage. I really hope this is not the case.

I’d also like to know whether the patent is enforceable outside the U.S.

(Via Matt Asay.)

Open Source Conferences Calendar

CalendarHere’s a new feature for The Open Source Zone: A nice monthly calendar for Open Source conferences.

Head over to The Open Source Zone to check it out. And if your favorite conference, convention or symposium isn’t there yet, feel free to add it yourself.

Of course, you can always use the Conferences RSS feed to stay up to date on new conference announcements, just like before.

OSZone Planet

oszone-beta.gifIt’s been a while since I have been doing anything about The Open Source Zone. You know the story: new job, new responsibilities, little time for blogging or side projects. But I finally found some time last weekend to introduce a new feature, one that I wanted to add from the beginning: A news aggregator.

So let me introduce to you OSZone Planet, an aggregation of the best news channels and blogs about Open Source. There’s not much there yet, actually. You just get the most recent items from a predefined set of channels, but I plan to introduce more features, like personalization — you will be able to select the channels you want to read — and an aggregated RSS feed, and more, in the coming days.

Also, it will be possible to submit new channels for inclusion. For the moment, if you know of a news site or blog that should be included, and it has an RSS/Atom feed, please let us know and we will add it.

On the technical side of things, there’s not much to say. I used Rome as the basis for the aggregator and it worked perfectly, at least from version 0.7 beta (version 0.6 had a little too many bugs to be seriously usable). I didn’t have to add much to what is already provided by Rome. Kudos!

Open Source positioning

Sacha Labourey: “As I was thinking about the way companies (mostly software vendors) position towards Open Source, I realized I could try to categorize them.

Here is what I came up with:

  • The truly committed
  • The mixed-codebase
  • The pragmatics
  • The anti-strategist
  • The headless chickens
  • The in-denial
  • The anti-OSS”

I like to think that we can be characterized as mixed-codebase:

The second category, the “mixed-codebase”, gathers companies with an increasing commitment to an Open Source strategy but that also have some existing critical revenue streams to protect, and hence cannot simply switch to a full OSS strategy overnight. “Mixed-codebase” companies not only deploy on/use Open Source software (as an ISV), but also actively contribute to (or even lead) OSS projects and have some clear OSS alliances reinforcing this strategy. Examples of such companies include Novell and Computer Associates. I mostly see the “mixed-codebase” category has a transition step: companies will eventually move to category 1 (successful transition) or 3 (retrenchment), depending on how well they execute their transition, how well they can convert their existing revenue streams, how frequently they change their CEO, etc. I do not know of any company that would have successfully switched from a traditional company to a category 1 company yet. My bet is that such a thing will take place in the next 2 years.

We are probably also trying to move to category 1, but it’s going to take lots of time and sweat. Where are you on the above scale?

Looking for a feed parser

One of the planned features for The Open Source Zone is an RSS aggregator that could be used to fetch and aggregate news channels from project websites, blogs, Freshmeat announcements and the like.

Obviously, I want to reuse the best Open Source foundations available for accomplishing this task. Looking around for Java-based solutions I found Rome and the Jakarta FeedParser.

The latter seem somewhat more mature and it already includes “an advanced networking layer which meets the requirements necessary for providing XML aggregations services over HTTP. This includes support for If-None-Match (ETags), If-Modified-Since (HTTP 304 Not Modified), gzip content encoding (compression), User Agent modification, non-infinite timeouts, event callbacks for download progress, support for setting HTTP Referrer headers, maximum content downloads (no files larger than N bytes), ability to use custom HTTP methods (HEAD, GET, PUT, POST) etc.”

It also supports autodiscovery and apparently it is being used by Rojo, so it’s not vaporware.

On the other hand, a suitable networking layer is available for Rome as a subproject. Moreover, there is at least one implementation of a persistence mechanism for feeds (Aqueduct-Prevayler) while there doesn’t seem to be one for FeedParser.

Everything considered, I’d be inclined to start experimenting with FeedParser, unless you, my dear readers, have some suggestions to make. In which case, please leave a comment.

Update: my first brush with FeedParser didn’t exactly inspire much confidence in me, as there is no downloadable distribution, but you have to use Subversion and the SVN URL on the website is wrong (hint: the correct one seems to be http://svn.apache.org/repos/asf/jakarta/commons/proper/feedparser/trunk/). Then no build instructions are provided. Looks like it uses Maven :(. Luckily, a plain Ant build file is provided and I managed to build a JAR file.

Cocoon going to Amsterdam

I always wanted to visit Amsterdam. Looks like this will be a valid pretext:

Arjé and I are spilling the news on the new location of the yearly Cocoon GetTogether: we’re dropping the anchor in Amsterdam this year!

The EuroOSCON is going to be in Amsterdam too, just a couple of weeks later. It would be great to be able to be there as well, but it all depends on what the boss and the wife think.

A world without folders is not a world without structure

Following up on yesterday’s post on taxonomies vs. folksonomies, I spotted an interesting conversation going on between John Hiler, Dan Brown and Gene Smith.

Herewith some interesting quotes:

Google’s War on Hierarchy, and the Death of Hierarchical Folders, John Hiler: “But Folders rarely solve the core problem that they address - and often create new ones, like forcing you to create new folders just to manage new information. Solutions like Search, Archives, Stars and Labels get more directly at the core problem… and promise that the future of information management will look very different from its past.”

A world without folders is not a world without structure, Dan Brown: “Hierarchies are not dead. We may use them as we did when personal computers first came out, to organize a small amount of information. By limiting the scope of information, a user-defined hierarchy becomes useful. We may use them as temporary containers, like a collection of search results. We may use them to organize the elements of an information system (like email). We may find new ways to add meta data to information to allow us to create as-needed hierarchies. The human mind loves part-whole organization, even if its abstract and complex. While interfaces may do away with simple implementations (like folders) we will never see them disappear completely.”

The Death of Hierarchy? Gene Smith: “Indeed, structure is useful. And instead of one structural option–the folder–we now have derived structure (like search engine indexes and the derived polyhierarchies in iTunes) and user-applied structure (tags, labels, links, playlists). This is not the death of hierarchy; it’s the augmentation of hierarchy.”

What I’m taking away from this discussion is a reinforcement of my decision of keeping some amount of hierarchy (albeit a very shallow one), augmented with search, tags and links.

Taxonomies and folksonomies

oszone-beta.gifI just found out that the “smart” tagging interface I implemented last friday is not so smart after all. It’s actually a bit broken in that it only extracts single words from descriptions before matching them with existing tags. The problem is than tags can be made up of multiple words and no matches with multi-word tags are thus ever found.

Alright, this can be fixed and I will probably work on it tonight, but this made me think about the reasons why del.icio.us tags do not contain any spaces. I still think it’s inconvenient, from a user’s perspective, not to be able to use spaces to separate words within tags and to be forced to use hyphens, underscores or other similarly awkward punctuation marks. But I can understand how easier it is to deal with it form a programmer’s perspective.

Another problem is that it will be impossible to connect OSZone tags to del.icio.us tags without arbitrarily changing blanks into underscores or something like that, before linking.

Anyway, users always come first, so I’ll stick to spaces for now. Changing along the road, if it is necessary, is just a search & replace operation.

I also started thinking about the taxonomy of projects. Until now, we have relied on a simple system of categories that is intended to classify projects according to their main mode of use: libraries that you link in with your code as opposed to frameworks that somehow force your code to adapt and be controlled from the outside, or development tools that you use during development but don’t become part of your program.

I reasoned that tags, the search and the “similar projects” feature would be much more useful than putting projects into a fixed set of non-communicating vases. So I went for the minimum amount of taxonomy that would not get in the way too much. I still think this is a good idea, but I’d like to explore adding another dimension to the classification.

This would be the dimension of “field of application” and its axis would be labeled “web publishing”, “data management”, “XML”, “graphics”, “text manipulation”, … (I’m just picking categories at random here, out of the top of my head). I would never want a hierarchical taxonomy, but probably a set of orthogonal dimensions along which to classify projects would be nice to have. User could choose to navigate along the dimension that they care the most about. Let’s call that faceted navigation (hat tip: the Daisy folks). What do you think?

Smart tagging available in The Open Source Zone

I’ve just finished implementing a cool new feature in The Open Source Zone. Tagging a project now presents a user interface similar to the new del.icio.us one. Click on the image below to see a screenshot.

screenshot

This works by parsing the description of the project and looking for words that have already been used as tags before. It still lacks a little polishing: you can select the same tag more than once, for instance, even though it will only be stored once, so it’s more of an issue of UI consistency than of data integrity.

I think it’s a nice improvement over the previous version, where you had no help in selecting tags. I’m currently working on providing a better user experience as I think this is one of the keys to getting more users involved. Next, I’ll attack the interface for selecting similar projects.

The Open Source Zone - Tech writeup

oszone-beta.gifThe Open Source Zone is a web application that exploits a large number of Open Source libraries, frameworks and services, namely:

It would have been impossible to create The Open Source Zone in such a short amount of time if all this great code had not been contributed to the Open Source community. Our most sincere thanks go to the people who created these packages.

The heart of the system is a Java web application whose main building blocks are:

The Spring Framework, a powerful container based on dependency injection, which is used to configure and bring together the services provided by the other components, most notably Hibernate and Lucene.

Hibernate, an object-relational mapping (ORM) framework which guarantees the persistence of Java objects by abstracting away the relational model of the underlying database and hiding the complexities of JDBC programming.

Apache Lucene, which is used to provide indexing and search services.

Apache Cocoon, a powerful, XML-based web application framework, which implements the presentation layer and manages the flow of user interactions using an innovative continuations-based approach.

Spring, Hibernate, Lucene and Cocoon, together with the PostgreSQL JDBC driver are hosted inside the Jetty servlet container.

Storage of data is guaranteed by the PostgreSQL Relational DataBase Management System (RDBMS). The interface between the Java application and the RDBMS is managed by the PostgreSQL JDBC driver.

The Apache HTTPD 2.0 server is placed in front of the Jetty Servlet container as a caching proxy, using the mod_proxy and mod_cache modules. This solution provides the following benefits:

  • Static resources (images, CSS stylesheets, Javascript files) are served directly by Apache HTTPD and don’t cause unnecessary load on the Servlet container.
  • Infrequently changing data can be cached and served directly by Apache HTTPD without forwarding requests to the Java application and to the database, thus ensuring larger scalability in case of numerous concurrent requests.
  • When the Java application must be taken down for maintenance and upgrades, Apache HTTPD can show a warning page, informing users of the downtime and avoiding the dreaded “Connection refused” message.

Load balancing and clustering could be implemented in the future, simply by having one HTTPD server forwarding requests to more than one Java application server.

The exact configuration of Apache mod_proxy and mod_cache is similar to the one used by Pier and described in this wiki entry.