r. alexander milowski, geek

Journal / 2 1

WebKit MathML is Progressing

I've been able to make some progress getting MathML into the trunk of WebKit. You can see from the master MathML Bug that there are only a few patches that aren't in the trunk. In fact, 33703 doesn't count because it is a union of other patches for others who want to play and is now almost obsolete.

Just mfrac, mroot, and msqrt to go and we'll have a some basic MathML that is usable. There is, of course, quite a bit more to do.

Using contenteditable in Atomojo's Editor

I just added the use of WYSIWIG editing to the content editor for entries with XHTML content. The contenteditable='true' is really simple and works very well in browsers like Safari or Firefox. Given that I only use non-broken browsers to edit my feeds, this will work well.

Web-based Editor for Atomojo

I just finished a web-based editor for the Atom Publishing Protocol that is part of Atomojo. I've also integrated it with the Atomojo server. You can now just add the edit-client='true' attribute to any host or resource declaration in your server.conf and it will configure the editor on the /edit/ path of your server.

slow & painful

Reconstructing my website from the raw data is a slow and painful process. *sigh*

Restlet is Awesome!

Restlet is really an amazing project. It is so easy to create a REST-oriented service.

For example, here's an example of a hello world service:

public class HelloWorld extends Application {
public HelloWorld(Context context) {
super(context);
}

public Restlet createRoot() {
Router router = new Router(getContext());

router.attach("/hello",new Restlet(getContext()) {
public void handle(Request request, Response response) {
response.setStatus(Status.SUCCESS_OK);
response.setEntity(new StringRepresentation("Hello World!",MediaType.TEXT_PLAIN);
}
});

router.attach("/goodbye",new Restlet(getContext()) {
public void handle(Request request, Response response) {
response.setStatus(Status.SUCCESS_OK);
response.setEntity(new StringRepresentation("Goodbye Cruel World!",MediaType.TEXT_PLAIN);
}
});
       return router; 
   }
}

Here we have an application that responds to two resource paths: "/hello" and "/goodbye". Each is is associated by attaching a "restlet" to a router.

Now, we could get more complicated and handle the requests more elegantly, but the above demonstrates how easy it is to route requests to instances that can handle them.