Wednesday, February 07, 2007

Paucity of updates ...

For quite sometime now, I have not been keeping by blogs updated. Here, my work blog and the blog at work.
And when I do update things here, it is just to drop a line or push some link ...
I was tempted to call it the 007 effect, but considering it started earlier - I cant use that tag :-P

Essentially it is a combination of work becoming really interesting (and so a bit too hectic), and some really interesting projects I am doing in my free time.
Cant discuss much about work - except to say that we are trying out some really interesting stuff on the server :-)
In my freetime, I am currently doing two things primarily ... a webserver and a chess engine (yet again :-P).

I was at home this december during Christmas for two weeks, and by the second week I was bored ... The webserver was a result of that: spent the second week hacking at my sisters laptop to write the initial NIO based code.
It was essentially an expiriment to see how efficient I can make a webserver in java and to rethink on async IO ... whether I can reuse any ideas for our server at the end of it (yep, there are things I am reusing btw :-) ).
Ever since I joined Sun, I have been associated with HTTP in one way or the other - and so it is not surprising that this expiriment pretty soon became a slightly more interesting effort.
Though there are about 30 points still left in my todo list before I can claim complete conformence with 2616, in most cases the things left out are just optional features.
The initial idea was just to serve static pages, no dynamic content - that was easy :and no, I am not using mmap'ing stuff, etc to make the actual file IO performent - I am interested in the server performance w.r.t network IO & overall design, not performance of a specific spi impl.
Then I dabbled with making it support the servlet spec : but the 'heavy duty' nature of the spec, coupled with the non scalable approach w.r.t thread usage made me ditch that idea - no offence to the designers of that spec, but the design principals there just do not match mine : I just dont want to encourage the pattern on one thread blocking until the client code returns ! I was not writing a general purpose server - a specialised server with performance & throughput in mind for people who want to leverage that :-)
Next was to use it as a webdav server to try this idea out (well what is mentioned by Jean-Louis Seguineau in the comments on how to use webdav actually).
The webdav idea still stands ... but in the meantime, I modelled an async IO based api for content developers (nope, no one else has used this server to date) who want to use the server essentially as an http infrastructure - and surprisingly, I did not have too much trouble porting an old servlet I had written into this new one.
The best part was, it was not as disruptive as I believed it would be : though I guess I am used to thinking this way (async notifications, event handlers, etc) which is not the case for most people I guess .....
Also, extended this to support and enable comet apps to use the server as infrastructure - though I dont have any apps which use this yet.
Once both of these were done, suddenly I have a server which is designed to support and scales really well for both long poll & comet apps ! (the usual paradigms for async notifications to client in ajax apps).
Should be interesting to see how it actually performs with a real world app (I do plan to port something I wrote for work as an expiriment - though that would remain confidential code).
I am yet to decide what I will do with this server, but for now it remains private with access to none :-)

The chess engine was started ... god knows why, I just love writing one :-P
The main expiriments this time are in evaluation, qsearch and move ordering. I am also using move ordering & static position analysis data to try out some pruning ideas ... so far it seems to be doing quite well. But as usual, unless I actually dig into Fine's book I guess it will not play real good chess - leaf evals suffer from lack of sufficient positional knownledge ... I have owned this book for almost 4 years now and yet to go through more than about 20 pages !

1 Comments:

Anonymous Anonymous said...

Good post man

- Aparup

2/08/2007 04:55:00 PM  

Post a Comment

<< Home