Pages
Miscellaneous Things
This section of my home page contains a few pages which do not fit readily into the other categories.
- I use GnuPG or PGP to communicate securely via email. I provide a page with information about my public keys.
- A description of how the Condorcet voting system is used in the Debian project.
- A country league table.
- A time line lists important events since the beginning of the universe.
The Fortuna Random Number Generator
Contents
- Introduction
- Installation and Usage
- Example
- Testing
- A Call for Help
- Alternative Implementations
- References
Introduction
This page describes an implementation of the Fortuna random number generator in the Go programming language.
Fortuna is a
cryptographically strong
random number generator (RNG). The term cryptographically strong
indicates that even a very clever and active attacker, who knows some of
the random outputs of the RNG, cannot use this knowledge to predict future
or past outputs. This property allows, for example, to use the output of
the RNG to generate keys for encryption schemes, and to generate session
tokens for web pages.
Moon-buggy
Moon-buggy is a simple character graphics game where you drive some kind of car across the moon's surface. Unfortunately there are dangerous craters there. Fortunately your car can jump over them!
The game has some resemblance of the classic arcade game moon-patrol which was released in 1982. A clone of this game was relased for the Commodore C64 in 1983. The present, ASCII art version of moon-buggy was written many years later by Jochen Voss.
The Ziggurat Method for Generating Gaussian Random Numbers
Introduction
The Ziggurat method for generating random numbers is a special case of the rejection method, where the density of the proposal distribution looks like the silhouette of a Ziggurat. The method can be used to produce very fast random number generators for distributions like the normal distribution or the exponential distribution. The main advantage comes from the fact that for a high percentage of the generated numbers no slow floating point operations are necessary.
Wisent: a Python parser generator
Contents
Introduction
When writing a computer program, implementing methods to read data from input files with a complex structure can be surprisingly difficult. For example, if the input data comes from an untrusted source, errors in the input file often need to be dealt with very carefully. If your program is written in Python and if the input data is sufficiently structured (i.e., if the format can be described by a context free grammar), Wisent can help you to implement parts of the input processing of your program.
A Simple Tracing Framework for Go
The trace
package provides a simple tracing framework for
the excellent Go programming language.
Code using this framework can emit diagnostic messages using the
trace.T()
function. In normal operation, calls to
trace.T()
have no effect and are very fast. When tracing is
enabled, in order to track down a problem or to explore the inner workings
of a program, listeners can be attached to record and display all trace
messages.
Main features:
The SHA-256d Hash for Go
The sha256d package provides an implementation of the SHA-256d hash algorithm (also known as "double SHA-256") for the Go programming language. SHA-256d is a cryptographic hash, first proposed by Ferguson and Schneier in the book "Practical Cryptography". The SHA-256d hash is used in the Bitcoin protocol and in the Fortuna random number generator.
The SHA-256d hash is obtained by applying the SHA-256 hash twice, i.e.by first applying SHA-256 to the data and then again to the resulting hash.
What Happened Until Now?

1

10

102

103

104

105

106

107

108

109

1010

