some useful tools
Here is a list of some tools which I find useful and noone else has mentioned
yet. (Sorry if I missed someone's email.)
An LP and MILP solver library.
I can't say I like the API that much. The header files pollute the name space
by defining macros like "print". There are useful functions for printing LP
problems in human and machine readable formats but those functions can only
print to a named file, not to an open file handle or such. There are problems
with const correctness. C arrays which are indexed from element 1 instead of
0 make your C code look nonidiomatic and thus error-prone.
However, the thing seems to do what I want, and the reference manual is great.
Just don't say I didn't warn you. The lp-solve (i.e. lp_solve) library seemed
to be an even worse mess, YMMV.
I always use this tool to build my Latex documents. Thanks to it, Latex is now
a productive tool instead of a PITA.
One simple command "rubber -Wall foo.tex" automatically performs all steps to
build up-to-date dvi, ps, pdf, etc. versions of the Latex document, including
things like running bibtex and converting images to eps or pstex format if
needed. It hides all garbage printed by Latex, parses error messages, and
prints relevant messages in a human-readable format. Thanks to the -Wall
switch, it can even print warnings when there was no need to re-run Latex
Magic "% rubber: ..." comments inside the Latex source can be used to specify
paths for Latex class files, bibliography files, bibtex style files, etc.;
you can also specify if and how you want to create ps and pdf versions. You
don't need to maintain any external Makefiles or worry about your build
environment; one Latex source file is enough. This is important when more
than one people are working on the same document: checkout the document from
the version control system, run rubber, and you've got the most up-to-date
version of the paper.
A GUI for maintaining a bibliography in a bibtex file. (Not in Debian as far
as I know; see http://jabref.sourceforge.net/ ; written in Java, so
installation is relatively easy if you have a working Java environment.)
Naturally, there are many similar tools. I don't know if there is anything
better; JabRef is far from perfect, but at least the following aspects are,
in my opinion, useful: First of all, it is not just a bibtex editor, it is
also useful for storing interesting articles and browsing and reading them.
The current version works fine in a group work model where the bibliography
file and the corresponding PDF files of the articles are kept in a version
control system. JabRef supports things like maintaining a tree-like hierarchy
of categories and storing one article in multiple categories. It supports
Latin-1 characters nowadays quite well. It can automatically generate bibtex
entry keys by using a customisable key generation rule. It runs in Windows,
too, which can be an important aspect in group work.
If you are looking for a tool like this, you might want to give it a try. Just
don't give up immediately when you notice that the usability of the GUI is
far from what one sees in commercial software. One can get used to it.