+++ 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](https://github.com/blais/xxdiff/): 2 and 3-way graphical diff tool, I use it because of nostalgia (aka: I got used to it). * [entr](http://eradman.com/entrproject/): for executing a command on changed files, e.g. make. ## 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. (For Qt5 there are fixed versions at http://git.andreasbaumann.cc/cgit/dbmodel/?h=qt5, branch 'qt5' or https://git.eckner.net/Erich/dbmodel/) ## 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 * 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/ion/): 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](https://sourceforge.net/projects/notion/). Read [http://raboof.github.io/notion/](http://raboof.github.io/notion/) 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 and Turbo Pascal IDEs 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. I use a fork which adds QOI support (see https://github.com/andreasbaumann/meh/tree/qoi) * [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 [Mutt](http://mutt.org) with POP3 and a maildir directory (proved to be extremely stable over time). * [Luakit](https://luakit.github.io/): webkit-based browser, highly customizable with Lua scripting * [Palemoon](https://www.palemoon.org): derived from Firefox, uses much much less resources than Chromium or modern Firefox while still supporting almost everything I need from a web browser. * [irssi](https://irssi.org/): for chatting (terminal) * [newsboat](https://newsboat.org/): a RSS feed reader looking like mutt (I'm using the old pure-C++/non-Rust version I forked as [newsboat-og](https://github.com/andreasbaumann/newsboat-og)) * [Wordgrinder](https://cowlark.com/wordgrinder/): really nice text editor if actually all you want to do is writting some text * [Suckless](https://suckless.org/): pretty much every software there is 10 times smaller and easier to use than whatever makes up the default Linux user land. I'm a big fan of it.. it only should be the standard on every Linux system. * [Ripcord](https://cancel.fm/ripcord/): way faster alternative to Discord (and yes, I also pay for software - Slack), no video capabilities though, just audio and chat but that's usually all I need. The Electron based Discord and Slack are just so unbearably slow, if I need that experience I can as well start the browser version. * [Hugo](https://gohugo.io/): static web page generator for all kind of web pages. ## Deprecated The following tools I used in the past, but not anymore: * [Seamonkey](http://www.seamonkey-project.org/): Seamonkey slowly gets all the "features" of Mozilla (slow, Rust build problems, out-of-memory when building and linking). So I lost interest in it. I replaced it with Palemoon/Luakit and mutt/trojita, irssi, etc.. * [Librewolf](https://librewolf-community.gitlab.io/): fork of Firefox, without all the built-in stuff from Mozilla nobody needs or asked for. I'm no longer using it, as compiling it is too much of a hazzle with frequent Rust incompatibilities.. * [openSUSE Build Service](https://build.opensuse.org/): for building release packages in the cloud. They deleted my home project and I'm no longer doing software development, really. * [Travis CI](http://travis-ci.org/): for continuous integration on Mac OSX. Don't care about building on Apple anymore due to all kind of reasons..