Blogging Roller
Dave Johnson on social software, open source and Java
Dave Johnson on social software, open source and Java
Above: a random selection of photos from my Flickr photo-stream.
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:
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.
Tags: blogging opensource java
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 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.
Tags: apachecon apacheroller
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:
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...
Tags: java atom opensource mentoring apacheroller rss
From the Roller project blog:
Ganesh Mathrubootham has been doing great work on the Media Blogging for Roller project and helping out in other ways in Roller development and support. So in January we nominated and voted him in as Roller's newest committer. Welcome Ganesh, we're very happy to have you on the team.
I've really enjoyed working with Ganesh and his project partner Tanuja over the past six months, so this is great news. I'll tell you a bit more about the Media Blogging for Roller project in one of my next blog posts.
Tags: apacheroller
Here's the announcement from the Roller project blog:
It's been over a year since our last Roller release and we've fixed a couple dozen bugs in that time including an XSS vulnerability reported recently by Secunia.com. Now those fixes are available as an official Roller release, 4.0.1
- Bugs fixed are listed in the JIRA Issue Tracker Release Notes page.
- Updated files and docs are available via the Apache download mirror network.
This is a bug-fix only release with no new features.
Wondering what's next for Roller? I'm going to push for a Roller 5.0 release in Spring 2009, as we've got good stuff in the trunk and more on the way, but I'm going to need your help to get there. More about that later.
Tags: roller
Tags: apacheroller yui themes
His blog has always been a showcase for what you can do with Roller template programming, although recently he has adopted a more simple and clean design. Wayne just posted a set of three interesting and useful Roller hacks on his blog Eclectic:
Nice stuff. Have you got any Roller hacks to share?
Tags: apacheroller
Believe it or not, I've never created an XHTML theme for Roller and I didn't even notice the XHTML declaration when I put my new theme (which I'm calling Fauxcoly) together. I did notice when I got over 400 validation errors from the HTML validator. So, I worked for a couple of hours last night to fix the errors both in my new theme and in my most recent weblog entries. I also had to fix a couple of Roller bugs, which need to be reported.
Now the main pages of my blog validate and I'm brave enough to put this in the theme's footer.
Having a theme that supports XHTML isn't enough, of course. You also have to ensure that each blog entry is well formed and comments too. Unfortunately, we don't have great infrastructure for that in Roller (yet).
I still plan to release the theme in packaged-theme form, but only after I XHTML-ize it too.
Tags: apacheroller themes xhtml
Meena Vyas, Murthy Chintalapati and Allen Gilliland just published an article on BigAdmin that describes the architecture of blogs.sun.com, a Roller, Sun Web Server, Memcached and MySQL based site that averages 4 million hits a day with its two SunFire T2000 servers at 97% idle. You can get the article for free (registration required) here: Sun Blogs: A Sun Java System Web Server 7.0 Reference Deployment
Tags: bsc apacheroller java sun
I've been neglecting my Blogging Roller duties, no doubt, but Roller work continues albeit at a slower pace. If you want the official word on Apache Roller status and progress then check the project's reports to the ASF board. I just added links to the most recent three reports to the Roller project blog. Here's a summary of those reports lifted right from the blog:
The Apache Roller project's latest report to the ASF board is available here: August 2008 Board Report
. Highlights include some commentary about community health, OpenID support
via the Google Summer of Code
and a new project to improve Roller's Media Blogging
facilities.
The Apache Roller project's latest board report is available here: May 2008 Board Report
. The highlights include the completion of new Externalized User Management
and Tag Data API
work for Roller 4.1.
The Apache Roller project reports status on a quarterly basis and the latest report is now available here: February 2008 Board Report
. Highlights from the report include the release of Apache Roller 4.0 and work towards a proposal for Roller 4.1
.
Tags: status
If you need help with Roller, please do not write to me directly. Please write to the Roller user mailing list instead so that everybody has a chance to answer and benefit from the answer to your questions. Of course, there is no guarantee that your questions will be answered on the mailing lists. If you're willing to pay for an assurance of support, then look to Covalent, a company that offers commercial Roller support. Unfortunately, they're still stuck on the old and out-of-date Roller 3.x release.
Thanks to one hard working student and the Google Summer of Code, we now have a patch for OpenID support in Roller and its ready to commit to trunk. Here's a teaser screenshot:
If you want to know more, the proposal for OpenID support is on our wiki and the patch is attached to issue ROL-1733 in our bug tracking system.
I'm happy to report that I'll be traveling to Copenhagen, Denmark to talk about Roller and Project SocialSite at the Open Source Days 2008 conference on Oct. 3-4 this year. I'm going to tell the story of Roller and lessons learned along the way and then talk about blogging in the age of social networks and how to social-enable Roller with the SocialSite widgets. The session is called titled The once and future Roller.
If you want the lowdown on what's going on with Roller community health, ongoing work and upcoming releases then check out the Apache Roller August 2008 Board Report.
Tags: opensource roller asf
Via Roller web UI. It's not the most pleasant experience, pinching and scrolling around to move from title to content and then down the page to find the post button, but you can post to Roller from an iPhone. Seems like you could throw together a pretty nice iPhone interface for Roller using iUI. Who needs Android, J2ME, etc. when you can just use the web?
Tags: iphone moblogging
I remember how freaked-out I was to see the referrer hits start rolling in (pun fully intended) from http://blogs.sun.com/roller. I can't believe it's been four years already. Thanks to Linda for the reminder.
I asked for Google Summer of Code (GSOC) ideas for Roller a couple of days ago. Below are links to the proposals I thought were good enough to volunteer as possible mentor for and to submit. The deadline is tomorrow, so you've still got time to suggest additions to the list.
Here's the full list of Apache GSOC proposals.
Tags: opensource roller google