Posts tagged 'apache'

Introduction to Apache Usergrid

I travelled to Budapest, Hungary for a couple of weeks for a very nice vacation with my wife and to speak at ApacheCon EU. Here are the slides that I presented at ApacheCon EU:

(you can also view the presentation on Slideshare.)

And here is the session abstract:

Whether you are building a mobile app or a web app, Apache Usergrid (incubating) can provide you with a complete backend that supports authentication, persistence and social features like activities and followers all via a comprehensive REST API — and backed by Cassandra, giving you linear scalability. All that, and Usergrid is open source too.

This session will explain how you can use Usergrid to provide a back-end for your application. We’ll start with an overview of Usergrid features, then explore in depth how to authenticate users, store data and query data with the REST API provided by a Usergrid server. We’ll develop a simple HTML5 app and package it as a native mobile app via Apache Cordova. We'll also cover how to run Usergrid locally for development and testing.

Oracle: please follow through on Project SocialSite

One year ago on this day I wrote that Sun Microsystems is willing to contribute Project SocialSite" to the Apache Software Foundation. My contacts at Sun told me it was OK to make that announcement because a VP approved. One year later, we have established Apache SocialSite (incubating) project, setup user accounts, put up a status page and setup source code control but we still have no code from Sun.

Since March 2009 I've been exchanging emails with my helpful contacts at Sun and trying to help them move forward with the contribution, but because of the ongoing Oracle/Sun merger things have moved incredibly slowly. Finally in late December 2009, my Sun contacts had permission to actually release the code to Apache, but there was a problem.

When Sun said that they were willing to contribute the SocialSite code to Apache, I figured that they would do so using the standard Software Grant agreement that was used for Roller and all other projects entering Apache via the Incubator. Unfortunately, the Sun lawyers did not want to use the standard Software Grant agreement and Apache did and does not want to devise a new legal agreement just to accommodate Sun. That's where we stand today. Sun committed to contributing SocialSite to Apache and now we're waiting for Oracle/Sun to follow through on that commitment.

Meanwhile, others have been making some progress with SocialSite. A major sports brand has launched a SocialSite based network with a million-plus users. A couple of developers have rewritten the build script to use Maven, others have "ported" to JBoss and there is still interest in and a need for what was Sun's Project SocialSite. Neither effort has contributed code back to SocialSite-proper and because of legal concerns are waiting for the main code to appear at Apache.

fish1 fish2 fish3

SocialSite is a small project and it will not survive for much longer with resources spread across multiple sites and a community working separately. So, I'm asking again and publicly: Oracle, please follow through on your commitment and grant the Project SocialSite codebase to Apache.


I took a break from blogging during my first couple of weeks at IBM. My blog broke and it took me a while to find the time and motivation to fix it, but now it's time to return. I think. I have been doing some internal blogging at IBM, but so far it's been mostly boring stuff: status reports and the like.

What I want to talk about today is Project SocialSite. Since my last post, where I mentioned that Sun is willing to contribute SocialSite to Apache, I did some work to move things along. I wrote an Apache Incubator proposal, started a discussion and this week calling for a vote on the proposal. Here are the relevant links:

Proposal: Apache SocialSite

Discussion and vote thread on the Incubator General mailing list

Subscripton info for the Incubator mailing lists

If you want to support the project, and especially if you're on the Incubator's Project Management Committee, now's the time to do so.

The future of Project SocialSite: Apache?


ROME vs. Abdera

For Java developers starting out with RSS and Atom, here are some notes to help you figure out the differences between the ROME and Apache Abdera (incubating) projects.

ROME is a set of Java tools for parsing, fetching and generating all forms of RSS and Atom feeds. The core ROME library is relatively small and depends only on the somewhat creaky old JDOM XML parser. Available separately are modules to support various feed extensions such as OpenSearch, iTunes, GeoRSS, etc. ROME was originally developed and open sourced by Sun Portal dev team members in 2004.

ROME Propono is a subproject of ROME that supports publishing/editing entries and files to blog servers and AtomPub servers. Propono is made up of three parts: 1) a Blog Client library can publish via either the old lagacy MetaWeblog API or the shiny new AtomPub protocol, 2) an AtomPub client that publishes only via AtomPub and 3) a framework for creating AtomPub servers. Propono was developed by Ramesh Mandava and Dave Johnson, based on code from RSS and Atom in Action and open sourced as part of the Sun Web Developer Pack in 2007.

Abdera is a set of Java tools for working with Atom feeds and AtomPub protocol. This includes a parser, writers, an AtomPub client and a framework for creating AtomPub servers. Abdera's Atom feed parser uses STAX, so it uses less memory and is faster than ROME. Abdera's Atom feed support is more comprehensive than ROME's and it supports signatures, encryption, Atom to JSON, extensions for Threading, Paging, GeoRSS, OpenSearch, GoogleLogin, etc. etc. Abdera was developed by IBM and contribued to Apache in 2006.

Now let's compare frameworks. The pros and cons of ROME are:

  • Pro: complete RSS support, all of the dozen various flavors
  • Pro: it's generally simple and small, depending only one jar (JDOM)
  • Pro: easy to understand and use the AtomPub server framework
  • Pro: MetaWeblog API support
  • Con: Atom feed support not as comprehensive as Abdera
  • Con: parser uses lots of memory, slower, JDOM based
  • Con: community not as active, seems to be in maintenance mode (See also Ohloh stats)

The pros and cons of Abdera are:

  • Pro: comprehensive Atom feed support, lots more Atom extensions
  • Pro: faster more efficient parser
  • Pro: In the Apache Incubator with active and growing community (See also Ohloh stats)
  • Con: lots of dependencies
  • Con: AtomPub server framework poorly documented, overly complex (rewrite coming soon)
  • Con: no RSS support (there is something in Abdera contrib, but it's incomplete).

There you have it. ROME and Abdera folks: think that's a fair comparison? Are you a ROME or Abdera user? How would you like to see these frameworks move forward?

ApacheCon US 2007 wrapup

I spent last week at the ApacheCon US 2007 conference in Atlanta, Georgia. Here's a write up of some of my experiences there. [Read More]

ApacheCon EU 2007 wrap-up

As usual ApacheCon was a blast. I showed-up on Tuesday, made myself at home in the hackathon room and started reconnecting with old friends and meeting new ones. I arrived at the members reception a little late and missed the beer, but was not too late to meet Lars Trieloff of Mindquarry, a startup that's working on an interesting open source product suite that combines content management, task management and wiki functionality. Behind the scenes the product combines Subversion, Apache Jackrabbit and other open source products. Apparently everything is tied together via the Java Content Repository (JCR) API and that's why Lars is interested in the possibility of hooking Roller up with a JCR backend.

Talks began Wednesday and I sat in the business track for most of the day. I particularly enjoyed Rebecca Hansen's talk Better than free: Strategic opportunities in open source and Bill Stoddards talk on Best Practices for Incorporating Open Source Code in Commercial Production. I also enjoyed Alexandru Popescu talk on Up to Speed with Java Content Repository API and Jackrabbit. I attended Stefano Machacci's excellent Community Building Practices talk again -- I think it should be required for all Apache contributors.

Thursday night was the Sun party at Lloyd Hotel, which was was quite successful. I had an interesting Roller-related chat with Paolo Castagna of HP, who is investigating new ways to integrate blogs, planets and wikis -- so we had a lot to talk about. I'm hoping he'll find that Roller is a good foundation for his work and encouraged him to collaborate with us via the Roller mailing lists. By the way, like Lars Trieloff, he is also interested in JCR as a back-end for blog/wiki data.

My talk Roller and blogs as a web development platform was scheduled for 10:30 Friday morning. It didn't go so well. Power went out at around 10AM and didn't come back until about 20 minutes into the talk. That left me a bit frazzled and feeling rushed, so I don't think I gave my best performance. If you'd like more information on the talk, you can find the outline here and the slides here (1.6MB PDF).

Roller graduation and 3.1 announcement

Finally! Roller has graduated to become a top-level Apache project and we've shipped the long awaited Apache Roller 3.1 release. You can find the full announcement on the Roller mailing list and on the Roller project blog and our new top-level site at

Status, CC: world

In case you're wondering what's going on lately with Roller, ROME and other projects I've been working on, here's a status update from my point-of-view.

Apache Roller graduation. The Roller team voted for graduation, the Apache Incubator PMC voted for incubation and the next step is to take the resolution to the Apache board meeting, which is coming up in the next week or so.

Roller 3.1 release. We've been moving slowly on this one. RC1 was released Nov. 20 and today RC4 just about ready to go. It's possible that 3.1 will be our first "official" Apache Roller release -- depending on what happens on the board meeting. Wonder what's coming in Roller 3.1? The What's New in Roller 3.1 page is now available on our new wiki at

Roller 4.0 development. We started the Roller 4.0 branch a couple of weeks ago and I've been spending most of my time updating and trying to perfect Craig and Mitesh's new JPA back-end. Elias outlined a bunch of IBM contributions including an iBatis based back-end. We hope to get some of those in the 4.0 and do some JPA vs. iBatis testing, but we haven't seen any proposals or code yet.

Roller-Planet. Actually, Allen's taken over work on Roller-Planet and he's implementing many of the things I outlined in the Roller-Planet mind-map. He promoted Roller-Planet from the sandbox, built a nice Struts2 UI, added a Roller-style feed/page rendering system and Roller-style caching. Good stuff. We have not discussed when to start making standalone releases of Roller-Planet. 

ROME Propono. I've been working on a new ROME subproject called Propono that will include a blog client library, an Atom protocol client library and an Atom protocol server kit. I've been quiet on the ROME dev list, but I've been working on the client bits an they're basically done. I'm waiting for final approval to commit them to ROME CVS.

Blogapps examples and server. I'm still working on a 1.0.5 release, which will include updated Atom protocol support and some bug fixes. I just haven't had the time to get a release out, but I have had some time to work on Blogapps 2.0 where I've ditched the chapter-based directory names and switched to org.blogapps packaging. Once ROME Propono is available, I'll include it in Blogapps 2.0 and drop my old Blog Client library.

Covalent announces support for Roller

Somehow I missed the Jan. 22, 2007 announcement, which was made on Covalent's Roller-based blog. According to the announcement, Covalent will support Roller, eleven other Apache and Spring on a "per incident basis."

Voting for Roller graduation

The Roller team voted last week for graduation to top-level project status. The next step is to call for a vote on the Apache Incubator mailing list. I'm hopeful that the nearly two year journey that started when Danese Cooper sent me off to ApacheCon US 2004 in Vegas is nearly over. So far, life at Apache has been great for Roller and it can only get better with graduation. Wish us luck...

Apache Abdera 0.2.0 (incubating) released

Abdera is an open source Atom parser, generator, client and server tool-kit for Java. James Snell announced a new version of Apache Abdera (incubating) the other day and the feature list is impressive, especially for a "0.2.0" release. Here's an excerpt:

The goal of the Apache Abdera project is to build a functionally-complete, high-performance implementation of the IETF Atom Syndication Format (RFC 4287) and Atom Publishing Protocol (in-progress) specifications. [... incubator blah blah blah ...]
  • A reworked API that improves usability
  • Decoupled extensions from the underlying parser implementation
  • An Atom Publishing Protocol client implementation
  • Updated support for the current Atom Publishing Protocol draft specification
  • Added support for Internationalized Resource Identifiers (IRIs)
  • Improved Thread Safety
  • Fixed a number of Classloader issues that kept Abdera from working properly in application server environments.
  • Improved Javadocs
  • Added test cases and sample code
  • Added experimental Bidirectional Text support
  • Improved implementation of OpenSearch v1.0 and v1.1 extensions
  • Implementation of MediaRSS extensions
  • Implementation of Feed Paging and Archiving extensions
  • GoogleLogin Authentication Support
We might have to steal that IRI support for ROME. Actually, that's something that should be built right into the Java platform. Apparently IRI support was considered for Java SE 6 and something was implemented, but then rolled back.

Microsoft Flak Jacket 2007 (still in beta)

Robert Burke: And it was kinda cool to be the Microsoft guy running Apache and PHP on his laptop :)
I'm sorry I missed that talk.

