[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

some useful tools

Hi all,

Here is a list of some tools which I find useful and noone else has mentioned 
yet. (Sorry if I missed someone's email.)

- glpk:

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.

- rubber:

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 
this time.

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.

- jabref:

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.

Best regards,
Jukka Suomela

Reply to: