Wednesday, December 4, 2013

Using the printers at TU Berlin/math

The mathematics department at TU Berlin provides its inmates with a assortment of printers to use; unfortunately, if you're bringing in your own computer to work, it's not always easy to set those up.
I just went through a bit of a hassle, but eventually think I found out which spells you'll have to cast.
  1. Make sure you're on the math network and turn off any HTTPS-enforcing plugins in your browser. Go to to see the full list of available printers. The room number is part of the printer names, so you should be able to figure out which one you're targeting. Write down the printer name and the server url (e.g.,
  2. Open a browser, go to the CUPS interface at http://localhost:631/. Click Administration->Add printer.
  3. The list of printers that are presented to you means nothing. Choose "Internet Printing Protocol (IPP)".
  4. In the "Connection" field, fill in "ipp://<server url>:631/printers/<printer name>" where you take <server url> and <printer name> from above, e.g., ipp://
  5. When asked for a driver, fill in one of the drivers that seem appropriate, e.g., "HP LaserJet 4300 - CUPS+Gutenprint v5.2.9" for an HP LaserJet 4300 printer.
  6. Done!

Wednesday, August 15, 2012

Drupal to Blogger migration

Hi all,

in an attempt to get more server-independent, I moved my website from a university-hosted Drupal installation over to

The reasons for moving away from Drupal were mostly:
  • Bad to non-existing support from university. I basically had to maintain the installation myself, including taking care of system updated for PHP and the like. While drush can take a lot of the burden, I'd been looking for web hosters for a while.
  • Bad spam protection in Drupal. My blog is now reasonably dated, but I would still receive spam somewhere on the site, a couple of times per day. I did plan to force users to log in through OpenID or Facebook before they could post, but then again that didn't seem straightforward to use and to set up.
The first issue could have been resolved by moving the blog over to drupal gardens, but they don't have any import functionality and it looks like it won't be there for a while either (although they keep saying it's "on the road map").

The main reason for switching to Blogger was because it is technically possible. They have a not-too-complicated XML format for importing/exporting blogs, and the drupal_to_blogger exporter was already available for Drupal 6. Based on this, I created drupal2blogger for Drupal 7 which eventually did the job for me.

drupal2blogger is now in the it-once-worked state and is sure rough around the edges. Of course, I'll be happy to incorporate any pull requests from someone a bit less of a PHP/SQL noob than I am.

Anyways: If you're thinking about moving your website away from Drupal to, this is to encourage you. It's not that complicated!

Friday, May 21, 2010

The history of Trilinos visualized

Hi all,

I bumped into gource yesterday, a great tool for visualizing the commit history of a version controlled package.

With Trilinos probably the most established large-scale software package for numerical purposes -- CVS controlled since 1998 and Git since just last year --, I just tried it out on the current Git repository. The results are neat to look at, and tell the Trilinos story from Karen's initial commits to Zoltan to the the plethora of packages being worked at by plenty of developers at every day. [Update:The development of Zoltan, ML, and Moocho have started independently, and when Trilinos was born their commit histories were merged into Trilinos'.]

Try this at home!
To watch the magic happen you need of course gource itself, and to create a video a decent version of ffmpeg/libav. While in the Trilinos Git tree, execute

gource -1280x720 --seconds-per-day 0.001 --hide filenames,progress -r 25 -o - | avconv -r 25 -f image2pipe -vcodec ppm -i - -pre libvpx-720p -b 5000K -an -y trilinos.webm

More details to be found on gource's own Wiki.


Thursday, May 6, 2010

matlab2tikz v0.0.6 released with initial support for surface plots


so it's time again for a new release of matlabtikz. This is first release where development happened exclusively in GitHub, with parts of the changes actually contributed by other people as well.

I'd say this release has seen the largest refactoring since matlab2tikz was born, and apart from that there's also a few interesting changes for end users:
  • The much-requested support for scatter plots landed, and
  • there's initial support for surf plots
As usual, I'll be happy about bug reports on matlab2tikz's GitHub home and comments on MathWorks site.


Saturday, May 1, 2010

otfinst rewrite

Hi all,

I recently ran into some issues with installing fonts in LaTeX (sheesh...) using Marc Penninga's autoinst, but thanks to Marc's very quick fixes, most of it has been sorted out pretty quickly; I suppose there will be a new release of autoinst sometime soon.

Anyhow, autoinst is written Perl which means that once I try to tweak it, it'll probably format your primary hard drive instead of converting fonts. :)

It's Python twin brother, John Owens' otfinst seemed stale for a couple of years now, so with my newly gained mad Python skills™, I tried to improve it here and there. Well, what can I say? Programming in Python is great fun, so I' basically ended up in rewriting most of the existing code. :) One of the many benefits that you get now is a command line help,

Usage: [options] font[s]

This is a description.

--version show program's version number and exit
-h, --help show this help message and exit
-e ENC, --encoding=ENC
use encoding ENC
-b BER, --berryname=BER
use three-letter font Berry name BER
-d, --dry-run print what commands would be used, but don't actually
execute them
-v, --verbose print status messages to stdout
-q, --quiet don't print status messages to stdout
-x OPT, --extra=OPT extra options to be passed to otftotfm
-s, --short-names use old-style short variable names internally (e.g.,
pagr8t for Adobe Garamond, Regular, Cork encoding)
-l, --long-names use long variable names internally (e.g., pagr8t for
Adobe Garamond, Regular, Cork encoding)

which makes the thing somewhat more usable for Otto Normalverbraucher -- you, that is :P -- I hope.

For bug reports or suggestions, contact or

[Update:If you'd like to get a notion of what the code currently looks like, take a peek at its page on Google code.]

Anyhow: If you had issues with installing your font with otfinst in the past, then now is the time to do something about it! You could help by either testing the thing (don't be too harsh for now, though, it's still a baby) or fly with us and code! Some Python expertise would certainly be helpful.

Comments and suggestions very welcome!


Friday, March 26, 2010

matlab2tikz moved to GitHub

Hi all,

considering the amount of mails I received lately concerning the matlab2tikz converter, I decided to move the project to a more appropriate spot. Having considered a few options, I found GitHub quite suitable, so matlab2tikz will now be found at

There's a wiki and an issue tracker as well, so please feel free to drop all of your suggestions there.

Needless to say, I'm also looking forward to the flood of contributed commits of you! :)

You may also be interested in the matplotlib2tikz converter which I've started some weeks ago -- not quite as mighty as matlab2tikz yet, but it's free-free-free! :)


Tuesday, February 16, 2010

matplotlib to TikZ converter

Hi all,

development for a translator from matplotlib to the TikZ-based pgfplots has started at

As of now, the script is still rather simplistic, but can already deal with line plots, images, subplots, and color bars. Adding new functionality should not be overly complicated.

Compared to translating MATLAB® figures to TikZ (see matlab2tikz, starting off with matplotlib2tikz was a lot easier. The documentation is fantastic, and whenever there's something unclear there are the incredibly helpful mailing lists, as well as the open source code to look at.

If you'd like to chime with the development -- now's the perfect time! The script is a mere 350 lines long, and the main author doesn't know what he's doing in Python and Git, so there'll be no ranting about bad code. :)