Tags: topic:[apacheconeu2006], topic:[apachecon]

Roller talk at ApacheCon EU

I gave my talk this morning to a packed room of 40-50 people at ApacheCon EU. The talk is an updated and improved version of the talk I gave last year at ApacheCon US. It's designed to be a primer for system administrators considering using Roller and developers considering customizing or basic products on Roller. Here's what I covered:
  • Roller history: how Roller got started and how it got to where it is today at Sun, IBM, JRoller, Yale, NC State, etc.
  • Roller features: overview of Roller features, limitations and reasons for choosing Roller.
  • Roller community: discussion of Roller community, project processes (release cycle and proposals) and status of Apache incubation.
  • Roller internals - backend: overview of Roller business/persistence layer architecture, components used, XDoclet code-gen, POJOs and manager interfaces.
  • Roller internals - front-end: overview of Roller presentation layer including the Struts/JSP based editor UI and the Velocity-based blog/feed rendering engine.
  • Customizing Roller: brief overview of techniques for customizing Roller.
  • Roller futures: Overview of Roller 3.0 plans.
For those who couldn't make the talk, I've made my slides avalable in PDF format. Let me know if you have questions.

Tags: topic:[apacheconeu2006], topic:[apachecon]

Apache Roller 2.3 (incubating) on the way

