Archive for the 'devel' Category

Alfresco Tech Talk Live @ 12pm EST, Friday May 15st, 2009

Tomorrow I will be presenting our CMIS Explorer Portlet during this week’s episode of Alfresco Tech Talk Live. This is going to be a fairly technical talk, with lots of code thrown in for the developers’ benefit. If you want to know more about CMIS and how to leverage it in your Java applications, you should definitely listen.

To attend, please visit http://alfresco.acrobat.com/live and enter the meeting room as a Guest. The talk will start at 12PM EST. I know, it’s 6PM on a Friday for us Central European folks, but I hope you won’t be all heading for the sea-side already.

You can find more information about TTL here.

Job-related updates

Sourcesense LogoSince it’s been a while since I’ve posted anything about job-related events, here’s a recap of a number of things that made—or should have made—the news in the last few weeks.

First of all, we made a big splash by being named EMEA JBoss Partner of the Year at the Red Hat Summit in Malta, last April. Quite an achievement, I’d say, fueled in a not so small part by the dedication of our colleagues Luca and Piergiorgio, who have been named committers for the JBoss Portal project.

We are also ramping up our contributions to various Open Source communities. Let me just mention our OpenSSO connector for Alfresco, a project started by Gustavo that has just gone officially live on our new “forge”: opensource.sourcesense.com.

Finally, we are investing a lot of effort into this CMIS stuff that has everybody in the content management world interested. I personally got my feet wet with a 2-day “plug fest” that was held at Day Software’s headquarters, in Basel last week. Watching all those CMS vendors getting together to test the interoperability of their systems has been invigorating. Too bad nobody from either Microsoft or Oracle was there, but I guess getting approval for travel these days is not easy, so we will probably see them at a similar event in the US soon.

We are also going to get involved a lot in the new Apache Chemistry project that has just started its incubation phase at Apache. Stay tuned!

The ASF is 10 years old

OK, this is old news, as the official birthday was yesterday, but yesterday I was too busy to write anything here. Actually I was busy having lunch with the person who personally signed the letter of incorporation, Roy T. Fielding. Curiously, neither of us was in Amsterdam, that’s how life goes sometimes. This would have been my first ApacheCon as an ASF member, so I’m a bit sad about not having been able to join the celebrations, but Happy Birthday Apache! anyway.

10 Years of Apache

On a related note, today’s meme is “my first message to an Apache list”. Mine was on Jul 7, 2000 (as documented here). This means that next year will mark the 10th birthday of my first participation (however minor) to an Apache project.

Apache OFBiz Development (book review)

Book cover
Apache OFBiz Development: The Beginner’s Tutorial, by Jonathon Wong and Rupert Howell, aims to fill a niche that was completely empty until this book was published. The Apache OFBiz project is an Open Source framework for building enterprise automation applications on the Java platform. OFBiz has been used to build many business applications, but until now there wasn’t a comprehensive beginner’s tutorial for developers wanting to use the platform. As with many Open Source projects, freely available OFBiz documentation tends to be incomplete and not very well organized, so a book that can be read cover-to-cover and provides a good developer’s tutorial is certainly welcome.

Unfortunately, this book fulfills this promise only partially. As a disclaimer, let me start by saying that I am not an OFBiz expert, having only had a passing acquaintance with its Persistence Engine, so I am not equipped to judge whether the content of this book is accurate and reasonably complete. I am indeed a beginner with respect to OFBiz, so I should be exactly the right kind of public for this book.

As the beginner that I am, I started reading the book, but soon found it very hard to keep on reading. For one thing, the text does not seem to follow a smooth, linear narrative. Its flow is continuously broken up by the use of very short sections with a big, bold title. Personally, I’d have saved on the ink and paper and coalesced small sections into bigger ones.

Another problem, at least in the early chapters, is the tendency to present simple concepts and examples, together with a promise to explain more in the rest of the chapters. I understand that you cannot present very detailed explanations right at the beginning, but this book goes just a bit overboard in leaving the reader hanging on.

The net effect of this approach is that it makes reading very difficult, after a while. This problem could be overcome by a reader with enough patience and determination, but in my case I soon started to skip sections and to peek ahead to see if there was something more interesting for me.

Sampling around, I came upon Chapter 9, “The Events” and was very perplexed. This s a short chapter which only uses the “event” word twice in the first page, without even explaining what an event is in the context of OFBiz, copies some text from page 117, then switches completely to the topics of security and access control, and of localization, none of which seems particularly event-driven to me. Maybe I am completely missing the meaning of “event” in OFBiz, but this is just one more reason to explain it properly in a beginner’s tutorial.

Another aspect of the book that I was uncomfortable with is that, most of the time, the reader is treated not just as an absolute beginner with OFBiz, but as a beginner with the whole concept of developing Java web applications, to the point of showing him how to download and install the JDK. I would just state that a certain level of knowledge and past experience with the whole platform is a requirement in the preface. Showing how to install the JDK is not going to help anyone here.

To sum it up, my opinion of this book is not very good. Still, all is not bad, and I think it can be a decent tutorial for most parts of OFBiz. Since such a tutorial was definitely needed, it’s a shame “Apache OFBiz Development” succeeds only partially.

Update: “Chapter 10: the Service Engine” is freely available from the publisher’s website.

(6)

Alfresco Developer Guide (Book Review)

Alfresco Developer Guide by Jeff PottsAlfresco Developer Guide, by Jeff Potts, is the second title about Alfresco recently published by Packt Publishing, after Alfresco Enterprise Content Management Implementation, by Munwar Shariff, that was published almost two years ago.

For those who don’t know, Alfresco is the leading Open Source Enterprise Content Management system and is rapidly gaining acceptance in many enterprises, thanks to its rich feature set and ease of implementation.

Given the brisk pace of development of the product over the recent months, a new volume on Alfresco was eagerly awaited by many. This one mostly covers Alfresco 2.2, with some mentions about the new features introduced in version 3.0, whose official release happened shortly after the book was published. So it hit the shelves with a bit of unfortunate timing, but luckily none of the content of the book is to be considered obsolete, as all the APIs that used to work with 2.2 still work with 3.0. Still, a bit more coverage of 3.0 would have been great, but we can hope that maybe more will be added in a second edition.

Speaking of the content that is in this edition, readers will be able to find in-depth coverage of almost all aspects of the Alfresco platform, from a developer point of view. The target audience of the book is indeed developers who want to customize and extend Alfresco, and create new applications on top of it. Good overviews of content modeling, Web Client (Alfresco’s own web-based management console) customizations, behaviors, transformers and extractors, Web Scripts, advanced workflows, and security are provided, with plenty of detailed examples of configurations and API usage.

A long chapter is dedicated to the Web Content Management (WCM) add-on product and the book closes with appendixes containing a concise reference of APIs and configuration properties. Thankfully, the author and the publisher did not opt for including a complete reprint of the APIs in order to beef up the page count. Instead, a list of the main Java classes and Javascript root objects is provided, but developers will have to refer to the online documentation for a complete reference.

A section of this reference that many readers will find to be extremely useful is a detailed description of the Lucene search syntax. On the other hand, page 271 talks about a Surf API reference to be found in the appendix, but there isn’t one there. Surf is the new web application framework included in version 3, so they probably couldn’t find the time to provide some documentation for it in time for publishing. As I wrote above, this is understandable, given the timing, but let’s hope the second edition amends these shortcomings.

My overall judgment of the book is definitely positive, anyway. The author does an excellent job of maintaining a good balance between breadth and depth, and the narrative of each chapter manages to capture well the attention of the reader, guiding him from simple concepts to more complex scenarios in a very natural progression. Readers are expected to have a good working knowledge of Java, XML, and Java web application development. Some basic knowledge of Javascript will be useful too.

If I have a specific complaint about the content is that the index is too thin and many concepts are not referenced there. This is a defect that does not compromise the overall usefulness of the book, however.

The author, Jeff Potts, is an accomplished ECM consultant and long-time Alfresco expert. You can read more from him at his website ecmarchitect.com.

