Jan Kratochvil
Projects Products GIT Resume Contact


Project List of Jan Kratochvil


UNIX UNIX-devel Web Amiga MS-Windows MS-DOS Patches


Captive: The first free NTFS read/write filesystem for GNU/Linux

This project is no longer maintained.

Project implements the first full read/write free access to NTFS disk drives. You can mount your Microsoft Windows NT, 200x or XP partition as a transparently accessible volume for your GNU/Linux.

This compatibility was achieved in the Wine way by using the original Microsoft Windows ntfs.sys driver. It emulates the required subsystems of the Microsoft Windows kernel by reusing one of the original ntoskrnl.exe, ReactOS parts, or this project's own reimplementations, on a case by case basis. Project includes the first open source MS-Windows kernel API for Free operating systems. Involvement of the original driver files was chosen to achieve the best and unprecedented filesystem compatibility and safety.

As opposed to other projects this is currently the only software supporting the full read/write access including the possibility to create/delete files, modify directories etc.

   Captive Icon

Partition Surprise: GPLed Partition Magic clone

Partition Surprise is a GPL partition managing software for GNU/Linux. Partition resizes, moves and conversions is implemented. Limited support of operations on mounted ext2-filesystem included as well.

   Partition Surprise Icon

PerlMail: Perl mail processor - procmail(1) successor

Successor to procmail(1) and Mail::Audit. It supports Perl-rules filtering, dynamic client IP, mobile SMS forwarding, Mutt integration, Nokia Communicator contacts directory integration.

Use if you like: store "=spam" if ($_=mimehead(body_first())->mime_attr("Content-Type")) && m#text/html#i;

mdsms: Mobile Device SMS Tool

Program sends NOL or NGG files as Nokia operator logo or group graphics through Nokia Communicator 9110 (9000/9000i is not compatible). Usually you need to have either infra-red port in your computer or special FBUS cable to be able to use conventional logo-uploading tools (such as gnokii). This program uses only standard modem cable and the integrated FaxModem capability of 9110.

   mdsms Icon

badblock-guess: Data recovery from a damaged disk

badblock-guess will recover all readable sectors of the disk in minimal time while trying to prevent disk read retrying head recalibrations.

   badblock-guess Icon

xbelnormalize: Bookmarks .xbel file normalizator

Meaningfully version control and read/write-share (CVS etc.) your browser bookmarks file of format XBEL - XML Bookmark Exchange Language. This format is used at least by the Galeon web browser. This tool drops any timestamps and other dynamic parts and finally reindents the file to unify it.

IRCon: InfraRed remote control hardware

Software package for custom simple hardware connected to PC parallel port and transmitting infrared singals to fake real remote TV/video controllers. Hardware is also equipped with receiver which is only used during development to grab and decode original signals.

   IRCon Icon

Gnome xBill: xBill game rewritten with network support and Gnome/GTK+

Rewritten classical xBill game.

Features list: Gnome/GTK+ UI, network gameplay, C++ no longer required, portability.

   Gnome xBill Icon

tcpoverudp: Forward TCP connections over UDP without root

Does your link suffer from a high packet loss (up to 70%)? Do you have a UNIX account in public Internet but no root privileges access there? This tool can provide you a reliable fast TCP (web proxy + SSH) connectivity while constantly retrying transmissions on link of any quality.

udpgate: UDP packets gateway

UDP Gate will forward packets from arbitrary clients to a single UDP server. Features optional Gnome user interface and automatic invocation during system startup. Program is provided only with fixed server address.

harpy: ARP spoofer of nonexisting ethernet addresses

Would you like to setup so-called proxyarp but you do not know the specific address as you need to proxyarp any address anybody would ask for? It may be useful for Plug & Play-like zero-configuration networks.

This project is a GPLed part of my product: HotelGate: Internet Public Access Gateway

netdnsspoof: Network DNS proxy spoofing any nonexisting names

Would you like to catch requests to any even-nonexisting DNS queries on your network? It may be useful for Plug & Play-like zero-configuration networks.

This project is a GPLed part of my product: HotelGate: Internet Public Access Gateway

pipebuf: UNIX pipe realtime buffering

You can buffer realtime data such as audio stream by inserting this program with traditional "UNIX filter" behaviour. It reads as fast as possible into its cache and also in the same time writes as fast as possible to the output.

inetdmx: xinetd(8)/inetd(8) on-demand servers multiplexor

Designed for Apache httpd - do you have some resource intensive server which is used only occasionally? Such as shadow copy of your primary server for testing purposes.

line9k: Modem / Nokia 9110 GSM data gateway control, charger

Daemon waits for incoming PPP data connection, authorizes it and answers it.

