'''Email:''' nem AT cs.nott.ac.uk '''Web:''' http://www.cs.nott.ac.uk/~nem/ '''Location:''' Nottingham, UK. '''Date of Birth:''' 27 October 1980. I am a PhD student at the University of Nottingham[http://www.cs.nott.ac.uk] in the UK. 'Been a Tcl user for quite a long time (since 1999 when I worked for a year at IBM's Hursley development labs[http://www.hursley.ibm.com]. [Paul Duffin] was using Tcl a lot there, and developing [Feather]). Pages I have created: * [A little database with unification]. * [A little logic notation editor]. * A description of [polymorphism]. * A proposal: [A generic collection traversal interface]. * Experimenting with a [Compositional Tk]. * A write-up of [Traits]: a compositional approach to [OO]. * Contributed some thoughts about the crucial reasons why [everything is a string]. * My take on [OO] - [TOOT]: [Transparent OO for Tcl]. (or Transparent Object Oriented Tcl). * The "philosophy" behind TOOT: [Interpreting TOOT] (but see also the comments on EIAS above). * Taking from ideas from [Haskell]: [Monadic TOOT] leads to [Parser Combinators]. * [Non-deterministic search] : A little play with automatic backtracking. * '''A vision for Tcl 9''': I am working on an essay with some ideas for Tcl 9. [http://www.cs.nott.ac.uk/~nem/fanatcl.html]. Update: this is a bit out of date, but most of the points are still valid. I've moved the essay to my univerity hosting for the time being: beware broken links! I seem to be more reliable at writing essays than getting round to coding up the ideas in them. Hopefully I'll get round to updating this essay ''and'' demonstrating the ideas soon. * '''Games''': I wrote [TkPool] (with a little help from [dkf]). Quite a nice start, but needs someone to finish it off. Alas, that's unlikely to be me for the forseeable future. * '''[Artificial Intelligence]''': This is related to my PhD research. I am currently working on a forward-chaining production system (rule-interpreter) library, suitable for use in games. It will naturally come with a Tcl binding when finished. I actually have a working version of this written in C++ some time ago. It's buggy though, and I've started a rewrite in plain C (it's only a small library, so C++ doesn't add much other than complexity). The library is called [GORE] for the Game Oriented Rule Engine. I almost prefixed that name with Adaptable Lightweight, but AL GORE perhaps isn't the best name for it! It's Game-Oriented as the original brief (it was an undergraduate dissertation project) was for it to be useable on low-memory games consoles. This should definitely emerge in the next month (Aug '05), as I need it for a project at uni and I've made commitments to others that it will be finished. * '''Web''': I'm contemplating writing an application server/content management system in Tcl. There are some ''old'' ideas at [StarSite]. I've been corresponding with [Colin McCormack] about this. He has some very good ideas - and code to back it up! This is a long-term goal, which must come second to my PhD work, so don't expect anything useful to come of it... yet. I'm considering naming the CMS ''[ArTcl]'', so please don't use that name for anything, as I'm rather proud of it! I have actually written a reasonable amount of code towards this. It's staying under wraps though until I'm ready to release it. A careful reading of posts I make to the wiki and newsgroup will give away some of the ideas being used in it. * A little [BibTeX parser]. This is a very basic script that I knocked up for a one-off conversion of some files into web pages. It has since been added to tcllib, but I don't think it gets installed yet. Rather than invest too much time getting it working fine, I'd quite like to write a general parsing framework based on [Parser Combinators], and then write the BibTeX parser in that. [AKU] also has a parsing framework which is in tcllib, which might be a way to go. I also have a partial CSS parser which is also hand-coded. That works quite well, but isn't complete either. Some other pages: * '''19 May 2004''' - [Infix arithmetic with XOTcl] - a little experiment. * '''22 Mar 2004''' - [Hello World as a C extension] for newbies to the Tcl C interface. * '''20 Mar 2004''' - [More functional programming] is my take on functional programming in Tcl. Ideas and discussion with Miguel and others lead to TIP 194 [http://tip.tcl.tk/194] and then to the generalisation that is [TOOT]. * '''15 Mar 2004''' - Dumping code for a [Simple Newsreader]. * '''15 Feb 2004''' - Quick implementation of [split and join for nested lists]. * '''19 Dec 2003''' - Just made a [Simple Download Progress Widget] * Quickly knocked up [Transparent Toplevel] code for Windows... * '''9 Jan 2003''' - [A Snit News Ticker Widget]. * Older: [Artificial Intelligence with Tcl], [State Space Searching in Tcl], [Heuristic Searches] ([RS] has a better version of these at [Searching A Star In Space]). These were partly based on psuedocode from the classic textbook "Artificial Intelligence: A Modern Approach" by Stuart Russell and Peter Norvig[http://aima.cs.berkeley.edu/], and were written while I was an undergraduate. A nice example of the usefulness of higher-order functions, even if I didn't know what that term meant at the time! 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. You can find my university web-pages, at http://www.cs.nott.ac.uk/~nem/ . You can email me at nem ''AT'' cs.nott.ac.uk. [Cameron Laird] mentioned me in [http://www.linuxjournal.com/article.php?sid=5622&mode=thread&order=0&thold=0]. The project he mentions there died without producing much useful code, although it did spawn the larger beast of [ArTcl] which threatens to never be finished. (It will be one day, but probably not until my PhD is done). I contributed the first socket code to the TclJava project. '''Other bits and bobs (mostly older stuff)''' I once worked on a couple of extensions for Jacl/TclJava - one called [Hyde] which was going to be an [OO]-system for Jacl (well, everyone writes one at some point :), and another called [JFeather] which was going to be an implementation of [Feather] for Jacl. I never finished either. Hyde is now the name of a [Critcl] clone for Jacl (not written by me, but somebody with the same sense of humour - Jacl and Hyde). JFeather got ridiculously complicated, and I think I concluded that it couldn't be done for some technical reason (I think it would require writing raw Java bytecode, which is not something I ever want to do). I wrote a simple .sig file for when I was posting on USENET, which was Tcl code using [tkhtml] to grab this wiki page and render it. It attracted some attention, and lives at [Simple TkHTML Web Page Displayer]. I've done a little experimenting with [Haskell] (a great language). Have a look at [Interfacing Tcl with Haskell] for my conclusions. [Simple XML report writer] - A simple example of [SAX]-based XML parsing and rendering the result on a canvas. ---- [[ [Category Home Page] | [Category Person] ]]