<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8130446119807415263</id><updated>2012-02-10T19:55:34.086+01:00</updated><category term='matplotlib'/><category term='iWork'/><category term='gnuplot'/><category term='UNIX'/><category term='Python'/><category term='Printing'/><category term='exim4'/><category term='astronomy'/><category term='Typo3'/><category term='debugging'/><category term='MapReduce'/><category term='web'/><category term='books'/><category term='Matlab'/><category term='Gimp'/><category term='Samba'/><category term='VirtualBox'/><category term='Slashdot'/><category term='development'/><category term='Bug'/><category term='eMail'/><category term='Boardgames'/><category term='GNU'/><category term='photos'/><category term='Apple'/><category term='Lisp'/><category term='OS X'/><category term='VPN'/><category term='Joy'/><category term='Blender'/><category term='git'/><category term='valgrind'/><category term='Safari'/><category term='Spherical Harmonics'/><category term='CUDA'/><category term='scene'/><category term='performance'/><category term='Storage'/><category term='iOS'/><category term='OpenCL'/><category term='CLang'/><category term='X11'/><category term='Network simulation'/><category term='Musik'/><category term='iPod Touch'/><category term='OpenGL'/><category term='MacPorts'/><category term='KDE'/><category term='plot'/><category term='SSH'/><category term='jabber'/><category term='Debian'/><category term='security'/><category term='Music'/><category term='graphics'/><category term='IMAP'/><category term='videos'/><category term='OpenOffice'/><category term='games'/><category term='OSX'/><category term='NeoOffice'/><category term='OpenSource'/><category term='Google'/><category term='NVIDIA'/><category term='XCode'/><category term='gps'/><category term='iPhone'/><category term='MobileMe'/><category term='iTunes'/><category term='Linux'/><category term='administration'/><category term='coding'/><category term='ATI'/><category term='Qt'/><category term='root42'/><category term='GMX'/><category term='Emacs'/><category term='Ubuntu'/><category term='iPad'/><category term='LaTeX'/><category term='Blog'/><category term='svn'/><category term='Sadness'/><category term='Excel'/><title type='text'>Arne's Blog</title><subtitle type='html'>A collection of coding snippets, tips, hints and random thoughts.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://root42.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default?start-index=101&amp;max-results=100'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>127</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-8775627681104537040</id><published>2012-02-10T19:55:00.002+01:00</published><updated>2012-02-10T19:55:34.102+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='gps'/><title type='text'>Using gpsbabel and a USB to serial adapter on OS X to read out a Garmin GPS</title><content type='html'>For a couple of years I have been owning a Garmin eTrex GPS receiver. It's a nice little tool, pretty ruggedized and reliable. I use it to track for example hiking tracks and also sometimes for Geocaching. It has a serial interface for downloading the data. However, my MacBook Pro does not have a serial port. So I bought one of the ubiquitous Digitus USB to Serial adapters. With this and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;gpsbabel&lt;/span&gt; (&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo port install gpsbabel&lt;/span&gt;, if you have &lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt;), it is really easy to download the track data for example to a KML file to be viewed in &lt;a href="http://earth.google.com/"&gt;Google Earth&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;gpsbabel -t -i garmin -f /dev/cu.usbserial-XXXXXX -o kml -F mytracks.kml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;XXXXXX&lt;/span&gt; in the device filename varies from device to device, you probably can also use &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/dev/cu.usbserial-*&lt;/span&gt; as the device filename, if you have only one of these things attached to your computer. It is important not to use the tty device file, since it seems not to work. I do not know yet what the exact difference is, but I will come back when I found out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-8775627681104537040?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/8775627681104537040/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2012/02/using-gpsbabel-and-usb-to-serial.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/8775627681104537040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/8775627681104537040'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2012/02/using-gpsbabel-and-usb-to-serial.html' title='Using gpsbabel and a USB to serial adapter on OS X to read out a Garmin GPS'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-4243751403295492175</id><published>2012-01-03T10:48:00.001+01:00</published><updated>2012-01-03T10:48:55.512+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='LaTeX'/><title type='text'>Online LaTeX editing</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;There is a nice service over at &lt;a href="http://docs.latexlab.org/"&gt;LaTeX Labs&lt;/a&gt;, which lets you edit and compile LaTeX just using your web browser.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-_OvOloyCELQ/TwLOy2PNUaI/AAAAAAAAAhw/lRBnYNVavEY/s1600/Bildschirmfoto+2012-01-03+um+10.45.33.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://4.bp.blogspot.com/-_OvOloyCELQ/TwLOy2PNUaI/AAAAAAAAAhw/lRBnYNVavEY/s400/Bildschirmfoto+2012-01-03+um+10.45.33.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-4243751403295492175?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/4243751403295492175/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2012/01/online-latex-editing.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4243751403295492175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4243751403295492175'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2012/01/online-latex-editing.html' title='Online LaTeX editing'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-_OvOloyCELQ/TwLOy2PNUaI/AAAAAAAAAhw/lRBnYNVavEY/s72-c/Bildschirmfoto+2012-01-03+um+10.45.33.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-817512157289171720</id><published>2012-01-01T17:36:00.000+01:00</published><updated>2012-01-01T17:36:49.472+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LaTeX'/><title type='text'>BibTeX bibliography title</title><content type='html'>The other day I was using the &lt;a href="http://ctan.org/tex-archive/macros/latex/contrib/moderncv/"&gt;moderncv&lt;/a&gt; document class to create a CV. I also added my publications to the CV, which was supposed to be in German. BibTeX created a section "Literatur" for this. Obviously, I wanted the title of the bibliography to be "Publikationen" instead. When using the german package of babel, you can change the bibliography title like this in the LaTeX preamble:&lt;br /&gt;&lt;pre class="brush: text"&gt;\addto\captionsgerman{\renewcommand{\refname}{Publikationen}}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-817512157289171720?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/817512157289171720/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2012/01/bibtex-bibliography-title.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/817512157289171720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/817512157289171720'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2012/01/bibtex-bibliography-title.html' title='BibTeX bibliography title'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-1432809010229169683</id><published>2011-12-21T11:01:00.000+01:00</published><updated>2011-12-21T13:19:59.609+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Clementine Player</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;A couple of years back, I was a big fan of &lt;a href="http://amarok.kde.org/"&gt;Amarok&lt;/a&gt;, the music player. Then came along a rewrite and version 2.0, and I also switched to OS X. The version 2.0 was not very nice, stable or useful. The OS X version was very hard to install, due to the KDE dependencies. So I ditched Amarok. I replaced it with CogX for a while, and now I am using the horrid &lt;a href="http://en.wikipedia.org/wiki/ITunes"&gt;iTunes&lt;/a&gt; and the wonderful &lt;a href="http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki"&gt;mpd&lt;/a&gt;&amp;nbsp;(together with &lt;a href="http://www.katoemba.net/makesnosenseatall/mpod/"&gt;MPoD&lt;/a&gt; and &lt;a href="http://theremin.sigterm.eu/"&gt;Theremin&lt;/a&gt;). But today I read about the &lt;a href="https://code.google.com/p/clementine-player/"&gt;Clementine Player&lt;/a&gt;. It's a cross platform Amarok 1.4 fork. And after 10 minutes of testing, I think it's wonderful!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-yOh2WSqO5b8/TvGvNmHhxbI/AAAAAAAAAhc/AkrPHDTI8NM/s1600/Bildschirmfoto+2011-12-21+um+11.03.29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="263" src="http://1.bp.blogspot.com/-yOh2WSqO5b8/TvGvNmHhxbI/AAAAAAAAAhc/AkrPHDTI8NM/s400/Bildschirmfoto+2011-12-21+um+11.03.29.png" style="cursor: move;" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-1432809010229169683?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/1432809010229169683/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/12/clementine-player.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1432809010229169683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1432809010229169683'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/12/clementine-player.html' title='Clementine Player'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-yOh2WSqO5b8/TvGvNmHhxbI/AAAAAAAAAhc/AkrPHDTI8NM/s72-c/Bildschirmfoto+2011-12-21+um+11.03.29.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-3326182255933327791</id><published>2011-12-06T15:45:00.001+01:00</published><updated>2011-12-06T15:46:57.957+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LaTeX'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Emacs: Convert current buffer to utf-8</title><content type='html'>I just opened an old TeX file, which was still encoded in latin1. Now I wanted to re-save it as utf-8 in Emacs. This turns out to be very simple, as someone on #emacs at freenode told me. Just hit &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;C-x RET f&lt;/span&gt;, and type &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;utf-8 RET&lt;/span&gt;. On the next save (&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;C-x C-s&lt;/span&gt;), the file will be written as utf-8.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-3326182255933327791?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/3326182255933327791/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/12/emacs-convert-current-buffer-to-utf-8.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3326182255933327791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3326182255933327791'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/12/emacs-convert-current-buffer-to-utf-8.html' title='Emacs: Convert current buffer to utf-8'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5263008044762744395</id><published>2011-11-17T10:19:00.001+01:00</published><updated>2011-11-17T10:54:38.130+01:00</updated><title type='text'>Where to put a label on a LaTeX figure</title><content type='html'>I just found out that LaTeX is sensitive as to where you put the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;\label&lt;/span&gt; command in a &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;figure&lt;/span&gt; environment. For example if you do something like this:&lt;br /&gt;&lt;pre class="brush: text"&gt;\begin{figure}&lt;br /&gt;  \centering&lt;br /&gt;  \includegraphics[width=0.95\columnwidth]{sompic}&lt;br /&gt;  \label{fig:some-pic}&lt;br /&gt;  \caption{Some caption.}&lt;br /&gt;\end{figure}&lt;br /&gt;&lt;/pre&gt;if you now do a &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;\ref{fig:some-pic}&lt;/span&gt;, the reference will point to the parent element of the figure environment. For me, I got a reference to the subsection enclosing the figure. This was very irritating, because the text then said "see Figure 3.4.2.4 for details."&lt;br /&gt;Instead you need to place the label in or after the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;\caption&lt;/span&gt; command. For some reason the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;\ref&lt;/span&gt; will then point to the figure:&lt;br /&gt;&lt;pre class="brush: text"&gt;\begin{figure}&lt;br /&gt;  \centering&lt;br /&gt;  \includegraphics[width=0.95\columnwidth]{sompic}&lt;br /&gt;  \caption{Some caption.}&lt;br /&gt;  \label{fig:some-pic}&lt;br /&gt;\end{figure}&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;Update&lt;/b&gt;: And &lt;a href="http://tex.stackexchange.com/questions/35137/where-to-put-the-label-on-a-figure-environment"&gt;here is also the answer&lt;/a&gt; to the question why it is necessary to do it this way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5263008044762744395?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5263008044762744395/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/11/where-to-put-label-on-latex-figure.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5263008044762744395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5263008044762744395'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/11/where-to-put-label-on-latex-figure.html' title='Where to put a label on a LaTeX figure'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-6216956485436311372</id><published>2011-10-12T11:40:00.000+02:00</published><updated>2011-10-12T11:40:41.916+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Another OS X git UI: SourceTree</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;Besides &lt;a href="http://gitx.laullon.com/"&gt;gitx&lt;/a&gt;, I now was shown another git user interface for OS X. It is called &lt;a href="http://www.sourcetreeapp.com/"&gt;SourceTree&lt;/a&gt;:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-w_-iC4Y5I0g/TpVfkjmOKtI/AAAAAAAAAfc/L8H7_cjA338/s1600/Bildschirmfoto+2011-10-12+um+11.34.11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="340" src="http://3.bp.blogspot.com/-w_-iC4Y5I0g/TpVfkjmOKtI/AAAAAAAAAfc/L8H7_cjA338/s400/Bildschirmfoto+2011-10-12+um+11.34.11.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;It is more mature and feature-rich, compared to gitx. But it is &lt;a href="http://www.gnu.org/philosophy/free-sw.html"&gt;closed source&lt;/a&gt;. However, it is free (as in beer) for the time being in the &lt;a href="http://itunes.apple.com/en/app/sourcetree-git-hg/id411678673?mt=12"&gt;App Store&lt;/a&gt;. So far, the program seems really nice. Let's see how long I will continue using it, and if I'll go back to gitx at some point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-6216956485436311372?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/6216956485436311372/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/10/another-os-x-git-ui-sourcetree.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6216956485436311372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6216956485436311372'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/10/another-os-x-git-ui-sourcetree.html' title='Another OS X git UI: SourceTree'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-w_-iC4Y5I0g/TpVfkjmOKtI/AAAAAAAAAfc/L8H7_cjA338/s72-c/Bildschirmfoto+2011-10-12+um+11.34.11.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-6636242090858523669</id><published>2011-10-11T13:44:00.000+02:00</published><updated>2011-10-27T10:10:07.123+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='XCode'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>XCode 4 is incredibly slow</title><content type='html'>XCode 4 has always been incredibly slow for me. The first release, 4.0, was especially bad. But that was just a .0 version. The next release 4.1 is much better, but it has also severe drawbacks, concerning performance. Everytime I start it, and not even do much with it, my system gets incredibly slow. That is on both a C2D 2.8 GHz MBP and also on a quad-core i7 MBP. Both machines come with 4 GB of RAM, and after firing XCode up and loading a large project, still at least 500 MB of it remains free. However, speed is abysmal. I just found the tool vmmap in OS X, and it gives me this output:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;==== Summary for process 32136&lt;br /&gt;ReadOnly portion of Libraries: Total=265.8M resident=114.4M(43%) swapped_out_or_unallocated=151.5M(57%)&lt;br /&gt;Writable regions: Total=16.2G written=149.6M(1%) resident=360.9M(2%) swapped_out=6156K(0%) unallocated=15.9G(98%)&lt;br /&gt;REGION TYPE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VIRTUAL&lt;br /&gt;=========== &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=======&lt;br /&gt;CG backing stores &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;19.4M&lt;br /&gt;CG image &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;268K&lt;br /&gt;CG raster data &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2840K&lt;br /&gt;CG shared images &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3472K&lt;br /&gt;CoreAnimation &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 180K&lt;br /&gt;CoreGraphics &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 16K&lt;br /&gt;CoreImage &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 108K&lt;br /&gt;CoreServices &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1704K&lt;br /&gt;IOKit &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;61.2M&lt;br /&gt;MALLOC &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;337.4M &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;see MALLOC ZONE table below&lt;br /&gt;MALLOC (reserved) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;15.6G &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reserved VM address space (unallocated)&lt;br /&gt;MALLOC freed, no zone &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;30.5M&lt;br /&gt;MALLOC guard page &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;64K&lt;br /&gt;MALLOC metadata &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 128.8M&lt;br /&gt;Memory tag=240 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4K&lt;br /&gt;Memory tag=242 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 12K&lt;br /&gt;Memory tag=243 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4K&lt;br /&gt;Memory tag=249 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;156K&lt;br /&gt;Memory tag=251 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 64K&lt;br /&gt;OpenCL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 60K&lt;br /&gt;OpenGL GLSL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1372K&lt;br /&gt;OpenGL GLSL (reserved) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;128K &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reserved VM address space (unallocated)&lt;br /&gt;SQLite page cache &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;14.6M&lt;br /&gt;STACK GUARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;56.1M&lt;br /&gt;Stack &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;19.7M&lt;br /&gt;VM_ALLOCATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;16.1M&lt;br /&gt;__CI_BITMAP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;80K&lt;br /&gt;__DATA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 33.9M&lt;br /&gt;__IMAGE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1256K&lt;br /&gt;__LINKEDIT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 59.5M&lt;br /&gt;__TEXT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;206.4M&lt;br /&gt;__UNICODE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 544K&lt;br /&gt;mapped file &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;72.9M&lt;br /&gt;shared memory &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;13.6M&lt;br /&gt;=========== &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=======&lt;br /&gt;TOTAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;16.7G&lt;br /&gt;TOTAL, minus reserved VM space &amp;nbsp; &amp;nbsp; &amp;nbsp;1.1G&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;So the virtual memory space that XCode takes is more than 16 GB! The actual memory taken is "only" 1.1 GB, which is still huge, but my Emacs also takes 500 MB with tons of C++, Python and LaTeX buffers open.&lt;br /&gt;The question is: can the unallocated, but reserved 16 GB address space degrade the performance? I have too little knowledge of the workings of virtual memory on Intel CPUs under OS X. But this value seems incredibly huge.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt;&amp;nbsp;I have asked a question on Stackoverflow, and have gotten &lt;a href="http://stackoverflow.com/questions/7780663/why-are-xcodebuild-and-xcode-4-2-so-slow"&gt;some useful answers&lt;/a&gt;. What did help was removing my build/ folder from the git. Accidentally, a colleague checked in four files in the build/ folder. This made Xcode very slow, since it was checking the git status during compilation all the time. Still, Xcode 4 is much slower than Xcode 3 after this. So I also upgraded our machines to have at least 8 GB of RAM. This was definitely much of an improvement. It seems that development machines using Xcode 4 should have 8 GB RAM minimum. The more, the better...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-6636242090858523669?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/6636242090858523669/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/10/xcode-4-is-incredibly-slow.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6636242090858523669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6636242090858523669'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/10/xcode-4-is-incredibly-slow.html' title='XCode 4 is incredibly slow'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-8888381964899106883</id><published>2011-08-25T17:34:00.012+02:00</published><updated>2011-08-26T10:15:06.089+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gnuplot'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><category scheme='http://www.blogger.com/atom/ns#' term='plot'/><category scheme='http://www.blogger.com/atom/ns#' term='LaTeX'/><title type='text'>LaTeX formulas in gnuplot</title><content type='html'>As a reminder to myself: On the TeX Stackexchange, there is a nice question and discussion by me and some helpful people on &lt;a href="http://tex.stackexchange.com/questions/26502/latex-formulas-in-gnuplot-plot-legends"&gt;how to use LaTeX code in gnuplot&lt;/a&gt;&amp;nbsp;/ how to embed LaTeX equations in a plot. A copy of my revised answer:&lt;br /&gt;&lt;br /&gt;First, we set up a gnuplot called test.plt:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: text"&gt;plot [-5:5] [-1.5:1.5] sin(x+pi) title "$\\sin(x+\\pi)$"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Then we also set up a small Makefile:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: text"&gt;.SUFFIXES: .plt .tex .pdf&lt;br /&gt;&lt;br /&gt;%.tex: %.plt&lt;br /&gt;gnuplot -e " \&lt;br /&gt;	set format '$%g$' ; \&lt;br /&gt;	set terminal epslatex standalone color ; \&lt;br /&gt;	set output '$@' \&lt;br /&gt;	" $&amp;lt;&lt;br /&gt;&lt;br /&gt;%.pdf: %.tex&lt;br /&gt;	pdflatex $&amp;lt;&lt;br /&gt;&lt;br /&gt;all: test.pdf&lt;br /&gt;&lt;/pre&gt;Running "make all" will produce this plot: &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-gxK_W-fiRxw/TldHKPAXA-I/AAAAAAAAAfI/9rWhpHENEsw/s1600/test.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="280" src="http://3.bp.blogspot.com/-gxK_W-fiRxw/TldHKPAXA-I/AAAAAAAAAfI/9rWhpHENEsw/s400/test.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-8888381964899106883?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/8888381964899106883/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/08/latex-formulas-in-gnuplot.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/8888381964899106883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/8888381964899106883'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/08/latex-formulas-in-gnuplot.html' title='LaTeX formulas in gnuplot'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-gxK_W-fiRxw/TldHKPAXA-I/AAAAAAAAAfI/9rWhpHENEsw/s72-c/test.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-1361530893116089427</id><published>2011-08-10T15:12:00.002+02:00</published><updated>2011-08-10T15:13:50.747+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lisp'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Emacs other-window backwards</title><content type='html'>I am currently writing a lot of text in &lt;a href="http://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt;, and I need to work on multiple files in parallel. So I use the &lt;a href="http://www.gnu.org/software/libtool/manual/emacs/Split-Window.html"&gt;split window&lt;/a&gt; functionality a lot. With &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;C-x o&lt;/span&gt; you can switch to the next split window. However, it would be nice to go backward as well. The solution is simple, and is given on &lt;a href="http://stackoverflow.com/questions/143072/in-emacs-what-is-the-opposite-function-of-other-window-c-x-o"&gt;Stackoverflow&lt;/a&gt; and some other blogs:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: lisp"&gt;(defun prev-window ()&lt;br /&gt;  (interactive)&lt;br /&gt;  (other-window -1))&lt;br /&gt;(global-set-key (kbd "C-x p") 'prev-window)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Just put this in you init.el, and you can cycle backwards using &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;C-x p&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-1361530893116089427?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/1361530893116089427/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/08/emacs-other-window-backwards.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1361530893116089427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1361530893116089427'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/08/emacs-other-window-backwards.html' title='Emacs other-window backwards'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-3950762836186124360</id><published>2011-08-08T14:20:00.001+02:00</published><updated>2011-08-08T14:24:09.957+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='Safari'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>SSL Everywhere for Safari</title><content type='html'>The EFF has published a &lt;a href="https://www.eff.org/https-everywhere/"&gt;Firefox extension to force HTTPS&lt;/a&gt; on as many websites as possible. This is a good idea(tm). But on OS X I use Safari, not Firefox. So I was wondering if there is a similar extension for Safari. It turns out &lt;a href="http://www.nearinfinity.com/home/opensource/ssl-everywhere.html"&gt;there is&lt;/a&gt;. However, this extension is available in &lt;a href="https://github.com/nearinfinity/ssl-everywhere.safariextension"&gt;source only&lt;/a&gt;. The reason for this is given in a &lt;a href="http://www.nearinfinity.com/blogs/jeff_kunkle/lessons_learned_building_an_ht.html"&gt;blog post by the developer&lt;/a&gt;. In short: The Safari extension API is limited, and the extension cannot guarantee that all your session cookies are transferred via HTTPS, making you vulnerable to stuff like Firesheep. And that is a bad thing(tm). But it is still useful, since it will redirect you to secure versions of the websites. One thing to note when following the build instructions: You need to enroll in the free Safari Dev program, and get a developer certificate. This is very well described over at &lt;a href="http://developer.apple.com/programs/safari/"&gt;Apple's developer center&lt;/a&gt;. After that, you can enable the developer menu in Safari's settings and just install the extension from the cloned git repository.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-82djC1oMWyM/Tj_VYE4qNKI/AAAAAAAAAew/NuX3GBtO0pc/s1600/Bildschirmfoto+2011-08-08+um+14.13.07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="315" src="http://3.bp.blogspot.com/-82djC1oMWyM/Tj_VYE4qNKI/AAAAAAAAAew/NuX3GBtO0pc/s400/Bildschirmfoto+2011-08-08+um+14.13.07.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-3950762836186124360?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/3950762836186124360/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/08/ssl-everywhere-for-safari.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3950762836186124360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3950762836186124360'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/08/ssl-everywhere-for-safari.html' title='SSL Everywhere for Safari'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-82djC1oMWyM/Tj_VYE4qNKI/AAAAAAAAAew/NuX3GBtO0pc/s72-c/Bildschirmfoto+2011-08-08+um+14.13.07.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-2080414318799480389</id><published>2011-08-07T23:33:00.001+02:00</published><updated>2011-08-07T23:38:30.849+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='photos'/><title type='text'>What are the best Web Galleries?</title><content type='html'>I am one of the few avid &lt;a href="http://me.com/"&gt;MobileMe&lt;/a&gt; users. I use the gallery and like it. Nice upload features, integration into iPhoto. Not perfect, but it does the work, plus I have lots of disk space. However, Apple makes the &lt;a href="http://www.apple.com/mobileme/transition.html"&gt;transition&lt;/a&gt; from MobileMe to &lt;a href="https://www.icloud.com/"&gt;iCloud&lt;/a&gt;. During this transition, several features of MobileMe will be dropped. Besides the very useful syncing of keychains between computers, the gallery will cease to function. Some strange photo stream service will be introduced, which does not seem to be a real gallery replacement, but more like a large cache of you last 1,000 pictures taken. Useful, but only to a limited extent. So what are my alternatives? I need (in order of importance):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Share with other people (who are not signed in, a la Facebook)&lt;/li&gt;&lt;li&gt;5-10 GB space for pictures or more&lt;/li&gt;&lt;li&gt;Able to make photo albums, user gets a nice web browser based viewer&lt;/li&gt;&lt;li&gt;Option for users to download the photos&lt;/li&gt;&lt;li&gt;Optional high resolution versions of photos (2048 pixels or more)&lt;/li&gt;&lt;li&gt;Good integration with iPhone, iPhoto et al.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;I would pay for that service, if it includes 10 GB space or more.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I already found out that &lt;a href="http://www.flickr.com/"&gt;Flickr&lt;/a&gt; and &lt;a href="http://picasaweb.google.com/"&gt;Picasa Web&lt;/a&gt;&amp;nbsp;offer unlimited space, but in the free version there are quite the restrictions (limited image resolution, image usage by hoster, limited number of photos that can be controlled, advertisements, ...). Plus for example the Picasa Web Uploader for the Mac is horribly outdated (iPhoto '08...?).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what other options are there? Which one is the best?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-2080414318799480389?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/2080414318799480389/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/08/what-are-best-web-galleries.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2080414318799480389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2080414318799480389'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/08/what-are-best-web-galleries.html' title='What are the best Web Galleries?'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-7167680104887200471</id><published>2011-07-25T17:40:00.000+02:00</published><updated>2011-07-25T17:40:47.831+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Even better gitx with push/pull support</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;Many moons ago, I posted a link to &lt;a href="http://brotherbard.com/blog/"&gt;brotherbard's&lt;/a&gt; fork of the GitX GUI for git. There is an even better fork, which is based partially on brotherbard's work, and which is currently actively maintained. You can find it over at &lt;a href="http://gitx.laullon.com/"&gt;German Laullon's&lt;/a&gt; website.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-EIvLehT4a-U/Ti2OaDh9V-I/AAAAAAAAAeg/uCEpZpYg22o/s1600/Bildschirmfoto+2011-07-25+um+17.39.21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="233" src="http://3.bp.blogspot.com/-EIvLehT4a-U/Ti2OaDh9V-I/AAAAAAAAAeg/uCEpZpYg22o/s320/Bildschirmfoto+2011-07-25+um+17.39.21.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-7167680104887200471?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/7167680104887200471/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/07/even-better-gitx-with-pushpull-support.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7167680104887200471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7167680104887200471'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/07/even-better-gitx-with-pushpull-support.html' title='Even better gitx with push/pull support'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-EIvLehT4a-U/Ti2OaDh9V-I/AAAAAAAAAeg/uCEpZpYg22o/s72-c/Bildschirmfoto+2011-07-25+um+17.39.21.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-3881090763800929073</id><published>2011-07-19T15:37:00.001+02:00</published><updated>2011-07-19T15:38:48.086+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Switching the active branch in a bare git repository</title><content type='html'>If you ever need to delete the "active" branch in a git repository, you need to first switch the active branch. Because you cannot delete the branch you are sitting on... You cannot checkout a branch, as you would usually do. You have to change the symbolic reference called HEAD. You can do this with the symbolic-ref command:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$ git branch&lt;br /&gt;* deletethis&lt;br /&gt;  somebranch&lt;br /&gt;$ git symbolic-ref HEAD refs/heads/somebranch&lt;br /&gt;$ git branch&lt;br /&gt;  deletethis&lt;br /&gt;* somebranch&lt;br /&gt;$ git branch -d deletethis&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-3881090763800929073?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/3881090763800929073/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/07/switching-active-branch-in-bare-git.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3881090763800929073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3881090763800929073'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/07/switching-active-branch-in-bare-git.html' title='Switching the active branch in a bare git repository'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-2447642770156366700</id><published>2011-07-19T15:32:00.000+02:00</published><updated>2011-07-19T15:32:42.295+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Accessing the keychain in OS X from the command line</title><content type='html'>There is a very useful utility called &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;security(1)&lt;/span&gt; in OS X, which lets you manipulate your keychain from the command line. You can easily im- and export keys and certificates using this. This is especially useful for AppStore developers, who code on multiple Macs. Having the signing keys in sync is kind of a challenging solution, if you don't use keychain syncing via MobileMe. For example you can import a key like this into your login keychain:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$ security list-keychains&lt;br /&gt;   "/Users/yourguy/Library/Keychains/login.keychain"&lt;br /&gt;   "/Library/Keychains/System.keychain"&lt;br /&gt;$ security import -k /Users/yourguy/Library/Keychains/login.keychain somekey.pem&lt;br /&gt;1 key imported.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Hope this helps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-2447642770156366700?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/2447642770156366700/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/07/accessing-keychain-in-os-x-from-command.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2447642770156366700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2447642770156366700'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/07/accessing-keychain-in-os-x-from-command.html' title='Accessing the keychain in OS X from the command line'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-819304489544438892</id><published>2011-07-08T23:24:00.000+02:00</published><updated>2011-07-08T23:24:07.800+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='astronomy'/><title type='text'>Installation of the EQ3 SynScan Upgrade</title><content type='html'>I just got the Skywatcher EQ3 SynScan Goto Upgrade. It comes with lots of documentation. For example on how to wire up the controller boxes. However, it does not explain, how to mount the motors, that come with the upgrade box! And neither does the EQ3-2 manual.&lt;br /&gt;&lt;br /&gt;Hence I will describe how I installed the motors. I don't know if I did it correctly, but my SynScan seems to work, so I cannot be far off. If you use this description for assembling your own upgrade kit, you do it on your own risk! You have been warned... By the way, one screw was left over in the end. But isn't it always?&lt;br /&gt;&lt;br /&gt;So the first thing to do is to remove your telescope, your counterweights and the flexible tuning knobs. This leaves you with your tripod and your EQ3 mount. I am describing this for my EQ3-2 with aluminium tripod (rectangular legs).&amp;nbsp; If you have an EQ3, NEQ3 (round legged steel tripod) your mileage may vary. The manual first tells us to mount the holders for the motor controller and the SkyScan controller. The first one is a bugger: it's made for the round legged tripod. But do not fear! We can use a rubber band to help it stay affixed to the aluminium legs. Make sure the ground plate has contact with the aluminium legs!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-uKV6pFNtMZI/ThdwnFKiwGI/AAAAAAAAAdo/Uy8eBT2JEYg/s1600/Motor+controller+rubber+band.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-uKV6pFNtMZI/ThdwnFKiwGI/AAAAAAAAAdo/Uy8eBT2JEYg/s320/Motor+controller+rubber+band.jpg" width="311" /&gt;&lt;/a&gt;&lt;/div&gt;Next up are the gears for the motors. They are not labelled, so I had to figure them out myself. The big one is for the Dec motor, the small one for the RA motor. The motors themselves also were not labeled. The naked one is the RA motor, the boxed one is the Dec motor.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-czROBHteRSw/Thdw8ent1eI/AAAAAAAAAds/GEpMVAI1dJU/s1600/Gears+Labeled.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://1.bp.blogspot.com/-czROBHteRSw/Thdw8ent1eI/AAAAAAAAAds/GEpMVAI1dJU/s320/Gears+Labeled.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-00a62dfBs8Q/Thd1bH7gGsI/AAAAAAAAAeQ/Z6Hh79aeVP8/s1600/Stepper+Motors+Labeled.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://4.bp.blogspot.com/-00a62dfBs8Q/Thd1bH7gGsI/AAAAAAAAAeQ/Z6Hh79aeVP8/s320/Stepper+Motors+Labeled.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Ok, so we will begin with the RA motor. This is the place where it will be mounted:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-XGmQjkC42es/ThdxS9F-y_I/AAAAAAAAAdw/6uC1LEke_Xo/s1600/EQ3+RA+Motor+mounting+point+Labeled.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://2.bp.blogspot.com/-XGmQjkC42es/ThdxS9F-y_I/AAAAAAAAAdw/6uC1LEke_Xo/s320/EQ3+RA+Motor+mounting+point+Labeled.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There is already a screw here, and the axle for the gear. Mount the RA gear on the axle, so that it fits nicely with the end of the axle. This will be the right height for the RA motor gear. use the two small inset screws to firmly attach the gear. Make sure not to make it to loose, nor to tight! Then you can attach the RA motor as pictured on the mount point. The mounting plate will fit snugly into the corner of the mount, and will keep the motor in place. You can jiggle it around before fastening the screw, so that the two gears fit well together. Check the photos on how this should look from the front and behind.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-8CBaMFXhmrU/ThdyDsFL8ZI/AAAAAAAAAd0/wRyhueutUV8/s1600/RA+Motor+mounted+Gears.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="297" src="http://3.bp.blogspot.com/-8CBaMFXhmrU/ThdyDsFL8ZI/AAAAAAAAAd0/wRyhueutUV8/s320/RA+Motor+mounted+Gears.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-BcP5IchWeTc/ThdyE4BdqcI/AAAAAAAAAd4/0Y4OKmWqpLA/s1600/RA+Motor+mounted+Screws+and+Plate.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://3.bp.blogspot.com/-BcP5IchWeTc/ThdyE4BdqcI/AAAAAAAAAd4/0Y4OKmWqpLA/s320/RA+Motor+mounted+Screws+and+Plate.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;You noticed that there is a cable hanging from the RA motor. Find the black casing with the two DIN sockets. It will have a fitting socket for the dangling cable. Attach both and put the casing on top of the motor and the gear assembly. Take good care to carefully wrap the coloured cables into one corner of the black box! They fit in there, without any trouble, but you have to find the right corner. If you managed to fit the box, you will see two screw holes ligning up on the front and top of the box.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-YMqd0t2jey4/ThdyuM7MokI/AAAAAAAAAd8/XOcaNH0idro/s1600/RA+Motor+mounted+Box+fitted.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-YMqd0t2jey4/ThdyuM7MokI/AAAAAAAAAd8/XOcaNH0idro/s320/RA+Motor+mounted+Box+fitted.jpg" width="212" /&gt;&lt;/a&gt;&lt;/div&gt;Use the two tiny black screws to fixate the RA box. The top screw might be hard to reach, even with the small screwdriver that comes with the kit. I used a ratchet with a PH bit for this part.&lt;br /&gt;Ok, that's the RA assembly. Now for the Dec motor. The mounting point for this is on the other side of the EQ3. See the picture for details.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-aqBx93Kt4bo/ThdzO9KuoAI/AAAAAAAAAeA/FyxN47PhxE0/s1600/EQ3+Dec+Motor+mounting+point+Labeled.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://1.bp.blogspot.com/-aqBx93Kt4bo/ThdzO9KuoAI/AAAAAAAAAeA/FyxN47PhxE0/s320/EQ3+Dec+Motor+mounting+point+Labeled.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;The mount point where the screw belongs is circled. first, attach the Dec gear. Leave about 1/2 mm space between the mount and the gear. Again, there are two small inset screws to fasten it. You can adjust the gear again later, if needed. Now attach the motor using a screw and a washer (they come with the upgrade kit). With both motors, test if the gears touch tightly enough, so they will not skip, and they will not have too much friction either. See the picture for a view of the mounted motor. Strangely, I could not get the Dec gear to be parallel with the motor gear. But still, the whole thing works. I might try to re-align it later.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-yDFNmCofN8s/Thd0WzxGNZI/AAAAAAAAAeE/Ek1jpc4jVMg/s1600/Dec+Motor+mounted+Box+side.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="283" src="http://1.bp.blogspot.com/-yDFNmCofN8s/Thd0WzxGNZI/AAAAAAAAAeE/Ek1jpc4jVMg/s320/Dec+Motor+mounted+Box+side.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-AuJUiplFemY/Thd0YHomKaI/AAAAAAAAAeI/WVN0TFWSqsY/s1600/Dec+Motor+mounted+Gear+side.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="315" src="http://3.bp.blogspot.com/-AuJUiplFemY/Thd0YHomKaI/AAAAAAAAAeI/WVN0TFWSqsY/s320/Dec+Motor+mounted+Gear+side.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;That's it! Now you only need to attach all the cables, as described in the manual, and you're ready to go, or to go-to. :) I still had one thing left: a black soft rubber thing. If anyone knows what it is for, please drop me a note. It was not described in the manual either.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-7agEDcOpLTk/Thd0wpOAbZI/AAAAAAAAAeM/gIShkq5nCUA/s1600/Spare+rubber+thing.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="302" src="http://2.bp.blogspot.com/-7agEDcOpLTk/Thd0wpOAbZI/AAAAAAAAAeM/gIShkq5nCUA/s320/Spare+rubber+thing.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-819304489544438892?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/819304489544438892/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/07/installation-of-eq3-synscan-upgrade.html#comment-form' title='8 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/819304489544438892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/819304489544438892'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/07/installation-of-eq3-synscan-upgrade.html' title='Installation of the EQ3 SynScan Upgrade'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-uKV6pFNtMZI/ThdwnFKiwGI/AAAAAAAAAdo/Uy8eBT2JEYg/s72-c/Motor+controller+rubber+band.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-364944140738498818</id><published>2011-06-29T17:54:00.001+02:00</published><updated>2011-06-29T21:08:15.054+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Note to self: codesigning for OS X and iOS on the command line</title><content type='html'>As a reminder for myself, here is how you can codesign an OS X application for the AppStore on the command line:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;codesign -f -s "3rd Party Mac Developer Application: Your Company" -v YourApp.app&lt;br /&gt;productbuild --component YourApp.app /Applications --sign "3rd Party Mac Developer Installer: Your Company" YourApp.pkg&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;There is a lot more to do, of course, like having the correct bundle ID set, but this speeds up codesigning, if you do not use XCode to build your application.&lt;br /&gt;&lt;br /&gt;For iOS it is pretty similar, except you don't need the productbuild:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;codesign -f -s "iPhone Distribution: Your Company" -v YourApp.app&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-364944140738498818?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/364944140738498818/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/06/note-to-self-codesigning-for-os-x-and.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/364944140738498818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/364944140738498818'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/06/note-to-self-codesigning-for-os-x-and.html' title='Note to self: codesigning for OS X and iOS on the command line'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5423456805512895953</id><published>2011-06-22T17:51:00.000+02:00</published><updated>2011-06-22T17:51:06.933+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='MacPorts'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><title type='text'>Fixing broken GNU texinfo dir file on MacPorts</title><content type='html'>Somehow, &lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt; &lt;a href="https://trac.macports.org/ticket/25151"&gt;does not seem to update&lt;/a&gt; the &lt;a href="http://www.gnu.org/software/texinfo/"&gt;GNU texinfo&lt;/a&gt; dir file contained in /opt/local/share/info. But there is a nice script available in the ctan, which generates a new dir file. You can &lt;a href="http://sunsite.informatik.rwth-aachen.de/ftp/pub/mirror/ctan/macros/texinfo/texinfo/util/gen-dir-node"&gt;download it here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5423456805512895953?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5423456805512895953/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/06/fixing-broken-gnu-texinfo-dir-file-on.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5423456805512895953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5423456805512895953'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/06/fixing-broken-gnu-texinfo-dir-file-on.html' title='Fixing broken GNU texinfo dir file on MacPorts'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-4550885970750211683</id><published>2011-06-08T18:47:00.000+02:00</published><updated>2011-06-08T18:47:56.438+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='matplotlib'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Saving matplotlib plots as PDF</title><content type='html'>I recently started using matplotlib together with PyQt, and I love it. It's awesome and has many more features compared to PyQWT. However, I needed to save the plots to a PDF file. Here is how you do that:&lt;br /&gt;&lt;pre class="brush: python"&gt;import matplotlib.backends.backend_pdf&lt;br /&gt;...&lt;br /&gt;   @QtCore.pyqtSlot()&lt;br /&gt;   def printPlots(self):&lt;br /&gt;      filename = QtGui.QFileDialog.getSaveFileName(self, "Save plots as PDF file", "", "Portable Document File (*.pdf)")&lt;br /&gt;      if filename == "":&lt;br /&gt;         return&lt;br /&gt;      pp = matplotlib.backends.backend_pdf.PdfPages(filename)&lt;br /&gt;      pp.savefig(self.plotFigure)&lt;br /&gt;      pp.close()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Assuming that your figure is called self.plotFigure. You can connect the above slot to a QAction and map it to some nice menu item or shortcut.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-4550885970750211683?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/4550885970750211683/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/06/saving-matplotlib-plots-as-pdf.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4550885970750211683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4550885970750211683'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/06/saving-matplotlib-plots-as-pdf.html' title='Saving matplotlib plots as PDF'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-429202211661755281</id><published>2011-05-19T10:25:00.002+02:00</published><updated>2011-05-19T10:28:00.511+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Is "not None" maybe "Something"?</title><content type='html'>I just had a funny thought. In Python you can write:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: python"&gt;if not someObject is None:&lt;br /&gt;    someObject.doSomething()&lt;br /&gt;else:&lt;br /&gt;    print "someObject is None!"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This reads a bit strange. So what if you could alias "not ... is None" to "... is Something"?&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: python"&gt;if someObject is Something:&lt;br /&gt;    someObject.doSomething()&lt;br /&gt;else:&lt;br /&gt;    print "someObject is None!"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;It seems that this idea was &lt;a href="http://mail.python.org/pipermail/python-dev/2003-December/041318.html"&gt;thought of&lt;/a&gt; almost eight years ago already. This lead to some PEP 0326, which got rejected. If Python were a macro or functional language, you could probably hack something up to do the same thing, but it does not work like that:&lt;/div&gt;&lt;br /&gt;&lt;pre&gt;&gt;&gt;&gt; Something = not None&lt;br /&gt;&gt;&gt;&gt; Something&lt;br /&gt;True&lt;br /&gt;&gt;&gt;&gt; A = [1,2,3]&lt;br /&gt;&gt;&gt;&gt; if A is Something:&lt;br /&gt;...     print "This is something"&lt;br /&gt;... else:&lt;br /&gt;...     print "This is nothing"&lt;br /&gt;... &lt;br /&gt;This is nothing&lt;br /&gt;&gt;&gt;&gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;The problem here being, that "non None" is immediately evaluated to "True", since "None" can be implicitly converted to "False" in a boolean sense. Was a funny thought, though.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Update: Turns out you can at least write "if someObject is not None:", which is more readable. &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-429202211661755281?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/429202211661755281/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/05/is-not-none-maybe-something.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/429202211661755281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/429202211661755281'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/05/is-not-none-maybe-something.html' title='Is &quot;not None&quot; maybe &quot;Something&quot;?'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-804825441733124738</id><published>2011-05-02T10:54:00.000+02:00</published><updated>2011-05-02T10:54:45.699+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XCode'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Static Libraries in XCode 4</title><content type='html'>Someone at Carbon Five &lt;a href="http://blog.carbonfive.com/2011/04/04/using-open-source-static-libraries-in-xcode-4/"&gt;posted a nice article&lt;/a&gt; about XCode 4 and using external dependencies. For XCode 3, I already know how to use direct dependencies and static libraries. The above article seems pretty well explained, though I have not yet tested it. I will try to give some feedback once I have the time to try it myself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-804825441733124738?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/804825441733124738/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/05/static-libraries-in-xcode-4.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/804825441733124738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/804825441733124738'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/05/static-libraries-in-xcode-4.html' title='Static Libraries in XCode 4'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-964548855102868266</id><published>2011-02-25T11:48:00.000+01:00</published><updated>2011-02-25T11:48:23.710+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='XCode'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>Direct Dependencies in iOS projects</title><content type='html'>I found a nice &lt;a href="http://www.amateurinmotion.com/articles/2009/02/08/creating-a-static-library-for-iphone.html"&gt;blog entry&lt;/a&gt; that explains how to build static libraries and dependent projects with XCode. This is quite nice for iOS development, and relatively elegant. The only thing that bothers me is that the search path for headers has to be augmented manually. I wonder if there is a nice solution...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-964548855102868266?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/964548855102868266/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/02/direct-dependencies-in-ios-projects.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/964548855102868266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/964548855102868266'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/02/direct-dependencies-in-ios-projects.html' title='Direct Dependencies in iOS projects'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5773969116438520173</id><published>2011-02-19T01:47:00.001+01:00</published><updated>2011-02-19T01:47:58.915+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Musik'/><title type='text'>Controlling MPD with the iPhone</title><content type='html'>I just installed &lt;a target="_blank" href="http://www.musicpd.org/"&gt;mpd&lt;/a&gt; on an &lt;a target="_blank" href="http://openwrt.org/"&gt;OpenWRT&lt;/a&gt; router. It works great and I can recommend using &lt;a target="_blank" href="http://www.katoemba.net/"&gt;MPoD&lt;/a&gt; for controlling it. The whole thing looks like this then:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href='https://picasaweb.google.com/schmitz.arne/Wuffblog?authkey=Gv1sRgCJW43IrKvNuo0AE#5575196016234498594'&gt;&lt;img src='http://lh4.ggpht.com/_Mc79Xvd2xvE/TV8TPPTUiiI/AAAAAAAAAaI/lHULMz786nE/s288/0.jpg' border='0' width='187' height='281' style='margin:5px'&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5773969116438520173?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5773969116438520173/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/02/controlling-mpd-with-iphone.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5773969116438520173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5773969116438520173'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/02/controlling-mpd-with-iphone.html' title='Controlling MPD with the iPhone'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_Mc79Xvd2xvE/TV8TPPTUiiI/AAAAAAAAAaI/lHULMz786nE/s72-c/0.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-6700621370001993965</id><published>2011-02-16T17:45:00.002+01:00</published><updated>2011-02-16T17:52:34.139+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Alignment of double values on ARM architectures</title><content type='html'>Consider the following code:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: cpp"&gt;class C {&lt;br /&gt;...&lt;br /&gt;uint8_t *data;&lt;br /&gt;size_t size;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;void writeDouble(double v)&lt;br /&gt;{&lt;br /&gt;    ...&lt;br /&gt;    reinterpret_cast&amp;lt;double*&amp;gt;(this-&amp;gt;data)[this-&amp;gt;size] = v;&lt;br /&gt;    this-&amp;gt;size += sizeof(double);&lt;br /&gt;    ...&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Looks harmless enough, doesn't it? But here is the problem: It's not necessarily portable or well behaving code. After debugging for about three hours, I found out something interesting. Namely that on ARM platforms, such as the iPhone, double values on the stack need to be stored at &lt;a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4127.html"&gt;8 byte aligned memory addresses&lt;/a&gt;. This was some existing code I was using, so it took me a while to get to this function and to its problem. Single precision float values have no such restriction, by the way. There are two workarounds in the above case. 1) Write a small for-loop that casts the double value to a &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;uint8_t *&lt;/span&gt; and copy the double value byte-wise, or 2) use malloc to copy the value. I did the for-loop, since I thought that maybe the malloc call has too much overhead. I guess you could also cast the double to a &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;uint32_t *&lt;/span&gt; pointing to two 32 bit words. Anyway, take care when doing such drastic casts. Some platforms might want alignment for some datatypes!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-6700621370001993965?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/6700621370001993965/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/02/alignment-of-double-values-on-arm.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6700621370001993965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6700621370001993965'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/02/alignment-of-double-values-on-arm.html' title='Alignment of double values on ARM architectures'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5544086040601361290</id><published>2011-02-11T11:32:00.007+01:00</published><updated>2011-02-17T18:32:32.010+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='valgrind'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Valgrind checking of iOS programs</title><content type='html'>Well, this is awesome news. First, &lt;a href="http://valgrind.org/"&gt;valgrind&lt;/a&gt; has been available for OS X for some time now. And second, you can use it to &lt;a href="http://landonf.bikemonkey.org/code/iphone/iPhone_Simulator_Valgrind.20081224.html"&gt;check your iOS programs&lt;/a&gt; on the simulator with it.&lt;br /&gt;&lt;br /&gt;The idea here is to let your program spawn valgrind itself. Because you cannot tell the simulator to run the program through valgrind. Well, maybe you could build a funky bundle, but I think this works just fine. So here is the &amp;nbsp;code, taken from the above link:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: cpp"&gt;#define VALGRIND "/usr/local/valgrind/bin/valgrind"&lt;br /&gt; &lt;br /&gt;int main(int argc, char *argv[]) {&lt;br /&gt;#ifdef VALGRIND_REXEC&lt;br /&gt;    /* Using the valgrind build config, rexec ourself&lt;br /&gt;     * in valgrind */&lt;br /&gt;    if (argc &amp;lt; 2 || (argc &amp;gt;= 2 &amp;amp;&amp;amp; strcmp(argv[1], "-valgrind") != 0)) {&lt;br /&gt;        execl(VALGRIND, VALGRIND, "--leak-check=full", "--dsymutil=yes", argv[0], "-valgrind",&lt;br /&gt;              NULL);&lt;br /&gt;    }&lt;br /&gt;#endif&lt;br /&gt;  &lt;br /&gt;    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];&lt;br /&gt;    int retVal = UIApplicationMain(argc, argv, nil, @"PeepsAppDelegate");&lt;br /&gt;    [pool release];&lt;br /&gt;    return retVal;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You will obviously want to define the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;VALGRIND_REXEC&lt;/span&gt; macro, if you need valgrind output. You can also pass different command line arguments to valgrind. E.g. you can switch to different valgrind tools this way, or pipe everything to a log-file.&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt;&amp;nbsp;I finally got around to trying out this method. One problem here is that valgrind will fail to run, since it tries to open /dev/random, which I guess is not allowed for sandboxed applications. But one can fix this by &lt;a href="http://stackoverflow.com/questions/4599462/valgrind-and-ios-sdk-4-2"&gt;patching and recompiling valgrind&lt;/a&gt;, which is not too hard. Especially when using MacPorts. Furthermore, I needed to add &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;--dsymutil=yes&lt;/span&gt; to the valgrind options, or else the program would just crash.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5544086040601361290?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5544086040601361290/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/02/valgrind-checking-of-ios-programs.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5544086040601361290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5544086040601361290'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/02/valgrind-checking-of-ios-programs.html' title='Valgrind checking of iOS programs'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-4597144020288661598</id><published>2011-02-09T10:21:00.001+01:00</published><updated>2011-02-09T10:21:56.644+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='exim4'/><category scheme='http://www.blogger.com/atom/ns#' term='eMail'/><category scheme='http://www.blogger.com/atom/ns#' term='MobileMe'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Conditionally rewriting mail subjects using exim4</title><content type='html'>Since &lt;a href="http://me.com/"&gt;MobileMe&lt;/a&gt; sadly does not support filtering using &lt;a href="http://en.wikipedia.org/wiki/RegEx"&gt;RegExps&lt;/a&gt;, and I get a lot of heterogenous system mails from our computer systems here, I implemented a workaround. I added some text like [System] to the subject, which can be filtered fine by MobileMe.&lt;br /&gt;&lt;br /&gt;All of our machines here send their mail to a central smarthost running exim4. All the system mails are directed to "root" at some of our machines. What I did was first adding a file /etc/exim4/exim.filter containing this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# Exim filter&lt;br /&gt;if "$h_to:" matches \Nroot@.*\.your\.domain\.de\N then&lt;br /&gt;headers add "New-Subject: [System] $h_subject:"&lt;br /&gt;headers remove subject&lt;br /&gt;headers add "Subject: $h_new-subject:"&lt;br /&gt;headers remove new-subject&lt;br /&gt;endif&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Since we are running Debian, running exim4 in split configuration, I also added the file /etc/exim4/conf.d/main/80_exim4-config_system_filter, containing this:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;system_filter = /etc/exim4/exim.filter&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;After that I had to run &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;update-exim4.conf&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/etc/init.d/exim4&lt;/span&gt; reload. Then I was all set up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-4597144020288661598?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/4597144020288661598/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/02/conditionally-rewriting-mail-subjects.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4597144020288661598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4597144020288661598'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/02/conditionally-rewriting-mail-subjects.html' title='Conditionally rewriting mail subjects using exim4'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-3259319507818480010</id><published>2011-01-28T16:35:00.000+01:00</published><updated>2011-01-28T16:35:24.344+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>A very small and simple PyQt OpenGL widget</title><content type='html'>For all of you who would like to have an OpenGL widget for Python. &lt;a href="https://github.com/root42/PyGLWidget"&gt;Here&lt;/a&gt; you have it! It's very basic. The minimal thing is to overload the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;paintGL()&lt;/span&gt; method. Here is a screenshot:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TULiFzu9juI/AAAAAAAAAZs/mYD8eoRP2hE/s1600/Bildschirmfoto+2011-01-28+um+16.33.14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TULiFzu9juI/AAAAAAAAAZs/mYD8eoRP2hE/s320/Bildschirmfoto+2011-01-28+um+16.33.14.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Good for prototyping or writing small test programs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-3259319507818480010?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/3259319507818480010/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/01/very-small-and-simple-pyqt-opengl.html#comment-form' title='7 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3259319507818480010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3259319507818480010'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/01/very-small-and-simple-pyqt-opengl.html' title='A very small and simple PyQt OpenGL widget'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Mc79Xvd2xvE/TULiFzu9juI/AAAAAAAAAZs/mYD8eoRP2hE/s72-c/Bildschirmfoto+2011-01-28+um+16.33.14.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-7521238482487620777</id><published>2011-01-26T18:53:00.000+01:00</published><updated>2011-01-26T18:53:51.679+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Python class attributes versus instance attributes</title><content type='html'>Today I finally found out the difference between &lt;a href="http://docs.python.org/tutorial/classes.html#class-objects"&gt;class&lt;/a&gt; and &lt;a href="http://docs.python.org/tutorial/classes.html#instance-objects"&gt;instance&lt;/a&gt; attributes in Python. In C++, this is done by putting the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;static&lt;/span&gt; modifier in front of the declaration. Consider the following code:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: python"&gt;#!/usr/bin/env python&lt;br /&gt;&lt;br /&gt;class B:&lt;br /&gt;    b = 2&lt;br /&gt;&lt;br /&gt;class C:&lt;br /&gt;    a = B()&lt;br /&gt;&lt;br /&gt;    def __init__(self):&lt;br /&gt;        self.a.b = 1&lt;br /&gt;&lt;br /&gt;c = C()&lt;br /&gt;c.a.b = 3&lt;br /&gt;b = C()&lt;br /&gt;&lt;br /&gt;print c.a.b, b.a.b&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;a&lt;/span&gt; is a class attribute of class &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;C&lt;/span&gt;. That is, there exists only one such attribute for all objects of kind &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;C&lt;/span&gt;. So the output of the print statement will be "1 1". This is the same as a &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;static&lt;/span&gt; attribute in C++. But often I want an instance attribute. The correct way to do this would have been:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: python"&gt;#!/usr/bin/env python&lt;br /&gt;&lt;br /&gt;class B:&lt;br /&gt;    b = 2&lt;br /&gt;&lt;br /&gt;class C:&lt;br /&gt;    def __init__(self):&lt;br /&gt;        self.a = B()&lt;br /&gt;        self.a.b = 1&lt;br /&gt;&lt;br /&gt;c = C()&lt;br /&gt;c.a.b = 3&lt;br /&gt;b = C()&lt;br /&gt;&lt;br /&gt;print c.a.b, b.a.b&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now the output is "3 1", just as expected. I guess this all somehow makes sense in the Python world, but I tripped over this, and worst of all: Sometimes you don't even notice. If the class attribute is a simple type, like &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;int&lt;/span&gt;, the first solution would have worked. However, I have not yet understood why that is the case. One more Python semantic that eluded me so far.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-7521238482487620777?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/7521238482487620777/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/01/python-class-attributes-versus-instance.html#comment-form' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7521238482487620777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7521238482487620777'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/01/python-class-attributes-versus-instance.html' title='Python class attributes versus instance attributes'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-1545594204896744690</id><published>2011-01-24T23:54:00.001+01:00</published><updated>2011-01-24T23:54:08.365+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Mobile blog</title><content type='html'>Finally. My blogs now also support mobile devices with rendering suitable for small screens. All thanks to &lt;a target="_blank" href="http://blogger.com/"&gt;Blogger&lt;/a&gt;, who have introduced a beta version of the mobile templates via their &lt;a target="_blank" href="http://draft.blogger.com/"&gt;beta program&lt;/a&gt;. You can force the template on every blog by appending "?m=1" to the blog URL. On your own blog, you can just enable it in your blog's mobile settings via draft.blogger.com. Here's how my blog looks in the mobile version:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href='http://picasaweb.google.com/schmitz.arne/BloggerPictures?authkey=Gv1sRgCNTT06eTy8zYDA#5565889550435493746'&gt;&lt;img src='http://lh5.ggpht.com/_Mc79Xvd2xvE/TT4DDojEJ3I/AAAAAAAAAZY/q28bufGtC8Q/s288/0.jpg' border='0' width='187' height='281' style='margin:5px'&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-1545594204896744690?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/1545594204896744690/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/01/mobile-blog.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1545594204896744690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1545594204896744690'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/01/mobile-blog.html' title='Mobile blog'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_Mc79Xvd2xvE/TT4DDojEJ3I/AAAAAAAAAZY/q28bufGtC8Q/s72-c/0.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-2997263051364939556</id><published>2011-01-18T16:54:00.000+01:00</published><updated>2011-01-18T16:54:19.018+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CLang'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Note to self: C/C++/ObjC code completion for Emacs using CLang</title><content type='html'>I have to try this out some time: There is an &lt;a href="http://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt; &lt;a href="https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el"&gt;mode for code completion&lt;/a&gt; using &lt;a href="http://clang.llvm.org/"&gt;CLang&lt;/a&gt;. It is mentioned in a &lt;a href="http://kristianrumberg.wordpress.com/2010/04/22/smart-autocompletion-for-c-in-emacs/"&gt;blog entry&lt;/a&gt; by some guy. The nice thing here would be, that it enables ObjC code completion, which is a good thing™. Especially if your are coding for OS X or iOS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-2997263051364939556?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/2997263051364939556/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/01/note-to-self-ccobjc-code-completion-for.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2997263051364939556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2997263051364939556'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/01/note-to-self-ccobjc-code-completion-for.html' title='Note to self: C/C++/ObjC code completion for Emacs using CLang'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-8613545717100482939</id><published>2011-01-17T15:51:00.002+01:00</published><updated>2011-01-17T17:08:10.695+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CUDA'/><category scheme='http://www.blogger.com/atom/ns#' term='NVIDIA'/><category scheme='http://www.blogger.com/atom/ns#' term='MapReduce'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>MapReduce on CUDA using Python (and a Discontinuous Galerkin solver!)</title><content type='html'>As &lt;a href="http://volcore.limbicsoft.com/"&gt;volcore&lt;/a&gt; pointed out, there is a library called &lt;a href="http://documen.tician.de/pycuda/"&gt;pycuda&lt;/a&gt;, which allows for &lt;a href="http://www.nvidia.com/cuda/"&gt;CUDA&lt;/a&gt; programming in &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;. It also comes with a nice &lt;a href="http://documen.tician.de/pycuda/array.html#module-pycuda.reduction"&gt;ReductionKernel&lt;/a&gt; class, which allows one to rapidly develop custom &lt;a href="http://www.mapreduce.org/"&gt;MapReduce&lt;/a&gt; kernels.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; Even better, the same author has &lt;a href="http://mathema.tician.de/software/hedge"&gt;published a Discontinuous Galerkin&lt;/a&gt; solver, based on the same stuff. This can be used to solve partial differential equations, e.g. for fluid simulations, but also for EM simulations, using Maxwell's equations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-8613545717100482939?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/8613545717100482939/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/01/mapreduce-on-cuda-using-python.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/8613545717100482939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/8613545717100482939'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/01/mapreduce-on-cuda-using-python.html' title='MapReduce on CUDA using Python (and a Discontinuous Galerkin solver!)'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-4929577278730783532</id><published>2011-01-17T10:57:00.001+01:00</published><updated>2011-01-17T10:59:03.257+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='MacPorts'/><title type='text'>Cleaning up MacPorts</title><content type='html'>I like to use MacPorts for installing certain libraries and programs. When running an update old versions are still kept on your disk. I never did care for those old versions, so you can simply let MacPorts remove them while updating:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;$ sudo port -u upgrade outdated&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is taken from another &lt;a href="http://simenhag.blogspot.com/2008/11/keeping-macports-clean.html"&gt;blog post&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-4929577278730783532?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/4929577278730783532/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/01/cleaning-up-macports.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4929577278730783532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4929577278730783532'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/01/cleaning-up-macports.html' title='Cleaning up MacPorts'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-1316661671738461152</id><published>2011-01-13T20:06:00.001+01:00</published><updated>2011-01-13T21:26:27.163+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Setting the sender of git post-receive hooks</title><content type='html'>&lt;div&gt;There is a nice &lt;a href="http://stackoverflow.com/questions/2443908/how-do-i-make-git-post-receive-emails-be-sent-from-the-commit-author"&gt;stackoverflow posting&lt;/a&gt; about how to set the sender of git post-receive hooks. I used this, slightly augmented:&lt;/div&gt;&lt;br /&gt;&lt;pre class="brush: bash"&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;# Use the name and email address of the author of the last commit.&lt;br /&gt;USER_EMAIL=$(git log -1 --format=format:%ae HEAD)&lt;br /&gt;USER_NAME=$(git log -1 --format=format:%an HEAD)&lt;br /&gt;. $(dirname $0)/post-receive-email&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I then also changed the default post-receive-email script, to look like this in the send_mail() function:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bash"&gt;send_mail()&lt;br /&gt;{&lt;br /&gt;  if [ -n "$envelopesender" ]; then&lt;br /&gt;    /usr/sbin/sendmail -t -f "$envelopesender"&lt;br /&gt;  else&lt;br /&gt;    /usr/sbin/sendmail -t -F "$USER_NAME" -f "$USER_EMAIL"&lt;br /&gt;  fi&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;This will let the emails come from the last user in the git log. This is only a hack, and might break or not make sense under certain circumstances, but is good enough for most of my needs.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-1316661671738461152?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/1316661671738461152/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/01/setting-sender-of-git-post-receive.html#comment-form' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1316661671738461152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1316661671738461152'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/01/setting-sender-of-git-post-receive.html' title='Setting the sender of git post-receive hooks'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-557800015639503458</id><published>2011-01-09T20:22:00.000+01:00</published><updated>2011-01-09T20:22:48.514+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='MobileMe'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Pimping MobileMe #1: Expiration dates on folders</title><content type='html'>Well, &lt;a href="http://me.com/"&gt;MobileMe&lt;/a&gt; does not yet support the expiration of mails in folders. Especially for mailing lists, I want this feature. After let's say 90 days the mails should be automatically deleted. I do not need to store mailing list contents for longer. So I took the nice tool &lt;a href="http://imapfilter.hellug.gr/"&gt;imapfilter&lt;/a&gt; and wrote a config file that expires old mails from a selection of folders. I installed a cronjob on my web server that now automatically calls imapfilter every night. The config file (~/.imapfilter/config.lua) looks like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Myaccount = IMAP {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; server = 'mail.me.com',&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; username = 'your.name@me.com',&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; password = 'yourpassword',&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; ssl = 'tls1'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;folders = {'folder1', 'folder2', 'folder3'}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;for k,folder in pairs(folders) do&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; foldername = 'Mailinglists/' .. folder&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; results = myaccount[foldername]:is_older(90)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; myaccount[foldername]:delete_messages(results)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My mailing lists are hosted under a sub-folder called "Mailinglists", as you can notice in the config file above. You can tweak this to your liking. It might also be useful to set different expiration dates. It's easy to augment the lua script to do so.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-557800015639503458?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/557800015639503458/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/01/pimping-mobileme-1-expiration-dates-on.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/557800015639503458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/557800015639503458'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/01/pimping-mobileme-1-expiration-dates-on.html' title='Pimping MobileMe #1: Expiration dates on folders'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-1015162026247466049</id><published>2011-01-08T12:27:00.002+01:00</published><updated>2011-01-09T18:29:24.168+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='eMail'/><category scheme='http://www.blogger.com/atom/ns#' term='GMX'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='IMAP'/><title type='text'>Migrating from GMX IMAP to MobileMe IMAP</title><content type='html'>I am currently migrating my &amp;gt;4GiB of mail data from &lt;a href="http://www.gmx.de/"&gt;GMX&lt;/a&gt; to &lt;a href="http://me.com/"&gt;MobileMe&lt;/a&gt;. I have been using &lt;a href="https://github.com/jgoerzen/offlineimap/wiki"&gt;offlineimap&lt;/a&gt; regularly to backup my mail data. So first step was to update the backup. Now the next step is to run &lt;a href="http://www.linux-france.org/prj/imapsync/"&gt;imapsync&lt;/a&gt;, which can migrate whole IMAP accounts. The full command I am using for this is:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;imapsync --sep1 '/' --prefix1 '' &amp;nbsp;--ssl1 --ssl2 --authmech1 PLAIN --authmech2 PLAIN --host1 imap.gmx.net --user1 "yourname@gmx.de" --host2 mail.me.com --user2 "yourname@me.com"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I will report back once the sync has finished, this might take a while.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt;&amp;nbsp;Yup, it worked. My mail is now hosted on MobileMe. More disk space. What is missing at MobileMe is that it does not support automatically expiring mail folders. I.e. for mailing lists, I sort the mails into subfolders for each list. The lists are often high volume traffic, and not very important. So I'd like the mails to expire after, say, 30 days. With GMX this was not a problem, but MobileMe does not yet have such a feature. However, I found a nice tool called &lt;a href="http://imapfilter.hellug.gr/"&gt;imapfilter&lt;/a&gt;. It allows you to do all kinds of stuff, besides other things it allows you to filter mails according to date and to delete them. This is what I will do. I'll write another post, when I found out how to do that exactly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-1015162026247466049?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/1015162026247466049/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/01/migrating-from-gmx-imap-to-mobileme.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1015162026247466049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1015162026247466049'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/01/migrating-from-gmx-imap-to-mobileme.html' title='Migrating from GMX IMAP to MobileMe IMAP'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-7954499239275758605</id><published>2011-01-06T14:31:00.000+01:00</published><updated>2011-01-06T14:31:22.162+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><title type='text'>ImageMagick: Convert RGBA to RGB in a sane way</title><content type='html'>When using &lt;a href="http://www.imagemagick.org/"&gt;ImageMagick&lt;/a&gt; to convert an RGBA picture (e.g. an OS X window with shadows) to an RGB JPEG file, you should use the following command:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ convert input.png -flatten +matte output.jpg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you don't do that, you will end up with a picture like this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TSXD-8oFdUI/AAAAAAAAAZA/HOmAme_pVhY/s1600/time2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="113" src="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TSXD-8oFdUI/AAAAAAAAAZA/HOmAme_pVhY/s320/time2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The right conversion leads to this result instead:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TSXEEA4J-BI/AAAAAAAAAZE/-Zvl3gij7xc/s1600/timemachine.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="113" src="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TSXEEA4J-BI/AAAAAAAAAZE/-Zvl3gij7xc/s320/timemachine.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-7954499239275758605?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/7954499239275758605/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/01/imagemagick-convert-rgba-to-rgb-in-sane.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7954499239275758605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7954499239275758605'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/01/imagemagick-convert-rgba-to-rgb-in-sane.html' title='ImageMagick: Convert RGBA to RGB in a sane way'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Mc79Xvd2xvE/TSXD-8oFdUI/AAAAAAAAAZA/HOmAme_pVhY/s72-c/time2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5907432206303504944</id><published>2011-01-04T15:34:00.000+01:00</published><updated>2011-01-04T15:34:22.609+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><title type='text'>Humble Bundle Games: Braid</title><content type='html'>I just tried out my second game from the &lt;a href="http://www.humblebundle.com/"&gt;Humble Bundle 2&lt;/a&gt;. This one is called &lt;a href="http://braid-game.com/"&gt;Braid&lt;/a&gt;. It is a 2D puzzle platform jump and run with a little twist. In the first world that I just started, you can let time run backwards, by hitting the shift key. Other than that, you only have the arrow keys for moving around your character and the space bar for jumping. The graphics are wonderful, in style akin to a aquarel or water colour painting. The music is some violins playing a melancholic soundtrack. The worlds seem to be designed with a lot of love, and it's nice to see a jump and run game with more puzzles than fast action scenes. It's somewhat of a change. Here's a nice screenshot of one of the first levels:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TSMvxO9_fpI/AAAAAAAAAY8/hFT3C3ll7q8/s1600/Bildschirmfoto+2011-01-04+um+15.27.12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="315" src="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TSMvxO9_fpI/AAAAAAAAAY8/hFT3C3ll7q8/s400/Bildschirmfoto+2011-01-04+um+15.27.12.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5907432206303504944?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5907432206303504944/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2011/01/humble-bundle-games-braid.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5907432206303504944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5907432206303504944'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2011/01/humble-bundle-games-braid.html' title='Humble Bundle Games: Braid'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Mc79Xvd2xvE/TSMvxO9_fpI/AAAAAAAAAY8/hFT3C3ll7q8/s72-c/Bildschirmfoto+2011-01-04+um+15.27.12.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-185778940050847231</id><published>2010-12-29T22:57:00.002+01:00</published><updated>2010-12-29T22:57:46.196+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='root42'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Very small Analytics post</title><content type='html'>Google Analytics data for the last year:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TRuuwW_kl0I/AAAAAAAAAY4/CaTKyMcZK_o/s1600/Bildschirmfoto+2010-12-29+um+22.56.00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="148" src="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TRuuwW_kl0I/AAAAAAAAAY4/CaTKyMcZK_o/s400/Bildschirmfoto+2010-12-29+um+22.56.00.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-185778940050847231?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/185778940050847231/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/12/very-small-analytics-post.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/185778940050847231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/185778940050847231'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/12/very-small-analytics-post.html' title='Very small Analytics post'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Mc79Xvd2xvE/TRuuwW_kl0I/AAAAAAAAAY4/CaTKyMcZK_o/s72-c/Bildschirmfoto+2010-12-29+um+22.56.00.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-3319809285221806175</id><published>2010-12-22T18:32:00.000+01:00</published><updated>2010-12-22T18:32:45.169+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>Doxygen UI for OS X</title><content type='html'>&lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt; comes with a nice package for &lt;a href="http://www.doxygen.org/"&gt;Doxygen&lt;/a&gt;, the source documentation tool. However, it is missing the doxywizard, to quickly create and edit the sometimes very long Doxygen configuration files. However, &lt;a href="http://www.stack.nl/~dimitri/doxygen/download.html"&gt;there is a page&lt;/a&gt;&amp;nbsp;(even from the original Doxygen guy) hosting special OS X builds with a nice small bundle, that you can drop into your Applications folder and which looks like this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TRI13pDWD9I/AAAAAAAAAYw/UJoZwzfnF4o/s1600/Bildschirmfoto+2010-12-22+um+18.29.45.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="254" src="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TRI13pDWD9I/AAAAAAAAAYw/UJoZwzfnF4o/s320/Bildschirmfoto+2010-12-22+um+18.29.45.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-3319809285221806175?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/3319809285221806175/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/12/doxygen-ui-for-os-x.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3319809285221806175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3319809285221806175'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/12/doxygen-ui-for-os-x.html' title='Doxygen UI for OS X'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Mc79Xvd2xvE/TRI13pDWD9I/AAAAAAAAAYw/UJoZwzfnF4o/s72-c/Bildschirmfoto+2010-12-22+um+18.29.45.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-7291607219503932606</id><published>2010-11-17T18:18:00.000+01:00</published><updated>2010-11-17T18:18:11.181+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Spherical Harmonics'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Finally: Rotations of real Spherical Harmonics according to Blanco et al.</title><content type='html'>I finally managed to implement &lt;a href="http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6TGT-409W1GH-4&amp;amp;_user=929460&amp;amp;_coverDate=12%2F08%2F1997&amp;amp;_rdoc=1&amp;amp;_fmt=high&amp;amp;_orig=search&amp;amp;_origin=search&amp;amp;_sort=d&amp;amp;_docanchor=&amp;amp;view=c&amp;amp;_searchStrId=1544929287&amp;amp;_rerunOrigin=scholar.google&amp;amp;_acct=C000048339&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=929460&amp;amp;md5=c4ec6fb335484065bfd835aab6c112b6&amp;amp;searchtype=a"&gt;Blanco's 1997 paper&lt;/a&gt;. The formulas were quite tedious to implement correctly, with all the matrix indices going possibly wrong. But after lots of debugging, I now have a working implementation in my SH explorer. Have a look:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Mc79Xvd2xvE/TOQN_yArAyI/AAAAAAAAAYU/OrLTm2ZOoLE/s1600/Bildschirmfoto+2010-11-17+um+18.14.20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191" src="http://1.bp.blogspot.com/_Mc79Xvd2xvE/TOQN_yArAyI/AAAAAAAAAYU/OrLTm2ZOoLE/s400/Bildschirmfoto+2010-11-17+um+18.14.20.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;This is an antenna pattern by &lt;a href="http://www.ele.tut.fi/~kellomat/"&gt;Tiiti&lt;/a&gt;, which was rotated by 45, 90 and 45 degrees, in ZYZ angles. And it did not explode or deform badly. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-7291607219503932606?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/7291607219503932606/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/11/finally-rotations-of-real-spherical.html#comment-form' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7291607219503932606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7291607219503932606'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/11/finally-rotations-of-real-spherical.html' title='Finally: Rotations of real Spherical Harmonics according to Blanco et al.'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Mc79Xvd2xvE/TOQN_yArAyI/AAAAAAAAAYU/OrLTm2ZOoLE/s72-c/Bildschirmfoto+2010-11-17+um+18.14.20.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-1073313886321570658</id><published>2010-11-14T12:35:00.000+01:00</published><updated>2010-11-14T12:35:48.360+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='iTunes'/><title type='text'>iTunes and non MP4/MOV videos</title><content type='html'>There is a nice little &lt;a href="http://www.jedi.be/blog/2008/11/07/adding-avi-mkv-xvid-to-itunes-it-works/"&gt;blog entry&lt;/a&gt; which explains how to convince iTunes to take other media into your media library. The command is:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;SetFile -t "MooV" -c "TVOD" some-movie.avi&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When you've installed &lt;a href="http://perian.org/"&gt;Perian&lt;/a&gt;, iTunes should then accept almost any movie, be it avi, mkv or xvid.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-1073313886321570658?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/1073313886321570658/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/11/itunes-and-non-mp4mov-videos.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1073313886321570658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1073313886321570658'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/11/itunes-and-non-mp4mov-videos.html' title='iTunes and non MP4/MOV videos'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-6423962403776556935</id><published>2010-11-12T10:42:00.004+01:00</published><updated>2010-12-01T17:20:27.632+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sadness'/><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='Bug'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='Joy'/><title type='text'>OS X 10.6.5: GLSL problems are solved</title><content type='html'>Thank you Apple, thank you. The latest &lt;a href="http://support.apple.com/kb/HT4250?viewlocale=en_US"&gt;OS X update&lt;/a&gt; solved my &lt;a href="http://root42.blogspot.com/2010/07/os-x-graphics-driver-bugs.html"&gt;crashes&lt;/a&gt; and &lt;a href="http://root42.blogspot.com/2010/11/glsl-bugs-in-os-x-still-there.html"&gt;broken renderings&lt;/a&gt; when using GLSL. Apple does not state what has changed in the knowledge base, but my last assumption was that at least the GLSL compiler produced broken code. Apple uses the wonderful &lt;a href="http://llvm.org/"&gt;LLVM&lt;/a&gt;&amp;nbsp;compiler infrastructure for GLSL, which is great, but also known to produce &lt;a href="http://lists.apple.com/archives/mac-opengl/2008/Jun/msg00107.html"&gt;problems sometimes&lt;/a&gt;. But LLVM+GLSL has made great advances, and this update makes it even better. Here's the correct rendering which I now can enjoy:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Mc79Xvd2xvE/TN0MACyo5nI/AAAAAAAAAYM/7gpAGLYHdao/s1600/Bildschirmfoto+2010-11-12+um+10.35.35.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="282" src="http://3.bp.blogspot.com/_Mc79Xvd2xvE/TN0MACyo5nI/AAAAAAAAAYM/7gpAGLYHdao/s400/Bildschirmfoto+2010-11-12+um+10.35.35.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Update&lt;/b&gt;: I was too quick with my joy. The machine crashed again. But differently. It took much longer, and there was a hint screen this time, plus the machine sent a crash report after the reboot. Hopefully we are slowly getting to a solution... Ok, let's reopen the bugreport at Apple...&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TN0RumT_3PI/AAAAAAAAAYQ/jWQpD6yvaYc/s1600/IMG_0563.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TN0RumT_3PI/AAAAAAAAAYQ/jWQpD6yvaYc/s400/IMG_0563.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Update 2:&lt;/b&gt; I investigated a little bit more. It &lt;i&gt;seems&lt;/i&gt; that when I switch the MBP back to using the GeForce 9400M instead of the 9600M, the machine does not crash. I played around for a couple of minutes, and it &lt;i&gt;seems&lt;/i&gt; to work fine. Of course it is horribly slow, because I am pushing it with a massive volume dataset and a marching raycaster, but it at least works. The 21" iMac with the ATI card still fails miserably. Rendering is totally borked, but at least it does not crash.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Update 3:&lt;/b&gt; After two weeks of letting this rest, I tried today again, and I cannot manage to crash the whole machine anymore. I don't know &lt;i&gt;what&lt;/i&gt; Updates changed this behaviour, but I am glad anyway. The ATI card still produces garbage, but neither the 9400M, nor the 9600M GT nor the GT120 in the iMac crash at the moment. If the machine locks up again, I'll report back with the panic log.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-6423962403776556935?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/6423962403776556935/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/11/os-x-1065-glsl-problems-are-solved.html#comment-form' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6423962403776556935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6423962403776556935'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/11/os-x-1065-glsl-problems-are-solved.html' title='OS X 10.6.5: GLSL problems are solved'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Mc79Xvd2xvE/TN0MACyo5nI/AAAAAAAAAYM/7gpAGLYHdao/s72-c/Bildschirmfoto+2010-11-12+um+10.35.35.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-1070447183984265011</id><published>2010-11-04T15:40:00.000+01:00</published><updated>2010-11-04T15:40:05.614+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='NVIDIA'/><category scheme='http://www.blogger.com/atom/ns#' term='Bug'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='ATI'/><title type='text'>GLSL bugs in OS X still there</title><content type='html'>&amp;nbsp;Some time back &lt;a href="http://root42.blogspot.com/2010/07/os-x-graphics-driver-bugs.html"&gt;I reported on crashing the Macs&lt;/a&gt; here using a non-trivial GLSL shader program. This bug still exists to this day. Now we've got a small, brand new 21" iMac, fresh out of the box. It exhibits a similar problem. This time, the UI does not lock up, but the rendering is totally borked. Compare the two screenshots. The first one shows the correct rendering, on a Linux PC using an NVIDIA GTX285 GPU, the other one is from the 21" iMac using an ATI GPU. The trick between crashing and not crashing seems to be the ATI brand...&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TNLFhBsza6I/AAAAAAAAAYA/hityiFhj8Io/s1600/volviewer-linux-nvidia.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TNLFhBsza6I/AAAAAAAAAYA/hityiFhj8Io/s400/volviewer-linux-nvidia.png" width="400" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_Mc79Xvd2xvE/TNLFgEdoQzI/AAAAAAAAAX8/SqVgG9NhV74/s1600/volviewer-imac-ati.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="231" src="http://1.bp.blogspot.com/_Mc79Xvd2xvE/TNLFgEdoQzI/AAAAAAAAAX8/SqVgG9NhV74/s400/volviewer-imac-ati.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-1070447183984265011?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/1070447183984265011/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/11/glsl-bugs-in-os-x-still-there.html#comment-form' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1070447183984265011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1070447183984265011'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/11/glsl-bugs-in-os-x-still-there.html' title='GLSL bugs in OS X still there'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Mc79Xvd2xvE/TNLFhBsza6I/AAAAAAAAAYA/hityiFhj8Io/s72-c/volviewer-linux-nvidia.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-6966013090651470139</id><published>2010-11-03T10:17:00.000+01:00</published><updated>2010-11-03T10:17:02.663+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><title type='text'>MagicPrefs for the MagicMouse</title><content type='html'>I do like the MagicMouse by Apple. But there are some limitations to it. Thus I installed &lt;a href="http://magicprefs.com/"&gt;MagicPrefs&lt;/a&gt;, and all is well. Check it out:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Mc79Xvd2xvE/TNEoewdpUjI/AAAAAAAAAXw/FR5fdcGHPOU/s1600/Bildschirmfoto+2010-11-03+um+10.15.02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="279" src="http://3.bp.blogspot.com/_Mc79Xvd2xvE/TNEoewdpUjI/AAAAAAAAAXw/FR5fdcGHPOU/s320/Bildschirmfoto+2010-11-03+um+10.15.02.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-6966013090651470139?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/6966013090651470139/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/11/magicprefs-for-magicmouse.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6966013090651470139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6966013090651470139'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/11/magicprefs-for-magicmouse.html' title='MagicPrefs for the MagicMouse'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Mc79Xvd2xvE/TNEoewdpUjI/AAAAAAAAAXw/FR5fdcGHPOU/s72-c/Bildschirmfoto+2010-11-03+um+10.15.02.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5582100416597160089</id><published>2010-10-27T21:17:00.001+02:00</published><updated>2010-10-27T21:23:56.562+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Linux and the UUID</title><content type='html'>Even after more than 15 years of Linux experience, I sometimes learn new stuff. Today, I figured out why my KDE goes haywire sometimes. It turns out, that my swap file was mounted as /dev/sda1. Which is fine, most of the time. Except when an external USB drive is plugged in. Then that one becomes sda, and the internal drives goes to sdb or even sdc, when two external drives are plugged in. So the swap won't work, and the USB drive cannot be mounted via dBus / HAL, since it is suddenly listed in the /etc/fstab. Also, KDE will have some strange troubles during this time, and will not restore my session. But I am not 100% sure this is related. Time will tell... Anyway, what was strange was, that everything else worked. That was because the root filesystem was mounted using a &lt;a href="http://en.wikipedia.org/wiki/Universally_unique_identifier"&gt;UUID&lt;/a&gt;, which identifies a partition or volume uniquely. So, why did the swap not have this? Seems, this was forgotten by Ubuntu upon the upgrade to Maverick. But the &lt;a href="http://wiki.ubuntuusers.de/uuid"&gt;Ubuntu Wiki&lt;/a&gt; helps. So what I did was:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;# swapoff /dev/sda1&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;# MYUUID=$(uuidgen)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;# mkswap -U $MYUUID&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;# sed "s/\/dev\/sda1/UUID=$MYUUID/"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;# swapon /dev/sda1&lt;/span&gt;&lt;br /&gt;You can also just edit fstab with the editor of your choice...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5582100416597160089?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5582100416597160089/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/10/linux-and-uuid.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5582100416597160089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5582100416597160089'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/10/linux-and-uuid.html' title='Linux and the UUID'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-6564667627868150042</id><published>2010-10-24T10:33:00.000+02:00</published><updated>2010-10-24T10:33:41.330+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Slashdot'/><category scheme='http://www.blogger.com/atom/ns#' term='Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Do magnetic hard drives go the way of the poodle?</title><content type='html'>There is an &lt;a href="http://hardware.slashdot.org/story/10/10/23/2250208/Are-Consumer-Hard-Drives-Headed-Into-History"&gt;article over at Slashdot&lt;/a&gt; about the possible decline of the traditional hard disk. We now have tablets like the iPad and its clones having only solid state / flash memory, and the new MacBook Air reaching a price point which is a direct competition to Apple's entry level MacBook. This really might be a sign for solid state storage to have reached the ordinary customer, outside of MP3 players, cameras and smartphones. The discussion on Slashdot is erratic and irrational, as usual, but some interesting points are also made. The thing those people are missing though is: This is again another Apple strategy. Apple can allow to enter a mass market first. They have loads of money, their products are still priced at the high point. They don't compete with the low level market. So offering a 11.6" laptop with a meagre 64 GiB of storage is doable for Apple. Sure, most geeks will say: What a puny machine! But again, as with the iPad, Apple can drive markets that don't care about computing power and loads of disk storage: Your mom, my mom and millions of other people might be happy with such a machine, that only 5 years ago would have been more computer than you'd ever needed. In a significantly larger form factor.&lt;br /&gt;And in 5 years you probably won't see any laptop with a spinning drive anymore. Apple is just very early to the game, as usual. Remember the floppy-less iMac? They never were the first, but they were always quick to pick up and set trends. Also, what most geeks at Slashdot don't understand: Yes, Apple is fashion. Apples is expensive. But that's exactly why their product sell. Is it a good thing? Probably not. But that's how the market works: fashion sells. Also their laptops are incredibly well manufactured, in my opinion. Not without flaws, but much better than most devices I held in my hand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-6564667627868150042?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/6564667627868150042/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/10/do-magnetic-hard-drives-go-way-of.html#comment-form' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6564667627868150042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6564667627868150042'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/10/do-magnetic-hard-drives-go-way-of.html' title='Do magnetic hard drives go the way of the poodle?'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-4895541872685087471</id><published>2010-10-10T18:00:00.001+02:00</published><updated>2010-10-10T18:00:52.395+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>ICE train power outlets confuse iPhone</title><content type='html'>Currently travelling with the german ICE train. The iPhone is plugged in, and I notice the following: the touch events are noisy and jittered. Unplug: all ok. Plug in again: flaky. I guess the 230V line here is of very low quality. I am using the Apple transformer, by the way. &lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-4895541872685087471?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/4895541872685087471/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/10/ice-train-power-outlets-confuse-iphone.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4895541872685087471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4895541872685087471'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/10/ice-train-power-outlets-confuse-iphone.html' title='ICE train power outlets confuse iPhone'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5061005880316015803</id><published>2010-10-06T10:09:00.000+02:00</published><updated>2010-10-06T10:09:21.980+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>How to downgrade an iPad from 4.2beta to 3.2.2</title><content type='html'>When trying to downgrade an iPad from 4.2beta to 3.2.2 directly via iTunes, I just get a non-descript error message. However, there is a nice &lt;a href="http://www.coveringweb.com/2010/09/downgrade-ios-42-to-ios-322-for-ipad.html"&gt;howto&lt;/a&gt;&amp;nbsp;out there, which describes this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5061005880316015803?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5061005880316015803/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/10/how-to-downgrade-ipad-from-42beta-to.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5061005880316015803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5061005880316015803'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/10/how-to-downgrade-ipad-from-42beta-to.html' title='How to downgrade an iPad from 4.2beta to 3.2.2'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-6658363161453882900</id><published>2010-10-02T13:03:00.000+02:00</published><updated>2010-10-02T13:03:31.270+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Frogatto and Friends</title><content type='html'>An absolutely cute 2D, very classic jump and run game is &lt;a href="http://www.frogatto.com/"&gt;Frogatto and Friends&lt;/a&gt;. It is for free, comes even with source code. Only the iPhone version does cost a bit. But I guess that is a nice way to support the developers. The game is crossplatform, running on Linux, OS X, Windows and, as mentioned, iOS devices. I assume, if you take the source, you can make it run on several other platforms as well. The music is nice, the characters lovable, and the levels have a great amount of detail. Controls are simple: cursor keys, plus A and S is all you need. What surprised me was that the music is stored as .ogg files, although it sounds like &lt;a href="http://en.wikipedia.org/wiki/Tracker_(music_software)"&gt;tracker&lt;/a&gt; songs. Thus it makes up 90 MiB of the game data, the whole game being slightly over 100 MB in size. Anyway, &lt;a href="http://www.frogatto.com/download"&gt;download&lt;/a&gt; it and have fun!&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TKcQkR2BiwI/AAAAAAAAAXE/capLq76TzwE/s1600/Bildschirmfoto+2010-10-02+um+12.55.27.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="318" src="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TKcQkR2BiwI/AAAAAAAAAXE/capLq76TzwE/s400/Bildschirmfoto+2010-10-02+um+12.55.27.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-6658363161453882900?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/6658363161453882900/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/10/frogatto-and-friends.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6658363161453882900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6658363161453882900'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/10/frogatto-and-friends.html' title='Frogatto and Friends'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Mc79Xvd2xvE/TKcQkR2BiwI/AAAAAAAAAXE/capLq76TzwE/s72-c/Bildschirmfoto+2010-10-02+um+12.55.27.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-7310091665681442402</id><published>2010-10-01T08:54:00.001+02:00</published><updated>2010-10-02T09:19:49.681+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Emacs in Ubuntu...</title><content type='html'>...it's &lt;a href="http://ubuntuforums.org/showthread.php?t=1499832"&gt;buggy&lt;/a&gt;. I tried the snapshot, but that behaves strange as well. My workaround so far is to go &lt;a href="http://www.emacswiki.org/emacs/FullScreen"&gt;fullscreen&lt;/a&gt;. Still, customize is broken: the customization buffer shows up in the wrong buffer. I haven't found a bug description for that yet. Also, the git interface does not work. I will install magit next, to see if that helps. Anyway: Emacs on (K) Ubuntu is in bad shape...&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; I fixed the first two problems. Turns out, emacs-snapshot does work, I just forgot to de-install emacs23-gtk and install emacs-snapshot-gtk. Thus I still fired up the old version. Customize works as well now, after uninstalling &lt;a href="http://cedet.sf.net/"&gt;cedet&lt;/a&gt; and &lt;a href="http://ecb.sf.net/"&gt;ecb&lt;/a&gt;, and instead using the latest ecb and cedet from Sourceforge. The versions shipping with Kubuntu are slightly out of date and were causing the buffer problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-7310091665681442402?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/7310091665681442402/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/10/emacs-in-ubuntu.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7310091665681442402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7310091665681442402'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/10/emacs-in-ubuntu.html' title='Emacs in Ubuntu...'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-7321874918256189778</id><published>2010-09-25T19:17:00.001+02:00</published><updated>2010-09-26T19:47:07.568+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Truecrypt + ext2/3 + Linux AND OS X</title><content type='html'>Ok, so the combination of &lt;a href="http://www.truecrypt.org/"&gt;Truecrypt&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Ext3"&gt;ext2/3&lt;/a&gt; is not optimal for sharing data between Linux and OS X. Truecrypt and &lt;a href="http://sourceforge.net/projects/ext2fuse/"&gt;fuse-ext2&lt;/a&gt; on OS X cannot mount an ext2/3 partition read-write. So I will now go back to the lowest common denominator for all OSes: NTFS...&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt;&amp;nbsp;Yes, it seems NTFS is a good alternative. With both OSes using &lt;a href="http://www.tuxera.com/community/ntfs-3g-download/"&gt;NTFS-3G&lt;/a&gt;, I can use the Truecrypt file on both Linux and OS X -- and even Windows, if I had one... Creation of a 200GB Truecrypt file takes time, though. And copying all the data to it, even more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-7321874918256189778?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/7321874918256189778/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/09/truecrypt-ext23-linux-and-os-x.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7321874918256189778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7321874918256189778'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/09/truecrypt-ext23-linux-and-os-x.html' title='Truecrypt + ext2/3 + Linux AND OS X'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-415238781403514057</id><published>2010-09-24T10:31:00.000+02:00</published><updated>2010-09-24T10:31:21.080+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='iWork'/><title type='text'>Description of Apple's Keynote file format</title><content type='html'>What a nice surprise. Apple has actually documented the &lt;a href="http://developer.apple.com/appleapplications/keynote-apxl.html"&gt;Keynote file format&lt;/a&gt;. Sadly, as far as I can see, there is no import/export capability in either PowerPoint nor OpenOffice.org Impress. That would be a nice feature. But it's good that Apple does document the format. Since it is XML, it is easy to parse. However the hard part is always the semantics, not the syntax...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-415238781403514057?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/415238781403514057/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/09/description-of-apples-keynote-file.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/415238781403514057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/415238781403514057'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/09/description-of-apples-keynote-file.html' title='Description of Apple&apos;s Keynote file format'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5417315658907401540</id><published>2010-09-22T22:45:00.002+02:00</published><updated>2010-09-22T22:50:15.607+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Akonadi Hell</title><content type='html'>Which sick, twisted mind designed &lt;a href="http://pim.kde.org/akonadi/"&gt;Akonadi&lt;/a&gt;? Everytime I run Kontact for the first time, it will fire up a dialog, presenting me with strange errors that happen upon running Akonadi. The second time around, it works fine. This is, by the way, on a fresh &lt;a href="http://www.kubuntu.org/"&gt;KUbuntu&lt;/a&gt; 10.04 installation. Sometimes, a little bit more Q/A on complex FOSS projects would be really, really nice.&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; Plus the display of Google contacts using Akonadi (in the KDE address book) is totally borked. Well, good thing I only change my contacts through MobileMe or the iPhone, and push those changes on to Google...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5417315658907401540?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5417315658907401540/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/09/akonadi-hell.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5417315658907401540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5417315658907401540'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/09/akonadi-hell.html' title='Akonadi Hell'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5633091414919859935</id><published>2010-09-11T21:41:00.001+02:00</published><updated>2010-09-13T19:39:38.507+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Spherical Harmonics Explorer</title><content type='html'>I have written a neat little &lt;a href="http://en.wikipedia.org/wiki/Spherical_Harmonics"&gt;Spherical Harmonics&lt;/a&gt; explorer. Right now, the projection function has some weird bug still, but the basis functions, and arbitrary combinations of them can be viewed nicely. The tool is written in &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;, using &lt;a href="http://www.riverbankcomputing.co.uk/software/pyqt/intro"&gt;PyQt4&lt;/a&gt; and &lt;a href="http://pyopengl.sourceforge.net/documentation/"&gt;PyOpenGL&lt;/a&gt;. Python is excellent for prototyping such a tool. It might not be as fast as C++, but the rendering speed using PyOpenGL is more than enough and very smooth. I might put the small 3D viewer widget online later, because it might be useful for many people. Here's some eyecandy:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Mc79Xvd2xvE/TIva7vRhuMI/AAAAAAAAAWQ/uRp8c6vkxMw/s1600/Bildschirmfoto+2010-09-11+um+21.36.47.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="292" src="http://1.bp.blogspot.com/_Mc79Xvd2xvE/TIva7vRhuMI/AAAAAAAAAWQ/uRp8c6vkxMw/s400/Bildschirmfoto+2010-09-11+um+21.36.47.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Update:&lt;/b&gt;&amp;nbsp;Now the projection also works fine. See the example screenshot of an order 5 approximation. This still needs some more work, still using a very basic Monte Carlo sampling approach, which converges terribly slow. But I can already produce some results.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TI5hynRBRiI/AAAAAAAAAWY/hPjh96J5_z8/s1600/SH-Projection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="292" src="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TI5hynRBRiI/AAAAAAAAAWY/hPjh96J5_z8/s400/SH-Projection.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5633091414919859935?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5633091414919859935/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/09/spherical-harmonics-explorer.html#comment-form' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5633091414919859935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5633091414919859935'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/09/spherical-harmonics-explorer.html' title='Spherical Harmonics Explorer'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Mc79Xvd2xvE/TIva7vRhuMI/AAAAAAAAAWQ/uRp8c6vkxMw/s72-c/Bildschirmfoto+2010-09-11+um+21.36.47.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-1959376357005783464</id><published>2010-09-09T18:36:00.000+02:00</published><updated>2010-09-09T18:36:04.710+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Selecting between overloaded signals in PyQt</title><content type='html'>The signal mechanism in &lt;a href="http://qt.nokia.com/products/"&gt;Qt&lt;/a&gt;&amp;nbsp;allows for overloading. E.g. the QSpinBox comes with two signals called &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;valueChanged(int)&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;valueChanged(QString)&lt;/span&gt;. However, since Python is dynamically typed, such overloading gives rise to problems. Here is how you can select which signal you want to connect to your slot:&lt;br /&gt;&lt;div&gt;&lt;pre class="brush: bash"&gt;from PyQt4 import QtCore, QtGui, uic&lt;br /&gt;&lt;br /&gt;class MyMainWindow(QtGui.QMainWindow):&lt;br /&gt;&lt;br /&gt;    def __init__(self):&lt;br /&gt;        QtGui.QMainWindow.__init__(self)&lt;br /&gt;        self.ui = uic.loadUi("MyMainWindow.ui", self)&lt;br /&gt;&lt;br /&gt;        # Slot connections&lt;br /&gt;        self.ui.spinBox.valueChanged.connect(self.spinBoxChanged)&lt;br /&gt;        self.ui.spinBox.setValue(4)&lt;br /&gt;&lt;br /&gt;    @QtCore.pyqtSlot(int)&lt;br /&gt;    def spinBoxChanged(self, i):&lt;br /&gt;        # do something...&lt;br /&gt;        pass&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;Notice the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;(int)&lt;/span&gt; in the decorator of the slot. This has to match the signature of the signal. I haven't dug into more complex signals, passing around arbitrary objects, but I think that is not a problem: Qt datatypes have a Python wrapper, and functions in Python cannot be overloaded anyway, so there won't be clashes with pure Python signals and slots.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-1959376357005783464?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/1959376357005783464/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/09/selecting-between-overloaded-signals-in.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1959376357005783464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1959376357005783464'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/09/selecting-between-overloaded-signals-in.html' title='Selecting between overloaded signals in PyQt'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-6507799343002451777</id><published>2010-09-07T11:22:00.000+02:00</published><updated>2010-09-07T11:22:10.512+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Redefining quit-char in Emacs 23</title><content type='html'>The quit command C-g is pretty much standard in Emacs. It runs the interactive function keyboard-quit and also serves as the default quit-char. It aborts basically every running function, also it allows you to cancel operations in the minibuffer. The Emacs documentation describes current-input-mode, set-input-mode and set-quit-char for getting and setting the quit-char value. Also, global-set-key allows you to rebind keyboard-quit to another character. However, this does not work very well. The quit-char is not settable for non-tty Emacs versions, e.g. on OS X using Cocoa Emacs you get this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TIYDf2S2dqI/AAAAAAAAAVo/Lh94r19pvRg/s1600/Bildschirmfoto+2010-09-07+um+11.14.32.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TIYDf2S2dqI/AAAAAAAAAVo/Lh94r19pvRg/s320/Bildschirmfoto+2010-09-07+um+11.14.32.png" /&gt;&lt;/a&gt;&lt;/div&gt;So, basically nothing changes. On a tty it looks more promising:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TIYDm9sekUI/AAAAAAAAAVw/CYheuBNJbCs/s1600/Bildschirmfoto+2010-09-07+um+11.15.49.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_Mc79Xvd2xvE/TIYDm9sekUI/AAAAAAAAAVw/CYheuBNJbCs/s320/Bildschirmfoto+2010-09-07+um+11.15.49.png" /&gt;&lt;/a&gt;&lt;/div&gt;After rebinding the keyboard quit as well, using &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;(global-set-key (kbd "C-q") 'keyboard-quit)&lt;/span&gt;, not much happens either. It seems the minibuffer assumes C-g to be the choice of the day. Running find-file with C-x C-f or interactively via M-x find-file, and then hitting C-q does nothing except printing "Quit". Hitting C-g however quits the minibuffer. This seems to be documented in &lt;a href="http://debbugs.gnu.org/db/12/1218.html"&gt;Bug #1218&lt;/a&gt; of Emacs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-6507799343002451777?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/6507799343002451777/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/09/redefining-quit-char-in-emacs-23.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6507799343002451777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6507799343002451777'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/09/redefining-quit-char-in-emacs-23.html' title='Redefining quit-char in Emacs 23'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Mc79Xvd2xvE/TIYDf2S2dqI/AAAAAAAAAVo/Lh94r19pvRg/s72-c/Bildschirmfoto+2010-09-07+um+11.14.32.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-645263357315244366</id><published>2010-09-06T19:40:00.004+02:00</published><updated>2011-07-27T18:00:05.204+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>gitx with push / pull support</title><content type='html'>I love &lt;a href="http://gitx.frim.nl/"&gt;gitx&lt;/a&gt;, the &lt;a href="http://git-scm.com/"&gt;git&lt;/a&gt; GUI for OS X. However, it used to have no push / pull support. Which is pretty important for git. But git and &lt;a href="http://github.com/"&gt;github&lt;/a&gt; are beautiful pieces of software. So there is another fork on github, containing &lt;a href="http://github.com/brotherbard/gitx"&gt;push / pull support and more&lt;/a&gt;. This little context menu made me happy:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TIUnZ9TBLfI/AAAAAAAAAVg/_xSl-Nr3dLQ/s1600/photon-git.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="321" src="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TIUnZ9TBLfI/AAAAAAAAAVg/_xSl-Nr3dLQ/s640/photon-git.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Readymade binaries can usually be found on &lt;a href="http://brotherbard.com/blog/"&gt;Brotherbard's blog&lt;/a&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Update&lt;/b&gt;: There is a better, newer branch even yet. See my &lt;a href="http://root42.blogspot.com/2011/07/even-better-gitx-with-pushpull-support.html"&gt;other blog post&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-645263357315244366?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/645263357315244366/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/09/gitx-with-push-pull-support.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/645263357315244366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/645263357315244366'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/09/gitx-with-push-pull-support.html' title='gitx with push / pull support'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Mc79Xvd2xvE/TIUnZ9TBLfI/AAAAAAAAAVg/_xSl-Nr3dLQ/s72-c/photon-git.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-356854763107582118</id><published>2010-08-31T15:57:00.004+02:00</published><updated>2010-08-31T16:08:32.526+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><title type='text'>Backup of running VirtualBox machines</title><content type='html'>If you are using VirtualBox for running servers, you might have stumbled across the question: How do I backup a running virtual machine? The problem is, that the machine state, consisting of the hardware state and especially the virtual harddisk, might change during the backup. This means that you will most probably end up with an inconsistent machine state, from which you might not be able to recover, after restoring the machine from your backup.&lt;br /&gt;So I thought up a little script that creates a static machine state that can be backed up, while the vbox continues to run on a current, changing machine state.&lt;br /&gt;Requirements: two states named current and previous (you have to add them manually first), where "current" is the current vbox snapshot, which the machine is running on. The script will move the current state to the name "previous", and delete the old "previous" state. It will then take a new "current" snapshot.&lt;br /&gt;The previous snapshot (.vmdk and .sav) together with the main .vmdk or .vdi can then be used for backup purposes.&lt;br /&gt;So it's a good idea to run this script before your daily backup run. The snapshots take only some seconds. Deleting the old snapshot might take a bit longer, because the deleted machine state is committed back to the main machine state.&lt;br /&gt;Note that your backup software will fail to backup the current snapshot correctly. However, since vbox generates random IDs for the states, it is not easy to exclude the file from the backup set. So just ignore error messages from your backup software concerning that particular state file. This way you will have a machine state that lags only some minutes compared to your backup system.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bash"&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;VBOXMANAGE="/usr/bin/VBoxManage -q"&lt;br /&gt;&lt;br /&gt;if [ $# != 1 ]&lt;br /&gt;then&lt;br /&gt;    echo "Usage: $0 VBoxName"&lt;br /&gt;    exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;echo "Renaming old snapshot..."&lt;br /&gt;$VBOXMANAGE snapshot "$1" edit previous --name deleteme&lt;br /&gt;echo "Renaming current snapshot..."&lt;br /&gt;$VBOXMANAGE snapshot "$1" edit current --name previous&lt;br /&gt;echo "Taking new snapshot..."&lt;br /&gt;$VBOXMANAGE snapshot "$1" take current&lt;br /&gt;echo "Deleting old snapshot..."&lt;br /&gt;$VBOXMANAGE snapshot "$1" delete deleteme&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-356854763107582118?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/356854763107582118/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/08/backup-of-runing-virtualbox-machines.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/356854763107582118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/356854763107582118'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/08/backup-of-runing-virtualbox-machines.html' title='Backup of running VirtualBox machines'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-7704007009683234907</id><published>2010-08-29T11:20:00.001+02:00</published><updated>2010-08-29T11:41:46.557+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='scene'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Evoke 2010 wrapup</title><content type='html'>On Friday and Saturday I went to the &lt;a href="http://www.evoke.eu/2010/"&gt;Evoke 2010&lt;/a&gt; in Cologne together with &lt;a href="http://blog.dev-scene.com/0xtob/"&gt;0xtob&lt;/a&gt;. Exactly 25 hours before the 4k Intro compo deadline we started coding... Well, I haven't coded an intro ever before, 0xtob has some more experience. Plus the two other, very brilliant entries in the competition had much more time to prepare. But nevertheless we managed to submit an entry for Linux, which took about 3.2KiB.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Mc79Xvd2xvE/THokdT5V5_I/AAAAAAAAAVQ/MHnbTuCLv0A/s1600/Bildschirmfoto+2010-08-29+um+11.06.13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="http://3.bp.blogspot.com/_Mc79Xvd2xvE/THokdT5V5_I/AAAAAAAAAVQ/MHnbTuCLv0A/s400/Bildschirmfoto+2010-08-29+um+11.06.13.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;0xtob even managed to code a minimalistic sound engine in less than an hour, so that we had at least some noise playing in the background. The whole intro is just one scene without any fading in or out so far. It's basically a raytraced implicit, morphing function (interpolating between two animated implicit functions). So we actually do not render any explicit geometry. The raytracer is written in GLSL, and the textures are a port of Ken Perlin's original improved Perlin noise to GLSL, which I somehow managed to do. The intro runs on both Linux and OS X, but on OS X it is currently about 7KiB, so not quite 4k. A Windows port will follow at some time, I guess. We are planning to clean up and beautify the intro somewhat and put it on pouet in the coming weeks.&lt;br /&gt;All in all it was a lot of fun, and we got a lot of help: jix borrowed us his MBP running Linux, because the orga did not want to accept OS X as the host OS, and 0xtob's Quadro NVS was not up to the task rendering the whole thing in 720p. :) Some unknown guy borrowed us the MDP to DVI adapter. Robert helped to crunch the binary to minimal size, and also made the shader more colourful than ever. Roman gave helpful hints and was another pair of eyes watching over the code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-7704007009683234907?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/7704007009683234907/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/08/evoke-2010-wrapup.html#comment-form' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7704007009683234907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7704007009683234907'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/08/evoke-2010-wrapup.html' title='Evoke 2010 wrapup'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Mc79Xvd2xvE/THokdT5V5_I/AAAAAAAAAVQ/MHnbTuCLv0A/s72-c/Bildschirmfoto+2010-08-29+um+11.06.13.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-2690888483513080862</id><published>2010-08-24T17:15:00.006+02:00</published><updated>2010-08-24T21:57:57.220+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>MobileMe bugs: Image upload with Linux based browsers impossible</title><content type='html'>Well, the MobileMe gallery upload seems to only like Mac browsers. I have only my SuSE box here, so I tried to upload using Chrom 5.0 and Firefox 3.5. No luck. Both browsers throw errors. Just like this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Mc79Xvd2xvE/THPhyy6V7YI/AAAAAAAAAVA/aRaqndzAJ9c/s1600/mobile-me-upload-error.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_Mc79Xvd2xvE/THPhyy6V7YI/AAAAAAAAAVA/aRaqndzAJ9c/s320/mobile-me-upload-error.png" /&gt;&lt;/a&gt;&lt;/div&gt;So far, I cannot find any documentation on this behaviour. I would have assumed that either FFox or Chrome would work. MobileMe on OS X says it supports FFox and Safari. But since Safari is not available on Linux, I thought I might try FFox and Chrome. Now waiting for a MobileMe chat support guy. I doubt they are educated enough to actually help me...&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt;&amp;nbsp;The chat guy was friendly, and had one hint: update to FFox 3.6. I was still on 3.5. And sure enough: now the upload works. Only one file at a time, though. But I found out even more on my own. It seems all the images are accessible from your iDisk as well. They are stored in Web/Sites/_gallery/id. Where id is the number of your gallery. However, you cannot just upload pictures there. Every image needs to be put in a separate directory. Every directory must then have the following files:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;exif.json&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;large.jpg&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;medium.jpg&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;square.jpg&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;web.jpg&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The exif.json is obviously a JSON style EXIF data block, e.g. like this:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;{"data":{"infoSensing":"One-chip color area sensor","infoExposure":"Normal program","infoExposureIndex":"--","infoFNumber":"2.8","infoDistance":"--","infoGPSLongitude":"8° 15&amp;amp;#39 35.40" E","infoWidth":"2,048 pixels","infoName":"IMG_0133.jpg","infoDigitizedDate":"Thu, 19 Aug 2010 12:18:20 PDT","infoFocalLength":"3.85 mm","infoHeight":"1,536 pixels","infoExposureTime":"0.003846154","infoGPSLatitude":"50° 0&amp;amp;#39 5.40" N","infoAperture":"f/3.0","infoMetering":"Average","infoShutter":"1/260","infoSize":"1022.27 KB","infoBrightness":"--","infoCameraModel":"iPhone 3GS","infoMaxAperture":"--","infoCameraMake":"Apple","infoExposureBias":"--","infoFlash":"32","infoOriginalDate":"Thu, 19 Aug 2010 12:18:20 PDT","infoGPSAltitude":"115.00 m","infoISOSpeed":"64","infoLightSource":"--","infoSoftware":"4.0.2"},"status":1}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;This should be easily created by a short shell script, using "exiftool -s image.jpg" and some awk magic. The image files in the folder are:&lt;br /&gt;&lt;br /&gt;large.jpg:&amp;nbsp;2048x1536 (original resolution? at least for iPhone 3GS)&lt;br /&gt;medium.jpg:&amp;nbsp;427x320 (approx. iPhone screen resolution)&lt;br /&gt;square.jpg: 160x160 (thumbnail)&lt;br /&gt;web.jpg: 1024x768&lt;br /&gt;&lt;br /&gt;For portrait, I assume that the width and height are swapped. Have not checked this yet. Later, I will try to whip up a bash or Python script which produces these files automatically from a list of input images. Let's see if this works.&lt;br /&gt;&lt;br /&gt;Oh yes, one more thing: In Linux you can easily mount the iDisk with "wdfs&amp;nbsp;&amp;nbsp;http://idisk.me.com/your-id iDisk/&lt;br /&gt;".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Update 2:&lt;/b&gt;&amp;nbsp;A quick check revealed that the iDisk interface is quasi read-only. Writing new albums or pictures there will not show up in the gallery itself. That would have been too nice. So I guess this is only possible via the (unpublished?) HTTP API of MobileMe itself. Just like the &lt;a href="http://code.google.com/intl/de-DE/apis/picasaweb/overview.html"&gt;Picasa API&lt;/a&gt; for uploading and manipulating photos. But it seems the API is &lt;a href="http://www.javarants.com/2009/07/03/creating-a-json-web-service-api-for-find-my-iphone/"&gt;quite hard to decipher&lt;/a&gt;, which is sad, given that Google practically documents all their APIs and encourages mashups and websites using their services.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-2690888483513080862?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/2690888483513080862/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/08/mobileme-bugs-image-upload-with-linux.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2690888483513080862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2690888483513080862'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/08/mobileme-bugs-image-upload-with-linux.html' title='MobileMe bugs: Image upload with Linux based browsers impossible'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Mc79Xvd2xvE/THPhyy6V7YI/AAAAAAAAAVA/aRaqndzAJ9c/s72-c/mobile-me-upload-error.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5839356746367087328</id><published>2010-08-11T11:26:00.003+02:00</published><updated>2010-08-11T11:28:39.303+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Blender'/><title type='text'>UI Changes in Blender 2.5</title><content type='html'>&lt;div style="text-align: left;"&gt;There is a nice &lt;a href="http://www.blenderguru.com/whered-that-button-go/"&gt;blog post&lt;/a&gt; about the UI changes from Blender 2.4x to the 2.5 series. All in all I think the new UI is much improved. However some things are still not perfect. e.g. Blender windows on OS X are not resizable, apart from the zoom (+) button. That's because the resize corner in the lower right is missing. On Linux, this will be provided by the window manager. Anyway, here is an idea of what Blender 2.5 looks like:&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_Mc79Xvd2xvE/TGJtLXr94KI/AAAAAAAAAU4/iO66aPAlVnk/s1600/Bildschirmfoto+2010-08-11+um+10.59.39.png"&gt;&lt;img src="http://3.bp.blogspot.com/_Mc79Xvd2xvE/TGJtLXr94KI/AAAAAAAAAU4/iO66aPAlVnk/s400/Bildschirmfoto+2010-08-11+um+10.59.39.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5504081736704581794" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 250px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5839356746367087328?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5839356746367087328/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/08/ui-changes-in-blender-25.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5839356746367087328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5839356746367087328'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/08/ui-changes-in-blender-25.html' title='UI Changes in Blender 2.5'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Mc79Xvd2xvE/TGJtLXr94KI/AAAAAAAAAU4/iO66aPAlVnk/s72-c/Bildschirmfoto+2010-08-11+um+10.59.39.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-2816102523526312054</id><published>2010-08-10T17:52:00.002+02:00</published><updated>2010-08-10T18:01:49.806+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Gimp'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='X11'/><title type='text'>Getting halfway sane mouse click behaviour in Gimp on OS X</title><content type='html'>I can definitely recommend the X11 packages from the &lt;a href="http://xquartz.macosforge.org/"&gt;XQuartz&lt;/a&gt; project. They are more up to date than the X11 server shipped with OS X. Also, the Gimp packages over at &lt;a href="http://gimp.lisanet.de/"&gt;Lisanet&lt;/a&gt; are fantastic, too. However, the default click behaviour of X11 or rather quartz-wm is not optimal, especially for the Gimp. Usually I like focus follows mouse, but for an interface like the Gimp, it does not make sense. You always inadvertendly focus on an image, that you did not want to focus. Since there is no delayed ffm mode in quartz-wm, I opted for click-to-focus instead. However, quartz-wm swallows mouse clicks on inactive windows. This is also not worthwile for the Gimp with it's extra tool palette windows. So the soluation is: click-through combined with click-to-focus. Easy:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;defaults write org.macosforge.xquartz.X11 wm_click_through -bool true&lt;br /&gt;defaults write org.macosforge.xquartz.X11 wm_ffm -bool false&lt;br /&gt;&lt;/pre&gt;In newer releases you can set this also from the preferences (⌘,). If you are using the X11 version shipped with OS X, you can most probably just replace org.macosforge.xquartz.x11 with com.apple.x11.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-2816102523526312054?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/2816102523526312054/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/08/getting-halfway-sane-mouse-click.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2816102523526312054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2816102523526312054'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/08/getting-halfway-sane-mouse-click.html' title='Getting halfway sane mouse click behaviour in Gimp on OS X'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-4273534740981318661</id><published>2010-08-09T22:00:00.008+02:00</published><updated>2010-08-11T17:40:14.544+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Boardgames'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>I love Python</title><content type='html'>It's so easy to quickly code something and calculate something. The following snippet actually computes the number of possible cards in the game &lt;a href="http://www.boardgamegeek.com/boardgame/16992/tsuro"&gt;Tsuro&lt;/a&gt;. The game ships with 64 cards, but my colleague and I suspected that those were not all possible combinations (eliminating all rotational symmetries). So we did some quick calculations, and came up with 105 possible cards. So I wrote this short Python code to enumerate all possible cards then:&lt;div&gt;&lt;b&gt;Update: &lt;/b&gt;My first algorithm was wrong. The actual number of cards is 35. It is only 105, when the numbering of the conncetion points is of interest. So here is the augmented algorithm, which outputs the 35 unique cards. The game comes with two of every card, except for 6 highly symmetric cards, which are unique in the game.&lt;br /&gt;&lt;pre class="brush: python"&gt;&lt;br /&gt;def makeCards(cards, card, connectionSet):&lt;br /&gt;    if connectionSet == set([]):&lt;br /&gt;        for i in range(1,4):&lt;br /&gt;            c = shiftCard(card, i)&lt;br /&gt;            try:&lt;br /&gt;                cards.index(c)&lt;br /&gt;                return cards&lt;br /&gt;            except ValueError:&lt;br /&gt;                pass&lt;br /&gt;        return cards + [card]&lt;br /&gt;    start = connectionSet.pop()&lt;br /&gt;    for i in connectionSet:&lt;br /&gt;        newConnection = sorted([start, i])&lt;br /&gt;        cards = makeCards(cards, sorted(card + [newConnection]), connectionSet - set([i]))&lt;br /&gt;    return cards&lt;br /&gt;&lt;br /&gt;def shiftCard(card, i):&lt;br /&gt;    newCard = []&lt;br /&gt;    for c in card:&lt;br /&gt;        conn = sorted([(c[0] + 2 * i) % 8, (c[1] + 2 * i) % 8])&lt;br /&gt;        newCard = sorted(newCard + [conn])&lt;br /&gt;    return newCard&lt;br /&gt;&lt;br /&gt;mycards = makeCards([], [], set([0,1,2,3,4,5,6,7]))&lt;br /&gt;print mycards&lt;br /&gt;print len(mycards)&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-4273534740981318661?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/4273534740981318661/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/08/i-love-python.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4273534740981318661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4273534740981318661'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/08/i-love-python.html' title='I love Python'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5632105304211691772</id><published>2010-08-06T16:51:00.002+02:00</published><updated>2010-08-06T16:53:31.158+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><title type='text'>How to make Hybrid Apps that run on 3.1 and higher devices (iPod, iPad and iPhone)</title><content type='html'>This &lt;a href="http://www.drobnik.com/touch/2010/06/how-to-make-your-hybrid-app-crash-for-sure/"&gt;fantastic blog entry&lt;/a&gt; helps you to actually use the UserInterfaceIdiom message, which is only available in iOS 3.2 and higher. This way, you can actually build a hybrid iPad / iPhone app that even runs on the original iPhone, which only comes with iOS 3.1 at best.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5632105304211691772?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5632105304211691772/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/08/how-to-make-hybrid-apps-that-run-on-31.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5632105304211691772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5632105304211691772'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/08/how-to-make-hybrid-apps-that-run-on-31.html' title='How to make Hybrid Apps that run on 3.1 and higher devices (iPod, iPad and iPhone)'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-906223825100055745</id><published>2010-08-03T17:34:00.002+02:00</published><updated>2010-08-03T17:38:39.156+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>iCal woes: Event invite for Google Calendar is never sent</title><content type='html'>Ok, here is another bugger that annoyed me for quite some time: I am using Google Calendar as my main method of dealing with appointments and shared calendars. I use the mostly fabulous Apple iCal for managing those dates. However, if I create an event to be shared with several people, and I try to send an invitation to those people, this doe not work. In the event properties, I enter a list of Email adresses, hit "Send" and it never gets sent. The event is marked as "waiting for answers", though. But that will never happen... So I have to fire up the Google Calendar website and resend the invitations manually. Bit annoying.&lt;div&gt;I haven't found a correct problem description so far for this in the discussion boards over at Apple, but I'll update this post if I find a bug description or some workaround. However, a preliminary search yields several problems relating to iCal and event invitations, but also with event invitations on Google calendars.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-906223825100055745?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/906223825100055745/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/08/ical-woes-event-invite-for-google.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/906223825100055745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/906223825100055745'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/08/ical-woes-event-invite-for-google.html' title='iCal woes: Event invite for Google Calendar is never sent'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-2061046711321762319</id><published>2010-07-21T14:14:00.003+02:00</published><updated>2010-07-21T14:17:18.004+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Mystery calls by my iPhone</title><content type='html'>In the last couple of days my iPhone made a couple of ghost calls. I.e. it called some people from my address book, without me doing the actual calls. I think I found the reason for that now. When you hit the home button for several seconds, an iPhone 3GS with iOS 3.x or 4.x will go into voice command mode. This even works when the phone is keylocked. The voice function is not so robust and will misinterpret quite a few background sounds, noises and voices for commands. I couldn't yet make 100% sure that this is how it happened, but it seems to be the only possibility so far, since my phone is always keylocked, when I carry it in my pocket. So I figure the home button was accidentally pressed, and thus the voice command was activated. Will try to investigate this further...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-2061046711321762319?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/2061046711321762319/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/07/mystery-calls-by-my-iphone.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2061046711321762319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2061046711321762319'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/07/mystery-calls-by-my-iphone.html' title='Mystery calls by my iPhone'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-1482736533586248962</id><published>2010-07-10T17:53:00.002+02:00</published><updated>2010-07-10T17:56:33.492+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Wishlist item for the iPhone: Clickable Maps Icons</title><content type='html'>What annoys me most in the maps application of the iPhone: You cannot tap or click on symbols. E.g. when you tap a bus-icon in the maps.google.com website, you will get a popup with the name of the bus stop and the lines that go there. This is not possible on the iPhone. I also use the fantastic &lt;a href="http://itunes.apple.com/app/fahrplan/id284970116?mt=8"&gt;Fahrplan&lt;/a&gt; application, however if you do not know the name of the bus stop you want to go to, you're out of luck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-1482736533586248962?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/1482736533586248962/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/07/wishlist-item-for-iphone-clickable-maps.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1482736533586248962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1482736533586248962'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/07/wishlist-item-for-iphone-clickable-maps.html' title='Wishlist item for the iPhone: Clickable Maps Icons'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-7495771188914471653</id><published>2010-07-09T13:07:00.002+02:00</published><updated>2010-07-13T19:30:35.541+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='NVIDIA'/><title type='text'>OS X graphics driver bugs</title><content type='html'>On both our MBP as well as our iMac I can get OS X to crash when using a perfectly fine fragment shader, which works well under Linux. Both under Linux as well as under OS X I am using NVIDIA hardware. This is what the crash looks like:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&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="http://vimeo.com/moogaloop.swf?clip_id=13201921&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="http://vimeo.com/moogaloop.swf?clip_id=13201921&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;p&gt;&lt;a href="http://vimeo.com/13201921"&gt;OS X crashing when using complex GLSL shaders&lt;/a&gt; from &lt;a href="http://vimeo.com/user3425671"&gt;Arne Schmitz&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Update 2010-07-13:&lt;/b&gt; Apple already wrote back, and requested a sample app, which I provided. Let's see if they can figure this out. Kudos for reacting so quickly!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-7495771188914471653?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/7495771188914471653/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/07/os-x-graphics-driver-bugs.html#comment-form' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7495771188914471653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7495771188914471653'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/07/os-x-graphics-driver-bugs.html' title='OS X graphics driver bugs'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-6782820271242771235</id><published>2010-07-06T16:49:00.003+02:00</published><updated>2010-07-06T16:52:04.176+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>me.com woes</title><content type='html'>I have been using me.com for a while now, and am relatively happy with it. The automatic sync of the data between my work laptop and my iPhone is absolutely priceless. Now I've upgraded to the family account to share the (for my needs) ample 40 GB with two friends. Turns out, the other two accounts can only get 5 GB of storage. Ouch. That sort of sucks. Right now, 10 GB cannot be used at all, cause they are reserved for two more people. Why am I then paying for the extra storage anyhow?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-6782820271242771235?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/6782820271242771235/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/07/mecom-woes.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6782820271242771235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6782820271242771235'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/07/mecom-woes.html' title='me.com woes'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5772408716932219458</id><published>2010-07-03T21:25:00.003+02:00</published><updated>2010-07-03T21:27:09.316+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><title type='text'>VLC 1.1.0: Broken deinterlace on OS X</title><content type='html'>Well, I was wondering why some DVDs looked jaggy on OS X when watched with VLC 1.1.0. It seems deinterlacing on VLC for OS X is &lt;a href="http://trac.videolan.org/vlc/ticket/3782"&gt;currently broken&lt;/a&gt;. The bug is fixed now, but we probably have to wait some more time for a 1.1.1 release.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5772408716932219458?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5772408716932219458/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/07/vlc-110-broken-deinterlace-on-os-x.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5772408716932219458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5772408716932219458'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/07/vlc-110-broken-deinterlace-on-os-x.html' title='VLC 1.1.0: Broken deinterlace on OS X'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-4344408145059213390</id><published>2010-06-25T11:27:00.002+02:00</published><updated>2010-06-25T11:30:42.797+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='Network simulation'/><title type='text'>New Book: Modeling and Tools for Network Simulation</title><content type='html'>There is a new book out, for which I contributed part of a chapter: &lt;a href="http://www.amazon.de/Modeling-Tools-Network-Simulation-Wehrle/dp/3642123309"&gt;Modeling and Tools for Network Simulation&lt;/a&gt;. The book is meant to be a textbook for everyone who needs to simulate computer networks. From the physical layer to the application layer, some best practices are described. Contrary to Amazon and &lt;a href="http://www.springer.com/computer/communication+networks/book/978-3-642-12330-6"&gt;Springer's&lt;/a&gt; webpages, the book has more than 256 pages. It's got more than 500 pages, so it is rather comprehensive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-4344408145059213390?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/4344408145059213390/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/06/new-book-modeling-and-tools-for-network.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4344408145059213390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4344408145059213390'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/06/new-book-modeling-and-tools-for-network.html' title='New Book: Modeling and Tools for Network Simulation'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-4731624631626021958</id><published>2010-06-16T16:52:00.002+02:00</published><updated>2010-06-16T16:55:50.820+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><title type='text'>Shortcuts on OS X</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Mc79Xvd2xvE/TBjl1tY-4wI/AAAAAAAAASU/jWJCcBIqF2M/s1600/Spark.png"&gt;&lt;/a&gt;I use &lt;a href="http://www.shadowlab.org/softwares/spark.php"&gt;Spark&lt;/a&gt; for defining global shortcuts to tools, applications etc. One of the best things is shortcutting to the login window. This way you can quickly lock your screen, which is not bindable by default in OS X. Also useful: shortcuts to AppleScript, e.g. for opening a new Safari window. This is what Spark looks like, when you edit the shortcuts:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/_Mc79Xvd2xvE/TBjl1tY-4wI/AAAAAAAAASU/jWJCcBIqF2M/s400/Spark.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5483385257203786498" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 284px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-4731624631626021958?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/4731624631626021958/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/06/shortcuts-on-os-x.html#comment-form' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4731624631626021958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4731624631626021958'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/06/shortcuts-on-os-x.html' title='Shortcuts on OS X'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Mc79Xvd2xvE/TBjl1tY-4wI/AAAAAAAAASU/jWJCcBIqF2M/s72-c/Spark.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5593278753425949153</id><published>2010-06-16T15:14:00.002+02:00</published><updated>2010-06-16T15:19:13.007+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Printing'/><title type='text'>Yellow pages when printing with Debian?</title><content type='html'>We had the problem of yellow tinted printouts on our Debian Testing machines. With my OS X machine, I did not have this problem, although both system use CUPS 1.4.3 for printing. It seems that Ghostscript was the culprit. The pstopdf filter to be exact. This &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=580963"&gt;bug report&lt;/a&gt; in the Debian bug tracker describes the exact same problem. The idea is to comment out the "-dUseCIEColor" option. I am not sure in how far this will also change the colour reproduction, but since our systems are not colour calibrated anyhow, I think this will not matter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5593278753425949153?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5593278753425949153/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/06/yellow-pages-when-printing-with-debian.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5593278753425949153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5593278753425949153'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/06/yellow-pages-when-printing-with-debian.html' title='Yellow pages when printing with Debian?'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-2323136589264620855</id><published>2010-06-11T12:00:00.003+02:00</published><updated>2010-06-11T12:14:09.308+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Cococa Emacs</title><content type='html'>&lt;div style="text-align: left;"&gt;I just found out that there is a new website with Cocoa based Emacs builds. Now I can switch from the out-of-date MacPorts version to the Emacs 23.2 of &lt;a href="http://emacsformacosx.com/"&gt;Emacs for Mac OS X&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;Update: This is really nice, now also the GUD debugger frontend works nicely. Check it out:&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TBIMVQk2dQI/AAAAAAAAASM/P9TufE8T9Co/s1600/GUD.png"&gt;&lt;img src="http://4.bp.blogspot.com/_Mc79Xvd2xvE/TBIMVQk2dQI/AAAAAAAAASM/P9TufE8T9Co/s400/GUD.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481457255829632258" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 340px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-2323136589264620855?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/2323136589264620855/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/06/cococa-emacs.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2323136589264620855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2323136589264620855'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/06/cococa-emacs.html' title='Cococa Emacs'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Mc79Xvd2xvE/TBIMVQk2dQI/AAAAAAAAASM/P9TufE8T9Co/s72-c/GUD.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-7942085402703132085</id><published>2010-06-04T16:15:00.003+02:00</published><updated>2010-06-04T16:23:18.267+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Typo3'/><title type='text'>Typo3: Filelinks are not actually links</title><content type='html'>Whoever named the &lt;a href="http://typo3.org/"&gt;Typo3&lt;/a&gt; &lt;a href="http://wiki.typo3.org/index.php/TSref/filelink"&gt;filelinks&lt;/a&gt;, should be fired. Out of a cannon. &lt;a href="http://www.imdb.com/title/tt0584449/quotes?qt0336861"&gt;Into the sun&lt;/a&gt;. This is because the file&lt;i&gt;link&lt;/i&gt;, does not actually &lt;i&gt;link&lt;/i&gt; to a file, but it &lt;i&gt;copies&lt;/i&gt; it to some folder (upload/media by default). Why this is so, is beyond my understanding. When you add a simple link in the RTE, and link to a file, you get the expected result: You get an &amp;lt;a&amp;gt; tag linking to the corresponding file in the fileadmin/ folder of Typo3. But when using the filelink, the file will be copied to the upload/media/ directory. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have tried to use the DAM extension (digital asset management), but that is such a convoluted, under-documented beast, that I got rid of it very quickly. Now I still do not have a solution, but I welcome every hint on how to solve this.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-7942085402703132085?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/7942085402703132085/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/06/typo3-filelinks-are-not-actually-links.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7942085402703132085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7942085402703132085'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/06/typo3-filelinks-are-not-actually-links.html' title='Typo3: Filelinks are not actually links'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-85667865301798260</id><published>2010-05-28T11:58:00.001+02:00</published><updated>2010-05-28T11:59:32.829+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Mobile Multi Display has hit the AppStore</title><content type='html'>One of the projects I have been working on at the lab has made it to the iPhone AppStore. It's the Mobile Multi Display, and you can find more information about it on its website: &lt;a href="http://www.graphics.rwth-aachen.de/software/mmd/"&gt;http://www.graphics.rwth-aachen.de/software/mmd/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-85667865301798260?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/85667865301798260/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/05/mobile-multi-display-has-hit-appstore.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/85667865301798260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/85667865301798260'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/05/mobile-multi-display-has-hit-appstore.html' title='Mobile Multi Display has hit the AppStore'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5151935515677813565</id><published>2010-05-27T23:21:00.002+02:00</published><updated>2010-05-27T23:25:25.401+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Mounting the iDisk in Linux</title><content type='html'>Ok, so the Apple iDisk of me.com fame seemingly cannot be used from &lt;a href="http://kubuntuforums.net/forums/index.php?topic=3110464.0"&gt;within Dolphin&lt;/a&gt;, the KDE file manager. Either something in Dolphin or me.com is rotten. However, I solved the problem by installing &lt;a href="http://noedler.de/projekte/wdfs/"&gt;wdfs&lt;/a&gt;, the &lt;a href="http://fuse.sourceforge.net/"&gt;FUSE&lt;/a&gt; based webdav mounter. Using wdfs and rsync on the command line is much easier anyway...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5151935515677813565?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5151935515677813565/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/05/mounting-idisk-in-linux.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5151935515677813565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5151935515677813565'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/05/mounting-idisk-in-linux.html' title='Mounting the iDisk in Linux'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-3199795252416374387</id><published>2010-05-26T15:47:00.008+02:00</published><updated>2010-05-28T00:01:21.245+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Switching flyspell dictionaries on the fly</title><content type='html'>Since I am using &lt;a href="http://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt; for most of my text processing, and it comes with the nice &lt;a href="http://www-sop.inria.fr/members/Manuel.Serrano/flyspell/flyspell.html"&gt;Flyspell&lt;/a&gt; mode, and I do write English and German the most, I found this nice snippet from the &lt;a href="http://www.emacswiki.org/emacs/FlySpell"&gt;Emacs wiki&lt;/a&gt;:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre class="brush: lisp"&gt;&lt;br /&gt;(defun fd-switch-dictionary()&lt;br /&gt;    (interactive)&lt;br /&gt;    (let* ((dic ispell-current-dictionary)&lt;br /&gt;    (change (if (string= dic "deutsch8") "english" "deutsch8")))&lt;br /&gt;      (ispell-change-dictionary change)&lt;br /&gt;      (message "Dictionary switched from %s to %s" dic change)&lt;br /&gt;      ))&lt;br /&gt;&lt;br /&gt;(global-set-key (kbd "&amp;lt;f8&amp;gt;")   'fd-switch-dictionary)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;On OS X, I recommend to use emacs-app or emacs-app-devel from MacPorts. For flyspell to work correctly, also make sure to install aspell and e.g. aspell-dict-de. Otherwise the above function will complain, most probably.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-3199795252416374387?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/3199795252416374387/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/05/switching-flyspell-dictionaries-on-fly.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3199795252416374387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3199795252416374387'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/05/switching-flyspell-dictionaries-on-fly.html' title='Switching flyspell dictionaries on the fly'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-2117050231148044809</id><published>2010-05-04T16:52:00.004+02:00</published><updated>2010-05-26T15:47:40.584+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPN'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><title type='text'>Cisco VPN Client triggering system crashes?</title><content type='html'>I am not quite sure, but I suspect my Cisco VPN Client for OS X is triggering some crashes on the MacBook Pro. Only when I have been using the VPN Client, suspend the machine, then wake it up again, the system becomes unstable in some cases. Once, I got a OS X death screen right away, the other time I just got the blue screen, and the activity LED on the front was just off. This so far only seems to happen after I have been using the VPN Client. The current release of the client is 4.9.0180, and is already pretty old. Funny enough the &lt;a href="http://www.cisco.com/en/US/products/sw/secursw/ps2308/"&gt;Cisco webpage&lt;/a&gt; lists only OS X 10.4 and 10.5 as supported, and not 10.6, which has been out for what... 9 months or so? If I find anything new on this, I will update this post.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update&lt;/b&gt;: There is &lt;a href="http://code.google.com/p/tunnelblick/"&gt;Tunnelblick&lt;/a&gt;, a free UI for OpenVPN, which can be used as well. Trying this out now, to see if it is any better.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update:&lt;/b&gt; So far no more crashes. I've used Tunnelblick for some weeks now. So I guess the Cisco client indeed is the culprit&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-2117050231148044809?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/2117050231148044809/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/05/cisco-vpn-client-triggering-system.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2117050231148044809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2117050231148044809'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/05/cisco-vpn-client-triggering-system.html' title='Cisco VPN Client triggering system crashes?'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-6087278031207497766</id><published>2010-04-27T11:51:00.002+02:00</published><updated>2010-04-27T11:57:23.967+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><title type='text'>Arrow keys broken for console applications in OS X 10.6.3</title><content type='html'>I was just trying to configure some project using the &lt;a href="http://www.gnu.org/software/ncurses/"&gt;curses&lt;/a&gt; based &lt;a href="http://www.cmake.org/"&gt;ccmake&lt;/a&gt; tool. I noticed that I cannot do that, since the arrow keys on my keyboard stopped responding when running ccmake. Turns out, &lt;a href="http://www.uponmyshoulder.com/blog/2010/os-x-10-6-3-broke-ncurses/"&gt;Apple broke curses in OS X 10.6.3&lt;/a&gt;. Workaround is to copy the ncurses dylib from a 10.6.2 system, which I don't have at hand right now. Funny enough, the keys are also broken when using xterm instead of the standard terminal, so there is definitely something very broken in ncurses right now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-6087278031207497766?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/6087278031207497766/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/arrow-keys-broken-for-console.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6087278031207497766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6087278031207497766'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/arrow-keys-broken-for-console.html' title='Arrow keys broken for console applications in OS X 10.6.3'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-2432014837142034934</id><published>2010-04-22T15:51:00.003+02:00</published><updated>2010-04-22T15:55:43.024+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>XCode cannot compare SVN directories</title><content type='html'>&lt;div style="text-align: left;"&gt;I am missing one feature in XCode: it can't compare whole directories under version control. Only single files can be compared. For example, I have a directory named "Classes". It's info dialog does not show the version control tab:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://4.bp.blogspot.com/_Mc79Xvd2xvE/S9BUyVbIkbI/AAAAAAAAARc/YzVZw2Ijg4A/s400/Bildschirmfoto+2010-04-22+um+15.50.33.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5462959571721556402" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 104px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;However, if I choose some source file, I get the SCM tab and can compare my local version with the head version in the repository:&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Mc79Xvd2xvE/S9BUy9u7EbI/AAAAAAAAARk/2EukXWnPR5Y/s1600/Bildschirmfoto+2010-04-22+um+15.51.13.png"&gt;&lt;img src="http://1.bp.blogspot.com/_Mc79Xvd2xvE/S9BUy9u7EbI/AAAAAAAAARk/2EukXWnPR5Y/s400/Bildschirmfoto+2010-04-22+um+15.51.13.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5462959582541975986" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 87px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-2432014837142034934?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/2432014837142034934/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/xcode-cannot-compare-svn-directories.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2432014837142034934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2432014837142034934'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/xcode-cannot-compare-svn-directories.html' title='XCode cannot compare SVN directories'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Mc79Xvd2xvE/S9BUyVbIkbI/AAAAAAAAARc/YzVZw2Ijg4A/s72-c/Bildschirmfoto+2010-04-22+um+15.50.33.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-2314359102674188681</id><published>2010-04-20T11:19:00.003+02:00</published><updated>2010-04-20T11:21:52.286+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Nice things about the iPad</title><content type='html'>&lt;div style="text-align: left;"&gt;Well, one nice about iPad development is that porting your app is pretty easy. Took me 1 minute exactly. Sure, you have to re-tweak your UI, but the OpenGL ES rendering is instantly high-res.&lt;/div&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 310px;" src="http://4.bp.blogspot.com/_Mc79Xvd2xvE/S81yHJOA4yI/AAAAAAAAARU/SkkW2YV0UDQ/s400/Bildschirmfoto+2010-04-20+um+11.20.38.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5462147390129627938" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-2314359102674188681?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/2314359102674188681/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/nice-things-about-ipad.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2314359102674188681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2314359102674188681'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/nice-things-about-ipad.html' title='Nice things about the iPad'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Mc79Xvd2xvE/S81yHJOA4yI/AAAAAAAAARU/SkkW2YV0UDQ/s72-c/Bildschirmfoto+2010-04-20+um+11.20.38.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-238245005067478035</id><published>2010-04-19T12:19:00.002+02:00</published><updated>2010-04-19T12:21:52.811+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><title type='text'>iPad WiFi problems</title><content type='html'>Yes, it's true. The &lt;a href="http://news.bbc.co.uk/2/hi/8606727.stm"&gt;iPad WiFi problems&lt;/a&gt; are definitely there. I currently have one iPad lying around here, which has obscenely bad WiFi performance: bad signal, slow, disconnects. The eduroam node I am using is 6m away, almost line of sight (two open doors).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-238245005067478035?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/238245005067478035/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/ipad-wifi-problems.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/238245005067478035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/238245005067478035'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/ipad-wifi-problems.html' title='iPad WiFi problems'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-8020225347487463526</id><published>2010-04-19T10:54:00.008+02:00</published><updated>2010-05-27T23:57:58.879+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Python: swapping variables</title><content type='html'>I forgot where I read this, but this is a neat way of swapping variables in python:&lt;br /&gt;&lt;pre class="brush: python"&gt;&lt;br /&gt;u = 1&lt;br /&gt;v = 2&lt;br /&gt;print "%i %i" % (u, v)&lt;br /&gt;u, v = v, u&lt;br /&gt;print "%i %i" % (u, v)&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-8020225347487463526?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/8020225347487463526/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/python-swapping-variables.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/8020225347487463526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/8020225347487463526'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/python-swapping-variables.html' title='Python: swapping variables'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-1234465413274361761</id><published>2010-04-17T13:45:00.001+02:00</published><updated>2010-04-17T13:46:50.267+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><title type='text'>Finder could not be started...</title><content type='html'>&lt;div style="text-align: left;"&gt;One of those mysterious error messages, which can only be solved by logging out and in again:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 181px;" src="http://4.bp.blogspot.com/_Mc79Xvd2xvE/S8mfml9CzeI/AAAAAAAAARE/YXgqaODXg-8/s400/Bildschirmfoto+2010-04-17+um+13.43.16.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5461071508535430626" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-1234465413274361761?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/1234465413274361761/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/finder-could-not-be-started.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1234465413274361761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1234465413274361761'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/finder-could-not-be-started.html' title='Finder could not be started...'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Mc79Xvd2xvE/S8mfml9CzeI/AAAAAAAAARE/YXgqaODXg-8/s72-c/Bildschirmfoto+2010-04-17+um+13.43.16.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5322486525479637316</id><published>2010-04-16T11:48:00.003+02:00</published><updated>2010-04-16T11:50:59.224+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Making transparent iPhone-Sim Screenshots</title><content type='html'>&lt;div style="text-align: left;"&gt;This is a real time saver: Cmd-Shift-4, hit the space bar, select the iPhone simulator window. This makes a nice transparent screenshot, like this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 215px;" src="http://3.bp.blogspot.com/_Mc79Xvd2xvE/S8gy6omC71I/AAAAAAAAAQ8/vp7MXqhyp-k/s400/Bildschirmfoto+2010-04-16+um+11.45.50.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5460670531097522002" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5322486525479637316?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5322486525479637316/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/making-transparent-iphone-sim.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5322486525479637316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5322486525479637316'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/making-transparent-iphone-sim.html' title='Making transparent iPhone-Sim Screenshots'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Mc79Xvd2xvE/S8gy6omC71I/AAAAAAAAAQ8/vp7MXqhyp-k/s72-c/Bildschirmfoto+2010-04-16+um+11.45.50.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-6464129648652948828</id><published>2010-04-16T11:08:00.001+02:00</published><updated>2010-04-16T11:18:01.666+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><title type='text'>Setting PATH and other variables on OS X</title><content type='html'>Since OS X is a UNIX like many others, I usually put my environment variable settings like PATH in ~/.profile. However, for Cocoa based apps, that are not run from a terminal, this will not help. Luckily, there is a &lt;a href="http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/EnvironmentVars.html"&gt;documented procedure&lt;/a&gt; for setting environment variables for Cocoa applications. In short, you just have to edit a plist. If it already exists on your system, just type the following in a terminal:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; open ~/.MacOSX/environment.plist&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If the file does not yet exist, just run the Property List Editor (e.g. via spotlight), and create that folder and that file.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-6464129648652948828?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/6464129648652948828/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/setting-path-and-other-variables-on-os.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6464129648652948828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/6464129648652948828'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/setting-path-and-other-variables-on-os.html' title='Setting PATH and other variables on OS X'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5098977070136150871</id><published>2010-04-11T15:06:00.005+02:00</published><updated>2010-04-11T15:14:19.697+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPod Touch'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Syncing iPod Touch and iPhone with Linux</title><content type='html'>Ok, so I just tried out the new &lt;a href="http://www.libimobiledevice.org/"&gt;libimobiledevice&lt;/a&gt;. Installation was a breeze, using the provided OpenSUSE repository. A first run of ideviceinfo returned successfully detailed information about the attached iPod Touch. I also upgraded libgpod4. But Amarok 2.3 did not show a thing. Mounting of the iPod needed to be done manually using "ifuse ~/my-ipod-dir". Supposedly, this happens automatically with Gnome, usin gvfs. But since I am using KDE, this is at the moment a no-go. Ok, so Amarok fails at this point in time. What about gtkpod? It works, although it throws some mysterious error message ("Eweiterte Informationen werden nicht verwendet" -- wtf?), and that program is dog-slow. I though iTunes is bad, but this program is really, really slow as a snail. But here a proof of concept that I was able to sync to albums to the device:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Mc79Xvd2xvE/S8HKk_e1tQI/AAAAAAAAAQ0/HcC12lFVcio/s1600/iPod+Touch+gtkpod.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 303px;" src="http://4.bp.blogspot.com/_Mc79Xvd2xvE/S8HKk_e1tQI/AAAAAAAAAQ0/HcC12lFVcio/s400/iPod+Touch+gtkpod.png" alt="" id="BLOGGER_PHOTO_ID_5458866960214635778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;What I did not yet try is syncing contacts, notes and bookmarks. With gtkpod, you need to specify a program to do that. No idea which one that is supposed to be. Keeping my MobileMe contacts in sync with my Linux desktop would be nice, though. Also, syncing from within Amarok is mandatory for me, but does not work currently. So let's wait and hope the situation gets better with time. So far I will continue to sync my device with OS X.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5098977070136150871?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5098977070136150871/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/syncing-ipod-touch-and-iphone-with.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5098977070136150871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5098977070136150871'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/syncing-ipod-touch-and-iphone-with.html' title='Syncing iPod Touch and iPhone with Linux'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Mc79Xvd2xvE/S8HKk_e1tQI/AAAAAAAAAQ0/HcC12lFVcio/s72-c/iPod+Touch+gtkpod.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-7996400034657541424</id><published>2010-04-11T13:49:00.004+02:00</published><updated>2010-04-11T14:18:19.254+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Samba'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Extremely slow SMB performance over WiFi using OS X</title><content type='html'>I have an OpenSUSE machine running a Samba server to provide files to my network. Now when I use the MacBook Pro to access those files, this happens awfully slow, with 80-200 KiB per second. I never figured out why, since rsync and sftp work very fast (for WiFi at least), at speeds of around 1.2 MiB per second. Today I googled for it, and it turns out that OS X delays ACK packages. I have no clue why it does that and what good this does, but you can disable it by running:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sudo sysctl -w net.inet.tcp.delayed_ack=0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After that, my SMB transfers jumped to 1 MiB per second, minimum. You can presumably make this change permanent by adding "net.inet.tcp.delayed_ack=0" to the file /etc/sysctl.conf. This will then be applied during system startup.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update&lt;/b&gt;: &lt;a href="http://www.stuartcheshire.org/papers/NagleDelayedAck/"&gt;Here&lt;/a&gt; is a nice explanation why the performance of OS X suffers sometimes, when using delayed ACK, and also why it might be useful in some cases.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-7996400034657541424?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/7996400034657541424/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/extremely-slow-smb-performance-over.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7996400034657541424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7996400034657541424'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/extremely-slow-smb-performance-over.html' title='Extremely slow SMB performance over WiFi using OS X'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-3026455174875377170</id><published>2010-04-09T10:55:00.002+02:00</published><updated>2010-04-09T10:56:37.798+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Drag and Drop of Actions in Qt Designer 4.6.2 on OS X does not work</title><content type='html'>One more stupid bug in Qt found. When using the Designer, you can't drag and drop QActions, if you are using the Cocoa version of Qt. The bug is described &lt;a href="http://bugreports.qt.nokia.com/browse/QTBUG-7981"&gt;here&lt;/a&gt;, a fix will be available in Qt 4.6.3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-3026455174875377170?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/3026455174875377170/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/drag-and-drop-of-actions-in-qt-designer.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3026455174875377170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/3026455174875377170'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/drag-and-drop-of-actions-in-qt-designer.html' title='Drag and Drop of Actions in Qt Designer 4.6.2 on OS X does not work'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-4990200431558814994</id><published>2010-04-08T17:27:00.003+02:00</published><updated>2010-04-08T19:46:40.139+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenCL'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>OpenCL on OS X</title><content type='html'>&lt;div&gt;I have just tried to run an official &lt;a href="http://www.khronos.org/registry/cl/"&gt;OpenCL&lt;/a&gt; sample program by &lt;a href="https://developer.apple.com/mac/library/samplecode/OpenCL_FFT/Introduction/Intro.html"&gt;Apple&lt;/a&gt; on a MBP 10.6.3 machine. Result: a crash. Why? I do not know yet, but it seems that OpenCL somehow crashlanded the nvidia OpenGL driver. This is what I get:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;08.04.10 17:04:50&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;kernel&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;NVDA(OpenGL): Channel exception! exception type = 0xd = GR: SW Notify Error&lt;/div&gt;&lt;div&gt;08.04.10 17:04:50&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;kernel&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0000006e&lt;/div&gt;&lt;div&gt;08.04.10 17:04:50&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;kernel&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;00200000 00008397 00000474 00000040&lt;/div&gt;&lt;div&gt;08.04.10 17:04:50&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;kernel&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0000047e 00001408 00000001 00000008&lt;/div&gt;&lt;div&gt;08.04.10 17:04:50&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;kernel&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;00000000 00000000 01dfdc03&lt;/div&gt;&lt;div&gt;08.04.10 17:05:04&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;kernel&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;NVDA(OpenGL): Channel exception! exception type = 0x8 = Fifo: Watchdog Timeout Error&lt;/div&gt;&lt;div&gt;08.04.10 17:05:04&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;kernel&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0000006e&lt;/div&gt;&lt;div&gt;08.04.10 17:05:04&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;kernel&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;00000010 00008397 00000474 00000000&lt;/div&gt;&lt;div&gt;08.04.10 17:05:04&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;kernel&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0000047e 00001528 00000000 00000008&lt;/div&gt;&lt;div&gt;08.04.10 17:05:04&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;kernel&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;00000000 00000000 019fdc03&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As soon as I know something more and especially how to fix it, I will share it here.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update&lt;/b&gt;: It does not crash, if I don't touch any keys when the kernel runs. So I guess the OpenCL drivers are a bit buggy still...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-4990200431558814994?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/4990200431558814994/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/opencl-on-os-x.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4990200431558814994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4990200431558814994'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/opencl-on-os-x.html' title='OpenCL on OS X'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-8759780115462710793</id><published>2010-04-06T11:17:00.002+02:00</published><updated>2010-04-06T11:21:00.787+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Emacs: autocomplete-mode</title><content type='html'>&lt;div style="text-align: left;"&gt;Just a quick note: the Emacs &lt;a href="http://cx4a.org/software/auto-complete/"&gt;autocomplete-mode&lt;/a&gt; is easy and lovely. It is not as clever as &lt;a href="http://cedet.sourceforge.net/semantic.shtml"&gt;semantic&lt;/a&gt;, but it works, is pretty fast and can optionally use semantic, if I understood correctly. Installation is easy, due to the provided install script. It provides nice pop-up menus to choose the alternatives from:&lt;/div&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 224px;" src="http://3.bp.blogspot.com/_Mc79Xvd2xvE/S7r81FTeG-I/AAAAAAAAAQs/0JGB5TvmH88/s400/Bildschirmfoto+2010-04-06+um+11.16.33.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5456951887399885794" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-8759780115462710793?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/8759780115462710793/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/emacs-autocomplete-mode.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/8759780115462710793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/8759780115462710793'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/emacs-autocomplete-mode.html' title='Emacs: autocomplete-mode'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Mc79Xvd2xvE/S7r81FTeG-I/AAAAAAAAAQs/0JGB5TvmH88/s72-c/Bildschirmfoto+2010-04-06+um+11.16.33.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-7519206472854423085</id><published>2010-04-02T18:40:00.001+02:00</published><updated>2010-04-03T15:37:52.159+02:00</updated><title type='text'>SD card reading problems</title><content type='html'>Today I was shooting some pictures using some camera and a cheap 2GB SD card. Upon returning home, I copied the pictures from the SD card to the Mac, using an old 6-in-1 card reader. After about 980 MiB of images, OS X throws a read error. Using cp in terminal yields the same result. Trying to repair the card using the hard disk utility even resulted in the system hanging. No hard freeze, but I had to power cycle it, since I was too lazy to fire up another ssh-capable machine.&lt;br /&gt;After some research, I read on Wikipedia that SD cards over 1 GiB are adressed differently.  It seems that older devices, such as my reader may have problems using those cards. This means I have to go buy a new reader tomorrow, I guess! Or be restricted to using only 1 Gig of the SD cards I use... Which is not a good idea for camera producing 37 MiB RAW files.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update:&lt;/b&gt; My suspicion was correct. A new 10 € card reader solved the problem. The 2 GiB are back, I can read all the photos from the card.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-7519206472854423085?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/7519206472854423085/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/sd-card-reading-problems.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7519206472854423085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7519206472854423085'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/sd-card-reading-problems.html' title='SD card reading problems'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-7037632002390831054</id><published>2010-04-01T22:49:00.004+02:00</published><updated>2010-04-03T10:28:59.538+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><title type='text'>Automatic security updates for Debian</title><content type='html'>I was wondering how to configure automatic security updates for Debian. Especially for Debian stable, which I am running. Turns out it's easy. First, you just install cron-apt. Second, you can configure it by editing /etc/cron-apt/config. I learned from some other blog, that setting one variable helps in getting actually emails for the upgrades, namely setting MAILON="upgrade" in this file does the trick. And lastly, there is a directory /etc/cron-apt/action.d, which contains all the actions that cron-apt will execute. In there is a file named 3-download, which I changed to look as follows:&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;autoclean -y&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;upgrade -y -o APT::Get::Show-Upgraded=true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The second line is changed from "dist-upgrade -d ...", because you don't want any automatic dist-upgrades. That might leave your server in a horrible state. Also, instead of only downloading (-d), you want it to install the upgrades as well. That's all and should help you keep up with security patches more easily.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update:&lt;/b&gt; The updates seem to work fine! Tonight I got the first email that notified me of a successful security update.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-7037632002390831054?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/7037632002390831054/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/04/automatic-security-updates-for-debian.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7037632002390831054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/7037632002390831054'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/04/automatic-security-updates-for-debian.html' title='Automatic security updates for Debian'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-5327756760606321308</id><published>2010-03-31T10:25:00.002+02:00</published><updated>2010-03-31T10:31:16.030+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='administration'/><title type='text'>Tivoli Storage Manager: Servername not found</title><content type='html'>The infamous Tivoli Storage Manager client (a.k.a. dsmc) uses two configuration files: dsm.sys for the system wide configuration, specifying which directories to backup and so on, and the dsm.opt for the backup/restore client. The problem is, if you specify the backup SERVERNAME in both files, this will lead to problems, if they are not the same. So, e.g. I misconfigured the dsm.opt via the dsmj wizard, and had "SERVERNAME myhost" in the dsm.opt, while the dsm.sys said "SERVERNAME something.at.rwth-aachen.de". The first entry obviously was complete bull, and confused the dsmc, so that it answered "ANS1217E Server name not found in System Options File". Aligning both entries to the correct, real server name solves this problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-5327756760606321308?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/5327756760606321308/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/03/tivoli-storage-manager-servername-not.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5327756760606321308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/5327756760606321308'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/03/tivoli-storage-manager-servername-not.html' title='Tivoli Storage Manager: Servername not found'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-641691994817747699</id><published>2010-03-28T18:11:00.003+02:00</published><updated>2010-03-28T18:16:01.277+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>iPhone / iPhoto syncing woes</title><content type='html'>&lt;div style="text-align: left;"&gt;I just tried to download a couple of images from my iPhone, using iPhoto '08. No luck. Suddenly the iPhone was not listed anymore in iPhoto! It turned out that something on the iPhone was broken / corrupt. When I looked at the device using the Image Capture program, I got this:&lt;/div&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 186px;" src="http://4.bp.blogspot.com/_Mc79Xvd2xvE/S6-AREceRWI/AAAAAAAAAQM/16DLpY81v_U/s320/Bildschirmfoto+2010-03-28+um+18.08.38.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5453718704508257634" /&gt;&lt;/div&gt;&lt;div&gt;As you can see the devices section lists 24 images on the phone, but the photo list is empty. Deleting the pictures on the device restored the functionality. If you need the photos badly, you can forward them to your email or MobileMe account, and then delete them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sometimes it is so much better to just have a plain filesystem with photos, instead of some advanced database, that might break...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-641691994817747699?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/641691994817747699/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/03/iphone-iphoto-syncing-woes.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/641691994817747699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/641691994817747699'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/03/iphone-iphoto-syncing-woes.html' title='iPhone / iPhoto syncing woes'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Mc79Xvd2xvE/S6-AREceRWI/AAAAAAAAAQM/16DLpY81v_U/s72-c/Bildschirmfoto+2010-03-28+um+18.08.38.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-2790045317645475421</id><published>2010-03-20T08:45:00.004+01:00</published><updated>2010-05-28T00:02:25.146+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Bug in ff-find-other-file of Emacs 22?</title><content type='html'>I am working on a C++ project which is organized such that source files (*.cc) are in some subdir called, let's say, project/dir1/, and header files (*.h) in a directory called project/include/. Now Emacs has a function called ff-find-other-file, which is able to switch between header and implementation of C/C++ files. If you take a look at the source of this function, you will find another function called ff-get-file-name, which tries the following: first, it looks for already visited buffers, if they contain the appropriate file. Then it will search a certain set of directories, if they contain the file. Last, it will ask to find or create the file in a user specified directory. However, in my case, although both files are already being visited by buffers, the first test (finding the file in already loaded buffers) fails. Actually the offending piece of code looks like this:&lt;br /&gt;&lt;pre class='brush: lisp'&gt;&lt;br /&gt;   (if (bufferp (get-file-buffer filename))&lt;br /&gt;       (setq found (buffer-file-name (get-file-buffer filename))))&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The problem is that this always fails, and found will always be nil. The filename constructed is not being expanded, as get-file-buffer demands. However, expanding it is useless, since the exact expansion (absolute path) of the searched file is not exactly known! However, you can rework these lines to just look for a buffer whose name matches the file you are looking for:&lt;br /&gt;&lt;pre class='brush: lisp'&gt;&lt;br /&gt;   (let ((b (find-if (lambda(x) (string= (buffer-name x) filename)) (buffer-list))))&lt;br /&gt;     (if b&lt;br /&gt;         (setq found (buffer-file-name b))))&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note that this will only do a simple string matching. It might happen that for a certain file foo.cc you have to buffers visiting some foo.h. The function will only find the first one. But in my opinion, there is not simple solution to find the semantically correct header file, anyway. So this is still better than the broken solution in Emacs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-2790045317645475421?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/2790045317645475421/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/03/bug-in-ff-find-other-file-of-emacs-22.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2790045317645475421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/2790045317645475421'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/03/bug-in-ff-find-other-file-of-emacs-22.html' title='Bug in ff-find-other-file of Emacs 22?'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-4285582928280617714</id><published>2010-03-17T16:53:00.004+01:00</published><updated>2010-03-17T16:55:17.398+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CUDA'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>No 64bit CUDA for OS X so far</title><content type='html'>I am still waiting for 64 bit &lt;a href="http://www.nvidia.com/cuda"&gt;CUDA&lt;/a&gt; support for OS X 10.6. As &lt;a href="http://forums.nvidia.com/index.php?showtopic=92481"&gt;this thread&lt;/a&gt; indicates, we might have to wait for a while so far. Maybe I will switch to OpenCL in the meantime? :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-4285582928280617714?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/4285582928280617714/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/03/no-64bit-cuda-for-os-x-so-far.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4285582928280617714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/4285582928280617714'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/03/no-64bit-cuda-for-os-x-so-far.html' title='No 64bit CUDA for OS X so far'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-1098599607519293611</id><published>2010-03-05T17:41:00.001+01:00</published><updated>2010-03-05T17:42:17.961+01:00</updated><title type='text'>Password generator</title><content type='html'>Neat link: An online password generator tool: &lt;a href="https://www.grc.com/passwords.htm"&gt;https://www.grc.com/passwords.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-1098599607519293611?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/1098599607519293611/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/03/password-generator.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1098599607519293611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/1098599607519293611'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/03/password-generator.html' title='Password generator'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8130446119807415263.post-8356473615288166268</id><published>2010-03-02T10:21:00.001+01:00</published><updated>2010-03-02T10:22:12.903+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Typo3'/><title type='text'>How to add Google Analytics to Typo3</title><content type='html'>Someone else &lt;a href="http://www.infohit.net/blog/post/how-to-google-analytics-with-typo3.html"&gt;already solved it&lt;/a&gt;. I say thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8130446119807415263-8356473615288166268?l=root42.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://root42.blogspot.com/feeds/8356473615288166268/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://root42.blogspot.com/2010/03/how-to-add-google-analytics-to-typo3.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/8356473615288166268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8130446119807415263/posts/default/8356473615288166268'/><link rel='alternate' type='text/html' href='http://root42.blogspot.com/2010/03/how-to-add-google-analytics-to-typo3.html' title='How to add Google Analytics to Typo3'/><author><name>root42</name><uri>http://www.blogger.com/profile/13597121138269728177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Mc79Xvd2xvE/SyAX7iyxmhI/AAAAAAAAANY/otm-HdrlhJc/S220/Foto+36.jpg'/></author><thr:total>0</thr:total></entry></feed>