Scheme of computer controllde hardware charger for Nokia Communicator 9110 is supplied. It keeps the Nokia battery fit by automatically controlled battery charging cycles.

   line9k Icon

ppp9k: Connect Nokia Communicator by serial PPP to your LAN

Script will connect Nokia Communicator 9000i or 9110i through your local GNU/Linux PC Internet connection. You will also need Nokia Communicator utility Advanced PPP Settings.

redirector-ad: Banner killer as Squid redirector filter

Scripts discarding specified graphical images (read 'ads') referenced from web pages. Unlike zillions of other such packages there is no need for separate administration of another daemon.

   redirector-ad Icon

tcp_rto: Linux kernel maximal TCP round-trip-time patch

Solve your problems with network connection dropping too much of your packets. It forces Linux kernel to insist repeating the packages to prevent slowdown of the TCP connection up to its unusable state.

wayback: Shift system time backwards for a specific application

This programs is userful for time-limited demo versions, of course.

Just set environment variable "WAYBACK" to the number of seconds to shift the system time back. Set "LD_PRELOAD" to the provided libwayback.so and run your demo program.

tac_plus auth: Cisco TACACS+ NAS host based authorization

Patch provides complete freedom of specifying any configuration changes depending on the specific NAS the user is being logged on. This involves different enable password, NAS keys but now also: various specific commands, permitted services etc.

   tac_plus auth Icon

SSH-1 patch: SSH-1 KeepAliveData and OnDemandForward features

tcpdump ASCII: tcpdump(1) patch for better output readable as ASCII

Makes the text messages of tcpdump(1) readable when option -x is used.

KIX: Free protocol-compatible Kali server equivalent

Server used on GNU/Linux as a replacement for proprietary KaliNix network game server.

timeplan: Calculate statistics from your personal time tracking notes

Software to do summaries of time log - what have you spent much time on. The greatest effect to me was just the writing of such time log: Consecutively you do not spend such time on useless issues as you would be forced to write such event to your log.

   timeplan Icon

ssht: Unattended intranet host accessibility by SSH tunnel

Do you need to admin remote host placed in the intranet behind firewall out of your control? If the firewall performat NAT (masquerade) where you can connect from the intranet to the outer world by SSH you can use these security safe scripts.

If you are able to set up port forwarding on the firewall you do not need any such scripts. In the case of HTTP-only proxy you cannot use these scripts - look elsewhere.

smbfs patch: Linux kernel smbfs acceleration patch

Accelerate twice the copying transfer rate for client GNU/Linux from SMB server share (Microsoft Windows).

Middleman port: HTTP proxy ported to FreeBSD

HTTP proxy server Middleman capable of returned data mangling has been ported to FreeBSD.

fixhtml: Convert HTML files URLs to relative ones

Program translates the URL references in your downloaded web pages to be relative and therefore browsable without Internet access.


332: AmigaOS kernel port to embedded Motorola 68332

Core of the AmigaOS kernel (exec.library) ported to embedded Motorola 68332 computer. Reusable as OS for your embedded device suitable for developers with AmigaOS experience.

   332 Icon

AutoGen: autogen.sh while supporting CVS/.rpm/.deb

Projects usually have their autogen.sh script files to run autoconf(1), automake(1) and similiar tools. This project has some additional features:

checkstatic: C sources symbol attributes checker

Scripts gives additional warnings not provided by GNU C Compiler such as dead code declared as global in separate file, missing static keywords etc.

It can get very valuable during stripping functionality off of a big package for embedded resource-limited machines.

cvsutil: Clean CVS checkout working files or safely change CVS/Root

List the specified types of files and safe settings of CVSROOT for already checkouted package. As an example of its many applications can serve a handy prevention of grepping built files: grep -w wanted_sym `cvsfiles`

staticbuild: Fully static binaries build - GNU/Linux vendor independence

There exists too many GNU/Linux distributions - vendors - and any produced binary is not compatible with all of them due to the shared libraries and configuration files dependencies. Due to many hardcoded shared libraries it is no longer possible to just use gcc -static. These patches provide the functionality you would expect from: gcc -static

cvsbranchdiff: CVS Branching Utility

During patching of foreign CVS trees you have to regularly import them as CVS does not support multiple repositories. There is a problem with new or removed files, this simple tool will take care of them.

Int13Sniff: Trace PC bootloader disk operations

Developer tool for PC boot loading analysis. Report all sectors being read to display, back to its own floppy disk and/or to serial port(s).

   Int13Sniff Icon

KernelWare: Linux kernel drivers in userland for their debugging

Do you also find debugging of Linux kernel drivers a nightmare? Would you like to be able to run them as normal userland process including fancy gdb debugging and SIGSEGV-guarded operation? Here you are!

