I write quite a lot of software, for many different purposes and using many different languages. Most of it ends up being handy tools for my own idiosyncratic needs. Some of it becomes mature enough for being potentially useful for a broader audience.
I extensively use Free software, so most software I write I also naturally release as Open Source, usually under the GPL license.
The main thrust of this project is to vastly enhance the coding theory part of SageMath. We want to develop a whole range of functionalities for coding theory that may also be useful for other areas: combinatorics, cryptography, computer science, etc. Our intended audience consists of researchers, students, and teachers. We also keep in mind the engineering community.
This is a library for experimenting with algebraic coding theory in Sage, with an emphasis on decoding algorithms. It contains many decoding algorithms for algebraic codes, in particular a rather efficient implementation of the Guruswami–Sudan algorithm.
The code is written in the Sage extension language to Python. For anyone working in algebraic coding theory, it should provide a much stronger basis than what currently exists in Sage, and if one is working on decoding algorithms, it is quite powerful indeed.
I implement most algorithms I publish, and when I do, I always put the implementation online under GPLv3. Many algorithms are merged into Codinglib, but in that case, the implementations you find below will demonstrate how to call the relevant functions.
It is structured into .sheet-files, which are clear-text analogues of the Sage Notebook’s worksheet files. I edit these using sage-mode for Emacs, using the
One feature I lacked from Sozi is to make objects appear and disappear on certain frames. This feature has also been requested on the project page. Based on a manual solution from Sozi’s main developer, senshu, I wrote a small Python script for automating the process as well as making it much more flexible.
I can’t help putting a link the page of my Christmast-passion: creating small pieces of braided paper-art called “julehjerter” or “Christmas hearts”. All Danes learn how to braid the standard checkerboard-pattern, but few take the pasttime to the extreme that I do every year.
I have been designing, cutting and braiding Christmas hearts since I was nine years old. I made this web page as inspiration for other people that the traditional limits of Christmas hearts can be bent, twisted and even broken.
This repository contains the following tools for simple, automated fixes in BibTeX files:
Musicians often play songs from lyrics annotated with simple chords, since they know the basic melody and tempo beforehand. Such texts are usually typeset in Notepad or similar using a fixed width font, such as the songs on Ultimate-Guitar.com. The result is usually visually jarring, prints even worse, and takes up a lot of space on screen or paper.
chords is a tool for automatically converting such chord-annotated lyrics into beautifully typeset pdfs. One has further control, such as varying font size and multiple columns.
Based on the theoretical description in the PhD thesis by Christoffer Rosenkilde Nielsen, Christoffer and I implemented a Horn logic clause solver in OCaml. The solver precisely solves any formulas in the class H1, but uses an iterative refinement framework invented by Christoffer for precisely or approximately solving much outside this class.
The HornSolver is the computational core of CryptoKlaim, a language developed by Christoffer for describing cryptographic communication protocols and analysing them for confidentiality and integrity. I implemented CryptoKlaim as well as a user-friendly front-end for reading off the analysis results.
Things I do with Emacs (and for which I have specific setups):
My Emacs use is powered by extensive customised setup. Notably:
I put my .emacs online in case it is useful for others.