Software Archive

Here is a list of some programs I have written. This page is mainly meant as a personal backup space, but you're welcome to use any code you find here. I use a GNU/Linux desktop at home, so all these programs are tested on that machine (Fedora 19 on amd64 as of Feb2014).

Most programs below were generated using some preprocessor tools. Links to original sources are also listed. You will need my t2c tool to build stuff from the original packages.

alib is a weird program. It's a self-extracting archive which can also update itself. This package contains several handly little libraries for C. I lost the original package, but I believe it's included in this archive.

androR2P converts images between the PNG format and Android boot logo image format, which is just a dump of RGB values without any header or anything.

amalgam processes

   #include "file"
directives in a C program, inserts the contents of those files at the position of the directive and produces a single C file.

bdfparse parses a BDF file and outputs the characters in it in C array format. .

bfont can be used to embed a TrueType font in a program, with a given size and in bitmap format.

bff is a binary file format tool.

bkedit is bookmark list editor.

bkscan is a set of tools to aid in scanning books using the Fujitsu fi-5015c scanner. It also includes a viewer for the resulting files, which are simple indexed tar files of png images.

btstack is my Bluetooth stack.

cartoonscan is a tool I use for scanning cartoons from magazines.

cmp3 is a program which fills a MP3 player with a random selection of songs from a pre-defined directory tree. The history of such fillings is maintained and the program tries to fill the player in a fair way. This package is more up-to-date than the original sources. A couple of bugs were fixed which were due to architecture change (32 to 64 bit). Just respect the compiler warnings and you should be able to use the 'original' package as well.

dnt2png converts D-NOTE DNA500 files to PNG.

dsync is a backup tool. It uploads modified files to a remote directory thru sftp or to a locally mounted disk. It maintains a list of modification times on the remote directory.

fixtable converts a Gnumeric table into an editable FOX table. Here is an older version.

font-5x7 is a small bitmap font.

foxhelpc is a help compiler for the FOX toolkit. If you're feeling adventurous, you can get the source code here. There is also a statically compiled binary package here for GNU/Linux on amd64. Don't forget to chmod +x it.

fxform creates some GUI code from a structured description.

gfx is a graphics library.

gencon takes a configuration file specification and creates C code which can parse a configuration file as specified.

hanidoku is a puzzle game similar to sudoku. It's played on a honeycomb grid. This program generates the puzzles as you are solving them. See inside the source file for instructions on how to build it.

IMGDOC is a PDF-like format for documents, but in raster format. source package binary package for LX.AMD64.SH Here is the bmkrange program, this one filters the bookmarks list according to a page range.

inthash computes a dense hash function for a fixed set of integers.

iro is a small template program for operating on images. It simply loads a PNG file and lets you run some functions on it. It's basicly a template.

itf2 is a tool for making inter-thread communications easier.

jj is a make replacement. It has function definitions, loops, etc. It correctly handles the case where multiple files depend on one file. Unfortunately, I lost some of the libraries for developing it and can't really develop it more. This C file contains everything, but it's not very hackable. It has the README and other stuff in it as well. Also, I have modified it since I had extracted it from the original sources.

This package contains the original sources and can be used to re-build it from somewhat scratch. As I told above, this package isn't up to date completely.

Now, here is an updated source package. However, this package still doesn't have the new sources, but some documentation stuff such as a PDF file etc. which I collected from depths of my hard disk. For the latest actual source, just download the jj.c.bz2 file.

logo-android is a program which encodes and decodes image files for android bootup sequence.

m5 is a macro processor based on lua. Macros are defined in the lua language and can be used like regular CPP macros. You will need the lua development package in order to compile it.

make_quine adds self-printing capability to C programs. It's somewhat simplistic (all source files have to be in the same directory etc), but it does the job.

mkbut is a program which makes the buttons on this website. I used this config for creating the buttons you see.

mudesk is a simple desktop manager which recognizes GNOME style .desktop files.

mupager is an X11 pager. It works with openbox and fvwm4. It doesn't require any libraries other than X11.

mupanel is a desktop panel with editable start menu, taskbar, shortcut areas, pager and clock.

rxsheyi compiles a regular expression from a BNF-like specification. The resultant string can be used with regcomp() etc.

SICALC is a basic calculator for Android and Linux.

simfi is a simple file transfer utility. You run the server on some machine and then use the client on another machine to put the files on the server. Like this:

on the server:
  $ simfi-get &
The program doesn't exit, it just keeps on going until you kill it. 

On the client:
  simfi-put server_address local-file remote-path

simplewm is a blackbox fork.

t2c is a literate programming tool. It lets you write programs in a human readable order instead of compiler order.

txar is a note taking program with hypertext support. It works with a wiki-like syntax and doesn't need any kind of web server etc.

usbcam displays images captured via an USB camera. It does this by continually taking pictures (i.e. not video) in order to provide the best resolution possible.

UsbDisks is a graphical frontend for the "pmount" utility. I wrote it to get rid of the gvfsd crap. You will still need the udev stuff, it uses the 'udevadm' utility to find more about the devices.

wadir watches a given directory and moves new files to another directory.

xalsavol adjusts the master playback volume for ALSA. It uses only X11 and ALSA libs.

zooming stickies lets you create some sticky notes on a panel. The catch is that, the panel can be zoomed in or out in order to create smaller/bigger sticky notes. Kind of like the excellent eve program, but geared towards maintaining todo lists etc.

Here are some small programs.