Rails, Trails and Naked Objects

Been watching presentations and demonstrations of Rails and Trails. Bookmarks online http://del.icio.us/cpjobling. Rails is a rapid web application development framework that makes developing CRUD interfaces a snap. It is based on the Active Record pattern, is written in Ruby and has a set of smart classes that automates initial view generation and the controller. By default, the model is essentially an active record. Trails is a Java framework inspired by Rails that leverages Hibernate, Tapestry and Spring to provide similar functionality. The whole thing has some synergy with Naked Objects. Could be a good basis for EG-358 and there’s a nice little spring-break project here I think.

Better than blogging

I saw an article on this “coomunity bookmarking” site some time ago (in Thursday Guardian OnLine supplement I think) and signed up. Didn’t quite get it at the time, but today I read another Guardian OnLine article and I saw Jon Udell’s screencast. Now I think I start to understand. It’s a better way to do the kind of “link blogging” that I want to do when I haven’t got the time to write a more detailed entry. It’s very similar and probably more powerful than the “clip this” feature in Bloglines. I’ve been creating delicious bookmarks for the last couple of hours and eally enjoying myself. So much so that my RSS feed (http://del.icio.us/cpjobling is now on my blogroll.

NetBeans 4.0 Evaluation and JavaPolis presentations to check out

Just watched Tim Boudreau’s JavaPolis presentation/demo of Netbeans 4.0. Looks good and worth a look over the weekend. I’m keen to try out the much discussed Eclipse project import feature and the mobile application developer tools which, if they work, will give me something more concrete to put into my final Software Applications lectures on “Embedded Systems”.

<

p>The last time I used Netbeans, I was put off by the fact that it came with it’s own copy of the JDK (which I already had) so it was a bit of a disk hog for no good reason; Mounting a CVS repository only worked if you had a CVS client installed and Ant was not as well integrated. Eclipse worked with whatever JDK I had installed, CVS and Ant “worked out of the box” and so I just got more productive quicker in Eclipse. Things may have changed now. In Netbeans 4.0 Ant is the project file, J2SE 5.0 support is built-in (Eclipse is behind the curve on that one, the compiler works fine, but the code editors can’t parse the new syntax features!) and hopefully CVS now works without extra tools.

<

p>From an educational use perspective, I’ve had some sucess using Eclipse to drive an agile software development project with 21 student developers all working on the same code base. However, I started to get problems when I bolted on Maven to get the nice project reports I’ll need to assess my students’ work. Maven needed “bog-standard” SSH access to the CVS repository. Eclipse’s variation cvs -d:extssh:... checkout crippled Maven builds, using cvs -d:ext:... checkout crippled Eclipse! There’s a work-around, but it’s a pain! Eclipse’s other big drawback is that iit’s a great Java code developer but to make it a great GUI developer or a great J2EE or J2ME app developer, you need to download loads of extra plugins. I want my students to have easy access to these tools, not to have to jump through hoops. Furthermore, getting all this stuff on the network at my University is a big problem if installation is more complex than double click on the *.msi file!

<

p>It’s clear that I’ve talked myself into some enthusiasm for this trial. I’ll blog some notes as I go to to report my findings.

Two Busses

There’s a complaint in Britain that if you are waiting for a bus, you’ll be waiting for a long time, then two will come along at once! On Wednesday this week, I was burning the midnight oil trying to beg, borrow and steal some examples of realistic Groovlets (servlets in Grrovy) for my final lecture on Scripting Languages in which I wanted to cover web applications. Not one example in all the articles I read on the groovy home site could tell me how to actually get the parameters of a HTTP request as a map (I found out from the javax.servlet APIs eventually) which I knew how to do in Python and Perl! And there was really nothing more substantial than an HelloWorld servlet anywhere to be found! Then, at home, the evening after delivering my less-than-ideal lecture, I find that Andrew Glover has published his latest <Practically Groovy article (Go server-side up, with Groovy, published 15th March)and it covers Groovlets, GSP and database integration! Jusat what I, and I guess the Groovy community, needed! Next year, I’ll try to be at the bus stop a bit earlier!

Dynamic Languages on the JVM

Another great presentation from last year’s JavaPolis, Tim Bray, inventor of XML, discusses dynamic languages and their relationship to Java.

One of the earliest discussions on the topic of scripting languages and their potential to make a revolutionary impact on software development was, I believe, first mooted by Johm Oosterhout, the inventor of TCL, in IEEE Computer Magazine back in 1998 [1]. Tim Bray makes an updated case for using scripting (or dynamic) languages on the Java platform for many of the same reasons originally cited by Oosterhout. Back in August last year, Tim invited several luminaries in the scripting world down to a “Dyamic Languages summit” at Sun HQ [report and link to other writings on this subject] and he reported some of the outcomes of the meeting during his talk. I read Tim’s report on the summit at the time, and I’m sure it partly influenced my decision to have another look at Groovy. (Groovy became part of my Software Applications course this year mainly because of its similarity to Java. I have to say though that it proved quite painful to convert my examples from Python/Jython into Groovy and to find good examples of some of the groovier applications of groovy, but this is a documentation issue!)


[1] John K. Oosterhout, Scripting: higher level programming for the 21st Century, Computer, March 1998; 31(3): 23-30. Available on-line at: http://home.pacbell.net/ouster/scripting.html

Easter Break

Here in the UK, Universities typically send students off on holiday for the four weeks around the period in March-April when Easter falls. At the University of Wales Swansea (or Swansea University as it prefers to call itself [for marketing purposes)]) our Easter break is right in the middle of the teaching period. There are still three weeks of lecturing to go after Easter, and quite a lot of course preparation, marking, exam setting, course reviews and other admin stuff, but nonetheless it’s still a period for taking a breather, catching up on interesting stuff and adding stuff to this Blog. I started a day or two early having discovered via a Blog entry (forget whose, sorry!) that JavaLobby.com had recorded most of the presentations from last year’s JavaPolis conference keynotes, presentations and demos and made them available free and on demand with a streaming audio soundtrack. There’s lots to keep me entertained.

Already I’ve watched:

  • Dion Almaer and James Strachan’s “Pragmatic Groovy” presentation which is very relevant as I stole great chunks of this very PowerPoint presentation (which you’ll find on-line in the articles collection at groovy.codehaus.org/Articles) and used them in a set of lectures on Groovy which I’ve just completed in the “introduction to scripting languages” part of my Software Applications course.
  • Vincent Massol’s presentation and demo of Maven. Also highly relevant as I used Maven to create the project web site for this year’s Software Applications Project. And it’s really great (if only I could get ViewCVS to show me the repository!).

I also started to watch Erich Gamma’s presentation on Eclipse and am about to watch Tim Bray’s keynote on dynamic languages for Java. Check back for more!