Monday, 17 December 2007

Lightroom, CouchDB, and Amazon SimpleDB

As I was looking for resources about Lightroom, I wanted to quickly find Tim Bray's entries on the software so I Googled "lightroom bray" and came up with some unexpected results. Unexpected only because I didn't think that a reference to Tim's log would rank higher than the original. In any case, the read was interesting, but then I noticed the author's recent blog entries:

CouchDB
Amazon SimpleDB

I followed the link to What You Need To Know About Amazon SimpleDB that led me to the Amazon SimpleDB Home Page, which is more accessible than the Developer's guide.

Tuesday, 6 November 2007

Tab sweep

“Welcome to dork talk” by Stephen Fry
Sun SPARC Enterprise T5120 Server - the look of machines to come?
Impact of social data visualization: Fernanda Viégas blogging at Infovis'07
Skim - a great PDF viewer
Scratch - worth looking at again
Publications from the Visual Communication Lab
GUESS - The Graph Exploration System
Bernie Hogan Ph.D. student, Netlab (Barry Wellman) Egotistics

Friday, 28 September 2007

New office

Today I moved into my new office (same job, just a new office), which has a swank view:

Friday, 3 August 2007

Better GWT-Tomcat-Eclipse tips

See Xebia's blog entry (reproduced here, in case it goes away):


Using Google Web Toolkit with Eclipse WTP
Posted by Marco Mulder in the late afternoon: August 17, 2006

I am writing a GWT application and want to test this application both in the GWT shell and in Tomcat. The application uses different Eclipse projects for the GWT UI and for the business service layer.

I found out that this can easily be done if you use an Eclipse WTP dynamic web project instead of the standard Java project that is created by the GWT projectCreator.

Using a dynamic web project has the following advantages:

* It is possible to use external jars and other Eclipse projects from services that are implemented with the RemoteServiceServlet.
* It is easy to test the 'compiled' JavaScript version in tomcat without having to create and deploy a war file.
* It is easy to export a war file that can be deployed in any application server.

There is an Eclipse plugin for using GWT with WTP: Googlipse . However, this plugin does not (yet) support launching the 'compiled' JavaScript application. I will outline the steps that allow you to launch the JavaScript version of a GWT application in WTP.

How to create a GWT application in a dynamic web project

The recipe to create a GWT application in a dynamic web project is as follows:

* Create a dynamic Web project MyProject in Eclipse WTP
* Use GWT projectCreator without overwriting the .project and .classpath files:projectCreator.cmd -ignore -eclipse MyProject
* Use GWT applicationCreator to create a GWT application:applicationCreator.cmd -eclipse MyProject com.mycompany.client.MyApplication
* Add gwt-user.jar and junit.jar to the .classpath file:


* Search and replace "www" to "WebContent" in MyApplication.launch, MyApplication-compile.cmd and MyApplication-shell.cmd
* Copy gwt-servlet.jar to WebContent/WEB-INF/lib

Testing the application

You can use the generated launch configuration to test the application from the GWT shell. The WTP tooling ensures that libraries that are used by the web project will be on the classpath.

To test the 'compiled' JavaScript application:

* Compile Java source into JavaScript using MyApplication-compile.cmd
* Select "Run as --> Run on Server" from the context menu of MyProject
* Open a browser on the URL of the application:
http://localhost:8080/MyProject/com.mycompany.MyApplication/MyApplication.html

Implementing and invoking a service

To invoke a service in a way that works both in the GWT shell and in the ‘compiled’ JavaScript application, you have to use GWT.getModuleBaseURL() when setting the endpoint.

For example, if you implement a service “myservice” in package com.mycompany.server.MyServiceImpl:

* Use GWT.getModuleBaseURL() in the serviceEntryPoint:endpoint.setServiceEntryPoint(GWT.getModuleBaseURL() + "myservice");
* Specify the full path in MyApplication.gwt.xml:
/com.mycompany.MyApplication/myservice" class="com.mycompany.server.MyServiceImpl">
* Specify the path also in WebContent/WEB-INF/web.xml:


MyService
com.mycompany.server.MyServiceImpl


MyService
/com.mycompany.MyApplication/myservice

Friday, 22 June 2007

Visualization and Aesthetics Research

There is a quick summary of three nice papers at Visualization and Aesthetics Research. This brought to me via Google Alerts.

Thursday, 21 June 2007

Polite error messages

So while I'm trying to access one of my Google docs, this is what I get. That's such nice phrasing!

Wednesday, 20 June 2007

Google Web Toolkit (GWT)

While I'm backing up my laptop's hard drive, in preparation for reformatting the bloody thing due to a problem with an "invalid node structure", I thought I'd write up some notes on my foray into GWT.

I was intrigued by the idea of using Java to generate maintainable JavaScript. I'm convinced that the level of interactivity that AJAX affords is totally adequate for much of what I want to do. I'm really not a big fan of JavaScript, though.

So I downloaded the GWT and looked through the samples. I found Chapter 10 of the GWT book from Manning really quite helpful in guiding me through setting up an RPC.

I had some trouble setting up Eclipse to export the war file for deployment on Tomcat. Apparently many other people have too. In the end, I used some ideas from Chad Bourke (via the GWT Developer Forum but wound up doing something like

cd Semantics2
./Semantics2-compile
ant -f semantics2.ant.xml package
cp semantics2.jar www/org.ikit.Semantics2/WEB-INF/lib/
cd www/org.ikit.server
zip -r ../../Semantics2.war .
scp ../../Semantics2.war remote.server:/path/to/tomcat/webapps



In all, it seems that it's quite possible to extend Knowledge Forum by setting up an RPC service that talks to the ZTB API and then serializes the necessary bits to send across the wire to the client. It seems reasonably fast, too.

Sunday, 17 June 2007

About this blog

Odd, really, to have my "about" message be the second entry in my blog. I guess the previous entry was just a test post to see how blogger works. So what's this blog about? It's about my life as it unfolds, right now. Which means there are multiple threads: work (as in the stuff I'm paid to do, but which has a tendency to spill over into other parts of my life), home (being a dad, spouse, and friend), school (a unfortunate term for my doctoral work), and cycling (a recently re-found passion). I envy people who can neatly compartmentalize their lives into separate worlds. I have no such skill, and so things messily cross over from one realm to another. Anyway, this is the story of my life.

Tuesday, 24 April 2007

Periodic Table of Visualization Methods

I found, via Cool Tools a Periodic Table of Visualization Methods. Very cool. This posting is also an experiment in trying to keep my stuff in yet another form.