We're testing release candidates of Roller 2.3, so expect a release in next week or two. This release is a big one because we skipped 2.2, so we've got twice the normal monthly dose of features. Plus, we're shooting for full Apache license compliance. Read on for more [Read More]

ApacheCon Wednesday

I'm definitely suffering from some ApacheCon-fatigue, a combination of information overload and lack of sleep. I just can't sleep past 6AM when I'm on the west coast, no matter how late I stay up. Oh well, today was the last day.

I only attended one talk this morning: Michael Radwin's HTTP Cache and Cache Busting for Content Publishers. I think I learned more Roller-relevant stuff from this talk than any other at the conference. After that, I spent the rest of the morning and lunch-time helping Craig Russell and Ian Kallen get their Roller development environments set up. As I mentioned yesterday, Craig wants to help create a JDO implementation of the Roller backend. Ian (who works for Technorati) wants to contribute to Roller in the areas of tagging and micro-formats.

In the afternoon I tuned in to the Ruby for Java Developers talk and Brian McAllister's Ruby on Rails talk. Brian's talk was my favorite of the two and I especially liked the way he illustrated the talk with screencasts (via Snapz Pro X). One of these days, I'll have some time to play with Ruby -- probably right around the time it's no longer cool with the shiny new object hipsters. After the Ruby talks, the conference ended with a key-note by Jaron Lanier. Jaron's talk was little too rambling for my taste, "mono-directional blabbing" he called it, but got a lot better when he started telling jokes and doing Al Sharpton and Steve Ballmer immitations.

That's all for my ApacheCon/US 2005 blogging. Thanks to the ApacheCon organizers and all Apache-folk for another great conference. I'm already trying to figure out how I can get myself to the next one.

Roller Talk

My Roller talk has been accepted for ApacheCon 2005, Dec. 10-14, 2005 in San Diego, CA. I'm planning to cover Roller features and architecture as a primer for new users and developers.

Status, cc: world

It's that time again.
  • Roller 1.2: I spent most of last week working on Roller 1.2. Part of that work was for the OpenSolaris launch. We used Roller 1.2's built-in "planet" aggregator to create the OpenSolaris blog, aggregating together about 150 blogs into one big blog with it's own newsfeed. I had to write a little custom code to load the list of blogs, because the aggregator's UI doesn't have a bulk-load capability yet. Later in the week I spent a couple of days on fixing bugs, Javadocs and Velocidocs.

  • Roller 1.3: We've started to talk a bit about a Roller 1.3 release to incorporate some theme management changes. We need to make it easier to manage themes and apply changes globally to all user's themes, but still allow power-users to tweak their page templates. Allen has put together a rough proposal for better theme management.

  • Roller 2.0: I spent a couple of days on Roller 2.0 last week, still working on the data model and the new many-to-many relationship between weblogs and users. The OpenSolaris and Roller 1.2 contininued to put me further behind schedule, but I'm still shooting for group blogging done in August.

  • Roller@Apache: Starting today, we're using the Apache incubator mailing lists for the Roller-dev and Roller-user lists, but I still haven't updated the wiki with subscribe and unsubscribe info.

  • RSS and Atom in Action: Since the chapters are out of my hands, at this point all I can do is watch the Atom Protocol list. Chapter one may be coming back from copy-edit today.
That's it for now. Again, I hope to spend the remainder of the week on Roller 2.0 'cause who knows how much I'll be able to get done duing JavaOne week. And, the week after that is summer vacation.


It's a week late, sure, but I wouldn't want to let this list of the excellent ApacheCon 2004 conference bag goodies go to waste:

Magnetic LED Flasher
Watermelon Pop Rocks
Strawberry Pop Rocks
Wonka Nerds
Alien Goo
Nerd Specs Super Eye Glasses
USB rechargeable flashlight.