I have been given permission by the publisher to make a PDF copy of Chapter 3, Working with Content Models available for download. Just click here if you want to read it.

(3)

Abdera Graduation

atom-logo75px.gifThe latest of a number of projects to graduate from the Apache Incubator is Abdera. I started using Abdera for client projects a while ago, did some contributions and was named a committer, so even though I haven’t been following it closely as of recent, I’, still happy to see that it reached that stage where it is deemed fit to walk on its own legs and not be a podling anymore.

I am sure I will find some project where I will be able to use it again, but for now just let me extend my best congratulations to everyone involved.

P.S.: We need a logo! Anyone interested in designing one?

Have Lunch with Sourcesense and JBoss

If you are in Milan next week, don’t miss the event Sourcesense is hosting together with JBoss at the Ristorante Santini, Via S.Marco 3.

We are going to be talking about JBoss solutions, of course, and about our approach to Agile methodologies. All while enjoying a nice meal in one of Milan’s best restaurants.

I’m sure you don’t want to miss this opportunity, so register early to ensure you can have one of the few available seats.

Sourcesense Day 2008

The last two days have been the most rewarding, fun, and tiresome days since I’ve joined Sourcesense almost three years ago. We had our first company-wide meeting in Milan, which, seeing as we are more than forty people now, was something that was really needed for a company that, while still comparatively small, has offices in three cities (Milan, Rome and Amsterdam).

Mad, Sad, GladThus we managed to see some new faces and refresh the memory of old ones. These two days were also filled with enthusiasm, friendship, and community spirit. Overall a very positive balance, as you can see from the number of stickers that were put on the “glad” side of the “Mad, Sad, Glad” wall we put up at the end. Most of the “sad” and “mad” cards actually had to do with the weather and general lack of time for doing all the things we wanted to do tigether. So we all agreed that we should probably repeat this event soon, like maybe six months from now, in Amsterdam.

On Microsoft and the ASF

feather.gifIf you’ve read this, you should also read this:

ASF membership cannot be bought: people earn their individual membership by merit, and there’s no such thing as ASF member companies.

As with any other sponsor of the ASF, Microsoft’s sponsorship only means that they’re giving money to the ASF, money that the ASF can use freely, as the ASF does not accept directed donations.

Thanks to Bertrand for setting this straight, even though fighting sloppiness in news reporting is a losing battle.

But anyway, this is indeed great news. I’m not sure we can really get Microsoft’s love, after all, but the money is more than welcome ;)

And as a matter of corporate pride, let me congratulate Gianugo and Sally, who contributed quite a lot towards this agreement!

I am also happy to learn that all issues concerning Microsoft-funded contributions to POI made by Sourcesense have been resolved to the satisfaction of all parties.

Lazy Web: Atlassian Confluence Search API usage

This is for any Atlassian Confluence developers or contributors reading my blog. I am trying to develop a simple plugin and wanted to use the Confluence Search (v2) API but couln’t find much in the way of documentation or examples.

So I posted a question to the Confluence Forum but got no reply in three days :( . Should anyone be able to help me, the forum thread is here but I am also reposting here the text of the question:

I’m looking for examples and guidance in using the Search (v2) API in Confluence, specifically from a plugin.

I got hold of a SearchManager via Dependency Injection and obtained some results with code like the following

SearchQuery query = ...;
Search search = new Search(query, null, null);
SearchResults results = this.searchManager.search(search);

My problem is that I have no idea about which implementation of the SearchQuery interface to use and in particular how to specify a phrase to search for, since no subclass seems to provide for a way to set a query term.

Thanks in advance.

Alfresco Mail Attach Action

I am proud to announce the immediate availability of the Alfresco Mail Attach Action, a custom action for Alfresco ECM that allows sending documents as email attachments.

sourcesense-logo.gifThis is my first contribution to the Alfresco Forge and it’s a very small thing, but hopefully the first of many more to come. As you might know, Alfresco is the leading provider of open source Enterprise Content Management systems and my employer, Sourcesense, is an Alfresco Gold Partner. Alfresco being an open source product meant that we were able to quickly and easily extend the existing Mail Action without having to reverse-engineer it. Try doing this with Sharepoint!

The Alfresco Mail Attach Action is distributed under the GNU Public License v2.

Hippo acquires Bluesunrise

Honestly, this it not even in the same league as Springsource acquiring Covalent, Sun buying MySQL, or Nokia getting their greedy, little hands ;) on Trolltech, and I had never heard of Bluesunrise before, but still:

