Dave Johnson on open web technologies, social software and software development
Last week was deadline week for JavaOne and ApacheCon EU presentations, so I was busy. Fortunately for me, my other deadlines were postponed, I did some begging for time and I actually had time to take a short vacation; a family reunion at Stone Mountain park, Georgia. Here's some more information about my ApacheCon talk and an outline of the slides.
[Read More]
Dave Johnson in Blogging
11:27AM Mar 27, 2007
Comments [0]
Tags:
apachecon
asf
blogging
businessblogging
feeds
java
roller
wikis
This is just a quick follow-up to my previous post on Pluggable renderers and scripting languages in Roller. It took me a while, but I finally made JRuby code work inside a Roller page template. Here's an example JRuby page template that displays most recent blog titles and text in HTML format.
Not the most beautiful thing in the world, I must admit. Any JRuby experts reading along? Is there a simple templating solution that will work in JRuby... something like Groovy Templates? And is there a way to map puts output to a java.io.Writer that will work via BSF?$out.println "<html><head>"
$out.println "<title>#{$model.weblog.name}</title>"
$out.println "</head><body>"
$out.println "<h1>#{$model.weblog.name}</h1>"
$model.weblogEntriesPager.entries.keySet().each {|day|
$model.weblogEntriesPager.entries.get(day).each {|entry|
$out.println "<h3>#{entry.title}</h3>"
$out.println "<p>#{entry.text}</p>"
}
}
$out.println "</body></html>"
Dave Johnson in Roller
05:46PM Mar 20, 2007
Comments [4]
Tags:
java
jruby
roller
Complete instructions for Running Roller Weblogger on Sun Java System Web Server 7.0 by Seema Alevoor and Marina Sum. Via The Aquarium.
Dave Johnson in Roller
09:02AM Mar 20, 2007
Comments [0]
Tags:
docs
roller
sun
Dave Johnson in Roller
07:45PM Mar 11, 2007
Comments [0]
Tags:
groovy
javascript
jruby
roller
scripting
In case you're wondering what's going on lately with Roller, ROME and other projects I've been working on, here's a status update from my point-of-view.
Apache Roller graduation. The Roller team voted for graduation, the Apache Incubator PMC voted for incubation and the next step is to take the resolution to the Apache board meeting, which is coming up in the next week or so.
Roller 3.1 release. We've been moving slowly on this one. RC1 was released Nov. 20 and today RC4 just about ready to go. It's possible that 3.1 will be our first "official" Apache Roller release -- depending on what happens on the board meeting. Wonder what's coming in Roller 3.1? The What's New in Roller 3.1 page is now available on our new wiki at apache.org.
Roller 4.0 development. We started the Roller 4.0 branch a couple of weeks ago and I've been spending most of my time updating and trying to perfect Craig and Mitesh's new JPA back-end. Elias outlined a bunch of IBM contributions including an iBatis based back-end. We hope to get some of those in the 4.0 and do some JPA vs. iBatis testing, but we haven't seen any proposals or code yet.
Roller-Planet. Actually, Allen's taken over work on Roller-Planet and he's implementing many of the things I outlined in the Roller-Planet mind-map. He promoted Roller-Planet from the sandbox, built a nice Struts2 UI, added a Roller-style feed/page rendering system and Roller-style caching. Good stuff. We have not discussed when to start making standalone releases of Roller-Planet.
ROME Propono. I've been working on a new ROME subproject called Propono that will include a blog client library, an Atom protocol client library and an Atom protocol server kit. I've been quiet on the ROME dev list, but I've been working on the client bits an they're basically done. I'm waiting for final approval to commit them to ROME CVS.
Blogapps examples and server. I'm still working on a 1.0.5 release, which will include updated Atom protocol support and some bug fixes. I just haven't had the time to get a release out, but I have had some time to work on Blogapps 2.0 where I've ditched the chapter-based directory names and switched to org.blogapps packaging. Once ROME Propono is available, I'll include it in Blogapps 2.0 and drop my old Blog Client library.
Dave Johnson in Roller
06:39PM Feb 22, 2007
Comments [2]
Tags:
apache
blogapps
roller
rome
James Governor: Covalent gets its mojo back and refocuses on its core competence - supporting open source code, and doubles down on Apache projects, going back to its roots. The latest example of Covalent seeing an opportunity and nailing it is the companyâs announcement of support for the Roller blog platform. Thatâs now two companies, IBM and Covalent, making direct revenues from a platform originally built by a Sun employee, but for which Sun has no business model. Here is a hint Sun - perhaps its not software you need to sell but service and support. That is what Covalent is nailing.
I appreciate the support from James and the Redmonk crew. They always seem to be rootin' for Roller.
Of course I'd like to see better support for Roller all around, but at this point I can't say much beyond this: I'm focused on building a great blog platform and support is a very important part of any platform.
A couple of small corrections for James. I was not a Sun employee when I originally developed Roller. Second, IBM hasn't shipped Connections, so they're not any making "direct revenues" yet. Third, I don't know if Covalent has "nailed" anything -- I haven't heard from anybody who has tried the service and I'm still trying to figure out exactly what they offer.
Dave Johnson in Roller
04:29AM Feb 14, 2007
Comments [0]
Tags:
blogging
covalent
ibm
roller
sun
I mentioned before that I convinced my Dad to start a blog. Well, now after a week or so of back-and-forth with Kattare.com getting the domain handling setup properly and modifying Roller to support multiple domains, his blog is live running on the same Roller instance that I use for this blog (but with the domain photophys.com).
Dad's blog is titled Photography: Appreciation through Understanding. He's publishing draft chapters from his new book there, hoping to get feedback and attract some new readers.
Hmm... RSS and Atom feeds don't seem to be working correctly. Apparently, I've still got some multi-domain work to do...
Dave Johnson in Blogging
02:49PM Feb 13, 2007
Comments [2]
Tags:
blogging
family
roller
Dave Johnson in Blogging
06:17PM Feb 12, 2007
Comments [0]
Tags:
app
atom
blogging
java
portlet
roller
Dave Johnson in Roller
12:32PM Feb 08, 2007
Comments [0]
Tags:
apache
opensource
roller
Dave Johnson in Roller
11:28AM Feb 08, 2007
Comments [0]
Tags:
identity
ldap
opends
roller
Dave Johnson in Roller
07:03PM Feb 06, 2007
Comments [0]
Tags:
blogging
ibm
roller
Aaron Cohen is looking for feedback on a simple and clean new Roller theme known as Eco.
Update: Linda says Eco is not really a "Roller theme" as it relies on some .Sun Engineering ad-server components to serve up the rotating eco-fact. She's got some instructions for BSC users interested in the theme on her blog.
Dave Johnson in Roller
07:02PM Feb 06, 2007
Comments [0]
Tags:
blogging
roller
sun
Since I upgraded this site to Roller 3.2-dev, with pluggable comment validators and Akismet support, not a single spam has gotten through the system. Over the weekend I saw 20-30 email messages like this:
This comment failed validation for these reasons:
* Akismet service (akismet.com) says comment is spam
* Trackback from site/page that does not link to your weblog entry
Brisa wrote: [Trackback] nothing here
That's music to my ears. Die spammers die!
Dave Johnson in Roller
08:10AM Feb 05, 2007
Comments [1]
Tags:
roller
spam
Dave Johnson in Roller
08:02AM Feb 05, 2007
Comments [0]
Tags:
apache
opensource
roller
Elias posted some good news about some upcoming IBM contributions to Roller. We're discussing how best to get them into Roller now.
Note that we now have two possible replacements for our old Hibernate back-end. We've got a Java Persistence Architecture (JPA) based back-end developed by Sun's Craig Russell and Mitesh Meswani and IBM is getting ready to contribute an iBatis based back-end. How do we choose which one to use in Roller? Consensus seems to be that we'll have a bake-off. We'll compare the programming models, test performance and discuss the pros and cons -- and let the best framework win.
Dave Johnson in Roller
08:40AM Jan 30, 2007
Comments [0]
Tags:
ibatis
ibm
jpa
roller
sun
Pixyblog is a photoblogging site, powered by Roller. Looks slick.
Update: Raible blogged about Pixyblog too and some Sun-related news about his job search.
Dave Johnson in Roller
08:29AM Jan 30, 2007
Comments [0]
Tags:
blogging
photoblogging
roller
Dave Johnson in Roller
06:42PM Jan 29, 2007
Comments [3]
Tags:
app
atom
roller
Lots of good news and stuff to blog this past week including the Sun makes a profit story, the Sun-Intel deal and more. I really like reading news like this Amid Profit, Brighter Days for Sun and this Sun turns profit after five quarters in red.
And how could I fail to mention the announcement of Lotus Connections, the product formerly known as Ventura. Connections is IBM's new Web 2.0 social networking suite and it includes Roller. IBM's James Snell posted some background info about IBM's internal use of social networking tools and how that led to Lotus Connections. Elias Torres blogged about it too and included a screen-shot of the new Connections based BlogCentral (IBM's internal blogging site).
And in other news...
My ApacheCon EU talk on 'Roller and Blogs as a Web Development Platform' was accepted. Looks like I'll have a busy May, Amsterdam for ApacheCon and (hopefully) San Francisco for JavaOne all in the space of two weeks.
Wordpress is finally gonna get Atom format support and apparently Atom protocol support is going to happen too.
The ROME project is just about ready for ROME 1.0 and there's a new subproject in the works: ROME Propono. co-worker Ramesh Mandava and I are putting together a Blog Client library (based on code from Blogapps) and an Atom client/server library (based on code from Roller). Hopefully, we'll have it ready by the time that ROME 1.0 comes out.
Dave Johnson in Roller
05:54AM Jan 26, 2007
Comments [1]
Tags:
apachecon
ibm
java
javaone
roller
rome
sun
Alexis Moussine-Pouchkine has taken my Generating JSON for your Roller blog post a few steps further down the road. He created a screen-cast to show how easy it is to use Netbeans 5.5 and the JMaki widget wrappers to serve up Roller data in a a Dojo table. Cool stuff. I really need to find the time to take JMaki for a spin.
And BTW, I'm still working on my Dojo table example, which will be similar to what Alexis has done but it will use Dojo directly within a Roller blog -- no IDEs or JSPs required.
Dave Johnson in Roller
06:21PM Jan 15, 2007
Comments [0]
Tags:
ajax
blogging
dojo
javascript
roller
One question that came up recently on the Roller mailing lists was how to generate JSON for a Roller blog. Roller 3.0's new rendering system makes it easy to generate just about any representation of your blog, so JSON is no problem at all. In fact, any Roller user can do it via the Roller UI by simply creating a new page template.
For example, what if you wanted to generate a JSON array of blog entries with id, pubTime and title for each entry, like what's shown below:
[
{id: "roller:open_source_ghetto_at_javaone",
pubTime:"2007-01-12 12:57:17.0",
title: "Open source ghetto at JavaOne?"},
{id: "roller:iphone_don_t_think_of",
pubTime:"2007-01-11 17:43:29.0",
title: "iPhone: don't think of it as a computer"},
{id: "roller:iphone_apple_apps_only",
pubTime:"2007-01-09 23:06:15.0",
title: "iPhone: Apple apps only?"}
... etc...
]
To do that, you can use the Roller Preferences->Template menu to create a page template like so:
#set($pager = $model.getWeblogEntriesPager())
#set($map = $pager.getEntries())
[
#foreach($day in $map.keySet())
#set($entries = $map.get($day))
#foreach($entry in $entries)
{id: "$entry.website.handle:$entry.anchor",
pubTime:"$entry.pubTime",
title: "$entry.title"},
#end
#end
]
The code above is a little tricky because of the way the entry pager returns entries. To make it easy to display entries by day, the $pager.getEntries() method returns entries in a ordered java.util.Hashmap. The map contains lists of entries, one for each day, and the map is keyed by date objects. To get entries out of the pager you must iterate through the day-date keys, get then entry list for each and then iterate through the entries of that day.
If you create the above template and save it with the name "jsontest" your new page will be available at /<bloghandle>/page/jsontest. And because the $pager object understands the standard Roller request parameters date, cat and page you can subset the data by date and category, and you can page through the results. For example:
/<handle>/page/jsontest?cat=roller - latest entries in category 'roller'
/<handle>/page/jsontest?cat=roller?page=1 - first page of entries in category 'roller'
/<handle>/page/jsontest?date=200601 - Entries from January 2006
Try it on my blog: http://rollerweblogger.org/roller/page/jsontest
In a future post I'll show how to use Roller-generated JSON data in a sophisticated JavaScript widget. I'm working on an example that uses Dojo and specifically the FilteredTable widget to present a pageable table of Roller blog entries.
For more information on Roller page template programming see the docs for the Apache Velocity template language and see the Roller 3.0 Template Author Guide for details on the Roller objects and macros available within Roller templates.
Dave Johnson in General
04:29AM Jan 14, 2007
Comments [1]
Tags:
blogging
json
roller
« Previous page | Main | Next page »