Posts

grails-jsunit-0.3

I've just released grails-jsunit-0.3 - a plugin which adds jsunit support to grails applications. This release changes the download url for the jsunit binaries to http://internode.dl.sourceforge.net/sourceforge/jsunit/jsunit2.2alpha11.zip, and is upgraded to grails-1.0.3. When you install the plugin, it will download the jsunit binaries from the url above to $GRAILS_HOME/downloads - if it fails, you can manually download it and put it there. Hopefully this release fixes some problems described on the forums . Note though, that I haven't had any luck running jsunit with FireFox 3 - a problem that is referenced here .

Built with AppEngine and Groovy

I've just released http://blogs.morehappydogs.com/ - this is a AppEngine / Groovy blend - the application aggregates blog posts about dogs. If you are interested in dogs, check it out. The web tier is build with AppEngine in Python . AppEngine supplies the database via Datastore. Since you can't run jobs within appengine, I wrote services in Groovy which process the feeds and upload new entries. This groovy code runs as a script on my linux server, scheduled with cron . This approach suits me well, since I'm no Python expert, and I do like groovy. This keeps the appengine (python) minimal and essentially just the web/presentation layer. Using groovy for the backend services means I can use my Java experience and benefit from the productivity of groovy.

grails-selenium-0.5

I've just released a new version (0.5) of the selenium plugin , which fixes compatibility problems with Grails 1.0.3. Hopefully all is well now and I'd like to apologise to all the users out there who ran into problems. If you encounter any more issues, you can email me at paul@javathinking.com. On another note, it would be cool to know how much a plugin is being used. For example, I've got no way of knowing if anyones actually using any of the plugins I've written so its hard to prioritise work. Perhaps we need a download counter to give a rough indication... ?

Displaying dates and times with Oracle

I use SQLDeveloper when interacting with Oracle . When viewing tables with date columns it can be frustrating that the default display does not show time (just day, month and year). To change this behaviour, you can set the date format for your current session: alter session set NLS_DATE_FORMAT='DD-Mon-YYYY HH24:MI:SS' Now, when you view tables or resultsets, you'll have a more precise view of the data: 04-Sep-2008 09:07:51

MyOnlineProfile.net launches

MyOnlineProfile.net  has launched - as a Google  AppEngine  application. MyOnlineProfile lets you catalog your public online profiles in one place - leaving you with just one link to give your friends and one link in your email signature. I first wrote MyOnlineProfile as a  Grails  application - its a small application at the moment, so it didn't take long. However I did over-engineer it. I made the classic mistake of trying to solve the wrong problems and over-optimising. Luckily with being a small application and written with such a productive framework, I'm only talking about wasting hours rather than months. I deployed it to my Linux VPS, but unfortunately,  Java  based applications take up quite a bit of resources just starting up and memory on a VPS costs money (recurring money). So there just wasn't room for it. Hence re-writing it in  Python  for AppEngine. Being exposed to Python has been good for me - and relatively easy sin...

Converting from Flash to AVI

If you want to convert from Flash to AVI (on linux) there is a good script here . It uses mencoder to convert files specified on the command line to XVID or DIVX - files are created using the same filename, but with an avi extension.

Prototype, JSON and Appengine

I am using prototype in a Google Appengine project, and while it worked on my development machine, after deploying it onto the Google infrastructure prototype wasn't parsing the JSON responses anymore. In my code, I was returning the JSON in the response text (as opposed to using X-JSON response header). The Content-Type response header was set as application/json and my javascript code used Ajax.Request() with the parameter evalJSON:true so as to parse the response text. Running locally with the dev_appserver.py everything worked okay. However when running the deployed app, the Content-Type header was no longer being set - meaning that prototype would never parse the response text. I'm not sure why Content-Type doesn't get set when running on the Google infrastructure yet it works on the development server. But, luckily when using Ajax.Request, you can specify evalJSON:'force' so that prototype parses the response regardless of the content-type. Server ajax respons...