Bluesunrise becomes Hippo – Hippo Open Source Enterprise Content Management: “We are pleased to announce that Hippo, Dutch supplier of open source enterprise content management and portal software, has taken over all Bluesunrise activities. We may have a new name, but the core BlueSunrise team is intact and happy to continue providing the quality service you have come to expect. Being a part of Hippo means greater resources to better our service and create new and productive software.”

After all, the Hippo guys are our partners and, more important, they are good friends, so I cherish this acquisition and wish the best of luck to Hippo.

I have no idea how much they payed for Bluesunrise, but with the current valuation of the US dollar, it’s got to be peanuts ;) . And to think that I’m still agonizing over which camera to buy!.

Ostatic

Ostatic logoOstatic is a new website which aims “to be the most comprehensive web destination for information and insight on open source software and services.” I remember at least two other services with a similar aim, here and here, but they didn’t go anywhere, even if the latter was part of the O’Reilly juggernaut.

On the other hand, Ostatic is part of the GigaOM network and this fact, far from being a guarantee of success, might however help if they don’t just let it die on the vine, like O’Reilly did with CodeZoo. I sincerely hope so, since it’s my opinion that we need a site like this, to supplement the venerable Freshmeat.net.

For now I have subscribed to the blog and am hoping for the best.

SpringSource acquires Covalent

Oh my, one more Open Source company acquisition, again. I’m finding harder and harder to keep up, with an almost daily occurrence of this kind of news.

SpringSource – Covalent: “On January 29, 2008, SpringSource announced that it has acquired enterprise open source leader Covalent Technologies. The acquisition brings together two open source market leaders and addresses widespread demand for a simplified application infrastructure based on the Spring Portfolio and Apache projects such as the Apache Tomcat application server, one of the most popular open source technologies in the world today.”

In this case, however, the buyer is not Sun, Oracle, or Nokia, but an Open Source company itself: SpringSource (born Interface21). Interface21 was formed in August 2004 and in a mere three and a half years it has grown so much that it was able to snatch up the venerable Covalent. Kudos to Rod Johnson and friends, and to their business model, which obviously seems to be working rather well.

Nokia to acquire Trolltech

Looks like the mad streak of acquisitions of Open Source companies that characterized this month (see here and here) isn’t over yet:

