Dave Johnson on open web technologies, social software and software development
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 / M2EclipseHere'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.8Here's Roller loaded into Netbeans as a Maven project.
Roller / Maven in IDEA IntelliJ 9.0And here's Roller loaded into IDEA IntelliJ as a Maven project.
I'm not sure which I prefer yet.
Dave Johnson in Java
06:11AM Mar 23, 2010
Comments [2]
Tags:
eclipse
idea
maven
netbeans
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:
Dave Johnson in Roller
05:47AM Mar 14, 2010
Comments [5]
Tags:
ant
java
maven
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:
Buy a copy of Beginner's Guide to Apache Roller 4.0
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.
Dave Johnson in Roller
02:54AM Feb 25, 2010
Comments [0]
Tags:
blogging
java
opensource
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 [1] 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.
Dave Johnson in IBM
02:16PM Jan 05, 2010
Comments [0]
Tags:
opensocial
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.
Dave Johnson in IBM
01:25PM Jan 04, 2010
Comments [1]
Tags:
apacheroller
jazz
lotusconnections
rational
Here it is:
<img src="http://rollerweblogger.org/project/mediaresource/b32e1401-5ada-4d39-84de-2c8482358f87" alt="Roller book cover" style="padding:4px; align:center" />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.
Dave Johnson in Roller 03:04PM Dec 17, 2009 Comments [1]
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.
Dave Johnson in IBM
08:32AM Dec 14, 2009
Comments [0]
Tags:
jazz
opensocial
socialsite
(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.
Next, Jas Nagra did a very entertaining and informative mini-presentation on Caja, complete with XMen 2 references. Caja is a way to run Javascript code (e.g. gadgets) loaded from different locations, each in its own secure sandbox where it can't interfere with others and can't do evil -- but without relying on iframes. Shindig uses Caja, but it's optional and off by default.
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.
Dave Johnson in IBM
05:59AM Nov 15, 2009
Comments [0]
Tags:
apacheroller
opensocial
socialsite
widgets
wookie
Dave Johnson in Links
05:52PM Nov 11, 2009
Comments [0]
Tags:
googlewave
openid
policy
socialmedia
(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:
See also:
Dave Johnson in IBM
05:49AM Nov 09, 2009
Comments [0]
Tags:
couchdb
hadoop
nosql
(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...
Dave Johnson in IBM
05:07AM Nov 09, 2009
Comments [0]
Tags:
apacheroller
atompub
foaf
opensocial
salmon
sun
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.
Dave Johnson in General 04:19AM Oct 06, 2009 Comments [0]
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
- OpenSearch
- 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.
Dave Johnson in Roller
05:15PM Sep 22, 2009
Comments [0]
Tags:
apachecon
apacheroller
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
Dave Johnson in General
12:00PM Aug 12, 2009
Comments [0]
Tags:
barcamprdu
triangle
Dave Johnson in Links
05:12PM Aug 11, 2009
Comments [0]
Tags:
blogging
chrome
eclipse
googlewave
lotusconnections
opensocial
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
I'll be there and speaking on the topic of What's New in Roller 5.0. I also plan to attend the Social and Widgets Meetup with folks from Shindig, SocialSite and Wookie. I hope to see you there.
Dave Johnson in Open Source
04:09PM Aug 11, 2009
Comments [0]
Tags:
apachecon
opensocial
shindig
socialsite
wookie
Dave Johnson in Social Software
12:52PM Aug 10, 2009
Comments [2]
Tags:
blogging
facebook
friendfeed
googlereader
socialnetworking
twitter
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.
Dave Johnson in General 01:47PM Aug 07, 2009 Comments [1]
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]
Dave Johnson in General
12:04PM Aug 02, 2009
Comments [0]
Tags:
blogging
feeds
ibm
java
opensource
socialsoftware
sun
webdev
I think can stand behind a Service Level Agreement (SLA) of one blog post per month. Oh look, it's August 1st. I'm done for the month.
Dave Johnson in Blogging 09:29AM Aug 01, 2009 Comments [1]
« Previous page | Main | Next page »