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.

Raleigh Bloggers meetup Wednesday (change of time & venue)

We've decided to change the time and place of our Raleigh Bloggers meet-up. Too many folks complained about Tuesday night, so we've moved to the 2nd and 4th Wednesdays of each month. Now we'll find out if "Tuesday's not good for me" was just an excuse to avoid hanging with the tech/geek patrol. And we've moved from crowded and loud Helios Coffee to the quiet Raleigh Times Bar (yeah, right). I mean, if nobody's gonna show up we might as well drink, no?

When: Second and Fourth Wednesdays of every month at 6:30PM

Where: The Raleigh Times Bar (Map)

14 E Hargett St
Raleigh, NC 27601
919.833.0999

Latest links


Status, CC: world

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.

Other blogging

I've been slacking off with the blogging this week, but there's some other Johnson blogging going on. Dad's enjoying his Photophys blog and getting good feedback on the draft chapters of his book. He's posted the first seven chapters now. By the way, my multi-domain hack seems to be working pretty well -- photophys.com is hosted on the same Roller instance as this site rollerweblogger.org.

And brother Dan is keeping the blogging going at Film Babble blog. Check out his Oscar predictions. He's also writing at Helium.com and up to 119 posts there, each a mini movie or music review. 


Re: javax.ws.rest

I've been updating my javax.ws.rest post with links to blogs about JSR 311: Java (TM) API for RESTful Web Services. I went from a couple to nine links today and I'll probably keep on linking, but I'm about to go quiet for couple of days. It's wiki mountain weekend time again.

 N.C. mountain house with snow


javax.ws.rest

That's big news. A standard Java API is coming for building REST based web services. If you're an expert in REST, you can participate in it's development by signing up for the expert group. Apache, BEA, Google and Jerome Louvel (the RESTlet guy) are on-board. Here's the intro from the JSR:

JSR 311: Java (TM) API for RESTful Web Services: This API will enable developers to rapidly build Web applications in Java that are characteristic of the best designed parts of the Web. This JSR will develop an API for providing REST(Representational State Transfer - See reference to Roy Fielding's dissertation in section 3.1) support in the Java Platform. Lightweight, RESTful approaches are emerging as a popular alternative to SOAP-based technologies for deployment of services on the internet. Currently, building RESTful Web services using the Java Platform is significantly more complex than building SOAP-based services and requires using low-level APIs like Servlets or the dynamic JAX-WS APIs. Correct implementation requires a high level of HTTP knowledge on the developer's part.

This JSR will aim to provide a high level easy-to use API for developers to write RESTful web services independent of the underlying technology and will allow these services to run on top of the Java EE or the Java SE platforms. The expert group will investigate whether a subset of the API can be made used with Java ME. The goal of this JSR is to provide an easy to use, declarative style of programming using annotations for developers to write REST ful Web Services and also enable low level access in cases where needed by the application.

RESTful Web Services is a relatively new area in the industry and there are still a lot of unknowns in this space. For example, a key aspect of RESTful Web Services is for the service to be stateless. However, this often requires the developer to produce boiler-plate state restoration code that could be avoided with state-aware API help. We expect the expert group to be an active and engaged group of people participating to prioritize and help drive issues to achieve the end goal of a developer friendly API.

Here are a couple more links about the new JSR:

  • Elliote Rusty Harold is not exactly positive, saying "this is like asking Karl Rove and Dick Cheney to write the Democratic Party platform" but concludes with a call for participation: "are there any JSR members here who might join the working group and bring some sanity and actual REST experience to the development of the eventual specification?"
  • Jerome Louvel explains the idea of REST annotations and explains that implementations will be possible with JAX-WS, Servlet API or Restlet API.
  • Dan Diephouse says "This is excellent news - I’m glad to see people are thinking more seriously about RESTful services on Java" and "Expert group members may be interested in checking out the previous work I’ve done on Java REST annotations"
  • Brian McAllister: says the JSR sounds like another case where "reasonably good developers trying to design software for presumed-incompetent developers which will in fact be used unhappily by basically competent developers."
  • Mark Hadley addresses some of the concerns raised above and provides an interesting code example showing the REST annotations in action.
  • Pete Lacey: "Initial thoughts: 1) Cool! 2) The servlet API is not ideal, this is needed. 3) I hope they don’t screw it up (see JAX-WS)."
  • Steve Loughran: "I don't have the faintest clue what a REST API should look like, except that it must not look like JAX-RPC/JAX-WS"
  • InfoQ thread: summary of news and three comments as of Thursday
  • Paul Sandoz: "I have been wanting to work on such an API and implementation for about 5 years! [...] Now the Web zeitgeist is back and so are we :-)"

Redmonk on Roller, Covalent and IBM

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.


Photography: Appreciation through Understanding

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...


Atom protocol powered Blogging Portlet

Jeffrey Blattman has put together a new Portlet that makes it possible to blog via Atom Publishing Protocol (APP) from a portal page. He's added it to the Open Source Portlet Repository on Java.net so you can try it out against your favorite APP server.

Heart of Gold

And before I leave the topic of movies I'll mention this; recently I've been enjoying Neil Young's Heart of Gold, an absolutely wonderful concert film of and documentary about the debut of Neil's Prairie Wind album last year. See also, my brother Dan's brief review of the film over at Helium.com.


Jesus Camp

It's been in my Netflix queue for a long time and it finally arrived this week. Jesus Camp (see also Wikipedia, IMDB) is a documentary about an evangelical Christian bible camp that indoctrinates children with far right-wing and anti-science teachings. It's an excellent documentary and well worth seeing if you want to understand what's going on in the deep red areas of the USA. It's truly scary stuff, but church folk aren't all like that -- check out Evolution Sunday coming this weekend to a pulpit near you.

Covalent announces support for Roller

Somehow I missed the Jan. 22, 2007 announcement, which was made on Covalent's Roller-based blog. According to the announcement, Covalent will support Roller, eleven other Apache and Spring on a "per incident basis."

Configuring Roller with OpenDS

Trey Drake explains what you have to do to get Roller 3.x working with OpenDS. He's right, its a kludgey process and I hope we can improve it. The bug he mentions "after registration the user must close and re-open the browser" will be fixed in Roller 3.1 which is just about ready for release.

Yahoo Pipes: RSS/Atom feed re-mixer

I can't get to pipes.yahoo.com (due to heavy web traffic I assume) so I haven't had a chance to check it out myself, but Pipes sounds pretty amazing. According to Yahoo's Jeremy Zawodny:

Pipes is a hosted service that lets you remix feeds and create new data mashups in a visual programming environment. The name of the service pays tribute to Unix pipes, which let programmers do astonishingly clever things by making it easy to chain simple utilities together on the command line.

Jeremy also posted a list of the blogs that are covering Pipes and every one that I read is a rave review. Tim O'Reilly calls it a "milestone in the history of the internet." Apparently, I'm not the only one who wants to put feed creation, aggregation and filtering tools in the hands of ordinary folks and not just developers ;-) Everybody seems to think this is a great idea and Yahoo appears to have executed it very well, so it will be interesting to see how well it works and how it is put to use.

Niall Kennedy and Anil Dash both posted a screen-shots of the Pipes UI, here's one from Niall's blog:

Screenshot of Yahoo Pipes

Cool stuff.

A possibly related side-note: ROME co-founder Alejandro Abdelnur now works for Yahoo. 

« Previous page | Main | Next page »