This is the personal blog of Bastian Rieck. I add posts in irregular intervals about things I consider relevant. Send any feedback, comments etc. to bastian@annwfn.net.
I managed to get my diploma thesis published using HeiDok, the Open Access platform of Heidelberg University. The interested reader is referred to the permanent URL that displays my parvum opus.
While setting up a new system with FreeBSD 9.0, the port of the awesome window manager would not build. More specifically, generating manpages failed with:
xmlto: /usr/ports/x11-wm/awesome/work/awesome-3.4.10/manpages/man1/awesome.1.xml does not validate (status 3)
After some searching, I discovered the solution:
Simply install the port textproc/docbook-xml-450 in addition to the dependency
textproc/docbook-450 of the awesome window manager.
A few weeks ago, I faced an interesting CMake problem: Our group's software contains several
submodules such as kernel, math, etc. The topology module, for which I am responsible,
obtained a new dependency. I now wanted to notify all other modules about the inclusion status of
this module. If the dependency was not met, the module should not be included. Furthermore, all
algorithms depending on the topology module shall not be built, either.
I expected this to be difficult, nay impossible, because CMake does not seem to have the concept of
global variables. Instead, I was pleasantly surprised to find out about the option PARENT_SCOPE.
This option can be used in SET() statements of subordinate modules to set a variable in the scope
of the calling module, i.e. the parent.
Hence, typing
SET(TOPOLOGY_MODULE_AVAILABLE true PARENT_SCOPE)
in the CMakeLists.txt file of the subordinate module solved the problem.
While revising a paper, I stumbled over two interesting LaTeX packages: overpic and SIunits. The
former is a great way of "texifying" existing pictures. It shows you a grid as an overlay for the
picture and allows you to position arbitrary LaTeX commands (such as short text description) to be
positioned within this grid. This is great when the pictures are created in another application
such as Inkscape or GIMP, but you still want to use
the correct LaTeX fonts or mathematical symbols.
The latter package, SIunits, is the correct way of typesetting SI units. Of course, one could do
this manually by using the math mode of TeX, but then one would have to ensure that the units are
not shown in italics etc. Going with SIunits is easier: Just type \square\metre, for example, to
get the unit of area. It is as simple as that.
More information:
Encouraged by Matthias, I decided it was time to introduce my home network to IPv6. It turns out that this was a lot easier than I had expected it to be:
Client setup
For FreeBSD, adding ipv6_enable="YES" to /etc/rc.conf and rebooting
was sufficient. Now all interfaces are able to communicate using IPv6.
Router setup
My Soekris router is currently running m0n0wall.
With a halfway recent version (1.32), this was spectacularly easy: It
boils down to enabling 6to4 on both WAN and LAN interfaces and
adding an appropriate rule to the IPv6 part of the firewall. Here are
some screenshots with the relevant parts highlighted:
![]() |
![]() |
![]() |
Caveat
The firewall rule is essential. m0n0wall will otherwise block any IPv6 traffic originating from your LAN.
Since I write almost everything in LaTeX these days, be it personal stuff (letters, essays, documentation) or academcial things (papers, reports, my thesis), I was interested how to publish them in other formats. While PDF and Postscript files are great for storage and printing, nothing beats HTML in its simplicity and ubiquity.
So far I tried two different programs, latex2html and tth. They
follow the same premise (converting a LaTeX document into a series of
HTML files) but differ in their approach.
latex2html
latex2html is a rather old tool.
Apparently, it is not updated anymore. Consequently, its output is
rather peculiar and it supports HTML 4.0 only. No XHTML and definitely
no strict variant. Here is a loose list of my experiences while trying
to convert several LaTeX documents:
- I ran into some problems concerning German umlauts (which I specified as
"a, for example).latex2htmlexpects these to be specified as\"{a}. - If
latex2htmlencounters an unknown environment, it falls back to the LaTeX interpreter and generates a picture instead. This is also done when mathematical formulas are involved. - There is no possibility (to my knowledge) for generating the body of the document only. This makes inclusion of LaTeX content for an existing website harder.
- Theming the generated files is possible, albeit cumbersome.
All in all, latex2html was not enough for my purposes. So the search
continued and I eventually arrived at tth.
tth
tth has a very novel approach: Instead of generating
images for mathematical formulas, tth tries to generate HTML code that mostly resembles a
formula.
All in all, this works quite well. Even with complex documents. Here are my notes:
- By default, a single HTML page is generated. This is done quite fast, even for a larger document.
tthis very resilient concerning unknown commands. It tries to parse the whole document and simply ignores erroneous sections.- The layout is represented very well: Tables, sections, it is all there.
- Short formulas are easily readable. For longer formulas, I find the output of
tthtedious to read. tthis very tunable: There is even an option for generating the body of the document only.
Conclusion
All in all, tth proved to be sufficient for my purposes. Yet, there seems to be a lack of
publishing software for LaTeX sources. This is a pity, as publishing documents in several formats at
once without many adjustments would be interesting. Another possibility would be to allow
rendering of PDF files inside the browser (the currently available plugins are rather disappointing,
in my opinion), although I do not like this option as it makes a browser even more bloated.
Furthermore, in comparison to PDF, HTML offers still some advantages in readability (especially for
disabled readers).
I published a new article about some elementary statistics for the weapons in Doom - The Boardgame. The article is expected to be updated with statistics for the monsters as soon as I have some free time.
It is done. I converted my blog from NanoBlogger to ikiwiki (I will post more details soon). Finally, all my content is managed by one system only. I will try to make use of ikiwiki's capabilities, especially those nice tags, which may now be assigned to blog posts and normal pages. Very nice.
My human readers should not have noticed any differences. I added appropriate RedirectMatch rules
to my virtual host configuration. Still, it was impossible for me to retain the old layout. Hence,
there are some changes (at least for the moment):
- No more individual feeds per tag
- No more individual archives per tag
- No links to other blogs and homepages
- No recent entries
- No meta information about the blog (number of articles etc.)
I am currently thinking about good ways of managing the content. As soon as I have found a suitable concept, I will reintegrate anything that strikes me as useful. In the meantime, enjoy the positive changes:
- More tags (such as the
newstag for articles dealing with new content on my homepage) - Unified design
- A nice tag cloud
- More usability (at least for me)
Upon rereading the first paragraph, I felt the need to explain my decision about NanoBlogger: The program itself is by no means flawed. However, I have outgrown its intented scope, I guess. NanoBlogger was very nice when the website was a shambles of hand-written HTML. Using ikiwiki was the first step towards the retirement of NanoBlogger: ikiwiki makes it simply too easy to turn any page into blog...
So, thanks to the NanoBlogger developers (deber and n1xt3r). Blogging with NanoBlogger was quite a ride and I still love the concept of posting from the shell (which is what I am doing right now, too...).
The new year starts with a new (very short) HOWTO about gnokii, a suite of tools for managing Nokia mobile phones. I used it to dump my phone's address book to a VCARD file. Maybe this helps someone out there.
On an unrelated note, these are my plans for the first months of 2011:
- Add content of diploma thesis to my website
- Change sectioning and layout
- Fiddle with themes
- Migrate this bloggy-blaggy-thingy to ikiwiki
Apart from that, there is a metric frackload of articles in my head. Unfortunately, they are unwritten thus far.
Yesterday, I stumbled over an interesting problem with Wine: If a ServerName directive exists in /usr/local/etc/cups/client.conf, i.e., if you are connecting to a shared server for printing services, programs started with Wine seem to hang.
This problem is caused by non-reachable servers. It might occur when you change your network or when the shared server is unavailable. In this case, Wine will seem to hang. More precisely: If you wait long enough, the application will run eventually. But nobody likes waiting very much.
So, if you have a similar problem, abort the "hanging" application and check the console output. My output contained the line
Module:attach\_process\_dlls "winspool.drv" failed to initialize, aborting
and to solve the problem, I simply changed client.conf by adding
ServerName localhost
in the first line and restarting CUPS via /usr/local/etc/rc.d/cupsd restart.


