+++ title = "Toolbox" type = "page" +++ Some things I found to be useful for daily programming. ## Programming * [Geany](http://www.geany.org/): very fast IDE, not the memory and CPU monsters out there like Eclipse/Netbeans. * [Valgrind](http://valgrind.org/): code analysis tool, I use mainly the memory checker and the profiler. * [KCachegrind](https://kcachegrind.github.io/html/Home.html): graphical profiler presenting runs of valgrind performance checks in a nice way. * [xxdiff](http://furius.ca/xxdiff/): 2 and 3-way graphical diff tool, I use it because of nostalgia (aka: I got used to it). ## C Programming * [Gengetopt](http://www.gnu.org/software/gengetopt/gengetopt.html): parser for command line options ## Database Modelling * [dbmodel](http://oxygene.sk/projects/dbmodel/): a very neat database modeller with PDF and image export. ## Data processing * [XMLStarlet](http://xmlstar.sourceforge.net): XML processing on the command line for fast and dirty XML processing * [JQ](https://stedolan.github.io/jq/): JSON processing on the command line very much alike as with XMLStarlet ## Infrastructure * [openSUSE Build Service](https://build.opensuse.org/): for building release packages in the cloud. * [Travis CI](http://travis-ci.org/): for continuous integration on Mac OSX. * Using [libvirtd](http://libvirt.org) now instead of VirtualBox (sorry, Oracle). Main reason: it's still a little bit un-ready round the edges but hey, it's really open source. :-) * [LXC](https://linuxcontainers.org): lightweight and surely nicer to use than Docker (IMHO). Still a little bit alpha quality though. * [unison](https://www.cis.upenn.edu/~bcpierce/unison/): file synchronizer, I'm using it since years to sync my home directory between three or four machines, sort of a very easy backup. * The backup from the local LAN to the cloud happens via FTP and some copy jobs within [Bacula](http://www.baculasystems.com/). ## Books * [The Pragmatic Programmer](http://en.wikipedia.org/wiki/The_Pragmatic_Programmer): an absolute must for every programmer. * [The Mythical Man-Month](http://en.wikipedia.org/wiki/The_Mythical_Man-Month): an absolute must for everybody doing a project. * [AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis](http://www.amazon.com/AntiPatterns-Refactoring-Software-Architectures-Projects/dp/0471197130): avoid mistakes by learing from bad examples. ## Other * [Ion3](http://tuomov.iki.fi/software/): tiling window manager with strong keyboard and Lua scripting support. Sadly the original author got into fights with the open source community :-( I'm currently using the fork [Notion](http://notion.sourceforge.net/). Read [http://raboof.github.io/notion/tour/](http://raboof.github.io/notion/tour/) if you want to learn how to use such a window manager. * [Joe](http://en.wikipedia.org/wiki/Joe's_Own_Editor): my editor for all quick editing jobs. Having used a lot of Wordstar in my youth, **jstar** is the editor I can't get rid of in my brain. :-) * [meh](http://www.johnhawthorn.com/meh/): as fast and easy an image viewer can possibly get. * [MuPDF](http://www.mupdf.com/): an equally fast PDF/XPS viewer. * [Trojitá](https://en.wikipedia.org/wiki/Trojit%C3%A1): a simplistic and really fast mail reader for IMAP accounts. For long-term archiving of email I'm using a combination of [OfflineIMAP](http://www.offlineimap.org) and good old [Mutt](http://mutt.org). * [Seamonkey](http://www.seamonkey-project.org/): back to old SeaMonkey, fast, no clue what they did to Firefox to make it so slow.