All posts by Nick Lothian

Shipping software part 2

In shipping software I spoke briefly about me.edu.au (which is still taking a good amount of my time). Recently, though I’ve been spending a lot of time preparing education.au’s Java based federated search product (the Distributed Search ManagerOpenDSM) for release as an open source product. That’s been an interesting experience – the code is pretty old, and was glued together using static references. I had to pull it part, replace the static references with factories (changing to dependency injection wasn’t realistic for this release at least) and put it back together. It’s kind of odd working on a project like that – the code almost causes me pain at times, but with a product that is stable and reliable I don’t want to make too many changes just because I don’t like the style.

Some readers of this blog may be interested in it, because it allows federating of results from multiple Solr servers (or OpenSearch services) together into a single result set. That’s useful in quite a large set of places.

It’s also the first time I’ve been paid to create open source code as an explicit goal – most of my open source work has been for pragmatic reasons, not as a goal in itself.

Random stuff

It’s Friday afternoon, so here’s some random stuff:

  • We live across the road from a park, and most Saturday mornings some guy rides his bike there to do Yoga. He also brings his pet chicken to the park and lets it run around. (This might be normal behavior in San Fransisco or somewhere, but in suburban Adelaide it is kinda odd)
  • Alex is now 2, and doesn’t like sleeping at childcare. Fortunately, they have figured out that letting him sleep with a ladder (yes, a full size, aluminum ladder) will calm him down and get him to sleep.
  • Paul Keating – no matter if you loved him or hated him – had a unique way with words. From yesterday’s Financial Review: “When push came to shove, McGuiness’s journalism did not add up to a row of beans. He help more political, philosophic and economic positions than would have the Karma Sutra had it been a philosophic text“.
  • If you don’t program, and you write about the meaning of programming APIs then your opinion is moot. This also applies if you try and talk about APIs
  • The Moth is a cool boat, but has come a long way since my circa-1970 tunnel hulled version. It’s kind of weird that they banned tunnel hulls, but freaking hydrofoils are okay…

Run your web code from your IDE

Many Java developers complain about the length of time it takes to deploy their webapps for development, or to start the embedded WebTools server in Eclipse, or to use the mvn jetty:run process with Maven.

At work, we’ve created a solution using class which starts up Jetty and gets it to serve your webapp from within the IDE. This means you have start up times of seconds, and can debug without using remote debugging.

Happily, we’ve been able to open source this, too, so people can try it for themselves rather than just here me talk about it.

The source code is here, but you are probably better off using Maven, adding the following repository to your pom.xml:


<repository>
<id>EdAuUtil</id>
<url>http://maven.uat.educationau.edu.au/EdAuUtil</url>
</repository>

and adding the following dependencies:

<dependency>
<groupId>au.edu.educationau.opensource</groupId>
<artifactId>EdAuUtils</artifactId>
<version>0.9</version>
</dependency>

<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>6.1.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>6.1.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>jasper</artifactId>
<version>6.0.13</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-ant</artifactId>
<version>0.8</version>
<scope>test</scope>
</dependency>

Then you can run the class au.edu.educationau.opensource.devsupport.TestWebServer from your IDE. I need to generate the javadocs and put them up somewhere, but for the moment the code is reasonably well documented.

Predictions for 2008

So it turns out that it’s 2008 and the thing to do is to do predictions for the next year. Here’s my 2:

  1. Facebook will have a huge leak of personal private information. It will turn out to be due to buggy code, which will finally focus some attention on the fact that Facebook’s codebase appears to be really, really bad.
  2. Someone will realize that recommendations are the next search. Some company will work out how to do for recommendations what Google did for search: ie, take what is currently an overly commercial medium (eg, Amazon recommendations etc) and turn it into a consumer facing tool which is generally useful. By 2010 what they did will seem obvious, and by 2011 they will be billionaires.

Update – 1 more thing:

OpenSocial will succeed in a big way – not because of support from the big players (Google etc) but because lots of small open source web projects (WordPress, Drupal, Joomla etc) can easily add support and will finally have a standard way of creating cross-platform compatible software.

Shipping software

http://me.edu.au/p/nlothian

Custom vertical social network, with feed integration (kind of like the Facebook activity stream, but driven by RSS), communities and single-sign on across a number of other applications.

Open Social support coming soon. I should do a post on how the open source implementation of that works. For the time being, though, this is all the code you need to show a Google Gadget into your app:

<c:import url=”/ifr”>
<c:param name=”url”>http://www.labpixies.com/campaigns/todo/todo.xml</c:param>
</c:import>

The Napster (Grockster?) of Facebook

IANAL, but how can Audibie possibly be legal? Since the doctrine of inducement appeared (ref Grockster) I can’t see how the DCMA safe-harbor provisions would save them. Perhaps they are relying on the fact that they don’t host the files themselves – although that didn’t save Grockster or Napster.

It’s interesting to think what Facebook’s liability would be over an application like this. Facebook have a currently have a copyright policy which passes responsibility for DMCA takedown requests onto the application author. Audibie have posted their takedown procedures, in accordance with the DCMA.

If I was Facebook I’d be pretty worried that might not be enough.