Gillux's Hacks

De Wiki.sec.

This page is a shitty translation of Hacks de Gillux. Please forgive my errors as English isn't my mother tongue.

Because nothing is never really finished, here is a little list of things I've done or in which I participated (in a chronological order of my memory).

Sommaire

Software on TI-82

Some notable programs written in basic (or more precisely TI-basic), when I was bored at high school :)

I've also worked on a serial terminal emulator written in assembly. It worked more or less but I've let it down because the TI-82 havn't any reliable time base (the cpu have a variable frequency according to the batteries state), and the interruptions (200/sec) aren't frequent enough to use them to check the link port status (thus we must call a routine everytime for this).

Nevertheless, I've been recently (05/26/2007) able to buy a second-hand TI-82 because my own one were stoled just before my final exam. I'll continue this terminal because I've new ideas (such as to dynamically syncronise the calculator waiting the first byte and measuring the time between the start bit and the stop bit).

Rollbot

Here it's running with a power supply but it can also work with batteries

A robot done in second year of high school. We were 3 to it but, I've nearly done everything alone (I admit I wanted it a bit ;). It rolls with 3 wheels (with 2 drive ones), tries to avoid obstacles it meets, and is controlled by 2 buttons to change the speed and/or to run backwards. It's controlled thanks to a PIC 16F84 micro-controller programmed in assembly. We (I) have also done a dossier (eh yes we were obligated) of course written in latex, and here is its sources.

Obstacle detection (the red diode ligths)

Nixshare

I've a bit contributed at my level (at this time) in this filesharing program. More informations on the original creator page.

Quick3Ded

With a certain bash experience acquired thanks to nixshare, I've run into this program which is a q3ded frontend, the quake 3 dedicated server. Seba has already created a dedicated page which needs improvements.

Dotsec neverball set

Alban and I have created some levels for the game Neverball. The unique release of the set is still there and havn't been improved for a long time, but I got back to it recently and the set is now maintained with svn on dotsec.net, retrieve it typing:

svn co https://dotsec.net/repos/nb-levels/trunk/ nb-dotsec

Lycanobot

Lycanobot is a port of the card game Les Loups-garous de Thiercelieux (english equivent is Mafia) for IRC. It's an IRC bot written in perl who plays the gamemaster. It aims to do everything a gamemaster must do. To check it out type:

svn co https://dotsec.fr/svn/lycanobot/trunk/ lycanobot

Converttt

Convert Time Table, a perl script which converts the shitty timetables (this has to be said) of my IT school generated by CELCAT into good old formatted timetables. It has to be used like a CGI script, executed by a webserver and generate a proper HTML page with timetables found on the school server.

Some interesting features:

  • The "old school" rendering is generated by CSS
  • It downloads local copies (cache) of school timetables (some XML files), then use them if they havn't changed, or download them again if they are new.
  • Pages without errors (validated by the w3c)

It's on the SVN of this server, do download it type:

svn co http://dotsec.fr/svn/converttt/trunk/ converttt

It may also be still in test in my private directory there.

Webdiff

Again a little quick and not dirty thing, but usefull: a web front-end of the diff program. You just copy and paste two texts to get the diff, with syntax coloration of your choice. You can also modify the size of the textareas. The script itself can give you its own source.

WebGPG

Still in the little-handy-web-things-usable-from-everywhere way, an interface to GPG to encrypt messages with people's public keys. It allows to look for a public key and encrypt a message with it, which can by copy-pasted of typed. With one more click you can send the encrypted block on http://paste.pocoo.org/. It's also handy to give someone a link with your key directly in it, to let him to send you a confidential information (through https of course). For example, you can thanks to this simple link (from which you'll remove the underscore at the end, it's to prevent my email to be index on a page) send me a confidential message.

The sources are available on the SVN of this present server. To get these, type:

svn co https://dotsec.fr/svn/webgpg

Mcfs

Mcfs means mencoder filesystem. It's a first shot (that I would improve one day, if I get the time), already functional of a FUSE based filesystem which transcodes on the fly videos with mencoder. So it's still a very alpha program; if you don't understand the code below just forget it. Mcfs virtually reproduce another directory of videos, adding in each subdirectory a virtual directory. This directory shows the same content as its parent except that when you open a video in it, it's transcoded by the program lauched by the command line read from /tmp/mencoder_cmd.

Concrete use case:

$ mkdir vids
$ mcfs /my/amazing/fullHD/videos/ vids/
$ ls /my/amazing/fullHD/videos/
big_buck_bunny_1080p_surround.avi
$ ls vids/
_onthefly transcoding
big_buck_bunny_1080p_surround.avi
$ ls vids/_onthefly\ transcoding/
big_buck_bunny_1080p_surround.avi
$ mplayer /my/amazing/fullHD/videos/big_buck_bunny_1080p_surround.avi
[it's slow as hell…]
$ cat > /tmp/mencoder_cmd
mencoder %i -o %o
-oac mp3lame
-ovc lavc -lavcopts vbitrate=6000
-vf scale=800:-3
-of lavf -lavfopts format=asf
^D
$ mplayer vids/_onthefly\ transcoding/big_buck_bunny_1080p_surround.avi
[mcfs runs mencoder which sends us the video downscaled at 800px width, in MPEG4 at 6000kbytes/s, it's not slow anymore]

The directory vids/ can be exported (with NFS or Samba for instance), and the transcoded file red by a slow machine, while a powerful one do the transcoding. If it's exported with a fuse-based filesystem like sshfs or smbfs, use -o direct_io. Note that we use the ASF format, it's because it's the only one where I find mplayer not trying to seek and fail. The NUT format is also working, but only a few players support it. It's possible to incrust ASS subtitles thanks to the mencoder multi-thread version easily compilable.

The source code:

svn co https://dotsec.fr/svn/mcfs/trunk/ mcfs

KF1

One day, I get bored that pressing F1 in firefox opens-up the help page, because when I need help about firefox I don't take this approach. Seeing the removing of this shortcut was in the dev version but weren't going to be releashed until I-don't-know-when, I wrote a tiny extension, KF1 (for kill F1) that deactivate this shortcut.