Higgs boson discovered
How to Write an HTML5 App?
Contents
- Getting Started
- Layout
- Graphical Elements
- Animations
- Sound
- User Interaction
- Persistent Storage
- Debugging
- Deployment
- Examples
- References
Getting Started
Before you can start writing HTML5 Apps, you will need to learn (at least the basics of) the following technologies: HTML, CSS, and JavaScript.
Mathematical Homepage of Jochen Voss
This page gives a short summary of my mathematical interests.
Contents
- Conditional Path Sampling of SDEs
- Diffusion Processes
- Large Deviations
- Simulations and Numerical Analysis
- Miscellaneous
Conditional Path Sampling of SDEs
With Andrew Stuart and Martin Hairer I am exploring how infinite dimensional Langevin sampling can be used to sample from conditioned distributions of solutions of stochastic differential equations. Our method is based on constructing a partial stochastic differential equation which has the conditioned target density as its stationary distribution.
The JvJsDoc Documentation Generator
Contents
Introduction
JvJsDoc is a program to extract documentation from JavaScript source code and to present the collected information in a set of HTML pages. It is meant to be used together with the Google Closure Library and the Google Closure Compiler. Features of JvJsDoc include the following:
- Generates one HTML page with documentation per class/namespace.
- A search box in the HTML output allows to quickly find the documentation for any given symbol.
- Can optionally include the Closure Library documentation into the output to seamlessly document methods inherited from closure library-provided classes etc.
- JvJsDoc is written in Python and requires Python version 3.2 or newer to run.
The development of JvJsDoc is still at an early stage, and there are still several known shortcomings of the program (e.g. inline JSDoc comments are not yet handled), but it works well enought that it is already useful for day-to-day work.
PGP Schlüssel
public key: 1024D/211B1025
fingerprint: F1DB 1FB5 FEA4 96CE 8F2E DF15 7FE8
83F3 211B 1025
PGP und GnuPG
GnuPG und PGP sind Verschlüsselungsprogramme, die nach dem "public key"-Verfahren arbeiten. Damit kann man z.B. Emails verschlüsseln und signieren. Ich freue mich über signierte und verschlüsselte Emails. Meine Schlüssel kann man entweder auf einem Keyserver finden, oder von hier bekommen:
Der fingerprint meines Schlüssels ist
pub 1024D/211B1025 1999-12-27 Key fingerprint = F1DB 1FB5 FEA4 96CE 8F2E DF15 7FE8 83F3 211B 1025 uid Jochen Voss <voss@seehuhn.de> uid Jochen Voss <voss@mathematik.uni-kl.de> uid Jochen Voss <voss@debian.org> sub 1024g/5C44AA14 1999-12-27
Signaturen
Mein Schlüssel ist mit etlichen digitalen Signaturen versehen, die helfen, die Echtheit meines Schlüssels sicherzustellen. Es gibt spezielle Programme, um Ketten solcher Signaturen zwischen zwei gegebenen Schlüsseln zu finden, z.B. den Experimental PGP key path finder von Jonathan McDowell und die PGP pathfinder & key statistics Seite von Henk P. Penning.
jvqplot - a very simple data plotting program
Contents
Introduction
Jvqplot is a data plotting program, resembling a simplified version of gnuplot. It is very simple to use, but it can only plot simple data files. The format and scaling of the plot are automatically chosen and cannot be changed. One of the main features of jvqplot is that the plot is automatically updated whenever the data in the input file changes.
Usage
Jvqplot can plot data from files. The input file must consists of numbers, arranged in columns. The first column corresponds to the horizontal axis. For each of the remaining columns a line is plotted which displays the corresponding values on the vertical axis.
CSimGen
The CSimGen Python package helps to write Python programs which construct C programs for use in numerical simulations. Things CSimGen can do for you:
Introduction
- keep track of the in-memory representation of matrices
- dynamically allocate memory for matrices and vectors
- construct LAPACK calls
WARNING. CSimGen is experimental software. The API is not yet finalised and may change without further notice.
CSimGen is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Please send any comments, bug reports, etc. to the CSimGen author Jochen Voss.
Calculating the Square Root of a Matrix
This tutorial explains how to use the LAPACK and BLAS libraries in a C program to calculate the square root (or another function) of a positive semi-definite, symmetric matrix. This serves as a non-trivial example for the use of LAPACK functions. We will see how to call the LAPACK Fortran code from a C program and how to use the BLAS C bindings to multiply matrices. This text assumes that you are already familiar with my text about numerical linear algebra packages on Linux. Feedback is very welcome; please direct any comments and suggestions for improvement to me.
Creating a Poster with TeX
This page contains some hints which may help to create a conference poster using LaTeX. The method described here is good if you want to do everything manually in order to have full control. If, instead, you just want to just get a usable result without spending too much effort, you probably will be better served by using one of the existing solutions like a0poster or sciposter.
Contents
Overview
The method described on this page takes the following approach:
Date and Time Representation in Python
There are many different ways to represent date and time in Python programs. This page gives an overview over the different methods and explains how to convert between different representations. The main focus of this page is on how to represent points in time often assuming some fixed, local time zone. This is used for example when analysing log files. I will not explain here how to convert between different time zones or between different calendars.
Linux on a Toshiba Satellite 2430-301
This text describes the adventures I encountered while installing Linux on a Toshiba Satellite 2430-301 Laptop. If you have questions or additional hints, feel free to contact me.
News. in February 2005, less than two years after I bought it, the laptop described on this page died. The symptoms were:
- The fans seemed to start to produce a little bit more noise than they used to do.
- The machine switched itself of from time to time, seemingly from overheating (at least it was quite hot). This effect got worse and worse over the time until the machine was mostly unusable.
- One day it did not recognise it anymore when the power cord was plugged in. After the battery was emptied, the machine was of course no longer very useful.
This might be the problem discussed at the computer hardware forum.
Linux on an Apple Powerbook G4
This text describes the adventures I encountered while installing Linux
on an
Apple Powerbook G4 (15″ version, 1.67GHz).
It seems that with Apple's numbering scheme the machine is a
PowerBook5,6
. If you have questions or additional hints, feel
free to contact me.
The page was originally written in spring 2005, when the machine was new on the market. After a while I got bored by the many difficulties connected to running Linux on the machine and I switched to using MacOS X. Recently I reinstalled the current Debian/unstable distribution on the machine and was happy to notice that Linux support has significantly improved.
Numerical Linear Algebra Packages on Linux
This page explains how to use numerical linear algebra packages of the BLAS/LAPACK family in C programs on a Debian GNU/Linux system. My goal is to efficiently solve systems of linear equations. Any feedback about this page is very welcome.
Contents
- Overview
- Installation
- Using BLAS
- Using LAPACK the Easy Way
- Using LAPACK the Hard Way
- Outlook
- References
Overview
There is a jungle of different packages and standards and there are implementations in both C and Fortran. The more important packages are presented in the following list.
Profile of the Boot Process of a Debian System
Introduction
Some time ago, Ziga Mahkovec managed to create a nice graphical representation of the boot process of a Fedora Linux system. The aim of the exercise was find out where the system spends all the time during boot and ultimately to decrease start-up time. Since I liked the idea, I produced a similar (but less beautiful) plot describing the start-up of my Debian/unstable system. The result, a bit dated by now, is presented on this page.
PSFile: Generate PostScript files with Python
Contents
- Introduction
- Download
- Documentation
- References
![[psfile test image]](/image/psfile1-0606.png)
Figure 1. Output of the script from example 1, below.
The Debian Voting System
Contents
Introduction
The Debian Project uses an
interesting voting system to make formal decisions. This system is, for
example, used to determine the Debian Project Leader or to determine the
outcome of general resolutions
of the project. Information about
past votes and about how to initiate new votes can be found at the
Debian Voting Information page.
Current votes, properties of the voting system, and related topics are
discussed at the
debian-vote mailing
list.
How to Choose Your Country?
In our times of globalisation and greatly increased mobility, the prospect of moving to another country becomes less frightening than it used to be. Big companies already move their assets around the globe in order to optimise their situation. Why shouldn't you as an individual do the same? This page intends to help you in choosing a country to live in.
Indicators
- Freedom of Press
- A free and lively press is one important building block of a country which is good to live in. Problems are more likely to be fixed when it is possible to point them out openly. The Reporters Without Borders provide a yearly report about the world wide situation of the press. For the table below I used values from the Press Freedom Index 2006. Lower values are better.
- Life Expectancy
- The life expectancy reflects a multitude of factors which are closely related to the quality of living. This includes personal wealth (the rich live longer) and environmental factors (pollution makes ill). The table below includes values from the rank tables for life expectancy at birth in the CIA world factbook. Most of the values are estimated values for the year 2006. Higher value are, of course, better.
- Unemployment ratio
- Finding a job in your new country will be significantly easier if there is low unemployment. The league table below contains values from the unemployment rates rank table in the CIA world factbook. The numbers given are percent of the work force without work. The values are estimates for different years. Lower values are better.
- Corruption
- Corruption damages open, democratic processes by hiding the real objectives in decision making and leading to decision which are not in the best interest of the public. When choosing your country it is best to avoid countries where corruption is wide-spread. Since corruption does, by definition, not happen in the open it is difficult to measure. Transparancy International publishes yearly reports on corruption. I used their Corruption Perceptions Index 2005 to compose the table below. Higher values are better.
- Public Debt
- Countries which have accumulated high levels of debt have less money to operate public institutions and are also liable to increase taxes to generate additional income. You better avoid them when choosing your country. The table below contains values from the public dept rank table of the CIA world factbook. The numbers are given in percent of the GDP, smaller numbers are better.
- Language
- Life is a lot easier, if you can chat with your neighbours and easily ask the way when you are lost. So make sure to choose a country where you understand the local language. The information given here was collected from Wikipedia.
The League Table
country | freedom of press index | life expectancy | unemployment ratio | corruption index | public dept | languages |
---|---|---|---|---|---|---|
Andorra | 83.51 | 0.0 | Catalan, Spanish, French | |||
Iceland | 0.5 | 80.31 | 2.1 | 9.6 | 31.6 | Icelandic |
San Marino | 81.71 | 2.6 | Italian | |||
Liechtenstein | 79.68 | 1.3 | German | |||
Netherlands | 0.5 | 78.96 | 6.6 | 8.7 | 52.7 | Dutch |
Finland | 0.5 | 78.5 | 8.4 | 9.6 | 39.6 | Finnish |
Ireland | 0.5 | 77.73 | 4.3 | 7.4 | 26.7 | Irish, English |
Norway | 2.0 | 79.54 | 4.6 | 8.8 | 50.1 | Bokmål, Nyorsk |
Switzerland | 2.5 | 80.51 | 3.8 | 9.1 | 52.0 | German, French, Italian |
Sweden | 4.0 | 80.51 | 5.8 | 9.2 | 50.4 | Swedish |
New Zealand | 5.0 | 78.81 | 3.7 | 9.6 | 21.3 | English, Māori |
Korea, South | 7.75 | 77.04 | 3.7 | 5.1 | 20.0 | Korean |
Australia | 9.0 | 80.5 | 5.1 | 8.7 | 16.1 | English |
Japan | 12.5 | 81.25 | 4.4 | 7.6 | 158.0 | Japanese |
Hong Kong | 14.0 | 81.59 | 5.5 | 8.3 | 1.8 | Cantonese, English |
Kuwait | 17.0 | 77.2 | 2.2 | 4.8 | 12.1 | Arabic |
United Arab Emirates | 17.5 | 75.44 | 2.4 | 6.2 | 17.5 | Arabic |
Singapore | 51.5 | 81.71 | 3.1 | 9.4 | 102.9 | English, Malay, Mandarin, Tamil |
Canada | 4.5 | 80.22 | 6.8 | 8.5 | 69.6 | English, French |
Austria | 4.5 | 79.07 | 5.2 | 8.6 | 65.1 | German |
Denmark | 5.0 | 77.79 | 5.7 | 9.5 | 37.0 | Danish |
France | 9.0 | 79.73 | 9.9 | 7.4 | 66.2 | French |
Spain | 10.0 | 79.65 | 9.2 | 6.8 | 42.9 | Spanish |
Taiwan | 10.5 | 77.43 | 4.1 | 5.9 | 33.6 | Mandarin |
Qatar | 18.0 | 73.9 | 2.7 | 6.0 | 35.6 | Arabic |
Luxembourg | 78.89 | 4.5 | 8.6 | French, German, Luxembourgish | ||
Portugal | 3.0 | 77.7 | 7.6 | 6.6 | 63.9 | Portuguese |
Belgium | 4.0 | 78.77 | 8.4 | 7.3 | 94.3 | Dutch, French |
Germany | 5.5 | 78.8 | 11.7 | 8.0 | 67.3 | German |
United Kingdom | 6.5 | 78.54 | 4.7 | 8.6 | 43.1 | English |
Greece | 8.0 | 79.24 | 9.9 | 4.4 | 106.8 | Greek |
Italy | 9.9 | 79.81 | 7.7 | 4.9 | 108.8 | Italian |
Chile | 11.63 | 76.77 | 8.1 | 7.3 | 7.5 | Spanish |
Israel | 12.0 | 79.46 | 9.0 | 5.9 | 99.7 | Hebrew |
Malaysia | 22.25 | 72.5 | 3.6 | 5.0 | 46.2 | Malay |
Malta | 79.01 | 7.8 | 6.4 | Maltese, English | ||
Czech Republic | 0.75 | 76.22 | 8.9 | 4.8 | 25.9 | Czech |
Slovenia | 3.0 | 76.33 | 10.1 | 6.4 | 28.5 | Slovenian |
Costa Rica | 6.67 | 77.02 | 6.6 | 4.1 | 56.8 | Spanish |
Cyprus | 7.5 | 77.82 | 5.6 | 5.6 | 70.3 | Greek |
USA | 13.0 | 77.85 | 5.1 | 7.3 | 64.7 | English |
Monaco | 79.69 | 22.0 | French | |||
Puerto Rico | 78.4 | 12.0 | Spanish, English | |||
Brunei | 75.01 | 4.8 | Malay, English | |||
Palau | 70.42 | 4.2 | English, Palauan |
Table 1. The country league table. The groups are choosen as follows: each country is sorted in the highest group such that it beats each country in the same and in lower groups for at least one indicator. Green fields are good values for the corresponding categorie, red fields are bad values.
Linux Hardware Support
This page and its sub-pages give information about Linux support for different pieces of computer hardware.
- The M-Audio Revolution 5.1 sound card.
- The Griffin iMic USB sound card.
- The ASUS A8V motherboard.
- Information about how to use Linux on a Apple Powerbook G4
- Information about how to use Linux on a Toshiba laptop
Wasting Time
Computers can be quite fascinating objects, which help you to waste a lot of time. I use them for this purpose regularly. On my pages here you can find the following things.
- Download of some computer programs I wrote, e.g. the game moon-buggy and the Wisent parser generator for Python.
- Information about Linux hardware support for devices I use or have used.
- Hints about setting up virtual servers with VServer on Debian.
- An overview over the many different date representations in Python.
- Hints about using the ALSA sound system.
- An illustration of the boot process of a Debian/unstable system.
- Information about using numerical linear algebra packages in your own C programs and about how to apply this to calculate the square root of a matrix.
Setting up VServers on Debian
This page explains how to use Linux-VServer to run several virtual machines inside a physical machine. A short overview over VServer can be found on the Wikipedia VServer page.
Terminology
In this text I will use the word host to refer to the physical machine the VServer setup is running on. I will use the word client to refer to the virtual machines running on this host.
VServer Host Setup
Kernel
To use VServer on Debian you will need a kernel with VServer support
patched in on the host. If you are using precompiled kernel images, you
need one with the string vserver
in the package name. On my
amd64 system I could use linux-image-2.6-vserver-amd64
. User
space support is contained in the two packages util-vserver
and vserver-debiantools
.
Jvterm
Introduction
Jvterm is a terminal emulator, somewhat similar to the Linux text console or the XTerm terminal emulator. Usually it runs in fullscreen mode, so you can use it to make your X11 desktop look like a boring text console ;-)
Some distinctive features of jvterm are the following:
- Use of anti-aliased fonts via the freetype library.
- Eight different virtual terminals. Similar to the Linux console you can switch between different virtual terminals.
- Scrollback buffer. Each of the virtual terminals has a scrollback
buffer, accessible via the keyboard (using
S-PgUp
andS-PgDown
). The scrollback buffer is preserved while you switch between the virtual terminals. - Unicode support. You can choose a Unicode locale via the
-c
option to get a terminal with full Unicode support. - Good terminfo/termcap support. The jvterm terminal emulator supports many text attributes like colors, bright and dim text, reverse display, and blinking text. These are readily accessible to programs via the curses or terminfo libraries.
- Selection support. Text from the display including the scrollback area can be selected via the keyboard and fed back into the input stream. This functionality is similar to what the gpm mouse server does.
- Built-in image viewer. The terminal emulator is accompanied by the jvterm-imview program, which can display a variety of image formats in the terminal. This is similar to the fbi image viewer on the Linux console.
Jvterm was implemented by Jochen Voss.
Using the ALSA Sound System
This page summarises things I learned while trying to understand and use the Advanced Linux Sound Architecture (ALSA) on my Debian GNU/Linux system. I would be happy to receive suggestions to improve or extend this web page.
Configuration
This section gives some help with ALSA configuration issues. In order to avoid complications, we avoid use of external programs in figuring things out.
- Is ALSA present in your kernel?
- Check for the presence of a /proc/asound/ directory. If the directory exists, you have ALSA support in your kernel.
- Why does program xyz not recognise my sound card?
- On current Linux systems there are several, partially conflicting ways
to access the sound card: using ALSA (this is what we aim for here), using
OSS (this is an older sound system, but still used by many programs), or
by connecting to a sound daemon like esd or
artsd (which in turn might use ALSA or OSS to
connect to the system). Probably your program is trying to use the wrong
method to play sound.
Programs using OSS can be used with ALSA by enabling the OSS compatibility layer of ALSA. You might need to load additional kernel modules to enable this. Check the file /dev/sndstat. If the file exists and can be read, you have the OSS compatibility layer enabled. It should list audio devices which correspond to the ALSA devices on your system.
Jochen's Sliding Picture Puzzle
Contents
Introduction
Jochen's Sliding Picture Puzzle
is a puzzle game which you can play in your web browser. It is implemented as an HTML5 app and requires a modern web browser with good HTML5 support to play.- If you simply want to try the game, you can go straight to the copy hosted on my server: play it now!
- Jochen's sliding picture puzzle is free software. Thus you can make your own version of the game, either just by including different images or maybe by making more ambitious enhancements like adding a high-score list. See the terms of the GNU Affero General Public License for details.
- You can study the program to learn about programming HTML5 Apps. Some things I learned while writing this program are presented in my tutorial on how to write an HTML5 App.
A screenshot of Jochen's Sliding Picture Puzzle
Programme
Für meine eigenen Programme verwende ich meistens die Programmiersprache C, manchmal auch C++ oder Python. Einige Programme, die ich im Lauf der Zeit geschrieben habe, finden sich auf dieser Seite. Vermutlich lassen sie sich nur auf Unix-Systemen compilieren. Über Kommentare oder Verbesserungsvorschläge zu den Programmen würde ich mich sehr freuen.
Mathe
- Fast-dm ist ein Programm zur Parameterschätzung für Ratcliff's Diffusionsmodell.
- Ich habe die Ziggurat-Methode zur Erzeugung von Normalverteilten Zufallszahlen implementiert.
- Die Bibliothek
jvrand
enthält einige Routinen zur Erzeugung von Zufallszahlen und zufälligen Permutationen in C-Programmen.- jvrand version 0.6.1, 2005-07-24
- archive: jvrand-0.6.1.tar.gz (379KB)
signature: jvrand-0.6.1.tar.gz.sig
sha1: d0c6e8e601bad43b3154bb210eeab546f008f31f
md5: 602fc7bb0cd859604d9953581086bbcc
- archive: jvrand-0.6.1.tar.gz (379KB)
- jvrand version 0.6, 2005-07-05
- archive: jvrand-0.6.tar.gz (374KB)
signature: jvrand-0.6.tar.gz.sig
sha1: 6f7b709f8f4c85cad2b00ebd1919c8d4a4dfd496
md5: ca9f1cbdbb89b73beda1ed8da567b97d
- archive: jvrand-0.6.tar.gz (374KB)
- Kommandos zur Erzeugung von Zufallszahlen beziehungsweise zufälligen
Permutationen. Die Kommandos sind als Hilfsmittel für die Programmierung
von Shell-Skripten gedacht. Das Packet benötigt die jvrand Bibliothek, die
es ebenfalls hier gibt.
- random-utils version 0.5.1, 2005-06-12
- archive: random-utils-0.5.1.tar.gz (177KB)
signature: random-utils-0.5.1.tar.gz.sig
sha1: b7bf0e0c1426cd98fb5db93b81613efd490b9dea
md5: 216fe2ca8dfc73e785cbc480ead77f6d
- archive: random-utils-0.5.1.tar.gz (177KB)
- random-utils version 0.5, 2002-10-13
- archive: random-utils-0.5.tar.gz (156KB)
signature: random-utils-0.5.tar.gz.sig
sha1: 049b2c8f9652790288d3ba93106dd08bf959ca67
md5: fea9601a955f39e8907fdf4ddc9180fc
- archive: random-utils-0.5.tar.gz (156KB)
- Das Programm XIsing simuliert ein stochastisches System, nämlich das Ising-Modell. Das Programm benötigt das X Window System.
- Das Programm graphcrypt implementiert als Spielzeug ein Verfahren der
Visuellen Kryptographie.
Es benötigt die Bibliotheken jvrand (von hier),
SDL und
SDL_image.
- graphcrypt version 0.2.1, 2005-05-30
- archive: graphcrypt-0.2.1.tar.gz (106KB)
signature: graphcrypt-0.2.1.tar.gz.sig
sha1: 9ceaafafae1c75a454ace27eeb588398a0ef5eb0
md5: cab57755183500d21c2e0bac00e600de
- archive: graphcrypt-0.2.1.tar.gz (106KB)
- graphcrypt version 0.2, 2001-09-18
- archive: graphcrypt-0.2.tar.gz (56KB)
signature: graphcrypt-0.2.tar.gz.sig
sha1: 27614c0e28782e44bcfc100a5cedb9b0292d557a
md5: 5b5edab171ccbd63bfa5b948c33083d3
- archive: graphcrypt-0.2.tar.gz (56KB)
TeX
- Ich habe einen TeX-Zeichensatz entworfen, der nur Symbole für die
natürlichen, ganzen, reellen und komplexen Zahlen enthält. Es gibt auch
ein Style-file um den Zeichensatz leicht unter LaTeX verwenden zu können.
- jvfonts version 0.4.2, 2004-07-01
- archive: jvfonts-0.4.2.tar.gz (59KB)
signature: jvfonts-0.4.2.tar.gz.sig
sha1: ac866006a83d4e74bbddea9be29e6996384b4726
md5: 8eaba3d0dcf1838634925a2b84b13309
- archive: jvfonts-0.4.2.tar.gz (59KB)
- jvfonts version 0.4, 2002-10-27
- archive: jvfonts-0.4.tar.gz (55KB)
signature: jvfonts-0.4.tar.gz.sig
sha1: 9e8cece9dd2b3f7be0476fc5d9b217e5c9d304b0
md5: 846604e030c9cf2348c0a86ecab594c0
- archive: jvfonts-0.4.tar.gz (55KB)
- Ich habe einen TeX-Zeichensatz entworfen, der nur aus den sechs
möglichen Augenzahlen eines Würfels besteht.
- dice version 1, 2007-05-27
- archive: dice-1.tar.gz (2KB)
signature: dice-1.tar.gz.sig
sha1: 8f0181864a410ec3307f9f6396d34a2d2acbb372
md5: 60bb9120e8ea0a9c40438c0d76677470
- archive: dice-1.tar.gz (2KB)
Spiele
- Das Programm
golist
enthält Scripte zum verwalten einer SQL Datenbank mit Go-Spielergebnissen. Es versucht dann, die Spielstärken der beiligten Spieler zu schätzen. Das Programm benötigt im Moment einen MySQL-Datenbankserver und die Python-Entwicklungsbibliotheken.- golist version 0.4, 2003-07-19
- archive: golist-0.4.tar.gz (24KB)
signature: golist-0.4.tar.gz.sig
sha1: 24771d0920759895425cab2e202ddf9974ccf194
md5: c5e7f467b3922b7aa6f5dd5f0d4525c4
- archive: golist-0.4.tar.gz (24KB)
- golist version 0.3, 2001-09-01
- archive: golist-0.3.tar.gz (343KB)
signature: golist-0.3.tar.gz.sig
sha1: 0fefc1f1c8fb9de0619524dac37bad33676010d6
md5: 47ee6df177e492d1e83b091dede0b6e5
- archive: golist-0.3.tar.gz (343KB)
- Das Spiel Moon-buggy wird auf der Moon-buggy download page beschrieben.
Sonstiges
- Wisent ist ein LR(1)-Parsergenerator für Python.
- Jvterm ist ein Terminal-Emulator, ähnlich der Linux-Textconsole oder dem Programm XTerm.
zettel
ist eine Mischung aus TODO-Liste und Terminkalender. Das Programm läuft im Text-Modus und ist in Python programmiert.- zettel version 0.2, 2005-05-29
- archive: zettel-0.2.tar.gz (61KB)
signature: zettel-0.2.tar.gz.sig
sha1: f463995c7ec99f70a54f5c7b5e4ee135364ca140
md5: 472589284adde45432fc368713d0e446
- archive: zettel-0.2.tar.gz (61KB)
- Das Programm SandUhr ist eine Art Wecker, der das X Window System und die GNOME Arbeitumgebung benötigt.
Linux on Soekris net4521
Summary
The Soekris net4521 is a small computer with an i386 compatible CPU for use in embedded devices. It also makes a very nice toy! Linux support for the device is excellent.
Linux Kernel
- Linux kernel config file:
config-2.6.22.5
This is a near-minimal config file to support the net4521 hardware. This config file has all drivers compiled in instead of using modules. In addition to the drivers necessary for the board I selected support for a few PCMCIA wireless cards. Customise this for your own needs. - Boot messages:
dmesg-2.6.22.5
These are the kernel boot messages obtained by booting a kernel image generated from the config given above.
References
- the Soekris net4521 product page
- the Soekris Wiki
- AMD's product page for the Elan SC520 processor
- hostapd
Sarge Release Schedule in view of GR 2004-003
This page illustrated the Debian voting system using the Debian General Resolution 2004-004 as an example. A detailed explanation and links to further resources can be found in my article about the Debian voting system.
Disclaimer
While this page tries to describe the outcome of the general resolution it is by no means official. The official outcome is of course determined by the Debian project secretary, who might have his own opinion about these matters.
A Map of the Internet
Figure 1. A map of the internet, showing where my email originates. Green dots stand for spam sources, red dots stand for ham sources, and the background shade encodes the spam/ham ratio for /8 netblocks. Black regions stand for unroutable addresses, where no external email can originate.
References
- the wikipedia entry about IP addresses
- xkcd's map of the internet
- ISI's census of the internet
ASUS A8V Linux Support
The ASUS A8V is a motherboard for use with 939-pin AMD Athlon 64 processors. This page summarises the Linux support for the board. If you have questions or additional hints, feel free to contact me.
Summary
Linux support for the ASUS A8V mainboard is almost perfect. Only a few minor features are not accessible under Linux.
component hardware identification status CPU Socket 939 works perfectly Memory 4x 184-pin DDR DIMM works perfectly SATA VIA VT6420 works perfectly
(RAID not tested)IDE VIA VT8237
UDMA133works perfectly Ethernet Marvell 88E8001
10/100/1000Base-Tworks perfectly Sound VIA8237
ALC850 AC97 codecworks
sounds a bit cheapTable 1. This table summarises the Linux support for the ASUS A8V motherboard.
Controlling the Geometry of an HTML Element
This page discusses how the get and set the size of an element in an HTML page. Some general information about how to use CSS and JavaScript in an HTML page can be found on my page about HTML5 apps.
Contents
Introduction
The geometry of most HTML elements is controlled by the CSS Box Model. Elements are assumed to be rectangular, being surrounded by some (transparent) margin and possibly a border. For container elements, there is also an inner margin, called padding, which keeps child elements at a certain distance from the container boundaries.
Fast-DM: Fast Diffusion Model Analysis
This page contains some information about the program fast-dm. Please note that this is not the official homepage.
Introduction
Fast-dm is a programm for fast parameter estimation in Ratcliff's (1978) diffusion model. With a Diffusion model data analysis it is possible to analyse data from any fast binary decision task. A diffusion-model data analysis is based on the distributions of both correct and erroneous responses. From these distributions a set of parameters is estimated that allows to draw conclusions about the underlying cognitive processes (Voss, Rothermund, & Voss, 2004).
Griffin iMic Linux Support
The Griffin iMic is a simple USB sound card. It is mostly used as an USB audio adapter for Apple computers which lack built-in sound support (for example the PowerBook G4 has no microphone input) but the iMic also works fine with other computers. This page summarises the Linux hardware support for the device. If you have questions or additional hints, feel free to contact me.
Summary
Linux support for the Griffin iMic is very good.
Juggling and Unicycling
My favourite juggling props are balls. But to some extent I can handle clubs as well, and I also own a unicycle.
- I sometimes visit the Warwick Juggling Society. Unfortunately this term the university was unable to provide a room for us. Thus we meet sometimes, somewhere.
- Another Coventry juggling group is the Coventry Community Circus, which meets each Tuesday in the Artspace building in Coventry.
- When I lived in Kaiserlautern (Germany), I used to visit the juggling group at the University of Kaiserslautern. Current information about the jugglers from Kaiserslautern can sometimes be found on the Kaiserslautern juggling mailing list.
- Since I am a mathematician, I am interested in the theory of juggling. You can learn a little bit about site-swaps (a mathematical way to describe juggling patterns) on my page about the mathematics of juggling. A collection of two-person patterns can be found on my ball passing patterns page.
- More Photos can be found in my digital, almost blinking, fully automatic photo album.
M-Audio Revolution 5.1 Linux Support
This page summarises the Linux hardware support for the M-Audio Revolution 5.1 sound card. If you have questions or additional hints, feel free to contact me.
Summary
The M-Audio Revolution 5.1 sound card is reasonably well supported under Linux with ALSA version 1.0.12 or newer. Support was poor with earlier ALSA versions.
Sound quality is very good and, if you do not need the headphone output (it does not yet work), the M-Audio Revolution 5.1 is a nice sound card for use under Linux.
Mathematische Bildergalerie
Diese Seite enthält einige Bilder, die ich zu unterschiedlichen Zwecken irgendwann einmal erzeugt habe. Jedermann darf diese Bilder gerne für eigene Zwecke verwenden und weiterverbreiten, aber natürlich freue ich mich, wenn ich als Quelle genannt werde. Durch Anklicken der kleinen Bilder erhält man größere Versionen.
- Ein schönes Zufallsprodukt.
- Ein Pfad einer stochastischen Differentialgleichung mit vorgegebenem
Anfangs- und Endpunkt:
- Einige "klassische" Fraktale:
Die Koch-Kurve Das Sierpinsky-Dreieck Viele Quadrate - Anfangsstücke von Brownschen Pfaden. Der äußere Rand ist rot markiert.
Dies sind zufällige Fraktale. Alle drei Bilder sind nach demselben
Mechanismus erzeugt.
- Zustände des Ising-Modells. Dies sind zufällige Bilder, die mit mit
meinem XIsing Programm erzeugt sind. Der
Parameter β ist die
inverse Temperatur
.Matrix Analysis and Algorithms
This page contains lecture notes about numerical linear algebra which I wrote together with Andrew Stuart. The notes form the basis of the MA398
numerical linear algebra
module at the university of Warwick.Contents
- Vector and Matrix Analysis
- Vector Norms and Inner Products
- Eigenvalues and Eigenvectors
- Dual Spaces
- Matrix Norms
- Structured Matrices
- Matrix Factorisations
- Diagonalisation
- Jordan Canonical Form
- Singular Value Decomposition
- QR Factorisation
- LU Factorisation
- Cholesky Factorisation
- Stability and Conditioning
- Conditioning of SLE
- Conditioning of LSQ
- Conditioning of EVP
- Stability of Algorithms
- Complexity of Algorithms
- Computational Cost
- Matrix-Matrix Multiplication
- Fast Fourier Transform
- Bidiagonal and Hessenberg Forms
- Systems of Linear Equations
- Gaussian Elimination
- Gaussian Elimination with Partial Pivoting
- The QR Factorisation
- Iterative Methods
- Linear Methods
- The Jacobi Method
- The Gauss-Seidel and SOR Methods
- Nonlinear Methods
- The Steepest Descent Method
- The Conjugate Gradient Method
- Least Squares Problems
- LSQ via Normal Equations
- LSQ via QR factorisation
- LSQ via SVD
- Eigenvalue Problems
- The Power Method
- Inverse Iteration
- Rayleigh Quotient Iteration
- Simultaneous Iteration
- The QR Algorithm for Eigenvalues
- Divide and Conquer for Symmetric Problems
Download
The script is available for download here.
Parallel
Contents
Introduction
Most modern desktop machines have considerable computing power, provided by one or more multi-core CPUs. Parallel, the program described on this page, provides a simple way to use this parallelism in the case where just a number of independent programs needs to be run. Parallel has the following features:
- Parallel reads a list of commands from a file,
- it starts as many of these commands as there are CPU cores in the system, and
- as soon as one of the jobs finishes it starts a new command from the list until all jobs are processed.
Figure 1. This is an example of how 12 jobs could be scheduled over 3 cpus.
Per-option quorum
This page discusses a possible feature of the Debian voting system. Here I want to examine the following voting system:
Let V(a,b) be the number of votes which prefer option a over option b. Let R be some positive number (the quorum).
- step 1:
- remove each non-default option x, where V(x,default) < R
- step 2:
- Use Condorcet voting with Clone-proof Schwartz Sequential Dropping on the remaining options.
- step 3:
- In case of a tie after CpSSD the elector with a casting vote chooses the winner from the Schwartz set
Which of the criteria from http://electionmethods.org/evaluation.htm does this voting system preserve? In the following examples D denotes the default option and a vote like ABD means
A is prefered over both B and D, and B is prefered over D
.Quorum in the Debian Voting System
The Debian voting system differs from plain Condorcet voting in several points. For example it introduces the concept of a
quorum
. Traditionally a quorum should assert that no decision is made without sufficient support among the electors. The Oxford Advanced Learner's Dictionary of Current English defines quorum as thenumber of persons who must, by the rules, be present at a meeting (of a commitee, etc) before its proceedings can have authority.
SandUhr
Introduction
SandUhr is an alarm clock, which is designed as an hourglass. The program uses the X Window System and the GNOME desktop environment. The alarm is delivered to you by either ringing the console bell, by playing a sound file, or by starting an external program of your choice.
The program is fully integrated into the GNOME application framework.
- It uses the GNOME help system to provide an extensive manual.
- Use of CORBA: The program features a full-grown CORBA interface. So you may control the SandUhr from within your own programs or plug in custom alarm actions.
- It has support for the GNOME window manager hints.
- Drag and drop: you may drop a color onto the timer to change the sand's visual appearance.
SandUhr was implemented by Jochen Voss.
XIsing
Introduction
The Ising model is a simple model from statistical mechanics, which describes a system of coupled spins. The spins are modelled as cells which can be in either of two states. In the pictures below each pixel corresponds to one cell, and the states are represented by the colors black and white.
The program implements two iterative methods to simulate states of the Ising model: the Gibbs sampler and the Metropolis algorithm.
- Vector and Matrix Analysis