KernelWare provides stub-style emulation of core kernel functions and is able to link with already pre-compiled modules. No special compilation flags needed, just link the .o module of the driver with KernelWare and you will get standard executable.

oslik: Prolog example solving logical puzzle Oslik

Solution calculator of a logical game / mathematical problem consisting of simple state search. Software is written equivalentnly both in C and Prolog for comparation.

mot2as: Convert Motorola to AT&T/GNU assembler syntax

Do you need to compile under UNIX assembly sources for Motorola 68k family of processors? You have probably already found out that original Motorola syntax is not suitable for GNU assembler which uses a bit different (AT&T style) syntax. Using this very simple program you can convert between these two.

wllib: Graphics library for crossplatform line drawing

This library should make you generically use line drawing on the following platforms: UNIX/X Windows System X11 (libX11), UNIX/SVGAlib and AmigaOS.

vblib: High performance memory streams library

Enables application to easily do input/output functions (like read/write, printf etc.) with memory streams while using performance effective functions. Simple buffer copying/moving would be possible but it would case a major performance hit if not using algorithms implemented in this library.


Rotation: Nokia logical game "Rotation" solver

At least Nokia 3210 offers game Rotation, this little software will tell you the optimal solution steps for the given game board situation. The goal is to get board with 1 2 3, 4 5 6, 7 8 9, in rows.

   Rotation Icon

lynxilla: Lynx look&feel with Mozilla web compatibility

