<?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-3019054489127059271</id><updated>2012-01-06T15:01:15.409+01:00</updated><category term='ruby'/><category term='linux'/><category term='macos'/><category term='emacs'/><category term='doxygen'/><category term='personal'/><category term='latex'/><category term='programming'/><category term='scm'/><category term='graphics'/><category term='sciyag'/><category term='rants'/><category term='pymol'/><category term='france'/><category term='tioga'/><category term='games'/><category term='wine'/><category term='git'/><category term='software'/><category term='cmdline'/><category term='qt4'/><category term='debian'/><category term='ctioga'/><category term='webgen'/><category term='scripts'/><category term='hardware'/><category term='science'/><title type='text'>YANUB: yet another (nearly) useless blog</title><subtitle type='html'>A blog from a scientist and Debian developer (and occasional book writer)... Tricks for data handling, programming, debian administration and development, command-line and many other joyful things in the same spirit.

Oh, and sometimes completey unrelated things !</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>92</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-7825406903660185684</id><published>2011-12-08T09:51:00.000+01:00</published><updated>2012-01-06T15:01:15.418+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qt4'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='macos'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Graphical connection to a Mac from Linux</title><content type='html'>For my lab work, I have developed an (almost) cross-platform program based on &lt;a href="http://doc.trolltech.com/"&gt;Qt4&lt;/a&gt; that help us analyze our data. One of the motivations to use Qt was the ability to port the program to other platforms, and in particular MacOSX (half of my team uses them). After installing the required development tools using &lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt; (mind you, the MacOS version of the development tools, not the X11 one), I was able to compile and run the program without a single code change on my bosses' Mac. But here come problems: several things do not work the same way in Mac and in Linux (whereas it should, I think), so additional tweaking and debugging will be necessary.&lt;/p&gt;&lt;p&gt;This is where the problem comes in: I don't own a Mac and don't intend to, so I need to connect to my bosses' Mac in order to perform testing. How can I connect to a Mac display ? X11 connection won't work, since my application is a Mac application and not a X11 one. I had him turn on screen sharing (the most basic tick box), which sets up a VNC server on the Mac. Unfortunately, when I connect using the command-line VNC clients available for debian, ie &lt;code&gt;vncviewer&lt;/code&gt; (from the packages &lt;code&gt;xvnc4viewer&lt;/code&gt; or &lt;code&gt;xtightvncviewer&lt;/code&gt;), I get the following problems:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;~ vncviewer chrismac

VNC Viewer Free Edition 4.1.1 for X - built Mar 10 2010 22:31:05
Copyright (C) 2002-2005 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.

Wed Dec  7 10:40:41 2011
 CConn:       connected to host chrismac port 5900
 CConnection: Server supports RFB protocol version 3.889
 CConnection: Using RFB protocol version 3.8
 CConnection: No matching security types
 main:        No matching security types
&lt;/pre&gt;&lt;br /&gt;
The good news is that &lt;a href="http://remmina.sourceforge.net/"&gt;remmina&lt;/a&gt; is able to connect graphically, although for me it required that I set the display depth to 24 bits (else it seems to connect, but the connection dies immediately). Great, I'll be able to debug, then...&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; after a while, I found out that &lt;code&gt;remmina&lt;/code&gt; had some drawbacks when connecting to a Mac, such as, at least in my case, a weird problem with Shift: once I hit Shift, I'm never able again to type in lowercase characters, which is quite painful. I tried also &lt;a href="http://projects.gnome.org/vinagre/"&gt;Vinagre&lt;/a&gt;, who handled that better (but had some quite painful freezing moment), so I must say that I finally found a client I'm happy with: &lt;a href="http://launchpad.net/gtkvncviewer"&gt;gtkvncviewer&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-7825406903660185684?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/7825406903660185684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=7825406903660185684' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7825406903660185684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7825406903660185684'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2011/12/graphical-connection-to-mac-from-linux.html' title='Graphical connection to a Mac from Linux'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-4162586191058580490</id><published>2011-06-07T22:00:00.012+02:00</published><updated>2011-06-07T22:19:09.539+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Record sound currently playing to file using ALSA</title><content type='html'>I've been wondering for a long time about how to record sound which is currently being played on the computer. I know the ALSA framework is powerful enough to do that, and today just proved me so (at least to some extent). It turns out that it's pretty trivial using the &lt;a href="http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html#pcm_plugins_file"&gt;file PCM plugin&lt;/a&gt;; all you need is a stanza like this in your &lt;code&gt;$HOME/.asoundrc&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;
pcm.save {
    type file
    format wav
    slave.pcm front 
    # my main PCM is called front
    file output.wav
}
&lt;/pre&gt;
&lt;p&gt;Afterwards, you can use this &lt;code&gt;save&lt;/code&gt; PCM with the tools that understand it, such as &lt;code&gt;aplay&lt;/code&gt; or &lt;code&gt;mplayer&lt;/code&gt;:
&lt;pre&gt;
~ aplay -Dsave stuff.wav
~ mplayer -ao alsa:device=save stuff.wav
&lt;/pre&gt;
&lt;p&gt;(for xine users, you may want to have a look at the &lt;code&gt;audio.device.alsa_front_device&lt;/code&gt; configuration element).&lt;/p&gt;
&lt;p&gt;Funnier, though, is the possibility to use it with programs that don't provide such an easy way to change that, (say, the flash player in a browser ?) via the use of the default PCM specification in &lt;code&gt;$HOME/.asoundrc&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;
pcm.!default save
&lt;/pre&gt;
&lt;p&gt;After that, all programs using the default PCM will save the sound they play as a &lt;code&gt;save.wav&lt;/code&gt; file in their current directory - but nothing stops you from specifiying an absolute directory. Better yet, you may apparently use pipes in stead of the file name, à la &lt;code&gt;popen&lt;/code&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-4162586191058580490?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/4162586191058580490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=4162586191058580490' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4162586191058580490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4162586191058580490'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2011/06/record-sound-currently-playing-to-file.html' title='Record sound currently playing to file using ALSA'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-9065746790931018916</id><published>2011-06-07T12:32:00.003+02:00</published><updated>2011-06-07T12:35:23.743+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Simply impressive...</title><content type='html'>... that's what I think of the work of the FTP Team. Three uploads to NEW in one day, all of which processed in less than half a day. Truly impressive !&lt;/p&gt;
&lt;p&gt;Many thanks to them !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-9065746790931018916?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/9065746790931018916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=9065746790931018916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9065746790931018916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9065746790931018916'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2011/06/simply-impressive.html' title='Simply impressive...'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-7737511602861249616</id><published>2011-04-26T22:20:00.005+02:00</published><updated>2011-04-26T22:39:00.020+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Newer xorg, missing mouse features and xinput</title><content type='html'>Recent versions of xorg have seen changes in defaults for the behaviour of mice/touchpads, such as third button emulation or edge scrolling suddenly not working anymore. What is worse now is that the corresponding entries in the &lt;code&gt;xorg.conf&lt;/code&gt; are now ignored... Wait, wait, don't go flaming the Xorg maintainers, but keep on looking rather. This is where I found out about &lt;code&gt;xinput&lt;/code&gt;, the new way to customize/parametrize input devices for the X server. And, lets face it, it beats any customization that could have been done in &lt;code&gt;xorg.conf&lt;/code&gt; ! Here's how to use it.&lt;/p&gt;
&lt;p&gt;First, you'll have to install it from its own package (&lt;code&gt;xinput&lt;/code&gt;), as it doesn't come bundled with standard X clients. Second, you can find out about the devices connected to your X server using:&lt;/p&gt;
&lt;pre&gt;
~ xinput --list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
&lt;/pre&gt;
&lt;p&gt;It is easy to find the device you're interested in (here, say the touchpad entry). Then, you list the properties you can set/get using:&lt;/p&gt;
&lt;pre&gt;
~ xinput --list-props "SynPS/2 Synaptics TouchPad"
&lt;i&gt;[...]&lt;/i&gt;
        Synaptics Edge Scrolling (269): 0, 0, 0
 &lt;/pre&gt;
