Version 26 of Neil Madden

Updated 2003-03-24 14:08:07

(This page seems open to abuse if anyone can edit it's content!)

NEM - Umm, yes ... yes it is. All the pages on this wiki are open to abuse. All the pages on this wiki are also archived, so any abuse can be removed pretty quickly, and the original content restored. Any particular reason why my page here is any more likely to be defaced than any of the 8000+ other pages?


All contributions/code that I place in this wiki are public domain. You can do with them as you will, but I do not provide any warranties or guarantees of any kind.

After a re-read of this page, it should really be subtitled An Ideas Graveyard due to the huge number of projects I seem to have started and then let die!

9 Jan 2003 - A Snit News Ticker Widget. I have a more complete version of this. Email me for code.

My personal site is at http://www.tallniel.co.uk/ . This site runs on a TclKit using tDOM to generate pages on the fly from XML/XSLT. It's lightning fast. Someday, I'll update it to generate the XML dynamically from a metakit database, so that I can keep my entire site in one file. This is a concept I'm thinking of calling StarSite, as it's a bit like a StarKit but contains a web site. The tallniel site can currently be viewed by web and WAP. If you have a WAP enabled phone, point it at [L1 ] to start off. Warning - some of the pages are quite large for wap access - working on this...

The whole StarSite concept is in need of some serious time being spent on it. The design is fun, but I find I have less and less time to devote to implementing this. If anyone has some spare time, and wants a cool project to work on, please send me an email and get cracking on this!

I am a student at the University of Nottingham, England, studying for a BSc in Computer Science. Before this, I did a year working at IBM Hursley Labs, where Paul Duffin introduced me to the world of Tcl. I now try and use Tcl as much as possible for my coursework, before converting to Java. 15Nov02 - Now I am in my final year, I can leave Java behind and use Tcl and C as I like. Actually, I'm doing my dissertation in C++ and beginning to miss Java! I never thought I'd see the day.

After university, I'll hopefully be starting a PhD at Nottingham (although possibly elsewhere) in the general area of Cognitive Modelling. Might start a page and collect some links and Tcl snippets to illustrate what I mean by this term.

I have started a page on AI with Tcl at Artificial Intelligence with Tcl - State Space Searching in Tcl - Heuristic Searches. *Note* - this page contains some really bad code I wrote some time ago. I should get round to updating it at some point (and making sure it actually works). Richard Suchenwirth has updated this at some point to be a bit more efficient. He concentrated on A* search I believe. Searching A Star In Space is the fella. Much much better.

I was working on a Tcl-XML web content management system (using tDOM at the moment, but I might add support for TclXML/TclXSLT). The system uses TclKit/tDOM/XML/XSLT and hopefully, someday XSL-FO and XSP. Needs a fair bit of work at the moment, but early CGI implementations are going good. Cameron Laird mentions the system in [L2 ]. Update (15/11/2002) - I am suspending effort on this until StarSite is finished. Makes more sense to do things this way round.

I contributed the first socket code to the TclJava project. I (or someone) still need to polish up bits of this and get async sockets supported, but it's mostly there (with the exception of fileevent as it's not done in Jacl yet). I'm also working on an OO extension for Jacl (called Hyde as in Jekyll and Hyde - Jacl and Hyde...). It's got some neat features like being able to implement Java interfaces in Tcl, or (with a bit of work) extend Java classes. Update (15/11/2002) - Haven't touched this stuff for ages, now that I rarely use Java. I have agreed to write a servlet which allows you to use Jacl, possibly for the Apache project. Might not be ready until next year though, as it is low priority for me.

Note - the name Hyde has been taken now by a Java/Jacl equivalent of CriTcl. This is fine by me, as my project is on indefinite hold, and the name seems to fit that extension better. It's nice to know someone has the same warped mind as me though :-)

I was also working on JFeather, an implementation of Feather for Jacl. This is a big project, for the long term. Update (15/11/2002) - not any more! Ran into way too many problems in Java and Jacl, so I gave up. Someone with more in-depth knowledge of Java (possibly working on the byte-code level) would be needed to do this.

In general, I'm a big fan of Feather. I have the code kicking around, and I keep meaning to get round to trying to understand it's workings someday. Meanwhile, DKF keeps adding new TIPs which head down that path, and other deeply cool areas. It's an exciting time to be in the Tcl community if you like computer science.

New (15/11/2002) Some new things I'm working on:

  • TkBrowser [L3 ] - simple web browser functionality implemented on top of TkHTML. Fixing bugs in image support, and adding form support currently. I use this only rarely, and so I'm unlikely to keep it particularly up to date. If you use the package, please consider volunteering to maintain it. I've started on converting it to Snit instead of using my own half-assed object/megawidget system. Now 0.8 is out I might even finish this.
  • A Tcl binding to SDL. Also check out the work on Oil by Kristoffer Lawson. As of 10Feb2003 I have a basic binding on the go - just doing the tricky combining of event loops here, hoping not to hit too many problems. Joystick support is next on the list as someone has asked for that on clt.
  • My dissertation this year is on creating a simple rule interpreter (ala CLIPS). This will be useful for embedding in games to create complex AI. Naturally, it will be implemented as a Tcl extension :-) This is going well. Look out for more info on my website at some point in the future, and I might be presenting a paper on it at one of the Tcl conferences this year, as well as a game conference.

27/5/2001 - New (old now!) Tcl related things I am working on:

  • Tcl CD Audio Package for UNIX. A simple extension to allow Tcl scripts to play audio CDs using the CD-ROM drive. Uses the libcdaudio library. Available from http://tallniel.port5.com/cgi-bin/index.cgi/TclCD.html . Currently at version 0.1 (usable, but you have to be careful about passing valid file descriptors (causes segfault otherwise :-( ). Note (8/12/2001) I haven't updated this at all, and am no longer working on it. The SDL library has functions for playing audio CDs.
  • A Haskell binding for Tcl. Still in preliminary stages. I am trying to use haskell's Foreign Function Interface to expose the Tcl C-API to haskell, thus allowing you to embed a Tcl interpreter in Haskell, and write Tcl extensions in Haskell. For more information on Haskell (a very modern functional language), see http://www.haskell.org/ . Note (8/12/2001) - I gave up on this! Maybe I'll try again someday. Update (24/11/2002) - some experiments on Interfacing Tcl with Haskell

Simple XML report writer - I'm quite pleased with this nifty little script which I use for creating reports for Uni. Convert to EPS, run through distill and you have a PDF (albeit with one very long page...:-).


About the Haskell interface: how far did you get? What was the stumbling block? Anything you could share? Perhaps someone else could take it further?

Not very far. I was looking at TclHaskell which is basically a binding to allow Haskell programs to use Tk and evaluate arbitrary Tcl scripts. I wanted to go the other way, however, and make it possible to write Tcl extensions in Haskell and compile them (with GHC), ala TclBlend, or, to embed the Hugs interpreter into Tcl, ala TclPerl/Python etc. The main stumbling block was my lack of motivation to really get into this. Haskell's FFI would allow you to expose Tcl APIs to Haskell, but there doesn't seem to be a way to do the opposite. Some kind of proxy layer would probably be needed, so that in Haskell you could call Tcl_CreateCommand or similar (tclCreateCommand) and somehow create a C-callable wrapper around the haskell function. It's beyond me though. Someone with a bit more time and motivation could probably do it though, but it's a fair amount of work.

See the page Interfacing Tcl with Haskell for my latest crack at this particular nut.


[ Category Home Page | Category Person ]