<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>WhiteRabbit's braindump</title>
<link>http://www.rutschle.net/wiki/</link>
<description>English words from a French rabbit's brain</description>
<language>en-us</language>
<copyright>Copyright 2011 WhiteRabbit</copyright>
<pubDate>Wed, 14 Dec 2011 20:55:39 GMT</pubDate>
<lastBuildDate>Wed, 14 Dec 2011 20:55:39 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>TiddlyWiki 2.1.3</generator>
<item>
<title>Killing undead processes</title>
<description>Sometimes you want to kill a process, and &lt;code&gt;kill&lt;/code&gt; doesn't work, and &lt;code&gt;kill -9&lt;/code&gt; doesn't work either.&lt;br&gt;&lt;br&gt;I think this can happen when a process is blocked in kernel mode waiting for some event.&lt;br&gt;&lt;br&gt;What is sure is that a zombie cannot be killed. Zombie processes are already terminated, and appear in the output of &lt;code&gt;ps&lt;/code&gt; as &lt;code&gt;&amp;lt;defunct&amp;gt;&lt;/code&gt; (in Linux, anyway). The system keeps zombies around because their parent process is supposed to be able to receive their return value using &lt;code&gt;wait(2)&lt;/code&gt; or &lt;code&gt;waitpid(2)&lt;/code&gt;, so the PID cannot be re-used until the parent calls one of these functions.&lt;br&gt;&lt;br&gt;Just as in movies, you cannot kill a zombie but you can kill the zombie master: using &lt;code&gt;pstree -p&lt;/code&gt; you can find the parent of the zombie, and that's the one you need to kill.  As soon as the parent process dies, all zombie processes that it spawned will disappear.&lt;br&gt;&lt;br&gt;You shouldn't feel too bad about killing the parent: leaving zombies is a sign that the application is malfunctionning anyway.&lt;br&gt;     &lt;br&gt;</description>
<category>tech</category>
<link>http://www.rutschle.net/wiki/#%5B%5BKilling%20undead%20processes%5D%5D</link>
<pubDate>Wed, 14 Dec 2011 20:55:32 GMT</pubDate>
</item>
<item>
<title>makemkv</title>
<description>Sometimes, you want to watch a DVD on a set-top box such as the &lt;em&gt;Freebox&lt;/em&gt; (in a version that doesn't have a disc drive), or maybe you want to to watch an ISO...&lt;br&gt;&lt;br&gt;I used to have &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.mplayerhq.hu&quot; href=&quot;http://www.mplayerhq.hu&quot; class=&quot;externalLink&quot;&gt;mplayer&lt;/a&gt; scripts to try and extract the right track, with the right audio and the right subtitles. Until I ran into the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.imdb.com/title/tt0082198/&quot; href=&quot;http://www.imdb.com/title/tt0082198/&quot; class=&quot;externalLink&quot;&gt;Conan&lt;/a&gt; DVD ISO, which I just could not make sense of. Out of frustration, I set out to find a better solution. And here it is, Kevin!&lt;br&gt;&lt;br&gt;Enter &lt;a target=&quot;_blank&quot; title=&quot;External link to http://makemkv.com/&quot; href=&quot;http://makemkv.com/&quot; class=&quot;externalLink&quot;&gt;makemkv&lt;/a&gt;. It'll read the structure of the DVD (from the drive, or from an ISO), and let you create a MKV file, while selecting which audio and which subtitles you want to include in the final file. And it'll do all that in just a few minutes.</description>
<category>tech</category>
<category>convert</category>
<category>mkv</category>
<category>iso</category>
<link>http://www.rutschle.net/wiki/#makemkv</link>
<pubDate>Tue, 13 Dec 2011 19:56:00 GMT</pubDate>
</item>
<item>
<title>sslh 1.8</title>
<description>Just released a new version of &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.rutschle.net/tech/sslh.shtml&quot; href=&quot;http://www.rutschle.net/tech/sslh.shtml&quot; class=&quot;externalLink&quot;&gt;sslh&lt;/a&gt;. It's beautiful and shiny, can connect to &lt;a tiddlylink=&quot;OpenVPN&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #OpenVPN&quot; href=&quot;#OpenVPN&quot; class=&quot;externalLink&quot;&gt;OpenVPN&lt;/a&gt;, is more &lt;a tiddlylink=&quot;RFC-compliant&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #RFC-compliant&quot; href=&quot;#RFC-compliant&quot; class=&quot;externalLink&quot;&gt;RFC-compliant&lt;/a&gt;, and can run with select() i.e. without forking, which is supposed to be better for performance (especially under Cygwin).</description>
<category>blog</category>
<category>coding</category>
<category>tech</category>
<link>http://www.rutschle.net/wiki/#%5B%5Bsslh%201.8%5D%5D</link>
<pubDate>Fri, 15 Jul 2011 16:18:00 GMT</pubDate>
</item>
<item>
<title>Windows Backup</title>
<description>Ok, after a recent problem on Narelle's computer that suddenly exhibited signs of madness due to the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.bleepingcomputer.com/virus-removal/remove-windows-xp-recovery&quot; href=&quot;http://www.bleepingcomputer.com/virus-removal/remove-windows-xp-recovery&quot; class=&quot;externalLink&quot;&gt;Windows XP Recovery&lt;/a&gt; virus, I thought it was about time I installed a proper backup system for it.&lt;br&gt;&lt;br&gt;My basic requirements for a backup system are:&lt;br&gt;&lt;ul&gt;&lt;li&gt; Must work automatically (because users always forget to backup, or will &quot;do it a little later).&lt;/li&gt;&lt;li&gt; Must work over the network (because there is no point doing the backup in the same computer, and saving to discs and both inconvenient (see point 1) and expensive).&lt;/li&gt;&lt;li&gt; Should be based on &lt;em&gt;rsync&lt;/em&gt; or equivalent, because bandwidth isn't infinite.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;In this case the additional requirements are:&lt;br&gt;&lt;ul&gt;&lt;li&gt; Must work for a Windows client&lt;/li&gt;&lt;li&gt; Must work for a Linux server&lt;/li&gt;&lt;li&gt; Should only attempt backups when the Windows client is located on the local network, as we don't want to be performing a backup through a slow public wifi from the other side of the world. Although if optionaly we &lt;em&gt;can&lt;/em&gt; do that (if we're travelling for months or something) it &lt;em&gt;should&lt;/em&gt; be possible.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;Because, well, that's just the way things are.&lt;br&gt;&lt;br&gt;Last time I tried to solve this by installing &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.cygwin.com/&quot; href=&quot;http://www.cygwin.com/&quot; class=&quot;externalLink&quot;&gt;Cygwin&lt;/a&gt;, a little script that would heuristically determine if it was on the local network (based on the IP, the gateway, and the presence of the server at the expected address) and rsync over ssh. This solution kinds of works, but Cygwin tends to be a last resort solution and suffers from Windows' lack of correct &lt;em&gt;cron&lt;/em&gt; implementation, so scheduling is a pain.&lt;br&gt;&lt;br&gt;There is actually a much simpler solution: Install the stand-alone version of &lt;a target=&quot;_blank&quot; title=&quot;External link to http://sourceforge.net/projects/backuppc/files/cygwin-rsyncd/2.6.8_0/&quot; href=&quot;http://sourceforge.net/projects/backuppc/files/cygwin-rsyncd/2.6.8_0/&quot; class=&quot;externalLink&quot;&gt;rsync&lt;/a&gt;, configure it so &lt;em&gt;rsync&lt;/em&gt; can access the &lt;em&gt;Document and Settings&lt;/em&gt; folder and run it as a Windows service, then script everything from the server: a simple &lt;em&gt;cron&lt;/em&gt; running every night, connects to the &lt;em&gt;rsyncd&lt;/em&gt; service on the Windows client and retrieves the changed files. And then just feed that through the normal Unix backup you use (I use &lt;a target=&quot;_blank&quot; title=&quot;External link to http://backup2l.sourceforge.net/&quot; href=&quot;http://backup2l.sourceforge.net/&quot; class=&quot;externalLink&quot;&gt;Backup2l&lt;/a&gt;).&lt;br&gt;&lt;br&gt;You'll have to make sure the Windows computer inherits a fixed address from the DHCP server, if applicable, obviously.&lt;br&gt;&lt;br&gt;This, combined with &lt;a tiddlylink=&quot;OpenVPN&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #OpenVPN&quot; href=&quot;#OpenVPN&quot; class=&quot;externalLink&quot;&gt;OpenVPN&lt;/a&gt;, could potentially be used to backup remotely (as in, over the Internet) as well; this is still to study, I'm just getting started with &lt;a tiddlylink=&quot;OpenVPN&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #OpenVPN&quot; href=&quot;#OpenVPN&quot; class=&quot;externalLink&quot;&gt;OpenVPN&lt;/a&gt;.&lt;br&gt;</description>
<link>http://www.rutschle.net/wiki/#%5B%5BWindows%20Backup%5D%5D</link>
<pubDate>Thu, 09 Jun 2011 19:32:00 GMT</pubDate>
</item>
<item>
<title>ClamAV failure</title>
<description>This morning Exim complained about &lt;a tiddlylink=&quot;ClamAV&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #ClamAV&quot; href=&quot;#ClamAV&quot; class=&quot;externalLink&quot;&gt;ClamAV&lt;/a&gt; daemon not being present. Upon inspection it turns out that &lt;a tiddlylink=&quot;ClamAV&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #ClamAV&quot; href=&quot;#ClamAV&quot; class=&quot;externalLink&quot;&gt;ClamAV&lt;/a&gt; was complaining that its databases were broken. This may be linked to all the restarts we made yesterday to test various combinations of programmes and see what made X crash. Anyway, removing the databases in &lt;code&gt;/var/lib/clamav/&lt;/code&gt; then running &lt;code&gt;freshclam&lt;/code&gt; (which takes a while, as the entire database has to be re-loaded) fixed the problem. &lt;br&gt;&lt;br&gt;It's unclear whether e-mail gets bounced or simply delivered without scanning when the malware ACL fails.&lt;br&gt;</description>
<category>tech</category>
<category>blog</category>
<link>http://www.rutschle.net/wiki/#%5B%5BClamAV%20failure%5D%5D</link>
<pubDate>Sat, 05 Feb 2011 15:54:00 GMT</pubDate>
</item>
<item>
<title>Of teaching languages</title>
<description>The French education minister got a new, brilliant idea to tackle the French' abysmal level of English (and foreign languages in general): let's start teaching children in kindergarten, from age 3. The rationale has been heard many times before: everyone knows that children are just like sponges, they learn extremely quickly and can just pick up foreign languages in a couple of days. In fact, it's known that we should also just teach them advanced mathematics and quantum theory.  Logically, the next minister should try to out-do the current minister, and propose &lt;em&gt;in utero&lt;/em&gt; English introduction courses (which will give the &quot;introduction&quot; a whole new meaning.)&lt;br&gt;&lt;br&gt;Clearly this does not pass the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://dilbert.com/blog/entry/mockability_test/&quot; href=&quot;http://dilbert.com/blog/entry/mockability_test/&quot; class=&quot;externalLink&quot;&gt;mockability test&lt;/a&gt;.  Many things bother me in this theory: children are supposed to learn a language easily, yet French kids are taught French in school for 10 years, and after that many are still not very good (as in, can't write a coherent cover letter that's not littered with grammar and spelling mistakes.) In the past I met a German guy who grew up in Brazil for a few years. He did in fact learn a lot of Portuguese. He left Brazil by the age of 6 or so, and when I met him in Germany as he was 35 he could not speak or understand a word of Portuguese. A lot of things that children are taught at a very early age are just forgotten if the teaching is not continuous.&lt;br&gt;&lt;br&gt;And then there is the assumption that adults just can't learn new languages. I think that's a convenient position adults like to corner themselves in: they suck at languages, but what can they do about it, it's the fault of their teaching system that didn't start on them early enough, and now they're 30 and it's too late and they'll just suck at languages forever no matter how hard they try, so why bother. Well, that's just all bullshit: I know from personal experience that I started English in school at the age of 14, I absolutely sucked at school until I was about 20, discovered the Internet and started using English as a communication tool and became bilingual within a few years, to the point that native English speakers often can't tell I'm not in fact a native. I went on to become fluent in German as well, a language at which I sucked even more than English at school.&lt;br&gt;&lt;br&gt;I think the biggest problem with the French language teaching system is a problem of goal (and this may apply to some other language teaching systems, but I can't vouch for them).  English teachers tend to see themselves, I guess, as English literature teachers. As long as they don't start regarding themselves as &lt;em&gt;communication&lt;/em&gt; teachers, their efforts are doomed. There is no point reading Marting Luther King when you can't order food at a restaurant. There is no point knowing how to describe a picture when you can't ask for directions to the nearest hospital. There is no point teaching English as a abstract subject without showing to kids that it can serve them to connect to the world, which is something that the Internet actually makes possible today (I do pity language teachers from the time of my youth, when the only easily available resources were Time Magazine and the Wall Street Journal.)&lt;br&gt;&lt;br&gt;In a similar vein are the language teachers with an agenda.  My wife teaches English in Engineering schools in France. She was once asked to teach an entire curriculum about the place of women in society and in the industry in particular. Way to go to bore 20 year-old engineering boys who would like nothing more than to have more girls in their classrooms, but have no idea why that's not the case.  Meanwhile her fun class on creative use of technology was poo-pooed as pandering to the kids (I guess). Here's a teacher with the wrong agenda: her classroom is not the place to teach kids about feminism, it's supposed to be the place to teach them English, and the topics chosen should only matter insofar that they motivate the kids. Show them that understanding English enables them to understand Youtube videos about robots, and they'll actually go and seek them by themselves. Show them that English girls like Byron, and they may even get an interest in poetry.&lt;br&gt;&lt;br&gt;On top of that problem of creating motivation (the carrot), there was a problem of lack of coercion (the stick). I remember being clearly told that in high school, it didn't really matter if I sucked at history, or biology, or languages, because I'd never have to do the year again as long as I was good enough at French and maths. Right, so I'm a 14 year old French boy, I see no point in learning any English because let's be honest, who the heck would want to live in Britain, and I won't get punished if I suck at English? Give me a break, I'd rather play video games. Uh-oh, that &lt;em&gt;D&amp;amp;D Pool of Radiance&lt;/em&gt; is entirely in English. And that's how by the time I reached the end of high school, I could have taught English teachers about medieval weapons (in English, obviously). Still couldn't ask for direction to the nearest inn, though. That's the strength of motivation.  This particular point might be slowly changing, with a raising number of Engineering schools making it mandatory to have a Cambridge certificate or a minimum TOIC score to obtain the degree. However, while that certainly should be motivating for Engineering students, there needs to be something similar earlier on that applies to all children (presumably, if you consider everyone should speak a little bit of English, which the minister's idea seems to entail.)&lt;br&gt;&lt;br&gt;So there, another silly idea from a minister that probably doesn't know much about teaching, nor about languages.  Luckily, there will be no funding for this idea and it'll stay where it is. Actually, want to bet that when they start finding it difficult and expensive to implement, they'll suddenly come across a study that explains that teaching kids languages at an early age achieves nothing?&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
<category>politics</category>
<category>blog</category>
<link>http://www.rutschle.net/wiki/#%5B%5BOf%20teaching%20languages%5D%5D</link>
<pubDate>Sat, 05 Feb 2011 15:53:00 GMT</pubDate>
</item>
<item>
<title>ReadItLater, Pentadactyl and Kindle</title>
<description>You know how you always open too many tabs in Firefox for deferred reading, and then you end up with a thousand tabs because you're not getting around to reading them, and then Firefox crashes and then you lose them all? Plus, it's rather unmanageable.&lt;br&gt;&lt;br&gt;Enter &lt;a target=&quot;_blank&quot; title=&quot;External link to http://readitlaterlist.com/&quot; href=&quot;http://readitlaterlist.com/&quot; class=&quot;externalLink&quot;&gt;Read it later&lt;/a&gt;. Now you can just add the tab to a reading list, and close it. Later on when you have time, you can come back to your reading list.&lt;br&gt;&lt;br&gt;But wait, there's more. You can open an account with Read It Later, and then you can synchronise your reading list between all your Firefoxes.&lt;br&gt;&lt;br&gt;But wait, there's more. You can get &lt;a target=&quot;_blank&quot; title=&quot;External link to http://calibre-ebook.com/&quot; href=&quot;http://calibre-ebook.com/&quot; class=&quot;externalLink&quot;&gt;Calibre&lt;/a&gt; to use your reading list as a news source (in the &quot;unknown&quot; section of Scheduled News) and Calibre will download your entire list, make it into a periodical entry, and send it to your Kindle. Now how's that for cool (and non-straightforward)?&lt;br&gt;&lt;br&gt;Ok, so to get to that point I ran into a number of problems. Read It Later does not work with Vimperator, and I have no idea why. I discovered that there is now a branch of Vimperator called Pentadactyl (which is actually a funny name), which is compatible with Read It Later, and seems to have some new functions over Vimperator too. But Pentadactyl requires Firefox 3.6, which is not in Debian yet. I discovered Mozilla provides a tar of Firefox that just unpacks and somehow works directly on Debian stable. Problem solved: with Firefox 3.6, I can have Pentadactyl, which lets Read It Later works happily. And that's how wanting one little extension makes you upgrade half of your computer.&lt;br&gt;&lt;br&gt;And on top of that, I add a file &lt;code&gt;readitlater.js&lt;/code&gt; in &lt;code&gt;~/.pentadactyl/plugins&lt;/code&gt; containing:&lt;br&gt;&lt;br&gt;&lt;pre&gt;commands.addUserCommand(['readitlater'], &quot;Read Later&quot;,function(){RIL.addCurrent();RIL.addedFromLocationBar();});
commands.addUserCommand(['markasread'], &quot;Mark as Read&quot;, function(){RIL.markCurrentAsRead();});
commands.addUserCommand(['readsomething'], &quot;Read Something&quot;, function(){RIL.readSomething();});
&lt;/pre&gt;&lt;br&gt;That way, I have new commands: &lt;code&gt;:readitlater&lt;/code&gt; and &lt;code&gt;:markasread&lt;/code&gt;, to set my reading list, and &lt;code&gt;:readsomething&lt;/code&gt; to open the reading list. The next step will be to integrate the reading list properly the same way as it is done in Pentadactyl.&lt;br&gt;&lt;br&gt;</description>
<category>tech</category>
<category>blog</category>
<link>http://www.rutschle.net/wiki/#%5B%5BReadItLater%2C%20Pentadactyl%20and%20Kindle%5D%5D</link>
<pubDate>Sat, 05 Feb 2011 15:53:00 GMT</pubDate>
</item>
<item>
<title>Posting e-mail</title>
<description>So, recently we ran into a problem at englishintoulouse.com: we have over 500 members, and our ISP, which I used as a smarthost, objects to our sending more than 200 e-mails a day. So, sending a newsletter becomes a two-day job, with the last people on the list getting the newsletter a lot later than they should.&lt;br&gt;&lt;br&gt;I went through the pain of setting up my own outgoing SMTP server. It was simple 10 years ago when all SMTP servers just accepted your e-mail: thanks to spammers, it's become much harder and your setup needs to be a lot more precise if you want large &lt;a tiddlylink=&quot;ISPs&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #ISPs&quot; href=&quot;#ISPs&quot; class=&quot;externalLink&quot;&gt;ISPs&lt;/a&gt; to accept mail from your.&lt;br&gt;&lt;br&gt;Here are the changes I made.&lt;br&gt;&lt;br&gt;&lt;h1&gt; SPF&lt;/h1&gt;&lt;br&gt;SPF (Sender Policy Framework) is a DNS record that documents who has the right to send e-mail for your domain. In our case, the IP address documented as A and MX record are allowed to send e-mail for us.&lt;br&gt;&lt;br&gt;For &lt;a tiddlylink=&quot;MaraDNS&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #MaraDNS&quot; href=&quot;#MaraDNS&quot; class=&quot;externalLink&quot;&gt;MaraDNS&lt;/a&gt;, you add a line like this:&lt;br&gt;&lt;pre&gt;%       spf     'v=spf1 a mx ~all'
%       txt     'v=spf1 a mx ~all'
&lt;/pre&gt;&lt;br&gt;More details about SPF, including a script that builds the SPF record for you, are available on the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.openspf.org&quot; href=&quot;http://www.openspf.org&quot; class=&quot;externalLink&quot;&gt;SPF Web site&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;h1&gt; ISP setup&lt;/h1&gt;&lt;br&gt;Several large ISP (e.g. AOL) filter incoming mail depending on the emitting IP address. &lt;br&gt;&lt;br&gt;Configure a reverse DNS with your ISP, so the RDNS is consistent with your domain (I am not sure this is totally useful).&lt;br&gt;&lt;br&gt;Remove your residential IP from &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.spamhaus.org&quot; href=&quot;http://www.spamhaus.org&quot; class=&quot;externalLink&quot;&gt;SpamHaus&lt;/a&gt; PBL: , link &quot;Remove IP Address&quot;.  This lets most serious &lt;a tiddlylink=&quot;ISPs&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #ISPs&quot; href=&quot;#ISPs&quot; class=&quot;externalLink&quot;&gt;ISPs&lt;/a&gt; (Yahoo, Gmail, ...) receive your e-mail.  Some other &lt;a tiddlylink=&quot;ISPs&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #ISPs&quot; href=&quot;#ISPs&quot; class=&quot;externalLink&quot;&gt;ISPs&lt;/a&gt; use a blacklist from &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.mail-abuse.com/&quot; href=&quot;http://www.mail-abuse.com/&quot; class=&quot;externalLink&quot;&gt;Trend Micro&lt;/a&gt;.  You'll also need to request being taken off their list.&lt;br&gt;&lt;br&gt;AOL still won't listen, so use your ISP as smarthost just for them, adding to /etc/exim4/hubbed_hosts:&lt;br&gt;&lt;pre&gt;aol.com: smtp.free.fr
&lt;/pre&gt;&lt;br&gt;AOL also lets you set up a spam feedback loop, but I am not done with that yet.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt; Check your DNS setup&lt;/h1&gt;&lt;br&gt;Another goal I had was to pass all of zonecheck(1) tests. This can be either run from their &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.zonecheck.com&quot; href=&quot;http://www.zonecheck.com&quot; class=&quot;externalLink&quot;&gt;Web site&lt;/a&gt; or installed under Debian &lt;code&gt;apt-get install zonecheck&lt;/code&gt;.&lt;br&gt;&lt;br&gt;It pointed out that my DNS setup was klunky at best. So, what I need to do is tell my registrar that each of my domains has two nameservers, ns1.% and ns2.%, with the appropriate addresses. The registrar transmits that to the registry. The thing is, this will only work properly if your DNS is consistent with the registry, i.e. you have ns1.% and ns2.% A and NS records set up. In &lt;a tiddlylink=&quot;MaraDNS&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #MaraDNS&quot; href=&quot;#MaraDNS&quot; class=&quot;externalLink&quot;&gt;MaraDNS&lt;/a&gt;:&lt;br&gt;&lt;pre&gt;%       NS      ns1.%
%       NS      ns2.%

ns1.%           80.68.89.183
ns2.%           82.235.147.6
&lt;/pre&gt;&lt;br&gt;Then zonecheck insists that my servers should also serve TCP requests. In &lt;a tiddlylink=&quot;MaraDNS&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #MaraDNS&quot; href=&quot;#MaraDNS&quot; class=&quot;externalLink&quot;&gt;MaraDNS&lt;/a&gt;, in &lt;code&gt;/etc/mararc&lt;/code&gt;:&lt;br&gt;&lt;pre&gt;tcp_convert_acl = &quot;0.0.0.0/0&quot;
tcp_convert_server = &quot;80.68.89.183&quot;
&lt;/pre&gt;(with the appropriate IP address of course), and restart zoneserver (not maradns!).&lt;br&gt;&lt;br&gt;Another pretty, Web-based, DNS tool that you can use is &lt;a target=&quot;_blank&quot; title=&quot;External link to http://dnscheck.iis.se/&quot; href=&quot;http://dnscheck.iis.se/&quot; class=&quot;externalLink&quot;&gt;DNSCheck&lt;/a&gt;, which has the advantage of giving you an external view of your setup even if you do not have access to a machine outside your network.&lt;br&gt;&lt;br&gt;&lt;h1&gt; Misc&lt;/h1&gt;&lt;br&gt;You can test your e-mail system with &lt;br&gt;&lt;pre&gt;telnet relay-test.mail-abuse.org
&lt;/pre&gt;This runs a series of security tests on the IP you're coming from and tells you the results. Ideal to find if you're accidently set up as an open relay.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
<category>tech</category>
<link>http://www.rutschle.net/wiki/#%5B%5BPosting%20e-mail%5D%5D</link>
<pubDate>Mon, 04 Oct 2010 16:51:00 GMT</pubDate>
</item>
<item>
<title>OmniComment 1.2</title>
<description>&lt;a tiddlylink=&quot;OmniComment&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #OmniComment&quot; href=&quot;#OmniComment&quot; class=&quot;externalLink&quot;&gt;OmniComment&lt;/a&gt; now supports RSS. I mean, ATOM. You can subscribe to the comments on this blog by going to any page of the site and subscribing there, as I haven't done what is requred on Tiddly wiki.&lt;br&gt;&lt;br&gt;You can also &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.rutschle.net/tech/omnicomment.shtml&quot; href=&quot;http://www.rutschle.net/tech/omnicomment.shtml&quot; class=&quot;externalLink&quot;&gt;download&lt;/a&gt; it.</description>
<category>blog</category>
<category>tech</category>
<link>http://www.rutschle.net/wiki/#%5B%5BOmniComment%201.2%5D%5D</link>
<pubDate>Sun, 13 Jun 2010 19:56:00 GMT</pubDate>
</item>
<item>
<title>OmniComment</title>
<description>I am releasing today the first version of &lt;a tiddlylink=&quot;OmniComment&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #OmniComment&quot; href=&quot;#OmniComment&quot; class=&quot;externalLink&quot;&gt;OmniComment&lt;/a&gt;. People can now leave comments not only on here, but also anywhere on my site. It'll now be obvious that I have no friends ;)&lt;br&gt;&lt;br&gt;It's available here: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.rutschle.net/tech/omnicomment.shtml&quot; href=&quot;http://www.rutschle.net/tech/omnicomment.shtml&quot; class=&quot;externalLink&quot;&gt;OmniComment&lt;/a&gt;&lt;br&gt;&lt;br&gt;Old comments that had been posted on Haloscan will be re-installed soon.&lt;br&gt;&lt;br&gt;In terms of installation, all the details for &lt;a tiddlylink=&quot;OmniComment&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #OmniComment&quot; href=&quot;#OmniComment&quot; class=&quot;externalLink&quot;&gt;OmniComment&lt;/a&gt; are in the tar ball for the server side. On the client side and for &lt;a tiddlylink=&quot;TiddlyWiki&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #TiddlyWiki&quot; href=&quot;#TiddlyWiki&quot; class=&quot;externalLink&quot;&gt;TiddlyWiki&lt;/a&gt; integration, you'll need &lt;a tiddlylink=&quot;OmniPlugin&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #OmniPlugin&quot; href=&quot;#OmniPlugin&quot; class=&quot;externalLink&quot;&gt;OmniPlugin&lt;/a&gt;, which works fine but doesn't yet have all the meta-data that &lt;a tiddlylink=&quot;TiddlyWiki&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #TiddlyWiki&quot; href=&quot;#TiddlyWiki&quot; class=&quot;externalLink&quot;&gt;TiddlyWiki&lt;/a&gt; suggests. It should be as simple as copying &lt;a tiddlylink=&quot;OmniPlugin&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #OmniPlugin&quot; href=&quot;#OmniPlugin&quot; class=&quot;externalLink&quot;&gt;OmniPlugin&lt;/a&gt; in your &lt;a tiddlylink=&quot;TiddlyWiki&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #TiddlyWiki&quot; href=&quot;#TiddlyWiki&quot; class=&quot;externalLink&quot;&gt;TiddlyWiki&lt;/a&gt;, and adding a line in &lt;a tiddlylink=&quot;ViewTemplate&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #ViewTemplate&quot; href=&quot;#ViewTemplate&quot; class=&quot;externalLink&quot;&gt;ViewTemplate&lt;/a&gt; to add the comment link. You will however need to change something in &lt;em&gt;omni.cgi&lt;/em&gt; (search for &quot;ugly hack&quot;, it'll be obvious what you need to do).</description>
<category>blog</category>
<category>tech</category>
<link>http://www.rutschle.net/wiki/#OmniComment</link>
<pubDate>Sun, 23 May 2010 11:55:00 GMT</pubDate>
</item>
<item>
<title>OmniPlugin</title>
<description>&lt;em&gt; Interface Tiddly with OmniComment to get a comment page for each Tiddler.&lt;br&gt;&lt;br&gt;&lt;/em&gt; &lt;code&gt;
var cgi_path = &quot;/cgi/omni.cgi&quot;;
var server = &quot;http://&quot; + window.location.hostname;

config.macros.omni = {};

config.macros.omni.handler = function (place,macroName,params,wikifier,paramString,tiddler){ 
    
    var id = story.findContainingTiddler(place).id.substr(7);
    var hs_search = new RegExp('\\W', 'gi');
    id = id.replace(hs_search, &quot;_&quot;);

    xh = new XMLHttpRequest();
    xh.open(&quot;GET&quot;, server + cgi_path + &quot;?count=1&amp;amp;filename=wiki_&quot; + id, false);
    xh.send(null);

    commentsLabel = &quot;Comments (&quot; + xh.responseText + &quot;)&quot;;
    var commentsPrompt = &quot;Comments on this tiddler&quot;;
    var commentsHandler = function(e) { 
        window.location=server + cgi_path + &quot;?filename=wiki_&quot;+id;
        return false;
    };
    var commentsButton = createTiddlyButton(place, commentsLabel, commentsPrompt, commentsHandler);

}


// &lt;/code&gt;</description>
<category>systemConfig</category>
<link>http://www.rutschle.net/wiki/#OmniPlugin</link>
<pubDate>Sat, 22 May 2010 07:31:00 GMT</pubDate>
</item>
<item>
<title>ViewTemplate</title>
<description>&amp;lt;div class='toolbar' macro='toolbar -closeTiddler closeOthers +editTiddler permalink references jump'&amp;gt;&amp;lt;/div&amp;gt;&lt;br&gt;&amp;lt;div class='title' macro='view title'&amp;gt;&amp;lt;/div&amp;gt;&lt;br&gt;&amp;lt;div class='subtitle'&amp;gt;&amp;lt;span macro='view modifier link'&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span macro='view modified date &lt;a tiddlylink=&quot;DD MMM YYYY&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #DD MMM YYYY&quot; href=&quot;#DD%20MMM%20YYYY&quot; class=&quot;externalLink&quot;&gt;DD MMM YYYY&lt;/a&gt;'&amp;gt;&amp;lt;/span&amp;gt; (created &amp;lt;span macro='view created date &lt;a tiddlylink=&quot;DD MMM YYYY&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #DD MMM YYYY&quot; href=&quot;#DD%20MMM%20YYYY&quot; class=&quot;externalLink&quot;&gt;DD MMM YYYY&lt;/a&gt;'&amp;gt;&amp;lt;/span&amp;gt;)&lt;br&gt;&amp;lt;div class='tagging' macro='tagging'&amp;gt;&amp;lt;/div&amp;gt;&lt;br&gt;&amp;lt;div class='tagged' macro='tags'&amp;gt;&amp;lt;/div&amp;gt;&lt;br&gt;&amp;lt;div class='viewer' macro='view text wikified'&amp;gt;&amp;lt;/div&amp;gt;&lt;br&gt;&amp;lt;span class='comments' macro='omni'&amp;gt;&amp;lt;/span&amp;gt;&lt;br&gt;&amp;lt;/div&amp;gt;&lt;br&gt;&lt;br&gt;&amp;lt;div class='tagClear'&amp;gt;&amp;lt;/div&amp;gt;</description>
<category>systemTiddlers</category>
<link>http://www.rutschle.net/wiki/#ViewTemplate</link>
<pubDate>Sun, 16 May 2010 17:39:00 GMT</pubDate>
</item>
<item>
<title>The problem with externalisation</title>
<description>I read much concern about how our privacy is threatened by all sorts of companies, such as Google (who knows everything about your secret desires) and Facebook (who knows all of your friends' birthdays).&lt;br&gt;&lt;br&gt;My biggest concern relating to all these services is externalisation, which comes at the price of loss of control over the service or your data, or both. What happens if tomorrow Facebook decides to charge you 5 euro a month for their service? Chances are there would be an uproar at first, then most users would consider that it's too small a price to pay to worry about it. Yet they'd never have joined in the first place, had the service not been free in the first place.&lt;br&gt;&lt;br&gt;Something similar happened to me recently: I used Haloscan to manage comments on this blog. Haloscan was free, easy to integrate and convenient: it did everything magically, filtered spam out, provided RSS feeds for comments and so on. And then inevitably one day they ran out of resources and slashed their free offers. I no longer have comments on my blog.&lt;br&gt;&lt;br&gt;External services are like the dark side of the force: they are easier, faster, but ultimately not as powerful as doing things the right way, which is hosting everything for yourself. Only then do you &lt;em&gt;know&lt;/em&gt; your service will surivive the stand of time. Well, as long as you pay for your ISP bill I guess.&lt;br&gt;&lt;br&gt;Eben Moglen expressed somewhat similar thoughts (although mostly from the point of view of privacy, which is another facet to the control of your own data) in a very interesting, recent &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.h-online.com/open/features/Interview-Eben-Moglen-Freedom-vs-the-Cloud-Log-955421.html&quot; href=&quot;http://www.h-online.com/open/features/Interview-Eben-Moglen-Freedom-vs-the-Cloud-Log-955421.html&quot; class=&quot;externalLink&quot;&gt;interview&lt;/a&gt;.&lt;br&gt;</description>
<category>blog</category>
<category>tech</category>
<link>http://www.rutschle.net/wiki/#%5B%5BThe%20problem%20with%20externalisation%5D%5D</link>
<pubDate>Sun, 02 May 2010 14:03:00 GMT</pubDate>
</item>
<item>
<title>O'Sushi Bar</title>
<description>This refers to &lt;em&gt;O'Sushi Bar&lt;/em&gt; in town, we haven't tried any of the others, as it seems this actually is a chain.&lt;br&gt;&lt;br&gt;We had high hopes for O'Sushi when it opened: it was small, and was the first Japanese restaurant that didn't emphasise sushi (which is a small part of Japanese cooking) or skewers (which we're not sure even exists in Japanese cooking :) ). We could get ramen, tonkatsu and few other traditional dishes at very affordable prices.&lt;br&gt;&lt;br&gt;A year down the line, the restaurant has become quite big, raised its prices on all dishes, and now does a lot more sushi. It's got a cute sushi train that's actually done by boats floating on running water in a gully. Unfortunately, that kind of sushi is only available in a &quot;all you can eat&quot; formula, and is very, very average.&lt;br&gt;&lt;br&gt;Altogether we've been disappointed.&lt;br&gt;&lt;br&gt;O Sushi Bar, 30 r Gambetta, 05 61 21 98 64</description>
<category>restaurants in Toulouse</category>
<link>http://www.rutschle.net/wiki/#%5B%5BO'Sushi%20Bar%5D%5D</link>
<pubDate>Mon, 28 Sep 2009 10:40:00 GMT</pubDate>
</item>
<item>
<title>Multi-criteria sorting in Perl</title>
<description>This is so simple I want to cry.&lt;br&gt;&lt;br&gt;You know when you need to sort a list following several critiria? &quot;Sort the files by type, then sort those that have the same type by name, then by size&quot;.&lt;br&gt;&lt;br&gt;Perl's &lt;em&gt;sort&lt;/em&gt; and comparison operators (&lt;em&gt;cmp&lt;/em&gt; and &lt;em&gt;&amp;lt;=&amp;gt;&lt;/em&gt;) come in handy:&lt;br&gt;&lt;br&gt;&lt;pre&gt; @sorted = sort { $a-&amp;gt;type cmp $b-&amp;gt;type or $a-&amp;gt;name cmp $b-&amp;gt;name or $a-&amp;gt;size &amp;lt;=&amp;gt; $b-&amp;gt;size} @list;
&lt;/pre&gt;&lt;br&gt;Assuming of course the objects in &lt;em&gt;@list&lt;/em&gt; have &lt;em&gt;type&lt;/em&gt;, &lt;em&gt;name&lt;/em&gt; and &lt;em&gt;size&lt;/em&gt; methods available.&lt;br&gt;&lt;br&gt;This reads litteraly as &lt;em&gt;&quot;compare &lt;/em&gt;a&lt;em&gt; and &lt;/em&gt;b&lt;em&gt;'s types, and if they're the same then compare their names, and then compare their sizes&quot;&lt;/em&gt;.&lt;br&gt;&lt;br&gt;Of course you should never compare file sizes, because size doesn't matter.</description>
<category>coding</category>
<link>http://www.rutschle.net/wiki/#%5B%5BMulti-criteria%20sorting%20in%20Perl%5D%5D</link>
<pubDate>Fri, 28 Aug 2009 18:36:00 GMT</pubDate>
</item>
<item>
<title>Investing in real estate</title>
<description>A few days ago in a group conversation, there was a discussion on a number of bad things about France, and in particular on how it was a scandal that landlords had such a hard time getting rid of tenants that don't pay. I kind of put a damper on the conversation when I said that financially weak people should not invest in real estate, prompting questions on whether I considered people who are capable of buying a flat are financially weak. Although I felt I knew exactly what I meant, my arguments weren't ready. They are now.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Investment&lt;/h2&gt;The foundation of investment is to keep some of your money and lend it to someone else in order to make a profit. The capital you invest may get lost or go down in value, so investors associate a risk with any investment, and ask for higher yields for higher risk investments.&lt;br&gt;&lt;br&gt;For example, investing in government-guaranteed bonds has a low risk of your capital disappearing, and has a low yield (in the order of 2% in France at the moment). Speculative investing in the Asian stock market can yield phenomenal returns (15%, sometimes more) but with a high risk of losing some of your capital (50% from 2000 to 2001 for example).&lt;br&gt;&lt;br&gt;One of the basic rules of investing in the stock market (i.e. riskier investments) is that &lt;em&gt;you should only invest money you can afford to lose&lt;/em&gt;. These words were actually &lt;em&gt;literaly&lt;/em&gt; said by an investment advisor I met a long time ago during the dot-com boom. It sounds like reasonable advice.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Investing in Real estate&lt;/h2&gt;There is no reason to treat investing in real-estate any differently. This means that before investing in a flat, you need to assess your risk:&lt;br&gt;&lt;ul&gt;&lt;li&gt; You may not find a tenant (reducing your ROI to 0%)&lt;/li&gt;&lt;li&gt; The tenant may not pay its rent (reducing your ROI to 0%)&lt;/li&gt;&lt;li&gt; The tenant may leave and cause extensive damage to the&lt;/li&gt;&lt;li&gt; flat (sending your ROI in the negative)&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;It is true that French law is strongly in favour of the tenants. However this is known ahead of time by prospective landlords, and should not come as a surprise.&lt;br&gt;&lt;br&gt;According to my investment advisor, you should only invest what you can afford to lose. This means that:&lt;br&gt;&lt;ul&gt;&lt;li&gt; if you can't find a tenant, it shouldn't be a problem,&lt;/li&gt;&lt;li&gt; if your tenant doesn't pay rent, it shouldn't be a problem,&lt;/li&gt;&lt;li&gt; if your tenant damages your flat, it shouldn't be a problem.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;Basically it means that &lt;em&gt;you can afford to lose the mortgage repayment&lt;/em&gt;. Otherwise you're exposing yourself to unacceptable risk (it's like borrowing money to invest in the Asian stock market). Being exposed to unacceptable risk is what I meant by being financially weak.&lt;br&gt;&lt;br&gt;</description>
<link>http://www.rutschle.net/wiki/#%5B%5BInvesting%20in%20real%20estate%5D%5D</link>
<pubDate>Mon, 20 Apr 2009 19:28:00 GMT</pubDate>
</item>
<item>
<title>Converting WMA to OGG</title>
<description>At the moment I have no CD drive in my main Linux computer. As a result I can't use my favourite CD ripping program (which is &lt;em&gt;jack&lt;/em&gt;, for the record). I have a CD drive on my work laptop which unfortunately runs &lt;a tiddlylink=&quot;WinXP&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to #WinXP&quot; href=&quot;#WinXP&quot; class=&quot;externalLink&quot;&gt;WinXP&lt;/a&gt;, so it can only produce WMA.&lt;br&gt;&lt;br&gt;So, I use Windows Media Player to extract the tracks to lossless WMA, then I copy them over to the Linux server and convert them as such:&lt;br&gt;&lt;br&gt;&lt;pre&gt; for i in * ; do mplayer -ao pcm &quot;$i&quot;; mv audiodump.wav &quot;$i.wav&quot;; done
 oggenc *.wav
 rm *.wma *.wav
 rename s/.wma// *
&lt;/pre&gt;&lt;br&gt;and I'm left with the same files as OGG instead of WMA. Straightforward, almost.&lt;br&gt;</description>
<category>tech</category>
<link>http://www.rutschle.net/wiki/#%5B%5BConverting%20WMA%20to%20OGG%5D%5D</link>
<pubDate>Sat, 14 Mar 2009 09:16:00 GMT</pubDate>
</item>
<item>
<title>Securely running Firefox in a chroot</title>
<description>First problem: Debian stable's Firefox is old (2.x).  Solution: install a &lt;em&gt;chroot&lt;/em&gt; containing Sid, and install the latest version.&lt;br&gt;&lt;br&gt;Thing is, it's a recurring problem in Debian; I had removed my chroot settings last time Sid turned to Stable, and I forgot how it was done. This time I'll document it.&lt;br&gt;&lt;br&gt;Second problem: The Web browser is one of the most critical pieces of software you use. The main assets on a computer are its functions (the programs and servers you run) and your data.&lt;br&gt;&lt;br&gt;My machine acts as a server, so it's got Apache: but Apache can only read files, not normally write to them. So a vulnerability in Apache alone won't compromise my system much.&lt;br&gt;&lt;br&gt;On the other hand, my Web browser has the same rights as me, which means it can read or write any of my personal files. A vulnerability in Firefox is a threat to all my data.&lt;br&gt;&lt;br&gt;Solution: run Firefox under a different user ID which has access to nothing.&lt;br&gt;&lt;br&gt;So, let's do it.&lt;br&gt;&lt;br&gt;I use &lt;em&gt;schroot&lt;/em&gt; as a wrapper to &lt;em&gt;chroot&lt;/em&gt;.&lt;br&gt;&lt;br&gt;&lt;pre&gt;# Setup chroot
debootstrap sid sid

# Use same users as main system
cd sid/etc
rm passwd; ln /etc/passwd .
rm shadow; ln /etc/shadow .
rm group; ln /etc/group .
ln /etc/hosts .

# Install Firefox
cd ..
chroot .
apt-get update
apt-get install iceweasel
&lt;/pre&gt;&lt;br&gt;Now outside the &lt;em&gt;chroot&lt;/em&gt; we add the user (which automatically gets added to the &lt;em&gt;chroot&lt;/em&gt; as well) and install &lt;em&gt;schroot&lt;/em&gt;:&lt;br&gt;&lt;br&gt;&lt;pre&gt;adduser me_www
apt-get install schroot
vi /etc/schoot/schroot.conf
&amp;lt;&amp;lt; configure &amp;gt;&amp;gt;
&lt;/pre&gt;&lt;br&gt;For some reason X forwarding won't work if the &lt;em&gt;chroot&lt;/em&gt; doesn't share the same /tmp as the main system (this doesn't totally make sense to me) so we add this to {/etc/fstab}:&lt;br&gt;&lt;br&gt;&lt;pre&gt;/home           /root/chroot/sid/home/ none bind 0 2
/dev            /root/chroot/sid/dev none bind 0 2
/tmp            /root/chroot/sid/tmp none bind 0 1
/sys            /root/chroot/sid/sys none bind 0 1
&lt;/pre&gt;&lt;br&gt;Don't forget to mount all that ({mount -a}) then we can start Firefox, in the &lt;em&gt;chroot&lt;/em&gt;, under the new user ID:&lt;br&gt;&lt;br&gt;&lt;pre&gt;schroot -u me_www -c sid -- iceweasel --display $DISPLAY
&lt;/pre&gt;&lt;br&gt;Simple, innit?&lt;br&gt;&lt;br&gt;</description>
<category>tech</category>
<link>http://www.rutschle.net/wiki/#%5B%5BSecurely%20running%20Firefox%20in%20a%20chroot%5D%5D</link>
<pubDate>Fri, 13 Mar 2009 19:23:00 GMT</pubDate>
</item>
<item>
<title>On Genetically Modified Organisms</title>
<description>&lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.souslestoits.net/blog/index.php/post/ogm&quot; href=&quot;http://www.souslestoits.net/blog/index.php/post/ogm&quot; class=&quot;externalLink&quot;&gt;A good article&lt;/a&gt; from a genetician commenting on the fears about GMO. Very moderate and reasonable. Except for the fact that it's in French.&lt;br&gt;</description>
<category>blog</category>
<link>http://www.rutschle.net/wiki/#%5B%5BOn%20Genetically%20Modified%20Organisms%5D%5D</link>
<pubDate>Wed, 14 Jan 2009 14:41:00 GMT</pubDate>
</item>
<item>
<title>Yakiyori</title>
<description>A small japanese restaurant. It's easy to get lost on the way, so make sure you have a map of Colomiers. The service is very slow, so don't plan to go to the movies afterwards. It's the best sushi we've tried in and around Toulouse. Budget about 35EUR a head.&lt;br&gt;&lt;br&gt;Yakiyori: 14 r Prat, Colomiers, 05 61 15 79 21</description>
<category>restaurants in Toulouse</category>
<link>http://www.rutschle.net/wiki/#Yakiyori</link>
<pubDate>Sun, 16 Nov 2008 09:16:00 GMT</pubDate>
</item>
</channel>
</rss>
