May 17, 2015 - 3 minute read

Useful Software

Somewhat written to future-me, but also to others who may be looking in the direction of these things.

General Software

If I ever need to deal with LDAP in any way, this tool will make me have a happy.

For dealing with Java Keystores. The commandline tool supplied with Java kinda sucks, this makes it easier, especially for things like x509v3 extensions which you need to twiddle if you ever do CA work.

Great dev env for at least Java (duh) and quite nice for PHP, CSS, JS, and HTML too.

A nice featureful IRC server. Better than jabber.

Dealing with MySQL, a nice GUI tool to manage it.

While it gets a lot of grief, it’s simple to set up, easy to write plugins for, and the presupplied themes are easy to modify. Plugins abound (sometimes to it’s hurt). Also is nice if the user of the site is not that technical.

For cases like this blog, where I am the writer, and is better about formatting source code, and I can do things in Markdown and emacs, which I prefer. Also, the site build is static so no need to deal with a database, and can manage the whole thing via git repository.

  • KeePass

Good password manager. Has clients for all the platforms I care about (Linux, Android, iPhone, Windows, Mac).

Very nice open-source web based email client. Customizable, source code availability, well written. Fairly snappy even on shared hosting.

Good cross-platform chat client. For some reason, it occasionally writes a setting to hide the buddy list, and I don’t know why or how to recover it, save to edit the config file….

Good cross platform email client and calendar manager

Good integration with emacs to manage all sorts of things. While I do still do the agile organizer, I’m a firm believer for the right tool for the right job. If you need to publish things in various states and such, a notebook full of stickies won’t do, org-mode can be the right tool.

Reputedly, the file sync bits have had issues, but as a calendar and contacts server that’s easy to deploy on cheap host, it works at least well enough. The calendar UI could be better on recurring events.

Programming Tools

  • Dev Tools
    • emacs/vi - both are good for different things. Some are either or, but why choose?
    • eclipse
  • Languages
    • Java - See my post here
      • maven - Nice versioned reproducible builds
      • DropWizard - For writing batteries included standalone servlet container.
      • slf4j - nice, no-magic logging library
      • jackson - simple, flexible JSON serialization library.
      • logback - good back-end for slf4j
      • Google Guava - The Java library everyone who does Java should know.
      • TomCat - Good open-source servlet container.
    • Python - For a long time my weapon of first choice. For non-performance critical and smallish things, still my weapon of first choice.
    • JavaScript/CSS/HTML – the tools of the web trade
      • jQuery/jquery UI – Makes JS development oh so nice.
    • PHP – it’s warty as a frog, but love it or hate it, it’s still the fastest way to get a simple app up and running in a hurry.
  • Databases
    • SQLite - for things where you don’t need/want a separate server and the whole thing should run on a single box.
    • MySQL - supported by just about everything. Not my favorite, but decent tooling
    • PostgreSQL - My favorite database server. Flexible, fully featured, and nice extensions so you can make it dance. Most complete SQL variant that’s open-source.
  • Markdown - My favorite formatting when I don’t want to think about formatting.