Latest links [March 29, 2007]


    @ApacheConEU: Roller and blogs as a web dev. platform

    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]

    Latest links: March 21, 2007


    JRuby on Roller

    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.

    $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>"

    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?

    Congrats

    Congrats to Mark Pilgrim on his new job at Google, where he'll be working on the "right" vision for the future of the web. I assume the "wrong" vision, in Mark's mind, comes from the W3C and specifically the W3C's semantic web activities. Mark's comment pointing to his earlier The Overton Window post seems to back that up. I think it's interesting that Mark will be working remotely; that's a rare thing at Google.

    And congrats to Debian Linux co-founder Ian Murdock on his new job at Sun, where he'll be working on all things OpenSolaris and, I hope, helping to make it as easy and fun to use as Debian or even Ubuntu.

    Roller on SJS Web Server 7.0

    Complete instructions for Running Roller Weblogger on Sun Java System Web Server 7.0 by Seema Alevoor and Marina Sum. Via The Aquarium.


    Latest links: SWDP edition


    Newsgator launches Java ME powered feed reader

    Newsgator, makers of FeedDemon and NetNewsWire, have launched a Java ME powered RSS/Atom feed reader. Here are some details from the press release

    NewsGator Go! for BlackBerry and NewsGator Go! for Java were developed in a technology partnership with FreeRange Communications, the leading developers of mobile publishing and mobile RSS solutions, and is available for BlackBerry, Sony Ericsson, Nokia, and most other MID-P 2.0 mobile phones, including Samsung, Sanyo and LG. NewsGator Go! is available for $29.95 or $14.95 if bought with any of NewsGator’s desktop readers, including FeedDemon, NetNewsWire and Inbox.

    Via Randy Morin.


    Meme blowback

    Since I inflicted the 5 things-about-me meme on Linda, she's inflicting the latest 5 things meme on me. This time the meme is this: name 5 songs you like but annoy your significant other. I thought that would be easy as I've got a giant collection of songs that seem to irritate Andi, but she can't seem to identify any specific songs that particularly annoy her. So, you'll have to be satisfied with some broad categories:

    1. Anything by Bob Dylan
    2. Punky stuff like X, Superchunk or Bad Brains
    3. Hard rock stuff like Zeppelin or The Who
    4. Nasty Zoo - me on helium-voice vocals and bass, kids singing backup
    5. Java Posse podcast. OK, it's not song, but it's on my iPod and annoys the hell out of her.

    Here's to my new co-workers: Roberto, Arun, Rajiv and Marc consider yourselves tagged. I guess you've got an "out" if you have (or claim to have) no significant other.

    Raleigh bloggers - tonight

    It's meet-up time and as usual, I'll be there. Details - http://joshstaiger.org/raleighbloggers


    Sun Web Developer Pack R1 with RSS and Atom goodies

    The Sun Web Developer Pack (SWDP) finally uncloaked today, so I can talk a little more openly about what I and my Java EE co-workers have been working on. You can get the full scoop at the SWDP site, but basically SWDP is a bundle of technologies to help developers build "Web 2.0" or next-generation web applications on the Java platform. Ajax, scripting languages, REST and of course RSS/Atom are all part of that. The RSS/Atom bits are ROME 0.9 (Beta), Blogapps 2.0 (Early Access) and a ROME-based Atom Server kit based on code from Roller.  There are also example Atom server implementations in the REST API and Phobos components of the pack.

    I'm pretty excited that we're putting some resources behind ROME and that both ROME and Blogapps are part of SWDP R1, but I'm even more excited about the next release. In R2 we'll drop the Atom Server Kit and Blogapps BlogClient and we'll replace them with ROME Propono a brand new Atom protocol client and server library that we're getting ready to contribute to the ROME project.

    I haven't had a whole lot of time to experiment with the various components in the pack, but I have played with Phobos and I think it's pretty compelling. Phobos is a "lightweight, scripting-friendly, web application environment." It's not just for creating server-side JavaScript applications, but that's the angle the I find interesting. So many developers are creating JavaScript/Ajax applications these days that working in JavaScript on both client and server-sides makes sense -- especially when you can debug into JavaScript code in your IDE as you can with the Netbeans Phobos module. Also note that the jMaki Ajax components work with JSP, PHP and Phobos -- jMaki and Phobos look like a winning combination.

    Pluggable renderers and scripting languages in Roller

    My next ApacheCon talk is about Roller and blogs as a web development platform. One of the things I plan to discuss is using scripting languages within Roller, something that's possible now because Roller versions 3.0 and later supports pluggable renderers. It's undocumented and a little hacky right now, but by plugging in your own custom renderers you can add support for new template and scripting languages as alternatives to Roller's built-in Velocity. Want to know more? [Read More]

    Bone head

    Linus really digs the Bone comics. He's proud to be a Bone-head and recently expressed his great desire for a Bone t-shirt. So this weekend we did a little craft project and made one. We started by creating stencils based on a couple of my sketches. Here are the stencils that we created with a manila folder and an XACTO knife:

    Bone stencil head      Bone stencil logo

    Then we took a trip to the craft store to get some airbrush friendly fabric paint and a couple of t-shirts. It was nice and warm today, so we did some airbrushing out on the porch. This is the end result: 

    Bone t-shirt front     Bone t-shirt back


    RTP 2.0 Open Social

    Via Paul Jones:

    RTP 2.0 and the Council for Entrepreneurial Development are proud to present the first RTP 2.0 Social. Sponsored by RTP 2.0, CED, and Broadwick, makers of IntelliContact, this event will be held Wednesday, April 4, from 7-9PM at Tyler’s Tavern in Durham (located in the American Tobacco Campus).

    This event is open to everyone interested in meeting other technologists, innovators and entrepreneurs in the area. The goal of RTP 2.0 is to bring individuals together for meeting, sharing ideas, and having fun. Friends are welcome, of course.

    Sounds like another nice opportunity to meet-up with the local tech crowd. I just signed up for the mailing list.

    Burning smells

    are never a good thing...

    We detected a funny burning smell in the house last night and it turned out to be an outlet, which had started to brown due to a short. I disconnected the outlet, separated and taped off the wires for safety until we can get an electrician here. Apparently, such problems are common with aluminum wiring, which expands and contracts with the seasons. Jeez. Maybe it's time to move.

    This morning, I smelled the same odor coming from my Sun-box and the system started rebooting on it's own. I powered down, disconnected power, opened the case to look and sniff around, but couldn't find any evidence of burning. Finally, I let the machine cool-down for a while and then was able to get it to boot. Now I'm making backups and trying to figure out how to get some hardware support. 

    Not a great way to end the week, that's for sure.


    JPA JPA JPA

    That's three JPAs. I've been fighting to get a new Roller back-end running, one that uses the Java Persistence API (JPA) rather than the native Hibernate API that we use now.

    Craig Russell and Mitesh Meswani wrote the new JPA back-end and tested it against Toplink/JPA (JPA #1) and the Derby database. I've been refactoring it, updating it for Roller 4.0 and testing it against various other databases and JPA implementations with mixed results.

    I tried to run it against MySQL, ran into a bunch of problems and fixed those. Allen switched out Toplink/JPA for Hibernate/JPA (JPA #2), ran into problems and fixed those. I switched out Toplink for Apache OpenJPA-incubating (JPA #3), ran into problems and fixed those. So now we have a back-end implementation that runs against OpenJPA, but requires two small code changes to work against Toplink -- not exactly an ideal situation.

    I'm a JPA newbie for sure and still trying to figure this stuff out, but it does seem that switching JPA implementations is not as easy as it ought to be.

    In other JPA news...

    I didn't realize that the open source version of Toplink that Oracle contributed to Glassfish, Toplink Essentials, is the pee-wee version of the full and still closed source Toplink product. That's why I was somewhat surprised to hear that Oracle is open sourcing and donating the full version of Toplink to the Eclipse foundation.

    Two observations about that news. First, this move appears to be a fork that will result in a CDDL licensed version of Toplink Essentials in Glassfish and an EPL version in Eclipse -- I hope I'm wrong about that. And second: apparently IBM will be soon be supporting two versions of JPA: OpenJPA via Geronimo and Toplink/JPA via Eclipse.


    Hudson: an amazingly easy-to-use build server

    I've never used a build or "continuous integration" server before so I've got nothing to compare Hudson to, but I can say this: it's amazingly easy to install and configure. Just drop the hudson.war file in Tomcat's webapps directory or deploy to your favorite app server and start setting up build jobs.

    Hudson can pull from CVS and Subversion. It can run Maven builds, Ant builds and shell scripts. It can publish  javadocs, build artifacts, test reports and RSS feeds. The UI is simple but full of options and with plenty of built-in help. Here are the projects I'm monitoring with Hudson:

     screenshot of hudson
    My Hudson is setup on old (Pentium 450mhz) Linux box and I've got it setup to poll my projects every 30 minutes and do a full rebuild and test on any change. I'm subscribed via RSS, so I'll quickly learn of any failure. Very handy.

    Read more about Hudson at the project's Java.net site and the Aquarium has a nice set of Hudson links.


    JavaOne here I come!

    JavaOne banner 

    I'm very happy to report that my talk was accepted for JavaOne 2007. I'll be giving a thoroughly revamped and updated version of my Beyond Blogging talk (aka Johnson on Feeds), which adds in-depth coverage of ROME and ROME Propono. I'm excited about going to JavaOne again, but I'm also feeling a bit frazzled. I'm swamped with work right now and I've got a stack of deadlines clustered around the March 20 due date for the slides.

    I helped out with the session selection for the web-tier track this year so I can say with some confidence that at least one track is going to rock -- we've got a wonderful set of talks lined up, so don't miss it. The full session schedule isn't online yet, but registration is open.


    Netbeans 6.0 pre-beta first impressions

    When I saw that Tim Bray upgraded to a Netbeans 6 daily-build and it seemed to work OK, I just had to give it a try myself and I'm glad I did. I've been using it for a solid day now and I can tell that it's going to be a vast improvement over 5.5. It's fast. It starts up way faster than 5.5, seems faster overall and shutdown is almost instantaneous. Bravo! What else?

    Tim was impressed by the hip new JRuby support, and I'll give that a try, but right now I'm digging the more routine things, things that I've been missing from Eclipse like multi-file search & replace, local history and a smart editor. The only thing I miss from Eclipse now is this: Netbeans has a nice Ctrl-Shft-O to Go To Type feature and I use it all the time; why can't we have a nice slick Ctrl-Shft-R Go To Resource like Eclipse does?

    Anyhow... NB6 is looking good already, so if you're using 5.5, you might want to take the latest milestone Netbeans 6.0 M7 or one of the dailies for a spin.


    Photophys.com updates

    Dad has posted Chapter 8: How To Make Lenses That Are Good Enough for Photography on his blog. At his request, I added an about page for him with a mug-shot and links to his other books.

    « Previous page | Main | Next page »