Here I will write about projects I'm participating in. For the most part it will be programming projects, though. Note that it's only the recent ones I've included but some have been posted on the blog.
Qt Chat
Network chat written in C++ using Qt. It has a centralized console server, which manages the clients and broadcasts messages to everybody, and a GUI client.
Meagps
GPS application for Android SDK API 7. It tracks how long a distance it has moved, the average/current speed etc.
DBMgm (Database Manager)
Easy, self-contained database manager written in Java. Create tables and use templates to view the data in different ways.
CAPTCHA generator
Generate CAPTCHAs fast and easy:
$cap = new Captcha(800, 200);
$cap->genDefaultCaptcha("Hello World");
header("Content-Type: image/png");
$cap->outputImage();
Truly random numbers from Random.org
Retrive truly random numbers from Random.org from a daily generated file of one mebibyte. Below it is shown how to use it:
>>> import random_org >>> s = random_org.get_daily_stream() >>> random_org.randbit(s) 0 >>> random_org.randint(s, 1024) 83
Huffman coding
Lossless data compression using Huffman codes in Standard ML.
Burst
Burst is an operating system I'm developing in C/ASM.
sha.py
This is the implementation of the Secure Hash Algorithm (SHA) 1, 256, 383, and 512. Below it is shown how to use it:
>>> import sha
>>> data = sha.str2bin("All your base are belong to us!")
>>> sha.digest(data, "sha-512")
'01001101001000000100100101101010001111100001110011111010001101110
01111000100101111111100011100001010101111010100111010011000100000
11111011011001101010111101101000101100011111001000100010010001010
11111111000110011101111100111011111011100001010111000101110101001
10010100111100100001101000100001101000000010100001100111001110000
10010000101110011111001000010111111110000101100111011111011110001
11111100000001111101110110100011110110111110101111000101110100001
011100110010001011001001001110001011101000111110011100111'
>>> sha.hex_digest(data, "sha-512")
'4d20496a3e1cfa373c4bfc70abd4e9883ed9abda2c7c88915fe33be77dc2b8ba9
94f21a21a0286738485cf90bfc2cefbc7f01f768f6faf1742e6459271747ce7'
snavs_collect.py
As a little dive into Python, I'm doing this program that will scrabe an email account using IMAP4 and save it locally (attachments as well). As a little extra it will generate an HTML file for browsing through them.
Crypt Archive
In my Cryptography course I'm implementing (in C++) the various mono- and polyalphabetic block and stream ciphers and other cryptosystems.
Sendfile
More to come.
GWarDrive
More to come.
Bacon Language
A friend and I recently (may 2009) commenced the development of a new programming language. We dubbed it BACON. It is written in C++ and harnesses the power of LLVM. If you want to try it out you can checkout the repository. Any comments are welcome!
As a side node, I would like to point out that it is purely written by computer science students at DAIMI, University of Ã…rhus, Denmark.
Arithlang
The name stands for "arithmetic language" and that is exactly what it is. All input is interpreted as an expression with the operators * / + - ^ and the mathematical functions sin, cos, tan and sqrt. The only datatype is an arbitrary precision double, so no type checking is necessary. I've made an interpreter (ali) and a compiler (alc) for the language. The interpreter is simple and supports variables:
> $var = 1+2-(3*(4/(5^6))) > vars $var = 1+2-(3*(4/(5^6))) > $var 2.999232 > 999999999999999999999999*999999999999999999999999999999999999999999923454953945454345435 999999999999999959416724456350362731491996089648451439669739009806703922950954425516032.000000 > sin(cos(0.9))-2^8 -255.417655
The compiler produces a .bc file which is LLVM's byte-code format. The result will be produced by invoking lli (part of LLVM) on it, like this:
% cat test.a (1+(6*((1*8)-3))*2)+2 % ./alc test.a writing bitcode file: test.a.bc % lli test.a.bc 63.000000
Some inspiration was found in the Kaleidoscope language defined on the LLVM site.
letip.dk
If you ever have had problems remembering IP addresses, and you don't have a static one at that, then this project might help you. By having either a small program running locally, or by using the web interface, you can make your domain point to that computer running the application. It is free and you get the domain <username>.letip.dk, to use with the application, if you don't have one yourself.
X10 Remote Driver
More to come.




![[FSF Associate Member]](/gfx/emblems/fsfmem.png)