Lynx brings unified colors and fonts of all web pages. Unfortunately it is not the one of those two browsers respected by broken websites. To get back the unified look and feel of all the web pages while retaining the web compatibility you can override CSS settings of your Mozilla by placing userContent.css as your local file: $HOME/.mozilla/$USER/*/chrome/userContent.css

postget: Bookmark POST forms, hide passwords

You cannot bookmark pre-filled forms to your browser bookmarks. Although browsers support storing of form data you still have to load the form page and click its submit button. This script will allow you to:

My::Web: Perl web framework

Each web author has his own web framework reusable for other web developers as a generic engine. Here is mine. I am not a fool to expect you would use it.

PHP Web: PHP web framework

Each web author has his own web framework reusable for other web developers as a generic engine. Here is mine. I am not a fool to expect you would use it.

Specifically this PHP-based web framework is already many years obsolete as I am now using instead my Perl/mod_perl-based My::Web web framework. Still this version is being maintained as it is marginally in use.

FordFulk: Ford-Fulkenson algorithm web applet

Java applet to demonstrate the internals of Ford-Fulkenson network algorithm.

   FordFulk Icon

Heat: Heat distribution simulation web applet

Java applet to demonstrate distribution of heat in time.

   Heat Icon

Islet: Map fight web game applet

Java applet implementing a simple map fight game.

   Islet Icon

STEP: Custom web database application

Preview of a possible future web database solution for a lawyers association. Currently it remains as a source of some web development PHP 3.0 codebase to be reused in other projects.

kewensis: Plant Name Index custom engine

International Plant Name Index provides information about plants in duplicated and unconveniently searchable pages. You can download their database and run your own engine on it locally.

This engine allows you to modify the database to fix names of your own plants and it groups synonyms of the same plant.


LaserGame: Firmware and config tool for shooting gun

LaserGame is a clone of commercial shoot'n'run game. Each player has its own hardware with multiple infra detecting sensor and one laser/infra gun. Shooting is visually targeting by red laser diode while the shooting information is being emitted by infrared.

Its Amiga communication tool will receive shooting statistics while being also capable of remote hardware configuration.

Hardware part done by Pavel "Pavouk" Ruzicka.

   LaserGame Icon

ResRAM: Reset-persisent bootable RAM filesystem

ResRAM is generally used for the RAM disks which are not required to be written to. They are being used for fast booting when no harddisk is available. On ResRAM execution it scans the given files which are loaded to the memory and a reset-surviving resident module is installed.

PortDiag: Hardware I/O port diagnostics utility

PortDiag is generally used for low-level hardware watching and modifying. It has support for all the bits of the four CIA ports, digital and analog parts of the game ports, serial port TXD and RXD signals and selective system allocation of this hardware.

Hardware issues and images by the courtesy of Pavel "Pavouk" Ruzicka.

   PortDiag Icon

Casio-A: Casio SF-A10 diary backup

Casio-A is a software for backup/restore of Casio SF-A10 personal digital diary. Its development involved reverse-engineering the Casio communication protocol by sniffing serial communication of the vendor's MS-DOS backup tool.

Hardware issues, Casio SF-A10, electronic scheme and images by the courtesy of Pavel "Pavouk" Ruzicka.

   Casio-A Icon

ShortRel: Executable file relocations compressor

ShortRel loads the input file (must be an executable), converts relocations (32-bit to 16-bit or vice versa), strips debug informaion (if requested) and writes out the result. 16-bit relocations use 2 bytes per each one and 32-bit relocations use 4 bytes. So conversion of any executable with many relocations from 32-bit to 16-bit relocations saves 2 bytes per each one.

QueryDev: Detect disk device name from its volume name

QueryDev detects the device name from the given volume name. Volume must be locked in the system. Useful for DiskCopy which has the parameter DEVICE and you want to copy the diskette from any drive. QueryDev writes the detected device name to the specified variable.

SClock: Synchronize the local system clock

SClock reads the current date and time from the remote machine and sets this time on the local machine. You can save this time to battery backed up clock, if present.

In fact this is the same work as does the standard AmiTCP command SynClock, but SClock has no need for the TCP: device, the inet-handler and is much faster (no REXX).


TraceFS: Microsoft Windows Kernel API Tracer

Project allows wrapping of Microsoft Windows Kernel API calls of your chosen kernel driver by your custom function code.

Although TraceFS was up to now used only for tracing of Windows NT Cache Manager it can be easily used ever for any other NT kernel API tracing. You need to provide appropriate function wrappers in the main source file. Framework for thread synchronizations and debug tracing is provided to prevent mangling of messages while running by multiple threads at once.

   TraceFS Icon

WinVNC hide: Hide running WinVNC server

If you install WinVNC in MS Windows environment, you will notice that it creates its own small icon in System Tray. Sometimes you want to get rid of this visible icon and you cannot remove it by any configuration settings.

   WinVNC hide Icon


DOSWatcher: DOS files access strace(1) equivalent

Resident program which displays all the file (and other) DOS function calls access on the secondary console. Useful for many failure discoveries for weird software packages with broken file/directory access.

Descent 2 no-CD: Descent 2 patch to avoid CD-ROM requirement

Use this DOS program to patch/unpatch Descent 2 to not require CD-ROM to run.

   Descent 2 no-CD Icon


GNU Libtool fix: Handle duplicate object file names

Patch fixes linking of convenience libraries (.a) containing two conflicting name objects.

GSM::SMS patch: Extension of GSM::SMS for EMS+Alcatel

Patch extends GSM::SMS package by EMS and Alcatel-proprietary formats. Only picture/animations have been implemented now, EMS/Alcatel ringtones are not yet supported.

Linux NTFS GnomeVFS: GnomeVFS interface for Linux NTFS library

Provide libntfs handler to access files by URL: file:///dev/hda1#libntfs:/autoexec.bat

   Linux NTFS GnomeVFS Icon

Mutt speedup: Mailbox reading phase acceleration

Mutt is pretty slow when opening a mailbox. Phase "Reading..." is hard to speedup but "Sorting mailbox..." was rewritten from (n^2) complexity to (n*log(n)).

   Mutt speedup Icon

netstat -p: Program name display for net-tools-1.50/netstat

After answering several questions on the mailing lists and several from my friends personally, I decided that there is missing some tool for GNU/Linux which would display PID (or simply the process) of the owner of some socket, either listening or communicating.

libxml2 fix: Fixed incomplete XML text nodes reading

xmlreader will sometimes return TEXT_NODE with only initial part of the real content. The remaining part of such text node is lost.

Ethereal MMSE fix: Fixed MMS Encapsulation protocol decoding

Fixed a tiny bug in MMS Encapsulation protocol decoding.

   Ethereal MMSE fix Icon

Ethereal WSP patch: Enhanced WSP headers decoding

Extended decoded headers for 'Content-Location'. This header is used for MMS encoding in WSP.

   Ethereal WSP patch Icon

Glade -w: Option --write-source for batch compilation

Automatically generate {interface,support}.[ch] and other source files by Glade.

   Glade -w Icon

PHP-3.0b6 fix: Avoid excessive use of memory for hashes

Fixed a tiny bug in the hash initialization which caused excessive use of memory. Fixed hash items deletion emulation by copying the hash except the item being deleted.

   PHP-3.0b6 fix Icon

PostgreSQL-6.3 fix: Fixed substr() and substring() SQL functions

Fix off-by-one in the embedded substr() and substring() functions of PostgreSQL engine.

   PostgreSQL-6.3 fix Icon

mod_auth_tacacs client: Cisco TACACS+ testing/debugging client for mod_auth_tacacs

Patch implements: command-line client, dropped Makefile.in in favor of Makefile.am, --with-apache works now (whole configure.in rewritten)

   mod_auth_tacacs client Icon

D1X TCP/IP: D1X native TCP/IP support patch

No further mess with KaliNix, KIX or any other IPX layer convertor. This patch adds true TCP/IP networking capability to D1X version 1.30.

   D1X TCP/IP Icon