lacos' download page (GPL'd sources)

Terms of Page Use. If you click any of the download links below, you accept that (1) I will log your IP address along with a timestamp, the link target, and your User-Agent, (2) I will keep the log entry for undetermined time, (3) each one of these programs 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, (4) there is absolutely NO WARRANTY for any of these programs.

Download: lbzip2.tar.gz - A multi-threaded bzip2/bunzip2 utility that employs multiple threads and an input-bound splitter even when decompressing .bz2 files created by standard bzip2. Uploaded on 03-Mar-2010. NOTE: The 0.x versions of lbzip2 are legacy. Please see the new 2.x development tree here, by Mikolaj Izdebski. Lbzip2 has a dedicated website now. lbzip2's scaling on the NIIFI's supercomputer

Remark: the file "lbzip2.tar.gz" above is actually a (gzipped) ustar format pax archive I created with GNU tar.

Packages (external links):

Some old reports:

This is what I distilled from them. (Obsolete.)

Download: lxz.tar.gz - Parallel xz-like compressor utility. Forked from lbzip2-0.23. Uses liblzma. Uploaded on 18-Dec-2010.

Download: udp_copy2.tar.gz - Non-interactive data transfer over UDP. Uploaded on 01-Oct-2009.

Download: pak.tar.gz - A restartable multi-file piping tool with on-the-fly encryption. Uploaded on 01-Oct-2009.

A short description of the stuff above is available at

llzip has been replaced by plzip as planned. It is maintained / developed by Antonio Diaz Diaz now.

Download: edp.tar.gz - Externally Driven Parser. A small, very slow C library to create and feed LR(1) parsers. The application feeds bytes to independent parsers as those bytes become available (for example, the application blocks on select(), and forwards incoming bytes from sockets to corresponding parsers). This project didn't get past being merely a mental refreshment for me: although the code is there, the library is too slow, no real application was written against it (thus the library's usefulness is doubtful, to say the least), and the documentation was just started. Frankly, I lost interest, after seeing how slow it is. Lexers and LALR(1) were invented for a reason. (Since, sloppily speaking, LR(1) is broader than the DFA's used for regexes (lexers) and also broader than LALR(1), I figured I could do without them. Theoretically I could, in practice, I couldn't. Anyway, the overhead my naive implementation introduces probably outweighs the overhead inherent in "pure" LR(1).) If you need real stuff, not an abandoned, broken toy, use LEMON and/or Ragel. Uploaded on 01-Oct-2009.

Download: forward3.c - Simplistic, data-logging TCP forwarder with (not-really tested) support for urgent data. In my experience, not completely unusable for debugging SOAP or other plain-text protocols, and if you have access to an HTTP proxy, then also handy for recording your own web-browsing sessions. Should work on Cygwin and OpenVMS, too. Uploaded on 01-Oct-2009.

Download: udpconn2.c - A variation on udp_copy2 above. You start up the client and the server manually on both ends, and this doodad forwards a single (full-duplex) TCP connection over UDP (no urgent data). You'll need lacos_rbtree.[hc] from edp.tar.gz to compile this. It runs on Cygwin as well. It keeps me connected to an sshd SOCKS server over a horrible WiFi link, where TCP doesn't survive for twenty seconds, breaking all my ssh-forwarded sessions too. I could probably merge the ACK and data packets (just as I could have done with udp_copy2), but again, somehow I can't feel the urge. It works reliably, it's done. See also: iproxy, Airhook, udptunnel, pwnat. Uploaded on 01-Oct-2009.

You can reach me under

Purpose of Logging. Curiosity (whois and reverse DNS lookups). Counting unique hits. Computing statistics I happen to think up.

Privacy Policy. I won't give the log entry to anybody. I won't give any information derived from the log entry, which could be used to reconstruct the IP address, to anybody. (The Service Provider hosting this page has, naturally, its own separate logging capabilities and policy, which obviously don't fall under my control.)

The log entries are stored in a file under a non-public directory in my web-space. I named this directory after the hex representation of 256 bits from my /dev/random at home.

I protect your IP address from unsolicited redirects / deep links from third party sites with an SHA1 hash value. The hash value is generated afresh into the download links above each time you fetch this page. It depends on your IP address, a timestamp, and a fixed secret (further 256 bits from my home /dev/random) I don't disclose to anybody (the Service Provider can access it, however). The hash is valid for 300 seconds. When your client requests any one of the download links above, the hash is recomputed for the past 300 seconds. The request is only served (and your IP address logged) if the hash provided with the link matches one of the 300 recomputed hashes. This means that a third party can't trick you into being logged by me, because the request is refused if your browser knocks on the door with no hash, or a hash generated for a different IP address, or a hash too old. It is extraordinarily unlikely that anybody could generate a correct hash for any specific IP address of her choice without the secret. Neither the secret, nor the timestamp, nor the IP address can be deduced from any hash value.

Invalid requests are honored with a short error message and an offer to come to this page.

Why this fuss. My country - Hungary - considers IP adresses personal, private data. Logging is automatically allowed for traditional operational purposes. However, since I don't operate this site, I need your explicit consent to log your IP address.

If you don't like the above, please don't download anything from here. The programs are released under the GNU GPL, thus you can get them from others too. Alternatively, feel free to use any anonymizer software or proxy. (Still, your IP address must not change between your fetching this page and following a download link above).

$Id: index.php,v 1.86 2013/07/16 21:23:07 lacos Exp $