Dave Johnson on open web technologies, social software and software development
Sun just open sourced an interesting Java webapp called Slynkr that supports a Digg-like form of social bookmarking and tagging. You can get the source and docs at slynkr.dev.java.net.
Slynkr was developed inside Sun by Jamey Wood and others. The small community that formed around it found it useful and fun and wanted to share it. Slynkr was first deployed externally (and experimentally) at slynkr.sunwarp.net and more recently it was put into production at www.sdnshare.com.
Slynkr has a nice feature set and UI, but under the covers it needs some work. It's only been tested with the Sun app server and Oracle, so it's probably got some "portability" issues. For better or worse, it's got a simple Servlet/JSP and JDBC architecture -- no frameworks or persistence layer yet. Jamey is interested in improving the architecture, making it work on multiple servers and databases and growing a community around the project. So if you're interested, grab the source, join the mailing-list and get in on the ground-floor of an cool new open source project.
Update: check out Jamey's post on Slynkr for some more background.
Dave Johnson in Java
04:05AM May 21, 2007
Comments [1]
Tags:
foss
java
web2.0
As usual, I'm enjoying JavaOne and meeting lots of new people and putting faces to names. I've also been practicing my talk daily so I can give you my best performance, so eat lunch a little early or a little late and come see how it goes. Here are the details:
Dave Johnson in Java
12:27PM May 10, 2007
Comments [0]
Tags:
atom
feeds
java
rss
Dave Johnson in Java
11:32AM Apr 23, 2007
Comments [0]
Tags:
atom
atomprotocol
java
metaweblogapi
rest
rome
romepropono
rss
webservices
Dave Johnson in Roller
11:26AM Apr 23, 2007
Comments [0]
Tags:
blogging
java
jspwiki
roller
wiki
Finally! Roller has graduated to become a top-level Apache project and we've shipped the long awaited Apache Roller 3.1 release. You can find the full announcement on the Roller mailing list and on the Roller project blog and our new top-level site at http://roller.apache.org.
Dave Johnson in Roller
09:53AM Apr 23, 2007
Comments [3]
Tags:
apache
blogging
foss
java
roller
sun
Following up on the APP interop event last week, here are the ROME Propono APP client issues we found:
And here are the Roller APP server issues:
I plan on fixing the Roller issues for this summer's Roller 4.0 release. I won't have time to fix the Propono issues for the upcoming Propono 0.5 release (due this week), so they'll be in 0.6 sometime after JavaOne.
Dave Johnson in Java
03:59PM Apr 22, 2007
Comments [0]
Tags:
app
atom
java
propono
rome
Today is the fifth anniversary of this blog, which I started on April 11, 2002 to promote the Roller blog software that I had just finished writing.
Roller wasn't really ready for deployment at the time, so I started blogging using Userland Radio radio.weblogs.com. You can find my first post on Radio here FIRST POST!!! You can also find the original Roller 0.90 user guide on the old site, complete with screen-shots. A couple of weeks later, my article on Roller was published at OnJava.com and folks started to take notice of Roller.
Now, five years later, Roller has graduated from the Apache Incubator to become Apache Roller, blog-tech is my full-time job at Sun and I'm still Blogging Roller. Thanks to Roller users and contributors everywhere for helping to make this possible.
Dave Johnson in Roller
05:40AM Apr 11, 2007
Comments [5]
Tags:
blogging
java
roller
I'm happy to announce the first release of the ROME subproject Propono. Propono is a ROME-based Java class library that supports publishing protocols, specifically the Atom Publishing Protocol and the legacy MetaWeblog API. Propono includes an Atom client library, an Atom server framework and a Blog client that supports both Atom protocol and the MetaWeblog API.
Here's the project page
http://wiki.java.net/bin/view/Javawsxml/RomePropono
Here's the Propono 0.4 release page:
http://wiki.java.net/bin/view/Javawsxml/RomeProponoRelease04
And here's a link to the API docs, which include details, diagrams and code examples:
https://rome.dev.java.net/apidocs/subprojects/propono/0.4/overview-summary.html
I'll be testing Propono this week and next (at the Google-hosted APP interop meeting) so now is a great time to provide feedback and bug reports. I plan on releasing Propono 0.5 in the *very* near future.
Dave Johnson in Java
11:20AM Apr 10, 2007
Comments [0]
Tags:
app
atom
java
rome
rss
Dave Johnson in Java
01:32PM Apr 04, 2007
Comments [1]
Tags:
atom
feeds
java
javaone
propono
rest
rss
I've really been enjoying Geertjan's blog recently. Lots of interesting details, screenshots and his passion for his work really comes through. His posts on the Netbeans Schliemann generic languages framework and today's Capturing Matisse make me want to drop everything and start hacking Netbeans. And I'm especially happy to see that somebody is interesting in Breathing Life Back into a Dead Coyote (part 1 and part 2), which is currently the main vehicle for Groovy language support in Netbeans -- I'd hate to see Groovy dropped in the mad rush to Ruby.
Dave Johnson in Java
07:01PM Apr 03, 2007
Comments [0]
Tags:
blogging
java
netbeans
sun
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
Dave Johnson in Links
06:42PM Mar 21, 2007
Comments [0]
Tags:
app
atom
java
rest
webservices
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
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.
Dave Johnson in Java
05:20PM Mar 12, 2007
Comments [5]
Tags:
ajax
atom
java
rest
rome
rss
swdp
web20
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.
Dave Johnson in Java
09:33AM Mar 08, 2007
Comments [0]
Tags:
hibernate
java
openjpa
orm
toplink
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:
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.
Dave Johnson in Java
03:08AM Mar 05, 2007
Comments [1]
Tags:
buildsystem
hudson
java
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.
Dave Johnson in Java
04:28PM Mar 02, 2007
Comments [0]
Tags:
atom
java
rss
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.
Dave Johnson in Java
05:21AM Feb 28, 2007
Comments [3]
Tags:
eclipse
java
netbeans
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.
Dave Johnson in Java
05:57AM Feb 15, 2007
Comments [0]
Tags:
blogging
java
vacation
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:
Dave Johnson in Java
05:24AM Feb 14, 2007
Comments [1]
Tags:
java
rest
webservices
« Previous page | Main | Next page »