The tantalophile site is now out of date. Please see shareable.org instead. Thank you.
However, some content has not be migrated to shareable.org yet. If you were looking for specific files from tantalophile.demon.co.uk, they have been moved to tantalophile.shareable.org as I will soon be terminating the Demon account. Enjoy.
Last updated 16/Jan/2003
|
jamie@shareable.org www.shareable.org (My CV is found here) |
Address | Telephone | |||
|
41 Stanley Street South
Bristol BS3 3PG England |
+44 781 367 0031 (mobile)
+44 117 9530282 (landline) |
||||
Hi.. I have no shame, this is a very mundane index page to all the exciting files I provide for public consumption. I use my web site as a dumping ground for some of the files I want to make public.
There is my recently updated CV, but I warn you that it was updated in a rush. I used to do games programming, but now I build hardware and software for testing high speed ethernet networks on a large scale at CERN. (Think 100Mbit/s and 1000Mbit/s networks, in the 100Mbit/s case with hundreds of ports, all with precisely controlled and measured traffic patterns though a complex switching fabric). Here's a paper summarising last year's work (4MB).
My current project is to build an integrated testing environment for 100Mbit/s and 1Gbit/s ethernet switching fabrics. We're using custom hardware for the 100Mbit/s testing, and Alteon cards for the 1Gbit/s testing. (Yes, we can emit line rate tiny packets at 1Gbit/s!). Here are descriptions of the custom hardware and a well-received spin-off application.
I do everything from hardware design, FPGA programming in VHDL and Handel-C (a C-like language for hardware), through to Linux device drivers, C clients and servers, Perl scripts and pretty real-time GUIs. I've produced a port of GCC for Alteon's Gigabit Ethernet chip and written firmware for gigabit rate testing. The 100Mbit/s board has 35 Altera FPGAs with 50k "marketing gates" per FPGA. Not a small board. Hopefully we'll have a photo soon, but here is a pretty diagram of the board layout, based on the PCB top layer mask
This work is used for high energy physics experiments. Particle colliders, that sort of thing. To be more specific, the ATLAS experiment at CERN. Of course it's also rather useful for the Internet at large. Note to potential employers: the work means I know lots about the nitty gritty of modern high-speed networking technologies.
The research I'm involved in does actually have a lot of spin offs in communications technology, and CERN's physics work has spin-offs in modern medical technology amongst other things. Did I mention the Web was invented at CERN?
I wrote Emacs Folding Mode a long time ago, and have continued to update it privately. It was forked a few years ago by some other people, but I still use my version as it has a few features that the other version does not have. A surprising large number of people use it. I really must re-release the file with up to date code some time. But, considering how old it is, it still works really well.
I've done substantial reverse engineering work to get winmodems working on Linux. You're not likely to find those files useful unless you want to continue with that work though. That area is just for sharing incomplete works with collaborators. Well, actually you will find some nice disassembly tools for Windows NT device drivers there. The tools run on Linux.
If you search for my name on Google you'll see I've contributed, or should we say participated, in a number of free software projects over the years. Most notable are GCC (the GNU C Compiler) and the Linux kernel but my fingers have dabbled in many pies.
Have a peek into my misc directory for a few handy programs. I've written much over the years, but most of them are lost now (I'm not afraid to delete files), and the rest I can't be bothered packaging up for distribution.
One of my properly packaged, if unfinished programs is Treescan. ``Treescan finds all the files in a directory tree and prints their names, using an optimised disk access strategy. It is similar to `find -print'. The added feature is that Treescan optimises the I/O in various ways. It is sometimes much faster than the naive strategy used by `find'.'' Here is the full description. On a related note is a Linux kernel patch for returning type information when reading directories. It speeds up Treescan. The functionality has been incorporated into the very latest official 2.4.0-test kernels.
By the way, I'm writing a decompiler now. Sorry no source because it's still a useless mess! (That didn't stop me uploading my linmodem directory though :-). It translates binary files such as device drivers, libraries and executable programs into readable C source code. There are already C decompilers, but none of them are especially good, especially on code produced by modern optimising compilers.
My goal is to produce output of approximately the quality I produce when decompiling by hand. (See "winmodems" above -- a lot of the C code I wrote there was produced by reading disassembled machine code and writing equivalent C code by hand). It's quite a hard project but I am making progress. Compiler technology is one of my special interests anyway.
The decompiler is almost at the stage of doing data-flow analysis through registers and memory locations, determining whether memory accesses can alias, the ranges and types of values. I hope to have structure type deduction working when the data-flow analysis is extended to cover the entire program being decompiled, and not just one function. One notable feature at the moment: a TeX-like algorithm for optimal formatting of nested expressions in code :-)
Longer term but still on my own time I'll be working on adaptive, run-time optimisation techniques. Keywords: partial evaluation, supercompiler, run-time profiling. I've been studying the area in my "copious" free time for more than a decade now. It's obvious what areas are interesting and how they can be used, but getting the details right is tricky, especially when I have neither the time nor am I surrounded by people working in that area.
I hypothesize that the right form of adaptive optimiser applied to an algorithm yields an algorithm that is at least as efficient as any equivalent algorithm that can possibly be coded, by a human or otherwise. The precise definitions of "equivalent" and "as efficient" leave scope for interpretation, but still it is interesting. Think about the consequences of that for a while...
At some point I would like to be involved with quantum computing and adaptive optimisation techniques as applied to self-assembling circuitry. Perhaps in liquid form. I have (sadly still vague) visions of how to produce extremely powerful computing machines with physical application, using only rudimentry chemistry, optics and electronics. Garage tech. Adaptive optimisation is one approach to working out how to create such machines -- it's a major reason why I feel the need to study that area. Though it is interesting in its own right.
When it's not computers or mailing lists, I like cycling (mostly to and from work but at least it's regular), orienteering in the Jura mountains is lots of fun, skiing is good in the Winter here, and one must never forget the choir singing (in French!) and folk dancing of the middle-eastern variety. (No I don't approve of the current Isreali aggression agains Palestinians, but I like Isreali dances). Ahem, I thought you should know anyway. Paragliding, bungee jumping and go-karting on ice have been fun, but not every time. I'd like to learn more about massage, and it's been too long since I played a nice guitar.
I get upset when I read about starving people, miserable people (in the large), utterly abused minorities, and people who get killed, raped, mutilated & traumatised due to wars and other violent societal situations. I live a life of relative luxury, and sometimes it seems rather wasted on the kind of research I do for employment. That's not always my sentiment but it's among the most moving.
Well, enough about me, me and me. It's time for bed. Goodnight :-)
Oh, by the way I'm polyamorous and single (sexually; I do have several very special non-sexual relationships). I like playing with peoples' energy fields, decent conversation, and I occasionally enjoy hug therapy :-)