Dave Johnson on open web technologies, social software and Java
I haven't mentioned it yet here on my blog, but I've been working as the spec lead for the Open Services for Lifecycle Collaboration (OSLC) since January of this year.
I hope to blog about OSLC more later, but now I'm writing to tell you about a talk that I'll be doing with Rational Chief Architect John Wiegand at Innovate 2010 The Rational Software Conference in Early June. Here are the details:
Session: ALM-2210B: Open Services (OSLC) and Jazz: Working Together
When: Mon, 7/Jun, 3:00 PM - 4:00 PM
Where: Dolphin - Northern Salon E4
Rational proposed the Open Services for Lifecycle Collaboration (OSLC) initiative at the Rational Software Conference in 2008 to make life better for software delivery teams by easing the way tools can be used in combination. Two years later, we are gratified to see an active and open community making this vision a reality. This presentation will explain the challenge of tool integration, how the OSLC community is addressing the challenge, and how Jazz builds atop OSLC to deliver an open lifecycle platform
For more information on OSLC, visit http://open-services.net
UPDATED: scheduled change - talk is now 3PM to 4PM.
Interested in attending Innovate 2010? You can register here.
I've been a Rockford regular for the last 5 years or so, dining with friends there every Wednesday night. Feels like the end of an era to me.
By Edward James,
There was no sign on the front of the building to let people know there was even a bar located there and its a sure bet that many people new to Raleigh didnt even know it was there. Regular patrons just looked for the nondescript looking front door underneath the barber pole that led up to the Rockford.
Upstairs, bar patrons could hang out at the copper bar or eat one of the Rockfords reasonably priced sandwiches, which were very popular at lunchtime.
The Rockford had a cult following almost among young Raleigh citizens, as evidenced by some of the notes posted on the front door.
Here's an camera-phone shot that I took from the bar one day in 2008:
Dave Koelmeyer offers a nice step-by-step guide to getting Roller up and running on OpenSolaris, Glassfish and MySQL.
Although WordPress undoubtedly has more bells and whistles, with themes and plug-ins galore, I find Roller quicker and less fussy in operation, with far more comprehensive documentation and its scalability cannot be denied. This guide will enable you to install and run Apache Roller for the purposes of evaluation and tinkering.
We will be using OpenSolaris snv_134 x64, with Apache Roller 4.01, Glassfish v2.1, and MySQL 5.1.
Facebook's David Recordon lists the positive aspects of Facebook's recent Open Graph Protocol moves and says its good for the semantic web.
The Open Graph protocol increases the amount of semantic data on the web in a manner that isn't specific to Facebook or any single social network. While we can all disagree about where the quotes and angle-brackets should go, at the end of the day I think we all can agree that this sort of metadata is good for the web
ReadWriteWeb says Facebook's new Open Graph could be a breakthrough for the semantic web:
One of the most exciting parts of the Facebook announcement to me personally is the possible breakthrough in semanticizing the Web. We've written previously about the Semantic Web here, and it has been a personal passion of mine. What Facebook has done has a chance to make vast parts of the consumer Web including movies, books, music, events, sports, and news semantically tagged. Publishers and websites finally have a strong incentive to mark things up and get return traffic from Facebook.
Dare Obasanjo on the Open Graph protocol and the semantic web angle:
One of the things I find most exciting about this development is that sites now have significant motivation to be marked up with extremely structured data which can then be consumed by other applications. Having such rich descriptive metadata will be a boon to search engines especially those from startups since some of the big guys consider their ability to extract semantics out of HTML tag soup a competitive advantage and have thus fought the semantic web for years.
Nothing to argue with there. It makes me wonder, though, is Facebook really going to get behind semantic web tech and push things like RDF, SPARQL, etc. forward? Is Facebook really taking a semantic web or open linked data approach, or is this just tactical?
I'm not sure anybody would have noticed this but Just FYI... I'm doing some spring cleaning here at rollerweblogger.org and decided to remove a bunch of things that I no longer use including those below:
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.
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've been switching around between the Eclipse, Netbeans and IntelliJ IDEs at home and at work. I've found that fiddling around with multiple IDE specific project configurations and launchers and class-paths is no fun at all. That's one of the reasons I got interested in Maven. Yes, Maven is a build-system but it's also a sort of IDE portability solution. Maven projects can be loaded right into all the major Java IDEs as you can see in the screenshots below. IDEs can find your sources, resources, dependencies and via the Maven Jetty plugin even run your Java webapps from the IDE -- things that are not possible if you're using a custom Ant build-script as we were doing before with Roller.
Here some screenshots that show the various Maven IDE plugins and their dependency graph feature.Roller / Maven Eclipse 3.5 / M2Eclipse
Here's Roller loaded into Eclipse via the Maven M2 Eclipse plugin.
By the way, if you want detailed instructions for getting Roller 5 up and running in Eclipse with the Eclipse Web tooling, check-out Harald Wellman's helpful blog on the topic: Setting up Eclipse for Roller.Roller / Maven in Netbeans 6.8
Here's Roller loaded into Netbeans as a Maven project.Maven in IDEA IntelliJ 9.0
And here's Roller loaded into IDEA IntelliJ as a Maven project.
I'm not sure which I prefer yet.
I was a Maven hater and resisted it for a long time but over the years Maven has gotten much better, it's well supported in IDEs and as far as I can tell, Maven has replaced Ant as the de facto build system for Java projects. If you want new developers be able to easily build, debug and run your code via command or their favorite IDE then Maven is the way to go, and that's especially true for open source projects like Roller.
That's why I spent a couple of weekends learning Maven and converting Roller's build process from Ant to Maven (ROL-1849). The process of conversion wasn't too difficult. Getting dependencies under control was a pain, but it believe it will be a one time pain and a worthwhile one. What took the most time was figuring out how to get Maven to start Derby, create the Roller tables and then run Roller's JUnit tests. Also, getting Maven's Jetty plugin setup to run Roller was a little tricky but hopefully also a one-time pain. The result is that Roller now uses a standard and well known directory structure, dependencies are managed and it's easier for developers to get started with the codebase.
If you have Maven and Subversion installed on your computer then these commands will fetch the Roller source code, compile the code, run all JUnit tests and then build the Roller webapp:
svn co https://svn.apache.org/repos/asf/roller/trunk roller_trunk cd roller_trunk mvn install
And once all that is done, the following commands will start the Jetty app server, start the Derby database and start Roller at http://localhost:8080/roller, ready for testing, experimentation, etc.
cd weblogger-web mvn jetty:run-war
I think that's pretty damn useful.
Here are some articles/links that influenced my thinking on Maven recently:
I blogged about Alfonso Romero's Apache Roller 4.0 Beginner's Guide book before. It's a great resource for folks who want to get the most out of their Apache Roller-based blogs, and not just beginners. As you can see in the photo on the right, I've got my copy. You can get yours directly from Pakt publishing:
To publicize the book, Pakt publishing has been publishing some useful excerpts and even a complete sample chapter online. Here's summary of the excerpts so far:
If you've been following Roller development you know that Roller 5.0 is on the way. Most of the changes in Roller 5.0 are "under the hood" so 5.0 won't make Alfonso's book obsolete. Except for a couple of pages in Chapter 5 "Spicing Up Your Blog" that need updated screenshots, I believe everything in the book applies to Roller 5.0 as well.
Here's another thing I've been involved with at IBM: the Enterprise OpenSocial white paper which was published just before Christmas 2009.
The paper is a group effort, written by folks from Alfresco, Atlassian, Cisco, Cubetree, Google, IBM, SAP and SocialText. It explains why OpenSocial is relevant and "ready for both Internet scale web communities and enterprise applications." It also lays out some specific areas for improvement in OpenSocial that will make the technology an even better fit in the enterprise. Here's the opening paragraph to get you started:
Enterprises are collections of people, and thus inherently social. Employees of any organization benefit from social connections, group affiliations and relationships both within their own business and between other businesses. As a result, social networking capabilities have become increasingly popular in business-to-consumer, business-to-business, and internal enterprise collaboration applications. New technologies and standards such as Web 2.0 and OpenSocial  are helping software providers better model relationships between people, allowing end-users to benefit from such relationships in day-to-day business processes within their own enterprise, and across business networks.
Read the rest of the Enterprise OpenSocial white paper at OpenSocial.org.
Here's something I've been closely involved with during my entire IBM career (almost 9 months now): making software development more social by integrating Rational Team Concert and Lotus Connections.
In case you don't know, Team Concert is Rational's "complete agile collaborative development environment" with integrated source code control, issue tracking, build management and very slick Eclipse and web-based client UIs -- it's a collaborative environment for software developers. Lotus Connections is IBM's comprehensive social software suite with blogs (Roller based!), wikis, social bookmarking, forums, file sharing, social networking and more -- an environment for more general collaboration.
IBM partner Mainsoft has developed an integration between Team Concert and Connections and it's now available as a tech preview. The product makes it easy for developers to hook a a software development project up to a Lotus Connections and enable software developers to collaborate with the much wider community of folks involved with a software project including end users, subject matter experts, executives and other stakeholders. As you can see from the list of features, it's a pretty tight integration.
If you want to learn more about the integration, check out the links I referenced above. There's also a short podcast available at Developer Works and there will be sessions at Lotusphere 2010 this month and (with luck) at Rational's Innovate 2010 Conference in June.
Here it is:
Isn't that cool? An actual book on Apache Roller and I did not have to write it. I did review the drafts and it looks good, especially for beginners. It's filled with helpful step-by-step instructions and screenshots. I also submitted a forward, but I don't have a copy of the final book yet so I'm not sure my text made it in (I'd love a hard copy... hint hint). Anyhow... big congratulations to Roller user and author Alfonso Romero.
It's been over a month since the Enterprise 2.0 OpenSocial panel and since we were never able to get a group blog post together, I've decided to publish a short summary of what I said about IBM on the panel. I'm paraphrasing myself from memory so this is not exactly what I said but it should be pretty close:
IBM has been successfully innovating in the area of browser-based components, also known as widgets or gadgets, and social APIs for years now. If you haven't seen the IBM Mashup Center you should visit the IBM booth and take a look at the demo. It allows you to create Web 2.0 style mashup applications by dragging-and-dropping widgets into place and wiring them together. You've probably heard of Lotus Connections. Connections is IBM's social software suite and it includes blogs, wikis, forums, social bookmarking and more. Each one of those components features a comprehensive AtomPub-based REST API.
We're working with the OpenSocial community to ensure that the specification meets the needs of our customers and is able to interoperate with our existing iWidget technology (and I think I mentioned the OpenAjax Hub here too). You can see most of the improvements that we're interested in the slides, so I won't go into detail now, but I will mention a couple of things for example: we would like to see better inter-gadget communication, specification modularity (coming in OpenSocial 1.0) and a stable and predictable specification change process.
I work for Rational, the part of IBM that creates tools for software development and delivery, something that is also social and collaborative in nature. We're enthusiastic about OpenSocial and we hope to enable use of OpenSocial Gadgets in Jazz-based product dashboards sometime in 2010. We may also support some of the OpenSocial Social APIs, but we are still learning and experimenting. Jazz products are developed in an open and transparent way so you can track our progress via our wiki and work-items at Jazz.net.
I won't try to paraphrase what the other panelists said, I'll let them do that, and I'll leave out my SocialSite pitch for now as most of my readers have already heard it. I'll put together an update on SocialSite during the next month and I think I'll have some good news to report.
(Last week, I returned after a week of vacation and a week of conferences in the SF bay area. Instead of posting my trip reports to the limited audience that reads my internal IBM blog, I'm going to post them here so that everybody can benefit from them.)
Here's my report from ApacheCon US, focusing on the projects I'm involved with: Roller, Shindig and SocialSite.
In my session, I covered the new features in 5.0, Roller history and sort of a Roller state of the union. I explained that nobody is working full-time on Roller these days, it's an all volunteer effort with about three people active and if folks want us to keep on making official Apache releases then those very same folks had better step-up and get involved so we can knight some new PMC members. I also did a demo of the new features in Roller 5.0 including OpenID and the file upload and management improvements.
After my Roller talk and in the same room, I attended Paul Lindner's talk on Apache Shindig. Paul has worked on OpenSocial implementations at Hi5 and LinkedIn and he's also a committer on the Apache Shindig project.
I'm familiar with Shindig so this was mostly review for me. I liked Paul's assessment of Shindig quality, saying that they have good processes in place, use code reviews and have good test coverage. Paul acknowledged problems with Shindig's developer friendly-ness and said that the community is working to fix them. I've heard similar complaints from multiple source and seen myself that it's not as easy as it should be to understand the codebase, figure out how to plug-into it and understand which parts are really required for OpenSocial and which are just sample code.
Paul also talked about the Open Stack concept, a set of open standards that enable social networking interoperation including OpenSocial, ~OAuth, OpenID and portable contacts. He said that Shindig is the best way to implement the stack and keep up with the evolving standards. He had a nice quote about "Shindig is to OpenSocial as Apache HTTPD is to HTTP"
On Thursday night, I attended Social Widgets / Gadgets meetup which brought together members of the Apache Shindig, Apache SocialSite and Apache Wookie Communities.
There were about 25 people there including folks from Google, Atlassian, Yahoo, Ning, LinkedIn, Hippo (CMS/portals ISV) and, I'm guessing, a bunch of SF bay area startups. The meetup started around 8PM and lasted over two hours.
I presented a lightning talk on Apache SocialSite using a couple of slides from the JavaOne talk and including a quick status report. Status is this: still waiting on Sun to come through on code grant, Globant is having some success with SocialSite in production and work is almost complete in converting the build over to Maven. I also did a quick talk about the Enterprise 2.0 OpenSocial panel, which occurred the day before.
After that Paul Linder did a quick talk on the Open Stack idea and revised his Shindig quote to "Shindig is to the Open Stack as Apache HTTPD is to HTTP." Then we broke up and folks stuck around to talk about APIs, projects, possibilities and everything else for quite some time.
That's all I've got for now. I hope to document some of my experiences on the "Enterprise OpenSocial" panel at Enterprise 2.0 later, possibly in a blog post on the OpenSocial blog.
(I just returned to work after vacation and a week of conferences in the SF bay area. Instead of posting my trip reports to the limited audience that reads my internal IBM blog, I'm going to post them here so that everybody can benefit from them.)
After arriving at ApacheCon on Monday night and eating way too much sushi with Cote, I realized that there was a NoSQL meetup in progress and free beer was involved. Needless to say, I was there.
At NoSQL Oakland, there were talks on CouchDB, Hadoop, JCR, Voldemort, PNUTS and Cassandra. I was surprised how many people were in attendance; the idea of "no SQL" is apparently very popular about the alpha-geek Apache crowd.
I arrived a little late and saw that the Hadoop talk was packed, as usual for Hadoop. J. Chris Anderson's CouchDB talk was also packed, but I managed to find a seat. Chris is a very entertaining speaker and I learned a lot about CouchDB. Some keys points that Chris made were that CouchDB is "of the web" -- you interact with it via a RESTful protocol and it accepts, returns and stores JSON formatted data. CouchDB is schema-less. CouchDB is "fast by default" due in part to it's append-only approach to data storage. It's written in Erlang and therefore perfect for use in small devices.
A core feature of CouchDB is replication and that's one of the reasons it is now included in Ubuntu Linux, keeping contact/address data in sync across desktop and mobile devices. Chris said that, in 50 years, all applications will replicate in CouchDB fashion. Chris also delved into the details of how CouchDB stores data, complete with detailed hand-drawn diagrams. Want to learn more:
(I just returned to work after vacation and a week of conferences in the SF bay area. Instead of posting my trip reports to the limited audience that reads my internal IBM blog, I'm going to post them here so that everybody can benefit from them.)
On Monday Nov. 2, I attended Social Web Camp at Sun's Santa Clara campus. There were about 40 people in attendance. The event was organized by Sun's Henry Story, an expert in semantic web technologies and inventor of the FOAF+SSL approach to implementing Social Networking features (relationship based privacy). Unfortunately, Henry was not able to attend the conference because he was detained by US immigration.
During the camp, I lead a session on OpenSocial using my "What's up with OpenSocial" slides from BarCampRDU. Surprisingly, very few people were familiar with OpenSocial, so this was an introductory level discussion.
I participated in a session on enterprise social networking and shared a little about we do with micro-blogging inside IBM, mentioning BlueTwit and the new features in Lotus Connections. A couple of folks from Boeing were present and described the home-grown social networking and micro-blogging system.
John Panzer of Google pitched his new Salmon protocol, a distributed commenting system that allows comments made on items in downstream systems (e.g. aggregators, social networks, FriendFeed, etc.) to find their way back upstream to the source item. The protocol is based, in part, on AtomPub. Comments are signed and posted back upstream. Seems like this could be useful in both Lotus Connections river of news feature, Jazz-based products and Roller; so I'll going to track this one closely. It might be fun to try to implement Salmon for Roller.
I missed a little of the conference because I had lunch with some of my former co-worker from Sun and I left a little early to return my vacation rental car and make my way to Oakland for ApacheCon US 2009. More about that later...
On Wednesday November fourth I'll be speaking at two conferences on the same day: ApacheCon US in Oakland, CA and Enterprise 2.0 in San Francisco. Here's a write-up of what I will be speaking about.
Enterprise 2.0: Enterprise OpenSocial. This will be a panel discussion with representatives from Atlassian, SocialText, Exo and I'll be representing IBM. I'll be prepared to talk about what IBM is doing with OpenSocial and to give some specifics about what we're doing in Jazz to support OpenSocial Gadgets and other web UI plugin technologies. I'll also be prepared to give an update on Project SocialSite and it's move to the Apache Incubator.
ApacheCon: What's new in Roller 5.0. I'll cover the state of Roller, explain the new features coming in Roller 5.0 and make some suggestions for the future of the Roller code base. I will also explain what folks can do to help ensure that Roller can continue to improve, make releases and avoid getting yanked up into the attic.
It's been a while since I have blogged about it, but I haven't completely stopped working on Roller. In case you're wondering what's up in Roller-land, here's an update based on an email I recently sent to the Roller dev mailing list.
I've been doing some weekend and evening work on Roller 5.0 to get it ready for release. Ganesh and Tanuja did great work on the new Media Blogging features, but there were a couple of significant pieces missing such as data migration and I18N. I had hoped to finish that work during the summer, but life got in the way. Now I'm scrambling to wrap things up. I'll be speaking at ApacheCon US 2009 in November on the topic of What's New in Roller 5.0, so I'd really like to have a 5.0 release candidate ready by then.
Just as a reminder, here's what's currently on the 5.0 feature list:
- Media Blogging Support
- Externalizable User Management
- OpenID Support
- Tag Data API
- OAuth for AtomPub
- See the full list on the Roller wiki
Except for Media Blogging, all of those features are complete. My plan is this. I'll do some more cleanup work on Media Blogging, which is the major new feature in 5.0, fix some bugs and then I'll cut an RC.
BarCampRDU 2009 was a great success, if I don't say so myself. Here's my brief review. We had excellent turn-out, lots of great session pitches and lots of great sessions. Everything went very smoothly and our estimates for meals, t-shirts and party-budget were spot on. We received lots of positive feedback on Twitter and blogs and at the event. We did have some difficulties with the PA system and a couple of projectors, but we got past them with a little help from our friends.
Here are the links I've rounded up since the event. If you want a taste of BarCampRDU 2009 then check Robert Fischer's excellent podcast and Tanner Lovelace's very-cool time-lapse set to spooky music.
We might have to do it again next year