After deciding not to use many of the available bloated programs,
I wrote small and simple programs for most of my needs.
I have gathered most of them in this page.
RECENT CHANGES AND COMMENTS
- Apr 2013: Now I spend most of my spare time on neatroff;
many interesting features are planned, stay tuned.
I am also planning neatpost, my dpost clone.
Admittedly however, I do not expect neatroff to boost
my academic productivity noticeably!
- Apr 2013: After merging neatcc architectures by the end
of 2011, I have been using neatcc daily, and surprisingly,
I have not yet encountered a runtime bug in neatcc since then.
Note that neatcc is, partly intentionally to keep the parser
neater, very lax about compilation errors but for valid
C code, I am inclined to think that neatcc is very stable.
I am no longer dismayed at the sad route GCC is taking.
- Apr 2013: A command was added to fbpdf to override
page numbers; useful especially for documents that start with
- Mar 2013: I included Jörg Reinhard's patch to support mousewheel
in fbvnc. I also included a patch to move the viewing
screen for large VNC framebuffers.
- Feb 2013: I added fbvis to view images on the framebuffer.
- Feb 2013: When paused, minmad and fbff now close the OSS device
to permit other programs to open it.
- Feb 2013: Fullwidth characters are now handled correctly in
fbpad; Felix Janda tested the changes and prepared a preliminary patch.
- Jan 2013: Many of my framebuffer programs define a FB_VAL() macro
as an alias for fb_val() function.
The macro can be redefined for speed (should help especially
fbpdf, fbvis and cnoor). On 32-bit RGB framebuffers, for instance,
it can be redefined as "(((r) << 16) | ((g) << 8) | (b))".
I no longer use X11.
- fbpad, a small linux framebuffer
virtual terminal. It manages many terminals through single-letter tags.
It uses tinyfont files -a custom simple font file format- to render text.
ft2tf can create tinyfont files from truetype fonts.
Here's a screenshot.
contains a nice but a bit out of date introduction.
- fbpdf, a linux framebuffer pdf
viewer using mupdf library.
It can also use libpoppler and can view djvu files via libdjvulibre.
- fbvis is a framebuffer image viewer;
includes stbi and
and does not depend on external image libraries
- fbff, a ffmpeg-based linux
framebuffer media player. The libmpeg3 branch uses libmpeg3 instead
- fbvnc, a small framebuffer vnc viewer;
which adds some interesting features (like large server screen support
via window scrolling)
- cnoor to read the holy Quran on
Many of the programs in this page can be compiled with neat*
(using neatcc.c wrapper for neatcc, neatlibc and neatld)
or with neatcc and musllibc/dietlibc.
- neatcc is a small ARM/X86(_64) C compiler;
here's a brief introduction and
here's its small testsuite
- neatld is a simple ARM/X86(_64) static linker
- neatas is an ARM assembler; note
that neatcc doesn't need an assembler, as it generates machine code directly
- neatlibc is a very small ARM/X86(_64) libc
written mainly to bootstrap neat*; I wish to find the time to clean it up
and implement more of the libc functions
- a simple elf core file backtrace viewer (my gdb replacement)
- elfloc to find elf symbols around a virtual address
I prepare almost all of my documents with these programs.
- here's the port of plan9 troff (troff, tr2ps,
eqn, tbl, pic, and grap) to linux; it also includes my small refer clone
- its tdir branch
holds my right-to-left text support patch; more information
is available here
- I wrote mktrfn to create troff font files from AFM
files for non-Latin Unicode fonts
- ctxt to write formatted documents (including
- nref manages document references; it can be used as
a troff preprocessor
- bib2ref converts bibtex files to refer databases and
ref2bib does the reverse
- My (not yet usable) troff clone neatroff
- tdq, a fast dictionary lookup program (xdxf and stardict
files can be imported)
- pdftxt uses mupdf to extract text from pdf files;
prefixes each line with its page number for searching
- rangi to detect colored graph motifs;
more information available here
- minmad to play mp3 files using oss/libmad
(the alsa branch uses alsa)
- minmix is a small OSS mixer;
here's an older version for alsa
- llx reads commands from standard input and executes
them in parallel with an optional maximum concurrent processes limit
- my repeat after me typing exercise
- my small utf-8 unix fmt(1) clone (not completely compatible though)
- ethcat is my tcpdump/tcpreplay replacement
- my simple socks v5 server (no tcp bind)
- dc16, a trivial stack-based calculator supporting
0x1f style hex numbers; handy when doing hex calculations
- my simple hex file viewer
I am Ali Gholami Rudi (ali at rudi dot ir).
Hosted by tuxfamily.org.