<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Andreas Klöckner's web page</title><link href="https://mathema.tician.de/" rel="alternate"></link><link href="https://mathema.tician.de/feeds/all.atom.xml" rel="self"></link><id>https://mathema.tician.de/</id><updated>2018-01-16T19:39:00-06:00</updated><entry><title>The State of OpenCL for Scientific Computing in 2018</title><link href="https://mathema.tician.de/the-state-of-opencl-for-scientific-computing-in-2018" rel="alternate"></link><published>2018-01-16T19:39:00-06:00</published><updated>2018-01-16T19:39:00-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2018-01-16:/the-state-of-opencl-for-scientific-computing-in-2018</id><summary type="html">&lt;p&gt;As someone who maintains a &lt;a href="http://github.com/inducer"&gt;fair number of software
packages&lt;/a&gt; that build, in one way or an other, on
OpenCL (and keeps creating more!), a friend recently asked me what I thought of
the state of the OpenCL ecosystem in 2018. In part, I am writing this to support
the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;As someone who maintains a &lt;a href="http://github.com/inducer"&gt;fair number of software
packages&lt;/a&gt; that build, in one way or an other, on
OpenCL (and keeps creating more!), a friend recently asked me what I thought of
the state of the OpenCL ecosystem in 2018. In part, I am writing this to support
the notion that it is healthier than one might assume. So, with that: here is
my personal, subjective view of how OpenCL is&amp;nbsp;doing.&lt;/p&gt;
&lt;h2&gt;OpenCL as a&amp;nbsp;Standard&lt;/h2&gt;
&lt;p&gt;First, to get one thing out of the way, independently of the state of concrete
implementations (which I&amp;#8217;ll get to in a second), the OpenCL machine model makes
a great deal of sense (to me). It&amp;nbsp;provides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Two heavily overdecomposed levels of parallelism (one for cores, the other for
  vector lanes), with lightweight (&amp;#8220;barely any&amp;#8221;)&amp;nbsp;synchronization.&lt;/li&gt;
&lt;li&gt;A dependency graph between computations (&amp;#8220;kernel invocations&amp;#8221;) that are
  submitted in large&amp;nbsp;batches&lt;/li&gt;
&lt;li&gt;Shared virtual memory. This means that memory handles are just pointers in the
  host address space, and multiple devices and the host can access this memory
  with potentially strong coherency guarantees. (This is in OpenCL 2, on devices
  that support&amp;nbsp;it.)&lt;/li&gt;
&lt;li&gt;Just-in-time&amp;nbsp;compilation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Even while OpenCL is headed for its tenth birthday, that machine model still
maps very cleanly onto the multi-core CPUs and GPUs of today, and if you write
scientific computing code with code generation, there is hardly a better, more
coherent machine model that lets you target a broad class of machines. So even
if OpenCL were to not &amp;#8216;make it&amp;#8217;, the abstraction itself is likely to continue to
make sense for the foreseeable future. For instance, OpenCL and &lt;span class="caps"&gt;CUDA&lt;/span&gt; do not
differ by much except aside from spelling. &lt;a href="http://libocca.org/"&gt;&lt;span class="caps"&gt;OCCA&lt;/span&gt;&lt;/a&gt; and
&lt;a href="https://ispc.github.io/"&gt;ispc&lt;/a&gt; expose much the same model. A very similar
computing environment can be assembled out of OpenMP&amp;#8217;s core parallelism and
&lt;code&gt;#pragma simd&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In addition, OpenCL-the-standard&amp;nbsp;provides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A fairly complete set of transcendental functions that, typically, vectorize&amp;nbsp;cleanly&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/inducer/pyopencl"&gt;Easy access from Python&lt;/a&gt; and interoperability
  with numpy (&lt;span class="caps"&gt;OK&lt;/span&gt;, this one is a shameless&amp;nbsp;plug)&lt;/li&gt;
&lt;li&gt;Compared with many custom &lt;span class="caps"&gt;JIT&lt;/span&gt; solutions, OpenCL has fairly rigorous semantics,
  so you&amp;#8217;re not likely to be left guessing whether an implementation&amp;#8217;s behavior
  is correct or&amp;nbsp;not.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Implementations&lt;/h2&gt;
&lt;p&gt;A standard is only as good as its implementations&amp;#8212;so what &lt;em&gt;is&lt;/em&gt; the state of the
available OpenCL implementations? OpenCL is a large and complex specification,
so implementing it fully and correctly is a substantial&amp;nbsp;effort.&lt;/p&gt;
&lt;p&gt;A number of fairly recent developments have helped substantially in that&amp;nbsp;regard:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="caps"&gt;LLVM&lt;/span&gt;&amp;#8217;s built-in OpenCL support keeps&amp;nbsp;improving&lt;/li&gt;
&lt;li&gt;Khronos&amp;#8217; OpenCL conformance test suite became open-source and publicly&amp;nbsp;available&lt;/li&gt;
&lt;li&gt;Khronos&amp;#8217; OpenCL &lt;span class="caps"&gt;ICD&lt;/span&gt; loader has become&amp;nbsp;open-source&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Nvidia &lt;span class="caps"&gt;GPU&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Nvidia&amp;#8217;s OpenCL implementation is capable and generally works&amp;nbsp;well.&lt;/p&gt;
&lt;p&gt;Occasionally, one does get the impression that, as a vendor of a directly
competing solution (&lt;span class="caps"&gt;CUDA&lt;/span&gt;), Nvidia has a vested interest in crippling OpenCL
support on their devices: from lacking tool support (debugging, profiling) to
reports of performance differences from &lt;span class="caps"&gt;CUDA&lt;/span&gt; (in both directions!) to lagging
support for newer OpenCL versions, there is plenty that could be&amp;nbsp;better.&lt;/p&gt;
&lt;p&gt;That said, Nvidia&amp;#8217;s leverage in this regard &lt;em&gt;may&lt;/em&gt; be&amp;nbsp;limited&amp;#8212;surprisingly.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="caps"&gt;POCL&lt;/span&gt; (see below) has a proof-of-concept &lt;span class="caps"&gt;CUDA&lt;/span&gt; backend that uses Nvidia&amp;#8217;s &lt;span class="caps"&gt;CUDA&lt;/span&gt;
  APIs to implement OpenCL. With some work, this could be made actually&amp;nbsp;useful.&lt;/li&gt;
&lt;li&gt;There is ongoing work in the Linux graphics stack to support computation.
  While there is substantial work to be done, this work has come very far in the
  past few&amp;nbsp;years.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;span class="caps"&gt;AMD&lt;/span&gt; &lt;span class="caps"&gt;GPU&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span class="caps"&gt;AMD&lt;/span&gt;&amp;#8217;s brand-new open-source &lt;a href="https://rocm.github.io/documentation.html"&gt;rocm&lt;/a&gt;
stack has &lt;em&gt;just&lt;/em&gt; become usable for me on Debian on Radeon R9 Fury &lt;span class="caps"&gt;GPU&lt;/span&gt;, now that
they&amp;#8217;ve switched to shipping their kernel driver as a &lt;span class="caps"&gt;DKMS&lt;/span&gt; module. While I
haven&amp;#8217;t done comprehensive performance measurements, it passed most of the
PyOpenCL test suite on the first&amp;nbsp;attempt.&lt;/p&gt;
&lt;h3&gt;&lt;span class="caps"&gt;POCL&lt;/span&gt; &lt;span class="caps"&gt;CPU&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/pocl/pocl"&gt;&lt;span class="caps"&gt;POCL&lt;/span&gt;&lt;/a&gt; is  an &lt;span class="caps"&gt;LLVM&lt;/span&gt;-based OpenCL implementation for
(mainly) CPUs. It has just celebrated its 1.0 release. Most of all, it is
conformant and correct. My group builds and tests software mainly on &lt;span class="caps"&gt;POCL&lt;/span&gt;,
because it is easy to install on basically any machine (see below under
&amp;#8216;Shipping&amp;nbsp;Software&amp;#8217;).&lt;/p&gt;
&lt;p&gt;Its vectorization performance varies from competitive to &amp;#8216;needs work&amp;#8217;, but in
general, code executes at least as fast as reasonably written C or Fortran code.
With work out of Intel on an outer-loop vectorizer for &lt;span class="caps"&gt;LLVM&lt;/span&gt;, this has the
potential for substantial improvement in the near future. &lt;span class="caps"&gt;POCL&lt;/span&gt; also integrates
the &lt;a href="http://sleef.org/"&gt;&lt;span class="caps"&gt;SLEEF&lt;/span&gt;&lt;/a&gt; vectorized special function&amp;nbsp;library.&lt;/p&gt;
&lt;h3&gt;Intel Integrated&amp;nbsp;GPUs&lt;/h3&gt;
&lt;p&gt;Intel&amp;#8217;s &lt;a href="https://01.org/beignet"&gt;Beignet&lt;/a&gt; implements &lt;span class="caps"&gt;CL&lt;/span&gt; for Linux on their
integrated GPUs. It passes most of the PyOpenCL test suite and performs&amp;nbsp;well.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update June 2018:&lt;/strong&gt; In early 2018, Intel has released an &lt;em&gt;additional&lt;/em&gt; OpenCL &lt;a href="https://github.com/intel/compute-runtime"&gt;compute runtime&lt;/a&gt; for its &amp;#8220;Gen&amp;#8221; family of integrated
GPUs that supersedes Beignet for Broadwell (&amp;#8220;Gen8&amp;#8221;) and newer chips. I do not have
first-hand experience with this &lt;span class="caps"&gt;ICD&lt;/span&gt; yet, but since it is reportedly based on Intel&amp;#8217;s
previously closed Windows &lt;span class="caps"&gt;CL&lt;/span&gt; runtime, I expect a mostly competent&amp;nbsp;implementation.&lt;/p&gt;
&lt;h3&gt;Apple &lt;span class="caps"&gt;GPU&lt;/span&gt;/&lt;span class="caps"&gt;CPU&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;While Apple originated the OpenCL standard, the implementations they ship are
borderline unusable due to bugs. For &lt;span class="caps"&gt;CPU&lt;/span&gt; work, &lt;span class="caps"&gt;POCL&lt;/span&gt; can be built on macOS with
little trouble (or see below under &amp;#8216;Shipping Software&amp;#8217;). For &lt;span class="caps"&gt;GPU&lt;/span&gt; work, Linux
provides a nicer&amp;nbsp;environment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update June 2018:&lt;/strong&gt; Apple has deprecated OpenCL in favor of their own
graphics abstraction, Metal, that is unavailable on any other&amp;nbsp;platform.&lt;/p&gt;
&lt;h3&gt;Intel &lt;span class="caps"&gt;CPU&lt;/span&gt; (Updated August&amp;nbsp;2019)&lt;/h3&gt;
&lt;p&gt;Intel has a (now open-source) &lt;a href="https://github.com/intel/llvm/releases/tag/oclcpuexp-2019.8.7.0.0725_rel"&gt;&lt;span class="caps"&gt;CPU&lt;/span&gt; OpenCL
&lt;span class="caps"&gt;ICD&lt;/span&gt;&lt;/a&gt; that has
fairly competitive code generation. Based on file names, it appears that this is an
updated version of their &lt;a href="https://software.intel.com/en-us/articles/opencl-driver"&gt;previous closed-source OpenCL &lt;span class="caps"&gt;CPU&lt;/span&gt;
&lt;span class="caps"&gt;ICD&lt;/span&gt;&lt;/a&gt;.
One unfortunate aspect of this implementation is
that it ships with a number of shared libraries that are very likely to clash with
other shared libraries already installed on your system. So, for use of this &lt;span class="caps"&gt;ICD&lt;/span&gt;,
make sure to configure (e.g.) the &lt;code&gt;$LD_LIBRARY_PATH&lt;/code&gt; environment variable so as to
prefer the libraries shipped with the implementation over the system ones.
&lt;a href="https://github.com/intel/llvm/issues/453"&gt;This bug&lt;/a&gt; has discussion of this&amp;nbsp;issue.&lt;/p&gt;
&lt;p&gt;A previous version of this guide mentioned code generation bugs and crashes. I suspect
that was not true, and the crashes I observed instead due to the clashes with system
libraries noted&amp;nbsp;above.&lt;/p&gt;
&lt;h2&gt;Shipping&amp;nbsp;Software&lt;/h2&gt;
&lt;p&gt;Shipping software based on OpenCL sounds like it might be troublesome, since,
in addition to the actual software, a user must have an &lt;span class="caps"&gt;ICD&lt;/span&gt; loader
(&lt;code&gt;libOpenCL.so&lt;/code&gt;) in addition to an &lt;span class="caps"&gt;ICD&lt;/span&gt; (the actual&amp;nbsp;implementation).&lt;/p&gt;
&lt;p&gt;This concern is mostly a thing of the past though. &lt;a href="https://documen.tician.de/pyopencl/misc.html"&gt;Five easy shell
commands&lt;/a&gt; install a usable
environment on Linux and&amp;nbsp;macOS.&lt;/p&gt;
&lt;h2&gt;The&amp;nbsp;Future&lt;/h2&gt;
&lt;p&gt;Recent news out of the OpenCL working group is that OpenCL might become
implementable on top of Vulkan, a graphics &lt;span class="caps"&gt;API&lt;/span&gt; that is rapidly gaining ubiquity,
by way of a single &amp;#8216;shim&amp;#8217; &lt;span class="caps"&gt;ICD&lt;/span&gt; provided by the OpenCL working group. While this
is dependent on a number of future developments, it would make OpenCL support
essentially ubiquitous on all GPUs supporting&amp;nbsp;Vulkan.&lt;/p&gt;
&lt;h2&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;While OpenCL has been around for a while, many recent developments make me
optimistic for its future. If I missed anything, do let me know, and I would be
happy to add it&amp;nbsp;here.&lt;/p&gt;</content><category term="opencl"></category><category term="jit"></category><category term="scicomp"></category><category term="work"></category></entry><entry><title>Nvidia Highlights PyCUDA/PyOpenCL Applications</title><link href="https://mathema.tician.de/nvidia-coverage" rel="alternate"></link><published>2016-02-14T13:18:00-06:00</published><updated>2016-02-14T13:18:00-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2016-02-14:/nvidia-coverage</id><summary type="html">&lt;p&gt;Nvidia&amp;#8217;s &lt;a href="https://devblogs.nvidia.com/parallelforall/"&gt;Parallel Forall blog&lt;/a&gt;
recently highlighted two applications that are using my &lt;a href="/software/pyopencl"&gt;Python&lt;/a&gt;
&lt;a href="/software/pycuda"&gt;&lt;span class="caps"&gt;HPC&lt;/span&gt; packages&lt;/a&gt; to accelerate their computational science&amp;nbsp;workloads:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://devblogs.nvidia.com/parallelforall/increasing-luminosity-beam-dynamics-gpus/"&gt;Increasing the Luminosity of Beam Dynamics with GPUs&lt;/a&gt;,
    a writeup of &lt;a href="http://people.epfl.ch/adrian.oeftiger"&gt;Adrian Oeftiger&lt;/a&gt;&amp;#8216;s work
    on &lt;span class="caps"&gt;CERN&lt;/span&gt;&amp;#8217;s &lt;a href="https://github.com/PyCOMPLETE/PyHEADTAIL"&gt;PyHEADTAIL&lt;/a&gt;&amp;nbsp;code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://devblogs.nvidia.com/parallelforall/open-reproducible-computational-chemistry-python-cuda/"&gt;Open, Reproducible Computational Chemistry with Python and &lt;span class="caps"&gt;CUDA …&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Nvidia&amp;#8217;s &lt;a href="https://devblogs.nvidia.com/parallelforall/"&gt;Parallel Forall blog&lt;/a&gt;
recently highlighted two applications that are using my &lt;a href="/software/pyopencl"&gt;Python&lt;/a&gt;
&lt;a href="/software/pycuda"&gt;&lt;span class="caps"&gt;HPC&lt;/span&gt; packages&lt;/a&gt; to accelerate their computational science&amp;nbsp;workloads:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://devblogs.nvidia.com/parallelforall/increasing-luminosity-beam-dynamics-gpus/"&gt;Increasing the Luminosity of Beam Dynamics with GPUs&lt;/a&gt;,
    a writeup of &lt;a href="http://people.epfl.ch/adrian.oeftiger"&gt;Adrian Oeftiger&lt;/a&gt;&amp;#8216;s work
    on &lt;span class="caps"&gt;CERN&lt;/span&gt;&amp;#8217;s &lt;a href="https://github.com/PyCOMPLETE/PyHEADTAIL"&gt;PyHEADTAIL&lt;/a&gt;&amp;nbsp;code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://devblogs.nvidia.com/parallelforall/open-reproducible-computational-chemistry-python-cuda/"&gt;Open, Reproducible Computational Chemistry with Python and &lt;span class="caps"&gt;CUDA&lt;/span&gt;&lt;/a&gt;
    a writeup of &lt;a href="http://www.mecanica.usm.cl/index.php/quienes-somos/10-profesores/42-christopher-cooper"&gt;Christopher Cooper&lt;/a&gt;&amp;#8216;s work
    on the &lt;a href="https://github.com/barbagroup/pygbe"&gt;PyGBe&lt;/a&gt;&amp;nbsp;code.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="python"></category><category term="hpc"></category><category term="work"></category></entry><entry><title>Tutorial: Domain Specific Languages and Code Generation in Python</title><link href="https://mathema.tician.de/tutorial-dsl-codegen" rel="alternate"></link><published>2015-11-25T18:55:00-06:00</published><updated>2015-11-25T18:55:00-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2015-11-25:/tutorial-dsl-codegen</id><summary type="html">&lt;p&gt;At &lt;a href="http://sc15.supercomputing.org"&gt;&lt;span class="caps"&gt;SC15&lt;/span&gt;&lt;/a&gt; last week I had the opportunity to
present a
&lt;a href="http://sc15.supercomputing.org/schedule/event_detail-evid=tut174.html"&gt;tutorial&lt;/a&gt; on
how to design, build, and compile your own domain-specific language using
Python. I am now releasing the tutorial material under a Creative Commons
license for the community to use and build&amp;nbsp;on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/inducer/languages-and-codegen-tutorial"&gt;Browse&amp;nbsp;tutorial&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Specifically, the material …&lt;/p&gt;</summary><content type="html">&lt;p&gt;At &lt;a href="http://sc15.supercomputing.org"&gt;&lt;span class="caps"&gt;SC15&lt;/span&gt;&lt;/a&gt; last week I had the opportunity to
present a
&lt;a href="http://sc15.supercomputing.org/schedule/event_detail-evid=tut174.html"&gt;tutorial&lt;/a&gt; on
how to design, build, and compile your own domain-specific language using
Python. I am now releasing the tutorial material under a Creative Commons
license for the community to use and build&amp;nbsp;on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/inducer/languages-and-codegen-tutorial"&gt;Browse&amp;nbsp;tutorial&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Specifically, the material&amp;nbsp;covers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;how to &lt;strong&gt;define&lt;/strong&gt; mathematically-oriented &lt;strong&gt;domain-specific languages&lt;/strong&gt; (&amp;#8220;DSLs&amp;#8221;) in&amp;nbsp;Python&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;how to build &lt;strong&gt;transformations&lt;/strong&gt; for your DSLs to take them from &lt;strong&gt;abstraction&lt;/strong&gt; to
  &lt;strong&gt;implementation&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;how to generate highly efficient code from your domain-specific&amp;nbsp;language&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;how to use &lt;strong&gt;just-in-time compilation&lt;/strong&gt; with OpenCL from Python to &lt;strong&gt;execute
  generated&amp;nbsp;code&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;a few existing &lt;strong&gt;design studies&lt;/strong&gt; and &lt;strong&gt;use cases&lt;/strong&gt; for domain-specific&amp;nbsp;languages&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;how to use loopy to generate &lt;strong&gt;highly efficient code&lt;/strong&gt; to work with &lt;strong&gt;array data&lt;/strong&gt;
  targeting &lt;strong&gt;heterogeneous processor architectures&lt;/strong&gt;&amp;nbsp;(CPUs/GPUs)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A brief, generic introduction to Python and Numpy is also included for those
coming from other&amp;nbsp;languages.&lt;/p&gt;
&lt;p&gt;Using Github&amp;#8217;s rendering of IPython/Jupyter notebooks, it&amp;#8217;s quite easy (and
hopefully &lt;em&gt;fun&lt;/em&gt;) to click around and browse the &lt;strong&gt;&lt;a href="https://github.com/inducer/languages-and-codegen-tutorial"&gt;source
repository&lt;/a&gt;&lt;/strong&gt;.
A virtual machine image is also available to support experimentation with
the software tools being&amp;nbsp;demonstrated.&lt;/p&gt;
&lt;p&gt;I am making the material for this tutorial available under a Creative Commons
license for others to use and build&amp;nbsp;on.&lt;/p&gt;</content><category term="opencl"></category><category term="jit"></category><category term="scicomp"></category><category term="work"></category></entry><entry><title>Dr. Dobb’s article series on PyOpenCL</title><link href="https://mathema.tician.de/dr-dobbs-article-series-on-pyopencl" rel="alternate"></link><published>2013-11-14T16:10:00-06:00</published><updated>2013-11-14T16:10:00-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2013-11-14:/dr-dobbs-article-series-on-pyopencl</id><summary type="html">&lt;p&gt;Gaston Hillar has written a very nice &lt;a href="http://www.drdobbs.com/open-source/easy-opencl-with-python/240162614"&gt;introductory
article&lt;/a&gt;
on using &lt;a href="/software/pyopencl"&gt;PyOpenCL&lt;/a&gt;, to be part of a two-part series. I&amp;#8217;m
already looking forward to the second part.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;d like to try to follow along with the article, check out the &lt;a href="http://wiki.tiker.net/OpenCLHowTo"&gt;OpenCL
installation howto&lt;/a&gt;, then follow the easy …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Gaston Hillar has written a very nice &lt;a href="http://www.drdobbs.com/open-source/easy-opencl-with-python/240162614"&gt;introductory
article&lt;/a&gt;
on using &lt;a href="/software/pyopencl"&gt;PyOpenCL&lt;/a&gt;, to be part of a two-part series. I&amp;#8217;m
already looking forward to the second part.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;d like to try to follow along with the article, check out the &lt;a href="http://wiki.tiker.net/OpenCLHowTo"&gt;OpenCL
installation howto&lt;/a&gt;, then follow the easy
&lt;a href="http://wiki.tiker.net/PyOpenCL/Installation"&gt;installation instructions&lt;/a&gt; for
PyOpenCL, and you&amp;#8217;ll be in business. If you find that you need help in the
process, &lt;a href="http://lists.tiker.net/listinfo/pyopencl"&gt;help&lt;/a&gt; is
&lt;a href="http://stackoverflow.com/questions/tagged/pyopencl"&gt;available&lt;/a&gt;.&lt;/p&gt;</content><category term="pyopencl"></category><category term="tutorial"></category><category term="work"></category></entry><entry><title>The Devil’s dictionary of programming</title><link href="https://mathema.tician.de/the-devils-dictionary-of-programming" rel="alternate"></link><published>2013-11-02T13:55:00-05:00</published><updated>2013-11-02T13:55:00-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2013-11-02:/the-devils-dictionary-of-programming</id><summary type="html">&lt;p&gt;As someone who, on occasion, has created a
domain-specific-&lt;a href="/software/hedge"&gt;language&lt;/a&gt; or &lt;a href="/software/loopy"&gt;two&lt;/a&gt;, this
entry of the &lt;a href="http://programmingisterrible.com/post/65781074112/devils-dictionary-of-programming"&gt;Devil&amp;#8217;s Dictionary of
Programming&lt;/a&gt;
hit close to&amp;nbsp;home:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span class="caps"&gt;DSL&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;A domain specific language, where code is written in one language and errors are given in&amp;nbsp;another.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://programmingisterrible.com/post/65781074112/devils-dictionary-of-programming"&gt;Link&lt;/a&gt; (found on hacker&amp;nbsp;news)&lt;/p&gt;</summary><content type="html">&lt;p&gt;As someone who, on occasion, has created a
domain-specific-&lt;a href="/software/hedge"&gt;language&lt;/a&gt; or &lt;a href="/software/loopy"&gt;two&lt;/a&gt;, this
entry of the &lt;a href="http://programmingisterrible.com/post/65781074112/devils-dictionary-of-programming"&gt;Devil&amp;#8217;s Dictionary of
Programming&lt;/a&gt;
hit close to&amp;nbsp;home:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span class="caps"&gt;DSL&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;A domain specific language, where code is written in one language and errors are given in&amp;nbsp;another.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://programmingisterrible.com/post/65781074112/devils-dictionary-of-programming"&gt;Link&lt;/a&gt; (found on hacker&amp;nbsp;news)&lt;/p&gt;</content><category term="dsl"></category><category term="programming"></category></entry><entry><title>New (Py)OpenCL tutorial</title><link href="https://mathema.tician.de/new-py-opencl-tutorial" rel="alternate"></link><published>2013-09-17T20:10:21-05:00</published><updated>2013-09-17T20:10:21-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2013-09-17:/new-py-opencl-tutorial</id><summary type="html">&lt;p&gt;&lt;a href="http://www.cs.bris.ac.uk/~simonm/"&gt;Simon McIntosh-Smith&lt;/a&gt; from Bristol University just let me know that he and &lt;a href="http://www.tomdeakin.com/"&gt;Tom Deakin&lt;/a&gt; have published a new set of lecture slides and excercises (with solutions!) to teach (more generally) OpenCL and (specifically) PyOpenCL. I&amp;#8217;ve added a link to this and a few older tutorials&amp;nbsp;to &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;PyOpenCL&amp;#8217;s main …&lt;/p&gt;&lt;/blockquote&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://www.cs.bris.ac.uk/~simonm/"&gt;Simon McIntosh-Smith&lt;/a&gt; from Bristol University just let me know that he and &lt;a href="http://www.tomdeakin.com/"&gt;Tom Deakin&lt;/a&gt; have published a new set of lecture slides and excercises (with solutions!) to teach (more generally) OpenCL and (specifically) PyOpenCL. I&amp;#8217;ve added a link to this and a few older tutorials&amp;nbsp;to &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;PyOpenCL&amp;#8217;s main &lt;a href="http://documen.tician.de/pyopencl"&gt;documentation page&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Simon requested that if you spot issues with the tutorials, you file them as issues &lt;a href="https://github.com/HandsOnOpenCL/Lecture-Slides"&gt;on github&lt;/a&gt;.&lt;/p&gt;</content><category term="opencl"></category><category term="jit"></category><category term="scicomp"></category><category term="work"></category></entry><entry><title>Quote of the day</title><link href="https://mathema.tician.de/quote-of-the-day" rel="alternate"></link><published>2013-05-03T09:14:38-05:00</published><updated>2013-05-03T09:14:38-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2013-05-03:/quote-of-the-day</id><summary type="html">&lt;p&gt;Quote of the&amp;nbsp;day:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In Python 2.6, no one can hear you&amp;nbsp;scream.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(&lt;a href="http://emptysquare.net/blog/another-thing-about-pythons-threadlocals/"&gt;source&lt;/a&gt;) This reminds me of that one time when I was debugging some odd interaction between threading and contexts in PyCUDA. Never again, hopefully.&amp;nbsp;:)&lt;/p&gt;</summary><content type="html">&lt;p&gt;Quote of the&amp;nbsp;day:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In Python 2.6, no one can hear you&amp;nbsp;scream.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(&lt;a href="http://emptysquare.net/blog/another-thing-about-pythons-threadlocals/"&gt;source&lt;/a&gt;) This reminds me of that one time when I was debugging some odd interaction between threading and contexts in PyCUDA. Never again, hopefully.&amp;nbsp;:)&lt;/p&gt;</content><category term="python"></category></entry><entry><title>Job? UIUC!</title><link href="https://mathema.tician.de/job-uiuc" rel="alternate"></link><published>2013-03-21T14:58:29-05:00</published><updated>2013-03-21T14:58:29-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2013-03-21:/job-uiuc</id><summary type="html">&lt;div class="ak-left-float"&gt;
&lt;p&gt;&lt;img alt="UIUC logo" src="/images/uiuc-logo.png" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;After many long weeks (months, really) spent applying for and searching for the right job, white smoke! (sorry, couldn&amp;#8217;t resist) I will be joining Luke Olson, Bill Gropp, Mike Heath and everyone else in the &lt;a href="http://scicomp.cs.illinois.edu/index.html"&gt;Scientific Computing Group&lt;/a&gt; at the &lt;a href="http://cs.illinois.edu/"&gt;Computer Science Department&lt;/a&gt; of the &lt;a href="http://illinois.edu/"&gt;University of Illinois at …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;div class="ak-left-float"&gt;
&lt;p&gt;&lt;img alt="UIUC logo" src="/images/uiuc-logo.png" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;After many long weeks (months, really) spent applying for and searching for the right job, white smoke! (sorry, couldn&amp;#8217;t resist) I will be joining Luke Olson, Bill Gropp, Mike Heath and everyone else in the &lt;a href="http://scicomp.cs.illinois.edu/index.html"&gt;Scientific Computing Group&lt;/a&gt; at the &lt;a href="http://cs.illinois.edu/"&gt;Computer Science Department&lt;/a&gt; of the &lt;a href="http://illinois.edu/"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;. I&amp;#8217;ll be moving out there sometime in July or August. I&amp;#8217;m really&amp;nbsp;excited.&lt;/p&gt;
&lt;p&gt;Chambana, here I come!&amp;nbsp;:)&lt;/p&gt;</content><category term="life"></category><category term="math"></category><category term="meta"></category><category term="scientific-computing"></category><category term="work"></category></entry><entry><title>GPUs and Python at PyData NYC 2012</title><link href="https://mathema.tician.de/gpus-and-python-at-pydata-nyc-2012" rel="alternate"></link><published>2012-11-12T17:42:54-06:00</published><updated>2012-11-12T17:42:54-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2012-11-12:/gpus-and-python-at-pydata-nyc-2012</id><summary type="html">&lt;p&gt;This October I had the honor of presenting my work on using Python with GPUs at &lt;a href="https://nyc2012.pydata.org/"&gt;PyData &lt;span class="caps"&gt;NYC&lt;/span&gt; 2012&lt;/a&gt;.&lt;/p&gt;
&lt;!--Here's a video of my talk:

&lt;iframe src="https://player.vimeo.com/video/53052481?badge=0" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;
--&gt;

&lt;p&gt;There was also a panel discussion on Python+Parallel that I was a part of&amp;#8212;great&amp;nbsp;fun.&lt;/p&gt;
&lt;!--
&lt;iframe src="https://player.vimeo.com/video/53108179?badge=0" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;
--&gt;

&lt;p&gt;Also be sure to check out all the videos of the &lt;a href="https://vimeo.com/channels/pydata/"&gt;other great talks …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;This October I had the honor of presenting my work on using Python with GPUs at &lt;a href="https://nyc2012.pydata.org/"&gt;PyData &lt;span class="caps"&gt;NYC&lt;/span&gt; 2012&lt;/a&gt;.&lt;/p&gt;
&lt;!--Here's a video of my talk:

&lt;iframe src="https://player.vimeo.com/video/53052481?badge=0" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;
--&gt;

&lt;p&gt;There was also a panel discussion on Python+Parallel that I was a part of&amp;#8212;great&amp;nbsp;fun.&lt;/p&gt;
&lt;!--
&lt;iframe src="https://player.vimeo.com/video/53108179?badge=0" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;
--&gt;

&lt;p&gt;Also be sure to check out all the videos of the &lt;a href="https://vimeo.com/channels/pydata/"&gt;other great talks&lt;/a&gt; to see what you&amp;#8217;ve&amp;nbsp;missed.&lt;/p&gt;
&lt;p&gt;If this sounds interesting to you, also be sure to check out their next conference, &lt;a href="https://sv2013.eventbrite.com/"&gt;PyData Silicon Valley 2013&lt;/a&gt;. And please (continue to!) support &lt;a href="http://numfocus.org/"&gt;NumFocus&lt;/a&gt; and check out what &lt;a href="http://www.continuum.io/"&gt;Continuum&lt;/a&gt; are doing for big data in Python. They deserve a lot of credit for bringing the Python community together at events like&amp;nbsp;PyData.&lt;/p&gt;</content><category term="gpu"></category><category term="pycuda"></category><category term="pyopencl"></category><category term="python"></category><category term="scientific-computing"></category><category term="work"></category></entry><entry><title>PyCUDA and PyOpenCL at Nvidia GTC 2010</title><link href="https://mathema.tician.de/pycuda-and-pyopencl-at-nvidia-gtc-2010" rel="alternate"></link><published>2010-09-28T16:55:56-05:00</published><updated>2010-09-28T16:55:56-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2010-09-28:/pycuda-and-pyopencl-at-nvidia-gtc-2010</id><summary type="html">&lt;p&gt;Like last year, I had the honor of being invited to present PyCUDA and PyOpenCL along with a few examples of their use to a great crowd at &lt;a href="http://nvidia.com"&gt;Nvidia&lt;/a&gt;&amp;#8216;s inaugural &lt;a href="http://nvidia.com/gtc"&gt;&lt;span class="caps"&gt;GPU&lt;/span&gt; Technology Conference 2010&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="gtc-slide-1.png" src="/images/gtc-slide-1.png" /&gt;&lt;/p&gt;
&lt;p&gt;Please click the following link to view the slides: &lt;a href="/dl/main.pdf"&gt;PyCUDA and PyOpenCL at Nvidia &lt;span class="caps"&gt;GTC …&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Like last year, I had the honor of being invited to present PyCUDA and PyOpenCL along with a few examples of their use to a great crowd at &lt;a href="http://nvidia.com"&gt;Nvidia&lt;/a&gt;&amp;#8216;s inaugural &lt;a href="http://nvidia.com/gtc"&gt;&lt;span class="caps"&gt;GPU&lt;/span&gt; Technology Conference 2010&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="gtc-slide-1.png" src="/images/gtc-slide-1.png" /&gt;&lt;/p&gt;
&lt;p&gt;Please click the following link to view the slides: &lt;a href="/dl/main.pdf"&gt;PyCUDA and PyOpenCL at Nvidia &lt;span class="caps"&gt;GTC&lt;/span&gt; 2010&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Nvidia has posted a &lt;a href="http://nvidia.fullviewmedia.com/gtc2010/0922-a3-2041.html"&gt;recording&lt;/a&gt; of the session. There&amp;#8217;s also a &lt;a href="http://developer.download.nvidia.com/compute/cuda/docs/GTC_2010_Archives.htm"&gt;full list of sessions&lt;/a&gt;, with many talks that are worth being watched. In particular, I&amp;#8217;d like to recommend the ones by &lt;a href="http://embedded.eecs.berkeley.edu/mescal/people/catanzaro.html"&gt;Bryan Catanzaro&lt;/a&gt; on &lt;a href="http://nvidia.fullviewmedia.com/gtc2010/0922-n-2050.html"&gt;Copperhead&lt;/a&gt;, which is built on top of PyCUDA, by &lt;a href="http://www.caam.rice.edu/~timwar"&gt;Tim Warburton&lt;/a&gt; on &lt;a href="http://nvidia.fullviewmedia.com/gtc2010/0922-san-jose-2078.html"&gt;all things &lt;span class="caps"&gt;GPU&lt;/span&gt;-based discontinuous Galerkin&lt;/a&gt;. Also check out the &lt;a href="http://www.nvidia.com/object/I24-Atomic-Hedgehog-Productive-High-Performance-Computing-with-Python.pdf"&gt;poster on Atomic Hedgehog&lt;/a&gt; by Cyrus&amp;nbsp;Omar.&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dl/main.pdf"&gt;main.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="2010"></category><category term="cuda"></category><category term="gtc"></category><category term="nvidia"></category><category term="opencl"></category><category term="talk"></category><category term="gpu"></category><category term="pycuda"></category><category term="pyopencl"></category><category term="scientific-computing"></category><category term="work"></category></entry><entry><title>PyCUDA at PyCon Quattro (Italy)</title><link href="https://mathema.tician.de/pycuda-at-pycon-quattro-italy" rel="alternate"></link><published>2010-05-20T08:34:32-05:00</published><updated>2010-05-20T08:34:32-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2010-05-20:/pycuda-at-pycon-quattro-italy</id><summary type="html">&lt;p&gt;At the recent PyCon Quattro, which took place in early May in the beautiful Tuscan city of Florence, Fabrizio Milo gave a talk on &lt;a href="/software/pycuda"&gt;PyCUDA&lt;/a&gt;&amp;nbsp;entitled&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://www.pycon.it/conference/talks/pycuda-come-sfruttare-la-potenza-delle-schede-vide"&gt;PyCuda: Come sfruttare la potenza delle schede video nelle applicazioni python&lt;/a&gt;
(PyCUDA: How to make use of the power of graphics cards in Python …&lt;/p&gt;&lt;/blockquote&gt;</summary><content type="html">&lt;p&gt;At the recent PyCon Quattro, which took place in early May in the beautiful Tuscan city of Florence, Fabrizio Milo gave a talk on &lt;a href="/software/pycuda"&gt;PyCUDA&lt;/a&gt;&amp;nbsp;entitled&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://www.pycon.it/conference/talks/pycuda-come-sfruttare-la-potenza-delle-schede-vide"&gt;PyCuda: Come sfruttare la potenza delle schede video nelle applicazioni python&lt;/a&gt;
(PyCUDA: How to make use of the power of graphics cards in Python&amp;nbsp;applications)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He made a set of rather nice slides (in English), which may be of interest. They are downloadable in &lt;span class="caps"&gt;PDF&lt;/span&gt; form at the&amp;nbsp;link.&lt;/p&gt;
&lt;p&gt;Thanks Fabrizio for taking the time to talk about&amp;nbsp;PyCUDA!&lt;/p&gt;</content><category term="community"></category><category term="italy"></category><category term="pycon"></category><category term="talk"></category><category term="gpu"></category><category term="pycuda"></category><category term="python"></category><category term="scientific-computing"></category></entry><entry><title>Putting the “Hard” in “Hardware”</title><link href="https://mathema.tician.de/putting-the-hard-in-hardware" rel="alternate"></link><published>2010-02-20T12:15:04-06:00</published><updated>2010-02-20T12:15:04-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2010-02-20:/putting-the-hard-in-hardware</id><summary type="html">&lt;p&gt;Quite often, I hear complaints that coding for GPUs is difficult. In response to such comments, I believe that, for correct perspective, the discussion needs to be framed somewhat&amp;nbsp;differently.&lt;/p&gt;
&lt;p&gt;First of all, squeezing the last drop of performance out of modern CPUs is hard, too. Here&amp;#8217;s a nice …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Quite often, I hear complaints that coding for GPUs is difficult. In response to such comments, I believe that, for correct perspective, the discussion needs to be framed somewhat&amp;nbsp;differently.&lt;/p&gt;
&lt;p&gt;First of all, squeezing the last drop of performance out of modern CPUs is hard, too. Here&amp;#8217;s a nice &lt;a href="http://igoro.com/archive/gallery-of-processor-cache-effects/"&gt;article on cache effects&lt;/a&gt; by Igor Ostrovsky that explains some of the phenomena one needs to take into account and the surprising things that can&amp;nbsp;happen.&lt;/p&gt;
&lt;p&gt;It just appears to me that on the &lt;span class="caps"&gt;CPU&lt;/span&gt;, fewer people &lt;em&gt;care&lt;/em&gt; about good performance, whereas for GPUs, you admit that you do care simply by your choice of architecture. Not caring about &lt;span class="caps"&gt;CPU&lt;/span&gt; is not entirely unreasonable&amp;#8212;you are somewhat likely to get &amp;#8216;average&amp;#8217; performance even without detailed analyses. On the &lt;span class="caps"&gt;GPU&lt;/span&gt; on the other hand, carelessly written code is not as likely to perform&amp;nbsp;well.&lt;/p&gt;
&lt;p&gt;So, in summary, my belief is that both CPUs and GPUs can be equally difficult to understand, it&amp;#8217;s just that the potential payoff of caring about performance is much greater on one than on the&amp;nbsp;other.&lt;/p&gt;</content><category term="cache"></category><category term="code"></category><category term="cpu"></category><category term="parallel"></category><category term="hardware"></category><category term="mindless-link-propagation"></category><category term="scientific-computing"></category></entry><entry><title>Why is GPU Computing significant?</title><link href="https://mathema.tician.de/why-is-gpu-computing-significant" rel="alternate"></link><published>2009-12-05T18:01:35-06:00</published><updated>2009-12-05T18:01:35-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-12-05:/why-is-gpu-computing-significant</id><summary type="html">&lt;p&gt;In my opinion, &lt;span class="caps"&gt;GPU&lt;/span&gt; computing is significant because I&amp;#8212;as a grad student&amp;#8212;can easily afford a machine that allows me to perform a simulation like the following in 40 minutes instead of a whole workday. That&amp;#8217;s&amp;nbsp;why.&lt;/p&gt;
&lt;p&gt;&lt;object width="500" height="218"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="https://vimeo.com/moogaloop.swf?clip_id=8005374&amp;amp;server=vimeo.com&amp;amp;show_title=0&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" /&gt;&lt;embed src="https://vimeo.com/moogaloop.swf?clip_id=8005374&amp;amp;server=vimeo.com&amp;amp;show_title=0&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="500" height="218"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re curious, this shows the density of a vortex …&lt;/p&gt;</summary><content type="html">&lt;p&gt;In my opinion, &lt;span class="caps"&gt;GPU&lt;/span&gt; computing is significant because I&amp;#8212;as a grad student&amp;#8212;can easily afford a machine that allows me to perform a simulation like the following in 40 minutes instead of a whole workday. That&amp;#8217;s&amp;nbsp;why.&lt;/p&gt;
&lt;p&gt;&lt;object width="500" height="218"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="https://vimeo.com/moogaloop.swf?clip_id=8005374&amp;amp;server=vimeo.com&amp;amp;show_title=0&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" /&gt;&lt;embed src="https://vimeo.com/moogaloop.swf?clip_id=8005374&amp;amp;server=vimeo.com&amp;amp;show_title=0&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="500" height="218"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re curious, this shows the density of a vortex shedding flow behind a square obstacle at Re=100 and Ma=0.1. The attentive viewer may notice a sound wave at the beginning as the system settles from uniform flow to flow around the obstacle, as well as the passing of a gentle density &amp;#8220;nudge&amp;#8221; intended to throw the system off balance and accelerate the onset of shedding. This was computed using my Discontinuous Galerkin solver &lt;a href="/software/hedge"&gt;hedge&lt;/a&gt; on an Nvidia &lt;span class="caps"&gt;GTX&lt;/span&gt;&amp;nbsp;260. &lt;/p&gt;
&lt;p&gt;This work owes a lot to Hendrik Riedmann from &lt;a href="http://www.iag.uni-stuttgart.de"&gt;&lt;span class="caps"&gt;IAG&lt;/span&gt;, Uni Stuttgart&lt;/a&gt; who wrote the initial version of the Navier-Stokes operator in&amp;nbsp;hedge.&lt;/p&gt;
&lt;p&gt;(Btw: did you notice how the movie cleverly avoids the typical criticism of being &amp;#8220;&lt;span class="caps"&gt;CFD&lt;/span&gt;&amp;#8221;&amp;#8212;&lt;em&gt;colorful&lt;/em&gt; fluid dynamics?&amp;nbsp;:-)&lt;/p&gt;</content><category term="cfd"></category><category term="dg"></category><category term="discontinuous galerkin"></category><category term="simulation"></category><category term="grad-school"></category><category term="hedge"></category><category term="pycuda"></category><category term="python"></category><category term="scientific-computing"></category></entry><entry><title>You are being preyed on</title><link href="https://mathema.tician.de/you-are-being-preyed-on" rel="alternate"></link><published>2009-12-02T22:22:45-06:00</published><updated>2009-12-02T22:22:45-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-12-02:/you-are-being-preyed-on</id><summary type="html">&lt;p&gt;Do you have a free checking account? A free credit card? Do you perhaps even get money back from your credit card company? Ever wonder who pays for all these freebies? This &lt;a href="http://is.gd/5aJp5"&gt;Frontline report&lt;/a&gt; (also embedded below) provides some answers and sheds light on the shady things going on in …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Do you have a free checking account? A free credit card? Do you perhaps even get money back from your credit card company? Ever wonder who pays for all these freebies? This &lt;a href="http://is.gd/5aJp5"&gt;Frontline report&lt;/a&gt; (also embedded below) provides some answers and sheds light on the shady things going on in &lt;span class="caps"&gt;US&lt;/span&gt; consumer&amp;nbsp;banking.&lt;/p&gt;
&lt;script type="text/javascript" src="http://www.pbs.org/wgbh/pages/frontline/js/pap/embed.js?frol02c3592qcbb"&gt;&lt;/script&gt;</content><category term="credit card"></category><category term="debit card"></category><category term="lending"></category><category term="overdraft"></category><category term="predatory"></category><category term="life"></category><category term="rants"></category></entry><entry><title>Submitted: PyCUDA: GPU Run-Time Code Generation for High-Performance Computing</title><link href="https://mathema.tician.de/submitted-pycuda-gpu-run-time-code-generation-for-high-performance-computing" rel="alternate"></link><published>2009-11-26T10:12:13-06:00</published><updated>2009-11-26T10:12:13-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-11-26:/submitted-pycuda-gpu-run-time-code-generation-for-high-performance-computing</id><summary type="html">&lt;p&gt;&lt;a href="http://pinto.scripts.mit.edu/"&gt;Nicolas Pinto&lt;/a&gt;, &lt;a href="http://www.eecs.berkeley.edu/~yunsup/"&gt;Yunsup Lee&lt;/a&gt;, &lt;a href="http://embedded.eecs.berkeley.edu/mescal/people/catanzaro.html"&gt;Bryan Catanzaro&lt;/a&gt;, &lt;a href="http://pirsquared.org/blog/"&gt;Paul Ivanov&lt;/a&gt;, &lt;a href="http://www.ece.osu.edu/~fasiha/"&gt;Ahmed Fasih&lt;/a&gt; and I have recently submitted an article that explains how &lt;a href="/software/pycuda"&gt;PyCUDA&lt;/a&gt; allows the user to do &lt;em&gt;run-time code generation&lt;/em&gt; (&amp;#8220;&lt;span class="caps"&gt;RTCG&lt;/span&gt;&amp;#8221;), and how that is an enormous boon to implementation efforts of most high-performance codes. Among many other things, PyCUDA also …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://pinto.scripts.mit.edu/"&gt;Nicolas Pinto&lt;/a&gt;, &lt;a href="http://www.eecs.berkeley.edu/~yunsup/"&gt;Yunsup Lee&lt;/a&gt;, &lt;a href="http://embedded.eecs.berkeley.edu/mescal/people/catanzaro.html"&gt;Bryan Catanzaro&lt;/a&gt;, &lt;a href="http://pirsquared.org/blog/"&gt;Paul Ivanov&lt;/a&gt;, &lt;a href="http://www.ece.osu.edu/~fasiha/"&gt;Ahmed Fasih&lt;/a&gt; and I have recently submitted an article that explains how &lt;a href="/software/pycuda"&gt;PyCUDA&lt;/a&gt; allows the user to do &lt;em&gt;run-time code generation&lt;/em&gt; (&amp;#8220;&lt;span class="caps"&gt;RTCG&lt;/span&gt;&amp;#8221;), and how that is an enormous boon to implementation efforts of most high-performance codes. Among many other things, PyCUDA also underlies our efforts to bring &lt;a href="/node/476"&gt;discontinuous Galerkin &lt;span class="caps"&gt;PDE&lt;/span&gt; solvers onto the &lt;span class="caps"&gt;GPU&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Get it while it&amp;#8217;s hot: &lt;a href="http://arxiv.org/abs/0911.3456"&gt;Arxiv&lt;/a&gt;, &lt;a href="http://www.dam.brown.edu/scicomp/reports/2009-40/"&gt;Brown &lt;span class="caps"&gt;SC&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Fixed arXiv&amp;nbsp;link.&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;High-performance scientific computing has recently seen a surge of interest in heterogeneous systems, with an emphasis on modern Graphics Processing Units (GPUs). These devices offer tremendous potential for performance and efficiency in important large-scale applications of computational science. However, exploiting this potential can be challenging, as one must adapt to the specialized and rapidly evolving computing environment currently exhibited by GPUs. One way of addressing this challenge is to embrace better techniques and develop tools tailored to their needs. This article presents one simple technique, &lt;span class="caps"&gt;GPU&lt;/span&gt; run-time code generation (&lt;span class="caps"&gt;RTCG&lt;/span&gt;), and PyCUDA, an open-source toolkit that supports this&amp;nbsp;technique.&lt;/p&gt;
&lt;p&gt;In introducing PyCUDA, this article proposes the combination of a dynamic, high-level scripting language with the massive performance of a &lt;span class="caps"&gt;GPU&lt;/span&gt; as a compelling two-tiered computing platform, potentially offering significant performance and productivity advantages over conventional single-tier, static systems. It is further observed that, compared to competing techniques, the effort required to create codes using run-time code generation with PyCUDA grows more gently in response to growing needs. The concept of &lt;span class="caps"&gt;RTCG&lt;/span&gt; is simple and easily implemented using existing, robust tools. Nonetheless it is powerful enough to support (and encourage) the creation of custom application-specific tools by its users. The premise of the paper is illustrated by a wide range of examples where the technique has been applied with considerable&amp;nbsp;success. &lt;/p&gt;</content><category term="code generation"></category><category term="rtcg"></category><category term="gpu"></category><category term="grad-school"></category><category term="pycuda"></category><category term="python"></category><category term="scientific-computing"></category></entry><entry><title>PyCUDA talk at Nvidia’s GPU Technology Conference</title><link href="https://mathema.tician.de/pycuda-talk-at-nvidias-gpu-technology-conference" rel="alternate"></link><published>2009-10-04T16:20:11-05:00</published><updated>2009-10-04T16:20:11-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-10-04:/pycuda-talk-at-nvidias-gpu-technology-conference</id><summary type="html">&lt;p&gt;This past week, I had the honor of presenting a talk on &lt;a href="/software/pycuda"&gt;PyCUDA&lt;/a&gt; at &lt;a href="http://nvidia.com"&gt;Nvidia&lt;/a&gt;&amp;#8216;s inaugural &lt;a href="http://nvidia.com/gtc"&gt;&lt;span class="caps"&gt;GPU&lt;/span&gt; Technology Conference&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="pycuda-nvidia.png" src="/images/pycuda-nvidia.png" /&gt;&lt;/p&gt;
&lt;p&gt;Please click the following link to view the slides: &lt;a href="/dl/pycuda-nvidia.pdf"&gt;PyCUDA talk at Nvidia&amp;#8217;s &lt;span class="caps"&gt;GPU&lt;/span&gt; Technology Conference&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Nvidia has posted a &lt;a href="http://nvidia.fullviewmedia.com/GPU2009/1002-empire-1400.html"&gt;recording&lt;/a&gt; of the session that you may watch …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This past week, I had the honor of presenting a talk on &lt;a href="/software/pycuda"&gt;PyCUDA&lt;/a&gt; at &lt;a href="http://nvidia.com"&gt;Nvidia&lt;/a&gt;&amp;#8216;s inaugural &lt;a href="http://nvidia.com/gtc"&gt;&lt;span class="caps"&gt;GPU&lt;/span&gt; Technology Conference&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="pycuda-nvidia.png" src="/images/pycuda-nvidia.png" /&gt;&lt;/p&gt;
&lt;p&gt;Please click the following link to view the slides: &lt;a href="/dl/pycuda-nvidia.pdf"&gt;PyCUDA talk at Nvidia&amp;#8217;s &lt;span class="caps"&gt;GPU&lt;/span&gt; Technology Conference&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Nvidia has posted a &lt;a href="http://nvidia.fullviewmedia.com/GPU2009/1002-empire-1400.html"&gt;recording&lt;/a&gt; of the session that you may watch or &lt;a href="http://www.nvidia.com/content/GTC/videos/GTC09-1400.flv"&gt;download&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 2:&lt;/strong&gt; Giancarlo Colasante has transcoded the above video into just 16 &lt;span class="caps"&gt;MB&lt;/span&gt;. You may download the resulting &lt;a href="/dl/pub/nvidia-gtc-2009.mp4"&gt;video&lt;/a&gt;&amp;nbsp;here.&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dl/pycuda-nvidia.pdf"&gt;pycuda-nvidia.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="cuda"></category><category term="gtc"></category><category term="nvidia"></category><category term="talk"></category><category term="gpu"></category><category term="my-software"></category><category term="pycuda"></category><category term="pyopencl"></category><category term="python"></category><category term="scientific-computing"></category><category term="work"></category></entry><entry><title>Nena vs Eminem</title><link href="https://mathema.tician.de/nena-vs-eminem" rel="alternate"></link><published>2009-09-05T10:27:14-05:00</published><updated>2009-09-05T10:27:14-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-09-05:/nena-vs-eminem</id><summary type="html">&lt;p&gt;Is it possible to take the instrumentals from one track, the vocals from another, and come up with something that you&amp;#8217;d actually want to listen to? Turns out&amp;nbsp;yes:&lt;/p&gt;
&lt;p&gt;&lt;object width="320" height="100"&gt;&lt;param name="movie" value="https://www.youtube.com/v/cYKq2f2-N-4&amp;hl=de&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="https://www.youtube.com/v/cYKq2f2-N-4&amp;hl=de&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="100"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;Amazing what computers can do these days. (via &lt;a href="http://layer-acht.org/blog/debian/"&gt;Holger Levsen&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=xFYQQPAOz7Y"&gt;Original 1&lt;/a&gt;, &lt;a href="https://www.youtube.com/watch?v=gXmTezTWnXY"&gt;Original 2&lt;/a&gt;.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Is it possible to take the instrumentals from one track, the vocals from another, and come up with something that you&amp;#8217;d actually want to listen to? Turns out&amp;nbsp;yes:&lt;/p&gt;
&lt;p&gt;&lt;object width="320" height="100"&gt;&lt;param name="movie" value="https://www.youtube.com/v/cYKq2f2-N-4&amp;hl=de&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="https://www.youtube.com/v/cYKq2f2-N-4&amp;hl=de&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="100"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;Amazing what computers can do these days. (via &lt;a href="http://layer-acht.org/blog/debian/"&gt;Holger Levsen&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=xFYQQPAOz7Y"&gt;Original 1&lt;/a&gt;, &lt;a href="https://www.youtube.com/watch?v=gXmTezTWnXY"&gt;Original 2&lt;/a&gt;.&lt;/p&gt;</content><category term="life"></category><category term="mindless-link-propagation"></category><category term="silly-stuff"></category><category term="technology"></category></entry><entry><title>SciPy‘09: Advanced Tutorial on PyCUDA</title><link href="https://mathema.tician.de/scipy09-advanced-tutorial-on-pycuda" rel="alternate"></link><published>2009-08-25T11:23:03-05:00</published><updated>2009-08-25T11:23:03-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-08-25:/scipy09-advanced-tutorial-on-pycuda</id><summary type="html">&lt;p&gt;The &lt;a href="http://conference.scipy.org/"&gt;SciPy&amp;#8216;09 conference&lt;/a&gt; ended less than a week ago. At the invitation of the SciPy&amp;#8216;09 organizers (especially &lt;a href="https://cirl.berkeley.edu/fperez/index.html"&gt;Fernando Perez&lt;/a&gt;), &lt;a href="http://pinto.scripts.mit.edu/"&gt;Nicolas Pinto&lt;/a&gt; gave a talk in the &lt;a href="http://conference.scipy.org/advanced_tutorials"&gt;Advanced Tutorials track&lt;/a&gt; on how to use &lt;a href="/software/pycuda"&gt;PyCUDA&lt;/a&gt; to do &lt;span class="caps"&gt;GPU&lt;/span&gt;&amp;nbsp;scripting.&lt;/p&gt;
&lt;p&gt;First, I would like to use this opportunity to publicly …&lt;/p&gt;</summary><content type="html">&lt;p&gt;The &lt;a href="http://conference.scipy.org/"&gt;SciPy&amp;#8216;09 conference&lt;/a&gt; ended less than a week ago. At the invitation of the SciPy&amp;#8216;09 organizers (especially &lt;a href="https://cirl.berkeley.edu/fperez/index.html"&gt;Fernando Perez&lt;/a&gt;), &lt;a href="http://pinto.scripts.mit.edu/"&gt;Nicolas Pinto&lt;/a&gt; gave a talk in the &lt;a href="http://conference.scipy.org/advanced_tutorials"&gt;Advanced Tutorials track&lt;/a&gt; on how to use &lt;a href="/software/pycuda"&gt;PyCUDA&lt;/a&gt; to do &lt;span class="caps"&gt;GPU&lt;/span&gt;&amp;nbsp;scripting.&lt;/p&gt;
&lt;p&gt;First, I would like to use this opportunity to publicly thank Nicolas for all the work and time he put into making this tutorial a reality. Second, I would like to point out the &lt;a href="http://www.archive.org/details/scipy09_advancedTutorial_7"&gt;video&lt;/a&gt; of his session, which you can watch&amp;nbsp;below:&lt;/p&gt;
&lt;p&gt;&lt;embed type="application/x-shockwave-flash" width="500"     height="400"    allowfullscreen="true"  allowscriptaccess="always"  src="http://www.archive.org/flow/flowplayer.commercial-3.0.5.swf"   w3c="true"  flashvars='config={"key":"#$b6eb72a0f2f1e29f3d4","playlist":[{"url":"http://www.archive.org/download/scipy09_advancedTutorial_7/format=Thumbnail?.jpg","autoPlay":true,"scaling":"fit"},{"url":"http://www.archive.org/download/scipy09_advancedTutorial_7/scipy09_advancedTutorial_7_512kb.mp4","autoPlay":false,"accelerated":true,"scaling":"fit","provider":"h264streaming"}],"clip":{"autoPlay":false,"accelerated":true,"scaling":"fit","provider":"h264streaming"},"canvas":{"backgroundColor":"0x000000","backgroundGradient":"none"},"plugins":{"audio":{"url":"http://www.archive.org/flow/flowplayer.audio-3.0.3-dev.swf"},"controls":{"playlist":false,"fullscreen":true,"gloss":"high","backgroundColor":"0x000000","backgroundGradient":"medium","sliderColor":"0x777777","progressColor":"0x777777","timeColor":"0xeeeeee","durationColor":"0x01DAFF","buttonColor":"0x333333","buttonOverColor":"0x505050"},"h264streaming":{"url":"http://www.archive.org/flow/flowplayer.h264streaming-3.0.5.swf"}},"contextMenu":[{"Item scipy09_advancedTutorial_7 at archive.org":"function()"},"-","Flowplayer 3.0.5"]}'&gt; &lt;/embed&gt;&lt;/p&gt;</content><category term="gpu"></category><category term="tutorial"></category><category term="video"></category><category term="pycuda"></category><category term="python"></category><category term="scientific-computing"></category></entry><entry><title>Introducing UIH: Math + Unicode, Happy Together</title><link href="https://mathema.tician.de/introducing-uih-math-unicode-happy-together" rel="alternate"></link><published>2009-06-10T21:04:22-05:00</published><updated>2009-06-10T21:04:22-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-06-10:/introducing-uih-math-unicode-happy-together</id><summary type="html">&lt;p&gt;As a math person, you&amp;#8217;re often faced with the task of communicating about math. Unfortunately, most modern means of communication, be it email, the web or instant messages, aren&amp;#8217;t really suited to typing math. Fortunately, however, many of these means &lt;em&gt;do&lt;/em&gt; allow the use of &lt;a href="http://www.unicode.org"&gt;Unicode&lt;/a&gt;, and Unicode …&lt;/p&gt;</summary><content type="html">&lt;p&gt;As a math person, you&amp;#8217;re often faced with the task of communicating about math. Unfortunately, most modern means of communication, be it email, the web or instant messages, aren&amp;#8217;t really suited to typing math. Fortunately, however, many of these means &lt;em&gt;do&lt;/em&gt; allow the use of &lt;a href="http://www.unicode.org"&gt;Unicode&lt;/a&gt;, and Unicode allows for certain limited forms of mathematical&amp;nbsp;typography.&lt;/p&gt;
&lt;p&gt;Putting Unicode formulas together usually requires a fair amount of patience and some quality time with your favorite &lt;a href="http://gucharmap.sourceforge.net/"&gt;character map application&lt;/a&gt;. But now there&amp;#8217;s an easier way: The &lt;em&gt;Unicode Input Helper&lt;/em&gt;&amp;#8212;or &amp;#8220;&lt;span class="caps"&gt;UIH&lt;/span&gt;&amp;#8221;. Here&amp;#8217;s an image of it in&amp;nbsp;action:&lt;/p&gt;
&lt;p&gt;&lt;img alt="uih-screenshot.png" src="/images/uih-screenshot.png" /&gt;&lt;/p&gt;
&lt;p&gt;Using it, you may use &lt;a href="http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references"&gt;&lt;span class="caps"&gt;HTML&lt;/span&gt; entity names&lt;/a&gt; with backslashes (such as &lt;code&gt;\int&lt;/code&gt; for an integral) to put together the basics of a formula, and then use a searchable list of all known Unicode characters to add the finishing touches. The screenshot gives you an idea. Once you&amp;#8217;ve finished your masterpiece, simply use your computer&amp;#8217;s copy-and-paste function to get it to where it needs to&amp;nbsp;be.&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;a href="http://git.tiker.net/uih.git/snapshot/master.tar.gz"&gt;Download the most recent version of &lt;span class="caps"&gt;UIH&lt;/span&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;(Like &lt;a href="/software/pudb"&gt;PuDB&lt;/a&gt;, &lt;code&gt;uih&lt;/code&gt; requires Ian Ward&amp;#8217;s &lt;a href="http://excess.org/urwid"&gt;urwid&lt;/a&gt;&amp;nbsp;library.)&lt;/p&gt;
&lt;p&gt;As a side benefit, I think &lt;code&gt;uih&lt;/code&gt; makes for a nice replacement for pretty much every character map program&amp;#8212;but its original purpose was easy typing of&amp;nbsp;math. &lt;/p&gt;</content><category term="gucharmap"></category><category term="math"></category><category term="unicode"></category><category term="urwid"></category><category term="grad-school"></category><category term="my-software"></category><category term="python"></category><category term="silly-stuff"></category><category term="technology"></category></entry><entry><title>Debug Python in Style</title><link href="https://mathema.tician.de/debug-python-in-style" rel="alternate"></link><published>2009-06-09T18:39:06-05:00</published><updated>2009-06-09T18:39:06-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-06-09:/debug-python-in-style</id><summary type="html">&lt;p&gt;I&amp;#8217;m happy to introduce &lt;a href="http://pypi.python.org/pypi/pudb"&gt;PuDB&lt;/a&gt;, a full-screen, console-based visual debugger for Python that I recently cooked&amp;nbsp;up.&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;a href="http://pypi.python.org/pypi/pudb"&gt;Download it here&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;Or install it simply by&amp;nbsp;typing&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;easy_install pudb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;into your Unix shell. Here&amp;#8217;s a screenshot of it in&amp;nbsp;action:&lt;/p&gt;
&lt;p&gt;&lt;img alt="PuDB screenshot" src="http://tiker.net/pub/pudb-screenshot.png" /&gt;&lt;/p&gt;
&lt;p&gt;Python has had decent debugging support for a while …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;m happy to introduce &lt;a href="http://pypi.python.org/pypi/pudb"&gt;PuDB&lt;/a&gt;, a full-screen, console-based visual debugger for Python that I recently cooked&amp;nbsp;up.&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;a href="http://pypi.python.org/pypi/pudb"&gt;Download it here&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;Or install it simply by&amp;nbsp;typing&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;easy_install pudb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;into your Unix shell. Here&amp;#8217;s a screenshot of it in&amp;nbsp;action:&lt;/p&gt;
&lt;p&gt;&lt;img alt="PuDB screenshot" src="http://tiker.net/pub/pudb-screenshot.png" /&gt;&lt;/p&gt;
&lt;p&gt;Python has had decent debugging support for a while now, in the form&amp;nbsp;of&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://docs.python.org/library/pdb.html"&gt;Pdb&lt;/a&gt;, the command-line debugger that comes with the&amp;nbsp;interpreter&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winpdb.org"&gt;Winpdb&lt;/a&gt;, a very nice &lt;span class="caps"&gt;GUI&lt;/span&gt;&amp;nbsp;debugger&lt;/li&gt;
&lt;li&gt;IDEs such as &lt;a href="http://eric-ide.python-projects.org/"&gt;Eric&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But I felt that there was a gap between these offerings&amp;#8212;Pdb being very austere, and Winpdb and the IDEs being rather heavyweight. I wanted a comfortable debugger that&amp;#8217;s easily usable in a shell and doesn&amp;#8217;t require me to touch my mouse. PuDB uses Ian Ward&amp;#8217;s excellent &lt;a href="http://excess.org/urwid"&gt;Urwid&lt;/a&gt; library for its interaction with the&amp;nbsp;console.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Looks like PuDB is slowly growing a community. There&amp;#8217;s now a &lt;a href="http://lists.tiker.net/listinfo/pudb"&gt;mailing list&lt;/a&gt; to host&amp;nbsp;discussions.&lt;/p&gt;</content><category term="console"></category><category term="debugger"></category><category term="urwid"></category><category term="my-software"></category><category term="python"></category><category term="scientific-computing"></category><category term="technology"></category></entry><entry><title>Git Commit Timelines</title><link href="https://mathema.tician.de/git-commit-timelines" rel="alternate"></link><published>2009-06-01T14:39:18-05:00</published><updated>2009-06-01T14:39:18-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-06-01:/git-commit-timelines</id><summary type="html">&lt;p&gt;Here&amp;#8217;s a waste of time I could just not resist: &lt;a href="http://web.mit.edu"&gt;&lt;span class="caps"&gt;MIT&lt;/span&gt;&lt;/a&gt;&amp;#8216;s &lt;a href="http://simile.mit.edu/"&gt;Project &lt;span class="caps"&gt;SIMILE&lt;/span&gt;&lt;/a&gt; has released a rather nice &lt;a href="http://simile-widgets.org/timeline/"&gt;Timeline Web Widget&lt;/a&gt;. Combine that with &lt;a href="http://pypi.python.org/pypi/GitPython/"&gt;GitPython&lt;/a&gt; and a bit of glue code in Python, and you get a neat, one-page &lt;a href="http://git.tiker.net/commit-timeline"&gt;summary&lt;/a&gt; of the software work I&amp;#8217;ve done as …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Here&amp;#8217;s a waste of time I could just not resist: &lt;a href="http://web.mit.edu"&gt;&lt;span class="caps"&gt;MIT&lt;/span&gt;&lt;/a&gt;&amp;#8216;s &lt;a href="http://simile.mit.edu/"&gt;Project &lt;span class="caps"&gt;SIMILE&lt;/span&gt;&lt;/a&gt; has released a rather nice &lt;a href="http://simile-widgets.org/timeline/"&gt;Timeline Web Widget&lt;/a&gt;. Combine that with &lt;a href="http://pypi.python.org/pypi/GitPython/"&gt;GitPython&lt;/a&gt; and a bit of glue code in Python, and you get a neat, one-page &lt;a href="http://git.tiker.net/commit-timeline"&gt;summary&lt;/a&gt; of the software work I&amp;#8217;ve done as part of working towards my PhD. Here&amp;#8217;s a screenshot if you&amp;#8217;re too lazy to click&amp;nbsp;through:&lt;/p&gt;
&lt;p&gt;&lt;img alt="timeline-shot.png" src="/images/timeline-shot.png" /&gt;&lt;/p&gt;
&lt;p&gt;Note that (nearly) every commit is hyperlinked to the git web frontend, where you can view what was actually changed&amp;#8212;just click the title text in the popup&amp;nbsp;bubble.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;d like to do this yourself, the code is &lt;a href="http://git.tiker.net/commit-timeline.git"&gt;available&lt;/a&gt;, you can get it&amp;nbsp;with&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone http://git.tiker.net/trees/commit-timeline.git
&lt;/code&gt;&lt;/pre&gt;</content><category term="git"></category><category term="timeline"></category><category term="version control"></category><category term="grad-school"></category><category term="my-software"></category><category term="python"></category></entry><entry><title>1 Billion seconds on this Earth</title><link href="https://mathema.tician.de/1-billion-seconds-on-this-earth" rel="alternate"></link><published>2009-04-13T12:45:43-05:00</published><updated>2009-04-13T12:45:43-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-04-13:/1-billion-seconds-on-this-earth</id><summary type="html">&lt;p&gt;Happy 10&lt;sup&gt;9&lt;/sup&gt;-day to&amp;nbsp;me!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;date -d'NNNN-NN-NN + 1000000000 seconds'
Mo 13. Apr 01:46:40 EDT 2009
&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">&lt;p&gt;Happy 10&lt;sup&gt;9&lt;/sup&gt;-day to&amp;nbsp;me!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;date -d'NNNN-NN-NN + 1000000000 seconds'
Mo 13. Apr 01:46:40 EDT 2009
&lt;/code&gt;&lt;/pre&gt;</content></entry><entry><title>World Builder</title><link href="https://mathema.tician.de/world-builder" rel="alternate"></link><published>2009-04-04T13:01:27-05:00</published><updated>2009-04-04T13:01:27-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-04-04:/world-builder</id><summary type="html">&lt;p&gt;From the department of &amp;#8220;what&amp;#8217;s Andreas wacthing on &lt;a href="https://vimeo.com"&gt;Vimeo&lt;/a&gt;&amp;#8220;: Here&amp;#8217;s something amazing you can apparently do with one day of filming and two years of&amp;nbsp;post-production.&lt;/p&gt;
&lt;p&gt;&lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="https://vimeo.com/moogaloop.swf?clip_id=3365942&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="https://vimeo.com/moogaloop.swf?clip_id=3365942&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="https://vimeo.com/3365942"&gt;World Builder&lt;/a&gt; from &lt;a href="https://vimeo.com/user1349603"&gt;Bruce Branit&lt;/a&gt; on &lt;a href="https://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One thing I could especially relate to about this video is the feeling of time-constrained …&lt;/p&gt;</summary><content type="html">&lt;p&gt;From the department of &amp;#8220;what&amp;#8217;s Andreas wacthing on &lt;a href="https://vimeo.com"&gt;Vimeo&lt;/a&gt;&amp;#8220;: Here&amp;#8217;s something amazing you can apparently do with one day of filming and two years of&amp;nbsp;post-production.&lt;/p&gt;
&lt;p&gt;&lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="https://vimeo.com/moogaloop.swf?clip_id=3365942&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="https://vimeo.com/moogaloop.swf?clip_id=3365942&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="https://vimeo.com/3365942"&gt;World Builder&lt;/a&gt; from &lt;a href="https://vimeo.com/user1349603"&gt;Bruce Branit&lt;/a&gt; on &lt;a href="https://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One thing I could especially relate to about this video is the feeling of time-constrained emptiness at the beginning&amp;#8230; If you&amp;#8217;ve tinkered with creating video games, you probably know what I&amp;#8217;m talking about. Research is somehow not too&amp;nbsp;different.&lt;/p&gt;</content></entry><entry><title>Credit Crisis? What Credit Crisis?</title><link href="https://mathema.tician.de/credit-crisis-what-credit-crisis" rel="alternate"></link><published>2009-04-04T11:01:52-05:00</published><updated>2009-04-04T11:01:52-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-04-04:/credit-crisis-what-credit-crisis</id><summary type="html">&lt;p&gt;If you haven&amp;#8217;t been living under a rock, you&amp;#8217;ve probably heard about the global economic meltdown. You&amp;#8217;ll probably have also listened to people explain it, maybe even understood what&amp;#8217;s going on. Regardless, this video I recently found sums it up again &lt;em&gt;very&lt;/em&gt;&amp;nbsp;nicely:&lt;/p&gt;
&lt;p&gt;&lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="https://vimeo.com/moogaloop.swf?clip_id=3261363&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="https://vimeo.com/moogaloop.swf?clip_id=3261363&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="https://vimeo.com/3261363"&gt;The Crisis of …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;If you haven&amp;#8217;t been living under a rock, you&amp;#8217;ve probably heard about the global economic meltdown. You&amp;#8217;ll probably have also listened to people explain it, maybe even understood what&amp;#8217;s going on. Regardless, this video I recently found sums it up again &lt;em&gt;very&lt;/em&gt;&amp;nbsp;nicely:&lt;/p&gt;
&lt;p&gt;&lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="https://vimeo.com/moogaloop.swf?clip_id=3261363&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="https://vimeo.com/moogaloop.swf?clip_id=3261363&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="https://vimeo.com/3261363"&gt;The Crisis of Credit Visualized&lt;/a&gt; from &lt;a href="https://vimeo.com/jonathanjarvis"&gt;Jonathan Jarvis&lt;/a&gt; on &lt;a href="https://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;</content></entry><entry><title>boostmpi: Initial Release</title><link href="https://mathema.tician.de/boostmpi-initial-release" rel="alternate"></link><published>2009-02-11T11:28:36-06:00</published><updated>2009-02-11T11:28:36-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-02-11:/boostmpi-initial-release</id><summary type="html">&lt;p&gt;I’m happy to announce the initial public release of &lt;a href="/software/boostmpi"&gt;boostmpi&lt;/a&gt;, an &lt;span class="caps"&gt;MPI&lt;/span&gt; wrapper for&amp;nbsp;Python.&lt;/p&gt;
&lt;p&gt;boostmpi is a high-quality Python wrapper around the &lt;a href="http://www.mpi-forum.org"&gt;Message Passing Interface&lt;/a&gt; (&lt;span class="caps"&gt;MPI&lt;/span&gt;).  &lt;span class="caps"&gt;MPI&lt;/span&gt; is a standardized interface to libraries such as &lt;a href="http://www.open-mpi.org"&gt;OpenMPI&lt;/a&gt; and &lt;a href="http://www.mcs.anl.gov/research/projects/mpich2/"&gt;&lt;span class="caps"&gt;MPICH&lt;/span&gt;&lt;/a&gt; that provide high-performance inter-process communication for distributed-memory&amp;nbsp;computing.&lt;/p&gt;
&lt;p&gt;boostmpi uses …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I’m happy to announce the initial public release of &lt;a href="/software/boostmpi"&gt;boostmpi&lt;/a&gt;, an &lt;span class="caps"&gt;MPI&lt;/span&gt; wrapper for&amp;nbsp;Python.&lt;/p&gt;
&lt;p&gt;boostmpi is a high-quality Python wrapper around the &lt;a href="http://www.mpi-forum.org"&gt;Message Passing Interface&lt;/a&gt; (&lt;span class="caps"&gt;MPI&lt;/span&gt;).  &lt;span class="caps"&gt;MPI&lt;/span&gt; is a standardized interface to libraries such as &lt;a href="http://www.open-mpi.org"&gt;OpenMPI&lt;/a&gt; and &lt;a href="http://www.mcs.anl.gov/research/projects/mpich2/"&gt;&lt;span class="caps"&gt;MPICH&lt;/span&gt;&lt;/a&gt; that provide high-performance inter-process communication for distributed-memory&amp;nbsp;computing.&lt;/p&gt;
&lt;p&gt;boostmpi uses the &lt;a href="http://www.boost.org/doc/html/mpi.html"&gt;Boost.&lt;span class="caps"&gt;MPI&lt;/span&gt; library&lt;/a&gt;, which gives &lt;span class="caps"&gt;MPI&lt;/span&gt; a very usable C++ interface.  This C++ interface is then made accessible to Python via the &lt;a href="http://www.boost.org/doc/libs/release/libs/python/doc/"&gt;Boost.Python library&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;boostmpi was originally distributed as part of the &lt;a href="http://boost.org"&gt;Boost C++ library&lt;/a&gt;. This separate distribution aims to make the software more&amp;nbsp;accessible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; boostmpi (born as Boost.&lt;span class="caps"&gt;MPI&lt;/span&gt;.Python) is the work of &lt;a href="http://www.osl.iu.edu/~dgregor/"&gt;Doug Gregor&lt;/a&gt;. I just do maintenance and distribution work around&amp;nbsp;here.&lt;/p&gt;</content><category term="boost"></category><category term="mpi"></category><category term="wrapper"></category><category term="university"></category><category term="boostmpi"></category><category term="python"></category><category term="scientific-computing"></category></entry><entry><title>CodePy: Initial public Release</title><link href="https://mathema.tician.de/codepy-initial-public-release" rel="alternate"></link><published>2009-02-05T00:58:50-06:00</published><updated>2009-02-05T00:58:50-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-02-05:/codepy-initial-public-release</id><summary type="html">&lt;p&gt;I&amp;#8217;m happy to announce the initial public release of &lt;a href="/software/codepy"&gt;CodePy&lt;/a&gt;, a 
native-code &lt;a href="http://en.wikipedia.org/wiki/Metaprogramming"&gt;Metaprogramming&lt;/a&gt; toolkit for&amp;nbsp;Python.&lt;/p&gt;
&lt;p&gt;The idea is the&amp;nbsp;following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You build a string that is actually C&amp;nbsp;code.&lt;/li&gt;
&lt;li&gt;CodePy compiles it, links it, and dynamically loads it into the Python&amp;nbsp;interpreter.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ta-da: Instant native-code performance, with no …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;m happy to announce the initial public release of &lt;a href="/software/codepy"&gt;CodePy&lt;/a&gt;, a 
native-code &lt;a href="http://en.wikipedia.org/wiki/Metaprogramming"&gt;Metaprogramming&lt;/a&gt; toolkit for&amp;nbsp;Python.&lt;/p&gt;
&lt;p&gt;The idea is the&amp;nbsp;following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You build a string that is actually C&amp;nbsp;code.&lt;/li&gt;
&lt;li&gt;CodePy compiles it, links it, and dynamically loads it into the Python&amp;nbsp;interpreter.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ta-da: Instant native-code performance, with no explicit pre-compilation step. CodePy can also help you with the generation of the code, by letting you build a data structure and turning that into C code. CodePy works well with Boost.Python and &lt;a href="/software/pycuda"&gt;PyCuda&lt;/a&gt;. In conjunction with the latter, it offers an easy way of doing &lt;span class="caps"&gt;GPU&lt;/span&gt; Metaprogramming, a very effective tuning technique for the &lt;span class="caps"&gt;GPU&lt;/span&gt;.&lt;/p&gt;</content><category term="cuda"></category><category term="metaprogramming"></category><category term="codepy"></category><category term="python"></category><category term="scientific-computing"></category></entry><entry><title>Talk slides: PyCuda@MIT</title><link href="https://mathema.tician.de/talk-slides-pycuda-mit" rel="alternate"></link><published>2009-01-28T14:14:08-06:00</published><updated>2009-01-28T14:14:08-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-01-28:/talk-slides-pycuda-mit</id><summary type="html">&lt;p&gt;&lt;a href="http://pinto.scripts.mit.edu/"&gt;Nicolas Pinto&lt;/a&gt; at &lt;span class="caps"&gt;MIT&lt;/span&gt; was nice enough to invite me over to give a talk in their &lt;a href="http://sites.google.com/site/cudaiap2009/"&gt;&lt;span class="caps"&gt;CUDA&lt;/span&gt; class&lt;/a&gt;. I made a bunch of slides that I think are of general interest to people who are interested in PyCuda. You can find them &lt;a href="/dl/pub/pycuda-mit.pdf"&gt;here&lt;/a&gt;.&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://pinto.scripts.mit.edu/"&gt;Nicolas Pinto&lt;/a&gt; at &lt;span class="caps"&gt;MIT&lt;/span&gt; was nice enough to invite me over to give a talk in their &lt;a href="http://sites.google.com/site/cudaiap2009/"&gt;&lt;span class="caps"&gt;CUDA&lt;/span&gt; class&lt;/a&gt;. I made a bunch of slides that I think are of general interest to people who are interested in PyCuda. You can find them &lt;a href="/dl/pub/pycuda-mit.pdf"&gt;here&lt;/a&gt;.&lt;/p&gt;</content><category term="cuda"></category><category term="mit"></category><category term="slides"></category><category term="talk"></category><category term="grad-school"></category><category term="pycuda"></category><category term="python"></category><category term="scientific-computing"></category><category term="work"></category></entry><entry><title>Submitted: “Nodal Discontinuous Galerkin Methods on Graphics Processors”</title><link href="https://mathema.tician.de/submitted-nodal-discontinuous-galerkin-methods-on-graphics-processors" rel="alternate"></link><published>2009-01-27T19:19:47-06:00</published><updated>2009-01-27T19:19:47-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2009-01-27:/submitted-nodal-discontinuous-galerkin-methods-on-graphics-processors</id><summary type="html">&lt;p&gt;&lt;a href="http://www.caam.rice.edu/~timwar/"&gt;Tim Warburton&lt;/a&gt;, Jeff Bridge, my advisor &lt;a href="http://www.cfm.brown.edu/people/jansh"&gt;Jan Hesthaven&lt;/a&gt; and I have recently submitted an article detailing our efforts to accelerate Discontinuous Galerkin computations by using &lt;a href="http://nvidia.com/cuda"&gt;Nvidia &lt;span class="caps"&gt;CUDA&lt;/span&gt;&lt;/a&gt; GPUs. &lt;span class="caps"&gt;DG&lt;/span&gt; seems to be a good fit for these&amp;nbsp;machines.&lt;/p&gt;
&lt;p&gt;Get it while it&amp;#8217;s hot: &lt;a href="http://arxiv.org/abs/0901.1024"&gt;Arxiv&lt;/a&gt;, &lt;a href="http://www.dam.brown.edu/scicomp/reports/2008-27/"&gt;Brown &lt;span class="caps"&gt;SC&lt;/span&gt; reports&lt;/a&gt;, &lt;a href="http://dx.doi.org/10.1016/j.jcp.2009.06.041"&gt;&lt;span class="caps"&gt;JCP&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Abstract …&lt;/h2&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://www.caam.rice.edu/~timwar/"&gt;Tim Warburton&lt;/a&gt;, Jeff Bridge, my advisor &lt;a href="http://www.cfm.brown.edu/people/jansh"&gt;Jan Hesthaven&lt;/a&gt; and I have recently submitted an article detailing our efforts to accelerate Discontinuous Galerkin computations by using &lt;a href="http://nvidia.com/cuda"&gt;Nvidia &lt;span class="caps"&gt;CUDA&lt;/span&gt;&lt;/a&gt; GPUs. &lt;span class="caps"&gt;DG&lt;/span&gt; seems to be a good fit for these&amp;nbsp;machines.&lt;/p&gt;
&lt;p&gt;Get it while it&amp;#8217;s hot: &lt;a href="http://arxiv.org/abs/0901.1024"&gt;Arxiv&lt;/a&gt;, &lt;a href="http://www.dam.brown.edu/scicomp/reports/2008-27/"&gt;Brown &lt;span class="caps"&gt;SC&lt;/span&gt; reports&lt;/a&gt;, &lt;a href="http://dx.doi.org/10.1016/j.jcp.2009.06.041"&gt;&lt;span class="caps"&gt;JCP&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;Discontinuous Galerkin (&lt;span class="caps"&gt;DG&lt;/span&gt;) methods for the numerical solution of partial differential equations have enjoyed considerable success because they are both flexible and robust: They allow arbitrary unstructured geometries and easy control of accuracy without compromising simulation stability. Lately, another property of &lt;span class="caps"&gt;DG&lt;/span&gt; has been growing in importance: The majority of a &lt;span class="caps"&gt;DG&lt;/span&gt; operator is applied in an element-local way, with weak penalty-based element-to-element&amp;nbsp;coupling.&lt;/p&gt;
&lt;p&gt;The resulting locality in memory access is one of the factors that enables &lt;span class="caps"&gt;DG&lt;/span&gt; to run on off-the-shelf, massively parallel graphics processors (GPUs). In addition, &lt;span class="caps"&gt;DG&lt;/span&gt;&amp;#8217;s high-order nature lets it require fewer data points per represented wavelength and hence fewer memory accesses, in exchange for higher arithmetic intensity. Both of these factors work significantly in favor of a &lt;span class="caps"&gt;GPU&lt;/span&gt; implementation of &lt;span class="caps"&gt;DG&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Using a single &lt;span class="caps"&gt;US&lt;/span&gt;$400 Nvidia &lt;span class="caps"&gt;GTX&lt;/span&gt; 280 &lt;span class="caps"&gt;GPU&lt;/span&gt;, we accelerate a solver for Maxwell&amp;#8217;s equations on a general 3D unstructured grid by a factor of 40 to 60 relative to a serial computation on a current-generation &lt;span class="caps"&gt;CPU&lt;/span&gt;. In many cases, our algorithms exhibit full use of the device&amp;#8217;s available memory bandwidth. Example computations achieve and surpass 200 gigaflops/s of net application-level floating point&amp;nbsp;work.&lt;/p&gt;
&lt;p&gt;In this article, we describe and derive the techniques used to reach this level of performance. In addition, we present comprehensive data on the accuracy and runtime behavior of the&amp;nbsp;method. &lt;/p&gt;</content><category term="cuda"></category><category term="dg"></category><category term="discontinuous"></category><category term="galerkin"></category><category term="nodal"></category><category term="scicomp"></category><category term="university"></category><category term="math"></category><category term="pycuda"></category><category term="python"></category><category term="scientific-computing"></category><category term="work"></category></entry><entry><title>Boost Numeric Bindings 20081116</title><link href="https://mathema.tician.de/boost-numeric-bindings-20081116" rel="alternate"></link><published>2008-11-16T14:05:19-06:00</published><updated>2008-11-16T14:05:19-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-11-16:/boost-numeric-bindings-20081116</id><summary type="html">&lt;p&gt;I&amp;#8217;ve just rolled release 20080816 of the bindings, with the following stuff&amp;nbsp;changed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix asserts in gbsv.hpp as suggested by&amp;nbsp;Vardan.&lt;/li&gt;
&lt;li&gt;Sync Thomas&amp;#8217;s remaining&amp;nbsp;fixes.&lt;/li&gt;
&lt;li&gt;Apply patch to gels* from Naoki at&amp;nbsp;http://mathema.tician.de/node/391.&lt;/li&gt;
&lt;li&gt;Remove duplication in&amp;nbsp;lapack_names.h.&lt;/li&gt;
&lt;li&gt;Fix line endings in …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;ve just rolled release 20080816 of the bindings, with the following stuff&amp;nbsp;changed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix asserts in gbsv.hpp as suggested by&amp;nbsp;Vardan.&lt;/li&gt;
&lt;li&gt;Sync Thomas&amp;#8217;s remaining&amp;nbsp;fixes.&lt;/li&gt;
&lt;li&gt;Apply patch to gels* from Naoki at&amp;nbsp;http://mathema.tician.de/node/391.&lt;/li&gt;
&lt;li&gt;Remove duplication in&amp;nbsp;lapack_names.h.&lt;/li&gt;
&lt;li&gt;Fix line endings in Jesse&amp;#8217;s gelsd&amp;nbsp;stuff.&lt;/li&gt;
&lt;li&gt;Add obvious improvements from current bindings&amp;nbsp;svn.&lt;/li&gt;
&lt;li&gt;Modify sync procedure even&amp;nbsp;more.&lt;/li&gt;
&lt;li&gt;Apply Thomas&amp;#8217;s sync&amp;nbsp;patch.&lt;/li&gt;
&lt;li&gt;Update boost update&amp;nbsp;procedure.&lt;/li&gt;
&lt;li&gt;Apply Thomas&amp;#8217;s svn sync&amp;nbsp;patches.&lt;/li&gt;
&lt;li&gt;Karl&amp;#8217;s geev&amp;nbsp;fix.&lt;/li&gt;
&lt;li&gt;Followed Thomas&amp;#8217;s idea of&amp;nbsp;sygv-&amp;gt;hegv.&lt;/li&gt;
&lt;li&gt;Reduce diff with svn, step&amp;nbsp;4.&lt;/li&gt;
&lt;li&gt;Reduce diff with svn, step&amp;nbsp;3.&lt;/li&gt;
&lt;li&gt;Reduce diff with svn, step&amp;nbsp;2.&lt;/li&gt;
&lt;li&gt;Reduce diff with svn, step&amp;nbsp;1.&lt;/li&gt;
&lt;li&gt;Fix diff&amp;nbsp;command.&lt;/li&gt;
&lt;li&gt;Install to&amp;nbsp;boost-numeric-bindings.&lt;/li&gt;
&lt;li&gt;Bart Janssen&amp;#8217;s UMFPACk bug&amp;nbsp;fix.&lt;/li&gt;
&lt;li&gt;Add missing checks for BOOST_NUMERIC_POOR_MANS_TRAITS in&amp;nbsp;blas1.hpp.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;#8217;m happy to report that the diff with the official bindings has 
shrunk to just Vardan&amp;#8217;s gbsv and Jesse&amp;#8217;s gels* stuff. I think that&amp;#8217;s pretty 
great, and in no small part due to Thomas&amp;#8217;s work on getting stuff&amp;nbsp;merged. &lt;/p&gt;</content><category term="boost-numeric-bindings"></category></entry><entry><title>PyCuda 0.91</title><link href="https://mathema.tician.de/pycuda-0-91" rel="alternate"></link><published>2008-11-12T13:16:34-06:00</published><updated>2008-11-12T13:16:34-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-11-12:/pycuda-0-91</id><summary type="html">&lt;p&gt;I&amp;#8217;m happy to announce the availability of &lt;a href="http://pypi.python.org/pypi/pycuda/0.91"&gt;PyCuda 0.91&lt;/a&gt;. There is full, up-to-date &lt;a href="http://documen.tician.de/pycuda/"&gt;documentation&lt;/a&gt;&amp;nbsp;available.&lt;/p&gt;
&lt;p&gt;The following exciting stuff is in PyCuda&amp;nbsp;0.91:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for Windows and MacOS X, in addition to Linux. (Gert Wohlgemuth, 
Cosmin Stejerean, Znah on the Nvidia forums, and David&amp;nbsp;Gadling)&lt;/li&gt;
&lt;li&gt;Support more …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;m happy to announce the availability of &lt;a href="http://pypi.python.org/pypi/pycuda/0.91"&gt;PyCuda 0.91&lt;/a&gt;. There is full, up-to-date &lt;a href="http://documen.tician.de/pycuda/"&gt;documentation&lt;/a&gt;&amp;nbsp;available.&lt;/p&gt;
&lt;p&gt;The following exciting stuff is in PyCuda&amp;nbsp;0.91:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for Windows and MacOS X, in addition to Linux. (Gert Wohlgemuth, 
Cosmin Stejerean, Znah on the Nvidia forums, and David&amp;nbsp;Gadling)&lt;/li&gt;
&lt;li&gt;Support more arithmetic operators on pycuda.gpuarray.GPUArray. (Gert&amp;nbsp;Wohlgemuth)&lt;/li&gt;
&lt;li&gt;Add pycuda.gpuarray.arange(). (Gert&amp;nbsp;Wohlgemuth)&lt;/li&gt;
&lt;li&gt;Add pycuda.curandom. (Gert&amp;nbsp;Wohlgemuth)&lt;/li&gt;
&lt;li&gt;Add pycuda.cumath. (Gert&amp;nbsp;Wohlgemuth)&lt;/li&gt;
&lt;li&gt;Add&amp;nbsp;pycuda.autoinit.&lt;/li&gt;
&lt;li&gt;Add&amp;nbsp;pycuda.tools.&lt;/li&gt;
&lt;li&gt;Add pycuda.tools.DeviceData and pycuda.tools.OccupancyRecord.&amp;nbsp;pycuda.gpuarray.&lt;/li&gt;
&lt;li&gt;GPUArray parallelizes properly on &lt;span class="caps"&gt;GTX200&lt;/span&gt;-generation&amp;nbsp;devices.&lt;/li&gt;
&lt;li&gt;Add support for compiling on &lt;span class="caps"&gt;CUDA&lt;/span&gt; 1.1. Added version query 
pycuda.driver.get_version(). Updated documentation to show 2.0-only&amp;nbsp;functionality.&lt;/li&gt;
&lt;li&gt;Make pycuda.driver.Function resource usage available to the program. (See, 
e.g. pycuda.driver.Function.registers.)
Cache kernels compiled by&amp;nbsp;pycuda.driver.SourceModule.&lt;/li&gt;
&lt;li&gt;Allow for faster, prepared kernel invocation. See&amp;nbsp;pycuda.driver.Function.prepare().&lt;/li&gt;
&lt;li&gt;Added memory pools, at pycuda.tools.DeviceMemoryPool as experimental, 
undocumented functionality. For some workloads, this can cure the slowness of&amp;nbsp;pycuda.driver.mem_alloc().&lt;/li&gt;
&lt;li&gt;Fix the memset family of&amp;nbsp;functions.&lt;/li&gt;
&lt;li&gt;Improve Error&amp;nbsp;Reporting.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Check the &lt;a href="http://documen.tician.de/pycuda/faq.html#version-0-91"&gt;docs change list&lt;/a&gt; for a fully hyperlinked version of the&amp;nbsp;above.&lt;/p&gt;
&lt;p&gt;Have fun,&amp;nbsp;Andreas&lt;/p&gt;</content><category term="pycuda"></category></entry><entry><title>Brown Beamer Template</title><link href="https://mathema.tician.de/brown-beamer-template" rel="alternate"></link><published>2008-06-21T18:58:09-05:00</published><updated>2008-06-21T18:58:09-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-06-21:/brown-beamer-template</id><summary type="html">&lt;p&gt;If you&amp;#8217;re anything like me, you go to Brown University and really like Till
Tantau&amp;#8217;s &lt;a href="http://latex-beamer.sourceforge.net/"&gt;Beamer&lt;/a&gt; LaTeX package for
making slides.  Unfortunately, Beamer&amp;#8217;s theming can be a bit obstinate, and
figuring out how to give your slides a Brown flavor (yum!) can be&amp;nbsp;tedious.&lt;/p&gt;
&lt;p&gt;Luckily for you …&lt;/p&gt;</summary><content type="html">&lt;p&gt;If you&amp;#8217;re anything like me, you go to Brown University and really like Till
Tantau&amp;#8217;s &lt;a href="http://latex-beamer.sourceforge.net/"&gt;Beamer&lt;/a&gt; LaTeX package for
making slides.  Unfortunately, Beamer&amp;#8217;s theming can be a bit obstinate, and
figuring out how to give your slides a Brown flavor (yum!) can be&amp;nbsp;tedious.&lt;/p&gt;
&lt;p&gt;Luckily for you, I just spent some time and put together a template that you
can use for exactly that purpose. This is what it looks&amp;nbsp;like:&lt;/p&gt;
&lt;p&gt;&lt;img alt="slides-0.png" src="/images/slides-0.png" /&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve also attached a sample &lt;span class="caps"&gt;PDF&lt;/span&gt; to this&amp;nbsp;story.&lt;/p&gt;
&lt;h2&gt;Download&lt;/h2&gt;
&lt;p&gt;You can download a tarball of the 
&lt;a href="http://git.tiker.net/?p=brown-beamer.git;a=snapshot"&gt;most recent version&lt;/a&gt;
or 
&lt;a href="http://git.tiker.net/?p=brown-beamer.git;a=summary"&gt;browse the source code&lt;/a&gt;.
If you like, you can also directly get a git&amp;nbsp;checkout:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone http://git.tiker.net/trees/brown-beamer.git
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Instructions&lt;/h2&gt;
&lt;p&gt;To use this template, obtain the source tree, edit &lt;code&gt;slides.tex&lt;/code&gt;, then change
to the &lt;code&gt;out&lt;/code&gt; directory and type &lt;code&gt;./make.sh&lt;/code&gt;. (If you&amp;#8217;re on Windows, maybe 
you can send me a batch file that does the same&amp;nbsp;thing.)&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dl/slides.pdf"&gt;slides.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="Brown"></category><category term="university"></category></entry><entry><title>Reproducibility in Scientific Computing</title><link href="https://mathema.tician.de/reproducibility-in-scientific-computing" rel="alternate"></link><published>2008-06-20T21:29:10-05:00</published><updated>2008-06-20T21:29:10-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-06-20:/reproducibility-in-scientific-computing</id><summary type="html">&lt;p&gt;In &lt;a href="http://www.amath.washington.edu/~rjl/pubs/cise08/index.html"&gt;this recent
paper&lt;/a&gt;, Finite
Volume guru &lt;a href="http://www.amath.washington.edu/~rjl/index.html"&gt;Randall J.
LeVeque&lt;/a&gt; addresses an issue
that is near and dear to my heart: Computational Scientists must start thinking
about the reproducibility of their&amp;nbsp;results.&lt;/p&gt;
&lt;p&gt;Scientific results obtained by experimentation are expected to be reproducible.
This has long been demanded of published results …&lt;/p&gt;</summary><content type="html">&lt;p&gt;In &lt;a href="http://www.amath.washington.edu/~rjl/pubs/cise08/index.html"&gt;this recent
paper&lt;/a&gt;, Finite
Volume guru &lt;a href="http://www.amath.washington.edu/~rjl/index.html"&gt;Randall J.
LeVeque&lt;/a&gt; addresses an issue
that is near and dear to my heart: Computational Scientists must start thinking
about the reproducibility of their&amp;nbsp;results.&lt;/p&gt;
&lt;p&gt;Scientific results obtained by experimentation are expected to be reproducible.
This has long been demanded of published results in, for example, physics or
chemistry.  Yet, scientific computing, while often experimental, has been
strangely exempt from this requirement. This ought to&amp;nbsp;change.&lt;/p&gt;
&lt;p&gt;In his paper, LeVeque formulates several demands to be placed on scientific&amp;nbsp;codes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Availability in source code form.&lt;/strong&gt; Codes used to obtain results in
  published research must be &lt;em&gt;available&lt;/em&gt; for other researchers to inspect.
  While LeVeque is not as clear about this point, I would like to emphasize
  that this availability should be of the same kind as that of the paper
  advertising results obtained by the code.  In most cases, this means that the
  code should be downloadable from the same place as the paper. (There should
  not be &lt;a href="http://en.wikipedia.org/wiki/Open_access"&gt;access restrictions&lt;/a&gt; on the
  paper either, but that&amp;#8217;s a different&amp;nbsp;issue.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;No dependencies on for-pay software.&lt;/strong&gt; For widest availability and 
  reproducibility, it is preferable to not have scientific codes depend 
  on commercial, for-pay software. That notably includes&amp;nbsp;Matlab.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Readability.&lt;/strong&gt; Codes should be written mostly to be read, not so much
  to be executed. We need to grow an understanding that code is a valid
  expression of the ideas that it contains. The more apparent these ideas
  are from the code, the&amp;nbsp;better.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Given these constraints, he arrives at virtually the same toolset that I&amp;#8217;ve
been using for a while now, consisting of &lt;a href="http://www.python.org"&gt;Python&lt;/a&gt;,
&lt;a href="http://www.numpy.org"&gt;numpy&lt;/a&gt;, &lt;a href="http://matplotlib.org"&gt;matplotlib&lt;/a&gt; and
&lt;a href="http://visit.llnl.gov/"&gt;VisIt&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I am hoping that this issue gets the attention it deserves. I&amp;#8217;ll try to do my&amp;nbsp;part.&lt;/p&gt;</content><category term="grad-school"></category><category term="python"></category><category term="scientific-computing"></category></entry><entry><title>Joint release 0.92 of PyUblas and PyUblasExt</title><link href="https://mathema.tician.de/joint-release-0-92-of-pyublas-and-pyublasext" rel="alternate"></link><published>2008-04-20T18:33:04-05:00</published><updated>2008-04-20T18:33:04-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-04-20:/joint-release-0-92-of-pyublas-and-pyublasext</id><summary type="html">&lt;p&gt;I&amp;#8217;m happy to announce the availability of &lt;a href="/software/pyublas"&gt;PyUblas&lt;/a&gt; and its companion package &lt;a href="/software/pyublas/pyublasext"&gt;PyUblasExt&lt;/a&gt; in version 0.92. While PyUblasExt is available for the first time in released form, these are the changes made to&amp;nbsp;PyUblas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sparse wrappers are now &lt;em&gt;not&lt;/em&gt; compiled by default. You have to request them using …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;m happy to announce the availability of &lt;a href="/software/pyublas"&gt;PyUblas&lt;/a&gt; and its companion package &lt;a href="/software/pyublas/pyublasext"&gt;PyUblasExt&lt;/a&gt; in version 0.92. While PyUblasExt is available for the first time in released form, these are the changes made to&amp;nbsp;PyUblas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sparse wrappers are now &lt;em&gt;not&lt;/em&gt; compiled by default. You have to request them using &lt;code&gt;--with-sparse-wrappers&lt;/code&gt; at &lt;code&gt;configure&lt;/code&gt; time.&lt;/li&gt;
&lt;li&gt;Provide implicit to-/from-python conversion for Ublas&amp;#8217;s &lt;code&gt;vector&lt;/code&gt;, &lt;code&gt;bounded_vector&lt;/code&gt;, and &lt;code&gt;matrix&lt;/code&gt; types.&lt;/li&gt;
&lt;li&gt;Provide from-Python converters for Numpy&amp;#8217;s array&amp;nbsp;scalars.&lt;/li&gt;
&lt;li&gt;Instantiate converters for a much wider range of element&amp;nbsp;types.&lt;/li&gt;
&lt;li&gt;Fixed compilation without &lt;code&gt;-DNDEBUG&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Plus a slew of other cleanups and&amp;nbsp;fixes.&lt;/li&gt;
&lt;/ul&gt;</content><category term="hybrid code"></category><category term="python"></category><category term="ublas"></category><category term="pyublas"></category></entry><entry><title>TagPy 0.94.1</title><link href="https://mathema.tician.de/tagpy-0-94-1" rel="alternate"></link><published>2008-04-20T12:11:53-05:00</published><updated>2008-04-20T12:11:53-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-04-20:/tagpy-0-94-1</id><summary type="html">&lt;p&gt;Responding to a patch from Bill Nottingham, I&amp;#8217;ve uploaded TagPy 0.94.1. It fixes building TagPy against TagLib 1.5 and also fixes a mis-wrap of the &lt;code&gt;clear&lt;/code&gt; method of the &lt;code&gt;Map&lt;/code&gt; type.&lt;/p&gt;
&lt;p&gt;In case you were wondering, 0.94 was a dud, but by the time I …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Responding to a patch from Bill Nottingham, I&amp;#8217;ve uploaded TagPy 0.94.1. It fixes building TagPy against TagLib 1.5 and also fixes a mis-wrap of the &lt;code&gt;clear&lt;/code&gt; method of the &lt;code&gt;Map&lt;/code&gt; type.&lt;/p&gt;
&lt;p&gt;In case you were wondering, 0.94 was a dud, but by the time I realized that, I had already uploaded the tarball to the Python Package Index, which made it unchangeable.&amp;nbsp;:(&lt;/p&gt;
&lt;p&gt;Additionally, I&amp;#8217;ve decided to only upload new releases of TagPy to its page in the &lt;a href="http://pypi.python.org/pypi/tagpy"&gt;Python Package Index&lt;/a&gt;. Easier maintenance, yay!&amp;nbsp;:)&lt;/p&gt;</content><category term="tagpy"></category></entry><entry><title>Release 0.91.2 of Synoptic</title><link href="https://mathema.tician.de/release-0-91-2-of-synoptic" rel="alternate"></link><published>2008-04-20T11:32:36-05:00</published><updated>2008-04-20T11:32:36-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-04-20:/release-0-91-2-of-synoptic</id><summary type="html">&lt;p&gt;Yay, here I go again. (&lt;em&gt;Update:&lt;/em&gt; and again) There were a few small wrinkles in Synoptic 0.91 (and 0.91.1) for which I felt it warranted to push out a followup release, aptly called 0.91.2. It fixes the following&amp;nbsp;things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Depend only on Python 2.4 …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Yay, here I go again. (&lt;em&gt;Update:&lt;/em&gt; and again) There were a few small wrinkles in Synoptic 0.91 (and 0.91.1) for which I felt it warranted to push out a followup release, aptly called 0.91.2. It fixes the following&amp;nbsp;things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Depend only on Python 2.4 by reverting to Python Paste&amp;#8217;s &lt;span class="caps"&gt;WSGI&lt;/span&gt;&amp;nbsp;httpd.&lt;/li&gt;
&lt;li&gt;Speed up page load by serving all javascript as one big&amp;nbsp;clump.&lt;/li&gt;
&lt;li&gt;Change &lt;span class="caps"&gt;JS&lt;/span&gt;/&lt;span class="caps"&gt;CSS&lt;/span&gt; load order to fix history slider&amp;nbsp;size.&lt;/li&gt;
&lt;li&gt;(new in 0.91.1) unbreak daemon mode in&amp;nbsp;Python2.4&lt;/li&gt;
&lt;li&gt;(new in 0.91.1) launch browser from background thread, to avoid&amp;nbsp;deadlock.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://pypi.python.org/pypi/synoptic"&gt;Download from&amp;nbsp;PyPI&lt;/a&gt;&lt;/p&gt;</content><category term="fix"></category><category term="python-two-four"></category><category term="python"></category><category term="synoptic"></category></entry><entry><title>First real public release of Synoptic</title><link href="https://mathema.tician.de/first-real-public-release-of-synoptic" rel="alternate"></link><published>2008-04-19T16:18:58-05:00</published><updated>2008-04-19T16:18:58-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-04-19:/first-real-public-release-of-synoptic</id><summary type="html">&lt;p&gt;I&amp;#8217;m happy to announce the first truly public release of &lt;a href="/software/synoptic"&gt;Synoptic&lt;/a&gt;, my own web-based dynamic note taking application. If you find yourself lost in a jumble of either paper notes, text files on a hierarchical file system, or an overgrown &lt;a href="http://www.gnome.org/projects/tomboy/"&gt;Tomboy&lt;/a&gt; wiki, and find yourself craving order, categories, and …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;m happy to announce the first truly public release of &lt;a href="/software/synoptic"&gt;Synoptic&lt;/a&gt;, my own web-based dynamic note taking application. If you find yourself lost in a jumble of either paper notes, text files on a hierarchical file system, or an overgrown &lt;a href="http://www.gnome.org/projects/tomboy/"&gt;Tomboy&lt;/a&gt; wiki, and find yourself craving order, categories, and simplicity, Synoptic may well be for&amp;nbsp;you.&lt;/p&gt;
&lt;p&gt;So go check it out!&amp;nbsp;:)&lt;/p&gt;</content><category term="gtd"></category><category term="notes"></category><category term="organization"></category><category term="research"></category><category term="todolist"></category><category term="grad-school"></category><category term="math"></category><category term="synoptic"></category></entry><entry><title>Boost Bindings 20080405</title><link href="https://mathema.tician.de/boost-bindings-20080405" rel="alternate"></link><published>2008-04-05T20:28:54-05:00</published><updated>2008-04-05T20:28:54-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-04-05:/boost-bindings-20080405</id><summary type="html">&lt;p&gt;I&amp;#8217;ve  rolled another new &lt;a href="/software/boost-bindings"&gt;Boost bindings&lt;/a&gt; snapshot, dated&amp;nbsp;20080405.&lt;/p&gt;
&lt;p&gt;This time around, I&amp;#8217;ve done a bit more than update to current svn. I&amp;#8217;ve tried 
to scavenge past contributions from the Ublas mailing list that got dropped on the floor. 
I&amp;#8217;ve created a new version control tree …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;ve  rolled another new &lt;a href="/software/boost-bindings"&gt;Boost bindings&lt;/a&gt; snapshot, dated&amp;nbsp;20080405.&lt;/p&gt;
&lt;p&gt;This time around, I&amp;#8217;ve done a bit more than update to current svn. I&amp;#8217;ve tried 
to scavenge past contributions from the Ublas mailing list that got dropped on the floor. 
I&amp;#8217;ve created a new version control tree where I intend on maintaining these&amp;nbsp;changes:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://git.tiker.net/?p=boost-bindings.git;a=summary"&gt;http://git.tiker.net/?p=boost-bindings.git;a=summary&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For starters, I&amp;#8217;ve picked&amp;nbsp;up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Jesse Manning&amp;#8217;s gels*&amp;nbsp;routines.&lt;/li&gt;
&lt;li&gt;Vardan Akopian&amp;#8217;s gbsv&amp;nbsp;routines.&lt;/li&gt;
&lt;li&gt;Georg Baum&amp;#8217;s non-std::complex&amp;lt;&amp;gt;&amp;nbsp;fixes.&lt;/li&gt;
&lt;li&gt;Georg Baum&amp;#8217;s Fortran naming&amp;nbsp;override.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If there&amp;#8217;s anything I&amp;#8217;ve missed, or if you have a contribution to the bindings 
sitting on your disk waiting for submission, please email me now!
The bindings are a tremendous resource, let&amp;#8217;s try to not let them wither&amp;nbsp;away.&lt;/p&gt;</content><category term="boost-numeric-bindings"></category></entry><entry><title>On Hybrid Scientific Codes, Part I: The Idea</title><link href="https://mathema.tician.de/on-hybrid-scientific-codes-part-i-the-idea" rel="alternate"></link><published>2008-04-05T13:37:45-05:00</published><updated>2008-04-05T13:37:45-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-04-05:/on-hybrid-scientific-codes-part-i-the-idea</id><summary type="html">&lt;p&gt;How should scientific codes be constructed? Scientific codes are often experimental in nature, and therefore need to be easy to change, and, of course, quick to develop in the first place&amp;#8212;who wants to invest any more than necessary into an idea that might not work out after all? On …&lt;/p&gt;</summary><content type="html">&lt;p&gt;How should scientific codes be constructed? Scientific codes are often experimental in nature, and therefore need to be easy to change, and, of course, quick to develop in the first place&amp;#8212;who wants to invest any more than necessary into an idea that might not work out after all? On the other hand, computational scientists are an impatient bunch: Once the method stabilizes, or it becomes clear that it is generally useful, more and more demands get placed on a prototype code, most of all speed. It is clearly desirable to respond to these demands in an evolutionary manner. Why rewrite an entire code, possibly in a different language, if only one small part is responsible for most of the run&amp;nbsp;time?&lt;/p&gt;
&lt;p&gt;One answer that I have found to address these problems well is what I call hybrid development. Nearly all my code these days is &amp;#8220;hybrid&amp;#8221;. Now what does that mean? That means, I start developing in a high-level language that is quick to modify and separates me from the more menial tasks of coding, allowing me to code and test an algorithm quickly. The cost for this quick development turnaround is that the initial prototype is often fairly slow because many small operations are performed in the (often interpreted, instead of compiled) high-level language. This is an effect that everybody who has developed larger-scale code in &lt;span class="caps"&gt;MATLAB&lt;/span&gt; or similar environments has seen. Often, the bulk of the run time is concentrated in 10% or less of the entire code. In this case, the sensible solution is to replace the slow part of the high-level code with a lower-level compiled implementation, while keeping as much of the existing high-level code intact. This is the idea of hybrid&amp;nbsp;development.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;MATLAB&lt;/span&gt; supports this idea to some extent with its &lt;span class="caps"&gt;MEX&lt;/span&gt; mechanism. There are however many more powerful tools on the market (and available for free) that make hybrid development easier and faster by orders of magnitude. In a future installment of this mini-series, I will highlight the software environment I use for my hybrid codes, and point out what I believe its advantages over other solutions are.
&lt;!--break--&gt;&lt;/p&gt;</content><category term="matlab"></category><category term="numpy"></category><category term="python"></category><category term="scientific computing"></category><category term="university"></category><category term="math"></category><category term="my-software"></category></entry><entry><title>Getting the Most out of the Home Row</title><link href="https://mathema.tician.de/getting-the-most-out-of-the-home-row" rel="alternate"></link><published>2008-02-25T21:59:18-06:00</published><updated>2008-02-25T21:59:18-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-02-25:/getting-the-most-out-of-the-home-row</id><summary type="html">&lt;p&gt;If you&amp;#8217;re willing to exchange a bit of memory for a lot less strain on your wrists, let alone work speed, this is your lucky day. In this post, I will describe how I&amp;#8217;ve tuned my everyday work environment to a point where it feels completely unnatural for …&lt;/p&gt;</summary><content type="html">&lt;p&gt;If you&amp;#8217;re willing to exchange a bit of memory for a lot less strain on your wrists, let alone work speed, this is your lucky day. In this post, I will describe how I&amp;#8217;ve tuned my everyday work environment to a point where it feels completely unnatural for me to have to move my hands away from the home row. And that&amp;#8217;s a good thing&amp;#8212;the less often my hands have to go anywhere, the less I am at risk of having &lt;a href="http://en.wikipedia.org/wiki/Repetitive_strain_injury"&gt;painful wrist trouble&lt;/a&gt; later in&amp;nbsp;life.&lt;/p&gt;
&lt;p&gt;So what&amp;#8217;s the are the keys to all these benefits? You might laugh, but in fact they are H, J, K, and L. Namely, the cursor motion keys in &lt;a href="http://en.wikipedia.org/wiki/Vi"&gt;Vi&lt;/a&gt;. It may seem strange to tell people to use &lt;em&gt;H&lt;/em&gt; to move to the left, &lt;em&gt;J&lt;/em&gt; to move down, &lt;em&gt;K&lt;/em&gt; to move up and &lt;em&gt;L&lt;/em&gt; to move right, when there are these handy arrow keys right next to where your hands typically sit. But the problem is that your hands have to move quite a ways, and if you&amp;#8217;re like me, you also flex your wrist somewhat unnaturally just to reach those. On the other hand, &lt;span class="caps"&gt;HJKL&lt;/span&gt; are right there on the home row, if you touch type. No wrist movement&amp;nbsp;required.&lt;/p&gt;
&lt;p&gt;Now, much of what you do every day on your computer involves moving around. So why not make use of these convenient motion keys in as many places as possible? Read on for a slew of suggestions.
&lt;!--break--&gt;
Text Editor&amp;nbsp;======&lt;/p&gt;
&lt;p&gt;First of all, if you aren&amp;#8217;t already a convert, you might want to consider switching to &lt;a href="http://vim.sf.net"&gt;Vim&lt;/a&gt; as your text editor. The learning curve may be steep at first, but with time you&amp;#8217;ll become more of a text surgeon than you&amp;#8217;ll realize, and many rather complex text editing tasks will commit to muscle memory. Delete a word? &amp;#8220;dw&amp;#8221; Change a word? &amp;#8220;cw&amp;#8221; Delete a line? &amp;#8220;dd&amp;#8221; Change a line? &amp;#8220;cc&amp;#8221;. If you edit text a lot, this is time well&amp;nbsp;spent.&lt;/p&gt;
&lt;p&gt;While on the topic of Vim, here are a few tricks that I find&amp;nbsp;valuable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;*&lt;/code&gt; to search for the word under the&amp;nbsp;cursor.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;Control-n&lt;/code&gt; to search for completions of the word under the cursor. This is especially worthwhile if you write code with rather long, descriptive&amp;nbsp;names.&lt;/li&gt;
&lt;li&gt;Vim requires you to hit &amp;#8220;Escape&amp;#8221; a lot. That&amp;#8217;s another nasty twist of the wrist, until you discover that Control-[ does the same&amp;nbsp;thing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Window&amp;nbsp;management&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;If you use multiple desktops, find a way to configure your window manager to move from desktop to desktop by using Control-Alt-&lt;em&gt;&lt;span class="caps"&gt;VI&lt;/span&gt; Motion Key&lt;/em&gt;. &lt;/li&gt;
&lt;li&gt;One big use of the mouse is moving windows you just opened to the right place. However, with the following &lt;a href="http://bugs.opencompositing.org/show_bug.cgi?id=810"&gt;patch&lt;/a&gt;, the window manager &lt;a href="http://www.compiz.org"&gt;Compiz&lt;/a&gt; can move (and resize) windows around using Vi motion&amp;nbsp;keys.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Internet&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;To me, this is today&amp;#8217;s big discovery: The &lt;a href="http://vimperator.mozdev.org/"&gt;Vimperator&lt;/a&gt;. This makes Firefox look and behave a lot like Vim. What this means is that you can use a web browser without ever moving your hand to the mouse. Important problem: How do you click on a link then? Vimperator&amp;#8217;s solution, to me, is pure genius. By hitting &lt;em&gt;F&lt;/em&gt;, every link on the page shows a little one- or two-letter shortcut (such as &amp;#8220;&lt;span class="caps"&gt;HN&lt;/span&gt;&amp;#8221;). Type that, and you&amp;#8217;ve followed the link. Shift-H (remember, that&amp;#8217;s Vi-Left) and Shift-L (that&amp;#8217;s Vi-Right) allow you to navigate through history. If you know Vim, you&amp;#8217;ll feel right at home in&amp;nbsp;Vimperator.&lt;/li&gt;
&lt;li&gt;Also, Google Mail and Google Reader support Vi motion keys, once you enable&amp;nbsp;them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Desktop&amp;nbsp;environment&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;I use tabbed X terminals a lot. Alt-h and Alt-L make nice shortcuts for switching to the tab on the left or on the right. If you use a &lt;span class="caps"&gt;GTK&lt;/span&gt;-based terminal, you might find yourself unable to change your keyboard shortcuts until you use this &lt;a href="http://www.pixelbeat.org/lkdb/gtk.html"&gt;trick&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Lastly, I find that Control-Alt-semicolon (at least on a &lt;span class="caps"&gt;US&lt;/span&gt; keyboard) makes a nice shortcut for opening a new&amp;nbsp;terminal.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;May your wrists find this information useful!&amp;nbsp;:)&lt;/p&gt;</content><category term="keyboard"></category><category term="shortcuts"></category><category term="vi"></category><category term="wrist"></category><category term="linux"></category></entry><entry><title>Barf Detergent and other Successes of Modern Marketing</title><link href="https://mathema.tician.de/barf-detergent-and-other-successes-of-modern-marketing" rel="alternate"></link><published>2008-02-05T22:41:38-06:00</published><updated>2008-02-05T22:41:38-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-02-05:/barf-detergent-and-other-successes-of-modern-marketing</id><summary type="html">&lt;p&gt;I had a good laugh off this &lt;a href="http://en.wikipedia.org/wiki/User:Benjamin_Mako_Hill/List_of_unintentionally_offensive_product_names"&gt;list of unintentionally offensive product names&lt;/a&gt;. As the title hints, &lt;em&gt;Barf&lt;/em&gt; detergent is up there. But there&amp;#8217;s one name that takes the cake. It hails from Germany, as it had to. To be precise, the electronics firm Trekstor decided to name the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I had a good laugh off this &lt;a href="http://en.wikipedia.org/wiki/User:Benjamin_Mako_Hill/List_of_unintentionally_offensive_product_names"&gt;list of unintentionally offensive product names&lt;/a&gt;. As the title hints, &lt;em&gt;Barf&lt;/em&gt; detergent is up there. But there&amp;#8217;s one name that takes the cake. It hails from Germany, as it had to. To be precise, the electronics firm Trekstor decided to name the black-colored addition to their &amp;#8220;iBeat&amp;#8221; line the &lt;a href="http://gizmodo.com/gadgets/oops/trekstor-renames-ibeat-blaxx-after-a-bit-of-self+flagellation-293667.php"&gt;Trekstor i.Beat Blaxx&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The name sounds convoluted enough that, no doubt, it took lots of effort-by-committee to find it. And all of that just to get the whole thing catastrophically wrong. Sounds somewhat typical of Germany to&amp;nbsp;me&amp;#8230;&lt;/p&gt;</content><category term="germany"></category><category term="marketing"></category><category term="screwup"></category><category term="life"></category><category term="mindless-link-propagation"></category></entry><entry><title>Hey, Americans!</title><link href="https://mathema.tician.de/hey-americans" rel="alternate"></link><published>2008-02-05T08:51:09-06:00</published><updated>2008-02-05T08:51:09-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2008-02-05:/hey-americans</id><summary type="html">&lt;p&gt;If you&amp;#8217;re choosing between Obama and Hillary, &lt;a href="http://lessig.org/blog/2008/02/20_minutes_or_so_on_why_i_am_4.html"&gt;here&lt;/a&gt; is a compelling argument brought forward by &lt;a href="http://lessig.org"&gt;someone&lt;/a&gt; who &lt;a href="http://www.creativecommons.org"&gt;knows&lt;/a&gt;  &lt;a href="http://lawschool.stanford.edu/"&gt;what&lt;/a&gt; &lt;a href="http://eldred.cc/"&gt;he&lt;/a&gt; is &lt;a href="http://cyberlaw.stanford.edu/"&gt;doing&lt;/a&gt;. (&lt;a href="http://blog.printf.net/articles/2008/02/05/transcript-of-lawrence-lessig-obama-video"&gt;transcript&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;I couldn&amp;#8217;t agree more. Go ahead, spread this!&amp;nbsp;:)&lt;/p&gt;</summary><content type="html">&lt;p&gt;If you&amp;#8217;re choosing between Obama and Hillary, &lt;a href="http://lessig.org/blog/2008/02/20_minutes_or_so_on_why_i_am_4.html"&gt;here&lt;/a&gt; is a compelling argument brought forward by &lt;a href="http://lessig.org"&gt;someone&lt;/a&gt; who &lt;a href="http://www.creativecommons.org"&gt;knows&lt;/a&gt;  &lt;a href="http://lawschool.stanford.edu/"&gt;what&lt;/a&gt; &lt;a href="http://eldred.cc/"&gt;he&lt;/a&gt; is &lt;a href="http://cyberlaw.stanford.edu/"&gt;doing&lt;/a&gt;. (&lt;a href="http://blog.printf.net/articles/2008/02/05/transcript-of-lawrence-lessig-obama-video"&gt;transcript&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;I couldn&amp;#8217;t agree more. Go ahead, spread this!&amp;nbsp;:)&lt;/p&gt;</content><category term="2008"></category><category term="democrats"></category><category term="election"></category><category term="lessig"></category><category term="obama"></category></entry><entry><title>Forums!</title><link href="https://mathema.tician.de/forums" rel="alternate"></link><published>2007-12-05T13:06:34-06:00</published><updated>2007-12-05T13:06:34-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-12-05:/forums</id><summary type="html">&lt;p&gt;Since I&amp;#8217;ve received a number of calls for help with regard to my software packages, in particular &lt;a href="/software/meshpy"&gt;MeshPy&lt;/a&gt; and &lt;a href="/software/pylinear"&gt;PyLinear&lt;/a&gt;, I&amp;#8217;ve decided to create a public forum for these requests for help. Here they are: the &lt;a href="/software/meshpy/forum"&gt;MeshPy forum&lt;/a&gt; and the &lt;a href="/software/pylinear/forum"&gt;PyLinear forum&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s to years of useful …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Since I&amp;#8217;ve received a number of calls for help with regard to my software packages, in particular &lt;a href="/software/meshpy"&gt;MeshPy&lt;/a&gt; and &lt;a href="/software/pylinear"&gt;PyLinear&lt;/a&gt;, I&amp;#8217;ve decided to create a public forum for these requests for help. Here they are: the &lt;a href="/software/meshpy/forum"&gt;MeshPy forum&lt;/a&gt; and the &lt;a href="/software/pylinear/forum"&gt;PyLinear forum&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s to years of useful discussions!&amp;nbsp;;)&lt;/p&gt;</content><category term="forum"></category><category term="help"></category><category term="support"></category><category term="meshpy"></category><category term="pylinear"></category></entry><entry><title>Visualizing Greenhouse Gases</title><link href="https://mathema.tician.de/visualizing-greenhouse-gases" rel="alternate"></link><published>2007-12-02T10:16:32-06:00</published><updated>2007-12-02T10:16:32-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-12-02:/visualizing-greenhouse-gases</id><summary type="html">&lt;p&gt;Have a friend who does &lt;em&gt;not&lt;/em&gt; believe &lt;span class="caps"&gt;CO&lt;/span&gt;&lt;sub&gt;2&lt;/sub&gt; emissions are real and may be harmful? Show them&amp;nbsp;this:&lt;/p&gt;
&lt;p&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6Eg_SEAnE-M&amp;rel=1&amp;border=0"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/6Eg_SEAnE-M&amp;rel=1&amp;border=0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Have a friend who does &lt;em&gt;not&lt;/em&gt; believe &lt;span class="caps"&gt;CO&lt;/span&gt;&lt;sub&gt;2&lt;/sub&gt; emissions are real and may be harmful? Show them&amp;nbsp;this:&lt;/p&gt;
&lt;p&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6Eg_SEAnE-M&amp;rel=1&amp;border=0"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/6Eg_SEAnE-M&amp;rel=1&amp;border=0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</content><category term="climate"></category><category term="co2"></category><category term="mindless-link-propagation"></category><category term="rants"></category></entry><entry><title>TagPy 0.93</title><link href="https://mathema.tician.de/tagpy-0-93" rel="alternate"></link><published>2007-10-24T23:53:57-05:00</published><updated>2007-10-24T23:53:57-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-10-24:/tagpy-0-93</id><summary type="html">&lt;p&gt;I&amp;#8217;ve pushed out yet another version of &lt;a href="/software/tagpy"&gt;TagPy&lt;/a&gt;. This time it is to mop up after some rather unhelpful default in TagLib. That is, unless you have the magic&amp;nbsp;lines:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import tagpy.id3v2 as id3v2
id3v2.FrameFactory.instance().setDefaultTextEncoding(tagpy.StringType.UTF8)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;in your code, the generic &lt;span class="caps"&gt;API&lt;/span&gt; &lt;code&gt;tag …&lt;/code&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;ve pushed out yet another version of &lt;a href="/software/tagpy"&gt;TagPy&lt;/a&gt;. This time it is to mop up after some rather unhelpful default in TagLib. That is, unless you have the magic&amp;nbsp;lines:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import tagpy.id3v2 as id3v2
id3v2.FrameFactory.instance().setDefaultTextEncoding(tagpy.StringType.UTF8)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;in your code, the generic &lt;span class="caps"&gt;API&lt;/span&gt; &lt;code&gt;tag.artist = u"*some funky unicode string*"&lt;/code&gt; will write Unicode tags as Latin1 if the previous ID3v2 tag was also Latin1-encoded. This will of course destroy your carefully crafted unicode string. Therefore I urge all users to include these lines in their code, in order to avoid such&amp;nbsp;trouble.&lt;/p&gt;
&lt;p&gt;All that&amp;#8217;s new in 0.93 is the wrappers that make this call&amp;nbsp;possible.&lt;/p&gt;
&lt;p&gt;I tought about making the above code the default for TagPy, but I wasn&amp;#8217;t sure whether that was the right thing to do, seeing as how this default would deviate from&amp;nbsp;TagLib.&lt;/p&gt;</content><category term="braindead"></category><category term="encoding"></category><category term="utf8"></category><category term="tagpy"></category></entry><entry><title>Yuck!</title><link href="https://mathema.tician.de/yuck" rel="alternate"></link><published>2007-10-11T21:08:57-05:00</published><updated>2007-10-11T21:08:57-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-10-11:/yuck</id><summary type="html">&lt;p&gt;&lt;a href="http://www.justsayhi.com/bb/keyboard" style="color: #99CC00; text-decoration: none; display: block; width: 303px; height: 128px; padding-top: 50px; background: url(http://www.justsayhi.com/bb/img/keyboard/badge.jpg) no-repeat; font-family: Arial, sans-serif; font-size: 33px; text-align: center;"&gt;&lt;strong&gt;1,662,780&lt;/strong&gt;&lt;span style="display: none;"&gt;How Many Germs Live On Your&amp;nbsp;Keyboard?&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Alternate Method: Convince them it's an Etch-A-Sketch and have them try and erase it" src="http://imgs.xkcd.com/comics/keyboards_are_disgusting.png" /&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a href="http://xkcd.com"&gt;xkcd&lt;/a&gt; is&amp;nbsp;great.)&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://www.justsayhi.com/bb/keyboard" style="color: #99CC00; text-decoration: none; display: block; width: 303px; height: 128px; padding-top: 50px; background: url(http://www.justsayhi.com/bb/img/keyboard/badge.jpg) no-repeat; font-family: Arial, sans-serif; font-size: 33px; text-align: center;"&gt;&lt;strong&gt;1,662,780&lt;/strong&gt;&lt;span style="display: none;"&gt;How Many Germs Live On Your&amp;nbsp;Keyboard?&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Alternate Method: Convince them it's an Etch-A-Sketch and have them try and erase it" src="http://imgs.xkcd.com/comics/keyboards_are_disgusting.png" /&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a href="http://xkcd.com"&gt;xkcd&lt;/a&gt; is&amp;nbsp;great.)&lt;/p&gt;</content><category term="germ"></category><category term="toilet seat"></category><category term="yuck"></category><category term="life"></category><category term="mindless-link-propagation"></category><category term="silly-stuff"></category></entry><entry><title>Möbius Transforms</title><link href="https://mathema.tician.de/moebius-transforms" rel="alternate"></link><published>2007-10-02T23:10:04-05:00</published><updated>2007-10-02T23:10:04-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-10-02:/moebius-transforms</id><summary type="html">&lt;p&gt;Complex analysis on&amp;nbsp;YouTube:&lt;/p&gt;
&lt;p&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="https://www.youtube.com/v/JX3VmDgiFnY"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="https://www.youtube.com/v/JX3VmDgiFnY" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;Yup, too cool not to share.&amp;nbsp;:)&lt;/p&gt;</summary><content type="html">&lt;p&gt;Complex analysis on&amp;nbsp;YouTube:&lt;/p&gt;
&lt;p&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="https://www.youtube.com/v/JX3VmDgiFnY"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="https://www.youtube.com/v/JX3VmDgiFnY" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;Yup, too cool not to share.&amp;nbsp;:)&lt;/p&gt;</content><category term="complex"></category><category term="inversion"></category><category term="moebius"></category><category term="sphere"></category><category term="math"></category><category term="mindless-link-propagation"></category></entry><entry><title>TagPy 0.92 released</title><link href="https://mathema.tician.de/tagpy-0-92-released" rel="alternate"></link><published>2007-10-02T10:10:34-05:00</published><updated>2007-10-02T10:10:34-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-10-02:/tagpy-0-92-released</id><summary type="html">&lt;p&gt;In order to fix &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=438556"&gt;Debian bug #438556&lt;/a&gt; (a crasher that made almost all of the ID3v2 infrastructure useless), I have just release version 0.92 of tagpy. Go &lt;a href="/dl/software/tagpy"&gt;get it&lt;/a&gt; while it&amp;#8217;s&amp;nbsp;hot.&lt;/p&gt;</summary><content type="html">&lt;p&gt;In order to fix &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=438556"&gt;Debian bug #438556&lt;/a&gt; (a crasher that made almost all of the ID3v2 infrastructure useless), I have just release version 0.92 of tagpy. Go &lt;a href="/dl/software/tagpy"&gt;get it&lt;/a&gt; while it&amp;#8217;s&amp;nbsp;hot.&lt;/p&gt;</content><category term="bug"></category><category term="crash"></category><category term="debian"></category><category term="tagpy"></category></entry><entry><title>Not enough Flash video yet?</title><link href="https://mathema.tician.de/not-enough-flash-video-yet" rel="alternate"></link><published>2007-09-26T22:12:42-05:00</published><updated>2007-09-26T22:12:42-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-09-26:/not-enough-flash-video-yet</id><summary type="html">&lt;p&gt;Then go watch something &lt;a href="http://www.slatev.com/player.html?id=1182700684"&gt;sad&lt;/a&gt; and then &lt;a href="http://www.slatev.com/li_mashups.html"&gt;laugh&lt;/a&gt;.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Then go watch something &lt;a href="http://www.slatev.com/player.html?id=1182700684"&gt;sad&lt;/a&gt; and then &lt;a href="http://www.slatev.com/li_mashups.html"&gt;laugh&lt;/a&gt;.&lt;/p&gt;</content><category term="fatter and dumber"></category><category term="prison"></category><category term="life"></category></entry><entry><title>PSI Smilies in Gaim/Pidgin</title><link href="https://mathema.tician.de/psi-smilies-in-gaim-pidgin" rel="alternate"></link><published>2007-09-25T16:45:06-05:00</published><updated>2007-09-25T16:45:06-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-09-25:/psi-smilies-in-gaim-pidgin</id><summary type="html">&lt;p&gt;Thanks to Debian, I got &lt;a href="http://pidgin.im"&gt;pidgin&lt;/a&gt; 2.2.0 today, and with it, its new atrocious smiley theme&amp;#8212;eyebrows and all. This prompted me to make a smiley theme out of &lt;a href="http://psi-im.org"&gt;Psi&lt;/a&gt;&amp;#8216;s old smileys, which I still remember liking the&amp;nbsp;most.&lt;/p&gt;
&lt;p&gt;You can download that theme here: &lt;a href="/dl/PSI_Smileys.tar.gz"&gt;&lt;span class="caps"&gt;PSI&lt;/span&gt; Smilies …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Thanks to Debian, I got &lt;a href="http://pidgin.im"&gt;pidgin&lt;/a&gt; 2.2.0 today, and with it, its new atrocious smiley theme&amp;#8212;eyebrows and all. This prompted me to make a smiley theme out of &lt;a href="http://psi-im.org"&gt;Psi&lt;/a&gt;&amp;#8216;s old smileys, which I still remember liking the&amp;nbsp;most.&lt;/p&gt;
&lt;p&gt;You can download that theme here: &lt;a href="/dl/PSI_Smileys.tar.gz"&gt;&lt;span class="caps"&gt;PSI&lt;/span&gt; Smilies in&amp;nbsp;Gaim/Pidgin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And this is what they look&amp;nbsp;like: &lt;/p&gt;
&lt;p&gt;&lt;img alt="psi-smileys.png" src="/images/psi-smileys.png" /&gt;&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dl/PSI_Smileys.tar.gz"&gt;PSI_Smileys.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/images/psi-smileys.png"&gt;psi-smileys.png&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="gaim"></category><category term="pidgin"></category><category term="smiley"></category><category term="smilie"></category><category term="theme"></category><category term="life"></category><category term="linux"></category></entry><entry><title>Fermat’s Last Python Script</title><link href="https://mathema.tician.de/fermats-last-python-script" rel="alternate"></link><published>2007-09-18T10:58:45-05:00</published><updated>2007-09-18T10:58:45-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-09-18:/fermats-last-python-script</id><summary type="html">&lt;pre&gt;&lt;code&gt;def fermat(n):
    """Returns triplets of the form x^n + y^n = z^n.
    Warning! Untested with n &amp;gt; 2.
    """
    from itertools import count
    for x in count(1):
        for y in range(1, x+1):
            for z in range(1, x**n+y**n + 1):
                if x**n + y**n …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">&lt;pre&gt;&lt;code&gt;def fermat(n):
    """Returns triplets of the form x^n + y^n = z^n.
    Warning! Untested with n &amp;gt; 2.
    """
    from itertools import count
    for x in count(1):
        for y in range(1, x+1):
            for z in range(1, x**n+y**n + 1):
                if x**n + y**n == z**n:
                    yield x, y, z
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nicked from &lt;a href="http://earthboundkid.jottit.com/fermat.py"&gt;the earthbound kid&lt;/a&gt;.&lt;/p&gt;</content><category term="fermat"></category><category term="math"></category><category term="mindless-link-propagation"></category><category term="python"></category></entry><entry><title>What they don’t tell you about VTK XML binary formats</title><link href="https://mathema.tician.de/what-they-dont-tell-you-about-vtk-xml-binary-formats" rel="alternate"></link><published>2007-09-18T09:52:10-05:00</published><updated>2007-09-18T09:52:10-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-09-18:/what-they-dont-tell-you-about-vtk-xml-binary-formats</id><summary type="html">&lt;p&gt;You might have been trying to implement the new-style &lt;a href="http://www.vtk.org"&gt;&lt;span class="caps"&gt;VTK&lt;/span&gt;&lt;/a&gt; &lt;a href="http://www.vtk.org/pdf/file-formats.pdf"&gt;&lt;span class="caps"&gt;XML&lt;/span&gt; file formats&lt;/a&gt;. And you might have realized that what they tell you in the file format &amp;#8220;specification&amp;#8221; is just incomplete. Well, here are a few bits of information missing from&amp;nbsp;there:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Binary Blob Header:&lt;/strong&gt; In front of every binary …&lt;/p&gt;</summary><content type="html">&lt;p&gt;You might have been trying to implement the new-style &lt;a href="http://www.vtk.org"&gt;&lt;span class="caps"&gt;VTK&lt;/span&gt;&lt;/a&gt; &lt;a href="http://www.vtk.org/pdf/file-formats.pdf"&gt;&lt;span class="caps"&gt;XML&lt;/span&gt; file formats&lt;/a&gt;. And you might have realized that what they tell you in the file format &amp;#8220;specification&amp;#8221; is just incomplete. Well, here are a few bits of information missing from&amp;nbsp;there:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Binary Blob Header:&lt;/strong&gt; In front of every binary blob, base64 or raw-binary, appended or not, there is an UInt32 length indicator. If you do not have this length indicator, you might get error messages&amp;nbsp;like&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Cannot read cell offsets from XXXX in piece 0 because the "offsets" array is not long enough.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that if you are encoding in &lt;code&gt;base64&lt;/code&gt;, that length header must be encoded separately, so that the end result looks like &lt;span class="caps"&gt;XXXXXX&lt;/span&gt;==&lt;span class="caps"&gt;XXXX&lt;/span&gt;&amp;#8230; (note the two equals signs indicating the early end of the length header&amp;nbsp;block).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Compression Header:&lt;/strong&gt; If you use compression, the following header applies&amp;nbsp;instead:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;struct {
  uint32 blocks; 
  uint32 blocksize; 
  uint32 last_blocksize; 
  uint32 compressed_blocksizes[];
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Again, this header is encoded &lt;em&gt;separately&lt;/em&gt; from the data. This was figured out by &lt;a href="http://public.kitware.com/pipermail/paraview/2005-April/001391.html"&gt;Thomas Svedberg&lt;/a&gt;. Thomas adds that the following works for&amp;nbsp;him:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;struct {
  uint32 blocks = 1
  uint32 blocksize = total data size
  uint32 last_blocksize = total data size
  uint32 compressed_blocksizes[] = compressed data size
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Offset Field Meaning for &lt;code&gt;base64&lt;/code&gt;:&lt;/strong&gt; The &amp;#8220;offset&amp;#8221; field on  DataArrays with format=&amp;#8221;appended&amp;#8221; is not a binary offset, it is the base64 character count from the underscore that starts the AppendedData&amp;nbsp;section.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vector Element Order:&lt;/strong&gt; If you are encoding vectors (i.e. anything with NumberOfComponents=&amp;#8221;3&amp;#8221;), and suppose your vectors are X,Y,Z,&amp;#8230;, then the encoded data stream has the ordering X[0], X[1], X[2], Y[0], Y[1], Y[2],&amp;nbsp;Z[0]&amp;#8230;&lt;/p&gt;</content><category term="visualization"></category><category term="vtk"></category><category term="xml"></category><category term="grad-school"></category><category term="technology"></category></entry><entry><title>Books, Books and more Books</title><link href="https://mathema.tician.de/books-books-and-more-books" rel="alternate"></link><published>2007-09-07T22:55:55-05:00</published><updated>2007-09-07T22:55:55-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-09-07:/books-books-and-more-books</id><summary type="html">&lt;p&gt;I&amp;#8217;ve found it sad for a long time that I&amp;#8217;ve read many books in my life, but my memory of them is slowly fading, and I would at least like to keep a list around. As you have probably guessed, you would not be reading this if I …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;ve found it sad for a long time that I&amp;#8217;ve read many books in my life, but my memory of them is slowly fading, and I would at least like to keep a list around. As you have probably guessed, you would not be reading this if I hadn&amp;#8217;t stumbled on a cool site that lets me easily put together a catalog of books that own or have&amp;nbsp;read.&lt;/p&gt;
&lt;p&gt;And that site is: &lt;a href="http://www.LibraryThing.com"&gt;http://www.LibraryThing.com&lt;/a&gt;. And if you care what kind of books I read and own, here&amp;#8217;s &lt;a href="http://www.librarything.com/catalog/inducer"&gt;my library&lt;/a&gt;. That list is still pretty incomplete, but I hope to add more over&amp;nbsp;time.&lt;/p&gt;</content><category term="books"></category><category term="library"></category><category term="reading"></category><category term="life"></category></entry><entry><title>Singing the praises of</title><link href="https://mathema.tician.de/singing-the-praises-of-link-rel-next" rel="alternate"></link><published>2007-08-29T10:07:13-05:00</published><updated>2007-08-29T10:07:13-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-08-29:/singing-the-praises-of-link-rel-next</id><summary type="html">&lt;p&gt;Here&amp;#8217;s a chicken-and-egg problem for you. And you can be part of the egg. I&amp;#8217;ll show you how in a&amp;nbsp;minute.&lt;/p&gt;
&lt;p&gt;I bet you&amp;#8217;ve noticed that bajillions of websites have little links that say &amp;#8220;next&amp;#8221; and &amp;#8220;previous&amp;#8221;, right? Like previous page, previous item, previous whatever. And sometimes …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Here&amp;#8217;s a chicken-and-egg problem for you. And you can be part of the egg. I&amp;#8217;ll show you how in a&amp;nbsp;minute.&lt;/p&gt;
&lt;p&gt;I bet you&amp;#8217;ve noticed that bajillions of websites have little links that say &amp;#8220;next&amp;#8221; and &amp;#8220;previous&amp;#8221;, right? Like previous page, previous item, previous whatever. And sometimes there&amp;#8217;s &amp;#8220;up&amp;#8221;, too. As in &amp;#8220;up&amp;#8221; to the parent directory, &amp;#8220;up&amp;#8221; to the category containing this item, and so on. And every time you come upon a web page like that, you ask yourself, &amp;#8220;so where is the link that takes me to the &amp;#8216;next&amp;#8217; page?&amp;#8221; Wouldn&amp;#8217;t it be nice if that button was always in the &lt;em&gt;same&lt;/em&gt; spot, preferably on your browser user&amp;nbsp;interface?&lt;/p&gt;
&lt;p&gt;You might be surprised to learn that a solution to this already exists. The &lt;span class="caps"&gt;HTML&lt;/span&gt; standard specifies the &amp;lt;link rel=&amp;#8221;next&amp;#8221;&amp;gt; and &amp;lt;link rel=&amp;#8221;prev&amp;#8221;&amp;gt; header tags. But how can you make them show up in your browser? Easy: Use the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2933"&gt;Link Widgets&lt;/a&gt; Firefox extension. By installing and using that, you&amp;#8217;ve become part of the egg. Now the chicken is that more sites need to start using the &amp;lt;link rel=&amp;#8221;&amp;#8230;&amp;#8221;&amp;gt; tags. There are already enough of them to make the extension worthwhile, for example Google, or any Drupal site (such as this one :) ), or anything generated by latex2html, which includes surprisingly large swaths of web documentation. But the more people have the &lt;span class="caps"&gt;UI&lt;/span&gt; to use these links, the more sites will include the markup, making the whole thing more and more useful over&amp;nbsp;time.&lt;/p&gt;
&lt;p&gt;And making the web more useful is not a bad thing, is it?&amp;nbsp;;)&lt;/p&gt;</content><category term="html"></category><category term="markup"></category><category term="semantic"></category><category term="rants"></category><category term="technology"></category></entry><entry><title>New release of Boost.Bindings tracking Boost 1.35 CVS</title><link href="https://mathema.tician.de/new-release-of-boost-bindings-tracking-boost-1-35-cvs" rel="alternate"></link><published>2007-08-26T13:11:02-05:00</published><updated>2007-08-26T13:11:02-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-08-26:/new-release-of-boost-bindings-tracking-boost-1-35-cvs</id><summary type="html">&lt;p&gt;I&amp;#8217;ve rolled a new release (20070826) of the &lt;a href="/software/boost-bindings"&gt;Boost.Bindings&lt;/a&gt; library to track what&amp;#8217;s currently going on in the Boost &lt;span class="caps"&gt;CVS&lt;/span&gt; tree leading up to release 1.35. What&amp;#8217;s released works with current &lt;span class="caps"&gt;CVS&lt;/span&gt; as of 8/26/2007, I assume it will also work with the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;ve rolled a new release (20070826) of the &lt;a href="/software/boost-bindings"&gt;Boost.Bindings&lt;/a&gt; library to track what&amp;#8217;s currently going on in the Boost &lt;span class="caps"&gt;CVS&lt;/span&gt; tree leading up to release 1.35. What&amp;#8217;s released works with current &lt;span class="caps"&gt;CVS&lt;/span&gt; as of 8/26/2007, I assume it will also work with the final release. I suspect that it will &lt;em&gt;not&lt;/em&gt; work with boost 1.34.1 and&amp;nbsp;older.&lt;/p&gt;
&lt;p&gt;Additionally, this release has a configure script and a Makefile to enable it to be installed with the familiar ./configure;make;make install procedure. Using this is completely optional, the library will also work without installation, as&amp;nbsp;before.&lt;/p&gt;</content><category term="boost-numeric-bindings"></category></entry><entry><title>D*mn sp*mmers</title><link href="https://mathema.tician.de/d-mn-sp-mmers" rel="alternate"></link><published>2007-08-26T13:05:39-05:00</published><updated>2007-08-26T13:05:39-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-08-26:/d-mn-sp-mmers</id><summary type="html">&lt;p&gt;Ok, the spammers yet again figured out how to circumvent my anti-spam measures. So yet again, I&amp;#8217;ve disabled anonymous commenting. Only this time it&amp;#8217;s final. And I have a mess of seven bajillion comments to clean&amp;nbsp;up.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m just so sick of these people:&amp;nbsp;:barf:&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ok, the spammers yet again figured out how to circumvent my anti-spam measures. So yet again, I&amp;#8217;ve disabled anonymous commenting. Only this time it&amp;#8217;s final. And I have a mess of seven bajillion comments to clean&amp;nbsp;up.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m just so sick of these people:&amp;nbsp;:barf:&lt;/p&gt;</content><category term="hate"></category><category term="spam"></category><category term="rants"></category></entry><entry><title>Trip to the Northwest</title><link href="https://mathema.tician.de/trip-to-the-northwest" rel="alternate"></link><published>2007-08-20T15:21:04-05:00</published><updated>2007-08-20T15:21:04-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-08-20:/trip-to-the-northwest</id><summary type="html">&lt;p&gt;For the first two weeks of August this summer, Frank and I went on a two-week trip through the northwestern United States. The trip was nothing short of amazing to me, and I&amp;#8217;m having a hard time adjusting back to the dull (by comparison) life in Providence. We saw …&lt;/p&gt;</summary><content type="html">&lt;p&gt;For the first two weeks of August this summer, Frank and I went on a two-week trip through the northwestern United States. The trip was nothing short of amazing to me, and I&amp;#8217;m having a hard time adjusting back to the dull (by comparison) life in Providence. We saw some &lt;em&gt;really&lt;/em&gt; amazing nature, and had tons of fun. Naturally, there are &lt;a href="http://gallery.tiker.net/v/andreas/vacation/nwtrip07"&gt;pictures&lt;/a&gt; available. Thanks to Google Maps, you can also take a pretty precise look at our route: (You have to zoom out a couple times to see the whole&amp;nbsp;thing.)&lt;/p&gt;
&lt;iframe width="425" height="350" frameborder="no" scrolling="no" marginheight="0" marginwidth="0" src="http://local.google.com/maps?f=d&amp;hl=en&amp;geocode=&amp;saddr=pdx&amp;daddr=Astoria+Bridge%2FUS-101+%4046.230750,+-123.869770+to:US-101+%4046.673400,+-123.769960+to:Paradise+Rd+%4046.781840,+-121.762160+to:E+Valley+Rd+%4047.453510,+-122.218190+to:US-2+%4047.594090,+-120.665410+to:I-90+E+%4047.653840,+-117.353600+to:Going+to+the+Sun+Hwy+%4048.673840,+-113.613810+to:47.794707,-112.225342+to:Main+St+%4046.937280,+-110.740350+to:US-89+%4045.059640,+-110.760240+to:US-89+%4042.346850,+-111.106950+to:US-89+%4041.931080,+-111.561590+to:I-15+S+%4040.769360,+-111.911890+to:I-80+W+%4039.374450,+-120.108460+to:CA-89+%4038.945930,+-120.102110+to:NV-28+%4039.102520,+-119.912860+to:I-80+W+%4039.330770,+-120.285170+to:sfo&amp;mrcr=7,8&amp;mrsp=8&amp;sz=8&amp;mra=dpe&amp;sll=47.945786,-112.681274&amp;sspn=2.763271,3.592529&amp;ie=UTF8&amp;ll=47.945786,-112.681274&amp;spn=2.763271,3.592529&amp;om=1&amp;output=embed&amp;s=AARTsJooNsvg6jSjU-VlxiduiOOJjf_z5w"&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;br/&gt;&lt;a href="http://local.google.com/maps?f=d&amp;hl=en&amp;geocode=&amp;saddr=pdx&amp;daddr=Astoria+Bridge%2FUS-101+%4046.230750,+-123.869770+to:US-101+%4046.673400,+-123.769960+to:Paradise+Rd+%4046.781840,+-121.762160+to:E+Valley+Rd+%4047.453510,+-122.218190+to:US-2+%4047.594090,+-120.665410+to:I-90+E+%4047.653840,+-117.353600+to:Going+to+the+Sun+Hwy+%4048.673840,+-113.613810+to:47.794707,-112.225342+to:Main+St+%4046.937280,+-110.740350+to:US-89+%4045.059640,+-110.760240+to:US-89+%4042.346850,+-111.106950+to:US-89+%4041.931080,+-111.561590+to:I-15+S+%4040.769360,+-111.911890+to:I-80+W+%4039.374450,+-120.108460+to:CA-89+%4038.945930,+-120.102110+to:NV-28+%4039.102520,+-119.912860+to:I-80+W+%4039.330770,+-120.285170+to:sfo&amp;mrcr=7,8&amp;mrsp=8&amp;sz=8&amp;mra=dpe&amp;sll=47.945786,-112.681274&amp;sspn=2.763271,3.592529&amp;ie=UTF8&amp;ll=47.945786,-112.681274&amp;spn=2.763271,3.592529&amp;om=1&amp;source=embed" style="color:#0000FF;text-align:left;font-size:small"&gt;View Larger&amp;nbsp;Map&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Yes, we did indeed drive all that. 3300 miles&amp;nbsp;altogether.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a brief summary what we did each&amp;nbsp;day:&lt;/p&gt;
&lt;h2&gt;August&amp;nbsp;1&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Arrive at &lt;span class="caps"&gt;PDX&lt;/span&gt;. To me, this was a flight that visited &lt;em&gt;every&lt;/em&gt; corner of the &lt;span class="caps"&gt;US&lt;/span&gt;. (by going through &lt;span class="caps"&gt;PVD&lt;/span&gt;-&amp;gt;&lt;span class="caps"&gt;BNA&lt;/span&gt;-&amp;gt;&lt;span class="caps"&gt;LAS&lt;/span&gt;-&amp;gt;&lt;span class="caps"&gt;PDX&lt;/span&gt;. Thanks, Southwest. :P Anyone wondering why I arrived with a&amp;nbsp;headache?)&lt;/li&gt;
&lt;li&gt;Shop at&amp;nbsp;Target.&lt;/li&gt;
&lt;li&gt;Find camping in Scappoose, &lt;span class="caps"&gt;WA&lt;/span&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;2&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Shop at Fred Meyer in&amp;nbsp;Scappoose.&lt;/li&gt;
&lt;li&gt;Establish that coffee with each breakfast is a good&amp;nbsp;idea.&lt;/li&gt;
&lt;li&gt;Establish that dry milk with cereal is not a good idea, but a necessary&amp;nbsp;evil.&lt;/li&gt;
&lt;li&gt;Repack the car to make stuff more&amp;nbsp;accessible.&lt;/li&gt;
&lt;li&gt;Drive along &lt;span class="caps"&gt;US&lt;/span&gt;-30 to the &lt;span class="caps"&gt;WA&lt;/span&gt; coast, including &lt;a href="http://gallery.tiker.net/v/andreas/vacation/nwtrip07/1oregon/IMG_4465.JPG.html"&gt;Cape Disappointment&lt;/a&gt;. Cross the Astoria&amp;nbsp;bridge.&lt;/li&gt;
&lt;li&gt;See Mount Saint Helens from a&amp;nbsp;distance.&lt;/li&gt;
&lt;li&gt;Return inland and crash at Mt. Rainier for the night, seeing a photo presentation at the campground in the&amp;nbsp;evening.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;3&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Go hike the Skyline trail at Mt. Rainier in total fog. At first, that was fairy-tale lovely (while there was still vegetation and animal life to gawk at), but as soon as there were only snow fields and dirt, that was pretty&amp;nbsp;boring.&lt;/li&gt;
&lt;li&gt;Drive the National Park road, and actually &lt;em&gt;see&lt;/em&gt; Mt.&amp;nbsp;Rainier.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;4&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Leave Mt. Rainier for&amp;nbsp;Seattle.&lt;/li&gt;
&lt;li&gt;Stop at a suburban McDonald&amp;#8217;s to score some wireless. Book a kayak trip for 8/6. Book a hotel for&amp;nbsp;Seattle.&lt;/li&gt;
&lt;li&gt;Check into said hotel, take well-deserved&amp;nbsp;showers.&lt;/li&gt;
&lt;li&gt;Head into Seattle, find parking &lt;em&gt;way&lt;/em&gt; outside town, about 15 minutes walk from the Space&amp;nbsp;Needle.&lt;/li&gt;
&lt;li&gt;Ride the Seattle Monorail, see Pike Place Market, find it underwhelming. Walk underneath &lt;span class="caps"&gt;WA&lt;/span&gt;-99 to find Seattle&amp;#8217;s &amp;#8220;waterfront&amp;#8221;. Ride the ferry to Bainbridge Island and back, see Mt. Rainier in the&amp;nbsp;distance.&lt;/li&gt;
&lt;li&gt;Visit Pioneer Square, find it underwhelming. Go eat African&amp;nbsp;food.&lt;/li&gt;
&lt;li&gt;Return to the hotel, getting stuck in traffic for about an hour (at 11pm, no&amp;nbsp;less).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;5&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;My birthday, yay.&amp;nbsp;:)&lt;/li&gt;
&lt;li&gt;Get up bright and early, shower!&amp;nbsp;;)&lt;/li&gt;
&lt;li&gt;Leave hotel room, taking parts of door frame with us. (Well no, the door had a latch that was supposed to keep the bad guys from coming in. But when I opened the door without opening the latch, it simply pulled the door frame off the wall. &lt;em&gt;Real&lt;/em&gt; secure,&amp;nbsp;that.)&lt;/li&gt;
&lt;li&gt;Figure Seattle&amp;#8217;s got not too much more to see. Move kayak trip from 8/6 to 1pm today, leave Seattle via I-90 East at&amp;nbsp;9am.&lt;/li&gt;
&lt;li&gt;Arrive in Leavenworth, &lt;span class="caps"&gt;WA&lt;/span&gt; at &lt;a href="http://www.riverrider.com/"&gt;River Rider&lt;/a&gt;, ready for a cool kayaking trip by eating the provided (yummy) &lt;span class="caps"&gt;BBQ&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;Have tons of fun kayaking down the Wenatchee in inflatable &lt;a href="http://images.google.com/images?q=inflatable.kayak&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;rls=org.debian:de:unofficial&amp;amp;client=iceweasel-a&amp;amp;um=1&amp;amp;sa=N&amp;amp;tab=wi"&gt;duckies&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Drive onward down the Wenatchee river, pretty.&amp;nbsp;;)&lt;/li&gt;
&lt;li&gt;Reach the Spokane &lt;span class="caps"&gt;KOA&lt;/span&gt; by&amp;nbsp;nightfall.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;6&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Leave Spokane, &lt;span class="caps"&gt;WA&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;Go shopping at Safeway in Cœur d&amp;#8217;Alene, &lt;span class="caps"&gt;ID&lt;/span&gt;. God, Safeway is&amp;nbsp;awful.&lt;/li&gt;
&lt;li&gt;Eat lunch at Cœur d&amp;#8217;Alene lake,&amp;nbsp;pretty.&lt;/li&gt;
&lt;li&gt;See wildfires somewhere in&amp;nbsp;Montana.&lt;/li&gt;
&lt;li&gt;Reach the Fish Creek campground at Glacier &lt;span class="caps"&gt;NP&lt;/span&gt; around&amp;nbsp;6pm.&lt;/li&gt;
&lt;li&gt;Go swimming in Lake&amp;nbsp;Dogulas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;7&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Hike the Loop Trail up to Granite Park Chalet. Be deadly afraid of bears, yell &amp;#8220;Hallo&amp;#8221; all the&amp;nbsp;time.&lt;/li&gt;
&lt;li&gt;Pause at Granite Park, continue on to Logan&amp;nbsp;Pass.&lt;/li&gt;
&lt;li&gt;See some white mountain goats (?) and a bighorn sheep (yes, they&amp;#8217;re called that for a reason.). Be even more scared of bears.&amp;nbsp;:)&lt;/li&gt;
&lt;li&gt;Arrive at Logan Pass, take Glacier&amp;#8217;s cool new shuttle back to the&amp;nbsp;Loop.&lt;/li&gt;
&lt;li&gt;Very cool, but very exhausting hike. I was longing for a shower and convinced Frank to go find pay for showers at the West Glacier &lt;span class="caps"&gt;KOA&lt;/span&gt;. Also illegally used the hot tub there for a while. (So sue us.&amp;nbsp;;))&lt;/li&gt;
&lt;li&gt;Drop into bed nice and&amp;nbsp;early.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;8&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Drive the Going-to-the-Sun Road to the eastern exit of Glacier, shoot plenty of&amp;nbsp;pictures.&lt;/li&gt;
&lt;li&gt;Leave Glacier &lt;span class="caps"&gt;NP&lt;/span&gt; on &lt;span class="caps"&gt;US&lt;/span&gt;-89, follow that to the entrance of Yellowstone, seeing endless prairies, Great Falls, &lt;span class="caps"&gt;MT&lt;/span&gt; and Lewis &lt;span class="amp"&gt;&amp;amp;&lt;/span&gt; Clark National Forest, which itself is really&amp;nbsp;pretty.&lt;/li&gt;
&lt;li&gt;Arrive at Yellowstone by nightfall, only to be told that all park campgrounds are&amp;nbsp;full.&lt;/li&gt;
&lt;li&gt;There&amp;#8217;s a commercial campground with all the bells and whistles, and a government campground with the bare necessities (vault toilets) to choose from. Disagreement arises over which to pick. Frank gets his way, and we live comfortably with showers, running water, laundry, electricity at the site and &lt;em&gt;gasp&lt;/em&gt; wireless&amp;nbsp;internet.&lt;/li&gt;
&lt;li&gt;Make noodles in&amp;nbsp;celebration.&lt;/li&gt;
&lt;li&gt;Tease Frank for being a&amp;nbsp;capitalist.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;9&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;First day in Yellowstone. See Mammoth Hot Springs, find them stinky and unremarkable. While they might&amp;#8217;ve looked way awesome int the past, they don&amp;#8217;t so much when there&amp;#8217;s not much&amp;nbsp;water.&lt;/li&gt;
&lt;li&gt;See the Golden Gate, Sheepeater Cliff and Norris Geyser Basin. Weather turns to the usual National Park Weather in&amp;nbsp;Norris.&lt;/li&gt;
&lt;li&gt;Head across to Canyon Village, hiking down to every viewpoint at the (very cool) Grand Canyon of the Yellowstone. The last one was best, but also the most strenuous, involving stairs: Uncle Tom&amp;#8217;s&amp;nbsp;viewpoint.&lt;/li&gt;
&lt;li&gt;Ate dinner in the park, return to campsite via Tower in pitch darkness. Think about running over grizzlies in the&amp;nbsp;car.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;10&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Second day in&amp;nbsp;Yellowstone.&lt;/li&gt;
&lt;li&gt;Drove into the park via Tower and Canyon village, seeing Tower falls on the way in. A bit further down the road, there was the Mud Volcano area, and much to our surprise, there were bisons all over it. One crossed the walkway about 10 meters ahead of us. Lots of signs that say, &amp;#8220;more people get hurt by bisons than grizzlies.&amp;#8221; But bisons just look like big cows. They must be harmless.&amp;nbsp;:)&lt;/li&gt;
&lt;li&gt;Wildlife jam a little bit down the road, bison walking across one car ahead of&amp;nbsp;us.&lt;/li&gt;
&lt;li&gt;Lake Yellowstone&amp;#8217;s pretty, too. A crow (raven maybe?) came really close to us while we ate lunch and showed no fear of people at&amp;nbsp;all.&lt;/li&gt;
&lt;li&gt;Finally arrived at Old Faithful, saw it go &lt;em&gt;squirt&lt;/em&gt; (which is actually more impressive than it sounds here, definitely worth seeing&amp;#8212;even though that&amp;#8217;s where the crowds&amp;nbsp;are).&lt;/li&gt;
&lt;li&gt;Walked around the geyser basin at Old Faithful. More of the same, but still worth&amp;nbsp;seeing.&lt;/li&gt;
&lt;li&gt;Ate dinner somewhere at Firehole&amp;nbsp;creek&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;11&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Saw Midway Geyser Basin on the way out of Yellowstone to the south. That one is actually &lt;em&gt;not&lt;/em&gt; more of the same, it&amp;#8217;s really impressive, big and blue. And not&amp;nbsp;stinky.&lt;/li&gt;
&lt;li&gt;Drove through Grand Teton National Park. Went swimming in Jackson&amp;nbsp;Lake.&lt;/li&gt;
&lt;li&gt;Drove through Jackson, &lt;span class="caps"&gt;WY&lt;/span&gt;. Tries to look like an old western town, doesn&amp;#8217;t really fail miserably. Somewhat Touri-Nepp.&amp;nbsp;:)&lt;/li&gt;
&lt;li&gt;Drove through more of &lt;span class="caps"&gt;WY&lt;/span&gt; and &lt;span class="caps"&gt;ID&lt;/span&gt;. Saw Bear Lake by nightfall, ate a cold can of ravioli for&amp;nbsp;dinner.&lt;/li&gt;
&lt;li&gt;Reached &lt;span class="caps"&gt;UT&lt;/span&gt;, got gas, saw wildfires over Salt Lake City. Hit I-80 west towards&amp;nbsp;Tahoe.&lt;/li&gt;
&lt;li&gt;Played Battle for Wesnoth, Gianna Sisters and many other things while&amp;nbsp;driving.&lt;/li&gt;
&lt;li&gt;Found a parking lot, slept in the car at&amp;nbsp;4am.&lt;/li&gt;
&lt;li&gt;900 miles in a day. Dude.&amp;nbsp;Far.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;12&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Licked our wounds from the long overnight drive. Found the Tahoe State Recreation Area campground, way cool&amp;#8212;with hot (pay) showers and a cool&amp;nbsp;attendant.&lt;/li&gt;
&lt;li&gt;Drove around Lake&amp;nbsp;Tahoe.&lt;/li&gt;
&lt;li&gt;Saw the Stream Profile Chamber at the Taylor Creek visitor center just south of pretty Emerald&amp;nbsp;Bay.&lt;/li&gt;
&lt;li&gt;South Lake Tahoe&amp;#8217;s not so&amp;nbsp;pretty.&lt;/li&gt;
&lt;li&gt;And the casinos start right when you get to the &lt;span class="caps"&gt;NV&lt;/span&gt; state line&amp;#8212;in a town sensibly called Stateline, &lt;span class="caps"&gt;NV&lt;/span&gt;. Yay for inventive city naming.&amp;nbsp;:)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;13&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Mountain biked the Flume trail from Incline Village. Very cool. Very exhausting.&amp;nbsp;:D&lt;/li&gt;
&lt;li&gt;Ate ribs &lt;em&gt;and&lt;/em&gt; steak at a local restaurant for dinner. Actually, the ribs were too much. Took them home in a&amp;nbsp;box.&lt;/li&gt;
&lt;li&gt;Fell into bed&amp;nbsp;dead-tired.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;14&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Kayaked around for four hours on Lake Tahoe starting from Tahoe City. Covered quite a bit of distance, and ate lunch out on the lake&amp;#8212;ribs on the water taste twice as good as ribs on land, even if they&amp;#8217;re cold. Yum. :) Also got horribly sunburned, because I didn&amp;#8217;t put sunscreen on my legs. They&amp;#8217;re still peeling as of 8/29. Bad. (But still worth the&amp;nbsp;fun.)&lt;/li&gt;
&lt;li&gt;Drove to Mountain View and ate dinner with Hendrik at the Google&amp;nbsp;cafeteria.&lt;/li&gt;
&lt;li&gt;Hung out with Hendrik, played &lt;span class="caps"&gt;DDR&lt;/span&gt; and looked at our photos on his bedroom wall&amp;#8212;using his&amp;nbsp;projector.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;August&amp;nbsp;15&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Repacked the car in preparation of my flight out that&amp;nbsp;night.&lt;/li&gt;
&lt;li&gt;Breakfast again thanks to Google, Inc.&amp;nbsp;:)&lt;/li&gt;
&lt;li&gt;Drove south on 101 to Santa Clara to see a bunch of logos on building walls, including Intel, Yahoo,&amp;nbsp;Sun.&lt;/li&gt;
&lt;li&gt;Drove back north to see&amp;nbsp;Stanford.&lt;/li&gt;
&lt;li&gt;Continued towards the Golden Gate on I-280, drove to the Marin vista point and back, walked halfway across the bridge. Foggy, cold and windy. And very cool, yet again.&amp;nbsp;:)&lt;/li&gt;
&lt;li&gt;Chilled in Golden Gate&amp;nbsp;Park.&lt;/li&gt;
&lt;li&gt;Checked Frank into his&amp;nbsp;hotel.&lt;/li&gt;
&lt;li&gt;Met up with Hendrik, saw Coit Tower, drank coffee (except Frank, whose coffee got pooped into), ate pizza. Headed towards Twin Peaks, where the wind and the evening sun provided plenty of entertainment. Ate quesadillas for dinner at Taqueria&amp;nbsp;Can-Cun.&lt;/li&gt;
&lt;li&gt;Headed to &lt;span class="caps"&gt;SFO&lt;/span&gt;, and back home via &lt;span class="caps"&gt;ATL&lt;/span&gt; into &lt;span class="caps"&gt;BOS&lt;/span&gt;.&lt;/li&gt;
&lt;/ul&gt;</content><category term="driving"></category><category term="fun"></category><category term="northwest"></category><category term="nwtrip"></category><category term="digital-photography"></category><category term="life"></category></entry><entry><title>Back in Debian</title><link href="https://mathema.tician.de/back-in-debian" rel="alternate"></link><published>2007-07-12T23:28:49-05:00</published><updated>2007-07-12T23:28:49-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-07-12:/back-in-debian</id><summary type="html">&lt;p&gt;So after madman is currently &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=384397"&gt;orphaned&lt;/a&gt; in Debian and might &lt;a href="http://people.debian.org/~terpstra/message/20070702.155802.ad2e5b7d.en.html"&gt;get kicked out&lt;/a&gt; of the archive along with xmms kicking the bucket, I just noticed that one of my newer pieces of code made it &lt;em&gt;into&lt;/em&gt; Debian: &lt;a href="http://packages.debian.org/unstable/python/python-tagpy"&gt;tagpy&lt;/a&gt;! :) That&amp;#8217;s&amp;nbsp;awesome.&lt;/p&gt;
&lt;p&gt;To everybody who is holding their breath waiting for …&lt;/p&gt;</summary><content type="html">&lt;p&gt;So after madman is currently &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=384397"&gt;orphaned&lt;/a&gt; in Debian and might &lt;a href="http://people.debian.org/~terpstra/message/20070702.155802.ad2e5b7d.en.html"&gt;get kicked out&lt;/a&gt; of the archive along with xmms kicking the bucket, I just noticed that one of my newer pieces of code made it &lt;em&gt;into&lt;/em&gt; Debian: &lt;a href="http://packages.debian.org/unstable/python/python-tagpy"&gt;tagpy&lt;/a&gt;! :) That&amp;#8217;s&amp;nbsp;awesome.&lt;/p&gt;
&lt;p&gt;To everybody who is holding their breath waiting for a madman update: I still use madman for my own music managing needs, as it still (surprise) is exactly what I want in a music manager. But I simply don&amp;#8217;t have enough time for serious maintenance. I might switch it to audacious in the near future to keep it working for me, but I&amp;#8217;m not promising extensive new&amp;nbsp;features&amp;#8230;&lt;/p&gt;</content><category term="debian"></category><category term="madman"></category><category term="my-software"></category><category term="tagpy"></category></entry><entry><title>Trust</title><link href="https://mathema.tician.de/trust" rel="alternate"></link><published>2007-03-11T14:59:49-05:00</published><updated>2007-03-11T14:59:49-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-03-11:/trust</id><summary type="html">&lt;p&gt;Watch&amp;nbsp;this:&lt;/p&gt;
&lt;p&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/UnXU7z2_6Jg"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/UnXU7z2_6Jg" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;You won&amp;#8217;t regret it. :) (&lt;span class="caps"&gt;PS&lt;/span&gt;: Yes, I know it was made by a bunch of Germans, and yes, they misspelled &amp;#8220;belief&amp;#8221;, but that doesn&amp;#8217;t kill it, in my&amp;nbsp;opinion.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Embarassing Update:&lt;/strong&gt; I figured out how to embed youtube videos.&amp;nbsp;:)&lt;/p&gt;</summary><content type="html">&lt;p&gt;Watch&amp;nbsp;this:&lt;/p&gt;
&lt;p&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/UnXU7z2_6Jg"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/UnXU7z2_6Jg" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;You won&amp;#8217;t regret it. :) (&lt;span class="caps"&gt;PS&lt;/span&gt;: Yes, I know it was made by a bunch of Germans, and yes, they misspelled &amp;#8220;belief&amp;#8221;, but that doesn&amp;#8217;t kill it, in my&amp;nbsp;opinion.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Embarassing Update:&lt;/strong&gt; I figured out how to embed youtube videos.&amp;nbsp;:)&lt;/p&gt;</content><category term="computing"></category><category term="tcpa"></category><category term="trust"></category><category term="mindless-link-propagation"></category><category term="technology"></category></entry><entry><title>New release 0.91 of lircd-xpc</title><link href="https://mathema.tician.de/new-release-0-91-of-lircd-xpc" rel="alternate"></link><published>2007-02-26T19:35:34-06:00</published><updated>2007-02-26T19:35:34-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2007-02-26:/new-release-0-91-of-lircd-xpc</id><summary type="html">&lt;p&gt;I have just uploaded version 0.91 of lircd-xpc to the site. This should make the daemon a bit more resilient against a state where one endpoint thread crashes, and the other lives on, resulting in an unresponsive daemon. If you&amp;#8217;ve encountered this, you might want to update. This …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I have just uploaded version 0.91 of lircd-xpc to the site. This should make the daemon a bit more resilient against a state where one endpoint thread crashes, and the other lives on, resulting in an unresponsive daemon. If you&amp;#8217;ve encountered this, you might want to update. This requires the latest libhid (and Python wrappers) including a patch that I&amp;#8217;ve just sent to the list. That patch should make it into libhid svn pretty soon. Until then, you may grab my custom libhid Debian packages from the download&amp;nbsp;directory.&lt;/p&gt;</content><category term="robustness"></category><category term="threads"></category><category term="hardware"></category><category term="python"></category><category term="xpc-remote"></category></entry><entry><title>Merry Christmas</title><link href="https://mathema.tician.de/merry-christmas" rel="alternate"></link><published>2006-12-26T21:33:43-06:00</published><updated>2006-12-26T21:33:43-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-12-26:/merry-christmas</id><summary type="html">&lt;p&gt;Dearest readership! It is with great pleasure that on this second day of christmas I offer you my best wishes for the feast of love&amp;#8212;with this picture that I have, in true christmas spirit, lifted from &lt;a href="http://alobbs.com/modules.php?set_albumName=albun26&amp;amp;id=belen&amp;amp;op=modload&amp;amp;file=index&amp;amp;name=gallery&amp;amp;include=view_photo.php"&gt;elsewhere&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="bethlehem-400.jpeg" src="/images/bethlehem-400.jpeg" /&gt;&lt;/p&gt;
&lt;p&gt;Merry Christmas to all anyway&amp;#8230;&amp;nbsp;:)&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/images/bethlehem-400.jpeg"&gt;bethlehem-400.jpeg&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Dearest readership! It is with great pleasure that on this second day of christmas I offer you my best wishes for the feast of love&amp;#8212;with this picture that I have, in true christmas spirit, lifted from &lt;a href="http://alobbs.com/modules.php?set_albumName=albun26&amp;amp;id=belen&amp;amp;op=modload&amp;amp;file=index&amp;amp;name=gallery&amp;amp;include=view_photo.php"&gt;elsewhere&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="bethlehem-400.jpeg" src="/images/bethlehem-400.jpeg" /&gt;&lt;/p&gt;
&lt;p&gt;Merry Christmas to all anyway&amp;#8230;&amp;nbsp;:)&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/images/bethlehem-400.jpeg"&gt;bethlehem-400.jpeg&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="bethlehem"></category><category term="christmas"></category><category term="middle east"></category><category term="life"></category></entry><entry><title>Why does the Web have a Problem?</title><link href="https://mathema.tician.de/why-does-the-web-have-a-problem" rel="alternate"></link><published>2006-11-19T12:28:21-06:00</published><updated>2006-11-19T12:28:21-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-11-19:/why-does-the-web-have-a-problem</id><summary type="html">&lt;p&gt;Because when you&amp;#8217;re looking for &lt;a href="http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods"&gt;Runge-Kutta methods&lt;/a&gt;, you find &lt;a href="http://myphysicslab.com/"&gt;neat stuff&lt;/a&gt; and end up playing with it. That&amp;#8217;s&amp;nbsp;why.&lt;/p&gt;
&lt;p&gt;(How&amp;#8217;s that for a first journal post after fifteen years, huh?)&amp;nbsp;:)&lt;/p&gt;</summary><content type="html">&lt;p&gt;Because when you&amp;#8217;re looking for &lt;a href="http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods"&gt;Runge-Kutta methods&lt;/a&gt;, you find &lt;a href="http://myphysicslab.com/"&gt;neat stuff&lt;/a&gt; and end up playing with it. That&amp;#8217;s&amp;nbsp;why.&lt;/p&gt;
&lt;p&gt;(How&amp;#8217;s that for a first journal post after fifteen years, huh?)&amp;nbsp;:)&lt;/p&gt;</content><category term="ODE"></category><category term="Runge-Kutta"></category><category term="grad-school"></category><category term="math"></category><category term="mindless-link-propagation"></category><category term="silly-stuff"></category></entry><entry><title>GCC 4.1 breaks Pylinear</title><link href="https://mathema.tician.de/gcc-4-1-breaks-pylinear" rel="alternate"></link><published>2006-07-01T22:49:17-05:00</published><updated>2006-07-01T22:49:17-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-07-01:/gcc-4-1-breaks-pylinear</id><summary type="html">&lt;p&gt;If you get errors&amp;nbsp;like&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;multiple definition of 
`_ZN5boost7numeric5ublas21scalar_divides_assignIT_T0_E8computedE'
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;when compiling PyLinear, it is because of this &lt;a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28016"&gt;&lt;span class="caps"&gt;GCC&lt;/span&gt; bug&lt;/a&gt;, and it&amp;#8217;s quite likely that you are using &lt;span class="caps"&gt;GCC&lt;/span&gt; 4.1. Supposedly, this will be fixed in &lt;span class="caps"&gt;GCC&lt;/span&gt; 4.2. This bug will likely also affect other &lt;span class="caps"&gt;UBLAS&lt;/span&gt;&amp;nbsp;applications.&lt;/p&gt;
&lt;p&gt;The …&lt;/p&gt;</summary><content type="html">&lt;p&gt;If you get errors&amp;nbsp;like&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;multiple definition of 
`_ZN5boost7numeric5ublas21scalar_divides_assignIT_T0_E8computedE'
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;when compiling PyLinear, it is because of this &lt;a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28016"&gt;&lt;span class="caps"&gt;GCC&lt;/span&gt; bug&lt;/a&gt;, and it&amp;#8217;s quite likely that you are using &lt;span class="caps"&gt;GCC&lt;/span&gt; 4.1. Supposedly, this will be fixed in &lt;span class="caps"&gt;GCC&lt;/span&gt; 4.2. This bug will likely also affect other &lt;span class="caps"&gt;UBLAS&lt;/span&gt;&amp;nbsp;applications.&lt;/p&gt;
&lt;p&gt;The suggested workaround is to use &lt;span class="caps"&gt;GCC&lt;/span&gt;&amp;nbsp;4.0.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;UPDATE&lt;/span&gt;&lt;/strong&gt;: Everything seems fine in at least Debian&amp;#8217;s gcc package of version&amp;nbsp;4.1.1-11.&lt;/p&gt;</content><category term="breakage"></category><category term="bug"></category><category term="miscompile"></category><category term="symbol"></category><category term="workaround"></category><category term="pylinear"></category></entry><entry><title>Comcast, DHCP and MTU</title><link href="https://mathema.tician.de/comcast-dhcp-and-mtu" rel="alternate"></link><published>2006-06-26T23:50:33-05:00</published><updated>2006-06-26T23:50:33-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-06-26:/comcast-dhcp-and-mtu</id><summary type="html">&lt;p&gt;If you are a Comcast customer (particularly in Illinois) and your Voice-over-&lt;span class="caps"&gt;IP&lt;/span&gt; (or other large-&lt;span class="caps"&gt;UDP&lt;/span&gt;-packet-using) application does not work as it should, don&amp;#8217;t worry, it&amp;#8217;s their fault.&amp;nbsp;:P&lt;/p&gt;
&lt;p&gt;For some reason, they&amp;nbsp;include&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
OPTION:  26 (  2) Interface MTU             576
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;in the replies from their &lt;span class="caps"&gt;DHCP …&lt;/span&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;If you are a Comcast customer (particularly in Illinois) and your Voice-over-&lt;span class="caps"&gt;IP&lt;/span&gt; (or other large-&lt;span class="caps"&gt;UDP&lt;/span&gt;-packet-using) application does not work as it should, don&amp;#8217;t worry, it&amp;#8217;s their fault.&amp;nbsp;:P&lt;/p&gt;
&lt;p&gt;For some reason, they&amp;nbsp;include&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
OPTION:  26 (  2) Interface MTU             576
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;in the replies from their &lt;span class="caps"&gt;DHCP&lt;/span&gt; servers, which leads your computer to throw away large &lt;span class="caps"&gt;UDP&lt;/span&gt; packets (such as &lt;span class="caps"&gt;SIP&lt;/span&gt; &lt;span class="caps"&gt;INVITE&lt;/span&gt; replies). I don&amp;#8217;t know why they&amp;#8217;d do this since a) it breaks their customers&amp;#8217; applications (on purpose?!) and b) it puts more load on their&amp;nbsp;network.&lt;/p&gt;
&lt;p&gt;In any case, here&amp;#8217;s the antidote: In &lt;code&gt;dhclient.conf&lt;/code&gt;,&amp;nbsp;say&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# F!$#$ stupid comcast.
supersede interface-mtu 1500;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After that, everything should be working fine. If you&amp;#8217;re violating their terms of service in doing so, it&amp;#8217;s your own fault. I didn&amp;#8217;t tell you.&amp;nbsp;8)&lt;/p&gt;
&lt;p&gt;It only cost me like two hours of my life to find and fix this. Quote from the reply from the customer service&amp;nbsp;rep:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I&amp;#8217;m sorry, but we do not have any information as to why the &lt;span class="caps"&gt;MTU&lt;/span&gt; is configured for the level that it is. That decision is likely made by the Network Department and something we would not be able to obtain or&amp;nbsp;discuss.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I love you,&amp;nbsp;too.&lt;/p&gt;</content><category term="Chicago"></category><category term="ISP"></category><category term="stupidity"></category><category term="rants"></category><category term="technology"></category></entry><entry><title>Version 0.91 of TagPy is out</title><link href="https://mathema.tician.de/version-0-91-of-tagpy-is-out" rel="alternate"></link><published>2006-06-26T23:33:17-05:00</published><updated>2006-06-26T23:33:17-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-06-26:/version-0-91-of-tagpy-is-out</id><summary type="html">&lt;p&gt;I&amp;#8217;ve just released version 0.91 of TagPy. Besides some minor fixes, the biggest change is that you don&amp;#8217;t say any&amp;nbsp;more&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tag.setArtist("Fat Boy Slim")
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Instead, the (&lt;span class="caps"&gt;IMO&lt;/span&gt;) much more&amp;nbsp;pythonic&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tag.artist = "Fat Boy Slim"
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;is now where it&amp;#8217;s at. Reading these attributes (and …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;ve just released version 0.91 of TagPy. Besides some minor fixes, the biggest change is that you don&amp;#8217;t say any&amp;nbsp;more&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tag.setArtist("Fat Boy Slim")
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Instead, the (&lt;span class="caps"&gt;IMO&lt;/span&gt;) much more&amp;nbsp;pythonic&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tag.artist = "Fat Boy Slim"
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;is now where it&amp;#8217;s at. Reading these attributes (and just these) is also changed from &lt;code&gt;tag.artist()&lt;/code&gt; to &lt;code&gt;tag.artist&lt;/code&gt;. I repeat, this only&amp;nbsp;affects&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Tag.title&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Tag.artist&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Tag.album&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Tag.genre&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Tag.year&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Tag.track&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AudioProperties.length&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AudioProperties.bitrate&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AudioProperties.sampleRate&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AudioProperties.channels&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since these are so frequent, I saw a compelling reason to change them. Everything else in the &lt;span class="caps"&gt;API&lt;/span&gt; will remain as close as possible to TagLib&amp;#8217;s C++&amp;nbsp;conventions.&lt;/p&gt;
&lt;p&gt;Sorry for the source-incompatible change, it will not happen&amp;nbsp;again.&lt;/p&gt;
&lt;p&gt;Enjoy.&lt;/p&gt;</content><category term="Pythonicity"></category><category term="tagpy"></category></entry><entry><title>Clockwork now shows statistics on the current day</title><link href="https://mathema.tician.de/clockwork-now-shows-statistics-on-the-current-day" rel="alternate"></link><published>2006-06-23T00:57:49-05:00</published><updated>2006-06-23T00:57:49-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-06-23:/clockwork-now-shows-statistics-on-the-current-day</id><summary type="html">&lt;p&gt;I&amp;#8217;ve made a minor update to clockwork that now allows you to immediately see how much longer the &lt;em&gt;current&lt;/em&gt; workday is supposed to last, from the output of &lt;code&gt;clockwork howlong&lt;/code&gt;. This update came out of a particular need that I had at my new summer job at the &lt;a href="http://www.mcs.anl.gov"&gt;Math …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;ve made a minor update to clockwork that now allows you to immediately see how much longer the &lt;em&gt;current&lt;/em&gt; workday is supposed to last, from the output of &lt;code&gt;clockwork howlong&lt;/code&gt;. This update came out of a particular need that I had at my new summer job at the &lt;a href="http://www.mcs.anl.gov"&gt;Math and Computer Science divsion&lt;/a&gt; at &lt;a href="http://www.anl.gov"&gt;Argonne National Labs&lt;/a&gt;. I&amp;#8217;ve also released Version 1.1, with that (and another minor)&amp;nbsp;change.&lt;/p&gt;</content><category term="Argonne"></category><category term="job"></category><category term="work-life balance"></category><category term="clockwork"></category></entry><entry><title>Rattle back, Rattleback!</title><link href="https://mathema.tician.de/rattle-back-rattleback" rel="alternate"></link><published>2006-05-13T14:20:46-05:00</published><updated>2006-05-13T14:20:46-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-05-13:/rattle-back-rattleback</id><summary type="html">&lt;p&gt;As part of the course requirements for the mechanics class I took, a team of which I was a part designed a &lt;a href="http://demo.physics.uiuc.edu/LectDemo/scripts/demo_descript.idc?DemoID=1148"&gt;Rattleback&lt;/a&gt;. A rattleback is a top that appears to have a preferred direction of rotation, i.e. if you start spinning it the wrong way, it (unintuitively) will …&lt;/p&gt;</summary><content type="html">&lt;p&gt;As part of the course requirements for the mechanics class I took, a team of which I was a part designed a &lt;a href="http://demo.physics.uiuc.edu/LectDemo/scripts/demo_descript.idc?DemoID=1148"&gt;Rattleback&lt;/a&gt;. A rattleback is a top that appears to have a preferred direction of rotation, i.e. if you start spinning it the wrong way, it (unintuitively) will turn around and spin &amp;#8220;the right way&amp;#8221;. There&amp;#8217;s quite a bunch more to know about the physics [1] of it, if you care. It might also be an interesting dynamical system to study, as little is known about it past what can be found by numerical simulations. Speaking of numerical simulations, if you are a student of &lt;span class="caps"&gt;EN137&lt;/span&gt; after me and would like to take a peek at our simulation code (which was written in &lt;a href="http://www.octave.org"&gt;Octave&lt;/a&gt;, with a bit of &lt;a href="/software/pylinear"&gt;PyLinear&lt;/a&gt; sprinkled in), be my &lt;a href="http://git.tiker.net/rattleback.git"&gt;guest&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In any case, you may view the &lt;a href="/dl/rattleback.avi"&gt;Rattle back, Rattleback!&lt;/a&gt; of our rattleback to see for&amp;nbsp;yourself!&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;PS&lt;/span&gt;: I blatantly stole the title of this entry from one of the other teams.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;[1] &lt;em&gt;A. Garcia, M. Hubbard&lt;/em&gt; Spin Reversal of the Rattleback: Theory and Experiment Proceedings of the Royal Society of London. Series A, Mathematical and Physical Sciences, Vol. &lt;strong&gt;418&lt;/strong&gt;, No. 1854 (Jul. 8, 1988) , pp.&amp;nbsp;165-197&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dl/rattleback.avi"&gt;rattleback.avi&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="mechanics"></category><category term="project"></category><category term="rattleback"></category><category term="grad-school"></category><category term="life"></category><category term="linux"></category><category term="pylinear"></category><category term="technology"></category></entry><entry><title>Boost Bindings update for UFsparse</title><link href="https://mathema.tician.de/boost-bindings-update-for-ufsparse" rel="alternate"></link><published>2006-04-30T00:07:48-05:00</published><updated>2006-04-30T00:07:48-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-04-30:/boost-bindings-update-for-ufsparse</id><summary type="html">&lt;p&gt;I have released a new version of the &lt;a href="/software/boost-bindings"&gt;Boost Bindings&lt;/a&gt; that fixes a problem with &lt;a href="http://www.cise.ufl.edu/research/sparse/umfpack/"&gt;&lt;span class="caps"&gt;UMFPACK&lt;/span&gt;&lt;/a&gt; now typically being packaged as part of &lt;a href="http://www.cise.ufl.edu/research/sparse/UFsparse/"&gt;UFsparse&lt;/a&gt;. While I don&amp;#8217;t think that this kind of packaging is a smart idea, Debian has recently jumped on the bandwagon, and thus this fix is …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I have released a new version of the &lt;a href="/software/boost-bindings"&gt;Boost Bindings&lt;/a&gt; that fixes a problem with &lt;a href="http://www.cise.ufl.edu/research/sparse/umfpack/"&gt;&lt;span class="caps"&gt;UMFPACK&lt;/span&gt;&lt;/a&gt; now typically being packaged as part of &lt;a href="http://www.cise.ufl.edu/research/sparse/UFsparse/"&gt;UFsparse&lt;/a&gt;. While I don&amp;#8217;t think that this kind of packaging is a smart idea, Debian has recently jumped on the bandwagon, and thus this fix is necessary. The only change is&amp;nbsp;from&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#include &amp;lt;umfpack/umfpack.h&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#include &amp;lt;umfpack.h&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to let the code find an &lt;code&gt;umfpack.h&lt;/code&gt; that is now under a directory called &lt;code&gt;ufsparse&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This version diverges from boost-bindings &lt;span class="caps"&gt;CVS&lt;/span&gt;, by this one&amp;nbsp;change.&lt;/p&gt;</content><category term="boost-numeric-bindings"></category></entry><entry><title>Think of those out there in the cold.</title><link href="https://mathema.tician.de/think-of-those-out-there-in-the-cold" rel="alternate"></link><published>2006-03-26T17:34:53-06:00</published><updated>2006-03-26T17:34:53-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-03-26:/think-of-those-out-there-in-the-cold</id><summary type="html">&lt;p&gt;While I don&amp;#8217;t typically propagate knitting or crochet content, this one was too good to pass up.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;So, if you have a pretty pitiful-looking tree outside your window, why don&amp;#8217;t you do it a favor,&amp;nbsp;and&amp;#8230;&lt;/p&gt;
&lt;p&gt;&amp;#8230;&lt;a href="http://erika.fisherking.org/?page_id=271"&gt;&lt;span class="caps"&gt;KNIT&lt;/span&gt; &lt;span class="caps"&gt;IT&lt;/span&gt; A &lt;span class="caps"&gt;SWEATER&lt;/span&gt;?&lt;/a&gt;&amp;nbsp;:D&lt;/p&gt;
&lt;p&gt;&lt;img alt="tree-sweater.jpeg" src="/images/tree-sweater.jpeg" /&gt;&lt;/p&gt;
&lt;p&gt;Oh, and Josie (whose friend Jay pointed …&lt;/p&gt;</summary><content type="html">&lt;p&gt;While I don&amp;#8217;t typically propagate knitting or crochet content, this one was too good to pass up.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;So, if you have a pretty pitiful-looking tree outside your window, why don&amp;#8217;t you do it a favor,&amp;nbsp;and&amp;#8230;&lt;/p&gt;
&lt;p&gt;&amp;#8230;&lt;a href="http://erika.fisherking.org/?page_id=271"&gt;&lt;span class="caps"&gt;KNIT&lt;/span&gt; &lt;span class="caps"&gt;IT&lt;/span&gt; A &lt;span class="caps"&gt;SWEATER&lt;/span&gt;?&lt;/a&gt;&amp;nbsp;:D&lt;/p&gt;
&lt;p&gt;&lt;img alt="tree-sweater.jpeg" src="/images/tree-sweater.jpeg" /&gt;&lt;/p&gt;
&lt;p&gt;Oh, and Josie (whose friend Jay pointed her to this story) will claim that she &lt;a href="http://gramma.tiker.net/node/169"&gt;posted first&lt;/a&gt;, which is &lt;s&gt;&lt;em&gt;untrue&lt;/em&gt;&lt;/s&gt; almost untrue. But my post has a picture. And more original commentary. So, there. Me = better.&amp;nbsp;:)&lt;/p&gt;</content><category term="mindless-link-propagation"></category></entry><entry><title>Audio player problems</title><link href="https://mathema.tician.de/audio-player-problems" rel="alternate"></link><published>2006-03-26T17:17:40-06:00</published><updated>2006-03-26T17:17:40-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-03-26:/audio-player-problems</id><summary type="html">&lt;p&gt;I have generally been very happy with my new Samsung &lt;span class="caps"&gt;YP&lt;/span&gt;-&lt;span class="caps"&gt;MT6Z&lt;/span&gt;, until I hit a snag today. From my tests, it seems that the total lengh of all folder names on the device cannot exceed a certain number, on the order of a kilobyte or so. That boils down …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I have generally been very happy with my new Samsung &lt;span class="caps"&gt;YP&lt;/span&gt;-&lt;span class="caps"&gt;MT6Z&lt;/span&gt;, until I hit a snag today. From my tests, it seems that the total lengh of all folder names on the device cannot exceed a certain number, on the order of a kilobyte or so. That boils down to, say, 50 decently-named folders. That&amp;#8217;s it. No more. Oddly enough, that kind of kills the advertised second use of the device as a means of data transport, seeing how it has more than enough storage, a gigabyte to be&amp;nbsp;precise.&lt;/p&gt;
&lt;p&gt;And the best part is, if you have more than that, the player will fail &lt;em&gt;unobviously&lt;/em&gt; and &lt;em&gt;gracelessly&lt;/em&gt;. It will simply display &lt;code&gt;NO FILE&lt;/code&gt; in the &lt;span class="caps"&gt;LCD&lt;/span&gt; and refuse to find or play all my audio files. There is no error message, alerting me to the fact that I might have hit an internal limitation. It also won&amp;#8217;t just ignore any extra folders. No, it insists on just ceasing to perform its main function altogether. Great work there, Samsung software&amp;nbsp;engineers.&lt;/p&gt;
&lt;p&gt;To top it off, I had the pleasure of speaking with Samsung Technical Support, who, after lenghty &amp;#8220;research&amp;#8221;, claimed that the device would not support more than &lt;em&gt;one&lt;/em&gt; folder. I got the sneaking suspicion that the guy didn&amp;#8217;t even know what I meant by &amp;#8220;folder&amp;#8221;, and terms such as &amp;#8220;nesting&amp;#8221; or &amp;#8220;hierarchy&amp;#8221; seemed to give him endless trouble.&amp;nbsp;Yay!&lt;/p&gt;
&lt;p&gt;Buyer, beware. It&amp;#8217;s a good device if you can live with this limitation, which I will have&amp;nbsp;to.&lt;/p&gt;</content><category term="hardware"></category><category term="life"></category></entry><entry><title>Rain Damage, Rain Damage, Go Away</title><link href="https://mathema.tician.de/rain-damage-rain-damage-go-away" rel="alternate"></link><published>2006-01-28T20:05:39-06:00</published><updated>2006-01-28T20:05:39-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-01-28:/rain-damage-rain-damage-go-away</id><summary type="html">&lt;p&gt;As I &lt;a href="/node/375"&gt;previously reported&lt;/a&gt;, my old laptop, aramis, got rained on and sustained water damage resulting in&amp;#8212;lo and behold&amp;#8212;not a dead computer. In fact, most of it was fine, it even booted into X, and all of its components were usable, it would just always crash after around …&lt;/p&gt;</summary><content type="html">&lt;p&gt;As I &lt;a href="/node/375"&gt;previously reported&lt;/a&gt;, my old laptop, aramis, got rained on and sustained water damage resulting in&amp;#8212;lo and behold&amp;#8212;not a dead computer. In fact, most of it was fine, it even booted into X, and all of its components were usable, it would just always crash after around 15 minutes. That led me to believe that maybe, by switching out the mainboard, I might obtain a usable machine&amp;nbsp;again.&lt;/p&gt;
&lt;p&gt;Putting that plan into practice, I downloaded &lt;span class="caps"&gt;IBM&lt;/span&gt;&amp;#8217;s &lt;a href="ftp://ftp.software.ibm.com/pc/pccbbs/mobiles_pdf/23p0896.pdf"&gt;maintenance manual&lt;/a&gt; for the laptop, which, for the record, was an &lt;a href="http://thinkwiki.org/wiki/Category:A21m"&gt;&lt;span class="caps"&gt;IBM&lt;/span&gt; Thinkpad A-Series A21m&lt;/a&gt;, and looked up the &amp;#8220;&lt;span class="caps"&gt;FRU&lt;/span&gt;&amp;#8221; (Factory Replacible Unit) number of the mainboard, which, in my case, was supposed to be 08K3264. These boards were hardly to be found on ebay and were hideously expensive, whereas a good bunch of cheaper boards labeled with &lt;span class="caps"&gt;FRU&lt;/span&gt; 12P3156, which suppposedly are compatible with ThinkPad A20 and A21 models, were readily available. I was unsure, but decided to take the risk&amp;#8212;given that the 12P3156 board cost only&amp;nbsp;$44.&lt;/p&gt;
&lt;p&gt;After two nights of rather nerve-wrecking work on the laptop, I can announce that it is functioning again. :D The difference between the two boards types seems to be only that the one I had (which turned out to be &lt;span class="caps"&gt;FRU&lt;/span&gt; 12P3288) had a header for &lt;span class="caps"&gt;TV&lt;/span&gt;-Out, whereas the new one didn&amp;#8217;t. Big deal. I can use my 800 MHz &lt;span class="caps"&gt;CPU&lt;/span&gt; on it, and as far as I can tell, it is being run at full&amp;nbsp;speed.&lt;/p&gt;
&lt;p&gt;It turns out that my old board had some visible corrosion damage that probably caused the trouble I described above. If I had taken my laptop apart right after the water came in, it might have dried and thus been rescued right away. May this be a lesson to whoever has to do this next.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;Summary: When buying laptops, buy &lt;span class="caps"&gt;IBM&lt;/span&gt;!&amp;nbsp;Why?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sturdily&amp;nbsp;built&lt;/li&gt;
&lt;li&gt;Maintenance information&amp;nbsp;available&lt;/li&gt;
&lt;li&gt;Existence of a sizable components &lt;a href="http://ebay.com"&gt;aftermarket&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That said, I&amp;#8217;m not sure Lenovo is going to do as well, but I hope&amp;nbsp;so.&lt;/p&gt;</content><category term="digital-photography"></category><category term="technology"></category></entry><entry><title>Taking notes like Germans do</title><link href="https://mathema.tician.de/taking-notes-like-germans-do" rel="alternate"></link><published>2006-01-24T22:09:41-06:00</published><updated>2006-01-24T22:09:41-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-01-24:/taking-notes-like-germans-do</id><summary type="html">&lt;p&gt;Since the semester at Brown starts back tomorrow, I was a little concerned about my total lack of writing material. I still have my non-standard ruled paper from last year, but since a) it&amp;#8217;s not a standard size, not even &lt;span class="caps"&gt;US&lt;/span&gt;-Letter, much less A4 and b) I don …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Since the semester at Brown starts back tomorrow, I was a little concerned about my total lack of writing material. I still have my non-standard ruled paper from last year, but since a) it&amp;#8217;s not a standard size, not even &lt;span class="caps"&gt;US&lt;/span&gt;-Letter, much less A4 and b) I don&amp;#8217;t like ruled paper, I figured, hey, I&amp;#8217;m going to take notes in style like I used&amp;nbsp;to.&lt;/p&gt;
&lt;p&gt;Tadaa: Good old German &lt;a href="/dl/graphpaper.pdf"&gt;Taking notes like Germans do&lt;/a&gt;, letter size, 5mm squares on&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;Courtesy of &lt;a href="http://incompetech.com/beta/plainGraphPaper/"&gt;Incompetech&lt;/a&gt;.&amp;nbsp;:)&lt;/p&gt;</content><category term="university"></category><category term="mindless-link-propagation"></category><category term="technology"></category></entry><entry><title>Sports &amp; The obligatory Aftermath</title><link href="https://mathema.tician.de/sports-the-obligatory-aftermath" rel="alternate"></link><published>2006-01-20T16:29:43-06:00</published><updated>2006-01-20T16:29:43-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-01-20:/sports-the-obligatory-aftermath</id><summary type="html">&lt;p&gt;I spent today doing something very laudable: :yes: I went on an extended &lt;a href="http://tinyurl.com/cc32e"&gt;bike ride&lt;/a&gt;. Of course, riding your bike is not half as fun if you can&amp;#8217;t waste some time letting your computer process the greatness of what was achieved. Fortunately, the &lt;a href="http://gmap-pedometer.com"&gt;Google Maps Pedometer&lt;/a&gt; comes to the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I spent today doing something very laudable: :yes: I went on an extended &lt;a href="http://tinyurl.com/cc32e"&gt;bike ride&lt;/a&gt;. Of course, riding your bike is not half as fun if you can&amp;#8217;t waste some time letting your computer process the greatness of what was achieved. Fortunately, the &lt;a href="http://gmap-pedometer.com"&gt;Google Maps Pedometer&lt;/a&gt; comes to the rescue! If you follow that link, you can even see a height profile of my ride, and you can witness the fact that I fulfilled my private goal of riding into Massachusetts. Not that I knew that I did, since there were no big &amp;#8220;Welcome to Massachusetts&amp;#8221; signs around. It was just when my legs started hurting badly enough that I thought the return trip might not be fun if I didn&amp;#8217;t turn around&amp;nbsp;now.&lt;/p&gt;
&lt;p&gt;Well. Let&amp;#8217;s think about that for a second, and make it into a general law of&amp;nbsp;cycling: &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Don&amp;#8217;t wait till your legs hurt to turn&amp;nbsp;around!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Otherwise, the return trip might hurt. Badly. Not that this reflects my experience today or something. (Owww&amp;#8230; my&amp;nbsp;legs&amp;#8230;)&lt;/p&gt;
&lt;p&gt;(As an added bonus, and since the GMaps-pedometer is so fun, I also put in my &lt;a href="http://tinyurl.com/ct68k"&gt;way to school&lt;/a&gt;.)&lt;/p&gt;</content><category term="life"></category><category term="mindless-link-propagation"></category><category term="sports"></category><category term="technology"></category></entry><entry><title>2005 in Review</title><link href="https://mathema.tician.de/2005-in-review" rel="alternate"></link><published>2006-01-09T07:49:47-06:00</published><updated>2006-01-09T07:49:47-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-01-09:/2005-in-review</id><summary type="html">&lt;p&gt;Since it&amp;#8217;s been relatively (&lt;em&gt;cough&lt;/em&gt;) quiet around here, despite promises to the contrary, I&amp;#8217;ll add a summary of my highlights of 2005, and hope that that will shed a bit of light on the latter half of the year, where many of you might not have heard as …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Since it&amp;#8217;s been relatively (&lt;em&gt;cough&lt;/em&gt;) quiet around here, despite promises to the contrary, I&amp;#8217;ll add a summary of my highlights of 2005, and hope that that will shed a bit of light on the latter half of the year, where many of you might not have heard as much as promised from&amp;nbsp;me.&lt;/p&gt;
&lt;h2&gt;January&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;After my botched oral exam, I got my Diplom in Technomathematik from Uni&amp;nbsp;Karlsruhe.&lt;/li&gt;
&lt;li&gt;Went to &lt;a href="/node/61"&gt;Amsterdam&lt;/a&gt; with Josie for some fun. Crappier hostels along the year still make me yearn for the Flying Pig.&amp;nbsp;:)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;February&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Started work at Prof. DÃƒÂ¶rfler&amp;#8217;s institute, teaching and generally having fun with Jan, Kim and all the&amp;nbsp;others.&lt;/li&gt;
&lt;li&gt;Finished the month with a week-long snowboard vacation in Gleiming with Robert, Kiki, Frank and Lippe. Des war&amp;nbsp;cool.&lt;/li&gt;
&lt;li&gt;Got admitted to Brown Graduate&amp;nbsp;School.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;March&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Work in Karlsruhe is in full force before the semester has begun, with bits of research and administrative&amp;nbsp;software.&lt;/li&gt;
&lt;li&gt;At the end of the month, I fly out to New York, then Providence, then &lt;span class="caps"&gt;DC&lt;/span&gt; and finally Raleigh to take a brief look at the graduate school from which I&amp;nbsp;had &lt;/li&gt;
&lt;/ul&gt;</content><category term="grad-school"></category><category term="life"></category></entry><entry><title>Initial fixes</title><link href="https://mathema.tician.de/initial-fixes" rel="alternate"></link><published>2006-01-08T12:56:40-06:00</published><updated>2006-01-08T12:56:40-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2006-01-08:/initial-fixes</id><summary type="html">&lt;p&gt;I have just released Version 0.90.1 of TagPy to fix a few build hiccups that were reported. Keep up the good work! Additionally, and as a cool benefit of me using Drupal for these pages, you can subscribe to the TagPy &lt;a href="/taxonomy/term/30/0/feed"&gt;&lt;span class="caps"&gt;RSS&lt;/span&gt; feed&lt;/a&gt;.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;And of course you may …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I have just released Version 0.90.1 of TagPy to fix a few build hiccups that were reported. Keep up the good work! Additionally, and as a cool benefit of me using Drupal for these pages, you can subscribe to the TagPy &lt;a href="/taxonomy/term/30/0/feed"&gt;&lt;span class="caps"&gt;RSS&lt;/span&gt; feed&lt;/a&gt;.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;And of course you may &lt;em&gt;download&lt;/em&gt; the new version from &lt;a href="/software/tagpy"&gt;the TagPy home page&lt;/a&gt;.&lt;/p&gt;</content><category term="python"></category><category term="tagpy"></category></entry><entry><title>A Stapler for PDFs</title><link href="https://mathema.tician.de/a-stapler-for-pdfs" rel="alternate"></link><published>2005-12-11T20:39:15-06:00</published><updated>2005-12-11T20:39:15-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-12-11:/a-stapler-for-pdfs</id><summary type="html">&lt;p&gt;&lt;a href="http://www.accesspdf.com/pdftk/"&gt;pdftk&lt;/a&gt; is a piece of &lt;span class="caps"&gt;GPL&lt;/span&gt; software that I&amp;#8217;ve been looking for for a long time: It can split, join and otherwise mangle &lt;span class="caps"&gt;PDF&lt;/span&gt; files, which in my specific case helped me submit one of my (many) take-home final exams as a single file instead of three separate ones …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://www.accesspdf.com/pdftk/"&gt;pdftk&lt;/a&gt; is a piece of &lt;span class="caps"&gt;GPL&lt;/span&gt; software that I&amp;#8217;ve been looking for for a long time: It can split, join and otherwise mangle &lt;span class="caps"&gt;PDF&lt;/span&gt; files, which in my specific case helped me submit one of my (many) take-home final exams as a single file instead of three separate ones, reducing the margin for error on the professor&amp;#8217;s part.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;Oh, and of course, Debian&amp;#8217;s already been&amp;nbsp;there:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;aptitude install pdftk
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:)&lt;/p&gt;</content><category term="technology"></category></entry><entry><title>madman added to FreeBSD ports</title><link href="https://mathema.tician.de/madman-added-to-freebsd-ports" rel="alternate"></link><published>2005-10-24T00:18:57-05:00</published><updated>2005-10-24T00:18:57-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-10-24:/madman-added-to-freebsd-ports</id><summary type="html">&lt;p&gt;Daniel Roethlisberger wrote in to note that madman is now in the FreeBSD &lt;a href="http://www.freshports.org/audio/madman"&gt;ports&lt;/a&gt; collection, which should make it a lot easier for you &lt;span class="caps"&gt;BSD&lt;/span&gt;&amp;#8217;ers out there to try madman. A corresponding note has also been added to the download&amp;nbsp;page.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Daniel Roethlisberger wrote in to note that madman is now in the FreeBSD &lt;a href="http://www.freshports.org/audio/madman"&gt;ports&lt;/a&gt; collection, which should make it a lot easier for you &lt;span class="caps"&gt;BSD&lt;/span&gt;&amp;#8217;ers out there to try madman. A corresponding note has also been added to the download&amp;nbsp;page.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>The beagle has landed</title><link href="https://mathema.tician.de/the-beagle-has-landed" rel="alternate"></link><published>2005-08-22T15:16:56-05:00</published><updated>2005-08-22T15:16:56-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-08-22:/the-beagle-has-landed</id><summary type="html">&lt;p&gt;We made it! Since last Friday (pretty late) night, we&amp;#8217;re officially in Rhode Island. For the time being, we&amp;#8217;re staying at &lt;a href="http://www.ginny-b.com"&gt;Ginny-B campground&lt;/a&gt;, and they are a &lt;em&gt;pretty decent&lt;/em&gt; place. I mean, they didn&amp;#8217;t prevent the rain yesterday, but you don&amp;#8217;t get that at many campsites …&lt;/p&gt;</summary><content type="html">&lt;p&gt;We made it! Since last Friday (pretty late) night, we&amp;#8217;re officially in Rhode Island. For the time being, we&amp;#8217;re staying at &lt;a href="http://www.ginny-b.com"&gt;Ginny-B campground&lt;/a&gt;, and they are a &lt;em&gt;pretty decent&lt;/em&gt; place. I mean, they didn&amp;#8217;t prevent the rain yesterday, but you don&amp;#8217;t get that at many campsites&amp;nbsp;anyway.&lt;/p&gt;
&lt;p&gt;Even better, we&amp;#8217;re looking at two apartments that we might actually want to move in to. We just need to figure out which, since, how else could it be, Josie likes one, and I like the other.&amp;nbsp;8)&lt;/p&gt;
&lt;p&gt;More later. Wish us luck. Things are great.&amp;nbsp;:)&lt;/p&gt;</content><category term="grad-school"></category><category term="life"></category></entry><entry><title>Selling my stuff</title><link href="https://mathema.tician.de/selling-my-stuff" rel="alternate"></link><published>2005-08-12T11:51:27-05:00</published><updated>2005-08-12T11:51:27-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-08-12:/selling-my-stuff</id><summary type="html">&lt;p&gt;While I&amp;#8217;m in the process of packing up all my stuff, why don&amp;#8217;t you help me out by &lt;a href="http://tiker.net/sale"&gt;buying&lt;/a&gt; some? I&amp;#8217;d, you know, really appreciate that. And, knowing that it was mine, you know that it&amp;#8217;s some quality junk. ;) And I &lt;em&gt;do&lt;/em&gt; take&amp;nbsp;Paypal.&lt;/p&gt;
&lt;p&gt;You can …&lt;/p&gt;</summary><content type="html">&lt;p&gt;While I&amp;#8217;m in the process of packing up all my stuff, why don&amp;#8217;t you help me out by &lt;a href="http://tiker.net/sale"&gt;buying&lt;/a&gt; some? I&amp;#8217;d, you know, really appreciate that. And, knowing that it was mine, you know that it&amp;#8217;s some quality junk. ;) And I &lt;em&gt;do&lt;/em&gt; take&amp;nbsp;Paypal.&lt;/p&gt;
&lt;p&gt;You can also find us at the flea market in Singen tomorrow (i.e. Saturday). Come and give us your money. Oh, and take our stuff,&amp;nbsp;too.&lt;/p&gt;</content><category term="life"></category><category term="mindless-link-propagation"></category></entry><entry><title>Linux on an IBM/Lenovo Thinkpad R52</title><link href="https://mathema.tician.de/linux-on-an-ibm-lenovo-thinkpad-r52" rel="alternate"></link><published>2005-08-07T09:31:52-05:00</published><updated>2005-08-07T09:31:52-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-08-07:/linux-on-an-ibm-lenovo-thinkpad-r52</id><summary type="html">&lt;p&gt;This post summarizes my experience of making the hardware in my shiny new &lt;span class="caps"&gt;IBM&lt;/span&gt; ThinkPad R52 work with&amp;nbsp;Linux.&lt;/p&gt;
&lt;p&gt;I initially tried Debian on this computer, but later on headed over to Ubuntu with a home-built kernel for a bunch of reasons on which I won&amp;#8217;t elaborate here. &lt;strong&gt;Update …&lt;/strong&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;This post summarizes my experience of making the hardware in my shiny new &lt;span class="caps"&gt;IBM&lt;/span&gt; ThinkPad R52 work with&amp;nbsp;Linux.&lt;/p&gt;
&lt;p&gt;I initially tried Debian on this computer, but later on headed over to Ubuntu with a home-built kernel for a bunch of reasons on which I won&amp;#8217;t elaborate here. &lt;strong&gt;Update:&lt;/strong&gt; I&amp;#8217;ve been back on Debian for a good while&amp;nbsp;now.&lt;/p&gt;
&lt;p&gt;The following remarks relate to Linux version 2.6.12.3, if not otherwise&amp;nbsp;specified.&lt;/p&gt;
&lt;h2&gt;Serial &lt;span class="caps"&gt;ATA&lt;/span&gt;: Intel &lt;span class="caps"&gt;ICH6&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;The Debian Sarge installer, using the &amp;#8220;kernel26&amp;#8221; option, fails to recognize the hard disk. The default 2.4 kernel works&amp;nbsp;ok.&lt;/p&gt;
&lt;p&gt;After building my own kernel, using the &lt;code&gt;Intel PIIX/ICH SATA support (SCSI_ATA_PIIX)&lt;/code&gt; driver worked fine for the hard disk, but the &lt;span class="caps"&gt;PATA&lt;/span&gt; &lt;span class="caps"&gt;DVD&lt;/span&gt;/&lt;span class="caps"&gt;CDRW&lt;/span&gt;/&lt;span class="caps"&gt;CDROM&lt;/span&gt; was not found. The &lt;a href="http://meltin.net/hacks/linux/t43.html"&gt;first attempt&lt;/a&gt; was to compile support for &lt;span class="caps"&gt;PATA&lt;/span&gt; into the kernel as well (&lt;em&gt;not&lt;/em&gt; just as a module), as the driver&amp;#8217;s help&amp;nbsp;states:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;      This option enables support for ICH5 Serial ATA.
      If PATA support was enabled previously, this enables
      support for select Intel PIIX/ICH PATA host controllers.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;However, this is only one part of the way there. The next part is to&amp;nbsp;change&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#undef ATA_ENABLE_ATAPI         /* define to enable ATAPI support */
#undef ATA_ENABLE_PATA          /* define to enable PATA support in some
                                 * low-level drivers */
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;into&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#define ATA_ENABLE_ATAPI        /* define to enable ATAPI support */
#define ATA_ENABLE_PATA         /* define to enable PATA support in some
                                 * low-level drivers */
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;in &lt;code&gt;include/linux/libata.h&lt;/code&gt;. I&amp;#8217;m really puzzled why this is not on by&amp;nbsp;default.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; In Kernel 2.6.14, this patch is no longer necessary (or possible, for that matter). Instead, append &lt;code&gt;libata.atapi_enabled=1&lt;/code&gt; to your boot command&amp;nbsp;line.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; In Kernel 2.6.16, there is a bad interaction of early versions of suspend2 and libata, which prevents &lt;span class="caps"&gt;ATAPI&lt;/span&gt; devices from working. The fix is to upgrade&amp;nbsp;suspend2.&lt;/p&gt;
&lt;h2&gt;Modem: A Conexant &lt;span class="caps"&gt;HCF&lt;/span&gt;&amp;nbsp;WinModem&lt;/h2&gt;
&lt;p&gt;You need to buy the driver from Linuxant to actually make this work. The &lt;code&gt;snd-intel8x0m&lt;/code&gt; module loads, but does not work, so the &lt;a href="http://linmodems.technion.ac.il/packages/smartlink/"&gt;Smartlink&lt;/a&gt; modem daemon can&amp;#8217;t work with this, at least not&amp;nbsp;yet.&lt;/p&gt;
&lt;h2&gt;Graphics: Intel&amp;nbsp;i915&lt;/h2&gt;
&lt;p&gt;Intel i915, supported out of the box by X.Org, using the 2.6.12.3 stock &lt;span class="caps"&gt;DRI&lt;/span&gt; module for that card. Two things made life with this chip a lot&amp;nbsp;better:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Section "Device"
    Identifier      "Intel Corporation Intel Default Card"
    Driver          "i810"
    BusID           "PCI:0:2:0"
    Option          "MonitorLayout" "CRT,LFP"

    # NOTE THESE TWO
    VideoRam        65536
    Option          "DDC"   "false"
EndSection
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;VideoRam&lt;/code&gt; option makes the card use more main memory during 3D operation, which makes many &lt;span class="caps"&gt;GL&lt;/span&gt; applications &lt;em&gt;lots&lt;/em&gt; faster, because there&amp;#8217;s less texture thrashing going&amp;nbsp;on.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;DDC&lt;/code&gt; option allowed me to use my &lt;span class="caps"&gt;NEC&lt;/span&gt; Multisync &lt;span class="caps"&gt;LCD&lt;/span&gt; &lt;span class="caps"&gt;1860NX&lt;/span&gt; with the card; when the option was not specified, it refused to come up with anything higher than&amp;nbsp;640x480.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I have recently gotten multihead to work, so that I am now using an &lt;span class="caps"&gt;LCD&lt;/span&gt; and the laptop panel side-by-side. Pretty wicked cool. I&amp;#8217;ve attached a working&amp;nbsp;xorg.conf.&lt;/p&gt;
&lt;h2&gt;Network: Broadcom&amp;nbsp;Tigon3&lt;/h2&gt;
&lt;p&gt;Works great using the &lt;code&gt;tg3&lt;/code&gt; driver.&lt;/p&gt;
&lt;p&gt;The only stumbling block is that Debian refuses to include this driver in its stock 2.6 kernels, since it has a builtin firmware blob. Nathanael Nerode, however, recently made a &lt;a href="http://lwn.net/Articles/144133/"&gt;patch&lt;/a&gt; that splits this out into a separate file, which would allow distribution with Debian in the&amp;nbsp;future.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Debian seems to have come to its senses; the &lt;code&gt;tg3&lt;/code&gt; driver is back in the stock kernels as of 2.6.14, at&amp;nbsp;least.&lt;/p&gt;
&lt;h2&gt;&lt;span class="caps"&gt;WLAN&lt;/span&gt;: Intel &lt;span class="caps"&gt;IPW2200BG&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Theoretically supported through the &lt;a href="http://ipw2200.sf.net"&gt;&lt;code&gt;ipw2200&lt;/code&gt;&lt;/a&gt; driver, but this is really flaky right now. Early versions (0.19, &lt;span class="caps"&gt;IIRC&lt;/span&gt;) drop the connection every once in a while and need to be reloaded to work again. Newer versions (&amp;gt;1.0.4) are bitten by &amp;#8220;Firmware error&amp;#8221; messages, as detailed in &lt;a href="http://bughost.org/bugzilla/show_bug.cgi?id=592"&gt;this bug log&lt;/a&gt;. No solution as&amp;nbsp;yet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Version 1.0.3 is reported working somewhere, but it apparently needs a patch to compile against 2.6.12.3. I haven&amp;#8217;t tried this&amp;nbsp;yet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Version 1.0.0, as included in Kernel 2.6.14, works like a charm. Get firmware version 2.2 to go with it. Better yet, this version is also in the Debian stock&amp;nbsp;kernels.&lt;/p&gt;
&lt;h2&gt;Sound: Intel &lt;span class="caps"&gt;AC&lt;/span&gt;&amp;#8216;97&lt;/h2&gt;
&lt;p&gt;No problems using the &lt;span class="caps"&gt;ALSA&lt;/span&gt; &lt;code&gt;snd-intel8x0&lt;/code&gt; driver.&lt;/p&gt;
&lt;h2&gt;Power&amp;nbsp;management&lt;/h2&gt;
&lt;p&gt;SpeedStep and &lt;span class="caps"&gt;ACPI&lt;/span&gt; work out of the box with the appropriate drivers. Suspend-to-&lt;span class="caps"&gt;RAM&lt;/span&gt; works, just like -to-disk, even though currently, 3D (&lt;span class="caps"&gt;DRI&lt;/span&gt;, that is) can&amp;#8217;t be used after&amp;nbsp;wakeup.&lt;/p&gt;
&lt;h2&gt;Other&amp;nbsp;things&lt;/h2&gt;
&lt;p&gt;The display is &lt;em&gt;very&lt;/em&gt; bright, even a bit &lt;em&gt;too&lt;/em&gt; bright for my taste. The keyboard is excellent, as is usual for &lt;span class="caps"&gt;IBM&lt;/span&gt; machines. The fan is louder than on my old ThinkPad A21m, but with the processing power of a Pentium-M running at 1.7 GHz, I am supposing that this was to be expected. I&amp;#8217;m a bit concerned that the &lt;span class="caps"&gt;ACPI&lt;/span&gt; Thermal Zone 0 reports temperatures of 76 degrees Celsius under sustained peak load, which sounds a bit high. But then, the trip point is at 90 degrees, so I guess it&amp;#8217;s&amp;nbsp;fine.&lt;/p&gt;
&lt;p&gt;Also, I&amp;#8217;m currently trying to return the copy of Windows &lt;span class="caps"&gt;XP&lt;/span&gt; that came with the machine, and on the upside, my complaint has not yet been smacked down by Lenovo. So there is &lt;em&gt;some&lt;/em&gt; hope. I&amp;#8217;ll write a detailed report once this is&amp;nbsp;over.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll keep this report updated as I continue to tame the hardware. Martin Schwenke&amp;#8217;s &lt;a href="http://meltin.net/hacks/linux/t43.html"&gt;page&lt;/a&gt; on the T43, quoted above, was of great help in getting everything to&amp;nbsp;run.&lt;/p&gt;
&lt;h2&gt;Suspend-to-Disk/Suspend-to-Ram&lt;/h2&gt;
&lt;p&gt;Suspend to Disk is straightforward, for Suspend to &lt;span class="caps"&gt;RAM&lt;/span&gt; to work you need one little non-obvious trick: specify &lt;code&gt;acpi_sleep=s3_bios&lt;/code&gt; on the command line. Also make sure that vbetool does &lt;em&gt;not&lt;/em&gt; mess with your video card (i.e. no repost, no state saving). Thanks to &lt;a href="http://thinkwiki.org"&gt;ThinkWiki&lt;/a&gt; for the&amp;nbsp;hint.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I&amp;#8217;m perfectly happy with the machine.&amp;nbsp;:)&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dl/dualhead-xorg.conf"&gt;dualhead-xorg.conf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="hardware"></category><category term="linux"></category></entry><entry><title>Life in London</title><link href="https://mathema.tician.de/life-in-london" rel="alternate"></link><published>2005-08-04T12:30:08-05:00</published><updated>2005-08-04T12:30:08-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-08-04:/life-in-london</id><summary type="html">&lt;p&gt;The &lt;a href="http://gallery.tiker.net/v/andreas/vacation/london05"&gt;pictures&lt;/a&gt; from our trip to London are up. Enjoy this one, as&amp;nbsp;well.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll update this post with an account of the trip soon-ish. Before then, let me just add that you should &lt;em&gt;not&lt;/em&gt; stay at the &amp;#8220;Smart Backpackers Hyde Park Inn Hostel&amp;#8221;, even though they tend to …&lt;/p&gt;</summary><content type="html">&lt;p&gt;The &lt;a href="http://gallery.tiker.net/v/andreas/vacation/london05"&gt;pictures&lt;/a&gt; from our trip to London are up. Enjoy this one, as&amp;nbsp;well.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll update this post with an account of the trip soon-ish. Before then, let me just add that you should &lt;em&gt;not&lt;/em&gt; stay at the &amp;#8220;Smart Backpackers Hyde Park Inn Hostel&amp;#8221;, even though they tend to be dirt cheap. You&amp;#8217;ll regret&amp;nbsp;it&amp;#8230; &lt;/p&gt;</content><category term="life"></category></entry><entry><title>Life and the Office, and Work, too</title><link href="https://mathema.tician.de/life-and-the-office-and-work-too" rel="alternate"></link><published>2005-08-04T08:00:31-05:00</published><updated>2005-08-04T08:00:31-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-08-04:/life-and-the-office-and-work-too</id><summary type="html">&lt;p&gt;Did you ever wonder how much the terms &amp;#8220;guilt&amp;#8221; and &amp;#8220;office&amp;#8221; are connected? Did you  ever wish to just relax while working (and have your work benefit from it), but didn&amp;#8217;t actually do so, since it looks bad? Wish you could work at home, knowing you&amp;#8217;d be more …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Did you ever wonder how much the terms &amp;#8220;guilt&amp;#8221; and &amp;#8220;office&amp;#8221; are connected? Did you  ever wish to just relax while working (and have your work benefit from it), but didn&amp;#8217;t actually do so, since it looks bad? Wish you could work at home, knowing you&amp;#8217;d be more effective there? Did nine-to-five ever feel like a nice corset, like an excuse for not getting work done? Do you want to know why there&amp;#8217;s no way past proper discipline? I felt many of these things during my days at Prof. Dörfler&amp;#8217;s institute, as a consequence of having a proper office, colleagues and all, but I was never really able to put them into context or come to a conclusion on what to do about&amp;nbsp;them.&lt;/p&gt;
&lt;p&gt;Paul Graham, of whose writing I&amp;#8217;ve been a fanboy for a while, says it &lt;a href="http://www.paulgraham.com/opensource.html"&gt;straight and to the point&lt;/a&gt;, and many of his points seem like appropriate endpoints of thoughts I&amp;#8217;ve&amp;nbsp;had.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m glad I found this before starting grad school for several&amp;nbsp;reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Now I know I&amp;#8217;m not alone in feeling like&amp;nbsp;this.&lt;/li&gt;
&lt;li&gt;Feeling guilty about stuff is nearly always a bad&amp;nbsp;idea.&lt;/li&gt;
&lt;li&gt;It&amp;#8217;s almost always a better idea to just do what you think is reasonable, even if it looks&amp;nbsp;bad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Duh? Maybe. But I challenge you to live by these principles every day. (And myself,&amp;nbsp;too.)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span class="caps"&gt;PS&lt;/span&gt;: Sorry that this is propagated straight from Slashdot. But then, I think it&amp;#8217;s too important to&amp;nbsp;miss.&lt;/em&gt;&lt;/p&gt;</content><category term="grad-school"></category><category term="life"></category><category term="mindless-link-propagation"></category><category term="technology"></category></entry><entry><title>Trip to Augsburg</title><link href="https://mathema.tician.de/trip-to-augsburg" rel="alternate"></link><published>2005-07-21T03:39:45-05:00</published><updated>2005-07-21T03:39:45-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-07-21:/trip-to-augsburg</id><summary type="html">&lt;p&gt;The &lt;a href="http://gallery.tiker.net/v/andreas/short-trips/augsburg"&gt;pictures from our trip to Augsburg&lt;/a&gt; are up.&amp;nbsp;Enjoy.&lt;/p&gt;</summary><content type="html">&lt;p&gt;The &lt;a href="http://gallery.tiker.net/v/andreas/short-trips/augsburg"&gt;pictures from our trip to Augsburg&lt;/a&gt; are up.&amp;nbsp;Enjoy.&lt;/p&gt;</content><category term="digital-photography"></category><category term="life"></category></entry><entry><title>Losing my Faith in Debian</title><link href="https://mathema.tician.de/losing-my-faith-in-debian" rel="alternate"></link><published>2005-07-18T06:09:48-05:00</published><updated>2005-07-18T06:09:48-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-07-18:/losing-my-faith-in-debian</id><summary type="html">&lt;p&gt;I really do not like the way things are going in recent times within the Debian project. I feel that a group of people has gained way too much control over how things are run, and those people do not seem to care about users, they seem to care about …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I really do not like the way things are going in recent times within the Debian project. I feel that a group of people has gained way too much control over how things are run, and those people do not seem to care about users, they seem to care about enforcing the &lt;span class="caps"&gt;DFSG&lt;/span&gt; (the Debian Free Software Guidelines) to the letter. This manifests itself in several changes that have the potential to harm Debian in the short and in the long&amp;nbsp;term:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Drivers containing binary firmware has been removed from the stock kernels, on the argument that they are &amp;#8220;non-free&amp;#8221;. This is, of course, true. Yet, I don&amp;#8217;t see the difference between storing the firmware in an &lt;span class="caps"&gt;EEPROM&lt;/span&gt; in the hardware, or in a binary blob in the driver. Also, demanding that the source to these binaries be open is pure utopia: manufacturers are already struggling to keep the programming info for their chips secret. Forcing them to open up their firmware is a) going to &lt;em&gt;really&lt;/em&gt; reveal the company&amp;#8217;s &lt;span class="caps"&gt;IP&lt;/span&gt;, somewhat unlike chip datasheets, making this completely unjustifiable from a business standpoint b) mostly useless technically. While I see the point of being able to hack your firmware, the toolchains required to do so are often also not open, &lt;em&gt;most&lt;/em&gt; users are not going to care and would rather prefer their device to just &lt;em&gt;work&lt;/em&gt;, and, lastly, the binary blobs do &lt;em&gt;not&lt;/em&gt; pose any obstacle to kernel development (be it from a portability, maintainability, or clarity point of&amp;nbsp;view).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The most telling part of the story is that while these people (I am tempted to say &amp;#8220;zealots&amp;#8221;.) were quick to remove the corresponding firmware, but did not care enough to make it available through non-free to be able to cater to the users&amp;#8217; very real interest to use their hardware. Even worse, for the Broadcom Tigon3 Gigabit ethernet&amp;nbsp;chip&lt;/p&gt;</content><category term="rants"></category></entry><entry><title>These are turbulent times.</title><link href="https://mathema.tician.de/these-are-turbulent-times" rel="alternate"></link><published>2005-07-13T18:52:19-05:00</published><updated>2005-07-13T18:52:19-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-07-13:/these-are-turbulent-times</id><summary type="html">&lt;p&gt;To follow up on the previous post, my laptop did find its way back to life. But unfortunately, only briefly so. It started all the way into X just once, and now seems to be dead forever. In the light of this, I&amp;#8217;ve given in and ordered &lt;a href="http://thinkwiki.org/wiki/Category:R52"&gt;&lt;code&gt;aramis&lt;/code&gt;&lt;span class="quo"&gt;&amp;#8216;&lt;/span&gt;s …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;To follow up on the previous post, my laptop did find its way back to life. But unfortunately, only briefly so. It started all the way into X just once, and now seems to be dead forever. In the light of this, I&amp;#8217;ve given in and ordered &lt;a href="http://thinkwiki.org/wiki/Category:R52"&gt;&lt;code&gt;aramis&lt;/code&gt;&lt;span class="quo"&gt;&amp;#8216;&lt;/span&gt;s successor&lt;/a&gt;, tentatively named &lt;s&gt;&lt;a href="http://gallery.tiker.net/v/josie/completed_projects/IMG_4541.JPG.html"&gt;&lt;code&gt;little-bear&lt;/code&gt;&lt;/a&gt;&lt;/s&gt; &lt;code&gt;grizzly&lt;/code&gt;. (I was looking for something a bit more manly than &lt;code&gt;little-bear&lt;/code&gt;.)&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;In the meantime, the only reliable computer I&amp;#8217;ve had is at work, while at home, I first had the apartment server, then my mom&amp;#8217;s &lt;span class="caps"&gt;PC&lt;/span&gt;, which I had fortunately begun to build before my laptop died, then my parents&amp;#8217; old &lt;span class="caps"&gt;PC&lt;/span&gt; (a K6-300, yuck!) and now the apartment-server-turned-my-dad&amp;#8217;s-&lt;span class="caps"&gt;PC&lt;/span&gt; once again. All these computers have been blessed with &lt;a href="http://kubuntu.org/"&gt;kubuntu&lt;/a&gt;, which I can recommend as a really sweet piece of engineering. It makes installing a Debian system with non-server-capabilities easier than ever&amp;nbsp;before.&lt;/p&gt;
&lt;p&gt;Work is promising to be busy for the rest of my time there, with a bunch of trivial things still to be done, and other, less trivial, but more fun things expected (like a few good pointers on where to take my &lt;a href="/academic"&gt;past thesis work&lt;/a&gt;, and someone else in the physics department to bounce ideas off of). Private life will be equally as busy,&amp;nbsp;with&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a trip to&amp;nbsp;France&lt;/li&gt;
&lt;li&gt;a trip to Great&amp;nbsp;Britain&lt;/li&gt;
&lt;li&gt;a farewell party for&amp;nbsp;myself&lt;/li&gt;
&lt;li&gt;packing &lt;span class="amp"&gt;&amp;amp;&lt;/span&gt; moving to&amp;nbsp;Providence&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;all lined&amp;nbsp;up.&lt;/p&gt;
&lt;p&gt;Unfortunately, all this means that most of my private projects are on hold until everything settles again, which I pretty much do not expect to happen until October or so. Indeed, these are turbulent&amp;nbsp;times.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; &lt;code&gt;grizzly&lt;/code&gt; has landed on my desk, and thus far, I&amp;#8217;m really happy with it. Except for one dead (red) pixel at the top right of my screen. Which doesn&amp;#8217;t really matter.&amp;nbsp;:yes:&lt;/p&gt;</content><category term="life"></category></entry><entry><title>Uh, yay.</title><link href="https://mathema.tician.de/uh-yay" rel="alternate"></link><published>2005-07-04T18:48:00-05:00</published><updated>2005-07-04T18:48:00-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-07-04:/uh-yay</id><summary type="html">&lt;p&gt;This July 4th could have been better. While it was a very appropriate day to get my visa (yay!), the evening was actually fairly bad. First, I discovered that a heavy rainstorm this afternoon has found its way into my laptop through an opened window. As yet, the laptop is …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This July 4th could have been better. While it was a very appropriate day to get my visa (yay!), the evening was actually fairly bad. First, I discovered that a heavy rainstorm this afternoon has found its way into my laptop through an opened window. As yet, the laptop is drying, and as far as I can tell, the hard drive is dry. So this might be just monetary&amp;nbsp;damage.&lt;/p&gt;
&lt;p&gt;Then, I find out that Drupal has a few severe security bugs. I upgraded my (recent-version) site and yanked the plug from Josie&amp;#8217;s. I can almost already hear her complain. I&amp;#8217;ve also yanked the gallery site, as I&amp;#8217;m not sure whether its software is&amp;nbsp;affected.&lt;/p&gt;
&lt;p&gt;Altogether, the good thing is that tomorrow can&amp;#8217;t be much&amp;nbsp;worse.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; How appropriate. At present, the house does not have running water. What&amp;nbsp;next?&lt;/p&gt;</content><category term="life"></category><category term="technology"></category></entry><entry><title>Hendrik on Spiegel Online</title><link href="https://mathema.tician.de/hendrik-on-spiegel-online" rel="alternate"></link><published>2005-06-24T12:35:32-05:00</published><updated>2005-06-24T12:35:32-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-06-24:/hendrik-on-spiegel-online</id><summary type="html">&lt;p&gt;A friend of mine, &lt;a href="http://www.spiegel.de/fotostrecke/0,5538,PB64-SUQ9MTA1NDQmbnI9MQ_3_3,00.html"&gt;Hendrik&lt;/a&gt;, is on Spiegel Online with his pet project, the &lt;a href="http://www.stanfordracing.org/"&gt;Stanford entry&lt;/a&gt; into the &lt;span class="caps"&gt;DARPA&lt;/span&gt; grand challenge. His team also made &lt;a href="http://hardware.slashdot.org/article.pl?sid=05/06/06/2243229&amp;amp;tid=216&amp;amp;tid=14"&gt;Slashdot&lt;/a&gt; a while ago.&amp;nbsp;:D&lt;/p&gt;
&lt;p&gt;Go, Hendrik! Will you ever talk to me again, now that you&amp;#8217;re famous?&amp;nbsp;;)&lt;/p&gt;</summary><content type="html">&lt;p&gt;A friend of mine, &lt;a href="http://www.spiegel.de/fotostrecke/0,5538,PB64-SUQ9MTA1NDQmbnI9MQ_3_3,00.html"&gt;Hendrik&lt;/a&gt;, is on Spiegel Online with his pet project, the &lt;a href="http://www.stanfordracing.org/"&gt;Stanford entry&lt;/a&gt; into the &lt;span class="caps"&gt;DARPA&lt;/span&gt; grand challenge. His team also made &lt;a href="http://hardware.slashdot.org/article.pl?sid=05/06/06/2243229&amp;amp;tid=216&amp;amp;tid=14"&gt;Slashdot&lt;/a&gt; a while ago.&amp;nbsp;:D&lt;/p&gt;
&lt;p&gt;Go, Hendrik! Will you ever talk to me again, now that you&amp;#8217;re famous?&amp;nbsp;;)&lt;/p&gt;</content></entry><entry><title>ARPACK/LAPACK Symbol Duplication</title><link href="https://mathema.tician.de/arpack-lapack-symbol-duplication" rel="alternate"></link><published>2005-06-22T19:26:29-05:00</published><updated>2005-06-22T19:26:29-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-06-22:/arpack-lapack-symbol-duplication</id><summary type="html">&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The packages distributed here have been superseded by the new &lt;a href="/software/arpack"&gt;autotoolized &lt;span class="caps"&gt;ARPACK&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This evening, I ran into a pretty frustrating problem with &lt;a href="http://www.caam.rice.edu/software/ARPACK/"&gt;&lt;span class="caps"&gt;ARPACK&lt;/span&gt;&lt;/a&gt;. It aborted without being able to compute an Arnoldi factorization from within one program, but the same snippet of code (with the same matrix!) would work …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The packages distributed here have been superseded by the new &lt;a href="/software/arpack"&gt;autotoolized &lt;span class="caps"&gt;ARPACK&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This evening, I ran into a pretty frustrating problem with &lt;a href="http://www.caam.rice.edu/software/ARPACK/"&gt;&lt;span class="caps"&gt;ARPACK&lt;/span&gt;&lt;/a&gt;. It aborted without being able to compute an Arnoldi factorization from within one program, but the same snippet of code (with the same matrix!) would work just fine in&amp;nbsp;another.&lt;/p&gt;
&lt;p&gt;To make a long story short, I eventually tracked down the root cause: Both &lt;span class="caps"&gt;LAPACK&lt;/span&gt; and &lt;span class="caps"&gt;ARPACK&lt;/span&gt; define a routine called &lt;code&gt;SECOND&lt;/code&gt;, but with different call signatures. &lt;span class="caps"&gt;LAPACK&lt;/span&gt;&amp;#8217;s copy is a function, whereas &lt;span class="caps"&gt;ARPACK&lt;/span&gt;&amp;#8217;s copy is a subroutine. Usually, all goes well, and the linker is intelligent enough to pick the right copy in all instances. I was unfortunate enough to be in a situation where that was not the case. The call to the wrong &lt;code&gt;SECOND&lt;/code&gt; messed up the stack, and things got really strange from there. (For example, &lt;code&gt;DLARNV&lt;/code&gt; returned a NaN instead of a proper&amp;nbsp;number.)&lt;/p&gt;
&lt;p&gt;Hence, the &lt;span class="caps"&gt;ARPACK&lt;/span&gt;-supplied &lt;code&gt;SECOND&lt;/code&gt; routine needs to be renamed. The attached &lt;a href="/dl/arpack-arscnd-3.patch.gz"&gt;&lt;span class="caps"&gt;ARPACK&lt;/span&gt;/&lt;span class="caps"&gt;LAPACK&lt;/span&gt; Symbol Duplication&lt;/a&gt; against &lt;span class="caps"&gt;ARPACK&lt;/span&gt; version 96 (a revised version of a quick sed job) realizes this suggestion by renaming the routine to &lt;code&gt;ARSCND&lt;/code&gt; (as in &amp;#8220;ARpack SeCoND&amp;#8221;), which fixed the problem for me. Apparently, somebody else on the &lt;a href="http://www.octave.org/octave-lists/archive/help-octave.2004/msg01466.html"&gt;Octave&lt;/a&gt; team ran into a similar problem, but appeared to get only unhelpful&amp;nbsp;replies.&lt;/p&gt;
&lt;p&gt;Hopefully, this posting will save somebody some&amp;nbsp;trouble.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; This &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=315570"&gt;Debian bug&lt;/a&gt; tracks progress on the&amp;nbsp;issue.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 2:&lt;/strong&gt; &lt;a href="/dl/arpack-arscnd-3.patch.gz"&gt;&lt;span class="caps"&gt;ARPACK&lt;/span&gt;/&lt;span class="caps"&gt;LAPACK&lt;/span&gt; Symbol Duplication&lt;/a&gt; of the patch works against &lt;span class="caps"&gt;ARPACK96&lt;/span&gt; with patch.tar.gz applied. It&amp;#8217;s also slightly cleaner: It renames &lt;code&gt;second.f&lt;/code&gt; to &lt;code&gt;arscnd.f&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 3:&lt;/strong&gt; I got a reply from Rich Lehoucq acknowledging the bug two years ago, but he never got around to posting my patch. Thus I&amp;#8217;m taking the liberty to redistribute an updated version of &lt;span class="caps"&gt;ARPACK&lt;/span&gt; here. The build system has also been updated so that it should work on most modern flavors of Linux without any&amp;nbsp;tweaking.&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dl/arpack-arscnd-2.patch.gz"&gt;arpack-arscnd-2.patch.gz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dl/arpack-arscnd-3.patch.gz"&gt;arpack-arscnd-3.patch.gz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dl/arpack-akloeckner-07.tar.gz"&gt;arpack-akloeckner-07.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="arpack"></category><category term="crash"></category><category term="error"></category><category term="linkage conflict"></category><category term="technology"></category></entry><entry><title>Burning you were to know…</title><link href="https://mathema.tician.de/burning-you-were-to-know" rel="alternate"></link><published>2005-06-20T06:39:42-05:00</published><updated>2005-06-20T06:39:42-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-06-20:/burning-you-were-to-know</id><summary type="html">&lt;p&gt;&amp;#8230;the true origin of &lt;a href="http://news.tiker.net/node/352"&gt;Darth Tater&lt;/a&gt;. Wait &lt;a href="http://storewars.org"&gt;no longer&lt;/a&gt;.&lt;/p&gt;</summary><content type="html">&lt;p&gt;&amp;#8230;the true origin of &lt;a href="http://news.tiker.net/node/352"&gt;Darth Tater&lt;/a&gt;. Wait &lt;a href="http://storewars.org"&gt;no longer&lt;/a&gt;.&lt;/p&gt;</content><category term="mindless-link-propagation"></category><category term="silly-stuff"></category></entry><entry><title>While pretty unnecessary, …</title><link href="https://mathema.tician.de/while-pretty-unnecessary" rel="alternate"></link><published>2005-06-15T17:31:51-05:00</published><updated>2005-06-15T17:31:51-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-06-15:/while-pretty-unnecessary</id><summary type="html">&lt;p&gt;&amp;#8230;I think it&amp;#8217;s cool that somebody at &lt;a href="http://radiobremen.de"&gt;Radio Bremen&lt;/a&gt; translates each month&amp;#8217;s news into &lt;a href="http://www.radiobremen.de/nachrichten/platt/"&gt;Plattdüütsch&lt;/a&gt; and &lt;a href="http://www.radiobremen.de/nachrichten/latein/"&gt;Latin&lt;/a&gt;. Such things only happen when commercial interest is &lt;em&gt;not&lt;/em&gt; at the forefront of everyone&amp;#8217;s&amp;nbsp;mind.&lt;/p&gt;</summary><content type="html">&lt;p&gt;&amp;#8230;I think it&amp;#8217;s cool that somebody at &lt;a href="http://radiobremen.de"&gt;Radio Bremen&lt;/a&gt; translates each month&amp;#8217;s news into &lt;a href="http://www.radiobremen.de/nachrichten/platt/"&gt;Plattdüütsch&lt;/a&gt; and &lt;a href="http://www.radiobremen.de/nachrichten/latein/"&gt;Latin&lt;/a&gt;. Such things only happen when commercial interest is &lt;em&gt;not&lt;/em&gt; at the forefront of everyone&amp;#8217;s&amp;nbsp;mind.&lt;/p&gt;</content><category term="mindless-link-propagation"></category></entry><entry><title>Find the word</title><link href="https://mathema.tician.de/find-the-word" rel="alternate"></link><published>2005-06-04T13:49:14-05:00</published><updated>2005-06-04T13:49:14-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-06-04:/find-the-word</id><summary type="html">&lt;p&gt;Josie&amp;#8217;s doing something with kids tomorrow, and she needed a word puzzle. I made her one. No. I made her a program to make &lt;em&gt;any number of them&lt;/em&gt;. :) Like this&amp;nbsp;one:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;KJAPANINAW
ACOUSLAPDO
NIUSBELEUR
GPRDIPPAPC
ASOUDEHCTE
RBCBHGAERS
OEKYMOUSET
OOEALEHLIE
WIRIJSELAR
CATNGMHIDU
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I&amp;#8217;ve attached the &lt;a href="http://www.python.org"&gt;Python&lt;/a&gt; &lt;a href="/dl/find-the-word.py.txt"&gt;Find the word …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Josie&amp;#8217;s doing something with kids tomorrow, and she needed a word puzzle. I made her one. No. I made her a program to make &lt;em&gt;any number of them&lt;/em&gt;. :) Like this&amp;nbsp;one:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;KJAPANINAW
ACOUSLAPDO
NIUSBELEUR
GPRDIPPAPC
ASOUDEHCTE
RBCBHGAERS
OEKYMOUSET
OOEALEHLIE
WIRIJSELAR
CATNGMHIDU
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I&amp;#8217;ve attached the &lt;a href="http://www.python.org"&gt;Python&lt;/a&gt; &lt;a href="/dl/find-the-word.py.txt"&gt;Find the word&lt;/a&gt; to produce stuff like this to this story, should you happen to need something like that. It&amp;#8217;s the stupidest possible algorithm, purely random. It works well enough, though. You also need a word file, I&amp;#8217;ve attached an &lt;a href="/dl/words"&gt;Find the word&lt;/a&gt;. Then you call it&amp;nbsp;with&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;python find-the-word.py words
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and it spits out what you want. Golly.&amp;nbsp;:P&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dl/words"&gt;words&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dl/find-the-word.py.txt"&gt;find-the-word.py.txt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="life"></category><category term="python"></category></entry><entry><title>Sieve of Erathostenes</title><link href="https://mathema.tician.de/sieve-of-erathostenes" rel="alternate"></link><published>2005-06-02T15:41:00-05:00</published><updated>2005-06-02T15:41:00-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-06-02:/sieve-of-erathostenes</id><summary type="html">&lt;p&gt;I challenge you to come up with a shorter/simpler piece of code that executes the &lt;a href="http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes"&gt;Sieve of Erathostenes&lt;/a&gt; than this Python&amp;nbsp;snippet:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;N = 1000
candidates = range(2, N+1)
i = 0

while i &amp;lt; len(candidates):
    candidates = [n for n in candidates
        if n % candidates[i] != 0
        or n &amp;lt;= candidates …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">&lt;p&gt;I challenge you to come up with a shorter/simpler piece of code that executes the &lt;a href="http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes"&gt;Sieve of Erathostenes&lt;/a&gt; than this Python&amp;nbsp;snippet:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;N = 1000
candidates = range(2, N+1)
i = 0

while i &amp;lt; len(candidates):
    candidates = [n for n in candidates
        if n % candidates[i] != 0
        or n &amp;lt;= candidates[i]]
    i += 1

print candidates
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Of course, renaming variables or such silliness does not count. I know that a stopping condition of &lt;code&gt;candidates[i] &amp;lt; math.sqrt(N)&lt;/code&gt; would make the whole thing faster, but that&amp;#8217;s beside the point. This is about &lt;em&gt;simplicity&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;So, go ahead and humiliate me. I know you want to.&amp;nbsp;}:)&lt;/p&gt;</content><category term="python"></category><category term="silly-stuff"></category></entry><entry><title>LinuxTag is not free any more (Update: or is it?)</title><link href="https://mathema.tician.de/linuxtag-is-not-free-any-more-update-or-is-it" rel="alternate"></link><published>2005-05-31T14:24:42-05:00</published><updated>2005-05-31T14:24:42-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-31:/linuxtag-is-not-free-any-more-update-or-is-it</id><summary type="html">&lt;p&gt;Just now, I was thinking about which weekend I&amp;#8217;d have to reserve to go to &lt;a href="http://www.linuxtag.org"&gt;LinuxTag&lt;/a&gt;, which will be taking place in my current home town, Karlsruhe. Turns out that I don&amp;#8217;t even need to decide that: They will be charging 35€ to get in this time around …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Just now, I was thinking about which weekend I&amp;#8217;d have to reserve to go to &lt;a href="http://www.linuxtag.org"&gt;LinuxTag&lt;/a&gt;, which will be taking place in my current home town, Karlsruhe. Turns out that I don&amp;#8217;t even need to decide that: They will be charging 35€ to get in this time around. The show was good in 2003, but yaaaawningly boring in 2004. (Yes, I can hear you yawn now, too.) Even though I am officially employed now and the entrance fee would not be a major problem, I will &lt;em&gt;not&lt;/em&gt; pay, and consequently &lt;em&gt;not&lt;/em&gt; go. I don&amp;#8217;t think charging money is a good idea, and I firmly believe that most of the community will stay away as well. They have a figleaf &amp;#8220;community ticket&amp;#8221; program that depends on some sort of viral scheme, but I &lt;em&gt;really&lt;/em&gt; doubt that it will work out. Look at the people who have made Linux what it is, and who matter the most: the developers. In general, they don&amp;#8217;t have much money to just spend on random stuff. Plus, they &lt;em&gt;are&lt;/em&gt; already contributing valuable time for free. If LinuxTag wants to turn them away, so be it. In my case, they&amp;#8217;ve succeeded. But who else would be the target audience? Commercial users? Maybe. Private users? I doubt they&amp;#8217;ll pay. Then who? I don&amp;#8217;t&amp;nbsp;know.&lt;/p&gt;
&lt;p&gt;Back in 2003, I made a donation to them to keep up the good work. I&amp;#8217;d be willing to donate more this year (and yes, more than the 35Ã¢Â‚Â¬ they&amp;#8217;re demanding), if they told me that they really needed the support  and the whole thing was still free. If they&amp;#8217;re forcibly trying to separate me from my money, I&amp;#8217;ll really rather stay at home. I&amp;#8217;m stubborn like that. Screw&amp;nbsp;them.&lt;/p&gt;
&lt;p&gt;They say that Linux has &amp;#8220;grown up&amp;#8221;, and so, LinuxTag needs to do the same. If they are trying to become a commercial fair, fine. Let them be another &lt;em&gt;BuzzwordWorldExpo&lt;/em&gt;(tm). Other fairs are giving away exposition space to &lt;span class="caps"&gt;OSS&lt;/span&gt; projects as well, and have generally more to offer. Let them compete and see how they&amp;nbsp;fare.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The &amp;#8220;viral scheme&amp;#8221; seems to have worked out at least to a point where I got a free ticket to LinuxTag. I guess that public whining is a good way to score one. So, now I know what to do that weekend. :) Based on how things pan out, I might have to take back what I said above, in which case I&amp;#8217;ll do so on this&amp;nbsp;journal.&lt;/p&gt;
&lt;p&gt;By the rules, I may now be able to invite more people to LinuxTag. I&amp;#8217;m certainly willing to do my part to get more people invited, should they want to. Just drop me an &lt;a href="/aboutme"&gt;email&lt;/a&gt;.&lt;/p&gt;</content><category term="life"></category><category term="linux"></category><category term="rants"></category></entry><entry><title>“Sith” is a four-letter word</title><link href="https://mathema.tician.de/sith-is-a-four-letter-word" rel="alternate"></link><published>2005-05-31T01:30:49-05:00</published><updated>2005-05-31T01:30:49-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-31:/sith-is-a-four-letter-word</id><summary type="html">&lt;p&gt;Think anagrams. &amp;#8216;Nuff said.&amp;nbsp;:)&lt;/p&gt;</summary><content type="html">&lt;p&gt;Think anagrams. &amp;#8216;Nuff said.&amp;nbsp;:)&lt;/p&gt;</content><category term="life"></category><category term="reviews"></category><category term="silly-stuff"></category></entry><entry><title>Don’t shop at K&amp;M</title><link href="https://mathema.tician.de/dont-shop-at-k-m" rel="alternate"></link><published>2005-05-27T08:22:11-05:00</published><updated>2005-05-27T08:22:11-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-27:/dont-shop-at-k-m</id><summary type="html">&lt;p&gt;If you ever thought about shopping at &lt;a href="http://www.kmelektronik.de"&gt;K&amp;amp;M Elektronik&lt;/a&gt;, don&amp;#8217;t do it. They suck. Here&amp;#8217;s&amp;nbsp;why:&lt;/p&gt;
&lt;p&gt;I bought a &lt;a href="/node/205"&gt;wireless card&lt;/a&gt; from them a while ago, which, over time, &lt;s&gt;bit the bullet&lt;/s&gt;kicked the bucket. I am supposing that I was seeing thermal problems, since the card …&lt;/p&gt;</summary><content type="html">&lt;p&gt;If you ever thought about shopping at &lt;a href="http://www.kmelektronik.de"&gt;K&amp;amp;M Elektronik&lt;/a&gt;, don&amp;#8217;t do it. They suck. Here&amp;#8217;s&amp;nbsp;why:&lt;/p&gt;
&lt;p&gt;I bought a &lt;a href="/node/205"&gt;wireless card&lt;/a&gt; from them a while ago, which, over time, &lt;s&gt;bit the bullet&lt;/s&gt;kicked the bucket. I am supposing that I was seeing thermal problems, since the card would always start out fine, but then degrade and finally cut the connection as it &amp;#8220;warmed up&amp;#8221;. So far, so good. That can happen. Understandably, I wanted the broken card exchanged. They gave me three&amp;nbsp;options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Get my money back, minus an apparently time-dependent &amp;#8220;fee&amp;#8221; of 2,70 Euros. (Hello? The card is &lt;em&gt;broken&lt;/em&gt;. You sold me &lt;em&gt;broken stuff&lt;/em&gt;.)&amp;nbsp;:o&lt;/li&gt;
&lt;li&gt;Exchange it for another card with unknown Linux support right now and let me pay the price difference, without the chance to return it if it doesn&amp;#8217;t work in Linux. (Errr,&amp;nbsp;no.)&lt;/li&gt;
&lt;li&gt;Send it in and give me a replacement, but even then I can&amp;#8217;t be sure that I get the same type of card. (Not even&amp;nbsp;close.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The rep&amp;#8217;s explanation was that I bought the card as &amp;#8220;Markenfabrikat&amp;#8221; (=&amp;#8221;brand name&amp;#8221;) without being guaranteed a specific brand of card. Riiiiight. Now I&amp;#8217;m really not so sure I bought &lt;em&gt;anything&lt;/em&gt; except abysmal customer service.&amp;nbsp;:barf:&lt;/p&gt;
&lt;p&gt;Needless to say, I went for the money option and took what little money was left straight to a &lt;a href="http://www.arlt.com"&gt;competitor&lt;/a&gt;, which has this far always had good service, even in borderline&amp;nbsp;cases.&lt;/p&gt;</content><category term="life"></category><category term="rants"></category><category term="reviews"></category></entry><entry><title>Drupal 4.6</title><link href="https://mathema.tician.de/drupal-4-6" rel="alternate"></link><published>2005-05-25T17:47:44-05:00</published><updated>2005-05-25T17:47:44-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-25:/drupal-4-6</id><summary type="html">&lt;p&gt;I&amp;#8217;ve just finished updating this site to Drupal 4.6. It went pretty smoothly, except for some hiccups with the &lt;code&gt;image&lt;/code&gt; module. I like the new version, even though not much is different. The slightly changed look of the site might give this away, too. If there are any …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;ve just finished updating this site to Drupal 4.6. It went pretty smoothly, except for some hiccups with the &lt;code&gt;image&lt;/code&gt; module. I like the new version, even though not much is different. The slightly changed look of the site might give this away, too. If there are any problems with the upgrade, let me&amp;nbsp;know.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The new &lt;code&gt;image&lt;/code&gt; module is a dog. I&amp;#8217;ll be using &lt;a href="/gallery"&gt;gallery2 integration&lt;/a&gt; instead. The Drupal module &lt;a href="http://drupal.org/project/gallery"&gt;project&lt;/a&gt; has more&amp;nbsp;info.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 2:&lt;/strong&gt; Screw it. Not even that works right. My galleries and journal stay nice and separate. Period.&amp;nbsp;:no:&lt;/p&gt;</content><category term="meta"></category></entry><entry><title>Check…</title><link href="https://mathema.tician.de/check" rel="alternate"></link><published>2005-05-18T14:42:22-05:00</published><updated>2005-05-18T14:42:22-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-18:/check</id><summary type="html">&lt;p&gt;&amp;#8230;&lt;a href="http://funnyfox.org"&gt;this&lt;/a&gt; out.&amp;nbsp;:)&lt;/p&gt;</summary><content type="html">&lt;p&gt;&amp;#8230;&lt;a href="http://funnyfox.org"&gt;this&lt;/a&gt; out.&amp;nbsp;:)&lt;/p&gt;</content><category term="mindless-link-propagation"></category></entry><entry><title>Misspelling my Domain</title><link href="https://mathema.tician.de/misspelling-my-domain" rel="alternate"></link><published>2005-05-17T15:48:46-05:00</published><updated>2005-05-17T15:48:46-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-17:/misspelling-my-domain</id><summary type="html">&lt;p&gt;In recent times, I&amp;#8217;ve actually seen more &lt;em&gt;mis&lt;/em&gt;spellings of the domain which hosts this journal than accurate ones. I&amp;#8217;ve&amp;nbsp;seen&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://tinker.net"&gt;tinker.net&lt;/a&gt;&amp;#8212;which, in reality, is a site on how to catch &lt;a href="http://www.reel-big-fish.com/"&gt;reel big fish&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;ticker.net&amp;#8212;which, in reality, is held by some domain&amp;nbsp;squatter.&lt;/li&gt;
&lt;li&gt;fiker …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;In recent times, I&amp;#8217;ve actually seen more &lt;em&gt;mis&lt;/em&gt;spellings of the domain which hosts this journal than accurate ones. I&amp;#8217;ve&amp;nbsp;seen&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://tinker.net"&gt;tinker.net&lt;/a&gt;&amp;#8212;which, in reality, is a site on how to catch &lt;a href="http://www.reel-big-fish.com/"&gt;reel big fish&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;ticker.net&amp;#8212;which, in reality, is held by some domain&amp;nbsp;squatter.&lt;/li&gt;
&lt;li&gt;fiker.net&amp;#8212;which, in reality, does not exist, but bears a close phonetic relationship to a pretty vulgar German word. Worst of all, I caught this misspelling from somebody in my tutorial session. I really don&amp;#8217;t know what she thinks of me, but I&amp;#8217;m fairly sure I&amp;#8217;m not like&amp;nbsp;that.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This makes me feel the accomplishment of someone who&amp;#8217;s found the right domain name, since people can&amp;#8217;t seem to spell my last name either. :) Of course, I can&amp;#8217;t really judge how many people just think, &amp;#8220;Awww man, learn to spell.&amp;#8221; To which I could grinningly say, with the same feeling of accomplishment, &amp;#8220;Hah! The pun you&amp;#8217;re missing is in &lt;em&gt;German&lt;/em&gt;. The equivalent pun in English can be pulled off using &lt;code&gt;tician.net&lt;/code&gt; (which you may grab while it&amp;#8217;s not taken).&amp;#8221; Unfortunately, I might not be there to enjoy the occasion.&amp;nbsp;;)&lt;/p&gt;
&lt;p&gt;Of course, my desire to add one pun on top of another by calling my journal &amp;#8220;news.tiker&amp;#8221; has only aggravated the problem. Oh well.&amp;nbsp;}:)&lt;/p&gt;</content><category term="meta"></category></entry><entry><title>madman meets musepack</title><link href="https://mathema.tician.de/madman-meets-musepack" rel="alternate"></link><published>2005-05-17T15:43:52-05:00</published><updated>2005-05-17T15:43:52-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-17:/madman-meets-musepack</id><summary type="html">&lt;p&gt;Thanks to Scott Wheeler&amp;#8217;s tireless work on Taglib, madman (the development version in Arch, really) now has support for Musepack (or &amp;#8220;&lt;span class="caps"&gt;MPC&lt;/span&gt;&amp;#8221;) files. This was half-way to being added once before, but support in Taglib makes this a no-brainer. Seems like tag writing in Taglib is still not 100 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Thanks to Scott Wheeler&amp;#8217;s tireless work on Taglib, madman (the development version in Arch, really) now has support for Musepack (or &amp;#8220;&lt;span class="caps"&gt;MPC&lt;/span&gt;&amp;#8221;) files. This was half-way to being added once before, but support in Taglib makes this a no-brainer. Seems like tag writing in Taglib is still not 100%, but I assume it&amp;#8217;ll get there. I hope you&amp;#8217;re happy.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;To celebrate this, I also fixed Arch downloads. If you got complaints about 2004 last time you tried to get something from Arch, try&amp;nbsp;again.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Debian packages of the development version</title><link href="https://mathema.tician.de/debian-packages-of-the-development-version" rel="alternate"></link><published>2005-05-16T16:41:35-05:00</published><updated>2005-05-16T16:41:35-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-16:/debian-packages-of-the-development-version</id><summary type="html">&lt;p&gt;Ben Montgomery made some &lt;a href="http://www.montynet.org/packages/madman"&gt;Debian packages&lt;/a&gt; of a recent development version of madman. Try them out, and bother Ben or the list if you have trouble. Yes, I do agree that this is a strong sign that I should release 0.94 &lt;span class="caps"&gt;ASAP&lt;/span&gt;. It&amp;#8217;s coming, don&amp;#8217;t worry.&amp;nbsp;;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update …&lt;/strong&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ben Montgomery made some &lt;a href="http://www.montynet.org/packages/madman"&gt;Debian packages&lt;/a&gt; of a recent development version of madman. Try them out, and bother Ben or the list if you have trouble. Yes, I do agree that this is a strong sign that I should release 0.94 &lt;span class="caps"&gt;ASAP&lt;/span&gt;. It&amp;#8217;s coming, don&amp;#8217;t worry.&amp;nbsp;;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Ben just told me that he doesn&amp;#8217;t have time to keep up with development any more, so he&amp;#8217;s retired his packages. Any volunteers to take his&amp;nbsp;place?&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Semolina Pudding / Grießpudding</title><link href="https://mathema.tician.de/semolina-pudding-griesspudding" rel="alternate"></link><published>2005-05-15T13:41:50-05:00</published><updated>2005-05-15T13:41:50-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-15:/semolina-pudding-griesspudding</id><summary type="html">&lt;p&gt;Yesterday, Josie and I were shopping at &lt;a href="http://penny.de"&gt;Penny&lt;/a&gt; and found a pack of semolina that had a really gorgeous-looking pudding on the front. I mean gorgeous, like, just the right reflectiveness, wobbliness, everything. And the pack, whose side conveniently showed the recipe, was only 35 cents. Arrr. Soo good. In …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Yesterday, Josie and I were shopping at &lt;a href="http://penny.de"&gt;Penny&lt;/a&gt; and found a pack of semolina that had a really gorgeous-looking pudding on the front. I mean gorgeous, like, just the right reflectiveness, wobbliness, everything. And the pack, whose side conveniently showed the recipe, was only 35 cents. Arrr. Soo good. In any case, if you need dessert and are not afraid of converting from metric, here&amp;nbsp;goes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;125g of semolina (Weichweizengrie&amp;szlig; in&amp;nbsp;German),&lt;/li&gt;
&lt;li&gt;1 liter of&amp;nbsp;milk,&lt;/li&gt;
&lt;li&gt;4 heaping tbsp of&amp;nbsp;sugar,&lt;/li&gt;
&lt;li&gt;a pinch of&amp;nbsp;salt,&lt;/li&gt;
&lt;li&gt;peels scraped off a lemon with a &lt;em&gt;fine&lt;/em&gt; cheesegrater (Josie says that&amp;#8217;s called&amp;nbsp;&amp;#8220;zest&amp;#8221;),&lt;/li&gt;
&lt;li&gt;and an&amp;nbsp;egg.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now do the&amp;nbsp;following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bring the milk to a&amp;nbsp;boil.&lt;/li&gt;
&lt;li&gt;Separate the egg white from the yolk, stir the yolk into 2 tbsp of water until&amp;nbsp;smooth.&lt;/li&gt;
&lt;li&gt;Beat the egg white until it&amp;#8217;s pretty&amp;nbsp;stiff.&lt;/li&gt;
&lt;li&gt;Once the milk is boiling, take it off the heat and stir in sugar, salt, zest, and watery yolk. Bring to a brief boil, and take it off the&amp;nbsp;stove.&lt;/li&gt;
&lt;li&gt;Fold the egg white into the mixture, pour into serving bowls and let it get&amp;nbsp;cold.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Hmmmm.&lt;/em&gt; Oh, and while you&amp;#8217;re at it, make lemonade from what&amp;#8217;s left of the lemon. Don&amp;#8217;t you remember? If life gives you lemons, &amp;#8230;&amp;nbsp;;)&lt;/p&gt;</content><category term="recipes"></category></entry><entry><title>*snort*</title><link href="https://mathema.tician.de/snort" rel="alternate"></link><published>2005-05-14T05:08:00-05:00</published><updated>2005-05-14T05:08:00-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-14:/snort</id><summary type="html">&lt;p&gt;Courtesy of &lt;a href="http://noricum.blogspot.com/"&gt;Andrea&lt;/a&gt; (who&amp;#8217;s giving Josie &lt;a href="http://noricum.blogspot.com/2005/05/josies-socks.html"&gt;socks&lt;/a&gt;), I give you &lt;strong&gt;Darth Tater&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hasbro.com/starwars/pl/page.news/id.1130/dn/default.cfm"&gt;&lt;img alt="darthtater.jpg" src="/images/darthtater.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/images/darthtater.jpg"&gt;darthtater.jpg&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Courtesy of &lt;a href="http://noricum.blogspot.com/"&gt;Andrea&lt;/a&gt; (who&amp;#8217;s giving Josie &lt;a href="http://noricum.blogspot.com/2005/05/josies-socks.html"&gt;socks&lt;/a&gt;), I give you &lt;strong&gt;Darth Tater&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hasbro.com/starwars/pl/page.news/id.1130/dn/default.cfm"&gt;&lt;img alt="darthtater.jpg" src="/images/darthtater.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/images/darthtater.jpg"&gt;darthtater.jpg&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="silly-stuff"></category></entry><entry><title>Who’s gonna pay for that content?</title><link href="https://mathema.tician.de/whos-gonna-pay-for-that-content" rel="alternate"></link><published>2005-05-07T06:59:06-05:00</published><updated>2005-05-07T06:59:06-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-07:/whos-gonna-pay-for-that-content</id><summary type="html">&lt;p&gt;If you are like most everybody else, you keep music on your computer, be it in &lt;span class="caps"&gt;MP3&lt;/span&gt; or some other format.  Then, most likely, not &lt;em&gt;all&lt;/em&gt; of that music got to your hard drive in ways approved by the recording industry. You feel bad for that, don&amp;#8217;t you? You …&lt;/p&gt;</summary><content type="html">&lt;p&gt;If you are like most everybody else, you keep music on your computer, be it in &lt;span class="caps"&gt;MP3&lt;/span&gt; or some other format.  Then, most likely, not &lt;em&gt;all&lt;/em&gt; of that music got to your hard drive in ways approved by the recording industry. You feel bad for that, don&amp;#8217;t you? You probably don&amp;#8217;t care about rewarding the record company, but you feel that the artist would deserve at least what they get if you buy their &lt;span class="caps"&gt;CD&lt;/span&gt;. What to do? Send them money on Paypal, saying, &amp;#8220;whoops, I copied your music, but no hard feelings&amp;#8212;here&amp;#8217;s a dollar to ease your pain?&amp;#8221; Doesn&amp;#8217;t sound good, does it? Some have suggested a &lt;a href="http://de.wikipedia.org/wiki/Kulturflatrate"&gt;culture flat rate&lt;/a&gt;, a government-administered fund that pays content creators. But why involve the government in something that it knows nothing about? How would the fund distribute the money? Unsolved problems that, &lt;span class="caps"&gt;IMHO&lt;/span&gt;, prevent this from being viable. So there&amp;#8217;s a problem here: You want music. The artist wants to give it to you. But he needs to eat,&amp;nbsp;too.&lt;/p&gt;
&lt;p&gt;Actually, it&amp;#8217;s worse than that. Movies, music, texts, software, all this can generally be seen as &lt;em&gt;content&lt;/em&gt;. Much of today&amp;#8217;s content is put out by an industry dedicated to its creation. There&amp;#8217;s the movie industry, the software industry, the publishing industry and the recording industry, which, despite some differences, are all suffering from similar problems these&amp;nbsp;days.&lt;/p&gt;
&lt;p&gt;The purpose of this essay is to propose a solution to this problem, and the key term will be a &amp;#8220;college of creators.&amp;#8221; But before I go into any detail about that, I would like to state some truths about creation and dissemination of content that I think are&amp;nbsp;invariable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copying, legitimate or not, of content is here to stay, and cannot be prevented. The industry&amp;#8217;s Digital Rights Management (&lt;span class="caps"&gt;DRM&lt;/span&gt;) technology will be both expensive and ineffective. Corny and dated as it may sound, &amp;#8220;&lt;em&gt;information wants to be free.&lt;/em&gt;&amp;#8221;&lt;/li&gt;
&lt;li&gt;The widest possible dissemination of content is not only inevitable, it is socially desirable. The public domain should be as large as&amp;nbsp;possible.&lt;/li&gt;
&lt;li&gt;If a creator &lt;em&gt;desires&lt;/em&gt; to be rewarded for (or even make a living off) his creations, there should a way for him to receive a tangible (i.e. monetary) reward for a substantial contribution to the public&amp;nbsp;domain.&lt;/li&gt;
&lt;li&gt;Publicity is unnecessary, word-of-mouth is sufficient. Advertisements only serve to skew the public opinion to further business interests. Diversity is&amp;nbsp;better.&lt;/li&gt;
&lt;li&gt;The cost of publishing is rapidly going&amp;nbsp;down&amp;#8212;Internet&lt;/li&gt;
&lt;li&gt;There is too much content on&amp;nbsp;earth.&lt;/li&gt;
&lt;/ul&gt;</content><category term="university"></category><category term="rants"></category></entry><entry><title>We wash so much whiter…</title><link href="https://mathema.tician.de/we-wash-so-much-whiter" rel="alternate"></link><published>2005-05-02T03:28:59-05:00</published><updated>2005-05-02T03:28:59-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-02:/we-wash-so-much-whiter</id><summary type="html">&lt;p&gt;&lt;img alt="We wash whiter!" src="http://gallery.tiker.net/d/1088-2/linux-the-detergent.jpeg" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8230;and that&amp;#8217;s guaranteed!&amp;nbsp;:)&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="We wash whiter!" src="http://gallery.tiker.net/d/1088-2/linux-the-detergent.jpeg" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8230;and that&amp;#8217;s guaranteed!&amp;nbsp;:)&lt;/p&gt;</content><category term="silly-stuff"></category></entry><entry><title>Summer is here!</title><link href="https://mathema.tician.de/summer-is-here" rel="alternate"></link><published>2005-05-01T08:14:16-05:00</published><updated>2005-05-01T08:14:16-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-05-01:/summer-is-here</id><summary type="html">&lt;p&gt;So, how come I finally noticed? We had a phat &lt;span class="caps"&gt;BBQ&lt;/span&gt; yesterday, starring some salad, grilled veggies, steaks, and finishing with Josie&amp;#8217;s berries&amp;#8217;n&amp;#8217;cream dessert. While your mouth is watering, I&amp;#8217;ll also tell you that to enjoy this, I spent much of yesterday cleaning our balcony. Sounds …&lt;/p&gt;</summary><content type="html">&lt;p&gt;So, how come I finally noticed? We had a phat &lt;span class="caps"&gt;BBQ&lt;/span&gt; yesterday, starring some salad, grilled veggies, steaks, and finishing with Josie&amp;#8217;s berries&amp;#8217;n&amp;#8217;cream dessert. While your mouth is watering, I&amp;#8217;ll also tell you that to enjoy this, I spent much of yesterday cleaning our balcony. Sounds un-fun, but actually it was. I like splashing around with water and removing really dirty dirt.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;Being outside also rocks since I can&amp;#8217;t do most fun things for another week because of some stitches I got on my back. But they&amp;#8217;re healing, and come next Sunday, I&amp;#8217;ll be back to being allowed to do what I want! Among the first things I&amp;#8217;ll be doing will be:
&lt;em&gt; Take a &lt;/em&gt;normal&lt;em&gt; shower. Washing yourself with just a washcloth on the sink is &lt;/em&gt;so&lt;em&gt; slow, it stinks. (No, not &lt;/em&gt;I&lt;em&gt; stink after washing like that. &lt;/em&gt;It&lt;em&gt; stinks. }:))
&lt;/em&gt; Go skate!
* Go to the pool!&amp;nbsp;:yes:&lt;/p&gt;
&lt;p&gt;The clean balcony also enables me to sit outside with my laptop, using my newly-gained &lt;a href="http://news.tiker.net/node/205"&gt;wireless networking&lt;/a&gt;. Wireless (or &lt;a href="http://nocat.net/"&gt;nocat&lt;/a&gt;&amp;#8212;see the Einstein quote on the left ;)) rocks, I must say. At this point, I&amp;#8217;m using NDISWrapper to drive the card, since the open-source driver is, umm, not-quite-there-yet(tm). I hope that&amp;#8217;ll change,&amp;nbsp;though. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; My card was broken. That&amp;#8217;s why rt2500 didn&amp;#8217;t work. Now that I have a non-broken card, everything is&amp;nbsp;fine.&lt;/p&gt;
&lt;p&gt;Now, back to our regularly scheduled lemonade slurping.&amp;nbsp;:)&lt;/p&gt;</content><category term="life"></category></entry><entry><title>Harmful and privileged</title><link href="https://mathema.tician.de/harmful-and-privileged" rel="alternate"></link><published>2005-04-25T17:00:12-05:00</published><updated>2005-04-25T17:00:12-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-04-25:/harmful-and-privileged</id><summary type="html">&lt;p&gt;Imagine that you have a habit of harming other people. Imagine that other people feel nauseous in your presence and can&amp;#8217;t stand your stench. And it&amp;#8217;s not like you couldn&amp;#8217;t be like everybody else. You are &lt;em&gt;choosing&lt;/em&gt; to be toxic. What would you expect society to do …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Imagine that you have a habit of harming other people. Imagine that other people feel nauseous in your presence and can&amp;#8217;t stand your stench. And it&amp;#8217;s not like you couldn&amp;#8217;t be like everybody else. You are &lt;em&gt;choosing&lt;/em&gt; to be toxic. What would you expect society to do to you? Lock you up?&amp;nbsp;Maybe.&lt;/p&gt;
&lt;p&gt;Actually, far from it. The German society&amp;#8212;well&amp;#8212;&lt;a href="http://bahn.de"&gt;Deutsche Bahn&lt;/a&gt;, the German railway company, will gladly grant you more space to sit (with others like you), give you your own bathroom and many other perks. As you might have figured out by now, this is about smoking. In recent times, as German trains seem to be filling up for some reason or another, people in non-smoking compartments have a tendency to sit packed, filling up every seat, while smokers are often seen leisurely lounging in the pair of seats they have to themselves. I&amp;#8217;m a bit mad about this because a &lt;em&gt;harmful habit&lt;/em&gt; is what grants them this extra degree of&amp;nbsp;freedom. &lt;/p&gt;
&lt;p&gt;I am claiming that there is also no business argument in favor of having smoking compartments. Consider what happened after the recent smoking bans all over the world (and in Germany!): Bars and pubs ended up selling more. But I imagine that no-one is listening and that Deutsche Bahn, as so often, is asleep at the wheel. (As you might know, this only refers to the long-distance trains&amp;#8212;Smoking was prohibited on regional trains a while&amp;nbsp;ago.)&lt;/p&gt;</content><category term="rants"></category></entry><entry><title>And white smoke has finally risen…</title><link href="https://mathema.tician.de/and-white-smoke-has-finally-risen" rel="alternate"></link><published>2005-04-17T17:00:23-05:00</published><updated>2005-04-17T17:00:23-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-04-17:/and-white-smoke-has-finally-risen</id><summary type="html">&lt;p&gt;After a 10-day &lt;a href="/image/tid/28"&gt;visit&lt;/a&gt; to the &lt;span class="caps"&gt;US&lt;/span&gt;, much pondering with friends, and a late night, a decision has finally been reached. And no, I&amp;#8217;m not talking about the pending election of the new pope. Instead, I have (in cooperation with Josie) chosen where to spend the next few years …&lt;/p&gt;</summary><content type="html">&lt;p&gt;After a 10-day &lt;a href="/image/tid/28"&gt;visit&lt;/a&gt; to the &lt;span class="caps"&gt;US&lt;/span&gt;, much pondering with friends, and a late night, a decision has finally been reached. And no, I&amp;#8217;m not talking about the pending election of the new pope. Instead, I have (in cooperation with Josie) chosen where to spend the next few years of my&amp;nbsp;life.&lt;/p&gt;
&lt;p&gt;The winner&amp;nbsp;is&amp;#8230;&lt;/p&gt;
&lt;p&gt;&amp;#8230;the &lt;a href="http://www.dam.brown.edu"&gt;Division of Applied Mathematics&lt;/a&gt; at &lt;a href="http://www.brown.edu"&gt;Brown University&lt;/a&gt;, where I will be pursuing a&amp;nbsp;PhD. &lt;/p&gt;
&lt;p&gt;I ended up with offers from there, the &lt;a href="http://www.amsc.umd.edu"&gt;University of Maryland&lt;/a&gt; and &lt;a href="http://www.math.ncsu.edu"&gt;North Carolina State&lt;/a&gt;, both of which I (sadly) had to turn down; they also looked like very decent places to go for an applied math PhD. Alas, I can&amp;#8217;t tear myself apart. :o What made Brown my top choice was a really wild mix of feelings&amp;#8212;in the end, there were many rational arguments for or against each place: public vs. private, big vs. small, heavily grant-oriented vs. fairly independent, sociable vs. individual, rather European-looking surroundings vs. the South (which I like, don&amp;#8217;t get me wrong)&amp;#8230; A few days after having given up the liberty of choice, I&amp;#8217;m still comfortable with my decision. I guess that&amp;#8217;s a good sign.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m still trying to recover from jet lag. I don&amp;#8217;t know, the eastward trip always bothers me more than the westward one. I can&amp;#8217;t seem to get over the time difference in less than about 1.5 weeks. :? I was lucky enough to sit next to &lt;a href="http://www.stegers.de/till"&gt;Till&lt;/a&gt; on the way out, which made that flight a whole lot more fun than the return trip. My initial three &amp;#8220;vacation&amp;#8221; days in New York left me sick and were not enjoyable at all. &lt;span class="caps"&gt;NYC&lt;/span&gt; is, from what I can tell, just too friggin&amp;#8217; big for me. Just seeing nature after not having any for three days was such an enjoyment&amp;#8230; From there, Greyhound and Amtrak took me around the country to all those three schools, which was fun. (Including the overnight train ride to &lt;span class="caps"&gt;DC&lt;/span&gt;.) I flew out of &lt;span class="caps"&gt;RDU&lt;/span&gt; last Sunday, after having seen Josie&amp;#8217;s parents on&amp;nbsp;Saturday.&lt;/p&gt;
&lt;p&gt;The last week, my first week back in Germany, also marked the start of the semester at Karlsruhe, providing for a lot of work. I&amp;#8217;ll be taking courses on differential geometry and multigrid methods, and I&amp;#8217;ll be teaching half of a tutorial section on numerical methods for PDEs. My first appearance in that function is due Apr 26.&amp;nbsp;8)&lt;/p&gt;
&lt;p&gt;Free Software-wise, I know from the emails that I&amp;#8217;ve been getting that I really need to spend some time on &lt;a href="/software/madman"&gt;madman&lt;/a&gt; (which will happen in due course). I&amp;#8217;m also in the process of preparing a new release of &lt;a href="/software/pylinear"&gt;PyLinear&lt;/a&gt;. Hang in there.&amp;nbsp;:D&lt;/p&gt;</content><category term="grad-school"></category></entry><entry><title>Trolltech broke my madman</title><link href="https://mathema.tician.de/trolltech-broke-my-madman" rel="alternate"></link><published>2005-03-27T06:09:17-06:00</published><updated>2005-03-27T06:09:17-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-03-27:/trolltech-broke-my-madman</id><summary type="html">&lt;p&gt;Apparently, Trolltech made some incompatible change to QTable&amp;#8217;s code, and by &amp;#8220;virtue&amp;#8221; of this change, in-line retagging doesn&amp;#8217;t work for me any more. I&amp;#8217;ll endeavor to have this fixed soon, but I&amp;#8217;ll be out to the &lt;span class="caps"&gt;US&lt;/span&gt; for about a week and a half at the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Apparently, Trolltech made some incompatible change to QTable&amp;#8217;s code, and by &amp;#8220;virtue&amp;#8221; of this change, in-line retagging doesn&amp;#8217;t work for me any more. I&amp;#8217;ll endeavor to have this fixed soon, but I&amp;#8217;ll be out to the &lt;span class="caps"&gt;US&lt;/span&gt; for about a week and a half at the end of March, so I suppose it&amp;#8217;ll be a while. Hang in&amp;nbsp;there&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The problem appears to have vanished. So, I assume it was a temporarily broken Debian package. Or a fluke in the transjector matrix. Or whatever.&amp;nbsp;:)&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Äl Jawala</title><link href="https://mathema.tician.de/ael-jawala" rel="alternate"></link><published>2005-03-27T05:58:56-06:00</published><updated>2005-03-27T05:58:56-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-03-27:/ael-jawala</id><summary type="html">&lt;p&gt;The sole purpose of this entry is to provide some Google Juice to &lt;a href="http://www.jawala.de"&gt;Äl Jawala&lt;/a&gt;, a two-sax, two-drummer band. We saw them outside Karstadt yesterday, and apparently they were at Sauschdall in Ulm last week. They rock. :yes: We bought their live &lt;span class="caps"&gt;CD&lt;/span&gt; &amp;#8220;Balkan Big Beatz&amp;#8221;. Dude. Kewl.&amp;nbsp;8)&lt;/p&gt;
&lt;p&gt;If …&lt;/p&gt;</summary><content type="html">&lt;p&gt;The sole purpose of this entry is to provide some Google Juice to &lt;a href="http://www.jawala.de"&gt;Äl Jawala&lt;/a&gt;, a two-sax, two-drummer band. We saw them outside Karstadt yesterday, and apparently they were at Sauschdall in Ulm last week. They rock. :yes: We bought their live &lt;span class="caps"&gt;CD&lt;/span&gt; &amp;#8220;Balkan Big Beatz&amp;#8221;. Dude. Kewl.&amp;nbsp;8)&lt;/p&gt;
&lt;p&gt;If you are the &lt;span class="caps"&gt;US&lt;/span&gt; government reading this for purposes of granting my study-abroad visa: They&amp;#8217;re a &lt;em&gt;jazz band&lt;/em&gt;, not an &lt;em&gt;Islamic terrorist group&lt;/em&gt;.&lt;/p&gt;</content><category term="life"></category><category term="mindless-link-propagation"></category></entry><entry><title>Buying pants in Germany</title><link href="https://mathema.tician.de/buying-pants-in-germany" rel="alternate"></link><published>2005-03-27T05:36:36-06:00</published><updated>2005-03-27T05:36:36-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-03-27:/buying-pants-in-germany</id><summary type="html">&lt;p&gt;Let&amp;#8217;s start by stating a fact: Pants sizes are an at least two-dimensional affair. You have the waist and the length. Both are correlated, but not so strongly that it would be effective to make a one-dimensional measurement out of the two. Obviously, some are fatter than others. (For …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Let&amp;#8217;s start by stating a fact: Pants sizes are an at least two-dimensional affair. You have the waist and the length. Both are correlated, but not so strongly that it would be effective to make a one-dimensional measurement out of the two. Obviously, some are fatter than others. (For example, unfortunately, my waist length has gone from 34 two years ago to 38 these days. :( My legs, however, have stayed the same 36 inches they&amp;#8217;ve always&amp;nbsp;been.)&lt;/p&gt;
&lt;p&gt;Some parts of Germany&amp;#8217;s textile industry, however, seem to think that &lt;em&gt;one&lt;/em&gt; size number for pants is enough. When the above fact struck them (and I suppose it must have struck them pretty hard), they apparently panicked and thought of a very ad-hoc fix for the situation: Take the pants sizes as they are and &lt;em&gt;double&lt;/em&gt; them to mean &amp;#8220;longer legs and thinner&amp;#8221;, and halve them to mean &amp;#8220;shorter legs and fatter&amp;#8221;. That&amp;#8217;s &lt;em&gt;one&lt;/em&gt; way to conceal two dimensions in one. And it yields a very amusing nonlinearity: I can typically wear pants sizes between 54 and 106. Minus the range between 56 and 102.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;But it gets worse. Apparently, C&amp;amp;A figured out the above fact, but too late. Within the same stack of pants (from the same manufacturer!), we&amp;nbsp;found:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pants marked two-dimensionally in inches.&amp;nbsp;Good.&lt;/li&gt;
&lt;li&gt;Pants marked two-dimensionally in some strange unit, by which I had 54x48. Very apparently not centimeters.&amp;nbsp;:)&lt;/li&gt;
&lt;li&gt;Pants marked one-dimensionally in&amp;nbsp;inches.&lt;/li&gt;
&lt;li&gt;Pants marked one-dimensionally in the German&amp;nbsp;system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;People, get a grip. I know that nobody&amp;#8217;s listening, but for once I suggest Germany just adopt the American 2D inch sizing system. It works. It&amp;#8217;s well-defined. Lord knows I&amp;#8217;m no big friend of the Imperial system of units. But this is one instance where Germany&amp;#8217;s otherwise happily-metric system is severely screwed&amp;nbsp;up.&lt;/p&gt;
&lt;p&gt;If you wanna see what I bought, look &lt;a href="http://news.tiker.net/image/tid/26"&gt;here&lt;/a&gt;. (I took those pictures mainly for my parents&amp;#8217; benefit. Not for &lt;em&gt;yours&lt;/em&gt;. Did you really think I was that vain?&amp;nbsp;;))&lt;/p&gt;</content><category term="life"></category><category term="rants"></category></entry><entry><title>We’re not creators of ourselves</title><link href="https://mathema.tician.de/were-not-creators-of-ourselves" rel="alternate"></link><published>2005-03-24T01:35:21-06:00</published><updated>2005-03-24T01:35:21-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-03-24:/were-not-creators-of-ourselves</id><summary type="html">&lt;p&gt;We&amp;#8217;re not creators of ourselves&lt;br/&gt;
We are only skin and bones&lt;br/&gt;
Our universe immersed in glass,&lt;br/&gt;
and now it&amp;#8217;s raining&amp;nbsp;stones&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Lyrics by De Phazz, &amp;#8220;Keep it simple&amp;#8221; on &amp;#8220;Natural&amp;nbsp;Fake&amp;#8221;&lt;/em&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;We&amp;#8217;re not creators of ourselves&lt;br/&gt;
We are only skin and bones&lt;br/&gt;
Our universe immersed in glass,&lt;br/&gt;
and now it&amp;#8217;s raining&amp;nbsp;stones&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Lyrics by De Phazz, &amp;#8220;Keep it simple&amp;#8221; on &amp;#8220;Natural&amp;nbsp;Fake&amp;#8221;&lt;/em&gt;&lt;/p&gt;</content></entry><entry><title>De Phazz - Natural Fake</title><link href="https://mathema.tician.de/de-phazz-natural-fake" rel="alternate"></link><published>2005-03-23T15:42:17-06:00</published><updated>2005-03-23T15:42:17-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-03-23:/de-phazz-natural-fake</id><summary type="html">&lt;p&gt;After a little more than a week of owning &lt;a href="http://www.de-phazz.com/"&gt;De Phazz&lt;/a&gt;&amp;#8216;s new album &lt;a href="http://www.amazon.de/exec/obidos/ASIN/B000787X78"&gt;Natural Fake&lt;/a&gt;, I&amp;#8217;m not as excited as I was at first. Maybe that has to do with how much I listened to it. But altogether, I have noticed that many songs are much more repetitive …&lt;/p&gt;</summary><content type="html">&lt;p&gt;After a little more than a week of owning &lt;a href="http://www.de-phazz.com/"&gt;De Phazz&lt;/a&gt;&amp;#8216;s new album &lt;a href="http://www.amazon.de/exec/obidos/ASIN/B000787X78"&gt;Natural Fake&lt;/a&gt;, I&amp;#8217;m not as excited as I was at first. Maybe that has to do with how much I listened to it. But altogether, I have noticed that many songs are much more repetitive than their previous work. And repetitive = boring. The &lt;span class="caps"&gt;CD&lt;/span&gt; has been fairly successful at putting me to sleep on several occasions, which may have some merit. :) But listening to it today right before listening to some songs by &lt;a href="http://magnatune.com/artists/cargo_cult"&gt;Cargo Cult&lt;/a&gt; reminded me that there&amp;#8217;s sometimes more to a good song than what Natural Fake delivers. Hear you me, the album doesn&amp;#8217;t suck. I like it. It&amp;#8217;s just a bit short of the mark that was set by, say, Death by&amp;nbsp;Chocolate.&lt;/p&gt;
&lt;p&gt;Anyway&amp;#8212;keep on rockin&amp;#8217;. 8)&amp;nbsp;;)&lt;/p&gt;</content><category term="reviews"></category></entry><entry><title>When I grow up, …</title><link href="https://mathema.tician.de/when-i-grow-up" rel="alternate"></link><published>2005-03-23T15:41:19-06:00</published><updated>2005-03-23T15:41:19-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-03-23:/when-i-grow-up</id><summary type="html">&lt;p&gt;&amp;#8230; I want to be just like &lt;a href="http://www.kleptography.com"&gt;him&lt;/a&gt;.&lt;/p&gt;</summary><content type="html">&lt;p&gt;&amp;#8230; I want to be just like &lt;a href="http://www.kleptography.com"&gt;him&lt;/a&gt;.&lt;/p&gt;</content><category term="digital-photography"></category><category term="mindless-link-propagation"></category></entry><entry><title>Photo trip through Ulm</title><link href="https://mathema.tician.de/photo-trip-through-ulm" rel="alternate"></link><published>2005-03-16T14:51:34-06:00</published><updated>2005-03-16T14:51:34-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-03-16:/photo-trip-through-ulm</id><summary type="html">&lt;p&gt;Josie and I went on a brief end-of-winter-walk through Ulm on Sunday, and even though it was pretty cold, we got a hold of a few &lt;a href="/image/tid/23"&gt;shots&lt;/a&gt;.&amp;nbsp;Enjoy.&lt;/p&gt;
&lt;p&gt;I, for one, am glad that spring has finally sprung in Germany. Just imagine. I was out in a T-Shirt today. And …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Josie and I went on a brief end-of-winter-walk through Ulm on Sunday, and even though it was pretty cold, we got a hold of a few &lt;a href="/image/tid/23"&gt;shots&lt;/a&gt;.&amp;nbsp;Enjoy.&lt;/p&gt;
&lt;p&gt;I, for one, am glad that spring has finally sprung in Germany. Just imagine. I was out in a T-Shirt today. And I officially opened my inline skating season. Wow.&amp;nbsp;;)&lt;/p&gt;</content><category term="digital-photography"></category><category term="life"></category></entry><entry><title>It feels good…</title><link href="https://mathema.tician.de/it-feels-good" rel="alternate"></link><published>2005-03-09T14:32:04-06:00</published><updated>2005-03-09T14:32:04-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-03-09:/it-feels-good</id><summary type="html">&lt;p&gt;&amp;#8230;to have a door&amp;nbsp;again.&lt;/p&gt;
&lt;p&gt;That will be&amp;nbsp;all.&lt;/p&gt;</summary><content type="html">&lt;p&gt;&amp;#8230;to have a door&amp;nbsp;again.&lt;/p&gt;
&lt;p&gt;That will be&amp;nbsp;all.&lt;/p&gt;</content><category term="life"></category></entry><entry><title>The Battery Rant</title><link href="https://mathema.tician.de/the-battery-rant" rel="alternate"></link><published>2005-03-07T18:41:05-06:00</published><updated>2005-03-07T18:41:05-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-03-07:/the-battery-rant</id><summary type="html">&lt;p&gt;No matter what you do, do not ever buy the &lt;a href="http://www.hama.de/portal/articleId*93164/action*2563"&gt;2000 mAh rechargeables&lt;/a&gt; from &lt;a href="http://www.hama.de"&gt;Hama&lt;/a&gt;. They seem to have a pretty high defect rate. Today I finally got a refund for my set of four, which I had exchanged no less than twice before. Each time I came home with …&lt;/p&gt;</summary><content type="html">&lt;p&gt;No matter what you do, do not ever buy the &lt;a href="http://www.hama.de/portal/articleId*93164/action*2563"&gt;2000 mAh rechargeables&lt;/a&gt; from &lt;a href="http://www.hama.de"&gt;Hama&lt;/a&gt;. They seem to have a pretty high defect rate. Today I finally got a refund for my set of four, which I had exchanged no less than twice before. Each time I came home with a new shiny set, I put it in my charger (also from Hama), only to find out that at least one of the batteries was broken. (Broken as in zero voltage between the ports.) At least the refund from &lt;a href="http://www.saturn.de"&gt;Saturn&lt;/a&gt; was fairly&amp;nbsp;painless.&lt;/p&gt;
&lt;p&gt;Saturn, however, attempts to trick you when you &lt;em&gt;buy&lt;/em&gt; stuff. They have two separate battery shelves at different locations in the store, one overpriced and no-name, the other reputable-brand and reasonably-priced. Inexplicably, the section with the reasonably-priced batteries says &amp;#8220;Inkjet paper&amp;#8221; at the top. It makes you feel like they &lt;em&gt;don&amp;#8217;t&lt;/em&gt; want you to find that stuff. This is true at least of the branch in Karlsruhe. (Note that my batteries came from the reasonably-priced shelf.&amp;nbsp;:P)&lt;/p&gt;</content><category term="reviews"></category></entry><entry><title>The State of 802.11g Wireless Networking in Linux</title><link href="https://mathema.tician.de/the-state-of-802-11g-wireless-networking-in-linux" rel="alternate"></link><published>2005-03-07T18:40:34-06:00</published><updated>2005-03-07T18:40:34-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-03-07:/the-state-of-802-11g-wireless-networking-in-linux</id><summary type="html">&lt;p&gt;This entry describes my way to wireless &lt;span class="caps"&gt;LAN&lt;/span&gt; in Linux. It is an update of an earlier article. All I wanted was an 802.11g-compatible &lt;span class="caps"&gt;PCMCIA&lt;/span&gt; card with a reasonably open and functional Linux driver. I find it ok if the card&amp;#8217;s firmware is not open source, but I …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This entry describes my way to wireless &lt;span class="caps"&gt;LAN&lt;/span&gt; in Linux. It is an update of an earlier article. All I wanted was an 802.11g-compatible &lt;span class="caps"&gt;PCMCIA&lt;/span&gt; card with a reasonably open and functional Linux driver. I find it ok if the card&amp;#8217;s firmware is not open source, but I hate dealing with binary-only blobs in kernel modules. &lt;a href="http://ndiswrapper.sf.net"&gt;NDISWrapper&lt;/a&gt; is (&lt;span class="caps"&gt;IMHO&lt;/span&gt;) a cute hack, but even uglier than binary blobs and consequently not an option. Under these constraints, there weren&amp;#8217;t many choices in terms of the chipsets that I might&amp;nbsp;use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href="http://www.ralinktech.com.tw"&gt;RaLink&lt;/a&gt; &lt;span class="caps"&gt;RT2&lt;/span&gt;[45]00 chips have &lt;a href="http://rt2x00.serialmonkey.com/"&gt;&lt;span class="caps"&gt;GPL&lt;/span&gt; drivers&lt;/a&gt; released for them by the manufacturer. My new &lt;span class="caps"&gt;WLAN&lt;/span&gt; card, a Conceptronic &lt;span class="caps"&gt;C54RC&lt;/span&gt;, has this chipset. There are &lt;a href="http://rt2x00.serialmonkey.com/wiki/index.php/Hardware"&gt;a ton of others&lt;/a&gt; that have it, too. The &lt;code&gt;rt2500&lt;/code&gt; driver, checked out from &lt;a href="http://www.sf.net/projects/rt2400"&gt;&lt;span class="caps"&gt;CVS&lt;/span&gt;&lt;/a&gt; as of 2005-03-07, works for me, even though it takes a while until the card associates with an &lt;span class="caps"&gt;AP&lt;/span&gt;. The drivers&amp;#8217; web site could also stand some improvement, but I hear that this is being worked on. Also, the card is supposed to be tad slow, probably because of a bottleneck in the current driver. But overall, I&amp;#8217;m pretty happy with my&amp;nbsp;purchase.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href="http://prism54.org"&gt;Intersil PrismGT&lt;/a&gt; was a hopeful contender, until the card manufacturers discovered that they can save a few cents on each card if they stick the &lt;span class="caps"&gt;MAC&lt;/span&gt;-layer processing into the host driver instead of the card&amp;#8217;s firmware. (This cheaper type of card is called SoftMAC and will make the &lt;code&gt;prism54&lt;/code&gt; driver complain about &amp;#8220;&lt;code&gt;no 'reset complete' IRQ seen - retrying&lt;/code&gt;&amp;#8221; and &amp;#8220;&lt;code&gt;prism54: Your card/socket may be faulty, or IRQ line too busy&lt;/code&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;). The driver is complete, functional and open, but it doesn&amp;#8217;t support the SoftMAC cards, and the earlier hardware versions that aren&amp;#8217;t SoftMAC are nowhere to be found, not even on ebay. I find it a shame that a good piece of software is ruined by the manufacturers&amp;#8217; greed. Honestly, I&amp;#8217;d gladly pay more for a card that just works with an open driver, and I believe that I&amp;#8217;m not alone. What&amp;#8217;s worse: There is no sure-fire way to tell the bad cards from the good ones. In some instances (like the Netgear &lt;span class="caps"&gt;WG511&lt;/span&gt;, which I bought and returned), both types are almost indistinguishable visually. (In fact, for the Netgear cards, the label &lt;code&gt;MADE IN CHINA&lt;/code&gt; is the only feature that seems to suggest&amp;nbsp;unsupportedness.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.sf.net/projects/madwifi"&gt;Atheros-based&lt;/a&gt; cards seem to be an ok (but partly non-open) choice. It seems that there is no (or very little) on-card processing power, no firmware, but a binary blob called &amp;#8220;&lt;span class="caps"&gt;HAL&lt;/span&gt;&amp;#8221; (as in Hardware Abstraction Layer). This &lt;span class="caps"&gt;HAL&lt;/span&gt; shields the card&amp;#8217;s apparently sensitive and protection-worthy programming interface from the prying eyes of evil source code readers. (Not that the whole thing hasn&amp;#8217;t been &lt;a href="http://kerneltrap.org/node/4118"&gt;reverse-engineered&lt;/a&gt; yet.) It seems that the restriction is partly the &lt;a href="http://fcc.gov"&gt;&lt;span class="caps"&gt;FCC&lt;/span&gt;&amp;#8217;s&lt;/a&gt; fault, which doesn&amp;#8217;t allow freely programmable software radios like the Atheros chipset in a consumer&amp;#8217;s unqualified fingers. Since there is so little on-card processing power, the driver needs to reimplement nearly all of 802.11. This implementation is, apparently, fairly complete and was ported from OpenBSD, but I&amp;#8217;ve heard that it lacks a properly working Ad-hoc mode, which is no big deal to&amp;nbsp;me.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://ipw2200.sf.net"&gt;Intel&amp;#8217;s ipw2200&lt;/a&gt; (aka Centrino) looks good, but is not available in &lt;span class="caps"&gt;PCMCIA&lt;/span&gt; form&amp;nbsp;factor.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span class="caps"&gt;TI&lt;/span&gt;&amp;#8217;s &lt;a href="http://acx100.sf.net"&gt;&lt;span class="caps"&gt;ACX100&lt;/span&gt;&lt;/a&gt; is a relatively new contender driver-wise, and, according to its &lt;a href="http://lisas.de/~andi/acx100/"&gt;developer&lt;/a&gt;, it basically works, is currently maintained, but doesn&amp;#8217;t do &lt;span class="caps"&gt;WEP&lt;/span&gt; reliably. &lt;span class="caps"&gt;TI&lt;/span&gt; is also notorious for not giving out hardware specifications to open source&amp;nbsp;developers.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are a wireless card manufacturer reading this, please try to follow these&amp;nbsp;guidelines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you change the chipset, change the name of the card. I hate nothing more than thinking that I&amp;#8217;m buying something that&amp;#8217;s supported, when, really, the hardware has changed and I&amp;#8217;m buying an expensive&amp;nbsp;paperweight.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If there&amp;#8217;s a working open-source driver, don&amp;#8217;t stop selling the card. If it&amp;#8217;s causing cost trouble, up the price. I&amp;#8217;ll gladly pay for something if I know that it&amp;#8217;ll&amp;nbsp;work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Release full-&lt;span class="caps"&gt;GPL&lt;/span&gt; Linux drivers, or at least release hardware specifications (possibly under &lt;span class="caps"&gt;NDA&lt;/span&gt;) and allow the development of &lt;span class="caps"&gt;GPL&lt;/span&gt;&amp;nbsp;drivers.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are a customer looking for a card and reading this, consider not buying from manufacturers that do not follow these guidelines. At this point, this includes D-Link and Netgear, among others. Instead, consider &lt;strong&gt;buying RaLink-based cards&lt;/strong&gt;. They&amp;#8217;re inexpensive, and they have full-&lt;span class="caps"&gt;GPL&lt;/span&gt; drivers that work (minus a few bugs, which I assume will be ironed&amp;nbsp;out).&lt;/p&gt;
&lt;p&gt;For more information, see the exhaustive &lt;a href="http://ndiswrapper.sourceforge.net/phpwiki/index.php/List"&gt;NDISWrapper card list&lt;/a&gt; and Jean Tourrilhes&amp;#8217; &lt;a href="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.drivers.802.11ag.html"&gt;Wireless &lt;span class="caps"&gt;HOWTO&lt;/span&gt;&lt;/a&gt;. I have tried to combine its information content with driver-specific bits&amp;#8217;n&amp;#8217;pieces I scavenged for my own purchasing decision. I hope this helps&amp;nbsp;somebody.&lt;/p&gt;</content><category term="linux"></category><category term="rants"></category><category term="reviews"></category></entry><entry><title>AutoDJ from Source</title><link href="https://mathema.tician.de/autodj-from-source" rel="alternate"></link><published>2005-03-06T18:43:15-06:00</published><updated>2005-03-06T18:43:15-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-03-06:/autodj-from-source</id><summary type="html">&lt;p&gt;I just committed a first cut of the much-requested &amp;#8220;AutoDJ from Source&amp;#8221; functionality. I&amp;#8217;d appreciate feedback on how well it does for everybody. 0.94 is well on the way, but as you may have seen from my &lt;a href="http://news.tiker.net/"&gt;journal&lt;/a&gt;, my life has sped up rather than slowed down since …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I just committed a first cut of the much-requested &amp;#8220;AutoDJ from Source&amp;#8221; functionality. I&amp;#8217;d appreciate feedback on how well it does for everybody. 0.94 is well on the way, but as you may have seen from my &lt;a href="http://news.tiker.net/"&gt;journal&lt;/a&gt;, my life has sped up rather than slowed down since I finished. However, I&amp;#8217;m fighting to actually spend &lt;em&gt;some&lt;/em&gt; time on madman maintenance. Wish me luck.&amp;nbsp;:)&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>I won’t believe it until I see it with my own eyes, but…</title><link href="https://mathema.tician.de/i-wont-believe-it-until-i-see-it-with-my-own-eyes-but" rel="alternate"></link><published>2005-03-03T14:05:06-06:00</published><updated>2005-03-03T14:05:06-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-03-03:/i-wont-believe-it-until-i-see-it-with-my-own-eyes-but</id><summary type="html">&lt;p&gt;Good news, everyone! :D My parents just got a letter from &lt;a href="http://www.brown.edu"&gt;Brown University&lt;/a&gt; stating my admission to the PhD program in the &lt;a href="http://www.dam.brown.edu"&gt;Division of Applied Mathematics&lt;/a&gt; there. Yeeeee-haw!!!! :D 8) Oh, yeah, there&amp;#8217;s plenty of financial aid to go around, as well, including a fellowship for the first year …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Good news, everyone! :D My parents just got a letter from &lt;a href="http://www.brown.edu"&gt;Brown University&lt;/a&gt; stating my admission to the PhD program in the &lt;a href="http://www.dam.brown.edu"&gt;Division of Applied Mathematics&lt;/a&gt; there. Yeeeee-haw!!!! :D 8) Oh, yeah, there&amp;#8217;s plenty of financial aid to go around, as well, including a fellowship for the first year. How cool is that? :D I guess I&amp;#8217;ll have to have a party some time&amp;nbsp;soon&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; &lt;a href="http://www.brown.edu/Administration/Photos/photos.html"&gt;Here&lt;/a&gt; &lt;a href="http://www.asergeev.com/pictures/archives/compress/2003/370/19.htm"&gt;are&lt;/a&gt; &lt;a href="http://www.providenceri.com/richardbenjamin/Brown-5-02.html"&gt;some&lt;/a&gt; &lt;a href="http://www.skypic.com/colleges/5-9005.jpg"&gt;pictures&lt;/a&gt; of what it&amp;#8217;s supposed to be like.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 2:&lt;/strong&gt; I&amp;#8217;ve decided to stop talking about matters of grad school admissions on this site until I know where I will be going, since it has come to my attention that at least one person involved has actually read what I wrote. I&amp;#8217;d find it poor style if I just kept blabbing. I&amp;#8217;ve also removed the link from tiker.net to this&amp;nbsp;site.&lt;/p&gt;</content><category term="grad-school"></category><category term="life"></category></entry><entry><title>Back from Snowboarding</title><link href="https://mathema.tician.de/back-from-snowboarding" rel="alternate"></link><published>2005-02-28T17:45:33-06:00</published><updated>2005-02-28T17:45:33-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-02-28:/back-from-snowboarding</id><summary type="html">&lt;p&gt;I&amp;#8217;m back from snowboarding! It was great. :D Snowboarding rocks. Even the one ski person we had on the trip had to admit that. }:) We had &lt;em&gt;seriously&lt;/em&gt; great weather. Sun during the day, snow during the night, fairly warm, good snow conditions. I don&amp;#8217;t know what could&amp;#8217;ve …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;m back from snowboarding! It was great. :D Snowboarding rocks. Even the one ski person we had on the trip had to admit that. }:) We had &lt;em&gt;seriously&lt;/em&gt; great weather. Sun during the day, snow during the night, fairly warm, good snow conditions. I don&amp;#8217;t know what could&amp;#8217;ve been better.&amp;nbsp;8)&lt;/p&gt;
&lt;p&gt;We were at &lt;a href="http://www.ski-reiteralm.at/"&gt;Reiteralm&lt;/a&gt;, which is part of a &lt;a href="http://4berge.at"&gt;group of four mountains&lt;/a&gt;, all of which we could use on our lift ticket. We didn&amp;#8217;t even have enough time to explore the area in its entirety. :P There were great spots for boarding through pristine powder, enough forest to go around, a good mixture of runs, with the black (i.e. &amp;#8220;difficult&amp;#8221;) ones typically being best. Our &lt;a href="http://www.sport-gerhardter.at"&gt;accomodation&lt;/a&gt; was excellent, too, as you can see from the photos. We spent most (but not &lt;a href="http://www.sjgames.com/munchkin"&gt;all&lt;/a&gt;) of our nights roleplaying on Kiki&amp;#8217;s adventure. My character, Lenelun Lender Le Lenwed (a gnome paladin) almost got killed twice, but he also caused enough damage to have been worth the trouble it took to create him.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;I made an &lt;a href="http://gallery.tiker.net/v/andreas/vacation/gleiming/"&gt;online photo gallery&lt;/a&gt;. &lt;/p&gt;</content><category term="digital-photography"></category><category term="life"></category></entry><entry><title>Digital Camera Kung-Fu</title><link href="https://mathema.tician.de/digital-camera-kung-fu" rel="alternate"></link><published>2005-02-18T11:47:28-06:00</published><updated>2005-02-18T11:47:28-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-02-18:/digital-camera-kung-fu</id><summary type="html">&lt;p&gt;Since the beginning of this month, I&amp;#8217;m the proud owner of a Canon &lt;a href="http://www.powershot.com"&gt;PowerShot&lt;/a&gt; A95 digital camera. (Note that the new category &amp;#8220;Digital Photography&amp;#8221; has sprung up on this site.) I&amp;#8217;m very excited about the camera. The battery life is just incredible. The only hair in the soup …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Since the beginning of this month, I&amp;#8217;m the proud owner of a Canon &lt;a href="http://www.powershot.com"&gt;PowerShot&lt;/a&gt; A95 digital camera. (Note that the new category &amp;#8220;Digital Photography&amp;#8221; has sprung up on this site.) I&amp;#8217;m very excited about the camera. The battery life is just incredible. The only hair in the soup is that the tripod mount is plastic. But if it lasts, I guess I don&amp;#8217;t&amp;nbsp;care.&lt;/p&gt;
&lt;p&gt;In order to protect this investment (gift, actually), I&amp;#8217;ve thought of a somewhat creative use of the MyCamera(tm) feature of this camera, which allows you to show a custom picture during power-up. This is what I put&amp;nbsp;in:&lt;/p&gt;
&lt;p&gt;&lt;img alt="camera-ownership-startup.png" src="/images/camera-ownership-startup.png" /&gt;&lt;/p&gt;
&lt;p&gt;If you want to do this, too, I&amp;#8217;ve attached the &lt;a href="http://inkscape.org"&gt;Inkscape&lt;/a&gt; &lt;a href="/images/camera-ownership-startup.svg"&gt;Digital Camera Kung-Fu&lt;/a&gt;. (Oops. Now you know my phone number and email. Oh&amp;nbsp;well.)&lt;/p&gt;
&lt;p&gt;To get the best possible use out of the pictures you take, I can whole-heartedly recommend &lt;a href="http://digikam.sf.net"&gt;DigiKam&lt;/a&gt;, which is the best picture archival/viewer program for &lt;span class="caps"&gt;KDE&lt;/span&gt; that I&amp;#8217;ve encountered until now. It&amp;#8217;s been dealing well with my 2000+&amp;nbsp;pictures.&lt;/p&gt;
&lt;p&gt;You may now spend the coming week in awe awaiting tons of snowboarding pictures week after next.&amp;nbsp;}:)&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/images/camera-ownership-startup.png"&gt;camera-ownership-startup.png&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/images/camera-ownership-startup.svg"&gt;camera-ownership-startup.svg&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="digital-photography"></category></entry><entry><title>Eat that, C++!</title><link href="https://mathema.tician.de/eat-that-c" rel="alternate"></link><published>2005-02-18T10:57:08-06:00</published><updated>2005-02-18T10:57:08-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-02-18:/eat-that-c</id><summary type="html">&lt;p&gt;You didn&amp;#8217;t know that Python can actually have &lt;a href="http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/384122"&gt;custom infix operators&lt;/a&gt;, like &lt;code&gt;vector1 |cross_product| vector2&lt;/code&gt;, did you? From where I&amp;#8217;m sitting, I can see C++ turning green with envy. :) Of course, this is a hack, but it&amp;#8217;s actually not so horrible that it wouldn&amp;#8217;t be usable …&lt;/p&gt;</summary><content type="html">&lt;p&gt;You didn&amp;#8217;t know that Python can actually have &lt;a href="http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/384122"&gt;custom infix operators&lt;/a&gt;, like &lt;code&gt;vector1 |cross_product| vector2&lt;/code&gt;, did you? From where I&amp;#8217;m sitting, I can see C++ turning green with envy. :) Of course, this is a hack, but it&amp;#8217;s actually not so horrible that it wouldn&amp;#8217;t be usable in day-to-day code. The operators obey module/package qualifications,&amp;nbsp;too.&lt;/p&gt;
&lt;p&gt;How neat is that?&amp;nbsp;:jawdrop:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Very little actual thinking reveals that the same thing is possible in C++ as well. It remains as a last consolation that pulling it off takes about three times as much effort as in Python.&amp;nbsp;:)&lt;/p&gt;</content><category term="mindless-link-propagation"></category><category term="python"></category></entry><entry><title>Out for snowboarding</title><link href="https://mathema.tician.de/out-for-snowboarding" rel="alternate"></link><published>2005-02-18T09:10:56-06:00</published><updated>2005-02-18T09:10:56-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-02-18:/out-for-snowboarding</id><summary type="html">&lt;p&gt;If you&amp;#8217;re trying to contact me, and it&amp;#8217;s the week between Feb 19 and Feb 26, you might as well give up &lt;em&gt;now&lt;/em&gt;. I&amp;#8217;m enjoying myself snowboarding somewhere in Austria. Wish me sunny weather, good snow and all&amp;nbsp;that.&lt;/p&gt;
&lt;p&gt;See you week after next!&amp;nbsp;8)&lt;/p&gt;</summary><content type="html">&lt;p&gt;If you&amp;#8217;re trying to contact me, and it&amp;#8217;s the week between Feb 19 and Feb 26, you might as well give up &lt;em&gt;now&lt;/em&gt;. I&amp;#8217;m enjoying myself snowboarding somewhere in Austria. Wish me sunny weather, good snow and all&amp;nbsp;that.&lt;/p&gt;
&lt;p&gt;See you week after next!&amp;nbsp;8)&lt;/p&gt;</content><category term="life"></category></entry><entry><title>Someone is trying to fool us…</title><link href="https://mathema.tician.de/someone-is-trying-to-fool-us" rel="alternate"></link><published>2005-02-17T02:44:51-06:00</published><updated>2005-02-17T02:44:51-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-02-17:/someone-is-trying-to-fool-us</id><summary type="html">&lt;p&gt;&amp;#8230;us as in &lt;em&gt;the Germans&lt;/em&gt;, and, sadly enough, it&amp;#8217;s working. When I first saw the brand of bags called &amp;#8220;Down &lt;span class="amp"&gt;&amp;amp;&lt;/span&gt; Out&amp;#8221;  (Pleite &lt;span class="amp"&gt;&amp;amp;&lt;/span&gt; keine Hoffnung), I thought them to be an oddity, something that no-one would buy. Then I saw them in the wild, and even better, on my own …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&amp;#8230;us as in &lt;em&gt;the Germans&lt;/em&gt;, and, sadly enough, it&amp;#8217;s working. When I first saw the brand of bags called &amp;#8220;Down &lt;span class="amp"&gt;&amp;amp;&lt;/span&gt; Out&amp;#8221;  (Pleite &lt;span class="amp"&gt;&amp;amp;&lt;/span&gt; keine Hoffnung), I thought them to be an oddity, something that no-one would buy. Then I saw them in the wild, and even better, on my own friends. Then, I really thought, hey, brush up on your English, dude. Know what you&amp;nbsp;buy.&lt;/p&gt;
&lt;p&gt;Today, it all got topped off, when, on my way to work, I saw a fairly cute, curly-haired girl with a bag branded &amp;#8220;Flaming Sideburns&amp;#8221; (Flammende Koteletten). Riiiight. Girl. Sideburns. Ahem. Is some cruel bag manufacturer out there trying to find out what would be the dumbest brand of bags that Germans still buy? If so, stop it! You&amp;#8217;ve had your fun, now go produce serious stuff.&amp;nbsp;;)&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m sort of glad that my own backpack says &amp;#8220;Bach/Ireland&amp;#8221; and nothing else.&amp;nbsp;8)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Christian Plagemann pointed out that &amp;#8220;Flaming Sideburns&amp;#8221; most likely doesn&amp;#8217;t refer to brand of the bag, but rather a &lt;a href="http://www.mtv.com/bands/az/flaming_sideburns/artist.jhtml"&gt;band&lt;/a&gt;. &lt;em&gt;Note to self:&lt;/em&gt; Must not fall for random conspiracy theories, no matter how attractive.&amp;nbsp;:P&lt;/p&gt;</content><category term="life"></category></entry><entry><title>Every Mathematician should have a Coq</title><link href="https://mathema.tician.de/every-mathematician-should-have-a-coq" rel="alternate"></link><published>2005-02-08T18:23:41-06:00</published><updated>2005-02-08T18:23:41-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-02-08:/every-mathematician-should-have-a-coq</id><summary type="html">&lt;p&gt;(No, not what you&amp;nbsp;think.)&lt;/p&gt;
&lt;p&gt;For work today, I had to proofread some lecture notes for my boss. After work, I started wondering: What if we could leave the tedious verification of our math to computers? To me, math is about understanding and constructing, and not so much about meticulously …&lt;/p&gt;</summary><content type="html">&lt;p&gt;(No, not what you&amp;nbsp;think.)&lt;/p&gt;
&lt;p&gt;For work today, I had to proofread some lecture notes for my boss. After work, I started wondering: What if we could leave the tedious verification of our math to computers? To me, math is about understanding and constructing, and not so much about meticulously verifying &amp;#8220;old&amp;#8221; proofs&amp;#8212;an activity that I believe should be&amp;nbsp;automated.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://coq.inria.fr/"&gt;Coq&lt;/a&gt; is one system that achieves this, even though it&amp;#8217;s geared more towards &lt;em&gt;constructing&lt;/em&gt; rather than &lt;em&gt;checking&lt;/em&gt; proofs. It&amp;#8217;s written in &lt;a href="http://www.ocaml.org"&gt;Objective Caml&lt;/a&gt; and will be consuming a bit of my research time to&amp;nbsp;come.&lt;/p&gt;
&lt;p&gt;As an aside: While surfing the web surrounding Coq&amp;#8217;s site, I discovered &lt;span class="caps"&gt;AEI&lt;/span&gt;&amp;#8217;s &lt;a href="http://www.livingreviews.org"&gt;Living Reviews&lt;/a&gt;, with that being journals of review articles that come with a promise of maintenance and actuality. Currently, this kind of journal only exists for solar physics and relativity. While the &amp;#8220;current&amp;#8221; system of just republishing an old review article is not bad, I think that making the whole maintenance process explicit and giving it a shorter turnaround time is actually a pretty good&amp;nbsp;idea.&lt;/p&gt;</content><category term="math"></category><category term="mindless-link-propagation"></category><category term="rants"></category></entry><entry><title>The Lowdown on Amsterdam, Day 4 (Saturday)</title><link href="https://mathema.tician.de/the-lowdown-on-amsterdam-day-4-saturday" rel="alternate"></link><published>2005-02-08T11:01:05-06:00</published><updated>2005-02-08T11:01:05-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-02-08:/the-lowdown-on-amsterdam-day-4-saturday</id><summary type="html">&lt;p&gt;(You might want to read &lt;a href="/node/64"&gt;day 3&lt;/a&gt; and all the days before this one to avoid getting&amp;nbsp;confused.)&lt;/p&gt;
&lt;p&gt;Day Four was very much reserved for the &lt;a href="http://www.vangoghmuseum.nl/"&gt;van Gogh Museum&lt;/a&gt;. While &amp;#8220;museum&amp;#8221; always has that dusty, old sound to it, this is certainly untrue of this particular one. After grabbing lunch …&lt;/p&gt;</summary><content type="html">&lt;p&gt;(You might want to read &lt;a href="/node/64"&gt;day 3&lt;/a&gt; and all the days before this one to avoid getting&amp;nbsp;confused.)&lt;/p&gt;
&lt;p&gt;Day Four was very much reserved for the &lt;a href="http://www.vangoghmuseum.nl/"&gt;van Gogh Museum&lt;/a&gt;. While &amp;#8220;museum&amp;#8221; always has that dusty, old sound to it, this is certainly untrue of this particular one. After grabbing lunch (ham&amp;#8217;n&amp;#8217;cheese croissants&amp;#8212;mmmh, greasy fish&amp;#8212; :barf:, cold chicken&amp;#8212; :barf:, smoothies&amp;#8212;mmmh), we trodded over to the Museumsplein and forked over the 10€/person to get in and 4€ more for the (good) audio tour. To start with, I sent Josie a video message from the museum while she was on the pot.&amp;nbsp;Fun&amp;#8230;&lt;/p&gt;
&lt;p&gt;The museum starts out on the ground floor with a roomful of what was before and around Vincent at the outset of his life as an artist. This is the door-opener for the first floor, where you stumble into a narration of Van Gogh&amp;#8217;s (short) life, visualized and accompanied by his pictures. It is amazing to see how his life&amp;#8217;s events and mental self reflect into his pictures and vice versa. I would honestly have missed much of what can be discovered without the audio tour, and plus, it gives you the opportunity to just sit down and listen when your feet grow weary of all the standing around. They also have a &lt;span class="caps"&gt;PDA&lt;/span&gt;-based multimedia tour available, but I wonder if it would be worth the money, since I found it just perfect to be able to listen and look at the paintings, keeping both senses busy, but not&amp;nbsp;overloaded.&lt;/p&gt;
&lt;p&gt;We stayed and explored the museum until closing time. Among the things we found were (well-taken) artistic photos of the sites in Vincent van Gogh&amp;#8217;s life as they are today and a few computers where you can explore the museum&amp;#8217;s comprehensive web site, linked&amp;nbsp;above.&lt;/p&gt;
&lt;p&gt;Afterwards, we bought dinner, cooked, and headed out for a night on the town. Our first step was into some &amp;#8220;we have free live music&amp;#8221; place. It was good. Until the free live music, courtesy of &amp;#8220;The Invisible Orchestra&amp;#8221; started. We downed our drinks and left, looking for other entertainment. &amp;#8220;The Australian&amp;#8221; had bad coffee, expensive chocolates and girly music, all delivered by the most boygroup-y band of servers I&amp;#8217;ve ever met. Making rounds through a few other bars, we ended up back at Boom to drink to the end of our&amp;nbsp;trip.&lt;/p&gt;
&lt;p&gt;(That&amp;#8217;s it. You can stop reading now. Day 5 was the ride home&amp;#8212;and fairly uneventful, except for what happened around Frankfurt. Yeah, we saw the &lt;em&gt;Begijnhof&lt;/em&gt; before we left. Go there, it&amp;#8217;s neat. But it doesn&amp;#8217;t warrant another&amp;nbsp;entry.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I realize that I did a shoddy job proofreading an earlier version of this entry.&amp;nbsp;Fixed.&lt;/p&gt;</content><category term="life"></category><category term="reviews"></category></entry><entry><title>SomaFM/Groove Salad rocks the socks off Internet Radio</title><link href="https://mathema.tician.de/somafm-groove-salad-rocks-the-socks-off-internet-radio" rel="alternate"></link><published>2005-02-08T08:31:54-06:00</published><updated>2005-02-08T08:31:54-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-02-08:/somafm-groove-salad-rocks-the-socks-off-internet-radio</id><summary type="html">&lt;p&gt;I&amp;#8217;ve been listening to &lt;a href="http://somafm.com/"&gt;Groove Salad&lt;/a&gt; at work for a while now, and their mix has rocked my boat continually. Highly recommended. I have yet to try their other stations.&amp;nbsp;8)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Embarassing typo in the previous Title line: Does it really rock the socks &lt;em&gt;of&lt;/em&gt; Internet radio? I …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;ve been listening to &lt;a href="http://somafm.com/"&gt;Groove Salad&lt;/a&gt; at work for a while now, and their mix has rocked my boat continually. Highly recommended. I have yet to try their other stations.&amp;nbsp;8)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Embarassing typo in the previous Title line: Does it really rock the socks &lt;em&gt;of&lt;/em&gt; Internet radio? I&amp;#8217;m curious what that would look (or sound?) like.&amp;nbsp;:O&lt;/p&gt;</content><category term="mindless-link-propagation"></category><category term="reviews"></category><category term="technology"></category></entry><entry><title>The Lowdown on Amsterdam, Day 3 (Friday)</title><link href="https://mathema.tician.de/the-lowdown-on-amsterdam-day-3-friday" rel="alternate"></link><published>2005-02-07T15:13:05-06:00</published><updated>2005-02-07T15:13:05-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-02-07:/the-lowdown-on-amsterdam-day-3-friday</id><summary type="html">&lt;p&gt;(You might want to read &lt;a href="/node/61"&gt;day 1&lt;/a&gt; and &lt;a href="/node/63"&gt;day 2&lt;/a&gt;&amp;nbsp;first.)&lt;/p&gt;
&lt;p&gt;Friday was most likely the most serious sightseeing day we had during our time in Amsterdam. We started out in a wool store for Josie, had lunch that gave me heartburn for the rest of the week, and then …&lt;/p&gt;</summary><content type="html">&lt;p&gt;(You might want to read &lt;a href="/node/61"&gt;day 1&lt;/a&gt; and &lt;a href="/node/63"&gt;day 2&lt;/a&gt;&amp;nbsp;first.)&lt;/p&gt;
&lt;p&gt;Friday was most likely the most serious sightseeing day we had during our time in Amsterdam. We started out in a wool store for Josie, had lunch that gave me heartburn for the rest of the week, and then continued on to the &lt;a href="http://www.annefrankhuis.nl/"&gt;Anne Frank huis&lt;/a&gt;. (&lt;span class="caps"&gt;BTW&lt;/span&gt;, for all you non-Dutchies, &amp;#8220;ui&amp;#8221; is apparently pronounced as a weird mixture of &amp;#8220;oi&amp;#8221; and &amp;#8220;ow&amp;#8221;. That&amp;#8217;s at least what we inferred from the tram pronouncing its stops, in this case, notably &amp;#8220;Het&amp;nbsp;Spui&amp;#8221;.)&lt;/p&gt;
&lt;p&gt;The Anne Frank museum is worth seeing, and more than once I felt a chill moving down on my body, for example when we came to the part of the museum that covered how the Frank family got caught, deported and executed. It is a truly moving museum, and they have made much of the fairly little that there is to see. I left there with a wish to actually read Anne Frank&amp;#8217;s diary, maybe I&amp;#8217;ll make that my next book. There are some &amp;#8220;extra&amp;#8221; sections to the museum, like one room where an audience votes on current matters of &amp;#8220;freedom of expression&amp;#8221; vs. &amp;#8220;restriction and persecution of certain forms of expression&amp;#8221;. This was enlightening, often surprising, and technically&amp;nbsp;well-realized.&lt;/p&gt;
&lt;p&gt;After leaving the Anne Frank huis around five, we headed for Amsterdam&amp;#8217;s smallest gallery, and from there past the Westerkerk to the &amp;#8220;Homo-Monument&amp;#8221;, some large sculpture consisting of three interconnected triangles commemorating the suffering of homosexuals in our societies, present and past. (&lt;span class="caps"&gt;BTW&lt;/span&gt;, I challenge you to take a picture that a) does it justice and b) contains all of it.) From there to &lt;a href="http://www.bagelsbeans.nl"&gt;Bagels and Beans&lt;/a&gt; for a honey-walnut bagel and some refreshing juice. Hmmmmm. Nice ambience,&amp;nbsp;too.&lt;/p&gt;
&lt;p&gt;After a bit of shopping, we decided to go see the red light district. That included popping into one of the novelty-filled sex shops. I wonder what people do with all the things you can buy there. :? While we were in there, Josie hit me repeatedly to make me stop giggling. }:) I am amazed by how well the &amp;#8220;district&amp;#8221; integrates into the rest of the city life&amp;#8212;there are no high concrete walls like in Germany, and really, there&amp;#8217;s a huge vegetable market just one block away from it. I admire the Dutch for their easy-going-ness. I wanna be like that.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;Later on, we went to &lt;a href="http://www.local-amsterdam.nl/"&gt;Local Amsterdam&lt;/a&gt; for some rib-eye steak and lamb, well-grilled on a skewer. In this hip-type restaurant, you just sit on long tables and eat standardized dishes off of standardized plates. That sounds like prison dining, but is actually really fun and, again, &lt;em&gt;very lecker&lt;/em&gt;. This was a recommendation in the Boom magazine, whose advice to have one of their dessert cocktails twe also heeded. We had Brazilian Iced coffee out of a large conic cup, and were nearly perfectly happy when we left there to go explore the &lt;em&gt;Jordaan&lt;/em&gt; part of Amsterdam by night. On the way back to the hostel, however, we got lost pretty badly. Not that it mattered much that we wandered around in circles, it was actually quite fun. It only took us four hours to get back to the&amp;nbsp;hostel&amp;#8230;&lt;/p&gt;
&lt;p&gt;(Read &lt;a href="/node/66"&gt;on&lt;/a&gt;.)&lt;/p&gt;</content><category term="life"></category></entry><entry><title>The Lowdown on Amsterdam, Day 2 (Thursday)</title><link href="https://mathema.tician.de/the-lowdown-on-amsterdam-day-2-thursday" rel="alternate"></link><published>2005-02-05T07:35:37-06:00</published><updated>2005-02-05T07:35:37-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-02-05:/the-lowdown-on-amsterdam-day-2-thursday</id><summary type="html">&lt;p&gt;(Read &lt;a href="/node/61"&gt;Day 1&lt;/a&gt; first, otherwise you might get&amp;nbsp;confused.)&lt;/p&gt;
&lt;p&gt;On the way out of the hostel yesterday, we had stumbled upon an outdoor gear store. I had been on the lookout for a new backpack for quite a while, and right there in that store I saw what I had …&lt;/p&gt;</summary><content type="html">&lt;p&gt;(Read &lt;a href="/node/61"&gt;Day 1&lt;/a&gt; first, otherwise you might get&amp;nbsp;confused.)&lt;/p&gt;
&lt;p&gt;On the way out of the hostel yesterday, we had stumbled upon an outdoor gear store. I had been on the lookout for a new backpack for quite a while, and right there in that store I saw what I had been looking for all along, the &lt;a href="http://www.fjallraven.se"&gt;Fjällräven&lt;/a&gt; Fox 60+10, a backpack with more extra features than &lt;em&gt;you&lt;/em&gt; can shake a stick at. Having slept over the decision, we went out to buy it this morning. Speaking as of this posting, I thoroughly don&amp;#8217;t regret buying it, especially since they had it marked down by&amp;nbsp;30%.&lt;/p&gt;
&lt;p&gt;A while back, maybe in November, Josie and I had also stumbled upon &lt;a href="http://www.boomchicago.nl/Section/Videos/InstantKerry"&gt;these&lt;/a&gt; funny &lt;a href="http://www.boomchicago.nl/Section/Videos/Osama"&gt;videos&lt;/a&gt;&amp;#8212;we had enjoyed them without knowing whom exactly they were from. We just recognized the logo when we saw it, right there in our bedroom: &lt;a href="http://www.boomchicago.nl"&gt;Boom Chicago&lt;/a&gt;. Their magazine does not only contain a pretty good tourist guide, they also brought our attention to the fact that they have a improv (that&amp;#8217;s improvised theater, like &amp;#8220;Whose line is it anyway?&amp;#8221;) show every night. Having liked their videos, we bought tickets at the theater at Leidseplein for their &amp;#8220;Best of Boom&amp;#8221;&amp;nbsp;show.&lt;/p&gt;
&lt;p&gt;The rest of the day was pretty rainy, so after getting the new shiny backpack back to the hostel, we went shopping, explored the &lt;em&gt;Museumsplein&lt;/em&gt; and cooked until right before the show. The show itself was hilarious. Quoting any jokes here would most likely ruin them, especially since I didn&amp;#8217;t take any notities during the Sjoord show. :P If you ever have the chance to go see Boom, run, don&amp;#8217;t walk, to the ticket counter. (And use their magazine as a coupon to score a 3 Euro discount.) After the show, there was an improv jam for people from the audience, many of whom were apparently regulars. They put on a pretty funny show for the rest of us who were too scared to get on stage. (including&amp;nbsp;me)&lt;/p&gt;
&lt;p&gt;Read on for &lt;a href="/node/64"&gt;day 3&lt;/a&gt;.&lt;/p&gt;</content><category term="life"></category></entry><entry><title>madman news now syndicated from my journal site</title><link href="https://mathema.tician.de/madman-news-now-syndicated-from-my-journal-site" rel="alternate"></link><published>2005-01-31T18:25:00-06:00</published><updated>2005-01-31T18:25:00-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-31:/madman-news-now-syndicated-from-my-journal-site</id><summary type="html">&lt;p&gt;madman&amp;#8217;s &lt;a href="http://madman.sf.net"&gt;home page&lt;/a&gt; now semi-automatically draws its news from the madman category of my &lt;a href="http://news.tiker.net"&gt;journal&lt;/a&gt;. I hope that this will encourage me to update madman&amp;#8217;s news more frequently by making the process more convenient than writing &lt;span class="caps"&gt;PHP&lt;/span&gt; source code. (ugh) As an added benefit, you may comment on …&lt;/p&gt;</summary><content type="html">&lt;p&gt;madman&amp;#8217;s &lt;a href="http://madman.sf.net"&gt;home page&lt;/a&gt; now semi-automatically draws its news from the madman category of my &lt;a href="http://news.tiker.net"&gt;journal&lt;/a&gt;. I hope that this will encourage me to update madman&amp;#8217;s news more frequently by making the process more convenient than writing &lt;span class="caps"&gt;PHP&lt;/span&gt; source code. (ugh) As an added benefit, you may comment on the news by clicking on the title links. Why not try that out right now? :P You may even syndicate the &lt;a href="http://news.tiker.net/taxonomy/term/1/0/feed"&gt;madman feed&lt;/a&gt; on your home&amp;nbsp;page.&lt;/p&gt;
&lt;p&gt;In other news, I&amp;#8217;ve finished my degree and will hopefully have more time for madman for some time to come. Especially, the 0.94 release has been burning under my fingernails for quite some time. But there are still quite a number of bugs to catch. As always, it&amp;#8217;ll be released when it&amp;#8217;s done&amp;#8230;&amp;nbsp;:)&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>The Lowdown on Amsterdam, Day 1 (Wednesday)</title><link href="https://mathema.tician.de/the-lowdown-on-amsterdam-day-1-wednesday" rel="alternate"></link><published>2005-01-31T09:23:18-06:00</published><updated>2005-01-31T09:23:18-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-31:/the-lowdown-on-amsterdam-day-1-wednesday</id><summary type="html">&lt;p&gt;To say the least, the trip was great. Amsterdam is a &lt;em&gt;very&lt;/em&gt; cool city, with all that water, all the bridges and the people, something is just right there. Sadly for you, there aren&amp;#8217;t going to be any pictures, at least not for a while, since all we had …&lt;/p&gt;</summary><content type="html">&lt;p&gt;To say the least, the trip was great. Amsterdam is a &lt;em&gt;very&lt;/em&gt; cool city, with all that water, all the bridges and the people, something is just right there. Sadly for you, there aren&amp;#8217;t going to be any pictures, at least not for a while, since all we had was Josie&amp;#8217;s point&amp;#8217;n&amp;#8217;shoot&amp;nbsp;camera.&lt;/p&gt;
&lt;p&gt;We arrived by train, which was surprisingly easy and convenient, even though at roughly 60 euros per way per person &lt;em&gt;with&lt;/em&gt; BahnCard 50, rather expensive. We had to change twice, once in Mannheim and once in Köln. We got there around five o&amp;#8217;clock, got our &lt;em&gt;strippen-kaart&lt;/em&gt;, took the tram 5 to Leidseplein, which is &lt;em&gt;the&lt;/em&gt; nightlife location in Amsterdam. We walked a few hundred meters, and found our hostel, the &lt;a href="http://www.flyingpig.nl"&gt;Flying Pig Palace Hostel&lt;/a&gt; in the Vossiusstraat, near Vondelpark. Out of the hostels in Amsterdam, it seems to one of the more mature ones. They have excellent facilities (free breakfast, free Internet, free kitchen for you to use) and the hostel is run by temp-worker backpackers who stay there free and do all the work (reception, room-cleaning) in return. We settled in an eight-person room in the lower &amp;#8220;shelf&amp;#8221; of a queen-size bunkbed. That sounds rickety, but actually works&amp;nbsp;great. &lt;/p&gt;
&lt;p&gt;For the night, we went back out to Leidseplein to find something to eat, only to discover that most of the tourist trap restaurants are way too expensive. If you keep walking, however, you find the places where the Dutch go, and in our case, that was an Italian restaurant that had yummy pizza for a mere 5€. After that, we kept walking downtown, explored a bit and found somewhere that served (&lt;em&gt;stuntprijs!&lt;/em&gt; 8)) great apple cake and coffee for a mere 2,50€. We came back to the hostel a bit exhausted around&amp;nbsp;1am.&lt;/p&gt;
&lt;p&gt;(Read &lt;a href="/node/63"&gt;on&lt;/a&gt;.)&lt;/p&gt;</content><category term="life"></category><category term="reviews"></category></entry><entry><title>Functional Analysis II Summary</title><link href="https://mathema.tician.de/functional-analysis-ii-summary" rel="alternate"></link><published>2005-01-30T15:09:27-06:00</published><updated>2005-01-30T15:09:27-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-30:/functional-analysis-ii-summary</id><summary type="html">&lt;p&gt;Just in case you are interested, &lt;a href="/dl/fa2.pdf"&gt;Functional Analysis &lt;span class="caps"&gt;II&lt;/span&gt; Summary&lt;/a&gt; is a &lt;span class="caps"&gt;PDF&lt;/span&gt; link to my (German) summary of Dr. Christoph Schmoeger&amp;#8217;s Functional Analysis class of 2001. While those that have taken that particular lecture and need to take an exam on it may be a dying breed, I …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Just in case you are interested, &lt;a href="/dl/fa2.pdf"&gt;Functional Analysis &lt;span class="caps"&gt;II&lt;/span&gt; Summary&lt;/a&gt; is a &lt;span class="caps"&gt;PDF&lt;/span&gt; link to my (German) summary of Dr. Christoph Schmoeger&amp;#8217;s Functional Analysis class of 2001. While those that have taken that particular lecture and need to take an exam on it may be a dying breed, I&amp;#8217;m posting it in the hope that it may be of use to some still. Source code is available upon request. The document was composed in &lt;a href="http://www.texmacs.org"&gt;TeXmacs&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dl/fa2.pdf"&gt;fa2.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="university"></category><category term="math"></category></entry><entry><title>Groeten Uit Amsterdam</title><link href="https://mathema.tician.de/groeten-uit-amsterdam" rel="alternate"></link><published>2005-01-27T05:25:29-06:00</published><updated>2005-01-27T05:25:29-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-27:/groeten-uit-amsterdam</id><summary type="html">&lt;p&gt;Hi people, greetings from the &lt;a href="http://www.flyingpig.nl"&gt;Flying Pig&lt;/a&gt; in Amsterdam. I completed my degree! Did that last Monday at 10:47. (The last exam could have been better&amp;#8212;I got a 1.7. But who cares now? }:)) Then, I completed my applications to grad schools in the &lt;span class="caps"&gt;US&lt;/span&gt;. Did I ever …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hi people, greetings from the &lt;a href="http://www.flyingpig.nl"&gt;Flying Pig&lt;/a&gt; in Amsterdam. I completed my degree! Did that last Monday at 10:47. (The last exam could have been better&amp;#8212;I got a 1.7. But who cares now? }:)) Then, I completed my applications to grad schools in the &lt;span class="caps"&gt;US&lt;/span&gt;. Did I ever mention that most public schools&amp;#8217; application systems suck big rocks through thin straws? I got a rough load of that Monday night. Forms changing my input without being asked to, web servers crashing, &amp;#8220;add another&amp;#8221; buttons not working&amp;#8230; But the applications are mostly done now.&amp;nbsp;Phew!&lt;/p&gt;
&lt;p&gt;In order to celebrate my being &lt;em&gt;&lt;span class="caps"&gt;FINALLY&lt;/span&gt; &lt;span class="caps"&gt;DONE&lt;/span&gt;&lt;/em&gt; :), Josie and I removed ourselves from everybody else&amp;#8217;s reality in Karlsruhe and decided to chill the rest of the week in Amsterdam. Hope y&amp;#8217;all are having fun, too. We went out last night, and right now we&amp;#8217;re about to seriously see the city by daylight for the first time. Still weird that everybody but us seems to have come for the drugs and the sex.&amp;nbsp;:P&lt;/p&gt;
&lt;p&gt;Tot ziens!&amp;nbsp;:D&lt;/p&gt;</content><category term="university"></category><category term="life"></category></entry><entry><title>Dirk Werner rocks my life</title><link href="https://mathema.tician.de/dirk-werner-rocks-my-life" rel="alternate"></link><published>2005-01-22T06:46:34-06:00</published><updated>2005-01-22T06:46:34-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-22:/dirk-werner-rocks-my-life</id><summary type="html">&lt;p&gt;&lt;a href="http://page.mi.fu-berlin.de/~werner/"&gt;Dirk Werner&lt;/a&gt; is the author of an excellent functional analysis book, one of the two which I am presently using to prepare for my final &lt;a href="/node/56"&gt;exam&lt;/a&gt;, Rudin&amp;#8217;s almost-classic being the other one. I enjoy Werner&amp;#8217;s writing a lot&amp;#8212;more than Rudin&amp;#8217;s, and to be completely honest with …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://page.mi.fu-berlin.de/~werner/"&gt;Dirk Werner&lt;/a&gt; is the author of an excellent functional analysis book, one of the two which I am presently using to prepare for my final &lt;a href="/node/56"&gt;exam&lt;/a&gt;, Rudin&amp;#8217;s almost-classic being the other one. I enjoy Werner&amp;#8217;s writing a lot&amp;#8212;more than Rudin&amp;#8217;s, and to be completely honest with you, he was the first to ever explain the &lt;a href="http://planetmath.org/encyclopedia/BaireCategoryTheorem.html"&gt;Baire category theorem&lt;/a&gt; in a way that I found&amp;nbsp;accessible. &lt;/p&gt;
&lt;p&gt;But he also made my day today by having this &lt;a href="http://page.mi.fu-berlin.de/~werner/photographs.html"&gt;collection of math photos&lt;/a&gt; on his home page. If you have a minute to spare, go there for&amp;nbsp;hilarity.&lt;/p&gt;
&lt;p&gt;The following picture was nicked from his&amp;nbsp;homepage:&lt;/p&gt;
&lt;p&gt;&lt;img alt="san_francisco_100dpi.jpg" src="/images/san_francisco_100dpi.jpg" /&gt;&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/images/san_francisco_100dpi.jpg"&gt;san_francisco_100dpi.jpg&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="university"></category><category term="life"></category><category term="math"></category><category term="mindless-link-propagation"></category></entry><entry><title>The Dinner Fairy</title><link href="https://mathema.tician.de/the-dinner-fairy" rel="alternate"></link><published>2005-01-21T07:47:31-06:00</published><updated>2005-01-21T07:47:31-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-21:/the-dinner-fairy</id><summary type="html">&lt;p&gt;&lt;img alt="Yummy!" src="http://gallery.tiker.net/d/1100-1/dinner-fairy.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;While pretty seventies-looking, I actually like the brand name &lt;a href="http://penny.de"&gt;Penny&lt;/a&gt; came up with for their canned food. &amp;#8220;Dinner-Fee&amp;#8221;, which is German for the dinner fairy, took care of my lunch for today quite marvelously. Thanks, dinner fairy, you&amp;#8217;re the best!&amp;nbsp;:P&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Whilst writing this, I almost let my …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Yummy!" src="http://gallery.tiker.net/d/1100-1/dinner-fairy.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;While pretty seventies-looking, I actually like the brand name &lt;a href="http://penny.de"&gt;Penny&lt;/a&gt; came up with for their canned food. &amp;#8220;Dinner-Fee&amp;#8221;, which is German for the dinner fairy, took care of my lunch for today quite marvelously. Thanks, dinner fairy, you&amp;#8217;re the best!&amp;nbsp;:P&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Whilst writing this, I almost let my dinner fairy burn to the bottom of the pot. Thank heavens for kitchen timers&amp;#8230;&amp;nbsp;}:)&lt;/p&gt;</content><category term="life"></category><category term="silly-stuff"></category></entry><entry><title>Sick before my Exam</title><link href="https://mathema.tician.de/sick-before-my-exam" rel="alternate"></link><published>2005-01-18T11:11:33-06:00</published><updated>2005-01-18T11:11:33-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-18:/sick-before-my-exam</id><summary type="html">&lt;p&gt;I was supposed to have my last exam to complete my Diplom degree on Friday, but unfortunately, I got sick with flu-like symptoms on Sunday. One of my examiners has already agreed to move the exam to Monday the 24th, and I hope the other will, too. Now if I …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I was supposed to have my last exam to complete my Diplom degree on Friday, but unfortunately, I got sick with flu-like symptoms on Sunday. One of my examiners has already agreed to move the exam to Monday the 24th, and I hope the other will, too. Now if I didn&amp;#8217;t have to complete the grad school applications at the same time, all would be&amp;nbsp;well.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The other examiner has agreed as well, so my exam is officially on Monday the 24th, at&amp;nbsp;10.&lt;/p&gt;
&lt;p&gt;Wish me luck.&amp;nbsp;:)&lt;/p&gt;</content><category term="university"></category><category term="life"></category></entry><entry><title>Sipgate and KPhone</title><link href="https://mathema.tician.de/sipgate-and-kphone" rel="alternate"></link><published>2005-01-13T04:58:48-06:00</published><updated>2005-01-13T04:58:48-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-13:/sipgate-and-kphone</id><summary type="html">&lt;p&gt;The future has just begun, our phone and &lt;span class="caps"&gt;DSL&lt;/span&gt; connections were switched over from the &lt;a href="http://www.t-com.de"&gt;big pink monopoly&lt;/a&gt; to &lt;a href="http://www.arcor.de"&gt;Arcor&lt;/a&gt;. Unfortunately, their phone rates border on highway robbery (by being at least double as expensive as &lt;a href="http://teltarif.de"&gt;cheaper providers&lt;/a&gt;). So, I decided to give &lt;a href="http://www.sipgate.de"&gt;Voice-over-&lt;span class="caps"&gt;IP&lt;/span&gt;&lt;/a&gt; a try, using &lt;a href="http://www.wirlab.net/kphone/index.html"&gt;kphone&lt;/a&gt; as …&lt;/p&gt;</summary><content type="html">&lt;p&gt;The future has just begun, our phone and &lt;span class="caps"&gt;DSL&lt;/span&gt; connections were switched over from the &lt;a href="http://www.t-com.de"&gt;big pink monopoly&lt;/a&gt; to &lt;a href="http://www.arcor.de"&gt;Arcor&lt;/a&gt;. Unfortunately, their phone rates border on highway robbery (by being at least double as expensive as &lt;a href="http://teltarif.de"&gt;cheaper providers&lt;/a&gt;). So, I decided to give &lt;a href="http://www.sipgate.de"&gt;Voice-over-&lt;span class="caps"&gt;IP&lt;/span&gt;&lt;/a&gt; a try, using &lt;a href="http://www.wirlab.net/kphone/index.html"&gt;kphone&lt;/a&gt; as my &lt;span class="caps"&gt;SIP&lt;/span&gt; client. These &lt;a href="http://130.75.73.30/homepage_rep/svenk/kphone_sipgate.html"&gt;configuration instructions&lt;/a&gt; were sufficient, except for one minor (but important) &lt;a href="http://www.ip-phone-forum.de/forum/viewtopic.php?p=63889"&gt;detail&lt;/a&gt;: You may &lt;em&gt;not&lt;/em&gt; use Umlaut characters as part of the Name field in KPhone, otherwise the sipgate server will report back something like (see the KPhone console&amp;nbsp;output)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 82.82.79.89;branch=RANDOM-CHARACTERS;rport=5060
CSeq: 1722 REGISTER
To: "Andreas Klöckner" &amp;lt;sip:5557868@sipgate.de&amp;gt;;tag=--------------HEX-DIGITS-------.HEX
From: "Andreas Klöckner" &amp;lt;sip:5557868@sipgate.de&amp;gt;
Call-ID: NNNNNNNN@192.168.113.4
WWW-Authenticate: Digest realm="sipgate.de", nonce="------HEX HEX HEX HEX------"
Server: sipgate ser
Content-Length: 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Hope this helps someone out&amp;nbsp;there.&lt;/p&gt;</content><category term="technology"></category></entry><entry><title>Excuse me? We’re living in a… what?</title><link href="https://mathema.tician.de/excuse-me-were-living-in-a-what" rel="alternate"></link><published>2005-01-12T18:30:31-06:00</published><updated>2005-01-12T18:30:31-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-12:/excuse-me-were-living-in-a-what</id><summary type="html">&lt;p&gt;Well, until just now I was caught in the misbelief that we&amp;#8217;re living in a western-style democracy. After watching the news today, this has suddenly changed, to my surprise.&amp;nbsp;:O&lt;/p&gt;
&lt;p&gt;Bremen&amp;#8217;s senator of the interior is in trouble for authorizing the use of emetics by the police on …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Well, until just now I was caught in the misbelief that we&amp;#8217;re living in a western-style democracy. After watching the news today, this has suddenly changed, to my surprise.&amp;nbsp;:O&lt;/p&gt;
&lt;p&gt;Bremen&amp;#8217;s senator of the interior is in trouble for authorizing the use of emetics by the police on someone suspected of dealing with drugs. The (foreign) suspect died in the aftermath. (Emetics are, by &lt;a href="http://dict.leo.org"&gt;&lt;span class="caps"&gt;LEO&lt;/span&gt;&amp;#8217;s&lt;/a&gt; definition, drugs that makes you throw up.) (&lt;a href="http://news.google.de/news?hl=de&amp;amp;ned=de&amp;amp;q=r%C3%B6wekamp&amp;amp;btnG=News-Suche"&gt;Google News&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Honestly, I don&amp;#8217;t care what the laws in this regard are. I believe that this is &lt;strong&gt;torture&lt;/strong&gt;, and regardless of whether it is common practice or not, it needs to stop &lt;em&gt;at once&lt;/em&gt;. I understand that it may be necessary for the police to restrict one&amp;#8217;s freedom to move about &lt;em&gt;temporarily&lt;/em&gt; and &lt;em&gt;within reasonable limits&lt;/em&gt;, but strapping someone to a bed and making him swallow things against his will definitely goes &lt;em&gt;way too far&lt;/em&gt;. (Especially if the bed looks like the ones they use for executions. But that is somewhat beside the&amp;nbsp;point.)&lt;/p&gt;
&lt;p&gt;But don&amp;#8217;t feel relieved if you&amp;#8217;re from the &lt;span class="caps"&gt;US&lt;/span&gt;, you got your share of &lt;a href="http://yro.slashdot.org/yro/05/01/12/2227212.shtml?tid=158&amp;amp;tid=123&amp;amp;tid=103"&gt;bad news&lt;/a&gt;, too. A New York judge  ruled today that police don&amp;#8217;t need a judge&amp;#8217;s assent to slap a &lt;span class="caps"&gt;GPS&lt;/span&gt; tracker on somebody&amp;#8217;s vehicle. What &lt;em&gt;is&lt;/em&gt; privacy, then, if they can track your every move? Oh, you&amp;#8217;re British? Don&amp;#8217;t worry, &lt;a href="http://news.google.co.uk/news?hl=en&amp;amp;ned=uk&amp;amp;q=cctv&amp;amp;btnG=Search+News"&gt;you&amp;#8217;re rights are also being&amp;nbsp;violated.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Are citizen&amp;#8217;s rights being trampled on increasingly in recent times, just because new (and yet unregulated) technology makes this possible? Something needs to change. Fast. At least if we like our freedoms the way they are right&amp;nbsp;now.&lt;/p&gt;</content><category term="rants"></category></entry><entry><title>El sistema</title><link href="https://mathema.tician.de/el-sistema" rel="alternate"></link><published>2005-01-11T07:16:48-06:00</published><updated>2005-01-11T07:16:48-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-11:/el-sistema</id><summary type="html">&lt;p&gt;&lt;img alt="What the user *really* wanted" src="http://gallery.tiker.net/d/1103-2/elsistema.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;This image was nicked from &lt;a href="http://www.damog.net"&gt;here&lt;/a&gt;. I recommend &lt;a href="http://www.spanishdict.com"&gt;this&lt;/a&gt; if your Spanish (like mine) is a tad&amp;nbsp;rusty.&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="What the user *really* wanted" src="http://gallery.tiker.net/d/1103-2/elsistema.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;This image was nicked from &lt;a href="http://www.damog.net"&gt;here&lt;/a&gt;. I recommend &lt;a href="http://www.spanishdict.com"&gt;this&lt;/a&gt; if your Spanish (like mine) is a tad&amp;nbsp;rusty.&lt;/p&gt;</content><category term="silly-stuff"></category></entry><entry><title>A strangely cleansing experience</title><link href="https://mathema.tician.de/a-strangely-cleansing-experience" rel="alternate"></link><published>2005-01-11T06:29:26-06:00</published><updated>2005-01-11T06:29:26-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-11:/a-strangely-cleansing-experience</id><summary type="html">&lt;p&gt;I recently got back to Karlsruhe from being home for the holidays. Besides the usual heap of problems waiting for me at my &amp;#8220;normal&amp;#8221; home, I was pretty surprised how easily you get spoiled again by the amenities of having a mom around (and a dad, to be fair). For …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I recently got back to Karlsruhe from being home for the holidays. Besides the usual heap of problems waiting for me at my &amp;#8220;normal&amp;#8221; home, I was pretty surprised how easily you get spoiled again by the amenities of having a mom around (and a dad, to be fair). For the most part, no worries, no need to prepare breakfast, lunch or dinner. And especially, somewhere clean to live. As I got back to Karlsruhe, I was struck by how messy and dusty I had left the place before Christmas. (Or did it just get dirty and dusty while I was absent? Who&amp;nbsp;knows.)&lt;/p&gt;
&lt;p&gt;So, nearly the entirety of my first evening back in Karlsruhe was spent cleaning up and putting everything back in order, but even yesterday, the second day in, it didn&amp;#8217;t quite feel like home. After running a few errands, I felt a strange need to rearrange my room&amp;#8212;mostly, move the desk somewhere else and make use of some space that was previously unused. Oddly enough, that fixed my not being comfortable with my&amp;nbsp;home. &lt;/p&gt;
&lt;p&gt;I guess that was my reaction to feeling overwhelmed with stuff to do (cleaning)&amp;#8212;so to speak, feeling powerless against my room. I had to show it who the &lt;em&gt;man&lt;/em&gt; is, who&amp;#8217;s wearing the pants, who&amp;#8217;s in command.&amp;nbsp;8)&lt;/p&gt;
&lt;p&gt;Sometimes life is so&amp;nbsp;weird.&lt;/p&gt;</content><category term="life"></category></entry><entry><title>Just don’t use ACPI on old computers</title><link href="https://mathema.tician.de/just-dont-use-acpi-on-old-computers" rel="alternate"></link><published>2005-01-09T06:27:34-06:00</published><updated>2005-01-09T06:27:34-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-09:/just-dont-use-acpi-on-old-computers</id><summary type="html">&lt;p&gt;A brief hint for those using Linux: If you have an old computer, and Linux chooses to disable &lt;span class="caps"&gt;ACPI&lt;/span&gt;, leave it at that. That is, do not use &lt;code&gt;acpi=force&lt;/code&gt;. I just had a case of a computer that &lt;em&gt;appeared&lt;/em&gt; to work fine with it. Only that the &lt;span class="caps"&gt;ACPI&lt;/span&gt; option …&lt;/p&gt;</summary><content type="html">&lt;p&gt;A brief hint for those using Linux: If you have an old computer, and Linux chooses to disable &lt;span class="caps"&gt;ACPI&lt;/span&gt;, leave it at that. That is, do not use &lt;code&gt;acpi=force&lt;/code&gt;. I just had a case of a computer that &lt;em&gt;appeared&lt;/em&gt; to work fine with it. Only that the &lt;span class="caps"&gt;ACPI&lt;/span&gt; option would make the serial port (apparently) lose interrupts, and thus put &amp;#8220;breaks&amp;#8221; or &amp;#8220;pauses&amp;#8221; into any longer download. The data transfer would stop, and then, with the next &lt;span class="caps"&gt;LCP&lt;/span&gt; Echo Request on the &lt;span class="caps"&gt;PPP&lt;/span&gt; link, resume. The data transfer was pretty &amp;#8220;bursty&amp;#8221;, not nearly exploiting the full (stable) transfer rate on &lt;span class="caps"&gt;ISDN&lt;/span&gt; of roughly 8&amp;nbsp;kilobytes/second.&lt;/p&gt;</content><category term="linux"></category></entry><entry><title>Comment Spam</title><link href="https://mathema.tician.de/comment-spam" rel="alternate"></link><published>2005-01-08T21:56:45-06:00</published><updated>2005-01-08T21:56:45-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-08:/comment-spam</id><summary type="html">&lt;p&gt;I&amp;#8217;ve had this site for barely two weeks, and even this short time was enough for comment spammers to catch on. The site emailed me with notifications of new comments, and even from the notification emails, I was pretty certain as to what had happened. Somebody was trying to …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;ve had this site for barely two weeks, and even this short time was enough for comment spammers to catch on. The site emailed me with notifications of new comments, and even from the notification emails, I was pretty certain as to what had happened. Somebody was trying to direct your (and my) attention at the greatness of V!@&lt;span class="caps"&gt;GRA&lt;/span&gt; and to how cheap it was to buy from them. Oh, and they would provide a loan, too, should one be needed. With low, low rates. Personally, I find this pretty sick. What kind of person do you have to be to try and exploit a volunteer&amp;#8217;s work for your own material benefit? I&amp;#8217;m puzzled. Please enlighten&amp;nbsp;me.&lt;/p&gt;
&lt;p&gt;As the upshot of all this, anonymous comments, desirable as they may be, are now disabled.&amp;nbsp;Sorry.&lt;/p&gt;</content><category term="meta"></category><category term="rants"></category><category term="technology"></category></entry><entry><title>What were they thinking?</title><link href="https://mathema.tician.de/what-were-they-thinking" rel="alternate"></link><published>2005-01-06T04:56:18-06:00</published><updated>2005-01-06T04:56:18-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-06:/what-were-they-thinking</id><summary type="html">&lt;p&gt;The German &lt;a href="http://www.bundesfinanzministerium.de/"&gt;tax administration&lt;/a&gt; has published &lt;a href="http://www.elsterformular.de"&gt;software&lt;/a&gt; to file your taxes online, and they promise that you&amp;#8217;ll get your money back faster if you do that. That sounds good, doesn&amp;#8217;t it? But, as often, they missed the mark ever so slightly. Why, oh, why does the thing have …&lt;/p&gt;</summary><content type="html">&lt;p&gt;The German &lt;a href="http://www.bundesfinanzministerium.de/"&gt;tax administration&lt;/a&gt; has published &lt;a href="http://www.elsterformular.de"&gt;software&lt;/a&gt; to file your taxes online, and they promise that you&amp;#8217;ll get your money back faster if you do that. That sounds good, doesn&amp;#8217;t it? But, as often, they missed the mark ever so slightly. Why, oh, why does the thing have to be called &amp;#8220;Elster&amp;#8221;? &lt;span class="caps"&gt;OK&lt;/span&gt;, it&amp;#8217;s an acronym of &lt;strong&gt;El&lt;/strong&gt;ektronische &lt;strong&gt;Ste&lt;/strong&gt;ue&lt;strong&gt;r&lt;/strong&gt;erklärung, i.e. electronic tax return, but the word is also German for &lt;em&gt;magpie&lt;/em&gt;. If I was the tax administration, I&amp;#8217;d avoid any association with theft like the plague. :puzzled: Beats&amp;nbsp;me.&lt;/p&gt;
&lt;p&gt;In any case, the thing is Win32-only and looks like a good example of shoddy engineering. Unfortunately, my parents want it, and I had to install it, including all the Windows Updates it requires. You can hopefully feel my&amp;nbsp;pain.&lt;/p&gt;</content><category term="rants"></category><category term="technology"></category></entry><entry><title>Review: “Der Palast von Alhambra” (board game)</title><link href="https://mathema.tician.de/review-der-palast-von-alhambra-board-game" rel="alternate"></link><published>2005-01-04T16:15:29-06:00</published><updated>2005-01-04T16:15:29-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-04:/review-der-palast-von-alhambra-board-game</id><summary type="html">&lt;p&gt;My parents gave me &lt;a href="http://www.amazon.de/exec/obidos/ASIN/B0000E2W1J/302-2007316-2332060"&gt;Der Palast von Alhambra&lt;/a&gt; by Dirk Henn of &lt;a href="http://www.queen-games.de/"&gt;Queen Games&lt;/a&gt; for christmas, and I&amp;#8217;m writing this review to warn you of buying this game. Despite a recommendation from my aunt Conny and the &amp;#8220;Spiel des Jahres&amp;#8221; (game of the year) prize of 2003, this game …&lt;/p&gt;</summary><content type="html">&lt;p&gt;My parents gave me &lt;a href="http://www.amazon.de/exec/obidos/ASIN/B0000E2W1J/302-2007316-2332060"&gt;Der Palast von Alhambra&lt;/a&gt; by Dirk Henn of &lt;a href="http://www.queen-games.de/"&gt;Queen Games&lt;/a&gt; for christmas, and I&amp;#8217;m writing this review to warn you of buying this game. Despite a recommendation from my aunt Conny and the &amp;#8220;Spiel des Jahres&amp;#8221; (game of the year) prize of 2003, this game could stand improvement in various departments. But let me begin with a short description of what the game is all&amp;nbsp;about.&lt;/p&gt;
&lt;p&gt;Given money in four different &amp;#8220;currencies&amp;#8221; which you basically draw from a few stacks, you buy building blocks of your very own palace. There are a number of different block types, such as pavillon, tower, gardens, etc. The person to amass the majority of pieces of one type gets a given number of points in each of the three scoring rounds. If two players share a majority, they split the points. The person with most points&amp;nbsp;wins.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s my list of pet&amp;nbsp;peeves:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The game is unnecessarily complex. For example, I don&amp;#8217;t know why there have to be &lt;em&gt;four&lt;/em&gt; different currencies. Additionally, The fact that each player needs to have a reserve stack is a foul hack to compensate for the fact you can build your way into a&amp;nbsp;dead-end.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The game is non-interactive. Except for the shared card stacks and the shared data about who has how many buildings, one player&amp;#8217;s actions really do not affect the others significantly. This game might be good if you hate talking while you&amp;nbsp;play.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The game is very dependent on luck. Strategies, at least the ones that I&amp;#8217;ve been able to devise, are usually foiled by missing means, such as a missing card of one color. Also, it doesn&amp;#8217;t feel like the game rewards significant efforts fairly. For example, f you have invested heavily to build a majority in some building type and someone else matches it, you might end up with fewer points than the next-best player who might only have one building of that&amp;nbsp;type.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The instructions omit important strategic advice. For example, the cheaper a given building block is, the more walled-off it is, typically. Walls severely restrict your building activity late in the game, while making little difference at the outset&amp;#8212;but you typically don&amp;#8217;t get that until it&amp;#8217;s already too late, at least for the first few&amp;nbsp;games.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;PS&lt;/span&gt;:&lt;/strong&gt; If you feel that my take of this game is entirely incorrect, please let me know in the&amp;nbsp;comments.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;PPS&lt;/span&gt;:&lt;/strong&gt; This post is not meant to give me bad karma with my parents. I appreciated their gift very&amp;nbsp;much.&lt;/p&gt;</content><category term="board-games"></category></entry><entry><title>More Drupal wizardry</title><link href="https://mathema.tician.de/more-drupal-wizardry" rel="alternate"></link><published>2005-01-04T14:37:14-06:00</published><updated>2005-01-04T14:37:14-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-04:/more-drupal-wizardry</id><summary type="html">&lt;p&gt;I&amp;#8217;ve been molding this site according to my publishing needs, and in the process of doing so, I&amp;#8217;ve ventured into the Drupal source code. I&amp;#8217;ve made a few changes that I believe are generally useful. Besides submitting them to the respective maintainers, I&amp;#8217;ll post them here …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;ve been molding this site according to my publishing needs, and in the process of doing so, I&amp;#8217;ve ventured into the Drupal source code. I&amp;#8217;ve made a few changes that I believe are generally useful. Besides submitting them to the respective maintainers, I&amp;#8217;ll post them here for added&amp;nbsp;accessibility.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;#8217;ve modified the Drupal core to provide &amp;#8220;Clean URLs&amp;#8221; without needing proper &lt;code&gt;mod_rewrite&lt;/code&gt; support.  Instead, you only need to be allowed set the &lt;code&gt;ErrorDocument&lt;/code&gt; to the provided &lt;code&gt;404.php&lt;/code&gt; page. There is a slight complication that the implementation handles properly: &lt;span class="caps"&gt;HTML&lt;/span&gt; forms submitted via &lt;span class="caps"&gt;HTTP&lt;/span&gt; &lt;span class="caps"&gt;POST&lt;/span&gt; cannot use these clean URLs since the form data does not propagate through the ErrorDocument redirection. This &lt;a href="/dl/drupal-4.5.1-clean404-2005-01-04-v3.patch"&gt;More Drupal wizardry&lt;/a&gt; against version 4.5.1 of Drupal implements this. (&lt;a href="http://drupal.org/node/15127"&gt;upstream&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Update 1:&lt;/strong&gt; It turns out that my web hosting company, &lt;a href="http://www.alturo.de"&gt;Alturo&lt;/a&gt;, does support this. In order to enable it, you need to say &lt;code&gt;RewriteBase /&lt;/code&gt; in &lt;code&gt;.htaccess&lt;/code&gt;. They do not document that, though. (In general, they document fairly little.) As a result of this, I won&amp;#8217;t be maintaining the Clean-URLs-via-404&amp;nbsp;patch.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 2:&lt;/strong&gt; I&amp;#8217;ve put a modified version of the patch onto the Drupal bug tracker that applies to current Drupal &lt;span class="caps"&gt;CVS&lt;/span&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;#8217;ve modified and fixed &lt;code&gt;inline.module&lt;/code&gt; in several ways in this &lt;a href="/dl/inline-2005-01-04-v1.patch"&gt;More Drupal wizardry&lt;/a&gt;: (&lt;a href="http://drupal.org/node/15129"&gt;upstream&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;You can now specify &lt;code&gt;[ inline:filename.ext]&lt;/code&gt; instead of only the number, for added link&amp;nbsp;stability.&lt;/li&gt;
&lt;li&gt;A bold, red &lt;strong&gt;&lt;span class="caps"&gt;NOT&lt;/span&gt; &lt;span class="caps"&gt;FOUND&lt;/span&gt;&lt;/strong&gt; message is shown if the given file name or number does not&amp;nbsp;exist.&lt;/li&gt;
&lt;li&gt;The module previously generated spaces around the &lt;code&gt;img&lt;/code&gt; and &lt;code&gt;a&lt;/code&gt; tags. Those are&amp;nbsp;gone.&lt;/li&gt;
&lt;li&gt;Images are only inlined if linked to with &lt;code&gt;[ inline:...]&lt;/code&gt;. If you say &lt;code&gt;[ file:my.png]&lt;/code&gt;, this will remain a file&amp;nbsp;link.&lt;/li&gt;
&lt;li&gt;The recent &lt;a href="http://drupal.org/node/14747"&gt;fix&lt;/a&gt; for multiple links in one node is part of this&amp;nbsp;patch.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;(The spaces were necessary to keep &lt;code&gt;inline.module&lt;/code&gt; from picking up these example&amp;nbsp;links.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I&amp;#8217;ve added &lt;a href="http://drupal.org/node/15154"&gt;two&lt;/a&gt; &lt;a href="http://drupal.org/node/5855"&gt;patches&lt;/a&gt; to the &lt;a href="http://drupal.org/project/title"&gt;title&lt;/a&gt;&amp;nbsp;module.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dl/drupal-4.5.1-clean404-2005-01-04-v3.patch"&gt;drupal-4.5.1-clean404-2005-01-04-v3.patch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dl/inline-2005-01-04-v1.patch"&gt;inline-2005-01-04-v1.patch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="meta"></category><category term="my-software"></category></entry><entry><title>Simple CD burning in Linux and the Real World(tm)</title><link href="https://mathema.tician.de/simple-cd-burning-in-linux-and-the-real-world-tm" rel="alternate"></link><published>2005-01-01T19:28:34-06:00</published><updated>2005-01-01T19:28:34-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-01:/simple-cd-burning-in-linux-and-the-real-world-tm</id><summary type="html">&lt;p&gt;There&amp;#8217;s an issue surrounding recent (2.6.8 and newer) Linux kernels and &lt;span class="caps"&gt;CD&lt;/span&gt; burning. This &lt;a href="http://forums.gentoo.org/viewtopic.php?t=247459"&gt;Gentoo forum thread&lt;/a&gt; summarizes the technicalities. Basically, up until 2.6.7, everybody with read rights to a device was allowed to send control messages to it, and thus (for example) overwrite an …&lt;/p&gt;</summary><content type="html">&lt;p&gt;There&amp;#8217;s an issue surrounding recent (2.6.8 and newer) Linux kernels and &lt;span class="caps"&gt;CD&lt;/span&gt; burning. This &lt;a href="http://forums.gentoo.org/viewtopic.php?t=247459"&gt;Gentoo forum thread&lt;/a&gt; summarizes the technicalities. Basically, up until 2.6.7, everybody with read rights to a device was allowed to send control messages to it, and thus (for example) overwrite an &lt;span class="caps"&gt;IDE&lt;/span&gt; hard drive&amp;#8217;s firmware, which is (obviously) undesirable.. In 2.6.8, a patch was introduced to fix this. This patch was a bit overzealous and disabled all control commands that aren&amp;#8217;t obviously harmless, including those used for burning&amp;nbsp;CDs.&lt;/p&gt;
&lt;p&gt;The downside to this is that people who want to simply burn CDs and don&amp;#8217;t have potentially malicious local users on their computers every day are out of luck: Until the related function in the kernel (called &lt;code&gt;verify_command&lt;/code&gt;, in drivers/block/scsi_ioctl.c) is being more and more refined to allow what&amp;#8217;s safe, &lt;span class="caps"&gt;CD&lt;/span&gt; burning simply will &lt;em&gt;not&lt;/em&gt; work. For example with kernel 2.6.10, it still does &lt;em&gt;not&lt;/em&gt; work as it used to, at least not with Debian sarge&amp;#8217;s versions of k3b and&amp;nbsp;cdrecord.&lt;/p&gt;
&lt;p&gt;The attached &lt;a href="/dl/cd-allow-everything.patch"&gt;Simple &lt;span class="caps"&gt;CD&lt;/span&gt; burning in Linux and the Real World(tm)&lt;/a&gt; against 2.6.10&amp;#8217;s &lt;code&gt;drivers/block/scsi_ioctl.c&lt;/code&gt; basically reverts everything to the pre-2.6.8 situation. It gives everyone with sufficient rights to open a file descriptor on a device the right to send &lt;em&gt;any&lt;/em&gt; ioctl, which is potentially dangerous, but more convenient than the current&amp;nbsp;mess.&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dl/cd-allow-everything.patch"&gt;cd-allow-everything.patch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="linux"></category></entry><entry><title>Drupal wizardry</title><link href="https://mathema.tician.de/drupal-wizardry" rel="alternate"></link><published>2005-01-01T14:33:34-06:00</published><updated>2005-01-01T14:33:34-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-01:/drupal-wizardry</id><summary type="html">&lt;p&gt;If you are trying to set up your personal site using &lt;a href="http://www.drupal.org"&gt;Drupal&lt;/a&gt;, these insights might come in handy. At least, those were the points that cost me the  most time to figure&amp;nbsp;out.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;As far as web writing markup goes, do &lt;em&gt;not&lt;/em&gt; use &lt;a href="http://www.textism.com/tools/textile/"&gt;Textile&lt;/a&gt;, &lt;em&gt;do&lt;/em&gt; use &lt;a href="http://www.michelf.com/projects/php-markdown/"&gt;Markdown&lt;/a&gt;. Not only does …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;If you are trying to set up your personal site using &lt;a href="http://www.drupal.org"&gt;Drupal&lt;/a&gt;, these insights might come in handy. At least, those were the points that cost me the  most time to figure&amp;nbsp;out.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;As far as web writing markup goes, do &lt;em&gt;not&lt;/em&gt; use &lt;a href="http://www.textism.com/tools/textile/"&gt;Textile&lt;/a&gt;, &lt;em&gt;do&lt;/em&gt; use &lt;a href="http://www.michelf.com/projects/php-markdown/"&gt;Markdown&lt;/a&gt;. Not only does it work properly with Unicode (&lt;span class="caps"&gt;UTF&lt;/span&gt;-8, really), its markup is also more sensible, yet similar. Both Textile and Markdown have Drupal modules available for them. Now you know which one to use. I will gradually migrate my site over to it, but one thing at a time. &lt;em&gt;Josie:&lt;/em&gt; Markdown has magically appeared in your modules list, you need to enable it and configure your input filters to use&amp;nbsp;it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Markdown is &lt;a href="http://daringfireball.net/projects/markdown/syntax"&gt;extensively documented&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; My site is migrated. Death to Textile!&amp;nbsp;}:)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you (like me) first set up your site on a home server and then want to migrate it onto some paid hosting site, and want to rename Drupal&amp;#8217;s tables in the process (because the hosting company only gives you one database), do beware. When you post stories after this, Drupal will refuse to add nodes, complaining about duplicate node IDs. I was first confused into thinking that MySQL&amp;#8217;s auto_increment columns were at fault for generating those duplicate IDs or otherwise had not survived the database dump&amp;#8217;n&amp;#8217;restore, and I spent an hour trying to fix that. Then I realized that Drupal has its own table called &lt;code&gt;sequences&lt;/code&gt; for this purpose. To make a long story short: If you rename tables in drupal, don&amp;#8217;t forget to also rename them in the &lt;code&gt;sequences&lt;/code&gt; table.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;Clean URLs&amp;#8221; can make your site unusable. Assume you have transferred a site from somewhere that does support Clean URLs to somewhere that doesn&amp;#8217;t. At the new site, Drupal looks at the database , still thinks that they&amp;#8217;re enabled, and outputs its URLs in &amp;#8220;clean&amp;#8221; form, so your admin interface (or, really, any link on your site) will not work. VoilÃƒÂ , your site is unusable. Even if you figure out that the &amp;#8220;Clean URLs&amp;#8221; setting in Drupal is mirrored in the &lt;code&gt;variables&lt;/code&gt; table, changing that in there does not seem to help. A crude hack that saved my life twice is changing &lt;code&gt;includes/common.inc&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; See the [link:More Drupal wizardry|post] about Clean URLs via the &lt;code&gt;ErrorDocument&lt;/code&gt; directive.&lt;/p&gt;</content><category term="meta"></category><category term="technology"></category></entry><entry><title>Happy new year to you!</title><link href="https://mathema.tician.de/happy-new-year-to-you" rel="alternate"></link><published>2005-01-01T07:46:24-06:00</published><updated>2005-01-01T07:46:24-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2005-01-01:/happy-new-year-to-you</id><summary type="html">&lt;p&gt;I hope you had good holidays and that 2005 will turn out just the way you wanted it to. If there is one thing that &lt;em&gt;I&lt;/em&gt; am hoping for the most, then it is that I do get into a good &lt;span class="caps"&gt;US&lt;/span&gt; graduate school for my PhD in the fall …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I hope you had good holidays and that 2005 will turn out just the way you wanted it to. If there is one thing that &lt;em&gt;I&lt;/em&gt; am hoping for the most, then it is that I do get into a good &lt;span class="caps"&gt;US&lt;/span&gt; graduate school for my PhD in the fall. Wish me luck!&amp;nbsp;:D&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Josie told me to not wish a happy new year before it&amp;#8217;s actually happened. So I&amp;#8217;ve probably confused numerous people until now. I&amp;#8217;ll only activate this entry once 2005&amp;nbsp;comes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 2:&lt;/strong&gt; Here&amp;nbsp;goes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 3:&lt;/strong&gt; Happy birthday, &lt;a href="http://gramma.tiker.net"&gt;Josie&lt;/a&gt;!&amp;nbsp;:)&lt;/p&gt;</content><category term="life"></category></entry><entry><title>Parental Services, Inc.</title><link href="https://mathema.tician.de/parental-services-inc" rel="alternate"></link><published>2004-12-31T05:46:38-06:00</published><updated>2004-12-31T05:46:38-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-12-31:/parental-services-inc</id><summary type="html">&lt;p&gt;For the past few days, I&amp;#8217;ve been doing what I suppose most kids who are at least a slight bit tech-savvy have to do when they get home for the holidays: Fix their parents&amp;#8217; high-tech stuff. The day before yesterday, I finished pushing my parents over to Linux, with …&lt;/p&gt;</summary><content type="html">&lt;p&gt;For the past few days, I&amp;#8217;ve been doing what I suppose most kids who are at least a slight bit tech-savvy have to do when they get home for the holidays: Fix their parents&amp;#8217; high-tech stuff. The day before yesterday, I finished pushing my parents over to Linux, with a very tiring partition resize process. But it all worked out&amp;#8212;Yay. And yesterday, I spent all day connecting my parents&amp;#8217; &lt;span class="caps"&gt;TV&lt;/span&gt; to their (pretty impressive, bass-wise) home stereo system. Obviously, making the actual connection was trivial and done within a few seconds. Hiding the cable was what took the most time, with lots of furniture-pushing, base-board-unscrewing and such things. Tiring, but I&amp;#8217;m done for now. On to the pleasurable part of being home.&amp;nbsp;:)&lt;/p&gt;</content><category term="life"></category></entry><entry><title>My least favorite day this week</title><link href="https://mathema.tician.de/my-least-favorite-day-this-week" rel="alternate"></link><published>2004-12-27T11:57:52-06:00</published><updated>2004-12-27T11:57:52-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-12-27:/my-least-favorite-day-this-week</id><summary type="html">&lt;p&gt;Today I took Josie to the airport to go home. As I&amp;#8217;m writing this, I&amp;#8217;m on my way to my parents&amp;#8217; house in Überlingen. For more than one reason, today wasn&amp;#8217;t my favorite day this&amp;nbsp;week.&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s start at the beginning: the last few days were …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Today I took Josie to the airport to go home. As I&amp;#8217;m writing this, I&amp;#8217;m on my way to my parents&amp;#8217; house in Überlingen. For more than one reason, today wasn&amp;#8217;t my favorite day this&amp;nbsp;week.&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s start at the beginning: the last few days were extremely cool. I spent christmas with Josie in Ulm, and we hung out, ate and just generally had lots of fun, with very few obligations. Yesterday, Josie and I decided to make tiker.net our full-scale journal site. So, I ordered the upgrade from &lt;a href="http://www.alturo.de"&gt;my web hosting company&lt;/a&gt;, and they filled the order almost immediately, even though it was a public holiday. When we got to Karlsruhe, I could of course not resist and just &lt;em&gt;had&lt;/em&gt; to set up the site to see if it would work. This took until 3:45 am this morning, and except for a few glitches that I might write about in a separate entry, it worked out great. I had been a bit sad since we left Ulm because it seemed Josie was seriously leaving. Setting up the site helped me forget the sadness for a while (hacking generally does).  Unfortunately, the sadness came back right after when Josie was rightfully upset with me for getting in the bed this&amp;nbsp;late.&lt;/p&gt;
&lt;p&gt;And then we had to get up at 6 am this morning, so I started the day with a royal 2:15 of sleep. We got to the airport while it was still dark, got her checked in, and hung out at Terminal 2 until it was time to go. Josie was in a hurry, because it was 9:50, and she was supposed to be at the gate at 10. She raced through security, was reminded by the ticket checker lady to say goodbye to me and didn&amp;#8217;t even turn around to wave before she disappeared. That sucked. Fast forward to home, through two trains filled to the last spot with me sitting on the floor. As I walked in the door, I found the envelope from &lt;a href="http://www.ets.org"&gt;&lt;span class="caps"&gt;ETS&lt;/span&gt;&lt;/a&gt; that I had been hoping for and dreading for a long time: it contained my Subject &lt;span class="caps"&gt;GRE&lt;/span&gt; results. Turns out that I sucked. 660 out of 800, or better than 60% of the people. I sincerely hope that this doesn&amp;#8217;t ruin my chances to get into a usable PhD program. It&amp;#8217;s pretty easy to get frustrated and believe that all is lost. However, hope dies last, and I&amp;#8217;ll continue to pursue admission in the &lt;span class="caps"&gt;US&lt;/span&gt;. To be safe, I&amp;#8217;ll certainly look for opportunities for a doctorate in Germany in the new&amp;nbsp;year.&lt;/p&gt;
&lt;p&gt;Right now, I&amp;#8217;m looking forward to a few days in the consoling abundance of food and company that is my parents&amp;#8217; house. (I&amp;#8217;ll have to be studying, but still.) I just realized that I forgot my tooth&amp;nbsp;brush.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update:&lt;/em&gt; Much less frustrated now than when I wrote this. I still decided to post it,&amp;nbsp;though.&lt;/p&gt;</content><category term="grad-school"></category><category term="life"></category></entry><entry><title>A real journal on the real Internet!</title><link href="https://mathema.tician.de/a-real-journal-on-the-real-internet" rel="alternate"></link><published>2004-12-26T20:30:52-06:00</published><updated>2004-12-26T20:30:52-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-12-26:/a-real-journal-on-the-real-internet</id><summary type="html">&lt;p&gt;So, the site is finally out on the real Internet. Thanks to &lt;a href="http://gramma.tiker.net"&gt;Josie&lt;/a&gt; for co-funding this server. This means that we&amp;#8217;re now open 24 hours a day, fast and not behind a flaky &lt;span class="caps"&gt;DSL&lt;/span&gt; line. And the people rejoiced.&amp;nbsp;:D&lt;/p&gt;</summary><content type="html">&lt;p&gt;So, the site is finally out on the real Internet. Thanks to &lt;a href="http://gramma.tiker.net"&gt;Josie&lt;/a&gt; for co-funding this server. This means that we&amp;#8217;re now open 24 hours a day, fast and not behind a flaky &lt;span class="caps"&gt;DSL&lt;/span&gt; line. And the people rejoiced.&amp;nbsp;:D&lt;/p&gt;</content><category term="meta"></category></entry><entry><title>Math Archaeology</title><link href="https://mathema.tician.de/math-archaeology" rel="alternate"></link><published>2004-12-08T06:11:07-06:00</published><updated>2004-12-08T06:11:07-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-12-08:/math-archaeology</id><summary type="html">&lt;p&gt;While researching the specializations of the faculty at &lt;span class="caps"&gt;UMD&lt;/span&gt;, I stumbled upon a link to the &lt;a href="http://historical.library.cornell.edu/math/"&gt;Cornell Digital Math Library&lt;/a&gt;, which I find really neat. They have scanned old volumes in mathematics that have gone out of copyright, and made them freely accessible to &lt;em&gt;anyone&lt;/em&gt;. No username/password mess. Along …&lt;/p&gt;</summary><content type="html">&lt;p&gt;While researching the specializations of the faculty at &lt;span class="caps"&gt;UMD&lt;/span&gt;, I stumbled upon a link to the &lt;a href="http://historical.library.cornell.edu/math/"&gt;Cornell Digital Math Library&lt;/a&gt;, which I find really neat. They have scanned old volumes in mathematics that have gone out of copyright, and made them freely accessible to &lt;em&gt;anyone&lt;/em&gt;. No username/password mess. Along with other initiatives, such as &lt;a href="http://arxiv.org"&gt;ArXiv&lt;/a&gt;, this bodes well for the digital commons. Just imagine, all the world&amp;#8217;s knowledge, freely accessible to anyone with comparably cheap technical means! Compare that to the effort it took just years ago to get a hold of, say, a copy of a historical mathematics book, such as Hilbert&amp;#8217;s or Weierstrass&amp;#8217;s. While their treatments of math are certainly not the most &amp;#8220;up-to-date&amp;#8221;, I usually find it most interesting to find out how someone &lt;em&gt;came up&lt;/em&gt; with something in the first place, what ideas they had, which I firmly believe is of some value, even in today&amp;#8217;s world of content overflow. If there only were more hours in the&amp;nbsp;day&amp;#8230;&lt;/p&gt;
&lt;p&gt;Back to current priorities: grad school applications.&amp;nbsp;:O&lt;/p&gt;</content><category term="math"></category></entry><entry><title>Another day of administrative joy</title><link href="https://mathema.tician.de/another-day-of-administrative-joy" rel="alternate"></link><published>2004-12-06T14:02:52-06:00</published><updated>2004-12-06T14:02:52-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-12-06:/another-day-of-administrative-joy</id><summary type="html">&lt;p&gt;Another day totally dominated by activities related to applying to grad school. Like trying to get my recommenders to send their letters the right way. Finding out that, in fact, &lt;span class="caps"&gt;UMD&lt;/span&gt; does &lt;em&gt;not&lt;/em&gt; support online recommendation. Filling out stupid &lt;a href="http://ets.org"&gt;&lt;span class="caps"&gt;ETS&lt;/span&gt;&lt;/a&gt; score report forms using &lt;a href="http://scribus.org.uk"&gt;Scribus&lt;/a&gt; just to &lt;a href="http://efax-gtk.sourceforge.net/"&gt;fax&lt;/a&gt; them off …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Another day totally dominated by activities related to applying to grad school. Like trying to get my recommenders to send their letters the right way. Finding out that, in fact, &lt;span class="caps"&gt;UMD&lt;/span&gt; does &lt;em&gt;not&lt;/em&gt; support online recommendation. Filling out stupid &lt;a href="http://ets.org"&gt;&lt;span class="caps"&gt;ETS&lt;/span&gt;&lt;/a&gt; score report forms using &lt;a href="http://scribus.org.uk"&gt;Scribus&lt;/a&gt; just to &lt;a href="http://efax-gtk.sourceforge.net/"&gt;fax&lt;/a&gt; them off. (Btw. Scribus is really neat for filling out forms. Put a form &lt;span class="caps"&gt;PDF&lt;/span&gt; in the background, put some text layers and a signature image on it, bingo. Did that twice today. It does have its bugs though, at least the current Debian version does.) And :D Josie&amp;#8217;s :D back from Spain. She says it was cool, if not totally stress-free. I&amp;#8217;ll go see her tomorrow, or maybe Wednesday, depending on when Alessandro &amp;#8220;da rock&amp;#8221; F. 8) has time.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s one to remind Josie of the long days in Ulm:
&lt;img alt="A comic about a PhD student playing Freecell" src="http://www.phdcomics.com/comics/archive/phd100802s.gif" /&gt;&lt;/p&gt;</content><category term="grad-school"></category><category term="life"></category></entry><entry><title>Sokoban</title><link href="https://mathema.tician.de/sokoban" rel="alternate"></link><published>2004-12-05T10:47:41-06:00</published><updated>2004-12-05T10:47:41-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-12-05:/sokoban</id><summary type="html">&lt;p&gt;So, I was wasting time before going to bed last night, like, by setting up this site, and by playing Sokoban. &lt;a href="http://kde.org"&gt;KSokoboan&lt;/a&gt; to be precise. Now, I made it up to level 12 of David W. Skinner&amp;#8217;s &lt;a href="http://users.bentonrea.com/~sasquatch/sokoban/"&gt;Microban&lt;/a&gt; level set, which is rightfully said to be pretty &lt;em&gt;easy&lt;/em&gt;. Well …&lt;/p&gt;</summary><content type="html">&lt;p&gt;So, I was wasting time before going to bed last night, like, by setting up this site, and by playing Sokoban. &lt;a href="http://kde.org"&gt;KSokoboan&lt;/a&gt; to be precise. Now, I made it up to level 12 of David W. Skinner&amp;#8217;s &lt;a href="http://users.bentonrea.com/~sasquatch/sokoban/"&gt;Microban&lt;/a&gt; level set, which is rightfully said to be pretty &lt;em&gt;easy&lt;/em&gt;. Well, level 12 wasn&amp;#8217;t, at least not to me. (I admit that that&amp;#8217;s embarassing, but who&amp;nbsp;cares.)&lt;/p&gt;
&lt;p&gt;So, I made it to the &amp;#8220;I can prove this unsolvable&amp;#8221; stage of puzzle solving. But since I reckoned that someone would have noticed that this level is unsolvable, my mind immediately went to &lt;em&gt;cheating&lt;/em&gt;. Unfortunately, nobody had published move sequences to solve Microban. I was absolutely clueless as to how this level might be solvable, and I just &lt;em&gt;had&lt;/em&gt; to know. So, I wrote a Python program to solve Sokoban levels. You&amp;#8217;ll find sokosolve.py and a few demo levels in the &lt;tt&gt;sokoban-solver&lt;/tt&gt; module of my &lt;a href="/software/arch-trees"&gt;2004-public&lt;/a&gt; arch&amp;nbsp;tree. &lt;/p&gt;
&lt;p&gt;The program itself has two nested applications of A*, a usable (but half-baked) heuristic and a complete game model. In just 215 lines. Python never fails to impress me. Attached to this story you can see a dump of the program solving the level that had me so&amp;nbsp;confused.&lt;/p&gt;
&lt;h3&gt;Attachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dl/m12-dump"&gt;m12-dump&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="my-software"></category><category term="python"></category></entry><entry><title>Earthquake</title><link href="https://mathema.tician.de/earthquake" rel="alternate"></link><published>2004-12-05T10:32:24-06:00</published><updated>2004-12-05T10:32:24-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-12-05:/earthquake</id><summary type="html">&lt;p&gt;&lt;img alt="Stylized magnitude plot from Tagesschau" src="http://tagesschau.de/styles/container/image/style_images_default/0,1307,OID2790938,00.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;While I was setting up this site late last night, I felt like something was wrong. I heard my wardrobe make aching noises, and the ground started moving. First slightly, then more and more. At the end, it felt like our house was swaying from side to side with an …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Stylized magnitude plot from Tagesschau" src="http://tagesschau.de/styles/container/image/style_images_default/0,1307,OID2790938,00.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;While I was setting up this site late last night, I felt like something was wrong. I heard my wardrobe make aching noises, and the ground started moving. First slightly, then more and more. At the end, it felt like our house was swaying from side to side with an amplitude of at least a few centimeters. Pretty scary stuff. Turns out the source of this was an &lt;a href="http://www.swr.de/nachrichten/bw/2004/12/05/index1.html"&gt;earthquake&lt;/a&gt; whose epicenter was actually quite a ways from&amp;nbsp;Karlsruhe.&lt;/p&gt;</content><category term="life"></category></entry><entry><title>Funny</title><link href="https://mathema.tician.de/funny" rel="alternate"></link><published>2004-12-04T16:36:23-06:00</published><updated>2004-12-04T16:36:23-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-12-04:/funny</id><summary type="html">&lt;p&gt;&lt;a href="http://www.phdcomics.com/comics/archive.php?comicid=529"&gt;&lt;img src="http://www.phdcomics.com/comics/archive/phd120104s.gif" alt="... absolute timezone incompatibility" /&gt;&lt;/a&gt;&lt;br/&gt;
Someone just posted this to Planet Gnome. Appropriate.&amp;nbsp;:)&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://www.phdcomics.com/comics/archive.php?comicid=529"&gt;&lt;img src="http://www.phdcomics.com/comics/archive/phd120104s.gif" alt="... absolute timezone incompatibility" /&gt;&lt;/a&gt;&lt;br/&gt;
Someone just posted this to Planet Gnome. Appropriate.&amp;nbsp;:)&lt;/p&gt;</content><category term="technology"></category></entry><entry><title>Moved in.</title><link href="https://mathema.tician.de/moved-in" rel="alternate"></link><published>2004-12-04T15:48:33-06:00</published><updated>2004-12-04T15:48:33-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-12-04:/moved-in</id><summary type="html">&lt;p&gt;So, after spending an ungodly amount of time setting this up, I finally feel at home. Time to say something in here. Well, I should have been spending all this time working on my applications to the graduate schools which I plan to go to in the fall of 2005 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;So, after spending an ungodly amount of time setting this up, I finally feel at home. Time to say something in here. Well, I should have been spending all this time working on my applications to the graduate schools which I plan to go to in the fall of 2005. My current best excuse is to see this as a breather from taking the &lt;span class="caps"&gt;GRE&lt;/span&gt; and the &lt;span class="caps"&gt;TOEFL&lt;/span&gt; this week. I&amp;#8217;m feeling pretty good about the &lt;span class="caps"&gt;TOEFL&lt;/span&gt;, but my quantitative score on the &lt;span class="caps"&gt;GRE&lt;/span&gt; was 730&amp;#8212;not all that great. I can&amp;#8217;t tell you how much I loathe doing calculations in my head. I hope that this blooper won&amp;#8217;t prevent me from getting into my chosen&amp;nbsp;schools.&lt;/p&gt;

&lt;p&gt;Josie&amp;#8217;s in Barcelona with Kathrin at present. Hope they&amp;#8217;re having fun.&amp;nbsp;*wave*&lt;/p&gt;</content><category term="grad-school"></category><category term="technology"></category></entry><entry><title>Proprietary = bad.</title><link href="https://mathema.tician.de/proprietary-bad" rel="alternate"></link><published>2004-12-04T12:59:18-06:00</published><updated>2004-12-04T12:59:18-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-12-04:/proprietary-bad</id><summary type="html">&lt;p&gt;Ok, so I&amp;#8217;m in the process of setting up this site. I thought, ha, even &lt;a href="http://getcrafty.com/blogs.php?user=Brown%20Sugar"&gt;Josie&lt;/a&gt; has a blog. So, for the times when content on my own site is few and far between (like&amp;#8230;err&amp;#8230;now), I should just syndicate her blog, so I&amp;#8217;ll be cool by …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ok, so I&amp;#8217;m in the process of setting up this site. I thought, ha, even &lt;a href="http://getcrafty.com/blogs.php?user=Brown%20Sugar"&gt;Josie&lt;/a&gt; has a blog. So, for the times when content on my own site is few and far between (like&amp;#8230;err&amp;#8230;now), I should just syndicate her blog, so I&amp;#8217;ll be cool by association. Well, her blog provider, &lt;a href="http://getcrafty.com"&gt;some site called getcrafty&lt;/a&gt;, decides that their users can&amp;#8217;t let others syndicate their stuff. Like they own her view on life, and all that she wrote. As the title suggests,&amp;nbsp;proprietary=bad.&lt;/p&gt;

&lt;p&gt;This reminds of when Yonni&amp;#8217;s (Josie&amp;#8217;s sister&amp;#8217;s) blog just went belly-up and they charged her $35 for just letting her download her own posts. (Josie: If you&amp;#8217;re reading this, consider yourself invited to blog here. You&amp;#8217;ll get your own site to mess&amp;nbsp;with.)&lt;/p&gt;</content><category term="rants"></category></entry><entry><title>Blog.^H^H^H^H^H Journal.</title><link href="https://mathema.tician.de/blog-h-h-h-h-h-journal" rel="alternate"></link><published>2004-12-04T12:39:31-06:00</published><updated>2004-12-04T12:39:31-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-12-04:/blog-h-h-h-h-h-journal</id><summary type="html">&lt;p&gt;Well, hi planet. Everybody has a &lt;s&gt;blog&lt;/s&gt;journal these days, so why not me? Let&amp;#8217;s get&amp;nbsp;started.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 1:&lt;/strong&gt; Did anybody notice how cool I am? My blog can be accessed using &lt;span class="caps"&gt;SSL&lt;/span&gt;. Damn secure, man. Damn, damn secure. &lt;em&gt;(Actually, not any more since the site moved to&amp;nbsp;Alturo …&lt;/em&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Well, hi planet. Everybody has a &lt;s&gt;blog&lt;/s&gt;journal these days, so why not me? Let&amp;#8217;s get&amp;nbsp;started.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 1:&lt;/strong&gt; Did anybody notice how cool I am? My blog can be accessed using &lt;span class="caps"&gt;SSL&lt;/span&gt;. Damn secure, man. Damn, damn secure. &lt;em&gt;(Actually, not any more since the site moved to&amp;nbsp;Alturo.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 2:&lt;/strong&gt; Drupal is pretty fun to mess with. Highly&amp;nbsp;recommended.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 3:&lt;/strong&gt; I really can&amp;#8217;t get over this thing being called a &amp;#8220;blog.&amp;#8221; I&amp;#8217;ll call mine a journal. &amp;#8220;Blog&amp;#8221; just sounds silly,&amp;nbsp;sorry&amp;#8230;&lt;/p&gt;</content><category term="silly-stuff"></category></entry><entry><title>Madman bug/feature trackers closed down</title><link href="https://mathema.tician.de/madman-bug-feature-trackers-closed-down" rel="alternate"></link><published>2004-10-21T09:04:01-05:00</published><updated>2004-10-21T09:04:01-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-10-21:/madman-bug-feature-trackers-closed-down</id><summary type="html">&lt;p&gt;&lt;b&gt;Trackers are closed now.&lt;/b&gt; The Sourceforge bug, feature and support trackers are closed now, effective immediately. Please turn to the mailing list for your support needs. Anonymous posting is allowed, but please request for yourself to be cc&amp;#8217;ed. If you have data in the trackers, it has not been …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;b&gt;Trackers are closed now.&lt;/b&gt; The Sourceforge bug, feature and support trackers are closed now, effective immediately. Please turn to the mailing list for your support needs. Anonymous posting is allowed, but please request for yourself to be cc&amp;#8217;ed. If you have data in the trackers, it has not been deleted and will influence future madman releases. I&amp;#8217;m sorry that I had to take this step, but I unfortunately do not have the time to properly maintain&amp;nbsp;them.&lt;/p&gt;
&lt;p&gt;Thanks for your&amp;nbsp;understanding.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>CVS dropped as madman’s means of revision control</title><link href="https://mathema.tician.de/cvs-dropped-as-madmans-means-of-revision-control" rel="alternate"></link><published>2004-10-19T09:06:46-05:00</published><updated>2004-10-19T09:06:46-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-10-19:/cvs-dropped-as-madmans-means-of-revision-control</id><summary type="html">&lt;p&gt;&lt;b&gt;Giving &lt;span class="caps"&gt;CVS&lt;/span&gt; the boot.&lt;/b&gt; Work on 0.94 is continuing nicely, with Guido as a notable addition to the development team. Shawn is considering a rewrite of the criteria language. And you&amp;#8217;ll probably miss all this new development if you only check the SourceForge &lt;span class="caps"&gt;CVS&lt;/span&gt;&amp;#8212;it is out of …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;b&gt;Giving &lt;span class="caps"&gt;CVS&lt;/span&gt; the boot.&lt;/b&gt; Work on 0.94 is continuing nicely, with Guido as a notable addition to the development team. Shawn is considering a rewrite of the criteria language. And you&amp;#8217;ll probably miss all this new development if you only check the SourceForge &lt;span class="caps"&gt;CVS&lt;/span&gt;&amp;#8212;it is out of use as of today. The code is now maintained in my public arch repository. See the &lt;a href="http://madman.sf.net/download.php"&gt;download page&lt;/a&gt; for details on how to get the&amp;nbsp;tree.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Lots of new madman packages unleashed</title><link href="https://mathema.tician.de/lots-of-new-madman-packages-unleashed" rel="alternate"></link><published>2004-07-09T09:11:21-05:00</published><updated>2004-07-09T09:11:21-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-07-09:/lots-of-new-madman-packages-unleashed</id><summary type="html">&lt;p&gt;&lt;b&gt;Package frenzy.&lt;/b&gt; Within minutes of each other, both Christian Hammers and Jaako H Kyro made packages available for their respective distributions. So now, if you have Fedora Core 1 or Debian, it&amp;#8217;s never been easier to get&amp;nbsp;madman.&lt;/p&gt;
&lt;p&gt;Thanks to the&amp;nbsp;packagers!&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;b&gt;Package frenzy.&lt;/b&gt; Within minutes of each other, both Christian Hammers and Jaako H Kyro made packages available for their respective distributions. So now, if you have Fedora Core 1 or Debian, it&amp;#8217;s never been easier to get&amp;nbsp;madman.&lt;/p&gt;
&lt;p&gt;Thanks to the&amp;nbsp;packagers!&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Friendly neighborhood spiderman completes work on madman during night</title><link href="https://mathema.tician.de/friendly-neighborhood-spiderman-completes-work-on-madman-during-night" rel="alternate"></link><published>2004-05-25T09:20:32-05:00</published><updated>2004-05-25T09:20:32-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-05-25:/friendly-neighborhood-spiderman-completes-work-on-madman-during-night</id><summary type="html">&lt;p&gt;&lt;b&gt;Greetings from the night shift.&lt;/b&gt; Guess what. &lt;span class="caps"&gt;CVS&lt;/span&gt; &lt;span class="caps"&gt;HEAD&lt;/span&gt; madman is now based on Scott Wheeler&amp;#8217;s TagLib. I&amp;#8217;ve decided to delay many other features planned for 0.94 and release as soon as possible. Hang in&amp;nbsp;there&amp;#8230;&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;b&gt;Greetings from the night shift.&lt;/b&gt; Guess what. &lt;span class="caps"&gt;CVS&lt;/span&gt; &lt;span class="caps"&gt;HEAD&lt;/span&gt; madman is now based on Scott Wheeler&amp;#8217;s TagLib. I&amp;#8217;ve decided to delay many other features planned for 0.94 and release as soon as possible. Hang in&amp;nbsp;there&amp;#8230;&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Rogue library programmer confounds madman author</title><link href="https://mathema.tician.de/rogue-library-programmer-confounds-madman-author" rel="alternate"></link><published>2004-05-24T09:23:20-05:00</published><updated>2004-05-24T09:23:20-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-05-24:/rogue-library-programmer-confounds-madman-author</id><summary type="html">&lt;p&gt;&lt;b&gt;libid3tag.&lt;/b&gt; If only anybody had told me this: I was just investigating why some &lt;span class="caps"&gt;ID3&lt;/span&gt; tags just aren&amp;#8217;t written for some MP3s. I stumbled upon this piece of code, hidden deeply in the guts of&amp;nbsp;libid3tag:&lt;/p&gt;
&lt;pre&gt;
  /* hard general case: rewrite entire file */

  /* ... */
done:
  return 0;
&lt;/pre&gt;

&lt;p&gt;To those not fluent …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;b&gt;libid3tag.&lt;/b&gt; If only anybody had told me this: I was just investigating why some &lt;span class="caps"&gt;ID3&lt;/span&gt; tags just aren&amp;#8217;t written for some MP3s. I stumbled upon this piece of code, hidden deeply in the guts of&amp;nbsp;libid3tag:&lt;/p&gt;
&lt;pre&gt;
  /* hard general case: rewrite entire file */

  /* ... */
done:
  return 0;
&lt;/pre&gt;

&lt;p&gt;To those not fluent in C++, this means that libid3tag&amp;#8217;s implementer chose to just forego the hard case and leave that as an exercise to the interested reader. Grrr. :barf: So, I guess it&amp;#8217;s going to be TagLib by Scott&amp;nbsp;Wheeler.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>A mixed bag of items</title><link href="https://mathema.tician.de/a-mixed-bag-of-items" rel="alternate"></link><published>2004-05-24T05:26:35-05:00</published><updated>2004-05-24T05:26:35-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-05-24:/a-mixed-bag-of-items</id><summary type="html">&lt;p&gt;&lt;b&gt;More Slackware.&lt;/b&gt; SlackCare has also made Slackware packages, which they claim are more correct than Adam&amp;#8217;s. Find the link to their packages on the download&amp;nbsp;page.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Email trouble.&lt;/b&gt; Some people have complained that they were unable to get anything posted to the mailing list or sent personally to me …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;b&gt;More Slackware.&lt;/b&gt; SlackCare has also made Slackware packages, which they claim are more correct than Adam&amp;#8217;s. Find the link to their packages on the download&amp;nbsp;page.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Email trouble.&lt;/b&gt; Some people have complained that they were unable to get anything posted to the mailing list or sent personally to me. I&amp;#8217;ll look into this, I&amp;#8217;ll let you know right here if I find out what&amp;#8217;s causing&amp;nbsp;this.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Bugs in 0.93.&lt;/b&gt; As was to be expected, there were a couple of bugs in 0.93. Here&amp;#8217;s the list so far:
&lt;ul&gt;
  &lt;li&gt;The build system litters system directories with .sconsign files if you let&amp;nbsp;it.&lt;/li&gt;
  &lt;li&gt;The main build script was lacking a&amp;nbsp;comma.&lt;/li&gt;
&lt;/ul&gt;
So, nothing horribly broken. And plus, there are bugs in every release. That&amp;#8217;s why there&amp;#8217;s always the next one. :) [Apologies to Isaac&amp;nbsp;Richards]&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Way to go, Adam!</title><link href="https://mathema.tician.de/way-to-go-adam" rel="alternate"></link><published>2004-05-21T09:29:37-05:00</published><updated>2004-05-21T09:29:37-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-05-21:/way-to-go-adam</id><summary type="html">&lt;p&gt;Adam Ward made Slackware packages for madman. Get them from the download&amp;nbsp;area.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Adam Ward made Slackware packages for madman. Get them from the download&amp;nbsp;area.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>New version of madman unleashed upon unsuspecting planet</title><link href="https://mathema.tician.de/new-version-of-madman-unleashed-upon-unsuspecting-planet" rel="alternate"></link><published>2004-05-20T09:37:49-05:00</published><updated>2004-05-20T09:37:49-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-05-20:/new-version-of-madman-unleashed-upon-unsuspecting-planet</id><summary type="html">&lt;p&gt;&lt;b&gt;It has finally happened!&lt;/b&gt; The madman source has finally reached a state that I deem worthy of being called 0.93. Go grab it while it&amp;#8217;s&amp;nbsp;hot!&lt;/p&gt;
&lt;p&gt;The most massive changes since the last stable release (which was &lt;em&gt;gasp&lt;/em&gt; 0.91.1) include the addition of a very capable …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;b&gt;It has finally happened!&lt;/b&gt; The madman source has finally reached a state that I deem worthy of being called 0.93. Go grab it while it&amp;#8217;s&amp;nbsp;hot!&lt;/p&gt;
&lt;p&gt;The most massive changes since the last stable release (which was &lt;em&gt;gasp&lt;/em&gt; 0.91.1) include the addition of a very capable AutoDJ (Thanks, Shawn!) and a builtin web server, minimization to the system tray, a new build system as well as over 100 other fixes and&amp;nbsp;improvements.&lt;/p&gt;
&lt;p&gt;I hope to have downloadable binary packages for a few distributions&amp;nbsp;soon.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Somebody else’s problem affects madman</title><link href="https://mathema.tician.de/somebody-elses-problem-affects-madman" rel="alternate"></link><published>2004-03-28T08:38:55-06:00</published><updated>2004-03-28T08:38:55-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-03-28:/somebody-elses-problem-affects-madman</id><summary type="html">&lt;p&gt;&lt;b&gt;Is madman randomly crashing on you?&lt;/b&gt; The good news: It&amp;#8217;s not madman&amp;#8217;s fault. :) The bad news: &lt;span class="caps"&gt;XMMS&lt;/span&gt; 1.2.9 has a bug that causes programs controlling it to abort every once in a while. So, before complaining, please upgrade to &lt;span class="caps"&gt;XMMS&lt;/span&gt; 1.2.10, which is available …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;b&gt;Is madman randomly crashing on you?&lt;/b&gt; The good news: It&amp;#8217;s not madman&amp;#8217;s fault. :) The bad news: &lt;span class="caps"&gt;XMMS&lt;/span&gt; 1.2.9 has a bug that causes programs controlling it to abort every once in a while. So, before complaining, please upgrade to &lt;span class="caps"&gt;XMMS&lt;/span&gt; 1.2.10, which is available from the usual&amp;nbsp;place.&lt;/p&gt;
&lt;p&gt;In other news, 0.93rc1 got quite a bunch of testing, Tim Dreessen deserves a big thank you for all the bugs he found and reported. 0.93rc2 is now officially available through the file release&amp;nbsp;system.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>A candidate asking for your support</title><link href="https://mathema.tician.de/a-candidate-asking-for-your-support" rel="alternate"></link><published>2004-03-21T08:40:52-06:00</published><updated>2004-03-21T08:40:52-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2004-03-21:/a-candidate-asking-for-your-support</id><summary type="html">&lt;p&gt;Madman 0.93 release candidate 1 has finally happened, while my thesis is keeping me busy&amp;#8230; It&amp;#8217;s a pretty massive update, with lots of potential breakage. Please give it a round of testing. Depending on the amount of actual problems, 0.93 will be out very&amp;nbsp;soon.&lt;/p&gt;
&lt;p&gt;You can …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Madman 0.93 release candidate 1 has finally happened, while my thesis is keeping me busy&amp;#8230; It&amp;#8217;s a pretty massive update, with lots of potential breakage. Please give it a round of testing. Depending on the amount of actual problems, 0.93 will be out very&amp;nbsp;soon.&lt;/p&gt;
&lt;p&gt;You can grab this version from &lt;span class="caps"&gt;CVS&lt;/span&gt; as tag MADMAN_RELEASE_0_93RC1 or from the download&amp;nbsp;page.&lt;/p&gt;
&lt;p&gt;Major new features in this round: Rewritten AutoDJ (Shawn Willden&amp;#8217;s work), Fixes for many string encoding bugs, an AutoTagger, passive popups and a new build&amp;nbsp;system.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>SHOCK! Mailing list appears out of thin air</title><link href="https://mathema.tician.de/shock-mailing-list-appears-out-of-thin-air" rel="alternate"></link><published>2003-12-17T08:41:02-06:00</published><updated>2003-12-17T08:41:02-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2003-12-17:/shock-mailing-list-appears-out-of-thin-air</id><summary type="html">&lt;p&gt;&lt;b&gt;madman now has an actual mailing list, with people on it and everything.&lt;/b&gt; Wow. Little did I know. ;) Also, madman has an &lt;span class="caps"&gt;IRC&lt;/span&gt; channel to hang out on, that is #madman on irc.freenode.net. I can be found lingering there every once in a while, everybody else is invited …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;b&gt;madman now has an actual mailing list, with people on it and everything.&lt;/b&gt; Wow. Little did I know. ;) Also, madman has an &lt;span class="caps"&gt;IRC&lt;/span&gt; channel to hang out on, that is #madman on irc.freenode.net. I can be found lingering there every once in a while, everybody else is invited to join. The next release, is, as always, late. Shawn and I are discussing some fairly major changes to madman&amp;#8217;s core, but I still hope to release some a working drop of the current code as 0.93beta1. Hold tight, it&amp;#8217;ll get done.I promise.&amp;nbsp;;)&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Shawn = Mr. AutoDJ</title><link href="https://mathema.tician.de/shawn-mr-autodj" rel="alternate"></link><published>2003-11-23T08:42:41-06:00</published><updated>2003-11-23T08:42:41-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2003-11-23:/shawn-mr-autodj</id><summary type="html">&lt;p&gt;0.93 is still well underway. Shawn Willden agreed to rewrite the AutoDJ, and Christian Plagemann made a new logo for madman, which will be the official one from the next release. :) As for myself, I&amp;#8217;m down to three simple items on the &lt;span class="caps"&gt;TODO&lt;/span&gt; list before 0.93 goes …&lt;/p&gt;</summary><content type="html">&lt;p&gt;0.93 is still well underway. Shawn Willden agreed to rewrite the AutoDJ, and Christian Plagemann made a new logo for madman, which will be the official one from the next release. :) As for myself, I&amp;#8217;m down to three simple items on the &lt;span class="caps"&gt;TODO&lt;/span&gt; list before 0.93 goes&amp;nbsp;beta.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Weird. It keeps getting BETTER</title><link href="https://mathema.tician.de/weird-it-keeps-getting-better" rel="alternate"></link><published>2003-11-11T08:44:23-06:00</published><updated>2003-11-11T08:44:23-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2003-11-11:/weird-it-keeps-getting-better</id><summary type="html">&lt;p&gt;I just finished a pretty long coding session on madman, and it just keeps getting better and better. Tonight, passive song announcement popups and tray icon support went in. 0.93beta1 will be out real soon nowÃ¢Â„Â¢, there are only a couple of things left to do. Preheat …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I just finished a pretty long coding session on madman, and it just keeps getting better and better. Tonight, passive song announcement popups and tray icon support went in. 0.93beta1 will be out real soon nowÃ¢Â„Â¢, there are only a couple of things left to do. Preheat those&amp;nbsp;compilers.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>SCANDAL! Release lost to change-o-mania!</title><link href="https://mathema.tician.de/scandal-release-lost-to-change-o-mania" rel="alternate"></link><published>2003-10-26T08:45:39-06:00</published><updated>2003-10-26T08:45:39-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2003-10-26:/scandal-release-lost-to-change-o-mania</id><summary type="html">&lt;p&gt;&lt;b&gt;Oops.&lt;/b&gt; Release 0.92 will never happen. There are too many changes in the code base already after the release candidate. Instead, release 0.93beta1 will be the next one out. 0.92rc1 seems to be fairly high-quality, so I&amp;#8217;d recommend using that for right&amp;nbsp;now.&lt;/p&gt;
&lt;p&gt;0.93 will …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;b&gt;Oops.&lt;/b&gt; Release 0.92 will never happen. There are too many changes in the code base already after the release candidate. Instead, release 0.93beta1 will be the next one out. 0.92rc1 seems to be fairly high-quality, so I&amp;#8217;d recommend using that for right&amp;nbsp;now.&lt;/p&gt;
&lt;p&gt;0.93 will have lots of new eye candy, will be lots faster and plus, it&amp;#8217;ll be out&amp;nbsp;soon.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Candidacy extended!</title><link href="https://mathema.tician.de/candidacy-extended" rel="alternate"></link><published>2003-09-29T09:48:31-05:00</published><updated>2003-09-29T09:48:31-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2003-09-29:/candidacy-extended</id><summary type="html">&lt;p&gt;Released version 0.92rc1. This is a source-only test release for the next big version of madman, 0.92. It contains many exciting new features like a web server, remote control and Auto &lt;span class="caps"&gt;DJ&lt;/span&gt; as well as the usual slew of fixes, this time, among others, for unicode cleanliness, &lt;span class="caps"&gt;UI …&lt;/span&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Released version 0.92rc1. This is a source-only test release for the next big version of madman, 0.92. It contains many exciting new features like a web server, remote control and Auto &lt;span class="caps"&gt;DJ&lt;/span&gt; as well as the usual slew of fixes, this time, among others, for unicode cleanliness, &lt;span class="caps"&gt;UI&lt;/span&gt; and invalid&amp;nbsp;characters.&lt;/p&gt;
&lt;p&gt;The screenshots as well as all the rest of the site will be updated for the full&amp;nbsp;release.&lt;/p&gt;
&lt;p&gt;Please help get this release tested before we put it out there. Update: There&amp;#8217;s a small bug in 0.92rc1 that concerns writing Ogg tags containing non-&lt;span class="caps"&gt;ASCII&lt;/span&gt;&amp;nbsp;characters.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Quick fix released</title><link href="https://mathema.tician.de/quick-fix-released" rel="alternate"></link><published>2003-06-28T09:49:21-05:00</published><updated>2003-06-28T09:49:21-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2003-06-28:/quick-fix-released</id><summary type="html">&lt;p&gt;Released version 0.91.1 to fix a compilation issue regarding overloaded setAttribute calls. Reported by Frank&amp;nbsp;Baumgart.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Released version 0.91.1 to fix a compilation issue regarding overloaded setAttribute calls. Reported by Frank&amp;nbsp;Baumgart.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>BEST madman release EVER!</title><link href="https://mathema.tician.de/best-madman-release-ever" rel="alternate"></link><published>2003-06-27T09:50:44-05:00</published><updated>2003-06-27T09:50:44-05:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2003-06-27:/best-madman-release-ever</id><summary type="html">&lt;p&gt;Released version 0.91 with many new features. Here&amp;#8217;s the freshmeat&amp;nbsp;announcement:&lt;/p&gt;

&lt;p&gt;This release adds fuzzy search, plugins (for &lt;span class="caps"&gt;CD&lt;/span&gt; burning), a separate preferences dialog, and play history collection. Each song now has a &amp;#8216;Performer&amp;#8217; field as well as play statistics and can be rated on a scale of …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Released version 0.91 with many new features. Here&amp;#8217;s the freshmeat&amp;nbsp;announcement:&lt;/p&gt;

&lt;p&gt;This release adds fuzzy search, plugins (for &lt;span class="caps"&gt;CD&lt;/span&gt; burning), a separate preferences dialog, and play history collection. Each song now has a &amp;#8216;Performer&amp;#8217; field as well as play statistics and can be rated on a scale of 0 to 5 stars. Easy mass tagging was implemented. A configurable number of backups will be kept of a database. The build process now uses autotools. Searches were made asynchronous for much faster response times. Startup time was dramatically&amp;nbsp;reduced.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>Mr. Quicker-fixer-upper unleashed</title><link href="https://mathema.tician.de/mr-quicker-fixer-upper-unleashed" rel="alternate"></link><published>2003-02-27T08:52:04-06:00</published><updated>2003-02-27T08:52:04-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2003-02-27:/mr-quicker-fixer-upper-unleashed</id><summary type="html">&lt;p&gt;Released patch version 0.90.1 to fix dependency on Qt 3.1.This new release only requires Qt 3.0 or&amp;nbsp;higher.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Released patch version 0.90.1 to fix dependency on Qt 3.1.This new release only requires Qt 3.0 or&amp;nbsp;higher.&lt;/p&gt;</content><category term="madman"></category></entry><entry><title>I humbly present…</title><link href="https://mathema.tician.de/i-humbly-present" rel="alternate"></link><published>2003-02-26T08:53:14-06:00</published><updated>2003-02-26T08:53:14-06:00</updated><author><name>Andreas Klöckner</name></author><id>tag:mathema.tician.de,2003-02-26:/i-humbly-present</id><summary type="html">&lt;p&gt;Released initial version&amp;nbsp;0.90.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Released initial version&amp;nbsp;0.90.&lt;/p&gt;</content><category term="madman"></category></entry></feed>