Here you can find CS-related work I have worked on over the last decade or so.
If you are looking for academic papers, see my
list of publications or the
Wumpus publications page.
Some stuff I did:
- The Wumpus Search Engine
This is the main produce of the work I did during my PhD program at the
University of Waterloo. Wumpus is a multi-user information retrieval system
with support for dynamic text collections (i.e., insertions, deletions).
In conjunction with fschange, it can also
be used as a file system search engine with support for real-time index updates.
- How to find out if the remote host has closed its end of the socket connection?
When writing server applications, every now and then, I came across the
problem to tell if the client has closed a connection. An obvious way to
tell is to call read and check for return value 0. However, if you don't
want to remove data from the stream, things are a little more complicated.
Since I have not found a good description of how to do this on the web, I
have written it down here — in case there are other people who have the
same problem.
- S. Büttcher and C. Clarke.
Operating System Support for Full-Text Search in File Systems.
Submitted to (and rejected by) the Tenth Workshop on Hot Topics in Operating Systems (HotOS X).
- fschange — Linux File System Change Notification
When a file is changed, current notification mechanisms, such as dnotify, do
not tell you which part of the file has actually been modified. If you need this
information, maybe fschange can help you.
- Content-and-Structure Queries in an XML-based Information Retrieval System
(course project CS741 Non-traditional Databases, fall term 2004)
- S. Büttcher, C. Clarke, and G. Cormack.
Domain-Specific Synonym Expansion and Validation for Biomedical Information Retrieval (MultiText Experiments for TREC 2004). (TREC notebook paper)
You can also download the slides for my TREC talk.
- Approximability Results for the p-CENTER Problem
(Summary of results found in the context of the p-CENTER problem
with emphasis on the ASYMMETRIC p-CENTER problem;
course project CS666, spring term 2004)
- Multi-Agent Systems for Real-World Applications
(Work done for CS886, spring term 2004, English)
- Power-Aware Computing — A Kernel-Directed Compiler-Assisted Dynamic Voltage Scaling Algorithm
(Master's Thesis / Diplomarbeit, winter term 2003/2004, English/German)
- Cryptographic and Number-theoretic Algorithms (Solovay-Strassen, Miller-Rabin, ElGamal, RSA, Menezes-Vanstone, DSA, EC-DSA, etc.)
(Exam preparation, summer term 2003, German)
- Parallel Tree Search (Alpha-Beta & Co.)
(Arbeitsgemeinschaft Strategiespiele, summer term 2003, German)
- M. Gröbner, P. Wilke, and S. Büttcher.
A Standard Framework for Timetabling Problems.
Selected Papers from the 4th International Conference on
the Practice and Theory of Automated Timetabling (PATAT 2002), Springer Lecture
Notes in Computer Science, Vol. 2740.
- Über die Struktur polynomialer Reduzierbarkeit
(Henke-WG Küchenkolloquium, winter term 2002/2003, German)
- Code Reviews and Code Generation
(Seminar Presentation, winter term 2002/2003, German)
- Solving General Timetabling Problems with a
Genetic Algorithm (code written in Java)
(Thesis / Studienarbeit, summer term 2002, German)
- An Internet Game Server, written in Java
(This is still in a very early development phase with almost no comments
and documentation. It does, however, work. So far, only Checkers and 4-In-a-Row
are supported.)
- A Java implementation of Warren's Abstract Machine (WAM)
(Coursework, winter term 2001/2002, English)
- Factorization of Large Integers
(Essay, Ferienakademie 2001, German/English)
- Authentication Techniques and Zero-Knowledge
(Seminar Paper, summer term 2001, German/English)
- Lambda-Calculus and Call-by-Need
(Essay, Ferienakademie 2000, German)
- Wireless Application Protocol (WAP)
(Seminar Paper, winter term 1999/2000, German)