Scaling Agile with C/ALM

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
cover of book

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 coming up soon, still needs sponsors

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.


re: Science for the Curious Photographer

picture of the CD

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.


Latest Links: OpenSocial and OSLC


Wisdom of Twitter: Wave's impact on enterprise collab

$entry.displayContent($url.entry($entry.anchor))

RSC 2009: connecting developers and community

RSC logo

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

Connections logo

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.

Jazz logo

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.


First impressions

I've been at IBM for one month now and I'm just now starting to settle in and make some progress. I'm going to try to work some blogging back into my schedule and tell you about what I'm doing at work. For starters, here's a quick summary of my first impressions. [Read More]

BarCamp RDU registration open and tickets going fast

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:

http://barcamprdu2009.eventbrite.com/


SocialSite@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?

$entry.displayContent($url.entry($entry.anchor))

OAuth for ROME Propono

ROME logo

Yesterday I wrote about OAuth support in the upcoming Roller 5.0 release. Today I'm following up with a post about OAuth support in ROME Propono.

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

ROME 1.0 and coming soon: ROME Propono 1.0

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)

Posting to Roller via AtomPub and OAuth

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.


OAuth for AtomPub in Roller

powered by Roller badge

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.

Setting up OAuth for AtomPub in Roller

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:

OAuth config in Roller 5.0-dev

Getting your OAuth key, secret and URLs

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.

OAuth keys page in Roller 5.0-dev

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.

Want to try it yourself?

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:

apache-roller-5.0-dev-20090321-SNAPSHPOT.tar.gz (31 mb)

apache-roller-5.0-dev-20090321-SNAPSHPOT.zip (31 mb)

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...

Sidebar: What is OAuth and why should you care?

OAuth logo

I'm going to be following up my OAuth everywhere! post, with several more OAuth related posts this week. So, just in case you are wondering "why is Dave going off on this cockamamie OAuth tangent?", I'll take some time now to explain a little about OAuth to help you understand.

OAuth is a emerging protocol that one web site can use to access your data on another website without asking you to reveal your username and password. For example, when the sinister BuddyNet9000(TM) Social Network site wants to access your GMail account so it can spam your "friends" on your behalf, you can use OAuth to give it access without telling it your username and password. Why risk your GMail security when all you want to do is spam some people? There are less snarky examples, but that one makes the point well, I think.

There's a good end-user oriented introduction on OAuth.net titled Beginner's Guide to OAuth: Protocol Workflow. OAuth is not that widely deployed yet, and is not perfect, but it is emerging and going the IETF standards route.

I'm interested in OAuth because it's part of the OpenSocial spec, used to authorize access to the OpenSocial REST API and to enable OpenSocial Gadgets to call out to OAuth protected resources. Also, because it's used to protect AtomPub-based services, including the Google Data APIs. I needed to learn about it for my Roller and SocialSite work and if you're going to be doing much OpenSocial work, you'll need to learn about it too.


ApacheCon EU 2009!

View of art center (foreground) and Movenpick Hotel

I'm off to ApacheCon EU 2009> tomorrow in Amsterdam to speak on the topic of Shindig for Blogs and Wikis. I'm really looking forward to catching up with my Apache friends and colleagues. That's the conference venue in the photo on the right, the Movenpick hotel (in the background behind the music hall).

I'm staying a couple of extra days, so I hope to have time for bicycling around the city as I've done in the past (see also: Flickr photo sets for 2007 and 2008). Unfortunately, the weather forecast stinks. There's a 60% chance of rain every day that I'm in town. Oh well; guess I'll have plenty of time for blogging.

Speaking of blogging.This week, I'll be posting some blog entries to highlight the work that I've done in preparation for my talk. Here's what I plan to cover:

* Monday: OAuth for AtomPub in Roller
* Tuesday: OAuth for ROME Propono
* Wednesday: SocialSite on rollerweblogger.org
* Thursday: OAuth everywhere (continued)
* Friday: the future of Project SocialSite

If you plan to attend my talk, at 4:30PM on Friday March 27, then you should follow along. Pay special attention to the SocialSite on rollerweblogger.org and OAuth everywhere (continued) posts, which will include detailed background info. I'm looking forward to seeing you there.


Latest Links - Roller, SocialSite, etc.


Latest Links: Sun and clouds


Slides for my COMP 380 talk: Social Software at work

I was invited to talk to the class COMP 380: Computers and Society at the University of North Carolina on the topic of Social Software at work, so I spent some time working up a presentation and set of slides. I gave the talk last night to three sections of the class and it seemed to go over pretty well. There was some booing at the start when I mentioned my alma mater N.C. State, but nobody threw anything and I think I put only one student to sleep. I definitely enjoyed the experience.

For the benefit of the class and anybody else who is interested, I just uploaded my slides to Slideshare. You can find them here: Social Software at work.


Latest Links #42

« Previous page | Main | Next page »