ESPOO, Finland and OSLO, Norway, January 28 /PRNewswire-FirstCall/ — Nokia and Trolltech ASA today announced that they have entered into an agreement that Nokia will make a public voluntary tender offer to acquire Trolltech (http://www.trolltech.com), a company headquartered in Oslo, Norway and publicly listed on the Oslo Stock Exchange. Trolltech is a recognized software provider with world-class software development platforms and frameworks. In addition to the key software assets, its talented team will play an important role in accelerating the implementation of Nokia’s softwarestrategy.

For the clueless: Trolltech are the creators of the Qt framework that powers, amongst other things, the KDE desktop environment, and a number of mobile applications, including Opera.

Thanks to Corsin for the twit.

Must be the M&A season

First Sun acquires MySQL, and now this:

Oracle to Acquire BEA Systems: “REDWOOD SHORES, Calif., Jan. 16 /PRNewswire-FirstCall/ — Oracle Corporation (Nasdaq: ORCL) and BEA Systems (Nasdaq: BEAS) announced today they have entered into a definitive agreement under which Oracle will acquire all outstanding shares of BEA for $19.375 per share in cash. The offer is valued at approximately $8.5 billion, or $7.2 billion net of BEA’s cash on hand of $1.3 billion. ‘We expect this deal to be accretive to Oracle’s earnings by at least 1-2 cents on a non-GAAP basis in its first full year after closing,’ said Oracle President and Chief Financial Officer Safra Catz.”

Sun Microsystems Announces Agreement to Acquire MySQL

Sun Microsystems Announces Agreement to Acquire MySQL, Developer of the World’s Most Popular Open Source Database: “SANTA CLARA, CA January 16, 2008 Sun Microsystems, Inc. (NASDAQ: JAVA) today announced it has entered into a definitive agreement to acquire MySQL AB, an open source icon and developer of one of the world’s fastest growing open source databases for approximately $1 billion in total consideration. The acquisition accelerates Sun’s position in enterprise IT to now include the $15 billion database market. Today’s announcement reaffirms Sun’s position as the leading provider of platforms for the Web economy and its role as the largest commercial open source contributor.”

You call this REST?

From the Amazon SimpleDB documentation:

Amazon SimpleDB REST calls are made using HTTP GET requests. The Action query parameter provides the method called and the URI specifies the target of the call. Additional call parameters are specified as HTTP query parameters. The response is an XML document that conforms to a schema.

Note

If the length of the query string that you are constructing exceeds the maximum length of the HTTP GET URL, use HTTP POST and submit the query string parameters in the body of the message.

Excuse me??? This must be the single most egregious abuse of the “REST” term I ever saw. Listen, Amazon, just because you use HTTP and XML and do not use SOAP, you cannot just call it REST because you think it’s sexy and pretend that you’re not looking stupid.

The REST Registry

Paul Fremantle’s Blog: A new kind of (SOA) Registry: “So fundamentally the approach we have taken is to build a registry/repository based on REST concepts. And as we looked at the REST space, we kept noticing how close the Atom Publishing Protocol (APP) is to our needs, so we’ve made that the public remote API to access the repository. Of course, if you are just browsing the registry, you only need a browser – APP is mainly there to support updating resources.”

And of course it uses Apache Abdera :) .

XML 2007 Wrapup

The XML 2007 Conference is over and here are my observations.

For me personally, it was a mixed bag. My talk was not very well attended and I can understand why now: I thought this was much more of a developers’ conference, but there seem to be many more MIS types and business users than developers. The median age is also much higher than the one that is characteristic of venues like OSCON or ApacheCon: silver hair abound. So it is understandable that many eyes glazed over when I started showing blobs of Java code in the second half of my talk.

One could hope of getting a lot of business leads from such a business-oriented audience, but it’s not that easy to try to sell a European consultancy to a public that is 99% US-based: very few Europeans are here.

Still, I got some nice feedback from the few developers that were attending, so I can be confident that my presentation was of good quality: it’s just that most of the audience was not the right audience.

From the attendee point of view, it was a mixed bag too. There are so many talks that are so loaded with marketspeak that they made me want to run out and do some Christmas shopping instead: shops will take your money as well, but will give you some definite value in exchange for it ;) .

As is usual in such situations, you get the best value for money out of meeting other people you have only known virtually until then. One of them is Gregg Pollack (he is the guy playing Ruby on Rails in the “Get a Mac” spoof ads for Rails; if you haven’t seen them yet, do it now, they’re even funnier than the originals).

I also had a god chat with Norman Walsh about his XProc implementation project. I inquired whether he was planning to open it up to external contributions: He eventually will, but will probably rewrite it once again from scratch one more time. So I am going forward with my own implementation, which is currently a labour-of-love, side project to which I am obviously not dedicating any significant amount of time at the moment. We agreed to talk again in a couple of months from now and see how far we’ve come.

The highlight of the trip for me, however, was meeting Sally and Yoav. Curiously, even though both are Bostonians and they worked together in the Apache PRC, they had never met face-to-face before. It took me coming to Boston to catalyze their meeting. We had a very nice dinner in Boston’s North End and a good deal of talk about Apache and our respective jobs and lives.

Cost of a trip to Boston for the XML Conference: about $2000 with MasterCard.

Making new friends there: priceless.