&lt;p&gt;The list is quite impressive, so I have only shown the one I'm interested in. You see here everything is 0, which probably explains why edge scrolling is disable (I don't have a clue what the actual numbers mean). You can finally change the properties this way:&lt;/p&gt;
&lt;pre&gt;
xinput --set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Edge Scrolling"  6 6 6
&lt;/pre&gt;
&lt;p&gt;This gave me back edge scrolling. I used a similar approach to enable again the third button emulation... What is neat here is that the property names are readable enough, and there's a lot of them to play with. Great !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-7737511602861249616?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/7737511602861249616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=7737511602861249616' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7737511602861249616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7737511602861249616'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2011/04/newer-xorg-missing-mouse-features-and.html' title='Newer xorg, missing mouse features and xinput'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3976859331557799277</id><published>2011-03-29T13:45:00.001+02:00</published><updated>2011-03-29T13:58:27.734+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Call for testers: pmount finally supports mounting image files</title><content type='html'>I've finally come up with a decent way for &lt;code&gt;pmount&lt;/code&gt; to support mounting image files using loop devices. This has required a little more work than I thought, since I had to add support for configuration files for &lt;code&gt;pmount&lt;/code&gt;, as loopback mounting is by essence insecure, so the support for it had to be user-configurable. I have tried hard to make the loopback mounting as secure as possible, for instance by ensuring that a user cannot bypass file permissions with it, but of course lookback mount still means that a user has read-write access to a mounted FS which can be used to exploit potential weaknesses in the kernel...&lt;/p&gt;
&lt;p&gt;I have uploaded a new version of &lt;code&gt;pmount&lt;/code&gt; to experimental. Comments, bug reports, exploits are welcome !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3976859331557799277?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3976859331557799277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3976859331557799277' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3976859331557799277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3976859331557799277'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2011/03/call-for-testers-pmount-finally.html' title='Call for testers: pmount finally supports mounting image files'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-4194848558518194695</id><published>2011-03-07T11:14:00.006+01:00</published><updated>2011-03-07T11:26:25.212+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Installing a Canon Pixma MP250</title><content type='html'>I recently acquired a Pixma MP 250 printer, and as I had some difficulties with setting it up, I wanted to share this here. The printer isn't supported as such by &lt;a href="http://www.cups.org/"&gt;CUPS&lt;/a&gt;, so I had to dig a little bit. After quite some time, I found debian packages on the Canon website &lt;a href="http://support-au.canon.com.au/contents/AU/EN/0100236101.html"&gt;there&lt;/a&gt;. Don't fear the mention of &lt;code&gt;i386&lt;/code&gt;, &lt;code&gt;amd64&lt;/code&gt; packages are included too. This link is likely to break when the software is upgraded, you should try your luck in the &lt;a href="http://software.canon-europe.com/"&gt;drivers search page&lt;/a&gt; should that happen (or for other models). After installing that, CUPS find the connected printer and proposes the PPD for it. The scanner works out of the box with &lt;a href="http://www.xsane.org/"&gt;xsane&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As a side note, Canon also provides &lt;q&gt;source&lt;/q&gt; for the debian packages (the packaged was &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=433555"&gt;ITPed&lt;/a&gt; ages ago). However, there are some binary-only blobs and I didn't manage to get it to compile from source.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-4194848558518194695?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/4194848558518194695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=4194848558518194695' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4194848558518194695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4194848558518194695'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2011/03/installing-canon-pixma-mp250.html' title='Installing a Canon Pixma MP250'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-5697074103503564114</id><published>2011-02-26T18:29:00.010+01:00</published><updated>2011-02-26T18:57:30.169+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latex'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><title type='text'>A praise for TikZ</title><content type='html'>I have been using &lt;a href="http://www.xfig.org/"&gt;&lt;code&gt;xfig&lt;/code&gt;&lt;/a&gt; for ages to draw figures, and I appreciate it, especially combined with a small script I wrote based on an original idea by Seb Desreux at &lt;a href="http://h-k.fr"&gt;H&amp;amp;K&lt;/a&gt;, &lt;a href="http://sourceforge.net/projects/fig2ps/"&gt;&lt;code&gt;fig2ps&lt;/code&gt;&lt;/a&gt;, that allows painless integration of LaTeX code inside &lt;code&gt;xfig&lt;/code&gt; figures.&lt;/p&gt;
&lt;p&gt;But recently, it seems that I've hit limitations in &lt;code&gt;xfig&lt;/code&gt;. Mainly, if it is great when you want to produce sober figures, whenever you want to do something fancier, including shadings and the like, frustration comes in quickly (since it is purely impossible). I've spent a while looking for a decent alternative, until I had a look again at &lt;code&gt;pgf&lt;/code&gt;, which since turned into &lt;a href="http://sourceforge.net/projects/pgf/"&gt;&lt;code&gt;TikZ&lt;/code&gt;&lt;/a&gt;. That was amazing. It integrates painlessly within LaTeX and is simply great to work with. Drawing complex diagrams with noes and complex relations between them is trivial. It handles moving the nodes very gracefully, and styling can be done in a CSS-like fashion (though it definitely isn't CSS), which means you can first concentrate on structure and then turn your graph into something nice, while for all the other programs I know, you have to handle both structural and stylistic aspects at the same time.&lt;/p&gt;
&lt;p&gt;
Sure enough, you need to like the command-driven approach, as mice won't come in too useful here... As a side note, I wanted to express my admiration of Till Tantau's (&lt;code&gt;TikZ&lt;/code&gt;'s author) mastery of (La)TeX: &lt;code&gt;TikZ&lt;/code&gt; can be seen as an interpreter of a simple graphical language written in pure TeX, which is, according to my humble experience with dirty trick in TeX, is simply amazing. Many thanks, Till !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-5697074103503564114?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/5697074103503564114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=5697074103503564114' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5697074103503564114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5697074103503564114'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2011/02/praise-for-tikz.html' title='A praise for TikZ'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1853733838252488877</id><published>2011-02-06T17:05:00.007+01:00</published><updated>2011-02-06T17:24:47.361+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='doxygen'/><title type='text'>Doxygen for Ruby, first working draft !</title><content type='html'>&lt;a href="http://vince-debian.blogspot.com/2008/11/doxygen-and-ruby.html"&gt;Quite some time ago&lt;/a&gt;, I complained about the lack of support of &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; in &lt;a href="http://www.stack.nl/~dimitri/doxygen/"&gt;doxygen&lt;/a&gt;, the ultimate code documentation generator (at least for me). Time has passed, and I had some time and motivation to look into it and write a patch. The code is now reasonably mature to be used, altough it still lacks many features, and, most importantly, testing.&lt;/p&gt;
&lt;p&gt;That's why I pushed my &lt;code&gt;git-svn&lt;/code&gt; private repository to &lt;a href="http://github.com/fourmond/doxygen-ruby-patch"&gt;github&lt;/a&gt; today, in order to get enough testing to integrate it into mainstream &lt;code&gt;doxygen&lt;/code&gt;. It's current features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Code structure parsing is complete in principle, it should extract all the classes/method definitions. If not, please use the &lt;a href="http://github.com/fourmond/doxygen-ruby-patch/issues"&gt;tracker&lt;/a&gt; at github, posting a full example showing the problem.&lt;/li&gt;
&lt;li&gt;It features a &lt;code&gt;rdoc&lt;/code&gt; compatibility mode (on by default), in which it parses all comments (outside method definitions) and interprets most of &lt;code&gt;rdoc&lt;/code&gt;'s markup.&lt;/li&gt;
&lt;li&gt;The &lt;em&gt;inner&lt;/em&gt; code parsing and cross-linking is very ineffective for now; most cross-links are currently not performed. This is one thing on which I'd like to work some day... Although you're welcome to have a go at it if you wish !&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can get an opinion of how it looks on the code of &lt;a href="http://ctioga2.rubyforge.org/doc/dox/html/"&gt;&lt;code&gt;ctioga2&lt;/code&gt;&lt;/a&gt;. The doxygen configuration file can be found &lt;a href="http://ctioga2.rubyforge.org/svn/trunk/ctioga2/Doxyfile"&gt;there&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1853733838252488877?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1853733838252488877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1853733838252488877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1853733838252488877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1853733838252488877'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2011/02/doxygen-for-ruby-first-working-draft.html' title='Doxygen for Ruby, first working draft !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-7092918855889665816</id><published>2011-02-05T20:18:00.015+01:00</published><updated>2011-02-05T20:50:54.071+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tioga'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='ctioga'/><title type='text'>ctioga superseded by ctioga2</title><content type='html'>First, some historical details: some 6 years ago, I discovered &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt; together with &lt;a href="http://tioga.rubyforge.org/"&gt;Tioga&lt;/a&gt;, a great library for producing plots. That immediately resulted in my first Ruby program, &lt;a href="http://sciyag.rubyforge.org/ctioga"&gt;ctioga&lt;/a&gt;. But as years passed and more features were forced into &lt;code&gt;ctioga&lt;/code&gt;, I was compelled to see my initial design mistakes, and think about a complete rewrite.&lt;/p&gt;
&lt;p&gt;This is where &lt;a href="http://ctioga2.rubyforge.org/"&gt;ctioga2&lt;/a&gt; was born, some time at the beginning of 2009. I completely stopped using the old &lt;code&gt;ctioga&lt;/code&gt; a few month after starting to work on &lt;code&gt;ctioga2&lt;/code&gt;, but it took ages before I finally came up with a decent enough documentation to release and &lt;a href="http://freshmeat.net/projects/ctioga/releases/327701"&gt;announce publicly&lt;/a&gt;. But now, it's done, and the first public release of &lt;code&gt;ctioga2&lt;/code&gt; is out, still fresh !&lt;/p&gt;
&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BDEUZ9HplLg/TU2pWvgyZ0I/AAAAAAAAAIE/5yRx0qw5Go0/s1600/3D.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 200px;" src="http://4.bp.blogspot.com/_BDEUZ9HplLg/TU2pWvgyZ0I/AAAAAAAAAIE/5yRx0qw5Go0/s200/3D.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5570294522303375170" /&gt;&lt;/a&gt;
Here are a few highlights of the differences:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For me, it's day and night: adding new commands is painless: I only need to create an object with the appropriate code; registering is done automatically.&lt;/li&gt;
&lt;li&gt;Now, command-line switches also accept options looking like this &lt;code&gt;/option value&lt;/code&gt; that allow many small tweaks I had never had the courage to write for the old &lt;code&gt;ctioga&lt;/code&gt; as it was way too painful to add new commands there.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ctioga2&lt;/code&gt; can be driven both from command-line and using command files, in the style of gnuplot, which is the reason why I call it &lt;a href="http://ctioga2.rubyforge.org/polymorphic.html"&gt;polymorphic&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;More importantly, I finally had the possibility (and more or less compelling reasons, to be found in a paper currently in press) to implement 3D data displays in &lt;code&gt;ctioga2&lt;/code&gt;, in the form of color maps (that's what is shown here).&lt;/li&gt;
&lt;li&gt;There are still a few things that could be done by &lt;code&gt;ctioga&lt;/code&gt; and that miss from &lt;code&gt;ctioga2&lt;/code&gt;, such as histograms. When I have some time and/or motivation...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In any case, you can make yourself an opinion of &lt;code&gt;ctioga2&lt;/code&gt; by looking at the &lt;a href="http://ctioga2.rubyforge.org/galleries.html"&gt;galleries&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enjoy !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-7092918855889665816?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/7092918855889665816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=7092918855889665816' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7092918855889665816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7092918855889665816'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2011/02/ctioga-superseded-by-ctioga2.html' title='ctioga superseded by ctioga2'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BDEUZ9HplLg/TU2pWvgyZ0I/AAAAAAAAAIE/5yRx0qw5Go0/s72-c/3D.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-9072040221224632068</id><published>2010-02-08T20:15:00.000+01:00</published><updated>2010-02-08T20:18:13.045+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>The java packaging nightmare...</title><content type='html'>&lt;h2 style="align: right;"&gt;... or why I mutilated your java package in Debian&lt;/h2&gt;

&lt;p&gt;
This post is especially addressed to what we &lt;a href="http://www.debian.org"&gt;Debian Developers&lt;/a&gt; refer to as &lt;strong&gt;&lt;q&gt;upstream maintainers&lt;/q&gt;&lt;/strong&gt;, that is the people who write/maintain the software that we package for Debian. It is meant to explain why, in some cases, Debian Developers prefer to &lt;q&gt;mutilate&lt;/q&gt; your work rather than upload it to Debian Archives in a state that gives it proper credit. And to apologize.
&lt;/p&gt;
&lt;p&gt;
These opinions are my own, but I have a faint feeling that I'm not the only Debian Developer working like that, and that this few words could help soothe the relation betwenn Debian Developers and Upstream Maintainers, which can be quite tense some times...
&lt;/p&gt;
&lt;p&gt;
It happens unfortunately quite often (too often!) that I disable (or don't enable) features in programs I package. Exact reasons vary, but they essentially fall into two categories:
&lt;ul&gt;
&lt;li&gt; A feature requires code that does not comply to &lt;a href="http://www.debian.org/social_contract"&gt;Debian Free Software Guidelines&lt;/a&gt;, which Debian cannot distribute. This is a no-go.&lt;/li&gt;
&lt;li&gt; A relatively minor feature depends on other software that are not packaged yet, and in which I don't have specific interest, which means I would not be able to maintain them properly (or it would require too much packaging work and so on...).&lt;/li&gt;
&lt;/ul&gt;
When a program has features which falls in one of these categories, I have two choices: either I give up packaging the software or I give up some of the features... For packages for which I care, obviously the second option looks better from &lt;strong&gt;my&lt;/strong&gt; point of view as a Debian Developer.
&lt;/p&gt;
&lt;p&gt;
Java packages are especially affected by this problem, for a very simple reason. Java is one of the few (I don't say only because I'll probably be flamed to death) programming languages which allows very easy distribution of binary platform-independent libraries, in the form of &lt;a href="http://en.wikipedia.org/wiki/JAR_(file_format)"&gt;JAR&lt;/a&gt; files. Many projects simply reuse and embed JAR files published for other projects in their own JAR files, often without precise references to where the source code can be found. Packaging a moderately-sized Java application often rely on dozens of embedded JARs, which we need to remove from the packages we build (as Debian does not distribute binaries without sources for many reasons), and for which we need to hunt down the original source code and often packaging the original project, which might pull in yet other dependencies and so on... A true nightmare ! That's why it is so tempting some times to simply drop some of the code, possibly write patches to disable references to removed libraries, and be done with it.
&lt;/p&gt;
&lt;p&gt;
Therefore, I would wish to publicly apologize to any &lt;q&gt;upstream&lt;/q&gt; developer I've offended by stripping down apparently carelessly their beautiful software before uploading to the Debian Archives; I hope they now understand why I've done that.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Note to users:&lt;/strong&gt; it is not because one of the features of your favorite software has been disabled by its (Debian) maintainer that you need to turn away from Debian ! Rather, file a bug report against the package. You'll get the reasons why the feature was disabled, and you have a chance to convince the maintainer to switch it back on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-9072040221224632068?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/9072040221224632068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=9072040221224632068' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9072040221224632068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9072040221224632068'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2009/03/java-packaging-nightmare.html' title='The java packaging nightmare...'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-4966010922072160246</id><published>2009-04-05T08:31:00.004+02:00</published><updated>2009-04-05T09:57:58.912+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='france'/><category scheme='http://www.blogger.com/atom/ns#' term='rants'/><title type='text'>HADOPI: a great blow to freedom of expression and justice in France</title><content type='html'>Here I am, utterly disgusted. Last Thursday, around 11pm, two dozens of members of Assemblée Nationale (one of the two parliament chambers in France) voted the infamous law nicknamed HADOPI. Great... For the record, this chamber in principle counts 577 members.&lt;/p&gt;
&lt;p&gt;This law is an awful blow to the Internet, the freedom of expression and the legal system in France. The official aim of this law is to put a stop to illegal file-sharing within France. With this law, specially appointed private companies will file accusations saying: &lt;q&gt;this IP downloaded something illegal at this date&lt;/q&gt; to a central authority, and this authority will send two warnings before cutting the Internet connection of the alleged illegal downloader for up to a year. You will notice that there is no mention of what the incriminated person allegedly downloaded. There will be no possibility of appeal until the sanction is executed.&lt;/p&gt;
&lt;p&gt;This scares the hell out of me.&lt;/p&gt;
&lt;p&gt;This spits upon so many aspects of the French legal system that it is honestly impressive... What about the French principle that says that everyone is innocent until proven guilty ? Here, you are declared guilty based on a rather weak evidence (on IP address !), and you'll have to prove your innocence. What about the principle that there needs to be a fair trial before the execution of the sanction ? You'll have to prove you are innocent &lt;strong&gt;after&lt;/strong&gt; the execution, with the additional fun that it will turn almost impossible to prove it. Not to mention the fact that the companies harvesting IP addresses of alleged offenders will have a great deal of access to data you're exchanging; what about privacy ? For the record, this privilege, violating the way justice works in France, had only ever be granted to anti-terrorist cells.&lt;/p&gt;
&lt;p&gt;The fun thing is that this law is useless, at least in terms of the its official goal: the day it comes into application, illegal file sharers will encrypt their exchanges or fake their IP addresses, or do whatever else they might want to do to guarantee their anonymity, and no company will ever be able to find out what it is they exchange. I won't even mention the number of false positive of these automatic accusations: many innocent French web surfers will have their connection cut without ever knowing why and without any possibility to fight back.&lt;/p&gt;
&lt;p&gt;So, what is the real goal ? Or what will be the use ?&lt;/p&gt;
&lt;p&gt;I can only speculate, of course, but it is tempting to think that this law could be used to &lt;em&gt;regulate&lt;/em&gt; what is being expressed from France on the web. Someone is saying disturbing things ? Well, easy to shut him/her up: either fake downloads from his/her IP address or bribe a company into filing false accusations, and you'll effectively remove his/her connection while having the opportunity to further discredit the person by publicly disclosing that he/she is such a pirate that their connection was cut... Sounds neat, doesn't it ? In my childhood, teachers kept on saying that France is the country of human rights, but I can't help thinking this is less and less the case&lt;a href="#note-1"&gt;[1]&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Well. That was a long rant. But I can't keep it inside: this is touching me too much. I'll add that I'm not downloading anything, and I don't have anything a priori against laws which would tend to regulate illegal file sharing. I just don't think that the (small) profits of a few justify spitting upon the freedom and the elementary rights of all people living in France. Further information, in French, can be found &lt;a href="http://www.laquadrature.net/HADOPI"&gt;there&lt;/a&gt;. The full text of the project can be found on the website of &lt;a href="http://www.assemblee-nationale.fr/13/ta/ta0249.asp"&gt;Assemblée Nationale&lt;/a&gt;.&lt;/p&gt;
&lt;small&gt;&lt;a name="note-1"&gt;[1]&lt;/a&gt; Please don't get me wrong. There are many countries where life is definitely more difficult than here, and where human rights are constantly scorned upon, which is fortunately not the case here yet.&lt;/small&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-4966010922072160246?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/4966010922072160246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=4966010922072160246' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4966010922072160246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4966010922072160246'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2009/04/hadopi-great-blow-to-freedom-of.html' title='HADOPI: a great blow to freedom of expression and justice in France'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-8079785586919730923</id><published>2009-03-25T10:15:00.002+01:00</published><updated>2009-03-25T10:19:32.204+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><title type='text'>pdfinfo in centimeters</title><content type='html'>&lt;code&gt;pdfinfo&lt;/code&gt; is one of the utility programs bundled with &lt;a href="http://www.foolabs.com/xpdf/"&gt;xpdf&lt;/a&gt; that gives useful information about PDF files, including its size. However, the size is written in Postscript points, and I can't say I'm that fluent in this unit to actually know how big that is. So here is a shell function that converts the output of pdfinfo into centimeters. Enjoy !&lt;/p&gt;
&lt;pre&gt;
pdfinfom () {
    pdfinfo "$@" | perl -p -e \
 's#(\d+)\s*x\s*(\d+)\s*pts#(sprintf "%.2f", ($1*2.54/72))." x ".(sprintf "%.2f", ($2*2.54/72))." cm"#e'
}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-8079785586919730923?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/8079785586919730923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=8079785586919730923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8079785586919730923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8079785586919730923'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2009/03/pdfinfo-in-centimeters.html' title='pdfinfo in centimeters'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-7160842768201956036</id><published>2009-03-03T20:54:00.005+01:00</published><updated>2009-03-03T21:16:54.724+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Weird crash with linux 2.6.26</title><content type='html'>I've had a rather funny crash for the second time now. It goes like this: the interface is freezing (processing event extremely slowly), it is nearly impossible to do anything (but apparently, everything works, just extremely slowly !). Kernel keep on saying this:&lt;/p&gt;
&lt;pre&gt;
Mar  3 18:56:50 tanyaivinco kernel: [ 2385.443069] hdd: status timeout: status=0xd0 { Busy }
Mar  3 18:56:50 tanyaivinco kernel: [ 2385.443069] ide: failed opcode was: unknown
Mar  3 18:56:56 tanyaivinco kernel: [ 2393.777714] hdd: status timeout: status=0xd0 { Busy }
Mar  3 18:56:56 tanyaivinco kernel: [ 2393.777714] ide: failed opcode was: unknown
Mar  3 18:57:01 tanyaivinco kernel: [ 2398.982260] hdd: status timeout: status=0xd0 { Busy }
Mar  3 18:57:01 tanyaivinco kernel: [ 2398.982260] ide: failed opcode was: unknown
&lt;/pre&gt;
&lt;p&gt;
One of the funny things is that this time like the previous one, at the beginning of the problem, there is always this kernel message, for which I could find no documentation:&lt;/p&gt;
&lt;pre&gt;
Mar  3 18:56:35 tanyaivinco kernel: [ 2367.012218] Clocksource tsc unstable (delta = 4686267423 ns)
&lt;/pre&gt;
&lt;p&gt;
If anyone ever came across this, or has clue, I'm interested !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-7160842768201956036?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/7160842768201956036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=7160842768201956036' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7160842768201956036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7160842768201956036'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2009/03/weird-crash-with-linux-2626.html' title='Weird crash with linux 2.6.26'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-8352826166968524829</id><published>2009-02-10T20:42:00.010+01:00</published><updated>2009-02-10T21:31:07.776+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='pymol'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>A makefile snippet for generaring ray-traced images from pymol</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BDEUZ9HplLg/SZHgP2hLkbI/AAAAAAAAAF4/bPlx5apvJCk/s1600-h/cytochrome.jpeg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 200px;" src="http://2.bp.blogspot.com/_BDEUZ9HplLg/SZHgP2hLkbI/AAAAAAAAAF4/bPlx5apvJCk/s200/cytochrome.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5301264799329128882" /&gt;&lt;/a&gt;
For my research, to create neat images of the molecules I study, I use &lt;a href="http://pymol.org"&gt;Pymol&lt;/a&gt;. It's free, part of &lt;a href="http://packages.qa.debian.org/p/pymol.html"&gt;Debian&lt;/a&gt;, command-driven, very powerful and it produces really good-looking pictures. Although, admittedly, if you don't buy a subscription, the documentation is rather sparse. I'm using scripts to generate ray-traced pictures, but I can't include the &lt;code&gt;ray&lt;/code&gt; command directly in the scripts, as &lt;code&gt;Pymol&lt;/code&gt; would not give me the opportunity to change anything before tracing (and things I trace take loads of time...). So I write a &lt;code&gt;ray&lt;/code&gt; command, but I comment it out, such as in the following example, &lt;code&gt;cytochrome.pml&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;
load http://www.rcsb.org/pdb/files/1c6s.pdb
hide everything
show sticks, (resname HEC)
color orange, (resname HEC)
show cartoon
bg_color white
set_view (\
     0.939850032,    0.167392358,    0.297758341,\
     0.336208642,   -0.299271941,   -0.892972171,\
    -0.060366094,    0.939367712,   -0.337551534,\
     0.000000000,    0.000000000, -106.161231995,\
    33.668910980,   -4.749122620,  -24.822664261,\
    -9.742469788,  222.064941406,    0.000000000 )
# ray 800,800
&lt;/pre&gt;
&lt;p&gt;
So, to easily generate PNG images from such a file, I wrote the following &lt;code&gt;makefile&lt;/code&gt; snippet, that does the job (as demonstrated by the figure on the right, produced by this very snippet ran on the &lt;code&gt;cytochrome.pml&lt;/code&gt; file above):&lt;/p&gt;
&lt;pre&gt;
%.png: %.pml
 cd $(dir $&lt;); \
 ray_trace_args=`grep -o 'ray.*' $(notdir $&lt;)| tail -n1 | egrep -o '([0-9, ]+)' | sed 's/ //g' `; \
 pymol -c -d "@$(notdir $&lt;)" -d "cmd.ray($$ray_trace_args)" -g $@
&lt;/pre&gt;
&lt;p&gt;
I hope this snippet will prove useful for others. At any rate, it will prove useful for me ! Just for the record, this protein, represented in &lt;q&gt;cartoon&lt;/q&gt; view, is called cytochrome &lt;i&gt;c&lt;sub&gt;6&lt;/sub&gt;&lt;/i&gt; and is one of the proteins implied in the photosynthesis of some organisms.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-8352826166968524829?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/8352826166968524829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=8352826166968524829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8352826166968524829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8352826166968524829'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2009/02/makefile-snippet-for-generaring-ray.html' title='A makefile snippet for generaring ray-traced images from pymol'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BDEUZ9HplLg/SZHgP2hLkbI/AAAAAAAAAF4/bPlx5apvJCk/s72-c/cytochrome.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3469887632945295268</id><published>2009-02-08T01:34:00.005+01:00</published><updated>2009-02-08T01:52:18.273+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>Emacs mode for machine-readable copyright files !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BDEUZ9HplLg/SY4rERUKnjI/AAAAAAAAAFw/_WGV9if_tgI/s1600-h/debian-mr-copyright-mode-coverage.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 168px; height: 200px;" src="http://4.bp.blogspot.com/_BDEUZ9HplLg/SY4rERUKnjI/AAAAAAAAAFw/_WGV9if_tgI/s200/debian-mr-copyright-mode-coverage.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5300221163829108274" /&gt;&lt;/a&gt;
Quite a fair amount of time has flown since my &lt;a href="/2008/03/emacs-mode-for-machine-readable.html"&gt;decision to implement an emacs mode&lt;/a&gt; for the proposed &lt;a href="http://wiki.debian.org/Proposals/CopyrightFormat"&gt;machine-readable&lt;/a&gt; format for &lt;code&gt;debian/copyright&lt;/code&gt; files. A have to admit that I had left that sleeping for quite a long while. But I took my courage, and rewrote nearly everything I had done so far. I'm quite happy with the results, to be truthful. The &lt;code&gt;debian-mr-copyright-mode&lt;/code&gt; features:
&lt;ul&gt;
&lt;li&gt;syntax highlighting&lt;/li&gt;
&lt;li&gt;a coverage mode show all files in the package, including the ones &lt;strong&gt;not covered&lt;/strong&gt; by the copyright file&lt;/li&gt;
&lt;li&gt;the coverage mode shows which glob matches a given file&lt;/li&gt;
&lt;li&gt;it provides links to visit files and go to the declaration leading to a given label&lt;/li&gt;
&lt;/ul&gt;
The aim of this mode is to provide a quick check for uncovered files in a package, and also means to verify if the license of a file is not misrepresented.&lt;/p&gt;
&lt;p&gt;The code can be downloaded from the &lt;a href="http://git.debian.org/?p=users/fourmond/debian-mr-copyright-mode.git;a=summary"&gt;git repository&lt;/a&gt;, accessible using&lt;/p&gt;
&lt;pre&gt;
git clone git://git.debian.org/git/users/fourmond/debian-mr-copyright-mode.git
&lt;/pre&gt;
&lt;p&gt;
No debian package is available for the time being, although that could definitely change after lenny is out. I hope this emacs mode will help the new format to be widely adopted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3469887632945295268?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3469887632945295268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3469887632945295268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3469887632945295268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3469887632945295268'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2009/02/emacs-mode-for-machine-readable.html' title='Emacs mode for machine-readable copyright files !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BDEUZ9HplLg/SY4rERUKnjI/AAAAAAAAAFw/_WGV9if_tgI/s72-c/debian-mr-copyright-mode-coverage.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-8260269679130682577</id><published>2009-01-06T22:45:00.003+01:00</published><updated>2009-01-06T22:53:25.754+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><title type='text'>Switching to mpd</title><content type='html'>I was until recently using &lt;a href="http://wiki.xmms2.xmms.se/wiki/Main_Page"&gt;xmms2&lt;/a&gt; as a music daemon. I was finding it neat, providing a good command-line (thus scriptable) control over how the music was playing, and I was using &lt;code&gt;xmms2 info&lt;/code&gt; to automatically write signature files for my mails. However, I got annoyed by one quite painful thing: on my computer, it can take up to &lt;code&gt;40%&lt;/code&gt; of the processor to play a MP3 file (AMD64 x2 4200+ @2.2GHz)! That is mad. One of the consequences was that the music was jaggy whenever &lt;code&gt;aptitude&lt;/code&gt; was upgrading packages... Annoying.&lt;/p&gt;
&lt;p&gt;
So, I've switched to &lt;a href="http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki"&gt;mpd&lt;/a&gt;. It provides a decent command-line client, with possibly a bit less features than &lt;code&gt;xmms2&lt;/code&gt;, but it takes only a few percent of the processor's usage... Thanks !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-8260269679130682577?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/8260269679130682577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=8260269679130682577' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8260269679130682577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8260269679130682577'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2009/01/switching-to-mpd.html' title='Switching to mpd'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-6893856150527254550</id><published>2009-01-05T20:20:00.005+01:00</published><updated>2009-01-05T20:29:05.817+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='ctioga'/><title type='text'>Process substitution is cool !</title><content type='html'>I've finally found some time to work on &lt;a href="http://sciyag.rubyforge.org/ctioga"&gt;ctioga&lt;/a&gt; again ! My main problem there is that I keep adding new features without ever bothering to document them... One of my main concerns is therefore to find out about the list of command-line switches that are not documented in the manual page. I've just written a neat shell one-liner that precisely does that:&lt;/p&gt;
&lt;pre&gt;
diff &lt;(man -a -l $HOME/SciYAG/ctioga/doc/ctioga.1 | \
  egrep -o -- '--[a-z0-9-]+' | sort | uniq) \
  &lt;(ctioga --help | egrep -o -- '--[][a-z0-9-]+' | \
  sort | uniq) | colordiff | less -R
&lt;/pre&gt;
&lt;p&gt;(of course, I broke it into lines for clarity). It is based on process substitution, a shell trick that lets you use the output/input of a shell command exactly as a file on command line. Neat ! The trouble is, replacing the &lt;code&gt;colordiff...&lt;/code&gt; part by &lt;code&gt;| egrep '^&gt;' | wc&lt;/code&gt; tells me there are 65 undocumented features... Lots of work in perspective, and I'm not sure I'll do it all before the 1.9 release...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-6893856150527254550?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/6893856150527254550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=6893856150527254550' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/6893856150527254550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/6893856150527254550'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2009/01/process-substitution-is-cool.html' title='Process substitution is cool !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-4736590455492301780</id><published>2008-11-22T23:29:00.004+01:00</published><updated>2011-02-06T17:25:22.309+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Doxygen and Ruby...</title><content type='html'>I've been using &lt;a href="http://www.stack.nl/~dimitri/doxygen/"&gt;Doxygen&lt;/a&gt; for a while now, and, no surprises, I find it fantastic ! The only thing that is really missing there is a decent support for Ruby... Allright, Ruby already has a documentation system, &lt;code&gt;rdoc&lt;/code&gt;, but using only one for everything has its charms, and &lt;code&gt;Doxygen&lt;/code&gt; is doubtlessly much more evolved than &lt;code&gt;rdoc&lt;/code&gt;. Maybe when I have time, I'll have a look at writing it. (but that won't be before a &lt;strong&gt;long&lt;/strong&gt; time...).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I finally &lt;a href="http://vince-debian.blogspot.com/2011/02/doxygen-for-ruby-first-working-draft.html"&gt;had some time&lt;/a&gt; to write and publish this patch. It is available on &lt;a href="http://github.com/fourmond/doxygen-ruby-patch"&gt;github&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-4736590455492301780?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/4736590455492301780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=4736590455492301780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4736590455492301780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4736590455492301780'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/11/doxygen-and-ruby.html' title='Doxygen and Ruby...'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-5312849309130367868</id><published>2008-10-14T22:21:00.004+02:00</published><updated>2008-10-14T22:30:31.204+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scm'/><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Another bzr2git example</title><content type='html'>Today, I tried to switch one of my personal repositories for debian-related scripts from &lt;code&gt;bzr&lt;/code&gt; to &lt;code&gt;git&lt;/code&gt;, just like &lt;a href="http://vince-debian.blogspot.com/2008/10/pmount-switching-to-git.html"&gt;I've done for pmount&lt;/a&gt;. The trick was that this time, I wanted to only move a &lt;em&gt;part&lt;/em&gt; of the repository, not the full repository. I had only been working before with CVS and SVN who have the idea of modules, which is not the case for &lt;code&gt;bzr&lt;/code&gt; or &lt;code&gt;git&lt;/code&gt;. So I made the mistake of using a single &lt;code&gt;bzr&lt;/code&gt; for several projects, which I realize now is not a very good idea...&lt;/p&gt;
&lt;p&gt;In any case, I managed to drop some parts and here is how I did it; the trick was precisely to use SVN as an intermediate storage medium, using the following configurations files. First, &lt;code&gt;bzr2svn.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
[DEFAULT]
verbose = True
patch-name-format = ""

[project]
source = bzr:source
target = svn:target
start-revision = INITIAL
state-file = tailor.state

[bzr:source]
repository = /home/vincent/debian-devel/bzr/scripts

[svn:target]
repository = file:///tmp/testtai
module = biniou
&lt;/pre&gt;
&lt;p&gt;and &lt;code&gt;svn2git.conf&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;
[DEFAULT]
verbose = True
patch-name-format = ""

[project]
source = svn:source
target = git:target
start-revision = INITIAL
root-directory = /home/vincent/tmp/debian-mr-copyright-mode
state-file = tailor.state

[svn:source]
repository = file:///tmp/testtai
module = biniou/debian-mr-copyright-mode

[git:target]
git-command=/usr/bin/git
&lt;/pre&gt;
&lt;p&gt;Then, all that is left to do is to run &lt;a href="http://progetti.arstecnica.it/tailor/wiki"&gt;tailor&lt;/a&gt; on the resulting configuration files:&lt;/p&gt;
&lt;pre&gt;
~ tailor -D -c bzr2svn.conf
~ tailor -D -c svn2git.conf
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-5312849309130367868?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/5312849309130367868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=5312849309130367868' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5312849309130367868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5312849309130367868'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/10/another-bzr2git-example.html' title='Another bzr2git example'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3737026648475157683</id><published>2008-10-14T01:08:00.002+02:00</published><updated>2008-10-14T01:12:10.728+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><title type='text'>Sanitizing bad UTF-8</title><content type='html'>I've hit a problem recently where &lt;a href="http://statsvn.sf.net"&gt;statsvn&lt;/a&gt; does not manage to generate statistics on one of my repositories. After investigation, it turned out that there are some raw &lt;code&gt;latin1&lt;/code&gt; sequences in the XML log file (from a conversion from latin to UTF-8 long time ago), and that makes logfile parsing fail. To sanitize this, I use the following filter:&lt;/p&gt;
&lt;pre&gt;
iconv -c -f UTF-8 -t UTF-8
&lt;/pre&gt;
&lt;p&gt;This way, obnoxious sequences are dropped and processing can go on. (or, at least, could go on if it was not failing just a little later with a Null pointer exception...).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3737026648475157683?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3737026648475157683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3737026648475157683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3737026648475157683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3737026648475157683'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/10/sanitizing-bad-utf-8.html' title='Sanitizing bad UTF-8'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-2902393456611661857</id><published>2008-10-09T23:51:00.006+02:00</published><updated>2008-10-09T23:57:10.128+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>pmount switching to git</title><content type='html'>I've been neglecting &lt;a href="http://pmount.alioth.debian.org"&gt;pmount&lt;/a&gt; for such a long time I feel ashamed about it. Thanks to &lt;code&gt;tailor&lt;/code&gt; and a neat &lt;a href="http://www.somethingsimilar.com/wordpress/2008/05/01/moving-from-bzr-to-git-or-tailor-is-so-awesome-i-cream-my-pants/"&gt;post&lt;/a&gt;, I've just switched it to a git repository at &lt;code&gt;git://git.debian.org/git/pmount/pmount.git&lt;/code&gt; to get more work done (I don't like &lt;code&gt;bzr&lt;/code&gt; too much in the end, don't flame me, it's just a matter of personal taste...). I hope that I'll be able to reduce the amazing number of bugs that have accumulated there...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-2902393456611661857?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/2902393456611661857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=2902393456611661857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/2902393456611661857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/2902393456611661857'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/10/pmount-switching-to-git.html' title='pmount switching to git'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-8076220470521589576</id><published>2008-09-18T21:13:00.003+02:00</published><updated>2008-09-18T21:23:57.425+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><title type='text'>pdfcrop vs pdfnup --trim</title><content type='html'>I make heavy use of pdfcrop (the version by Heiko Oberdiek included in texlive) for printing, as it allows to remove all the white spaces around the text before nupping and printing. However, with recent &lt;code&gt;ghostscript&lt;/code&gt;, the bounding box detection is dreadfully slow, anything from one to ten seconds for a single page ! When you have a 60 pages article to print, it can be quite tedious...&lt;/p&gt;
&lt;p&gt;Well, I've just discovered that the &lt;code&gt;--trim&lt;/code&gt; option of &lt;code&gt;pdfnup&lt;/code&gt; can do very similar things too. It removes a given amount of margins on the side, with the syntax 'left bottom right top'. Most of the time, a well-thought &lt;code&gt;pdfnup --trim ...&lt;/code&gt; will work as well as &lt;code&gt;pdfcrop&lt;/code&gt; while in the meantime being much faster...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-8076220470521589576?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/8076220470521589576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=8076220470521589576' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8076220470521589576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8076220470521589576'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/09/pdfcrop-vs-pdfnup-trim.html' title='pdfcrop vs pdfnup --trim'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-8121932985340640332</id><published>2008-08-19T14:00:00.003+02:00</published><updated>2008-08-19T14:07:34.452+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='ctioga'/><title type='text'>What ctioga is missing</title><content type='html'>I haven't posted for a long while about &lt;a href="http://sciyag.rubyforge.org/ctioga"&gt;ctioga&lt;/a&gt;, but that does not mean that development has stopped. It goes on, and features get added basically every single time I need them. Recent additions make it possible to tune a little more the look of the legends and add pure text lines in them.&lt;/p&gt;
&lt;p&gt;I've however realized that now, what &lt;a href="http://sciyag.rubyforge.org/ctioga"&gt;ctioga&lt;/a&gt; is missing the most is real flexibility over the coordinates. For now, all coordinate positions are either relative to the frame (such as for &lt;code&gt;--inset&lt;/code&gt;) or to the graph (for &lt;code&gt;--draw&lt;/code&gt;). What I really wish is a way to mix all kind of coordinates: real size (&lt;code&gt;1cm&lt;/code&gt;), frame position and graph position. That will require quite a fair deal of work, of course, but that shouldn't be too difficult... I'll go on posting about it here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-8121932985340640332?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/8121932985340640332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=8121932985340640332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8121932985340640332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8121932985340640332'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/08/what-ctioga-is-missing.html' title='What ctioga is missing'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1557529539245958382</id><published>2008-08-01T19:41:00.002+02:00</published><updated>2008-08-01T19:43:42.124+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>CivCTP does not work with 2.6.25 kernels</title><content type='html'>Well, yes, I'm still playing old games like Civilization Call to Power, because I like... And I've recently had troubles getting it to play on a Debian/sid machine with a 2.6.25 kernel. I seemed to remember it was working fine before that, so I insisted, to the point that I switched back to a 2.6.18 kernel... And that worked ! I don't know what did change, but that is a weird bug indeed...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1557529539245958382?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1557529539245958382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1557529539245958382' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1557529539245958382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1557529539245958382'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/08/civctp-does-not-work-with-2625-kernels.html' title='CivCTP does not work with 2.6.25 kernels'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1116973389793539193</id><published>2008-05-09T22:07:00.005+02:00</published><updated>2008-05-10T23:05:17.908+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>My lastest fight with udev...</title><content type='html'>&lt;b&gt;Important note: &lt;/b&gt;
This post has been modified according to a private remark from Marco d'Itri, thanks to him for his explanations !
&lt;/p&gt;
&lt;p&gt;I've been trying for a very long while to learn to write &lt;code&gt;udev&lt;/code&gt; rules, but I've mostly been unsuccessful, or rather, successful by chance, which is hardly better, as it implies no understanding whatsoever of what I'm doing.&lt;/p&gt;
&lt;p&gt;My game, today, was to create a symlink for a loop device (&lt;code&gt;loop7&lt;/code&gt;) and set the device's group to &lt;code&gt;cdrom&lt;/code&gt; (I might elaborate some time later why I need that). So, here is what I learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;at least for the &lt;code&gt;GROUP=&lt;/code&gt; directive, the latest item in the &lt;code&gt;/etc/udev/rules.d&lt;/code&gt; directory rules&lt;/li&gt;
&lt;li&gt;to test the modifications, the best thing is to generate a synthetic &lt;code&gt;add&lt;/code&gt; using the following snippet:
&lt;pre&gt;
echo add &gt; /sys/block/loop7/uevent
&lt;/pre&gt;
Many thanks to Marco d'Itri for this information !
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With that in mind, the following snippet worked for me, under the name &lt;code&gt;40-private-loop.rules&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;
KERNEL=="loop7", SYMLINK="videoloop", GROUP="cdrom"
&lt;/pre&gt;
&lt;p&gt;Enjoy !&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1116973389793539193?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1116973389793539193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1116973389793539193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1116973389793539193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1116973389793539193'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/05/my-lastest-fight-with-udev.html' title='My lastest fight with udev...'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-9190661420233154905</id><published>2008-05-03T09:48:00.003+02:00</published><updated>2008-05-03T09:53:01.297+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>vegastrike finally made it to testing !!</title><content type='html'>There you go, this is a celebration day, &lt;a href="http://vegastrike.sf.net"&gt;vegastrike&lt;/a&gt; has finally &lt;a href="http://packages.qa.debian.org/v/vegastrike/news/20080502T223932Z.html"&gt;migrated to testing &lt;/a&gt; ! Vegastrike basically never was in testing, excepted apparently by mistake last year... Quite a fair amount of work, I'd say !&lt;/p&gt;
&lt;p&gt;Well, now, I'll be able to package the official 0.5 release and take care of excessive dependencies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-9190661420233154905?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/9190661420233154905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=9190661420233154905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9190661420233154905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9190661420233154905'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/05/vegastrike-finally-made-it-to-testing.html' title='vegastrike finally made it to testing !!'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-2383164851747947210</id><published>2008-05-01T09:24:00.002+02:00</published><updated>2008-05-01T09:31:57.916+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><title type='text'>PDF conversion to grayscale</title><content type='html'>I had some trouble finding out how to convert a color PDF to a grayscale one. I found a &lt;a href="http://ubuntuforums.org/showthread.php?t=379013"&gt;post&lt;/a&gt; on an Ubuntu forum giving the following recipe:&lt;/p&gt;
&lt;pre&gt;
pdf2ps -sDEVICE=psgray original.odf
ps2pdf original.ps new.pdf
&lt;/pre&gt;
&lt;p&gt;This works, but this has the unpleasant side effect to increase the size of the PDF and to lower the quality (for a reason which escapes me). So I looked again in the magic &lt;a href="http://pages.cs.wisc.edu/~ghost/doc/cvs/Ps2pdf.htm#Options"&gt;pdfwrite parameters&lt;/a&gt;, and I came up with the following solution, which works on my box (though the above page suggests it shouldn't):&lt;/p&gt;
&lt;pre&gt;
gs -sOutputFile=biniou.pdf -sDEVICE=pdfwrite \
  -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray \
  -dCompatibilityLevel=1.4 Plot.pdf &lt; /dev/null
&lt;/pre&gt;
&lt;p&gt;This works fine, does not lower the quality of the produced PDF and in the case I tried even made it smaller...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-2383164851747947210?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/2383164851747947210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=2383164851747947210' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/2383164851747947210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/2383164851747947210'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/05/pdf-conversion-to-grayscale.html' title='PDF conversion to grayscale'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-5188388522603289064</id><published>2008-04-07T21:42:00.004+02:00</published><updated>2008-04-07T21:52:20.682+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='rants'/><title type='text'>Please, pretty please, do not group patches by files, but by topic !</title><content type='html'>I'm currently working on putting back &lt;a href="http://packages.qa.debian.org/v/vegastrike.html"&gt;vegastrike&lt;/a&gt; into shape, bringing slightly more recent code (only three years after the last sourceful upload). And I'm fighting with patches (a good dozen), trying to see what does not apply anymore and what still does, why some patch was written in the first place... I have two requests to the community about that (and, please, do flame me if you think differently ;-)...):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Please do not group patches by file, but by topic: if a patch modifies the name of a save directory, let it be the only patch to do that, even if it modifies files touched by other patches ! It is very annoying to have to go through the patches trying to see which hunk of which patch does what&lt;/li&gt;
&lt;li&gt;As an extension of the first request, please document why patches are there in the first place: a small explanation is very helpful to determine if one needs to fight to refresh the patch and understand it, or if this is a minor, long-gone problem... Of course, you can only give meaningful description if you group the patches by topic.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Great thanks to all patch writers that think about the ones that could possibly follow them !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-5188388522603289064?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/5188388522603289064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=5188388522603289064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5188388522603289064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5188388522603289064'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/04/please-pretty-please-do-not-group.html' title='Please, pretty please, do not group patches by files, but by topic !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3635849423805903823</id><published>2008-04-03T21:41:00.004+02:00</published><updated>2008-04-03T21:52:44.926+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>mk-build-deps: create a dummy package depending on a package's build-deps</title><content type='html'>When I work on a package, I often find that I want to have build-deps installed in a way that I remember why I did install them in the first place. &lt;code&gt;apt-get build-dep&lt;/code&gt; is not a proper solution for me for two reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It marks the packages as automatically installed (at least, last time I checked, it did), which does not play nice with &lt;code&gt;aptitude&lt;/code&gt;, who wants to remove them immediately. Marking them manually installed would not be a solution either (since I would not remember why I did install them).&lt;/li&gt;
&lt;li&gt;It does not work for package whose build-deps changed since the last upload (or that were never uploaded).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As I'm starting to work on &lt;a href="http://packages.qa.debian.org/v/vegastrike.html"&gt;vegastrike&lt;/a&gt;, who's in great need of tender care, I though time had to find a more decent solution. The answer is &lt;a href="http://people.debian.org/~fourmond/mk-build-deps"&gt;mk-build-deps&lt;/a&gt;, a small Perl script that takes a control file or a package name and uses &lt;code&gt;equivs&lt;/code&gt; to create a dummy package depending on its build-deps. Pretty useful (for me at least). Maybe it would be worth including in the &lt;code&gt;devscipts&lt;/code&gt; package ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3635849423805903823?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3635849423805903823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3635849423805903823' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3635849423805903823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3635849423805903823'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/04/mk-build-deps-create-dummy-package.html' title='mk-build-deps: create a dummy package depending on a package&apos;s build-deps'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-2102350877134626300</id><published>2008-04-02T12:36:00.004+02:00</published><updated>2008-04-02T12:55:01.400+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rants'/><title type='text'>OOXML: Microsoft did win...</title><content type='html'>Bad news for the OpenSource/FreeSoftware community (or whatever you would wish to call it): &lt;a href="http://www.iso.org/iso/pressrelease.htm?refid=Ref1123"&gt;ISO has just accepted&lt;/a&gt; Microsoft's &lt;a href="http://en.wikipedia.org/wiki/Office_Open_XML"&gt;Office Open XML&lt;/a&gt; file formats (see the suble alteration compared to a well known concurrent). Great.  Even worse for me, it is apparently thanks to the French organization &lt;a href="http://www.afnor.fr/portail.asp"&gt;AFNOR&lt;/a&gt;. Fantastic. Now, we have two XML "office open document" formats accepted by ISO. That sounds so amazingly stupid that it's hard to believe... Just for information, the &lt;a href="http://en.wikipedia.org/wiki/OpenDocument"&gt;OpenDocument&lt;/a&gt; format, (the one from OpenOffice) has been accepted by ISO hardly more than a year ago !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-2102350877134626300?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/2102350877134626300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=2102350877134626300' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/2102350877134626300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/2102350877134626300'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/04/ooxml-microsoft-did-win.html' title='OOXML: Microsoft did win...'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1698774310804685717</id><published>2008-03-29T02:51:00.003+01:00</published><updated>2008-03-29T03:08:18.606+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Thoughts about statsvn</title><content type='html'>Some time ago, I &lt;a href="http://packages.qa.debian.org/s/statsvn.html"&gt;packaged&lt;/a&gt; &lt;a href="http://www.statsvn.org"&gt;statsvn&lt;/a&gt;, a pretty neat SVN repository analysis tool based on &lt;a href="http://statcvs.sourceforge.net/"&gt;statcvs&lt;/a&gt;. To be truthful, I was quite amazed that no one had packaged it before, as I find it quite handy. It is currently in &lt;code&gt;contrib&lt;/code&gt;, as it depends on &lt;code&gt;statcvs&lt;/code&gt; that depends on &lt;code&gt;libjfreechart-java&lt;/code&gt; that currently only works with Sun's java on AMD64 machines (at least, see the &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=459281"&gt;bug report&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;A few comments about it: though it can work fine with remote repositories, it is highly recommended that you either take down the number of &lt;code&gt;-threads&lt;/code&gt;, as many repositories out there do not like too many concurrent ssh accesses, or you &lt;code&gt;rsync&lt;/code&gt; the whole repository to your local hard drive and work from a checkout of the local copy, as it will burn much less bandwidth and server time.&lt;/p&gt;
&lt;p&gt;Of course, statistics of this kind are not to be taken too seriously, as they can be seriously biased by commit mistakes for instance, but they give the impression that work is being done, and that is pleasant ;-)...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1698774310804685717?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1698774310804685717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1698774310804685717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1698774310804685717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1698774310804685717'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/03/thoughts-about-statsvn.html' title='Thoughts about statsvn'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-9134969513412838900</id><published>2008-03-25T18:31:00.007+01:00</published><updated>2008-03-25T21:58:37.401+01: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='wine'/><title type='text'>Flashing a Sony DVD burner</title><content type='html'>I'm the happy owner of a Sony DRU-800A DVD burner, and I wanted to upgrade the firmware, as I had some little burning problems I hoped the upgrade would fix. Of course, Sony's website provides only Win32 flashers. They run under wine, but they don't actually do anything. Apparently, the way these win32 ioctls are implemented rely on the old &lt;code&gt;hdc=scsi&lt;/code&gt; deprecated kernel interface. The trick is that we need a 2.4 kernel to get it working properly. So here are the steps I took:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Get a bootable &lt;code&gt;sarge&lt;/code&gt; with a 2.4 kernel, and boot it with &lt;code&gt;hdc=scsi&lt;/code&gt;(&lt;code&gt;hdc&lt;/code&gt; is the device name of your burner). You might need to compile the kernel yourself for it to work properly. In any case, you should see something like that in the output of &lt;code&gt;dmesg&lt;/code&gt;
&lt;pre&gt;
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
  Vendor: PLEXTOR   Model: DVD-ROM PX-130A   Rev: 1.02
  Type:   CD-ROM                             ANSI SCSI revision: 02
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
sr0: scsi3-mmc drive: 0x/50x cd/rw xa/form2 cdda tray
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Make sure &lt;code&gt;wine&lt;/code&gt; is installed, the sarge version worked fine for me (more recent versions compiled by hand did not).&lt;/li&gt;
&lt;li&gt;Make sure there is an appropriate &lt;code&gt;/etc/fstab&lt;/code&gt; entry for the SCSI CDROM device. I have something like:
&lt;pre&gt;
/dev/sr0        /media/dvd              auto    defaults        
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Make sure there is an appropriate device symlink in &lt;code&gt;/root/.wine/dosdevices&lt;/code&gt;. With the above &lt;code&gt;fstab&lt;/code&gt; entry, the following would work:
&lt;pre&gt;
ln -s /media/dvd d:
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Run the flasher as root (giving write permissions for all SCSI devices to a normal user does not work)&lt;/li&gt;
&lt;li&gt;Reboot (to your normal system), and check you firmware version number with
&lt;pre&gt;
wodim -scanbus
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This did work fine for the aforementioned DVD burner. It did not get my DVD reader to get flashed, though. But it's worth a try, and once the sarge boot is setup, you won't lose too much time.&lt;/p&gt;
&lt;p&gt;As a conclusion, rush to get a sarge boot before lenny goes out and sarge is removed from the debian mirrors !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-9134969513412838900?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/9134969513412838900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=9134969513412838900' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9134969513412838900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9134969513412838900'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/03/flashing-sony-dvd-burner.html' title='Flashing a Sony DVD burner'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1270594932568455216</id><published>2008-03-22T02:57:00.003+01:00</published><updated>2008-03-22T03:18:26.143+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>Improvements for the machine-readable debian/copyright emacs mode</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BDEUZ9HplLg/R-RoKuyEWxI/AAAAAAAAADA/ut5B6qOk04k/s1600-h/debian-mr-file-coverage.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_BDEUZ9HplLg/R-RoKuyEWxI/AAAAAAAAADA/ut5B6qOk04k/s200/debian-mr-file-coverage.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5180380004948925202" /&gt;&lt;/a&gt;
Since the &lt;a href="http://vince-debian.blogspot.com/2008/03/emacs-mode-for-machine-readable.html"&gt;last post&lt;/a&gt;, I have significantly improved &lt;code&gt;debian-mr-copyright-mode&lt;/code&gt;, that now provides an interactive function, &lt;code&gt;debian-mr-copyright-scan-files&lt;/code&gt; that shows which files are covered by which clause of the &lt;code&gt;debian/copyright&lt;/code&gt; file. I've also significantly improved my understanding of font lock and emacs lisp in general...&lt;/p&gt;
&lt;p&gt;
As a demonstration, the attached picture represents the results of &lt;code&gt;debian-mr-copyright-scan-files&lt;/code&gt; on the &lt;code&gt;monsterz&lt;/code&gt; source package (Sam's &lt;a href="http://wiki.debian.org/Proposals/CopyrightFormat#head-c256fe531b064e33a6dc5f68d9c8d6b991cf2710"&gt;original example&lt;/a&gt;). The output clearly shows that some files are not covered yet...&lt;/p&gt;
&lt;p&gt;You can get the emacs mode &lt;a href="http://people.debian.org/~fourmond/debian-mr-copyright-mode.el"&gt;there&lt;/a&gt;. Its is starting to be good, but of course, many more improvements are still planned - in particular, quotes for files probably don't work yet. By the way, &lt;code&gt;imenu&lt;/code&gt; now works. A debian package should probably come soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1270594932568455216?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1270594932568455216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1270594932568455216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1270594932568455216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1270594932568455216'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/03/improvements-for-machine-readable.html' title='Improvements for the machine-readable debian/copyright emacs mode'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BDEUZ9HplLg/R-RoKuyEWxI/AAAAAAAAADA/ut5B6qOk04k/s72-c/debian-mr-file-coverage.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-9097543719758411531</id><published>2008-03-15T02:15:00.006+01:00</published><updated>2008-03-22T03:19:40.406+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>Emacs mode for machine-readable copyrights</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BDEUZ9HplLg/R9skTEBlg-I/AAAAAAAAAC4/999cp2iV7gI/s1600-h/debian-mr-copyright-mode.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_BDEUZ9HplLg/R9skTEBlg-I/AAAAAAAAAC4/999cp2iV7gI/s200/debian-mr-copyright-mode.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5177772106509026274" /&gt;&lt;/a&gt;
I've been thinking that something that might help a wider adoption of the &lt;a href="http://wiki.debian.org/Proposals/CopyrightFormat"&gt;machine-readable copyright format&lt;/a&gt; is a proper emacs major mode for it. Well, at least, it does for me... So I started to write one. It is loosely based on &lt;code&gt;debian-control-mode&lt;/code&gt;, although there is hardly any code left from it now. It only features syntax highlighting for now (including warning for licenses which were not on the &lt;a href="http://wiki.debian.org/Proposals/CopyrightFormat"&gt;wiki page&lt;/a&gt; at the time of the writing, or were marked as needing more discussions) but, after all, this is only my first emacs major mode...&lt;/p&gt;
&lt;p&gt;The code can either be downloaded &lt;a href="http://people.debian.org/~fourmond/debian-mr-copyright-mode.el"&gt;there&lt;/a&gt;, or from my &lt;code&gt;bzr&lt;/code&gt; repository, in the &lt;code&gt;debian-mr-copyright-mode&lt;/code&gt; directory&lt;/p&gt;
&lt;pre&gt;
bzr branch http://people.debian.org/~fourmond/bzr/scripts
&lt;/pre&gt;
&lt;p&gt;No debian package for that for now, as anyways it really should integrate &lt;code&gt;dpkg-dev&lt;/code&gt; when it has matured somehow. Hope this helps !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-9097543719758411531?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/9097543719758411531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=9097543719758411531' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9097543719758411531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9097543719758411531'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/03/emacs-mode-for-machine-readable.html' title='Emacs mode for machine-readable copyrights'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BDEUZ9HplLg/R9skTEBlg-I/AAAAAAAAAC4/999cp2iV7gI/s72-c/debian-mr-copyright-mode.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1407882607295209007</id><published>2008-03-09T10:37:00.004+01:00</published><updated>2008-03-09T10:53:55.766+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ctioga'/><title type='text'>ctioga's non-linear axes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BDEUZ9HplLg/R9Ow30Blg9I/AAAAAAAAACw/JM426ukQOVE/s1600-h/ctioga-nonlinear-axis.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_BDEUZ9HplLg/R9Ow30Blg9I/AAAAAAAAACw/JM426ukQOVE/s200/ctioga-nonlinear-axis.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5175674869683422162" /&gt;&lt;/a&gt;
Much as been done on &lt;a href="http://sciyag.rubyforge.org/ctioga"&gt;ctioga&lt;/a&gt; since the last release, not even two weeks ago: small bug fixes, tangents improvements, the rebirth of a &lt;code&gt;--subplot&lt;/code&gt; option, a saner framework for plot styles... But the most significant improvement in my opinion is the possibility to make non-linear axes: you just need to provide a  two-ways transformation between the standard coordinates and the axis  coordinates, and &lt;code&gt;ctioga&lt;/code&gt; does the rest:&lt;/p&gt;
&lt;pre&gt;
ctioga -N --xpdf --math --math-xrange 2:8 \
  'sin(x)' --xaxis bottom --new-axis biniou top \
  --axis-function biniou 1/x 1/x \
  --lines-color biniou Gray --no-title
&lt;/pre&gt;
&lt;p&gt;As you can see, I did profit to add the possibility of background lines corresponding to the axes' major ticks. The only real trick that is left is to find a decent way to partition the target segment so that they ticks are "natural" (not 0.34759, for instance) and reasonably equally spaced. I thought other plotting programs had dealt with this, but in fact, that doesn't seem to be the case: I'll have to do that myself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1407882607295209007?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1407882607295209007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1407882607295209007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1407882607295209007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1407882607295209007'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/03/ctiogas-non-linear-axes.html' title='ctioga&apos;s non-linear axes'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BDEUZ9HplLg/R9Ow30Blg9I/AAAAAAAAACw/JM426ukQOVE/s72-c/ctioga-nonlinear-axis.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-2158844381110248936</id><published>2008-03-05T01:15:00.004+01:00</published><updated>2008-03-05T01:24:04.998+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='ctioga'/><title type='text'>Uniform probability does not apply to real life !</title><content type='html'>I've always been puzzled that, quite often, a package is totally silent for a long while (say a month or two), and suddenly, you get two or three bug reports the very same day, distant from any release or transition to testing. I've seen that mostly with &lt;a href="http://packages.qa.debian.org/libq/libqt4-ruby.html"&gt;libqt4-ruby&lt;/a&gt; and 
&lt;a href="http://packages.qa.debian.org/p/pmount.html"&gt;pmount&lt;/a&gt;. This seems to be rather general: it really looks like events of our lives don't even remotely follow uniform probabilities.&lt;/p&gt;

&lt;p&gt; I've had a recent confirmation with &lt;a href="http://sciyag.rubyforge.org/ctioga"&gt;ctioga&lt;/a&gt;, a project of my own. I just need to decide to release a new version to realize just afterwards that I've got many more features to add (not less than 20 significants commits since the release a week ago !)... Life is not linear ! (and I won't complain).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-2158844381110248936?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/2158844381110248936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=2158844381110248936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/2158844381110248936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/2158844381110248936'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/03/uniform-probability-does-not-apply-to.html' title='Uniform probability does not apply to real life !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-4542762306560269595</id><published>2008-02-27T00:49:00.003+01:00</published><updated>2008-02-27T00:56:24.922+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><title type='text'>Today's dirty command-line trick: progress statistics for dd</title><content type='html'>Who has already been using &lt;code&gt;dd&lt;/code&gt; for endless data transfer without really knowing what is happening ? That is rather annoying. Sure, when the target is a normal file, you can always use&lt;/p&gt;
&lt;pre&gt;
watch ls -l target
&lt;/pre&gt;
&lt;p&gt;But, that won't tell you the rate of transfer, and it won't work if the target is a special file (device, pipe, ...). Fortunately, &lt;code&gt;dd&lt;/code&gt; accepts the &lt;code&gt;USR1&lt;/code&gt; signal to print out some small statistics... Well, combining that with the &lt;code&gt;watch&lt;/code&gt; tricks gives this:&lt;/p&gt;
&lt;pre&gt;
watch killall -USR1 dd
&lt;/pre&gt;
&lt;p&gt;And there you go, &lt;code&gt;dd&lt;/code&gt; is now regularly printing out statistics. Pretty neat, isn't it ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-4542762306560269595?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/4542762306560269595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=4542762306560269595' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4542762306560269595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4542762306560269595'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/02/todays-dirty-command-line-trick.html' title='Today&apos;s dirty command-line trick: progress statistics for dd'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3291485041277988716</id><published>2008-02-20T16:21:00.005+01:00</published><updated>2008-02-20T18:10:10.261+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><title type='text'>pdfnup and page size</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BDEUZ9HplLg/R7xdFDCV9_I/AAAAAAAAACo/gAeCMWeqiLM/s1600-h/ctioga-array-example.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_BDEUZ9HplLg/R7xdFDCV9_I/AAAAAAAAACo/gAeCMWeqiLM/s200/ctioga-array-example.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5169108813610350578" /&gt;&lt;/a&gt;
I use a combination of &lt;a href="http://www.accesspdf.com/pdftk/"&gt;pdftk&lt;/a&gt; and &lt;code&gt;pdfnup&lt;/code&gt;, from the &lt;a href="http://www.warwick.ac.uk/go/pdfjam"&gt;pdfjam&lt;/a&gt; package to arrange (PDF) graphs produced by &lt;a href="http://sciyag.rubyforge.org/ctioga"&gt;ctioga&lt;/a&gt; into an array for printing. However, I find that a simple&lt;/p&gt;
&lt;pre&gt;
pdfnup --nup 3x3 concatenated_graphs.pdf
&lt;/pre&gt;
&lt;p&gt;does not produce an A4 output (even with &lt;code&gt;--paper a4paper&lt;/code&gt;), but a PDF who has the same size as individual graphs. Painful. It did take me long to realize it is a &lt;b&gt;feature&lt;/b&gt; of &lt;code&gt;pdfnup&lt;/code&gt;, who asks &lt;code&gt;pdfTeX&lt;/code&gt; to have the paper size adjusted to that of the input when the layout is &lt;b&gt;symmetric&lt;/b&gt; and no orientation has been provided. To disable that, and get a real A4 paper, specify the orientation:&lt;/p&gt;
&lt;pre&gt;
pdfnup --orient portrait --nup 3x3 concatenated_graphs.pdf
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3291485041277988716?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3291485041277988716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3291485041277988716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3291485041277988716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3291485041277988716'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/02/pdfnup-and-page-size.html' title='pdfnup and page size'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BDEUZ9HplLg/R7xdFDCV9_I/AAAAAAAAACo/gAeCMWeqiLM/s72-c/ctioga-array-example.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-2584724752045109831</id><published>2008-02-17T16:15:00.004+01:00</published><updated>2008-02-17T16:27:27.673+01: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='rants'/><title type='text'>Virgin Megastore France doesn't like Iceweasel</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BDEUZ9HplLg/R7hPzTCV9-I/AAAAAAAAACg/JulQyoaRHOA/s1600-h/virgin-doesnt-like-iceweasel.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_BDEUZ9HplLg/R7hPzTCV9-I/AAAAAAAAACg/JulQyoaRHOA/s200/virgin-doesnt-like-iceweasel.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5167968315109668834" /&gt;&lt;/a&gt;
I wanted to have a look at the French Virgin Megastore website, and I got the attached image. It says: &lt;/p&gt;
&lt;quote&gt;The version of your browser does not allow browsing this site under Linux. You must install Firefox.&lt;/quote&gt; &lt;p&gt;Well, I don't want to know how they are detecting the "correctness" of the browser (after all, this is Iceweasel, so it is Firefox), or why they are so stupid as to forbid browsing if the "correct" navigator is not used, but, well, they've just lost a customer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-2584724752045109831?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/2584724752045109831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=2584724752045109831' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/2584724752045109831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/2584724752045109831'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/02/virgin-megastore-france-doesnt-like.html' title='Virgin Megastore France doesn&apos;t like Iceweasel'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BDEUZ9HplLg/R7hPzTCV9-I/AAAAAAAAACg/JulQyoaRHOA/s72-c/virgin-doesnt-like-iceweasel.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-8521288367883956963</id><published>2008-02-13T20:13:00.004+01:00</published><updated>2008-02-13T20:49:26.103+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='wine'/><title type='text'>How to shut wine audio output</title><content type='html'>As I've mentioned before, I play to Morrowind (III) using &lt;a href="http://winehq.org"&gt;Wine&lt;/a&gt;. Fine. Thanks to a nice guy on the &lt;a href="http://appdb.winehq.org/commentview.php?iAppId=1015&amp;iVersionId=3383&amp;iThreadId=30061"&gt;AppDB Forum&lt;/a&gt;, I found out that what was causing Morrowind to segfault was simply that I had not set any audio device in my configuration... So I did with &lt;code&gt;winecfg&lt;/code&gt;, and it worked, and I was quite delighted.&lt;/p&gt;
&lt;p&gt;So far, nothing fantastic. It so happens that I hate to play any game with the game's music/sounds/voices, as I prefer to be quietly listening to music of my taste (I have delicate ears). As in any other game, you can switch them off in Morrowind, which is what I immediately did. However, it happens that some sounds - so far, only the sound corresponding to a shield blocking an attack (a graceful and delicate sound as you imagine) - go through even with all sound volumes are turned down to 0. It is annoying to the point I had to stop using the computer for listening music and falling back to my old CD player. Painful ! Or at least so it was until today, when I finally took my courage and found out how to fool &lt;code&gt;wine&lt;/code&gt; into believing it is playing sounds when in fact it is not. First step, create a &lt;a href="http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html#pcm_plugins_null"&gt;null &lt;/a&gt; ALSA output device, by adding the following to your &lt;code&gt;.asoundrc&lt;/cpde&gt;:&lt;/p&gt;
&lt;pre&gt;
# Null audio output
pcm.null {
  type null               # Null PCM
}
&lt;/pre&gt;
&lt;p&gt; Then, you need to have &lt;code&gt;wine&lt;/code&gt; use it (and only this one). For this, a quick look at the &lt;a href="http://wiki.winehq.org/UsefulRegistryKeys"&gt;Useful Registry Keys&lt;/a&gt; showed that I had to add the following to my &lt;code&gt;.wine/user.ref&lt;/code&gt; configuration file:&lt;/p&gt;
&lt;pre&gt;
[Software\\Wine\\Alsa Driver] 1202930020
"DevicePCM1"="null"
"AutoScanCards"="N"
"DeviceCount"="1"
&lt;/pre&gt;
&lt;p&gt;Just make sure &lt;code&gt;wine&lt;/code&gt; is using ALSA output, and that's all ! Morrowind plays, without sound and does not segfault ! I'll be able to listen to my music again...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt; I'm unsure about the value &lt;code&gt;1202930020&lt;/code&gt;. The best is to add the key &lt;code&gt;Software\Wine\Alsa Driver&lt;/code&gt; using &lt;code&gt;regedit&lt;/code&gt; and then edit the configuration file -- or even do everything with &lt;code&gt;regedit&lt;/code&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-8521288367883956963?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/8521288367883956963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=8521288367883956963' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8521288367883956963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8521288367883956963'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/02/how-to-shut-wine-audio-output.html' title='How to shut wine audio output'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-4386812207649918865</id><published>2008-02-08T16:12:00.000+01:00</published><updated>2008-02-08T16:48:04.962+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Microsoft advertises embedded windows under "Embedded Debian" !</title><content type='html'>&lt;img style="float:right; margin:0 0 10px 10px;" src="http://4.bp.blogspot.com/_BDEUZ9HplLg/R6xyMW1g-SI/AAAAAAAAACY/9OEHEaoZNkQ/s1600/embedded-debian-microsoft.png" alt="[embedded-debian-microsoft.png]" border=0&gt;
Few days ago, I was looking at my &lt;a href="http://gmail.com"&gt;gmail&lt;/a&gt; mails. As usual, there was a couple of ads on the right hand side of the screen (they never really bothered me before). But that day, there was something quite different: an advertisement for Microsoft under the term "Embedded Debian" ! Well, I can understand that Microsoft wants to advertise for the &lt;b&gt;keywords&lt;/b&gt; "Embedded Debian". After all, if they do provide good embedded OS services, that is only fair. But to do so with a &lt;b&gt;title&lt;/b&gt; "Embedded Debian" does not really qualify as fair use of the &lt;a href="http://debian.org"&gt;Debian&lt;/a&gt; trademark !&lt;/p&gt;
&lt;p&gt;The trouble is that this is something hard to prove, as it appears seldom and apparently randomly. When I google for the terms &lt;a href="http://www.google.com/search?q=Embedded+Debian"&gt;Embedded Debian&lt;/a&gt;, I come up around every second time with nearly the same ad, but taking to &lt;code&gt;www.microsoftembedded-de2.com&lt;/code&gt;. This domain does not appear to be connected to Microsoft anyhow (see its &lt;a href="http://www.who.is/whois-com/ip-address/microsoftembedded-de2.com/"&gt;whois&lt;/a&gt; entry). Some other people tried and never saw the ad, as I did when I looked from another computer (a Windows one, funnily). The &lt;code&gt;www.windowsembeddedsolutions.com&lt;/code&gt; link which is depicted above did only show up in my &lt;a href="http://gmail.com"&gt;gmail&lt;/a&gt; account so far. However, that domain is &lt;a href="http://www.who.is/whois-com/ip-address/windowsembeddedsolutions.com/"&gt;owned&lt;/a&gt; by Microsoft, so they can't deny this comes from them. Why, are we scaring them so much ??&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-4386812207649918865?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/4386812207649918865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=4386812207649918865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4386812207649918865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4386812207649918865'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/02/microsoft-advertises-embedded-windows.html' title='Microsoft advertises embedded windows under &quot;Embedded Debian&quot; !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BDEUZ9HplLg/R6xyMW1g-SI/AAAAAAAAACY/9OEHEaoZNkQ/s72-c/embedded-debian-microsoft.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-5168639974309327313</id><published>2008-02-06T10:06:00.000+01:00</published><updated>2008-02-06T10:25:37.077+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='wine'/><title type='text'>Wine versus Vista for gaming</title><content type='html'>Another day starting well: apparently &lt;a href="http://winehq.org"&gt;Wine&lt;/a&gt; is a &lt;a href="http://wastingtimewithmikeandari.wordpress.com/2008/01/31/linux-has-better-windows-compatibility-than-vista/"&gt;better alternative&lt;/a&gt; &lt;a href="http://games.slashdot.org/article.pl?sid=08/02/02/0236200"&gt;than Vista&lt;/a&gt; for gaming (admittedly, this guy only tested four different games, but Wine was the clear winner). Great !&lt;/p&gt;
&lt;p&gt;As for me, I finally got &lt;a href="http://www.elderscrolls.com/games/morrowind_overview.htm"&gt;Morrowind&lt;/a&gt; working under Wine, which is one of the reasons why I haven't been that active for Debian recently.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-5168639974309327313?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/5168639974309327313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=5168639974309327313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5168639974309327313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5168639974309327313'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/02/wine-versus-vista-for-gaming.html' title='Wine versus Vista for gaming'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-9033631001000301269</id><published>2008-02-05T15:01:00.000+01:00</published><updated>2008-02-05T15:18:07.170+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><title type='text'>gs saved the day again !</title><content type='html'>Some time ago, I was delighted at the &lt;a href="http://vince-debian.blogspot.com/2007/10/pdf-and-included-images.html"&gt;power of Ghostscript&lt;/a&gt;. Well, it saved the day again, with an article that didn't want to get printed. Quite naively, I always thought that doing first &lt;code&gt;pdf2ps&lt;/code&gt; (or &lt;code&gt;pdftops&lt;/code&gt;, based on &lt;a href="http://www.foolabs.com/xpdf/"&gt;Xpdf&lt;/a&gt;, that often produces smaller and nicer postscript) and then &lt;code&gt;ps2pdf&lt;/code&gt; was a good way to deal with unfriendly PDF files. But, in real, nothing is better than working without intermediates. The following produces a pretty neat PDF file:&lt;/p&gt;
&lt;pre&gt;
gs -sOutputFile=output.pdf -sDEVICE=pdfwrite \
  -dCompatibilityLevel=1.4 input.pdf &lt; /dev/null
&lt;/pre&gt;
&lt;p&gt;As side benefits, as this command also embeds postscript fonts, the output looks better in &lt;a href="http://www.foolabs.com/xpdf/"&gt;xpdf&lt;/a&gt;, and it is decently smaller !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-9033631001000301269?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/9033631001000301269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=9033631001000301269' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9033631001000301269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9033631001000301269'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/02/gs-saved-day-again.html' title='gs saved the day again !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-4002911161754304364</id><published>2008-01-25T20:51:00.000+01:00</published><updated>2008-01-26T00:32:46.912+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Creating and booting an ia32 debian system from an amd64 one</title><content type='html'>I've recently gone back to use &lt;a href="http://winehq.org"&gt;wine&lt;/a&gt; to play "old" Windows games. Unfortunately, Morrowind, the one I'd like to play - really great one, if I daresay, is not working on my computer, though  it should, according to its &lt;a href="Ahttp://appdb.winehq.org/objectManager.php?sClass=version&amp;iId=3383"&gt;AppDB page&lt;/a&gt;. I tweaked wine's configuration, but no success so far. I decided it would be worth to try from within a real IA32 environment, just to check if that could be a bug linked to this. So, today's game is to create an IA32 debian system from my own, set it up and boot it.&lt;/p&gt;

&lt;p&gt;First thing, create a &lt;code&gt;i386&lt;/code&gt; chroot using &lt;code&gt;debootstrap&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;
debootstrap --arch=i386 sid /chroots http://ftp.fr.debian.org/debian
&lt;/pre&gt;
&lt;p&gt;The target, here &lt;code&gt;/chroots&lt;/code&gt; must be the root directory of a given device -- else booting won't work. Then, you must set up a proper &lt;code&gt;/etc/fstab&lt;/code&gt; file, so it actually can mount things once you've decided to boot it.&lt;/p&gt;
&lt;p&gt;Then, for fun, I've decided to cross-compile the kernel I would be using, so, after download/extracting recent kernel source, this is what I did. First, spawn the configuration tool:&lt;/p&gt;
&lt;pre&gt;
make xconfig ARCH=i386
make -j2 ARCH=i386 
&lt;/pre&gt;
&lt;p&gt;Then, I copied the kernel images using&lt;/p&gt;
&lt;pre&gt;
cp arch/i386/boot/bzImage /chroots/boot/vmlinux
cp arch/i386/boot/compressed/vmlinux.bin /chroots/boot
&lt;/pre&gt;
&lt;p&gt;The latter is important for the &lt;code&gt;kexec&lt;/code&gt; kernel call. I also copied the kernel sources from the current system to the chroot, so as to be able to build kernel modules in the target system. Then, I did use the &lt;code&gt;kexec&lt;/code&gt; utility to boot my new kernel:&lt;/p&gt;
&lt;pre&gt;
telinit 1
kexec -l /chroots/boot/vmlinux.bin --append=root=0342
kexec -e
&lt;/pre&gt;
&lt;p&gt;And there you go !! Then, you probably need to setup new users and also configure the network (try to copy from your current config).&lt;/p&gt;
&lt;p&gt;
So I did all this, to finally realize that it didn't work any better with a full ia32 system... Pity !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-4002911161754304364?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/4002911161754304364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=4002911161754304364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4002911161754304364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4002911161754304364'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/01/creating-and-booting-ia32-debian-system.html' title='Creating and booting an ia32 debian system from an amd64 one'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3894662824029497188</id><published>2008-01-24T19:23:00.000+01:00</published><updated>2008-01-24T19:30:40.489+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>A very annoying sound bug - and a workaround</title><content type='html'>Quite some time ago, I posted a &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=400268"&gt; bug report&lt;/a&gt; against ALSA because my sound would lock from time to time. No error message from any program using the sound, but they simply hang, and nothing is to be heard. I tracked the problem down to a blocking call to a semaphore operation, for all programs that were concerned. The thing was that I could not find a way to recover from this situation until the computer was rebooted, which, admittedly, is very painful. However, I found a way to do so today: you can actually kill semaphores by hand using &lt;code&gt;ipcrm&lt;/code&gt;. If that happens, have a look in your &lt;code&gt;/proc/sysvipc/sem&lt;/code&gt; file:&lt;/p&gt;

&lt;pre&gt;
~ cat /proc/sysvipc/sem 
       key      semid perms      nsems   uid   gid  cuid  cgid      otime      ctime
   5678293     163840   660          1  1000    29  1000  1000 1201199302 1201198890
&lt;/pre&gt;

&lt;p&gt;The only semaphore listed here is the one we're interested about. Kill it with the following command-line (probably only works as root):&lt;/p&gt;

&lt;pre&gt;
~ ipcrm -S 5678293
&lt;/pre&gt;

&lt;p&gt;And then, magic ! Sound works again !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3894662824029497188?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3894662824029497188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3894662824029497188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3894662824029497188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3894662824029497188'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/01/very-annoying-sound-bug-and-workaround.html' title='A very annoying sound bug - and a workaround'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-4556959396523278629</id><published>2008-01-21T23:16:00.000+01:00</published><updated>2008-01-21T23:25:19.038+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qt4'/><title type='text'>The real limitation of Qt...</title><content type='html'>I've been posting here quite often that I like using this wonderful GUI library that is &lt;a href="http://trolltech.com/products/qt"&gt;Qt&lt;/a&gt;. I've always found it really comfortable to work with. But it looks like I've finally hit a limitation: &lt;/p&gt;
&lt;pre&gt;
[  5%] QT Wrapped File
/home/vincent/Prog/UltimateRipper/src/genericcombo.hh:26: Error: Template classes not supported by Q_OBJECT
make[2]: *** [moc_genericcombo.cxx] Error 1
make[1]: *** [CMakeFiles/ur.dir/all] Error 2
make: *** [all] Error 2
&lt;/pre&gt;
&lt;p&gt;I knew that it is technically delicate to deal with that... I hope they had found a solution. Well, pity. After all, there must be a very good reason why they wrote so much code for &lt;code&gt;QVariant&lt;/code&gt;, to provide an alternative to templates. Pity ! I'll have to go on with this class without specific signals/slots.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-4556959396523278629?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/4556959396523278629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=4556959396523278629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4556959396523278629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4556959396523278629'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/01/real-limitation-of-qt.html' title='The real limitation of Qt...'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-873487101629694606</id><published>2008-01-08T22:55:00.000+01:00</published><updated>2008-01-08T23:12:32.551+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>A bzr repository for my debian-related works</title><content type='html'>I'm always scripting quite a lot, and I always store them in SVN in my personal backed-up server. However, it is not very convenient for sharing, as it is not always on and completely locked anyway. So I thought I could rather use a &lt;a href="http://bazaar-vcs.org/"&gt;bzr&lt;/a&gt; repository on &lt;code&gt;people.debian.org&lt;/code&gt;. I did set it up yesterday. There probably will be several branches in the future, but there currently is only one:&lt;/p&gt;

&lt;pre&gt;
bzr branch http://people.debian.org/~fourmond/bzr/scripts
&lt;/pre&gt;

&lt;p&gt;
It currently contains one script, &lt;code&gt;rdebsums&lt;/code&gt; that runs debsums on one package and on all its dependencies. It is the answer to a &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=290277"&gt;wishlist bug&lt;/a&gt; I submitted long ago against &lt;code&gt;debsums&lt;/code&gt;. Enjoy !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-873487101629694606?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/873487101629694606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=873487101629694606' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/873487101629694606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/873487101629694606'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/01/bzr-repository-for-my-debian-related.html' title='A bzr repository for my debian-related works'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3220383899908531140</id><published>2008-01-05T14:23:00.001+01:00</published><updated>2008-01-05T14:41:23.897+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Find all package from a repository that install a file somewhere</title><content type='html'>As I'm trying to provide a much cleaner way to wrap java programs into scripts for Debian, I need to know how many of the package maintained by the &lt;a href="http://pkg-java.alioth.debian.org/"&gt;Debian Java Team&lt;/a&gt; install scripts in &lt;code&gt;/usr/bin/&lt;/code&gt;. I first thought that the way to go was to use &lt;a href="http://packages.debian.org/unstable/admin/apt-file"&gt;apt-file&lt;/a&gt; for doing so, running &lt;code&gt;apt-file show&lt;/code&gt; on each package found in the repository. Bad idea: it takes, say, 10 seconds to run &lt;code&gt;apt-file show&lt;/code&gt; on my machine. Mutliply that by around 600 binary packages, it takes some time.&lt;/p&gt;
&lt;p&gt;So, I wrote a script based on the same idea (using &lt;code&gt;Contents&lt;/code&gt; files, see &lt;code&gt;apt-file(1)&lt;/code&gt;) that does the both the lookup of all binary packages produced by source trees present in the current directory and looking up a pattern in the &lt;code&gt;Contents&lt;/code&gt; file. You can download it &lt;a href="http://vincent.fourmond.neuf.fr/downloads/find-packages"&gt;here&lt;/a&gt;. Typical uses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;find all binary packages generated from source tree in the current directory:
&lt;pre&gt;
find-packages
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;find all of them that install a file in &lt;code&gt;/usr/bin&lt;/code&gt;:
&lt;pre&gt;
find-packages usr/bin ~/.apt-file/ftp.fr.debian.org_debian_dists_unstable_Contents-amd64.gz
&lt;/pre&gt;
The file &lt;code&gt;~/.apt-file/ftp.fr.debian.org_..._Contents-amd64.gz&lt;/code&gt; or a similar one can be found in &lt;code&gt;apt-file&lt;/code&gt;'s cache.
&lt;/ul&gt;
&lt;p&gt;
Meanwhile, out of nearly 600 packages, there are only 61 binaries out of 35 packages. Java packages are mostly libraries, then.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3220383899908531140?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3220383899908531140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3220383899908531140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3220383899908531140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3220383899908531140'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/01/find-all-package-from-repository-that.html' title='Find all package from a repository that install a file somewhere'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-26680949644001304</id><published>2008-01-04T15:22:00.000+01:00</published><updated>2008-01-04T15:35:15.976+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tioga'/><title type='text'>Tioga and text sizes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BDEUZ9HplLg/R35DBsiEr2I/AAAAAAAAACQ/mL_ks9FbbCc/s1600-h/tioga-text-size.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_BDEUZ9HplLg/R35DBsiEr2I/AAAAAAAAACQ/mL_ks9FbbCc/s200/tioga-text-size.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5151628720171429730" /&gt;&lt;/a&gt;
Tioga is powerful, as I undoubtedly mentioned here already. But, so far, it had a dreadful drawback: it was not possible to know the (TeX) text size other than by guesswork. This has now changed: starting from revision 453, it can find out and provide the information. All you need to do is to give a &lt;code&gt;'measure' =&gt; 'name'&lt;/code&gt; argument to &lt;code&gt;show_text&lt;/code&gt;, and you can get information about the text size using &lt;code&gt;get_text_size('name')&lt;/code&gt;. I used this new feature in &lt;code&gt;figures.rb&lt;/code&gt; for a small demonstration:&lt;/p&gt;
&lt;pre&gt;
    def text_size
      t.stroke_rect(0,0,1,1)
      t.rescale(0.5)

      equation = '\int_{-\infty}^{\infty} \! e^{-x^{2}}\, \! dx = \sqrt{\pi}'
      text = "\\fbox{$\\displaystyle #{equation}$}"

      nb = 5
      nb.times do |i|
        scale = 0.5 + i * 0.2
        angle = i * 37
        x = (i+1)/(nb+1.0)
        y = x
        color = [1.0 - i * 0.2, i*0.2, 0]
        t.show_text('text' =&gt; text, 'color' =&gt; color, 'x' =&gt; x, 
                    'y' =&gt; x,
                    'alignment' =&gt; ALIGNED_AT_MIDHEIGHT,
                    'scale' =&gt; scale , 'measure' =&gt; "box#{i}", 
                    'angle' =&gt; angle )
        size = t.get_text_size("box#{i}")
        w = size['width']
        h = size['height']
        t.stroke_color = color
        t.stroke_rect(x - w/2, x - h/2, w, h)
      end
    end
&lt;/pre&gt;
&lt;p&gt;
This works really simply: Tioga uses a wrapper TeX function that displays the size of the text on &lt;code&gt;pdflatex&lt;/code&gt; output. If Tioga detects that a size was requested, it fills in the information, gives it back to the program via &lt;code&gt;get_text_size&lt;/code&gt; and runs &lt;code&gt;pdflatex&lt;/code&gt; a second time use the information. For the first call, dummy values are given by &lt;code&gt;get_text_size&lt;/code&gt;. It seems that the last showstopper of Tioga has finally fallen today !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-26680949644001304?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/26680949644001304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=26680949644001304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/26680949644001304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/26680949644001304'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/01/tioga-and-text-sizes.html' title='Tioga and text sizes'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BDEUZ9HplLg/R35DBsiEr2I/AAAAAAAAACQ/mL_ks9FbbCc/s72-c/tioga-text-size.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-9097949796207445799</id><published>2008-01-03T14:48:00.000+01:00</published><updated>2008-01-03T14:50:17.662+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Team work...</title><content type='html'>I don't know how it feels for you, but that starts to look like team work:&lt;/p&gt;

&lt;pre&gt;
a7xpg (0.11.dfsg1-3) unstable; urgency=low

  [ Barry deFreese ]
  * Add watch file

  [ Jon Dowland ]
  * Add Homepage: control field to source stanza

  [ Peter De Wachter ]
  * Don't abort if the audio device couldn't be opened. (Closes: #448786)
  * Fixed link command, patch from Arthur Loiret. (Closes: #458277)

  [ Miriam Ruiz ]
  * Added XS-DM-Upload-Allowed tag to control to allow uploads from Debian
    Maintainers.

  [ Vincent Fourmond ]
  * Added myself to Uploaders
  * Fixed Vcs* fields and remove stale Homepage fields

 -- Vincent Fourmond &lt;fourmond@debian.org&gt;  Thu, 03 Jan 2008 14:14:15 +0100
&lt;/pre&gt;

&lt;p&gt;The Debian Games Team is pretty dynamic, I'd say.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-9097949796207445799?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/9097949796207445799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=9097949796207445799' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9097949796207445799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9097949796207445799'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/01/team-work.html' title='Team work...'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-6193208996071845192</id><published>2008-01-03T00:53:00.000+01:00</published><updated>2008-01-03T01:47:00.972+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>lighttpd + debarchiver + dput: very good combination for local archives</title><content type='html'>I've grown pretty much accustomed to &lt;code&gt;cowbuilder&lt;/code&gt;. In fact, I nearly build all my packages this way. I seldom have lots of coding/testing to do on my packages, so I don't want to clutter my machine with loads of unneeded build-depends... Especially when it comes to java packages. And the thing is that the current version of &lt;a href="http://xmlgraphics.apache.org/batik/"&gt;batik&lt;/a&gt; does not build with versions 1.5 and 1.6 of Sun's Java: an earlier one is apparently necessary (I don't have time to dig into this yet). So, I need a &lt;code&gt;cowbuilder&lt;/code&gt; with &lt;code&gt;sun-j2sdk1.4&lt;/code&gt;. As the latter is not on public archives, &lt;code&gt;cowbuilder&lt;/code&gt; will not find it and fail. Hence, the need for a private personal archive. I found the combination of &lt;a href="http://www.lighttpd.net/"&gt;lighttpd&lt;/a&gt;, &lt;code&gt;debarchiver&lt;/code&gt; and &lt;code&gt;dput&lt;/code&gt; very convenient to setup and keep a personal archive. It is the combination that needs the less configuration, and just works !&lt;/p&gt;

&lt;p&gt;First, install &lt;code&gt;lighttpd&lt;/code&gt;, &lt;code&gt;dput&lt;/code&gt; and &lt;code&gt;debarchiver&lt;/code&gt;. I used &lt;code&gt;/var/local/debian&lt;/code&gt; as my local repository root, so I made sure the directory existed and that I had write access on it with my normal user. Then, configuration of &lt;code&gt;debarchiver&lt;/code&gt;; you only need to modify two lines in &lt;code&gt;/etc/debarchiver.conf&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;
$destdir = "/var/local/debian/dists";
$inputdir = "/var/local/debian/incoming";
&lt;/pre&gt;

&lt;p&gt;Running &lt;code&gt;debarchiver&lt;/code&gt; as a normal user once creates the directories, so you don't need to bother about that yourself. You probably should also modify the line containing &lt;code&gt;@mailtos&lt;/code&gt; if you want dak-like email notices. I used the folllowing:&lt;/p&gt;

&lt;pre&gt;
@mailtos = ('root@localhost');
&lt;/pre&gt;

&lt;p&gt;Next step is to make &lt;code&gt;dput&lt;/code&gt; aware of this local repository. Here is the relevant part of my &lt;code&gt;$HOME/.dput.cf&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;
[local]
fqdn = localhost
incoming = /var/local/debian/incoming
method = local
run_dinstall = 0
post_upload_command = debarchiver -x
&lt;/pre&gt;

&lt;p&gt;The &lt;code&gt;-x&lt;/code&gt; is very important as is asks &lt;code&gt;debarchiver&lt;/code&gt; to rebuild the package index, so your packages are available immediately. The last bit now is to make &lt;code&gt;lighttpd&lt;/code&gt; serve the repository. I simply symlinked &lt;code&gt;/var/local/debian&lt;/code&gt; into &lt;code&gt;/var/www&lt;/code&gt;, and now I use that in my &lt;code&gt;sources.list&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;
deb http://localhost/debian unstable main contrib non-free
&lt;/pre&gt;

&lt;p&gt;And everything works perfectly well ! Very easy to install and configure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-6193208996071845192?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/6193208996071845192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=6193208996071845192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/6193208996071845192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/6193208996071845192'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/01/lighttpd-debarchiver-dput-very-good.html' title='lighttpd + debarchiver + dput: very good combination for local archives'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-795232431484328611</id><published>2008-01-02T00:08:00.000+01:00</published><updated>2008-01-02T00:15:17.814+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>(pre-)Introducing jardeps</title><content type='html'>Since I've joined the &lt;a href="http://pkg-java.alioth.debian.org/"&gt;Debian Java Team&lt;/a&gt;, I've been working on a script to get as much information for packaging as we could get from jar files, such as their possible dependencies and so on. I've come up with a pretty neat tool, &lt;code&gt;jardeps&lt;/code&gt;, based on &lt;a href="http://jclassinfo.sf.net/"&gt;jclassinfo&lt;/a&gt;, that can provide quite some information about java archives:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;list classes/methods the archive provides&lt;/li&gt;
&lt;li&gt;look for dependencies in other jars (still very rough, or way too slow)&lt;/li&gt;
&lt;li&gt;and, what I've been working on recently, a way to spot differences in the interface/dependencies between two version of a package, a sort of &lt;code&gt;debdiff&lt;/code&gt; for Java classes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I won't post the code yet, but I'll introduce it on the Java mailing lists as soon as &lt;code&gt;jclassinfo&lt;/code&gt; makes it through the NEW queue (which it probably should have done today had I been more careful about copyright notices).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-795232431484328611?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/795232431484328611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=795232431484328611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/795232431484328611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/795232431484328611'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2008/01/pre-introducing-jardeps.html' title='(pre-)Introducing jardeps'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-856141000451449229</id><published>2007-12-28T12:15:00.000+01:00</published><updated>2007-12-28T12:26:18.324+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Debian java packaging and jclassinfo</title><content type='html'>I've become more and more interested in packaging Java programs recently, and I find that it is not easy for several reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are at least half a dozen java implementation, some free, others non-free, with slightly different standard libraries. I find it all very confusing and error-prone.&lt;/li&gt;
&lt;li&gt;A fair amount of Java packages depend Sun's Swing graphical user interface, and some others depend on Sun's XML parsing (at least as I understand it); they must therefore go to &lt;code&gt;contrib&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Java programs need script wrappers, often rather ugly, even more hackish and definitely not reusable/reused&lt;/li&gt;
&lt;li&gt;There is currently no way to find dependencies of a Java package&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've nearly finished to package &lt;a href="http://jclassinfo.sf.net"&gt;jclassinfo&lt;/a&gt;, a very useful tool that could bring an answer to some of the problems above, by extracting dependency information from class files. With its help, it could be possible to write something like &lt;code&gt;dh_shlibdeps&lt;/code&gt; for Java classes. This would bring a real solution to the dependency problem, and possibly help as well for the &lt;code&gt;main&lt;/code&gt;/&lt;code&gt;contrib&lt;/code&gt; fight. More information later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-856141000451449229?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/856141000451449229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=856141000451449229' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/856141000451449229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/856141000451449229'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/12/debian-java-packaging-and-jclassinfo.html' title='Debian java packaging and jclassinfo'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1023228201871035182</id><published>2007-12-23T10:11:00.001+01:00</published><updated>2007-12-23T10:13:39.415+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>On vacation !</title><content type='html'>Well, I'm finally taking a rest at my parent's house for a few days, before coming back to science, &lt;a href="http://tioga.rubyforge.org"&gt;Tioga&lt;/a&gt; bugs, &lt;a href="http://sciyag.rubyforge.org/ctioga"&gt;ctioga&lt;/a&gt; feature requests and various Debian Developer's duties.&lt;/p&gt;
&lt;p&gt;I wish a merry Christmas and a happy New Year to anyone reading this that actually does celebrate them (at this time in the year) !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1023228201871035182?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1023228201871035182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1023228201871035182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1023228201871035182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1023228201871035182'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/12/on-vacation.html' title='On vacation !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-4447042949954204998</id><published>2007-12-12T00:32:00.000+01:00</published><updated>2007-12-12T00:38:19.387+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qt4'/><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><title type='text'>SciYAG has been released !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BDEUZ9HplLg/R18fIMsoCdI/AAAAAAAAACI/FuWSNV_p8ds/s1600-h/sciyag-first-release.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_BDEUZ9HplLg/R18fIMsoCdI/AAAAAAAAACI/FuWSNV_p8ds/s200/sciyag-first-release.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5142863525188209106" /&gt;&lt;/a&gt;
Finally, I've released SciYAG ! I actually released it quite a few days ago. And it has seen quite some modifications after that (among which a critical bug fix...). Among the new features, let's name a few little ones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;icons for experiments, directories and groups, adapted from gnome and KDE iconset, all in SVG as I discovered that Qt4 natively deals with SVG icons (great !)&lt;/li&gt;
&lt;li&gt;You can now edit Experiment Groups in the Type view as well&lt;/li&gt;
&lt;li&gt;Some usability fixes, such as shortcuts for commonly repeated things&lt;/li&gt;
&lt;li&gt;It starts to actually look good !&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I'm starting to use it heavily for my own work, so it will have to improve fast !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-4447042949954204998?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/4447042949954204998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=4447042949954204998' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4447042949954204998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4447042949954204998'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/12/sciyag-has-been-released.html' title='SciYAG has been released !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BDEUZ9HplLg/R18fIMsoCdI/AAAAAAAAACI/FuWSNV_p8ds/s72-c/sciyag-first-release.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-9092848568780444321</id><published>2007-12-12T00:09:00.000+01:00</published><updated>2007-12-12T00:18:10.329+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Don't use --rename with dpkg-divert</title><content type='html'>I was hit by a &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=455122"&gt;funny bug&lt;/a&gt; I had hard times trying to reproduce on libqt4-ruby. I'll try to make a quick summary of the problem:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In etch, libqt4-ruby1.8 was conflicting with libqt0-ruby1.8, as they were both providing nearly the same files.&lt;/li&gt;
&lt;li&gt;Soon after etch's release, cohabitation of both libraries was made possible, thanks to upstream work. However, libqt4-ruby continued to provide &lt;code&gt;rbqtapi&lt;/code&gt;, that was also in libqt0-ruby1.8. As the one from libqt4-ruby1.8 was actually providing more functionalities than the other one, I decided to use diversions to take over &lt;code&gt;rbqtapi&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Everything was working fine, until a &lt;code&gt;piuparts&lt;/code&gt; check showed that on installing etch version, upgrading to lenny and purging, there was things left... More specifically &lt;code&gt;rbqtapi&lt;/code&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It appeared that the lenny package was diverting its own files from the etch version ! All it took was to remove the &lt;code&gt;--rename&lt;/code&gt; option to &lt;code&gt;dpkg-divert&lt;/code&gt;. As a conclusion: be wary of &lt;code&gt;--rename&lt;/code&gt; ! You most probably don't need it !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-9092848568780444321?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/9092848568780444321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=9092848568780444321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9092848568780444321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/9092848568780444321'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/12/dont-use-rename-with-dpkg-divert.html' title='Don&apos;t use --rename with dpkg-divert'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-8719448277733097196</id><published>2007-12-07T00:21:00.001+01:00</published><updated>2007-12-07T00:27:06.622+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><title type='text'>SciYAG has a search engine now !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BDEUZ9HplLg/R1iENcsoCcI/AAAAAAAAACA/9r6akQiQCOk/s1600-h/sciyag-search-engine.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_BDEUZ9HplLg/R1iENcsoCcI/AAAAAAAAACA/9r6akQiQCOk/s200/sciyag-search-engine.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5141004341219953090" /&gt;&lt;/a&gt;
I wanted to release SciYAG not so long ago, but it came to me that it was still missing something to be of real interest: a search engine. It lets you find experiments according to data. Code used is real Ruby code, so you get a pretty good deal of power, and it stays reasonably intuitive.&lt;/p&gt;
&lt;p&gt;It starts to feel like SciYAG is really getting ready and interesting ! Now, I'll try it rather heavily, and we'll see if it can stand a heavy use with reasonable performance. I hope so, as I did take care about this (although some improvements can still be expected somehow). Oh, by the way, the &lt;code&gt;gnuplot&lt;/code&gt; backend is also available for SciYAG now !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-8719448277733097196?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/8719448277733097196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=8719448277733097196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8719448277733097196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8719448277733097196'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/12/sciyag-has-search-engine-now.html' title='SciYAG has a search engine now !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BDEUZ9HplLg/R1iENcsoCcI/AAAAAAAAACA/9r6akQiQCOk/s72-c/sciyag-search-engine.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-5574545333913365490</id><published>2007-12-06T21:33:00.000+01:00</published><updated>2007-12-09T22:46:54.613+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='ctioga'/><title type='text'>gnuplot-compatibility backend</title><content type='html'>I used to work a lot with &lt;a href="http://www.gnuplot.info"&gt;gnuplot&lt;/a&gt;. For what matter, I still do. I find it very convenient to write simple models (the one you can solve analytically), especially with the help of &lt;a href="http://cars9.uchicago.edu/~ravel/software/gnuplot-mode.html"&gt;gnuplot-mode&lt;/a&gt;, a mode for editing gnuplot files and interacting directly with gnuplot, rather more smoothly than the standard gnuplot interface. But, you might have guessed, I don't like how gnuplot's output looks. After all, that's why I did write &lt;a href="http://sciyag.rubyforge.org/ctioga"&gt;ctioga&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;So what ? I won't use ctioga for playing with my models, as it has not been designed with interactivity in mind, and will most probably never be (that would somehow defeat it's purpose). But I don't want to do the same work twice, especially if the second time is way more tedious than the first...&lt;/p&gt;
&lt;p&gt;So I wrote a new backend, &lt;code&gt;gnuplot&lt;/code&gt;, whose job is to feed a file to gnuplot and tweak it so that &lt;code&gt;ctioga&lt;/code&gt; gets the data of all the plots. Imagine you have a file &lt;code&gt;biniou.gnu&lt;/code&gt; in the spirit of&lt;/p&gt;
&lt;pre&gt;
a(x) = x**2 + 2*x + 1
plot a(x), x**2 - x
&lt;/pre&gt;
&lt;p&gt;Then, you can plot both &lt;code&gt;a(x)&lt;/code&gt; and &lt;code&gt;x**2 - x&lt;/code&gt; with the following command-line:&lt;/p&gt;
&lt;pre&gt;
ctioga --gnuplot biniou.gnu@1##2
&lt;/pre&gt;
&lt;p&gt;Note that it only takes data ! Style is completely dismissed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-5574545333913365490?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/5574545333913365490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=5574545333913365490' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5574545333913365490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5574545333913365490'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/12/gnuplot-compatibility-backend.html' title='gnuplot-compatibility backend'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-445986722427345219</id><published>2007-12-05T00:11:00.000+01:00</published><updated>2007-12-05T00:20:42.931+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>SciYAG is nearly ready !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BDEUZ9HplLg/R1XfCMsoCbI/AAAAAAAAAB4/M01RRNAbpl4/s1600-h/sciyag-ready-for-release.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_BDEUZ9HplLg/R1XfCMsoCbI/AAAAAAAAAB4/M01RRNAbpl4/s200/sciyag-ready-for-release.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5140259778574420402" /&gt;&lt;/a&gt;
I haven't been writing for a long time about SciYAG, but it does not mean that I didn't work on it. For what matters, I've been progressing quite a fair bit, to the point that I consider it releasable. Here comes the current features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fast display of experiments, including quick selection of several experiments and zooming&lt;/li&gt;
&lt;li&gt;editing of experiment types&lt;/li&gt;
&lt;li&gt;saving the database in the form of a YAML file&lt;/li&gt;
&lt;li&gt;editing type-related experiment "meta-data"&lt;/li&gt;
&lt;li&gt;using experiment groups for meta-data shared across a whole group of experiments (say, same buffer, so same pH values)&lt;/li&gt;
&lt;li&gt;different views of the experiments (type-based, file-based and group-based)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Although this really doesn't make all the features that are planned (see &lt;a href="/2007/10/change-of-plans-for-sciyag.html"&gt;here&lt;/a&gt; for a reminder), it makes something I'd qualify as usable.&lt;/p&gt;
&lt;p&gt;Actually, the only thing that refrains me from releasing is that I really should come up with a rudimentary documentation before I do so, and I simply don't have the energy/time/will for that now... Some time later (soon, hopefully) ? I really prefer adding some more features !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-445986722427345219?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/445986722427345219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=445986722427345219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/445986722427345219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/445986722427345219'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/12/sciyag-is-nearly-ready.html' title='SciYAG is nearly ready !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BDEUZ9HplLg/R1XfCMsoCbI/AAAAAAAAAB4/M01RRNAbpl4/s72-c/sciyag-ready-for-release.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-426958091907528250</id><published>2007-12-02T18:30:00.000+01:00</published><updated>2007-12-02T19:37:46.964+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><title type='text'>ImageMagick and photos for ID cards</title><content type='html'>I had to make some ID card pictures for my daughter, and the public machine that I usually use for that was down this morning. So, I decided that I would simply take a picture of her, arrange that into a 13x10cm picture, and have it developed (along with other pictures). My first intention was to use &lt;a href="http://www.gimp.org/"&gt;the gimp&lt;/a&gt; for that, but, I never learned how to use it, and I wouldn't have a simple way to do that again should I need to.&lt;/p&gt;
&lt;p&gt;So I went for the command-line approach, with the tool &lt;code&gt;montage&lt;/code&gt; from &lt;a href="http://www.imagemagick.org/"&gt;ImageMagick&lt;/a&gt;. The pictures should measure 35x45mm in the end. I used the following command-line options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-tile 3x2&lt;/code&gt; 6 small picture fit on the target paper&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-geometry 700x900&lt;/code&gt; the size of an individual image (not the one of the whole montage); it is a multiple of 35x45 and gives a neat resolution in the end&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-border 8%x5% -bordercolor white&lt;/code&gt; to add a neat white border  around the pictures. The numbers are computed so that the overall picture respects (around) the  13x10 aspect ratio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In short, that gives this:&lt;/p&gt;
&lt;pre&gt;
montage -tile 3x2 -geometry 700x900 -border 8%x5% \
  -bordercolor white Morgane.jpg +clone +clone \
  +clone +clone +clone target.jpg
&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;+clone&lt;/code&gt; just tell &lt;code&gt;montage&lt;/code&gt; to reuse the last picture used.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-426958091907528250?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/426958091907528250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=426958091907528250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/426958091907528250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/426958091907528250'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/12/imagemagick-and-photos-for-id-cards.html' title='ImageMagick and photos for ID cards'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-4585325351857593136</id><published>2007-11-26T15:23:00.001+01:00</published><updated>2007-11-26T15:31:18.449+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'>reftex and beamer</title><content type='html'>Well, I already said that I enjoy working with &lt;code&gt;reftex&lt;/code&gt;. It also happens that I'm a &lt;a href="http://latex-beamer.sourceforge.net/"&gt;beamer&lt;/a&gt; fan. Beamer is a great tool for making wonderfully-looking presentations with LaTeX. So, here's a small trick I added in my &lt;code&gt;.emacs&lt;/code&gt; configuration file to be able to see frames in the TOC mode of &lt;code&gt;reftex&lt;/code&gt;. It is quick, dirty and hackish, but it works:&lt;/p&gt;

&lt;pre&gt;
(add-hook 'LaTeX-mode-hook (lambda ()
  (turn-on-reftex)
  (setq reftex-section-levels 
 (cons '("begin{frame}" . -3) reftex-section-levels))
  ))
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-4585325351857593136?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/4585325351857593136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=4585325351857593136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4585325351857593136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4585325351857593136'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/11/reftex-and-beamer.html' title='reftex and beamer'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3589229893238284673</id><published>2007-11-17T15:42:00.000+01:00</published><updated>2007-11-17T16:04:42.609+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>reftex-toc like code browsing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BDEUZ9HplLg/Rz8CQs_fABI/AAAAAAAAABw/Bc5abhJbXxg/s1600-h/imenu-toc.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_BDEUZ9HplLg/Rz8CQs_fABI/AAAAAAAAABw/Bc5abhJbXxg/s200/imenu-toc.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5133824586204250130" /&gt;&lt;/a&gt;
I use &lt;a href="http://www.gnu.org/software/auctex/"&gt;AUCTeX&lt;/a&gt; for typing long LaTeX documents with &lt;a href=",http://www.gnu.org/software/emacs/"&gt;emacs&lt;/a&gt; and I especially appreciate the so-called &lt;code&gt;reftex-toc&lt;/code&gt; interactive mode for browsing the table of contents of the document, jumping to the relevant position.&lt;/p&gt;
&lt;p&gt;I've been missing for a while something similar for code. While the utility of &lt;code&gt;reftex-toc&lt;/code&gt; is somehow limited, because I (and most probably many other people) tend to write textual documents linearly, I write code absolutely not in a linear fashion - so I spend a fair amount of my time looking for where I've written a given function... Until I decided to write a 
&lt;code&gt;reftex-toc&lt;/code&gt;-like code browsing tool. It is based on &lt;code&gt;imenu&lt;/code&gt;, which I find not very convenient. It works for Ruby code (within one file, does not work across file boundaries for now - which is probably better), and is really rudimentary, but functional enough. You can download it &lt;a href="http://www.mediafire.com/?8eysvtmgdgj"&gt;here&lt;/a&gt;. In the hope you might find a use for it...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3589229893238284673?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3589229893238284673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3589229893238284673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3589229893238284673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3589229893238284673'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/11/reftex-toc-like-code-browsing.html' title='reftex-toc like code browsing'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BDEUZ9HplLg/Rz8CQs_fABI/AAAAAAAAABw/Bc5abhJbXxg/s72-c/imenu-toc.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-4415105917672892145</id><published>2007-11-15T22:43:00.000+01:00</published><updated>2007-12-16T21:41:05.174+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>First days of heavy debian sponsoring</title><content type='html'>As I've rather recently joined the &lt;a href="http://wiki.debian.org/Games/"&gt;Debian Games Team&lt;/a&gt;, I've taken up a place of sponsor. Rather tedious when you have 80kB/s upload speed to upload several packages of 100M to 250M... I'm always using &lt;code&gt;cowbuilder&lt;/code&gt; to build my packages, as I hate to install build-dependencies I will never use... And the benefit is of course to make sure it does build ! I've come up with several gotchas in my recent uploads: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;changelog entries corresponding to never-uploaded versions&lt;/li&gt;
&lt;li&gt;and, a subset of the former, first revisions of a new upstream source skipped&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here are how to feed &lt;code&gt;cowbuilder&lt;/code&gt; to work with this properly. First, for simply unuploaded changelog entries:&lt;/p&gt;
&lt;pre&gt;
cowbuilder --build --debbuildopts \
  -vLastUploadedVersion package.dsc
&lt;/pre&gt;

&lt;p&gt;You can check the last uploaded version with &lt;code&gt;rmadison&lt;/code&gt;. If the first debian revision was also skipped, you can force a sourceful upload with the following:&lt;/p&gt;
&lt;pre&gt;
cowbuilder --build --debbuildopts \
  "-vLastUploadedVersion -sa" package.dsc
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-4415105917672892145?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/4415105917672892145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=4415105917672892145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4415105917672892145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4415105917672892145'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/11/first-days-of-heavy-debian-sponsoring.html' title='First days of heavy debian sponsoring'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-5066581495476206227</id><published>2007-11-10T22:23:00.000+01:00</published><updated>2007-11-10T22:29:34.054+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qt4'/><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><title type='text'>Yet again some improvements in SciYAG</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BDEUZ9HplLg/RzYinnm_QqI/AAAAAAAAABo/yC91wP_PlyI/s1600-h/sciyag-ticks-and-grids.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_BDEUZ9HplLg/RzYinnm_QqI/AAAAAAAAABo/yC91wP_PlyI/s200/sciyag-ticks-and-grids.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5131326889478013602" /&gt;&lt;/a&gt;
Well, I didn't stop so easily on my enthusiasm of the morning. So I went on. I'll probably seem to repeat myself, but I won't ever say it enough: &lt;code&gt;QGraphicsScene&lt;/code&gt; and others are simply fantastic ! I implemented today ticks and a grid for the plot using the neat trick of subclassing &lt;code&gt;QGraphicsView&lt;/code&gt; and providing custom handlers for &lt;code&gt;drawBackground&lt;/code&gt; and &lt;code&gt;drawForeground&lt;/code&gt; - so easy ! As a result, the code for the new plotting system is way more elegant than the old one (and more compact, although file size doesn't show it as it is also significantly more documented). Once again, many thanks to developers at &lt;a href="http://trolltech.com/"&gt;Trolltech&lt;/a&gt; for their wonderful work !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-5066581495476206227?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/5066581495476206227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=5066581495476206227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5066581495476206227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5066581495476206227'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/11/yet-again-some-improvements-in-sciyag.html' title='Yet again some improvements in SciYAG'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BDEUZ9HplLg/RzYinnm_QqI/AAAAAAAAABo/yC91wP_PlyI/s72-c/sciyag-ticks-and-grids.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1391827415534417263</id><published>2007-11-10T02:23:00.000+01:00</published><updated>2007-11-10T02:30:01.556+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='qt4'/><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><title type='text'>SciYAG's new plot system</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BDEUZ9HplLg/RzUI2Hm_QpI/AAAAAAAAABg/b3X9ciV_UfU/s1600-h/sciyag-new-plots.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_BDEUZ9HplLg/RzUI2Hm_QpI/AAAAAAAAABg/b3X9ciV_UfU/s200/sciyag-new-plots.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5131017076307083922" /&gt;&lt;/a&gt;
Today (or rather, yesterday), I started using &lt;code&gt;SciYAG&lt;/code&gt; at work. It did prove useful, even in the stage of non-completion in which it was. Great ! However, I found that something was missing sorely: the ability to display several curves at the same time (yes, &lt;code&gt;SciYAG&lt;/code&gt; is only pre-alpha software...). A quick look tonight showed me that it was time to change the way plots were implemented. I therefore changed completely the structure to profit from the &lt;code&gt;QGraphicsScene&lt;/code&gt; scheme. Attached is a result obtained with the first commit... It looks great ! &lt;code&gt;QGraphicsScene&lt;/code&gt; is very easy to use, thanks to the Qt developers.&lt;/p&gt;
&lt;p&gt;However, I found out that when I was switching antialiasing on, the rendering time was excessively great for big plots (around a second for 7000 points on my machine). So I decided to use OpenGL rendering. It turns out that it is as simple as this:&lt;/p&gt;
&lt;pre&gt;
format = Qt::GLFormat.new()
format.set_sample_buffers(true)
@plot_view.set_viewport(Qt::GLWidget.new(format))
@plot_view.setRenderHints(Qt::Painter::Antialiasing)
&lt;/pre&gt;

&lt;p&gt; Fantastic, isn't it ??&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1391827415534417263?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1391827415534417263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1391827415534417263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1391827415534417263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1391827415534417263'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/11/sciyags-new-plot-system.html' title='SciYAG&apos;s new plot system'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BDEUZ9HplLg/RzUI2Hm_QpI/AAAAAAAAABg/b3X9ciV_UfU/s72-c/sciyag-new-plots.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3266408756251458724</id><published>2007-11-09T19:54:00.000+01:00</published><updated>2007-11-09T20:02:30.064+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Total installed size of a debian system</title><content type='html'>I was curious to know about the amount of space taken by packages on my server, to have an idea of the stress I give to the hard drives when I run &lt;code&gt;debsums&lt;/code&gt; on all the packages. I used &lt;code&gt;dpigs&lt;/code&gt; and &lt;code&gt;perl&lt;/code&gt; to achieve this, being reasonably comfortable with the latter:&lt;/p&gt;

&lt;pre&gt;
dpigs -n 300 | perl -ne 'BEGIN {$total = 0} /(\d+)/; $total += ($1 || 0) ; END { print "Total $total\n"}'
&lt;/pre&gt;

&lt;p&gt;That worked, at least provided that there were less than 300 packages... I later thought about using &lt;code&gt;awk&lt;/code&gt;, which is precisely designed for this kind of applications. That actually looks like&lt;/p&gt;

&lt;pre&gt;
dpigs -n 300 | awk '{a += $1} END {print a}'
&lt;/pre&gt;

&lt;p&gt;Better already. But you still need to know the number of packages installed. Well, we could ask &lt;code&gt;dpkg&lt;/code&gt;, of course:&lt;/p&gt;

&lt;pre&gt;
dpigs -n `dpkg -l | wc -l` | awk '{a += $1} END {print a}'
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3266408756251458724?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3266408756251458724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3266408756251458724' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3266408756251458724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3266408756251458724'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/11/total-installed-size-of-debian-system.html' title='Total installed size of a debian system'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3851973126084768040</id><published>2007-11-08T17:47:00.000+01:00</published><updated>2007-11-08T23:00:20.518+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ctioga'/><title type='text'>ctioga's new options shortcuts</title><content type='html'>I implemented today something I had in mind for a long time: a way to pass options in a slightly more convenient way to &lt;code&gt;ctioga&lt;/code&gt;. I'm thinking mainly about the pain of writing, say, &lt;/p&gt;
&lt;pre&gt;
ctioga --math --math-samples 200 'sin(x)'
&lt;/pre&gt;
&lt;p&gt;when one would rather like to write&lt;/p&gt;
&lt;pre&gt;
ctioga --math --samples 200 'sin(x)'
&lt;/pre&gt;
&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BDEUZ9HplLg/RzM_-Hm_QoI/AAAAAAAAABY/F8-8I76mc90/s1600-h/ctioga-convenient-options.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_BDEUZ9HplLg/RzM_-Hm_QoI/AAAAAAAAABY/F8-8I76mc90/s200/ctioga-convenient-options.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5130514736932143746" /&gt;&lt;/a&gt;
Starting from SVN revision 637, the latter form is possible. Specifically, when an option is not recognised, &lt;code&gt;ctioga&lt;/code&gt; tries the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; if it looks like a shortcut, &lt;code&gt;ctioga&lt;/code&gt; uses a shortcut&lt;/li&gt;
&lt;li&gt; if it corresponds to an option of the current backend (such as &lt;code&gt;--samples&lt;/code&gt; for &lt;code&gt;--math-samples&lt;/code&gt;), the corresponding option is used&lt;/li&gt;
&lt;li&gt; failing that, &lt;code&gt;ctioga&lt;/code&gt; complains&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can see the beauty of these options in the attached graph, produced by:&lt;/p&gt;
&lt;pre&gt;
ctioga --xpdf --math --samples 200 \
  --cloud --filled 'sin(x)'
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3851973126084768040?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3851973126084768040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3851973126084768040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3851973126084768040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3851973126084768040'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/11/ctiogas-new-options-shortcuts.html' title='ctioga&apos;s new options shortcuts'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BDEUZ9HplLg/RzM_-Hm_QoI/AAAAAAAAABY/F8-8I76mc90/s72-c/ctioga-convenient-options.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-7219597716653179918</id><published>2007-11-06T23:21:00.001+01:00</published><updated>2007-11-06T23:58:19.649+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Why debsums is your friend</title><content type='html'>I've recently had troubles with my server. It doesn't hold anything public, but helps me synchronise my data between my working place and home, and serves as a place to save sensitive data (though not the only place). I had serious random crashes, ending up in the server not being able to hold for more than a few minutes alive. Whoah !&lt;/p&gt;
&lt;p&gt;
I wrote a small script to get the output of &lt;code&gt;sensors&lt;/code&gt; and other various data, and I was surprised to see that after a while, it began segfaulting... Quick investigation with &lt;code&gt;gdb&lt;/code&gt; showed the culprit to reside in &lt;code&gt;libc6-i686&lt;/code&gt;... Funny thing, &lt;code&gt;reportbug&lt;/code&gt; also showed the exact same segmentation fault. There you go. I therefore installed &lt;code&gt;debsums&lt;/code&gt;, checked the library, and bingo !&lt;/p&gt;
&lt;pre&gt;
vincent@server:~$ debsums libc6-i686
/lib/tls/i686/cmov/ld-2.3.6.so                                                OK
/lib/tls/i686/cmov/libanl-2.3.6.so                                            OK
/lib/tls/i686/cmov/libBrokenLocale-2.3.6.so                                   OK
/lib/tls/i686/cmov/libc-2.3.6.so                                          FAILED
&lt;/pre&gt;
&lt;p&gt;There was a checksum mismatch there... I reinstalled the library, and everything appears to work fine. But, that doesn't explain yet the crashes. I'm just afraid that my hard drives are slowly giving way, which would be very disappointing provided that they are brand new (6 month !) and not heavily used (though, maybe, in a warm environment). I'll check that later on.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-7219597716653179918?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/7219597716653179918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=7219597716653179918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7219597716653179918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7219597716653179918'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/11/why-debsums-is-your-friend.html' title='Why debsums is your friend'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1803665975973836097</id><published>2007-11-05T23:12:00.000+01:00</published><updated>2007-11-05T23:19:14.652+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tioga'/><category scheme='http://www.blogger.com/atom/ns#' term='ctioga'/><title type='text'>ctioga and tick labels</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BDEUZ9HplLg/Ry-WwGMRjoI/AAAAAAAAABQ/aTWHI2PF1ew/s1600-h/ctioga-ticks-cutomization.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_BDEUZ9HplLg/Ry-WwGMRjoI/AAAAAAAAABQ/aTWHI2PF1ew/s200/ctioga-ticks-cutomization.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5129484253638266498" /&gt;&lt;/a&gt;
On &lt;a href="http://rubyforge.org/forum/forum.php?forum_id=8912"&gt;ctioga's forum&lt;/a&gt;, I was asked to provide a way to turn tick labels - which there currently wasn't. But, in fact, the structure was already there. The SVN commit 632 has seen them in. See for yourself the result of&lt;/p&gt;
&lt;pre&gt;
ctioga --xpdf --math --interpolate 'sin(x)' --scale yticks 2.2 --angle xticks 45
&lt;/pre&gt;
&lt;p&gt;As with the &lt;code&gt;title&lt;/code&gt; and other friends, options are available, to control the shift, scale and angle of the ticks. However, the color cannot currently be changed this way (this is a Tioga limitation).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1803665975973836097?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1803665975973836097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1803665975973836097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1803665975973836097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1803665975973836097'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/11/ctioga-and-tick-labels.html' title='ctioga and tick labels'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BDEUZ9HplLg/Ry-WwGMRjoI/AAAAAAAAABQ/aTWHI2PF1ew/s72-c/ctioga-ticks-cutomization.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-4891188278443987031</id><published>2007-10-30T09:53:00.000+01:00</published><updated>2007-10-30T11:54:25.677+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tioga'/><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><title type='text'>Profiling Ruby/C applications</title><content type='html'>As mentioned in a &lt;a href="http://vince-debian.blogspot.com/2007/10/sciyag-goes-on.html"&gt;previous post&lt;/a&gt;, the current function for reading plain text datafiles (&lt;code&gt;Dvector::fancy_read&lt;/code&gt;) is slow. Really slow. So I decided to switch to a C implementation keeping the same functionalities.&lt;/p&gt;
&lt;p&gt;I quickly did a rough translation of the function into C, using basically the same mechanics (and in particular using Ruby regular expressions for parsing), and I was surprised when I found out that I was only winning a factor of around three in the speed of reading. I was even more surprised to see that the reading is O(n&lt;sup&gt;2&lt;/sup&gt;) (reading 100000 lines is around 100 times slower than reading 100 times 1000 lines !). So, I decided I should try my luck with a profiler.&lt;/p&gt;
&lt;p&gt;
My first step was naively to compile the library with the &lt;code&gt;-pg&lt;/code&gt; gcc option, but that didn't produce any output file (although it might have been due to the fact that I forgot to add the  switch again for linking). I attributed that to the fact that the whole program should be compiled with the switch, and not only the shared library. So I did write a small &lt;a href="http://tioga.rubyforge.org/svn/trunk/tioga/split/Dvector/profile/profile_fancy_read.c"&gt;C wrapper&lt;/a&gt;, compiled it, and ran it. It did produce a &lt;code&gt;gmon.out&lt;/code&gt; file, but gprof was unable to give me any interesting information from that. I guess I needed a finer granularity that my own functions, and for that I should have compile Ruby with profiling support. Well. Drop it.&lt;/p&gt;
&lt;p&gt;
So, I was about to give up when I thought about &lt;a href="http://valgrind.org/"&gt;valgrind&lt;/a&gt;. Valgrind also comes with a profiler tool, &lt;code&gt;callgrind&lt;/code&gt;. So, I ended up doing the following:&lt;/p&gt;
&lt;pre&gt;
~ valgrind --tool=callgrind ./fancy_read
~ callgrind_annotate callgrind.out.24425| less
&lt;/pre&gt;
&lt;p&gt;
The first command runs the program with valgrind, saving data into a file called something like &lt;code&gt;callgrind.out.24425&lt;/code&gt;. The second parses this file and displays the number of intructions spent in each of the most significative functions. Here is a extract of the output:&lt;/p&gt;
&lt;pre&gt;
306,777,466  ???:__printf_fp [/lib/libc-2.6.1.so]
226,575,122  ???:0x0000000000041C20 [/lib/libc-2.6.1.so]
121,900,026  ???:0x00000000000805F0 [/usr/lib/libruby1.8.so.1.8.6]
 98,208,889  ???:__strtod_internal [/lib/libc-2.6.1.so]
 90,449,474  ???:0x00000000000482D0 [/lib/libc-2.6.1.so]
 87,300,200  ???:vfprintf [/lib/libc-2.6.1.so]
 84,197,045  ???:ruby_re_search [/usr/lib/libruby1.8.so.1.8.6]
 71,866,550  ???:0x0000000000071D60 [/lib/libc-2.6.1.so]
 65,387,136  ???:0x0000000000071380 [/lib/libc-2.6.1.so]
 62,784,967  ???:0x000000000004A9F0'2 [/usr/lib/libruby1.8.so.1.8.6]
 61,279,027  ???:0x000000000004AC80 [/usr/lib/libruby1.8.so.1.8.6]
 48,357,879  ???:malloc [/lib/libc-2.6.1.so]
 41,915,985  ???:free [/lib/libc-2.6.1.so]
 34,200,000  ???:rb_reg_search [/usr/lib/libruby1.8.so.1.8.6]
 31,432,232  ???:ruby_xmalloc [/usr/lib/libruby1.8.so.1.8.6]
&lt;/pre&gt;
&lt;p&gt;This shows that most of the time is spent displaying the data. Normal, half of my program does only that. Then, a fair amount of time is spent in &lt;code&gt;strtod&lt;/code&gt;. Nothing to improve there.  Another fair amount is spent in regular expression matching, and then, a significant part of the processing time is actually spent on memory management ! Dreadful ! I guess there's not much more I could do&lt;/p&gt;
&lt;p&gt;
The conclusion to this is that if you need to profile something, use &lt;code&gt;valgrind&lt;/code&gt;. This is much more powerful than &lt;code&gt;gprof&lt;/code&gt; !

&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-4891188278443987031?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/4891188278443987031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=4891188278443987031' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4891188278443987031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/4891188278443987031'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/profiling-rubyc-applications.html' title='Profiling Ruby/C applications'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-8183732419684364457</id><published>2007-10-28T19:49:00.000+01:00</published><updated>2007-10-28T20:02:07.915+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='qt4'/><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><title type='text'>SciYAG goes on...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BDEUZ9HplLg/RyTaJGMRjnI/AAAAAAAAABI/Bz8gWwtkduQ/s1600-h/sciyag-first-import.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_BDEUZ9HplLg/RyTaJGMRjnI/AAAAAAAAABI/Bz8gWwtkduQ/s200/sciyag-first-import.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5126462125670239858" /&gt;&lt;/a&gt;
Well, work is going on on &lt;a href="http://sciyag.rubyforge.org"&gt;SciYAG&lt;/a&gt;. I added an view to select on the experiment type, and I tried for the first time a little scale up: I brutally imported my ca. 2000 data files into the program. It takes a few seconds to import, but then, it is really fast. Some remarks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I'm making very heavy use of the &lt;a href="http://doc.trolltech.com/4.3/qstandarditemmodel.html"&gt;QStandardItemModel&lt;/a&gt; Qt class, and it scales up really easily, even with &lt;a href="http://developer.kde.org/language-bindings/ruby/index.html"&gt;QtRuby&lt;/a&gt;. If you plan to make a model/view application in QtRuby, &lt;b&gt;do not subclass &lt;code&gt;QAbstractItemModel&lt;/code&gt;!&lt;/b&gt; The underlying model/view architecture make many calls to functions of the model, and calls from C++ to Ruby in QtRuby are prohibitive (compared to C++/C++ calls). Rather, fill in a &lt;code&gt;QStandardItemModel&lt;/code&gt;, it is likely to work much faster.&lt;/li&gt;
&lt;li&gt;I'm glad it scales up nicely: the navigation between my 2000 data files is very smooth and neat.&lt;/li&gt;
&lt;li&gt;Currently, the function for reading text datafiles is written in pure Ruby, and it is apparently much too slow. I had planned a long time ago to rewrite that in C, and it looks like time has come to do so&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-8183732419684364457?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/8183732419684364457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=8183732419684364457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8183732419684364457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/8183732419684364457'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/sciyag-goes-on.html' title='SciYAG goes on...'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BDEUZ9HplLg/RyTaJGMRjnI/AAAAAAAAABI/Bz8gWwtkduQ/s72-c/sciyag-first-import.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1857458531122770980</id><published>2007-10-25T20:59:00.001+02:00</published><updated>2007-11-09T20:03:30.834+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><category scheme='http://www.blogger.com/atom/ns#' term='webgen'/><title type='text'>wegben and inclusion of manual pages</title><content type='html'>Funnily enough, I haven't spoken about &lt;a href='http://webgen.rubyforge.org'&gt;webgen&lt;/a&gt; yet. webgen is a very powerful static website generation tool written in Ruby. It was written with a very good plugin architecture in mind which makes it trivial to extend it.&lt;/p&gt;
&lt;p&gt;Most of the sites I maintain (namely, &lt;a href="http://sciyag.rubyforge.org"&gt;SciYAG's&lt;/a&gt;, &lt;a href="http://tioga.rubyforge.org"&gt;Tioga's&lt;/a&gt; and my former &lt;a href='http://vincent.fourmond.neuf.fr'&gt;web page&lt;/a&gt;, the latter not being maintained anymore) are written using webgen. I recommend you have a look at those sites and at the website of &lt;a href='http://webgen.rubyforge.org'&gt;webgen&lt;/a&gt; itself, you'd be amazed of the possibilities it offers.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sciyag.rubyforge.org"&gt;SciYAG's website&lt;/a&gt; is making a heavy use of webgen's extension possibilities. I did write plugins for things as various as&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;including a thumbnail of an image and a link to it with a code as simple as:
&lt;pre&gt;{linkImage: Electrode_cleaning.png}&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;converting automatically ctioga's shell script files into PDF, and converting any PDF into a PNG image with a thumbnail&lt;/li&gt;
&lt;li&gt;having a random image at every page (this really looks great in my humble opinion)&lt;/li&gt;
&lt;li&gt;use &lt;a href="http://subversion.tigris.org"&gt;SVN&lt;/a&gt; information to display the name of the last author&lt;/li&gt;
&lt;li&gt;and many more things&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My last addition to this wealth of plugins is a way to include a manual page within a webgen page, so that you profit from the CSS and from the navigation bar. You can get an idea of how it looks &lt;a href="http://sciyag.rubyforge.org/ctioga/doc/ctable-manpage.html"&gt;there&lt;/a&gt;. The source code is available as usual in the &lt;a href="http://sciyag.rubyforge.org/svn/trunk/SciYAG/www/" &gt;SVN repository&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1857458531122770980?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1857458531122770980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1857458531122770980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1857458531122770980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1857458531122770980'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/wegben-and-inclusion-of-manual-pages.html' title='wegben and inclusion of manual pages'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-7985177454821991681</id><published>2007-10-24T10:49:00.000+02:00</published><updated>2007-10-24T10:56:09.129+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>KDE, keyboards and hal</title><content type='html'>This morning, when I tried to log into KDE (using kdm), I miserably failed several times... What was worse, the Ctrl+Alt+F... keys didn't want to work anymore, so I couldn't login to the console... It appeared that it is linked to a newer version of &lt;code&gt;hal&lt;/code&gt; (see bug &lt;a href="http://bugs.debian.org/442316"&gt;#442316&lt;/a&gt;). Downgrading &lt;code&gt;hal&lt;/code&gt; and &lt;code&gt;hal-info&lt;/code&gt; did the trick.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-7985177454821991681?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/7985177454821991681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=7985177454821991681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7985177454821991681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7985177454821991681'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/kde-keyboards-and-hal.html' title='KDE, keyboards and hal'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-5532292369449815482</id><published>2007-10-23T22:04:00.000+02:00</published><updated>2007-10-23T22:10:22.702+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><title type='text'>SciYAG is going on...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BDEUZ9HplLg/Rx5VDBQkH3I/AAAAAAAAABA/IrSaAusvh6g/s1600-h/sciyag-modify-experiment-type.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_BDEUZ9HplLg/Rx5VDBQkH3I/AAAAAAAAABA/IrSaAusvh6g/s200/sciyag-modify-experiment-type.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5124626936360083314" /&gt;&lt;/a&gt;
Well, even if I didn't post here, I've kept myself decently busy. The commit that just went into &lt;a href="http://sciyag.rubyforge.org/svn/"&gt;SciYAG's SVN repository&lt;/a&gt; sees a new step in the completion of a public release: it is now possible to edit experiment types. Here's a picture of the current dialog box for editing experiment types. It is admittedly not very comfortable yet, but it works. I'll take time to improve it later when that becomes a priority.&lt;/p&gt;
&lt;p&gt;Of course, I'll keep you posted about my progresses !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-5532292369449815482?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/5532292369449815482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=5532292369449815482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5532292369449815482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/5532292369449815482'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/sciyag-is-going-on.html' title='SciYAG is going on...'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BDEUZ9HplLg/Rx5VDBQkH3I/AAAAAAAAABA/IrSaAusvh6g/s72-c/sciyag-modify-experiment-type.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1861459549114594148</id><published>2007-10-18T00:13:00.000+02:00</published><updated>2007-10-18T00:20:04.919+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><title type='text'>Wodim, genisoimages and pipes</title><content type='html'>I'm just burning some saves, and I thought that while waiting for the burning process to finish, I could share some of my &lt;code&gt;.zshrc&lt;/code&gt; tricks about this... I'm using &lt;code&gt;wodim&lt;/code&gt; and &lt;code&gt;genisoimage&lt;/code&gt; (Debian tools derived from cdrecord and mkisofs) to burn my disks, and here is what I have in my &lt;code&gt;.zshrc&lt;/code&gt; to burn using a pipe:&lt;/p&gt;

&lt;pre&gt;
wodim-pipe() {
    size=`genisoimage -q -print-size $@`
    genisoimage $@ | wodim -tao fs=100M \
        speed=2 dev=/dev/cdrw1 driveropts=burnfree -v \
        tsize=$size's' -multi -
}
&lt;/pre&gt;

&lt;p&gt;With this function, I'm simply using the following code to burn the contents of the &lt;code&gt;saves-server&lt;/code&gt; directory, to the &lt;code&gt;saves-18-10-2007&lt;/code&gt; directory on the disk:&lt;/p&gt;

&lt;pre&gt;
wodim-pipe -r -J -root saves-18-10-2007 -joliet-long saves-server 
&lt;/pre&gt;

&lt;p&gt;
Hope you'll find this useful !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1861459549114594148?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1861459549114594148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1861459549114594148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1861459549114594148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1861459549114594148'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/wodim-genisoimages-and-pipes.html' title='Wodim, genisoimages and pipes'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3226127995139236382</id><published>2007-10-17T00:35:00.001+02:00</published><updated>2007-10-17T00:56:40.819+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><title type='text'>A first draft of SciYAG...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BDEUZ9HplLg/RxU86hQkH2I/AAAAAAAAAA4/F1nsNgLZY20/s1600-h/sciyag-first-draft.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_BDEUZ9HplLg/RxU86hQkH2I/AAAAAAAAAA4/F1nsNgLZY20/s200/sciyag-first-draft.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5122067127261732706" /&gt;&lt;/a&gt;After some time, I finally have the first working draft of the upcoming SciYAG ! Admittedly, it currently doesn't do much more than just displaying the entries, but that already is a start, because you can browse pretty fast... &lt;/p&gt;

&lt;p&gt;Here are the main things I'll have to focus on over the next days or weels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provide a decent interface to change experiment types and then, most importantly, experience values (that would be under the current window)&lt;/li&gt;
&lt;li&gt;Provide a way to group experiences so they share the same data when that makes sense (when they really share some experimental conditions - when the &lt;span style="font-weight:bold;"&gt;exact same&lt;/span&gt; buffer or temperature or... were used)&lt;/li&gt;
&lt;li&gt;For the first version of SciYAG a year ago, I used &lt;a href="http://doc.trolltech.com/4.3/qpainter.html#drawPath"&gt;QPainter::drawPath&lt;/a&gt; for painting my curves, which was fine at that time, but resulted in much hassle and too much Ruby code (much slower than C++). So I need to switch to the new 2D framework, &lt;a href="http://doc.trolltech.com/4.3/qgraphicsscene.html"&gt;QGraphicsScene&lt;/a&gt;/&lt;a href="http://doc.trolltech.com/4.3/qgraphicsview.html"&gt;QGraphicsView&lt;/a&gt; - which wasn't available when I started back then&lt;/li&gt;
&lt;li&gt;Put back all the navigation features (zoom and the like) that were part of the old SciYAG at one point in the past&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As you can see, I have things to keep myself busy... I'll keep you posted here !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3226127995139236382?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3226127995139236382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3226127995139236382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3226127995139236382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3226127995139236382'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/first-draft-of-sciyag.html' title='A first draft of SciYAG...'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BDEUZ9HplLg/RxU86hQkH2I/AAAAAAAAAA4/F1nsNgLZY20/s72-c/sciyag-first-draft.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-7586188240037057642</id><published>2007-10-14T03:12:00.000+02:00</published><updated>2007-10-14T03:15:52.089+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><title type='text'>Hoorray !</title><content type='html'>The commit that just got into &lt;a href="http://sciyag.rubyforge.org/svn/trunk/SciYAG/"&gt;SciYAG's SVN repository&lt;/a&gt; is the first one that actually gets a user interface running ! There is not much, admittedly (just dummy entries for experiments you can't change yet), but, still, it shows that I've made decent progresses in the architecture. I'll keep you posted about future developments !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-7586188240037057642?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/7586188240037057642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=7586188240037057642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7586188240037057642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7586188240037057642'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/hoorray.html' title='Hoorray !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3235703837826791241</id><published>2007-10-14T00:18:00.000+02:00</published><updated>2007-10-14T00:31:46.799+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>What I'm waiting for in the NEW queue</title><content type='html'>&lt;p&gt;The &lt;a href="http://ftp-master.debian.org/new.html"&gt;NEW&lt;/a&gt; queue is where new Debian packages (packages that install packages which were not before in the Debian archive) are waiting for a short review before being let in. This review is mainly about legal problems, though you can find &lt;a href="http://ftp-master.debian.org/REJECT-FAQ.html"&gt;here&lt;/a&gt; a list of the reasons for which a package could be rejected.&lt;/p&gt;

&lt;p&gt;It so happens that there are currently some packages which I'm interested in, and too lazy to fetch and build myself:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Of course, the first one is &lt;a href="http://ftp-master.debian.org/~ajt/new/freecol_0.7.2-1_amd64.html"&gt;freecol&lt;/a&gt;, which I packaged myself and can't wait for it to become part of the official Debian distribution. (and I guess that will please the original developers as well !).&lt;/li&gt;
&lt;li&gt;Still about games, I'm interested in the &lt;a href="http://ftp-master.debian.org/~ajt/new/lordsawar_0.0.3-1_multi.html"&gt;lordsawar&lt;/a&gt; package, which seems to be a rather neat strategic game as well.&lt;/li&gt;
&lt;li&gt;Finally, I've stumbled upon &lt;a href="http://ftp-master.debian.org/~ajt/new/homebank_3.5-3_amd64.html"&gt;homebank&lt;/a&gt;, which seems to be a really neat personal accounting software. I'm currently using &lt;a href="http://www.grisbi.org/"&gt;grisbi&lt;/a&gt;, which is nice, but doesn't satisfy me somehow. I'll post more about this if I ever come to switch to HomeBank&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As a last note, please consider that the links in the list above will eventually (and rather soon) be broken, when the packages have gone out of the NEW queue. They are only here for me to check more easily the status of the aforementioned packages... So, don't go looking for them, and don't complain !&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3235703837826791241?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3235703837826791241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3235703837826791241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3235703837826791241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3235703837826791241'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/what-im-waiting-for-in-new-queue.html' title='What I&apos;m waiting for in the NEW queue'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-3204121911546034103</id><published>2007-10-12T21:30:00.000+02:00</published><updated>2007-10-12T21:48:29.684+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latex'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><title type='text'>The aurical fonts for LaTeX</title><content type='html'>&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BDEUZ9HplLg/Rw_O4BQkH1I/AAAAAAAAAAs/rkV72ypSANU/s1600-h/aurical-font.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_BDEUZ9HplLg/Rw_O4BQkH1I/AAAAAAAAAAs/rkV72ypSANU/s200/aurical-font.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5120538763149451090" /&gt;&lt;/a&gt;I've just been writing some cards for the birth of my daughter, and I've been looking for nice-looking fonts for LaTeX. I'm using the &lt;code&gt;texlive&lt;/code&gt; distribution (Debian packages). So I've installed the &lt;code&gt;texlive-fonts-extra&lt;/code&gt; package, and I had a quick look at all the pdf files therein:&lt;/p&gt;
&lt;pre&gt;
for f in `dpkg -L texlive-fonts-extra | grep pdf`; do \
[ -h $f ] || xpdf $f; done
&lt;/pre&gt;

&lt;p&gt;The &lt;code&gt;[ -h $f ] ||&lt;/code&gt; blurb is here to prevent reading the same file twice via a symlink. I found many interesting things, but not that many "fancy" fonts - apart from one package, &lt;code&gt;aurical&lt;/code&gt;, that provides neat handwriting-like fonts. Attached is what I obtained with the &lt;code&gt;\Fontlukas&lt;/code&gt; command. Hope you'll find this useful !&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-3204121911546034103?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/3204121911546034103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=3204121911546034103' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3204121911546034103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/3204121911546034103'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/aurical-fonts-for-latex.html' title='The aurical fonts for LaTeX'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BDEUZ9HplLg/Rw_O4BQkH1I/AAAAAAAAAAs/rkV72ypSANU/s72-c/aurical-font.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-7555130676668622927</id><published>2007-10-12T02:06:00.000+02:00</published><updated>2007-10-12T02:09:03.707+02:00</updated><title type='text'>Blogger and file uploads</title><content type='html'>I pretty much enjoy using Blogger for this blog. I find it rather comfortable and neat. There is however one point I don't like much, the inability to share files easily. There are many (small) files I'd like to share, such as various configuration files, codes, patches, and the like. After a quick look, it seems that &lt;a href="http://www.mediafire.com/"&gt;Mediafire&lt;/a&gt; is providing pretty nice free service, with a sleek interface. So watch for file downloads there !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-7555130676668622927?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/7555130676668622927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=7555130676668622927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7555130676668622927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/7555130676668622927'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/blogger-and-file-uploads.html' title='Blogger and file uploads'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-972231828023320483</id><published>2007-10-12T01:18:00.000+02:00</published><updated>2007-10-12T01:43:24.995+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>Change of plans for SciYAG</title><content type='html'>&lt;p&gt;Initially, the SciYAG program in the &lt;a href="http://sciyag.rubyforge.org"&gt;SciYAG project&lt;/a&gt; was intended as a direct competitor for the interactive part of gnuplot, while &lt;a href="http://sciyag.rubyforge.org/ctioga"&gt;ctioga&lt;/a&gt; is definitely a good competitor of the "output" part (get convinced &lt;a href="http://sciyag.rubyforge.org/ctioga/ctioga-vs-gnuplot/"&gt;there&lt;/a&gt;). I had some part working, with a command-line working exactly as ctioga and some reasonable features.&lt;/p&gt;
&lt;p&gt;
However, with time, I found that what I'm really missing in my everyday scientific work is not an interactive gnuplot clone. As far as I can tell, gnuplot is jolly good itself for that, and we have a neat home-brewed program called Soas that does the job pretty well, and is tailored to our needs.&lt;/p&gt;

&lt;p&gt;
So, then, what ? What I really miss is a good program to organise my data. Here is the features I'm missing:
&lt;ul&gt;
&lt;li&gt;First, I want to be able to attach meta-data to my datafiles, such as the buffer used for the experiment, the pH values, and so on. All these should be fully customizable on a per-experiment or per-experiment-type basis&lt;/li&gt;
&lt;li&gt;I want to be able to browse quickly to my experiments, sorting them according to their type, their values of their meta-data&lt;/li&gt;
&lt;li&gt;Of course, I'm interested to actually display the data, possibly massively, possibly as a function of some of the meta-data&lt;/li&gt;
&lt;li&gt;I also want to be able to associate series of fits of different kinds to each of the datafiles, and be able to quickly check them (visually, by displaying the fit and the data), and plot the parameters found there as a function of meta-data.&lt;/li&gt;
&lt;li&gt;And more !&lt;/li&gt;
&lt;/ul&gt;

This may sound ambitious, but actually, with a great programming language like Ruby, it is fun. A great deal of the architecture is already in place. What I'm currently working on is a way to store all the data. The trick is to make it so it can evolve easily, as I'll be using this program extensively for my own needs, and I don't want to reenter any meta-data already in. A good architecture should also please the lazy in me (which amounts to, say, 95%...) and have me type in only what is absolutely necessary - so most values for meta-data should be shared or guessed.&lt;/p&gt;

&lt;p&gt;
There is currently no release of SciYAG, though you can chance a look at it's &lt;a href="http://sciyag.rubyforge.org/svn/trunk/SciYAG/"&gt;SVN repository&lt;/a&gt;. Be sure I'll keep you posted about my progresses on the field !&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-972231828023320483?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/972231828023320483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=972231828023320483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/972231828023320483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/972231828023320483'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/change-of-plans-for-sciyag.html' title='Change of plans for SciYAG'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1645237316029872135</id><published>2007-10-10T23:07:00.000+02:00</published><updated>2007-10-12T13:23:38.445+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmdline'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><title type='text'>PDF and included images</title><content type='html'>A little earlier in the evening, I had to send a document to my parents including pictures. Though the final version definitely should have high-quality pictures, I was forced to see that the version I sent was maybe slightly too big (5MB by email, when the receiver doesn't have a very fast connection, that is painful).

After some experimentations with pdftops (from &lt;a href="http://www.foolabs.com/xpdf"&gt;xpdf&lt;/a&gt;) and ps2pdf (from &lt;a href="http://pages.cs.wisc.edu/~ghost/"&gt;ghostscript&lt;/a&gt;) that didn't give satisfying results, I tried to use ghostscript directly:

&lt;pre&gt;
~ gs -sOutputFile=biniou.pdf -sDEVICE=pdfwrite \
  -dCompatibilityLevel=1.4 FairePart.pdf  &lt; /dev/null
&lt;/pre&gt;

What a surprise ! The output did shrink by a factor of 4:
&lt;pre&gt;
~ ls -lh FairePart.pdf biniou.pdf
-rw-r--r-- 1 vincent vincent 1.1M 2007-10-10 22:56 biniou.pdf
-rw-r--r-- 1 vincent vincent 5.7M 2007-10-10 18:14 FairePart.pdf
&lt;/pre&gt;

A quick check with &lt;code&gt;pdfimages&lt;/code&gt; combined with &lt;code&gt;identify&lt;/code&gt; shows that all the images kept the same resolution. That must be a question of JPEG conversion, or something of this spirit... Then, another try is to add the &lt;code&gt;-dPDFSETTINGS=/screen&lt;/code&gt; option to the command-line:

&lt;pre&gt;
~ gs -sOutputFile=biniou.pdf -sDEVICE=pdfwrite \
  -dPDFSETTINGS=/screen -dCompatibilityLevel=1.4 
  FairePart.pdf  &lt; /dev/null
&lt;/pre&gt;

Then, output file is minuscule:

&lt;pre&gt;
~ ll biniou.pdf 
-rw-r--r-- 1 vincent vincent 34K 2007-10-11 00:09 biniou.pdf
&lt;/pre&gt;

The downside is, the output is pretty much ugly (well, you wouldn't have hoped anything good with a win of a factor of 150). Images went down from 2576x1932 to 322x241 or even smaller (depends on the physical size of the image). &lt;code&gt;-dPDFSETTINGS=/ebook&lt;/code&gt; gave a slightly better output (for 70K), but still not good for my case... So I tweaked the &lt;a href="http://pages.cs.wisc.edu/~ghost/doc/cvs/Ps2pdf.htm#Options"&gt;pdfwrite parameters&lt;/a&gt; by hand:

&lt;pre&gt;
 gs -sOutputFile=biniou.pdf -sDEVICE=pdfwrite \
  -dColorImageDownsampleType=/Bicubic -dColorImageResolution=300 \
  -dDownsampleColorImages=true -dCompatibilityLevel=1.4 \
  FairePart.pdf  &lt; /dev/null
&lt;/pre&gt;

This gave me a pretty nice result. And this also shows that my image resolution was way too big anyway - 300 dpi is probably the best I'll get when printing... and the file produced is still ridiculously small (172K) !

I now start to realize the power of &lt;code&gt;ghostscript&lt;/code&gt;, and I thank its authors for it !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1645237316029872135?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1645237316029872135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1645237316029872135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1645237316029872135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1645237316029872135'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/pdf-and-included-images.html' title='PDF and included images'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-6447110445181534340</id><published>2007-10-10T00:37:00.000+02:00</published><updated>2007-10-10T00:47:47.279+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Upload and independence !</title><content type='html'>That's it ! I've finally uploaded freecol to the Debian archives, to the contrib section (as Sun's java is not currently free and is necessary). The freecol folks have been very helpful with sorting out potential copyright and license issue, one of the authors (Stian Grenborgen) actually getting the author of a font to relicense it under the GPL !! The freecol package should be available within a week or two. In the meantime, you can have a look at the &lt;a href="http://ftp-master.debian.org/new.html"&gt;NEW queue&lt;/a&gt; to see in which position the package is !
&lt;p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BDEUZ9HplLg/RwwE4xQkH0I/AAAAAAAAAAk/Eax04IYseOY/s1600-h/freecol-victory.jpeg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_BDEUZ9HplLg/RwwE4xQkH0I/AAAAAAAAAAk/Eax04IYseOY/s200/freecol-victory.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5119472249755410242" /&gt;&lt;/a&gt;In parallel, I'm happy to announce that I've won my independence ! Which also means I'll have quite a lot more free time to work on other things, such as SciYAG, my book or my various research things...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-6447110445181534340?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/6447110445181534340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=6447110445181534340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/6447110445181534340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/6447110445181534340'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/upload-and-independence.html' title='Upload and independence !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BDEUZ9HplLg/RwwE4xQkH0I/AAAAAAAAAAk/Eax04IYseOY/s72-c/freecol-victory.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1546702651883669666</id><published>2007-10-02T20:55:00.000+02:00</published><updated>2007-10-12T22:56:20.185+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Preliminary packaging for freecol</title><content type='html'>I've just finished packaging freecol for Debian. There are still important copyright issues, but the main work has been done. It has been placed in the Debian Games SVN repository (see &lt;a href="http://svn.debian.org/wsvn/pkg-games/packages/trunk/freecol/?rev=0&amp;sc=0"&gt;here&lt;/a&gt;).

What is left now is to clear important copyright issues (essentially one font, placed in &lt;tt&gt;data/fonts/ShadowedBlack.ttf&lt;/tt&gt;). Great !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1546702651883669666?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1546702651883669666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1546702651883669666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1546702651883669666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1546702651883669666'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/10/preliminay-packaging-for-freecol.html' title='Preliminary packaging for freecol'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-2498079078460145080</id><published>2007-09-30T14:48:00.000+02:00</published><updated>2007-10-14T02:18:45.238+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>freecol is dreadful !</title><content type='html'>Well, weel, I've got so many things to do (like, well, several packages to attend to, three programs to write, a book to write as well, and, last but not least, a family that will see a significant increase in size within a few days ;-)...) - but I just can't help it: I spend a decent portion of my "free time" playing &lt;a href="http://www.freecol.org"&gt;freecol&lt;/a&gt;... Well, very good game !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-2498079078460145080?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/2498079078460145080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=2498079078460145080' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/2498079078460145080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/2498079078460145080'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/09/freecol-is-dreadful.html' title='freecol is dreadful !'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-6585530250876158257</id><published>2007-09-30T11:31:00.000+02:00</published><updated>2007-09-30T11:55:20.143+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>dpatch and svn-buildpackage</title><content type='html'>dpatch is a simple but reasonably powerful patching system for debian packages. One of the comforts I appreciate greatly with dpatch is the ease with which one can edit patches. The following command lauches a new shell in a copy of the package, and every difference is recorded as patch 56-new-patch.

&lt;pre class='examples'&gt;
dpatch-edit-patch 56-new-patch
&lt;/pre&gt;

For those like me who like automatic completion, here is a snippet of my .zshrc to enable automatic completion for dpatch:

&lt;pre class='examples'&gt;
dpatch-comp() {
    f=(debian/patches/*);
    f=(${f%.dpatch});
    f=(${f#debian/patches/});
    f=(${f#00list});
    if [[ -n $f ]]; then
        _values 'patches' $f;
    fi;
}
compdef dpatch-comp dpatch-edit-patch svn-edit-patch bzr-edit-patch;
&lt;/pre&gt;

However, the problem with dpatch is that is doesn't play really well with tools like svn-buildpackage, in the case where only the debian diff is handled by the SCM. The following snippets of my .zshrc permits the use of dpatch even in these cases:

&lt;pre class='examples'&gt;
svn-edit-patch () {
    patch="$1"
    shift;
    target=`pwd`;
    svn-buildpackage \
        --svn-ignore-new --svn-builder="dpatch-edit-patch $patch $@" \
        --svn-postbuild="cp debian/patches/$patch* $target/debian/patches"
}

bzr-edit-patch () {
    patch="$1"
    target=`pwd`;
    bzr builddeb -w \
        --builder="dpatch-edit-patch $patch &amp;&amp; cp debian/patches/$patch* $target/debian/patches" 
}
&lt;/pre&gt;

Just run svn-edit-patch as you would run dpatch-edit-patch. In the hope that someone will find that useful...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-6585530250876158257?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/6585530250876158257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=6585530250876158257' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/6585530250876158257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/6585530250876158257'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/09/dpatch-and-svn-buildpackage.html' title='dpatch and svn-buildpackage'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1240453596318911482</id><published>2007-09-29T15:34:00.000+02:00</published><updated>2007-10-12T23:49:56.813+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>Debaday needs entries</title><content type='html'>The &lt;a href="http://debaday.debian.net"&gt;Debian package of the Day blog&lt;/a&gt; is looking for contributors, as can be seen in &lt;a href="http://debaday.debian.net/2007/09/27/debaday-needs-your-help-yeah-seriously/"&gt;this post&lt;/a&gt;. If there are debian packages you use, please consider writing an entry ! Here are my views on the subject:

&lt;ul&gt;
&lt;li&gt;It is rather quick - you don't have to write 200 lines. Just write about the way &lt;b&gt;you&lt;/b&gt; use it !&lt;/li&gt;
&lt;li&gt;With the statistics page, you'll be able to get an opinion of the impact of your post.&lt;/li&gt;
&lt;li&gt;If you advocate the software well enough, it will gain users, which often implies a gain in quality in the Free Software world (more users means more bug reports, more patches, and possibly more contributors).
&lt;/ul&gt;

Of course, that means you'll need to write a decent entry. But for something you often use and you appreciate, that isn't so difficult. Check out their &lt;a href="http://debaday.debian.net/contribute/"&gt;contribute page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1240453596318911482?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1240453596318911482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1240453596318911482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1240453596318911482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1240453596318911482'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/09/debaday-needs-entries.html' title='Debaday needs entries'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1984201429956585173</id><published>2007-09-26T21:16:00.001+02:00</published><updated>2007-09-28T11:58:43.675+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>freecol, a great game</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BDEUZ9HplLg/RvzP7RQkHzI/AAAAAAAAAAc/a_Tj29Yd_0o/s1600-h/freecol.jpeg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_BDEUZ9HplLg/RvzP7RQkHzI/AAAAAAAAAAc/a_Tj29Yd_0o/s200/freecol.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5115191893938151218" /&gt;&lt;/a&gt;
I've recently discovered &lt;a href="http://www.freecol.org"&gt;Freecol&lt;/a&gt;, a great GPLed game in the spirit of Civilization, but in my opinion showing more subtlety. So, I've decided to package it for Debian (see the ITP bug  &lt;a href="http://bugs.debian.org/444199"&gt;444199&lt;/a&gt;). Funnily enough, this triggered quite a few (mostly positive) reactions, and the authors of freecol seem enthousiastic. Great, that will be my first game and my first java package !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1984201429956585173?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1984201429956585173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1984201429956585173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1984201429956585173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1984201429956585173'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/09/freecol-great-game.html' title='freecol, a great game'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BDEUZ9HplLg/RvzP7RQkHzI/AAAAAAAAAAc/a_Tj29Yd_0o/s72-c/freecol.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-1558950157059312168</id><published>2007-09-26T00:25:00.001+02:00</published><updated>2007-09-26T00:40:43.104+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tioga'/><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><category scheme='http://www.blogger.com/atom/ns#' term='ctioga'/><title type='text'>Ruby</title><content type='html'>Well, I couldn't really start a blog without writing a small article about this fantastic programming language, &lt;a href="http://ruby-lang.org"&gt;Ruby&lt;/a&gt;. It all started when a friend of mine posted a message about the &lt;a href="http://tioga.rubyforge.org"&gt;Tioga plotting library&lt;/a&gt;.
&lt;p&gt;
He said that this library was producing great plots (he saw directly plots made by its creator, &lt;a href="http://www.kitp.ucsb.edu/~paxton/"&gt;Bill Paxton&lt;/a&gt;). When I saw &lt;a href="http://www.kitp.ucsb.edu/~paxton/mpgs/entropy_9-0.mpg"&gt;this video&lt;/a&gt;, I was sincerely convinced !
&lt;p&gt;
So then, as the library was only for the Ruby programming language, I started immediately to learn Ruby, using the &lt;a href="http://www.pragmaticprogrammer.com/titles/ruby/index.html"&gt;Pragmatic Programmer's Programming Ruby&lt;/a&gt;. I found it an extremely enjoyable experience. Within an hour, I had made my first Ruby script using Tioga. Before the end of the day, I was sending my first bug report to Bill. The following day, I had already started to work on a (very poor at that time) first version of &lt;a href="http://sciyag.rubyforge.org/ctioga"&gt;ctioga&lt;/a&gt;...
&lt;p&gt;
I've gone on working with Ruby ever since... I wrote no less than 9000 lines of code only in the &lt;a href="http://rubyforge.org/projects/sciyag"&gt;SciYAG project&lt;/a&gt; on Rubyforge, not mentioning other projects using Ruby and the countless scripts I have written for my everyday science... Ruby is extremely comfortable to program with. A pure delight !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-1558950157059312168?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/1558950157059312168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=1558950157059312168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1558950157059312168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/1558950157059312168'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/09/ruby.html' title='Ruby'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-6449318401053465252</id><published>2007-09-25T23:21:00.000+02:00</published><updated>2007-09-25T23:34:13.304+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>qtodo, a neat TODO-list manager</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BDEUZ9HplLg/Rvl91BQkHyI/AAAAAAAAAAU/Hydo533gxHc/s1600-h/qtodo.png"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_BDEUZ9HplLg/Rvl91BQkHyI/AAAAAAAAAAU/Hydo533gxHc/s200/qtodo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5114257201680359202" /&gt;&lt;/a&gt;
I've been looking for a while for a decent hierarchical TODO-list manager... I've looked around at many things, and I have been rather disappointed so far, until recently. I indeed seem to have found what I need with &lt;a href="http://qtodo.berlios.de/"&gt;qtodo&lt;/a&gt;, which is fairly decent.

Among the advantages, let's name a few:
&lt;ul&gt;
&lt;li&gt;the format is a slightly improved plain text, which makes it suitable for reading without qtodo&lt;/li&gt;
&lt;li&gt;fairly easy to use&lt;/li&gt;
&lt;li&gt;can manage several TODO-lists at the same time&lt;/li&gt;
&lt;/ul&gt;

Development seems to have stopped a year ago though. I might want to try my hand at it, whenever I get some free time - or slightly more crazy than I currently am.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-6449318401053465252?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/6449318401053465252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=6449318401053465252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/6449318401053465252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/6449318401053465252'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/09/qtodo-neat-todo-list-manager.html' title='qtodo, a neat TODO-list manager'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BDEUZ9HplLg/Rvl91BQkHyI/AAAAAAAAAAU/Hydo533gxHc/s72-c/qtodo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-6855424449974928106</id><published>2007-09-25T00:52:00.000+02:00</published><updated>2007-09-25T00:56:27.448+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sciyag'/><category scheme='http://www.blogger.com/atom/ns#' term='ctioga'/><title type='text'>ctioga's new legends</title><content type='html'>Since release 1.6 of &lt;a href="http://sciyag.rubyforge.org/ctioga"&gt;ctioga&lt;/a&gt;,  the legends had moved away from the graph, and were not anymore aligned with the plot's internal boundaries. It might not seem much, but the look was horrible, and, even worse, a lot of white space was inserted between the legend and the graph. I've just commited a fix to the SVN repository, and it now looks nearly like before 1.6. Great !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-6855424449974928106?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/6855424449974928106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=6855424449974928106' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/6855424449974928106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/6855424449974928106'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/09/ctiogas-new-legends.html' title='ctioga&apos;s new legends'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3019054489127059271.post-205373010518348162</id><published>2007-09-24T22:00:00.000+02:00</published><updated>2007-09-24T22:14:13.694+02:00</updated><title type='text'>Finally...</title><content type='html'>... I've decided to move away from my old site and old blog (based on &lt;a href="http://hobix.com"&gt;Hobix&lt;/a&gt;) to switch to more conventional blogs.

You're likely to find useful things about Debian, Ruby, Qt4, programs I develop, and you're even more likely to find less than useful things about basically anything.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3019054489127059271-205373010518348162?l=vince-debian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vince-debian.blogspot.com/feeds/205373010518348162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3019054489127059271&amp;postID=205373010518348162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/205373010518348162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3019054489127059271/posts/default/205373010518348162'/><link rel='alternate' type='text/html' href='http://vince-debian.blogspot.com/2007/09/finally.html' title='Finally...'/><author><name>Vincent Fourmond</name><uri>http://www.blogger.com/profile/04388598885608111329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
