Dave Johnson on open web technologies, social software and Java
The early-bird special ends on August 14, so you'd better get moving.
Sign up for ApacheCon US by 14 August and save up to $500!
This year's ApacheCon US promises to deliver our most extensive program to date, and largest anticipated gathering of the global Apache community to celebrate the ASF's milestone 10th Anniversary. The San Francisco Bay Area is where the very first ASF official user conference was held, and we hope that you will join us in celebrating the ASF's success!
Apache members, code contributors, users, developers, system administrators, business managers, service providers, and vendors will convene 2-6 November in Oakland, California, for a week of training, presentations, sharing and hacking. ApacheCon US 2009 features new content tracks, MeetUps, and GetTogethers, as well as a number of events open to the public free of charge, such as the Hackathon and 2-day BarCampApache, in appreciation of their support over the past decade.
Be sure to register by 14 August to save up to $500! To sign up, visit http://www.us.apachecon.com
As you might know, I'm involved with organizing BarCampRDU again this year, doing the sponsor-wrangling and attendee registration duties. It's been a lot easier and stress-free than last year because I've been through it once before and so has most of the committee. No matter the stress-level, the end-result is well worth the effort.
Wrangling sponsors was surprisingly easy, even with a bad economy. Basically, all I have to do is chase 'em down, convince them to sponsor, make sure they pay and then ensure that they're recognized on the blog, t-shirt, signage and during the event. Event registration was easy too as we used Eventbrite, which is free for free events like BarCampRDU. My only complaint is there's no automated way for an attendee to cancel a ticket and no automated way to do a waiting-list.
Most of the remaining work was done by my wife Andi and our friend Alicia Weller. Andi took care of vendor selection and coordination and Alicia took up volunteer coordination and t-shirts. I think you're going to like what Alicia did with the t-shorts; very nice colors this time.
What's a little nerve-wracking about running a BarCamp is the estimations you have to make. Once it's time to order t-shirts, food and drink we have a fixed budget but the number of attendees can vary wildly. Last year, we had 250 registered attendees and only 140 showed up. We can't assume we'll have the same registered/attended ratio this year because we've been sending out a lot more email reminders. Anyhow, long story short: we did our best but if everybody currently registered shows up, some folks are not going to get a t-shirt and a lunch.
At this point, all we can really do is enjoy the show and I'm really looking forward to it. This year, I'm going to pitch a session on OpenSocial. Here's the write-up from the proposed session page:
A quick intro to OpenSocial explaining what it is, how it works and why it matters using these What's up with OpenSocial slides. Then a group discussion.on.
It's just about time to head down to the pre-party at Flying Saucer. I hope to see you there.
Crammed into one post...After a month of blog neglect, my automatic Latest Links from my Delicious.com account started to pile up. Back in the glory days of this blog, I blogged about things instead just saving links or tweeting about them. I realized that, by adding some commentary/opinion for each, I could turn a month's worth of links into a month's worth of blog posts and thus gain total absolution for my sin of going a full month without a post. So that's what I did. [Read More]
IBM Rational has just released a 64-page book on Collaborative Application Life-cycle Management (C/ALM) that explains in detail how Rational's Jazz-based tools fit together to support the full software development and delivery life-cycle.
You can get the book at InfoQ. Registration is required (and free):
Scaling Agile with C/ALM
by Carolyn Pampino, Erich Gamma and John Wiegand
I'm finding this book very useful because I'm still coming up to speed with Jazz and Jazz's notion of "Data integration via linked artifacts across repositories using RESTful interfaces." The book shows how Jazz works in practice with examples that illustrate how a requirement can be linked to work-items, source code change-sets and tests. Products covered are: Team Concert, Requirements Composer and Quality Manager.
Scaling Agile with C/ALM also explains how Open Services for Life-cycle Collaboration (OSLC) fits into the picture. The OSLC project is working to standardize the RESTful interfaces needed to integrate development tools. Once vendors adopt these interfaces, it will be much easier to mix and match For example, if Atlassian JIRA supported OSLC, you could use it instead of Team Concert's built-in issue tracking.
See also: Ask Jazz Technical Lead Erich Gamma.
BarCampRDU 2009 is rapidly approaching (August 8, 2009) and the event is sold out with 250 registered attendees. Problem is, we're only about halfway to our funding goal. I guess it could be the economy or maybe it's event overload; doesn't it seem like we had a heckuva lot of tweetup-camp-athons around here lately?
Either way, we're not ready to give up yet. We're doing another call for sponsors and trying to open up as many sponsor opportunities as possible. Check out the BarCampRDU blog for more information.
To follow-up on my previous post on the topic: my father is starting to publish excerpts from his book Science for the Curious Photographer on Luminous Landscape.
His first piece is titled The Quest for Good Photographs and How the Brain Perceives Images and it's one of my favorite parts.
By the way, he's still trying to figure out the best way to publish the book.
Wondering how Google Wave will impact the enterprise collaboration market? Look no further than the great collected wisdom of Twitter. Given that X equals Lotus Notes, Microsoft Sharepoint or Microsoft Exchange we have:
How can industry analysts survive with people giving away this stuff for free?
I've attended every JavaOne since 2004, but this year I've got new job and a new conference to attend. This year I'll be traveling to Orlando, FL and attending the Rational Software Conference also known as #rsc2000 in the twit'o'sphere.
I'm not going to be giving a talk, but I will be manning a demo pedestal and showing some of what I've been working on in my first couple of months at IBM: working on getting Rational Team Concert and other Jazz-based products to work well with Lotus Connections, IBM's social software suite which includes communities, forums, blogs, bookmarking, social networking and wikis (coming soon in Connections 2.5).
Why would you want to use Team Concert with Connections? It's all about connecting developers to community, helping developers use social software tools to inform, share and collaborate with the wider community of people that support, manage, sell and use the software.
The tentative plan that we've outlined for all (registered users) to see on the Jazz.net is all about making it easy to setup and integrate community infrastructure for a new software project.
For example, wouldn't it be nice if, when you setup a new project in Team Concert you'd have the option of setting up an integrated Lotus Connections community complete with a project blog, discussion forum, wiki space and shared bookmarks? Shouldn't those blogs, forums and wikis be searched when you do a project search and shouldn't it be dead-simple to fire-off a blog entry or forum post to start a community conversation about a work-item or any other Team Concert artifact? We think so and we think that's just a start; there's lots more we can do.
If you're going to be at RSC 2009, please stop by and say hi. I'll be on duty from 5-8PM on Monday and most of the day Tuesday. Whether you're there or not, if you've got ideas about developer tool and social software integration, I'd love to hear from you.
Word went out this morning via Twitter and other places but I'm just now getting to it here on my blog. Sorry folks, but you're the last to know. Like I said, they're going fast. At this point there are about 50 spots left. More than enough for all of my readers! Here's the registration link:
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:
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.
Since January, the future of https://socialsite.dev.java.net">Project SocialSite has been in the hands of the SocialSite community. During that time, I continued working on the project almost because I think it's got great potential and I would really like to see it live on in some form. That's also why I continued to talk to Sun about the project.
Today, I'm very happy to announce that Sun Microsystems is willing to contribute Project SocialSite to the Apache Software Foundation. It's not clear whether SocialSite should be contributed into Shindig or as a new incubator project, but either way I think this is the best thing for the project and will give it the best possible chances for building a thriving community. I've started some discussions about this on Apache-private mailing lists and I'll let you know what happens next.
This post brings to an end my series of posts about Shindig for blogs and wikis. Here are links to the earlier posts:
The value of Project SocialSite is that it allows you to add social networking features, including the ability to run OpenSocial gadgets, to existing web sites and have those sites all using the same "social graph" of data about people and relationships. To demonstrate this, I've deployed SocialSite to my site, http://rollerweblogger.org, and finally implemented those things I described in my August 2008 Social Roller post.
My site includes a blog and a wiki, Roller and JSPWiki, so it's a pretty good candidate for demonstrating how SocialSite. It's not perfect because it's got only a very small number of users, less than a dozen and because it's private; you have to login to see the social features. It'll have to do. In this post, I'll explain the steps you have to take to add SocialSite to a multi-application web site and I'll illustrate the steps with examples and screenshots from my work on this site.[Read More]
As you may remember, ROME Propono is a subproject of ROME, the Java-based RSS/Atom feed library. ROME Propono includes an AtomPub server library and an AtomPub client. I added OAuth support to the AtomPub client and in this post, I'll show how you can use it to post to the Roller 5.0-dev (i.e. the snapshot build that I made available yesterday).
In case you haven't already heard, thanks to the recent hard work of Nick Lothian, ROME 1.0 is now available. You can find downloads at rome.dev.java.net and a list of changes in the Change Log there. To celebrate this momentous event, I'm planning on releasing ROME Propono 1.0 as well, and in preparation, I've made a release candidate available. The new Propono includes ROME 1.0 and support for OAuth. You can get it via the links below:
rome-propono-1.0RC1.tar.gz (2.0 mb)
rome-propono-1.0RC1.zip (3 mb)
To use the Propono AtomPub client, you place the Propono jars in your Java VM classpath and then call the
AtomClientFactory to get started, as described in the ROME Propono 1.0 Javadocs.
Below is a Groovy example that shows how to post a blog entry to Roller via AtomPub and OAuth. You can get the consumer key, secret and URLs you need to call your instance of Roller from the OAuth Credentials page in the Roller admin interface.
import com.sun.syndication.propono.atom.client.* import com.sun.syndication.feed.atom.* def authStrategy = new OAuthStrategy( "roller", // username "55132608a2fb68816bcd3d1caeafc933", // consumer key "bb420783-fdea-4270-ab83-36445c18c307", // consumer secret "HMAC-SHA1", // key type "http://blogs.example.com/roller-services/oauth/requestToken", "http://blogs.example.com/roller-services/oauth/authorize", "http://blogs.example.com/roller-services/oauth/accessToken") // get the AtomPub service def appService = AtomClientFactory.getAtomService( "http://blogs.example.com/roller-services/app", authStrategy) // find workspace of my blog def blog = appService.findWorkspace("Blogging Roller") // find collecton that will accept entries def entries = blog.findCollection(null, "application/atom+xml;type=entry") // create and post an entry def entry = entries.createEntry() entry.title = "TestPost" def content = new Content() content.setValue("This is a test post. w00t!") entry.setContent([content]) entries.addEntry(entry)
If you have questions or feedback about ROME Propono 1.0 RC1, please post them to the ROME dev mail list and I'll do my best to respond there.
Over the past month or so I've been adding OAuth support to just about every open source project that I can commit to. I added OAuth support to Roller so that you can now use OAuth to protect Roller's AtomPub server and other things. I also added OAuth support to ROME Propono's AtomPub client so you can now use Propono to post to Roller (more about that later). Here's a quick overview of how OAuth in Roller works.
NOTE that this post applies to Roller 5.0, which has not yet been officially released.
If you want to use OAuth with AtomPub on your Roller site, go to the Server Admin page and find the Web Services section, enable AtomPub and specify 'oauth' as the authentication mechanism, like so:
Once you've done the setup, you'll find an OAuth Credentials link on the Roller Main Menu page, which will lead you a page like the one below showing your OAuth consumer key & secret and, if you are a site admin user, the site-wide key & secret. Currently, there's only one set of site-wide credentials; I plan to fix that.
Of course, those aren't my real keys. You'll want to keep your OAuth keys secret as they can enable anybody to access your Roller account via AtomPub.
I mentioned that Roller 5.0 has not yet been released and that's true. There's still a lot of work to be done on 5.0, but that doesn't mean you can't get your hands on the code and binaries now. To make it easy, I've made an unofficial snapshot version of Roller 5.0-dev available for testing purposes only. It's what I'm running on my site. You can get it here in two flavors:
The instructions in the old Roller 4.0 installation guide should work fine, so follow them to install and configure the 5.0-dev SNAPSHOT. Please send questions and feedback to either the Roller dev mail list and I'll do my best to respond there.
You'll also need an OAuth capable AtomPub client. More on that topic tomorrow...