8 Aug 2006

by Noel

XML-RPC 1.2

Things are rolling along on our XML-RPC library for PLT Scheme. At this point, the client is stable and well tested, and both the servlet and Apache CGI server implementations work and are poorly tested. However, one or two people were asking to make use of the server-side code, so we’ve made it available. Caveat developer.

Implementing an XML-RPC servlet is really quite straight-forward:

(require (planet "xmlrpc-servlet.ss"
("schematics" "xmlrpc.plt" 1 2)))

(define (add x y) (+ x y))
(add-handler 'math.add add)

(handle-xmlrpc-requests)

Dropping this code somewhere under the ‘/servlets’ directory should get you going. I’m still unhappy with the current state of the CGI code:

#!/path/to/mzscheme -gqr
(require (lib "config.ss" "planet"))
(PLANET-DIR "/tmp/PLaneTWeb/dir")
(CACHE-DIR "/tmp/PLaneTWeb/cache")
(LINKAGE-FILE "/tmp/PLaneTWeb/linkage")
(LOG-FILE #f)

(require (planet "xmlrpc-cgi.ss"
("schematics" "xmlrpc.plt" 1 2)))

(add-handler 'add (lambda (a b) (+ a b)))

(output-http-headers)

(handle-xmlrpc-requests)

I imagine we’ll absorb the output-http-headers into the handle-xmlrpc-requests macro, and I really want to do something to improve the state of affairs w.r.t. PLaneT package handling in the CGI environment. As I said above: the server code in the library is in motion, and it will likely change.

As an aside, I expect stress-testing the server-side code will be interesting; Noel suggested using Ethereal to record interactions between clients (in other languages) and our server implementations, and then replay those interactions in SchemeUnit unit tests. A neat idea, and not something I had thought of.

Posted in Code, Web development | Comments Off on XML-RPC 1.2

2 Aug 2006

by Noel

Geektool, ‘remind’, and a little bit of Scheme

Geektool takes shell commands and lets OSX geeks overlay their output on the desktop. (It does more than that, actually… it’s really quite awesome.)

Remind is a powerful, command-line based reminder app and calendar generator (helpful wiki).

I’ve been pushing on Snooze lately, our imminently-releasable persistence layer for PLT Scheme. I thought to myself: “How quickly could I knock up a GTD DB using Snooze?”

Turns out, not more than an hour or so to get something rolling. Now, I have a simple command-line GTD interface that uses Snooze for persistence, remind for rendering of content, and Geektool for rendering things to my desktop.

The lower-left portion of my desktop has a six week calendar overlaid, and above is an eight week calendar with a condensed list of the same information.

I’ll publish the GTD interface when I’ve had a chance to work with it for a while. For now, I suspect it will evolve as I decide how I like working with it best.

Posted in Fun | Comments Off on Geektool, ‘remind’, and a little bit of Scheme

27 Jul 2006

by Noel

Paul Graham: Digg vs Reddit

Paul Graham (an investor in Reddit) writes that it appears Digg are removing from their home page stories about Reddit. I don’t really have much to say about this, other than it is very shoddy practice if true, and another interesting point to add to my previous post on Digg and Reddit.

Posted in Business | Comments Off on Paul Graham: Digg vs Reddit

20 Jul 2006

by Noel

Hiding Complexity and the Expert User

37signals are developing a calendar application. Watch the demo and you’ll see appointments are entered as natural language (for example “3pm Dentist”). Compared to Yahoo’s calendar it lookspretty simple.

Think about it a bit more and you’ll realise the complexity is still there, just hidden behind a different interface. The GUI represents all the options graphically. The text box hides the options in the murky workings of the parser. 37signal’s example never shows what happens if you enter text the application doesn’t understand. For example, what happens if I write “Appointment with Dentist at 3pm”? Done badly it will be like those early Sierra games where half the challenge was discovering the words the program understood. Not a lot of fun, at least when you’re trying to enter your Dentist appointment rather than save a princess.

Now if the grammar is quite restricted it should be relatively easy to code up a bit of Javascript to prompt the user with correct words, like most IDEs do for programmers. Get this to work well and I think it will be a very nice interface. GUI interfaces have a shallow learning curve, but are slow to use. Textual interfaces are the reverse: they favour the expert over the beginner, by being fast to use but difficult to learn. Add prompting to the textual interface and perhaps the end result will be the best of both worlds.

Note that there are other ways to solve this problem. Circle menusare a relatively unknown GUI device that allow faster input than traditional pull-down menus. I’m sure there are other innovative ideas out there. It is possible to create interfaces for complex tasks that suit both the beginner and expert alike.

Posted in Design | Comments Off on Hiding Complexity and the Expert User

20 Jul 2006

by Noel

Martin Fowler on Meetings

There’s no better way to fill an empty day at the office than by calling a meeting. If, on the other hand, you want to actually get some work done, but still have to communicate with other people, Martin Fowler has some great tips on how to run more effective meetings. Summary: keep them short and to the point.

Posted in Business | Comments Off on Martin Fowler on Meetings

16 Jul 2006

by Noel

Doctor Jadud is in the house!

Congratulations to Dr Matt Jadud who passed his viva on Friday!

Posted in Fun | Comments Off on Doctor Jadud is in the house!

14 Jul 2006

by Noel

Unaccustomed as I am to Public Speaking

If you happen to be in Birmingham on the 18th I’m presenting our current ideas on web development as part of the School of Computer Science’s Cake Talk series. The abstract is below. If you intend to attend follow the link for location and time. My slides will go up after the talk.

Functional Programming and the Web

Continuations, functional reactive programming, and
bidirectional programming. A random walk down
Lambda the Ultimate or the next Big Thing in web
development? In the long and glorious tradition of Cake
Talks I will present some half-baked ideas that argue for
the later interpretation. Turn up and decide for yourself.

Posted in Web development | Comments Off on Unaccustomed as I am to Public Speaking

12 Jul 2006

by Noel

Unlib unchained

We’re pleased to announce the release of Unlib, a library of utility functions. Like most PLT Scheme libraries it is available from PLaneT. You can also track development via our Subversion server. For now the URL is https://ssl.untyped.com/svn/repos/untyped.com/unlib/ so you can checkout the code like this:

svn checkout https://ssl.untyped.com/svn/repos/untyped.com/unlib/trunk unlib

It’s mostly Dave G’s work, so congratulations to Dave! (And extra congratulation to Dave G who graduated yesterday with a PhD in Computer Science!!)

Posted in Racket, Web development | Comments Off on Unlib unchained

11 Jul 2006

by Noel

Pollground

Pollground has a good concept that definitely has a market somewhere, but I’m not sure their implementation is ideal. Psychologists, for example, are big users of online surveys. They would pay for better tools to generate and score their surveys. It looks like Pollground are going the ‘on-line billboard’ route, intending to rely on advertising, but it is really too early to say what their strategy is.

One problem with online surveys — it is open to abuse. To their credit Pollground haven’t yanked it (yet). Cover-ups never work on the Internet.

Posted in Business | Comments Off on Pollground

14 Jun 2006

by Noel

When It Rains It Pours

Yesterday we though we were about to go live on our biggest application yet. The code has been installed on the client’s server, it has been tested, and we think it’s all ready to go. Then is starts raining down in London. You wouldn’t think rain in Britain would be any big deal, but not so. Somehow the rain finds its way through a couple of storeys of building into the client’s server room, and yes, drenches our server. Then the power goes out. Net result is a server that won’t boot up when it finally dries out. Luckily Dave happens to be going down that way, and so finds himself in London installing the software on a spare machine the client had. We think we’ll still make the Thursday lauch date, but only just.

Posted in Business | Comments Off on When It Rains It Pours