<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

<channel>
	<title>Planet Mandriva</title>
	<link>http://planetmandriva.zarb.org/</link>
	<language>en</language>
	<description>Planet Mandriva - http://planetmandriva.zarb.org/</description>

<item>
	<title><![CDATA[Nicolas Lécureuil: KDE 4.3 come soon]]></title>
	<guid>http://neoclust.free.fr/blog/?p=33</guid>
	<link>http://neoclust.free.fr/blog/?p=33</link>
	<description><![CDATA[<div>
<br />

</div>]]></description>
	<pubDate>Thu, 02 Jul 2009 21:53:50 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Jérome Quelin: perl helps save world pandemic]]></title>
	<guid>tag:blogger.com,1999:blog-6162910877268067002.post-6915346776850709202</guid>
	<link>http://jquelin.blogspot.com/2009/07/perl-helps-save-world-pandemic.html</link>
	<description><![CDATA[ok, maybe the title was a bit too much dramatic - especially in those days. :-)<br /><br />i like playing board games, and my wife and i discovered recently <a href="http://www.zmangames.com/boardgames/pandemic.htm">pandemic</a>, from <a href="http://www.zmangames.com/">z-man games</a>. it is a tremendous cooperative game, where players allies to eradicate 4 diseases. but the infections spread out, and if you aren't fast enough, you end up with a global pandemic - and loose...<br /><br />it is really addictive, so i decided to write a perl module <a href="http://search.cpan.org/dist/Games-Pandemic/">games::pandemic</a> implementing a clone of this board game, with <a href="http://www.aworldwithoutstring.com/A_World_Without_String/Home/Entries/2008/6/7_Pandemic.html">all its rules</a>. it was also a good occasion to learn <a href="http://search.cpan.org/dist/Moose/">moose</a>,<a href="http://search.cpan.org/dist/Dist-Zilla/"> dist::zilla</a> and other modern perl stuff. at least, this goal is <a href="http://jquelin.blogspot.com/search/label/moose">already</a> <a href="http://jquelin.blogspot.com/search/label/dzill">fulfilled</a>! :-)<br /><br />i'm also using <a href="http://search.cpan.org/dist/POE/">poe</a> and <a href="http://search.cpan.org/dist/Tk/">tk</a> (i know, i know). i just published the first public release, version 0.4.0. it already implements all the player actions, and here's a snapshot of a game:<br /><a href="http://4.bp.blogspot.com/_qZIpP8ZamQY/SkztELIR4nI/AAAAAAAAAZQ/t2xufxmkjeo/s1600-h/blog.jpg"><img src="http://4.bp.blogspot.com/_qZIpP8ZamQY/SkztELIR4nI/AAAAAAAAAZQ/t2xufxmkjeo/s320/blog.jpg" alt="" id="BLOGGER_PHOTO_ID_5353914712999453298" border="0" /></a><br />of course it isn't finished, but i'm pretty happy of the result (even if the gui might change in the future). i aim for a v1.0.0 playable alone, and then allow networked game...<br /><br />the code is <a href="http://github.com/jquelin/games-pandemic/">available on github</a> if you want to help - even "only" translating strings is welcome!<br /><br />so, expect to hear more about pandemic on this blog. and while waiting for this perl version to be complete, i recommend you to buy a pandemic board game: you won't regret it...<div class="blogger-post-footer"><img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6162910877268067002-6915346776850709202?l=jquelin.blogspot.com" /></div>]]></description>
	<pubDate>Thu, 02 Jul 2009 19:58:16 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Sergio Rafael Lemke: Modificar aparência do Amarok 2.1]]></title>
	<guid>http://warever.info/sr/blog/?p=235</guid>
	<link>http://warever.info/sr/blog/?p=235</link>
	<description><![CDATA[<p>Você já deve ter notado que ouve uma atualização do KDE4 para a versão 4.2.4 no Mandriva 2009.1, com essa atualização veio também uma nova versão do Amarok.</p>
<p>Essa versão do Amarok já é mais manipulável, tanto que deixei o meu Amarok com a aparência do Amarok1.5 do KDE3, caso queira fazer o mesmo siga os passos:</p>
<p><a href="http://www.flickr.com/photos/sergiorafael/3682266374/sizes/o/"><img class="alignnone" src="http://farm3.static.flickr.com/2525/3682266374_75f3496dac_m.jpg" alt="" width="240" height="180" /></a></p>
<p>Primeiro execute esses dois comandos como usuário em um terminal:</p>
<ul>
<li>cd ~/.kde4/share/apps/amarok/playlist_layouts/</li>
<li>wget http://warever.info/sr/Uploads/bedi.xml</li>
</ul>
<p>Agora abra o Amarok, e no Menu Principal dele selecione:</p>
<ul>
<li>Configurações &gt;&gt; &#8216;Configurar Amarok&#8217;, na tela que abrir marque a opção &#8220;Esconder a área de Contexto&#8221; e clique em Ok para sair.</li>
</ul>
<p>Agora, na interface principal do Amarok, procure pela ícone de chave Inglesa que fica embaixo a direita, clique nela e selecione a opção &#8216;bedi&#8217; <img src="http://warever.info/sr/blog/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /> Assim que fizer isso o Amarok vai ficar com a aparência da screenshot acima.</p>]]></description>
	<pubDate>Thu, 02 Jul 2009 18:02:00 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Eugeni Dodonov: Dr. Eugeni]]></title>
	<guid>http://dodonov.net/blog/?p=466</guid>
	<link>http://dodonov.net/blog/2009/07/01/dr-eugeni/</link>
	<description><![CDATA[<p><div id="attachment_467" class="wp-caption alignnone"><a href="http://dodonov.net/blog/wp-content/uploads/2009/07/phd.jpg"><img src="http://dodonov.net/blog/wp-content/uploads/2009/07/phd-300x290.jpg" alt="Dr. Eugeni" title="Dr. Eugeni" width="300" height="290" class="size-medium wp-image-467" /></a><p class="wp-caption-text">Dr. Eugeni</p></div></p>

<p>Well, the title says it all <img src="http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" />  . Yep, it is true &#8211; after 5 years, 3 journal publications, 7 conference publications and 1 book chapter, I am finally a PhD <img src="http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" />  .</p>

<p><strong>Update:</strong> a short description about the nature of the thesis is <a href="http://dodonov.net/blog/2009/07/01/dr-eugeni/comment-page-1/#comment-16890">here</a></p>]]></description>
	<pubDate>Wed, 01 Jul 2009 23:13:24 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Frederik Himpe: Server migration]]></title>
	<guid>http://artipc10.vub.ac.be/wordpress/?p=221</guid>
	<link>http://artipc10.vub.ac.be/wordpress/work/server-migration.html</link>
	<description><![CDATA[<p>Since two days, I have merged the main servers used by two research laboratories at work. One server was an old Linux server which really needed a hardware upgrade, and the other one was a Mac Pro machine running a flaky OS X Leopard. The new server is of course running Linux: Debian Lenny.</p>
<p>It was a very interesting experience: working out procedures to migrate the mailboxes (from Dovecot on the Linux server and Cyrus on the Mac server to Cyrus on the new server), finding out how to set up one NIC in two different subnets (especially the routing is a little bit tricky), getting all services hooked up to LDAP and managed by <a href="https://oss.gonicus.de/labs/gosa/">GOSA</a>, getting dhcpd to do exactly what we want in a shared-network set up, and much more.</p>
<p>The new server is a <a href="http://h10010.www1.hp.com/wwpc/us/en/sm/WF05a/15351-15351-3328412-241644-3328421-3579900.html">HP DL185 G5</a> with an AMD Opteron quad core CPU and 8 GB of RAM and hosts two KVM virtual machines, one for public services and another one running internal services. You can visit the two websites, which are also hosted on this machine of course, of the concerned research labs:</p>
<ul>
<li><a href="http://arti.vub.ac.be">Artificial Intelligence Laboratory</a></li>
<li><a href="http://como.vub.ac.be">Computational Modeling Lab</a></li>
</ul>
<p>Maybe in the not too far away future, I should try to move the services hosted on the underpowered desktop machine running this website, also to a virtual machine&#8230;</p>]]></description>
	<pubDate>Wed, 01 Jul 2009 21:34:58 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Colin Guthrie: What's cooking in the Pulse Pot]]></title>
	<guid>http://colin.guthr.ie/development/whats-cooking-in-the-pulse-pot.html</guid>
	<link>http://colin.guthr.ie/development/whats-cooking-in-the-pulse-pot.html</link>
	<description><![CDATA[<p>While I've done a bit of pavucontrol hacking, the most interesting stuff is happening in pulse itself, specifically in relation to better KDE support...</p><p>&nbsp;</p>KDE has a fairly robust audio framework these days. It's still got several kinks and missing features, but it's a good basis for apps going forward. Sadly pulse has had a pretty rough ride here. There are two "backends" in common usage with Phonon on Linux (it has configurable backends originally intended to allow cross platform support - e.g. DirectX on windows and QT on Mac OS). Personally, I think that this is a bad idea - while I support diversity, having a single backend that is subsequently developed by everyone and made rock solid is IMO more important than diversity - certianly in the initial stages. There are also VLC and mplayer backends too... I think this just muddies the water, regardless of the quality of these specific parts. <p>&nbsp;</p><p>QT originally developed a GStreamer based backend for use on Linux. This is, for me, the right approach as the GStreamer library seems ideally suited for this. Unfortantely the KDE community didn't really pick up on this and rather than develop and improve the GStreamer backend (which was pretty early stage and could definitely done with improvement), a Xine based backend was created instead. While this works fine for audio decoding, I don't think that this is the right approach longer term, but such is life.</p><p>The sad thing is that Pulse support in Xine is not that great right now and causes a lot of problems for people. Improving this support will go a long, long way to gaining better acceptance of PulseAudio by the KDE community.</p><p>Speaking of which, this is where the rest of my interest lies - improving KDE integration.</p><p>Phonon has a settings GUI that lists various output devices, including those not currently connected, and allows the user to rank the devices in order of preference. These "devices" also include output special output drivers such as  the PulseAudio plugin. Now as pulse is a complete management system, it makes very little sense to include it like any other physical device and order them - when a user uses pulse on their system, they want to use it for <strong>everything</strong> (of course they may choose not to use pulse at all and that's fine too - even if I wouldn't recommend it!). In Mandriva we've long since patched the settings GUI to detect if the user wants to use pulse and simply hide all the other devices - the user is directed to use pavucontrol to move their streams around. This works OK, but it's clearly not the ultimate solution! Any self respecting KDE zealot would never run pavucontrol (it's a GTK app!) and while my own desktop is a horrible mix of just about every DE under the sun, I appreciate many people want to be "pure"!</p><p>So what do I want to see? Well, when it's in use, I'd like to off load pretty much all the handling of audio devices to pulse. It should take care of handling the device preferences and the automatic switching to higher priority devices when they become available and/or are reordered. The routing system in pulse is alreay setup to do a lot of funky things routing wise (like automatically moving music streams to RAOP devices, or VOIP streams to Bluetooth headsets), although a manual priority list is not currently supported. I am aiming to create such support for a priority list in pulse and expose it via a protocol extension. In the Gnome case, it's likely that this priority list either completely masked from the user and the existing routing stuff is used in it's stead, or that said existing routing stuff is evolved to just become a manager for managing the priority list internally. The final design decisions here are not finalised, but there will be some sort of working solution that will present itself!</p><p>In the mean time, I've started development on "module-device-manager" which acheives the rather simple goal of remembering all the past and present devices pulse has seen and allow querying of that list. As a neat little side effect, it can be used to edit the descriptions given to devices so for shits and giggles I implemented this renaming support in pavucontrol.</p><p> Here is a quick screenie:</p><p><a href="http://colin.guthr.ie/rss-feed/development/images/stories/pa-rename.png"><img src="http://colin.guthr.ie/rss-feed/development/images/stories/pa-rename.png" border="0" alt="Renaming devices in pavucontrol" title="Renaming devices in pavucontrol" width="802" height="197" /></a> </p><p>&nbsp;</p>]]></description>
	<pubDate>Mon, 29 Jun 2009 21:43:21 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Colin Guthrie: Configuring audio ports in PulseAudio]]></title>
	<guid>http://colin.guthr.ie/development/configuring-audio-ports-in-pulseaudio.html</guid>
	<link>http://colin.guthr.ie/development/configuring-audio-ports-in-pulseaudio.html</link>
	<description><![CDATA[<p>As I added support for changing card profiles in PulseAudio, now that pulse supports "ports" it's time for me to get my developer hat on again!</p><p>&nbsp;</p>So ports are used to control which mixer is used and other such gubbins. It can be used to select the recording source - e.g. if recording from Mic or Line in. It can also be used at the output side when your hardware supports jack sensing and has different volume controls for headphones verses built in speakers.<p>&nbsp;</p><p>Changing a port on a sink is pretty much the same as changing a card profile - the UI is sucpiciously similar!</p><p><img src="http://colin.guthr.ie/rss-feed/development/images/stories/pa-ports.png" border="0" alt="Setting ports in pavucontrol" title="Setting ports in pavucontrol" /> </p><p>Please note, that if your device does not have any ports then you wont see any change in the UI. </p>]]></description>
	<pubDate>Mon, 29 Jun 2009 21:33:44 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Jérome Quelin: even more lazyness with dist::zilla::plugin::autoprereq]]></title>
	<guid>tag:blogger.com,1999:blog-6162910877268067002.post-4882795062435787414</guid>
	<link>http://jquelin.blogspot.com/2009/06/even-more-lazyness-with.html</link>
	<description><![CDATA[who never forgot to list a prereq in their makefile.pl / build.pl / whatever? it happens to me on a regular basis.<br /><br />now that i started using <a href="http://search.cpan.org/dist/Dist-Zilla/">dist::zilla</a>, prereqs are not listed in a build script, but in dist zilla configuration file. but the problem is the same: prereqs are listed manually. and doing stuff manually sucks.<br /><br />i had to do something. so i used dist-zilla's plugin infrastructure and just uploaded <a href="http://search.cpan.org/dist/Dist-Zilla-Plugin-AutoPrereq/">dist::zilla::plugin::autoprereq</a>. just add:<blockquote><pre>[AutoPrereq]</pre></blockquote>in your dist.ini, and it will automatically find your prereqs for dist::zilla to use.<br /><br />the parsing is somehow very rough: it will just find the lines beginning by use or require. for more advanced / hackish stuff, dist::zilla::plugin::prereq is still available. i still think that it should cover 80+% of the cases. i considered using <a href="http://search.cpan.org/dist/Module-Info/">module::info</a>, but it evals the modules to find the prereqs and the result is damn slow... and speed was more important imo.<br /><br />note that i plan to add the possibility to add modules manually, in order to add missing modules (or maybe we can use both prereq and autoprereq?), and a skip option to trim modules that should not be added to the list of prereqs.<br /><br />also, i may change the algorithm used to find prereqs: maybe <a href="http://search.cpan.org/dist/PPI/">ppi</a> will be fast enough? we'll see.<br /><br />but in the meantime, just enjoy not writing anymore those prereqs by hand! :-)<div class="blogger-post-footer"><img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6162910877268067002-4882795062435787414?l=jquelin.blogspot.com" /></div>]]></description>
	<pubDate>Mon, 29 Jun 2009 20:00:48 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Pascal Terjan: I love Europe]]></title>
	<guid>http://fasmz.org/~pterjan/blog/?date=20090629#p01</guid>
	<link>http://fasmz.org/~pterjan/blog/?date=20090629#p01</link>
	<description><![CDATA[<p><div align="center"><a href="http://www.flickr.com/photos/cmoi/2745493096/" title="Eiffel Tower wearing Europe colors by pterjan, on Flickr"><img src="http://farm4.static.flickr.com/3049/2745493096_bf8b385d6d_m.jpg" width="160" height="240" alt="Eiffel Tower wearing Europe colors" /></a></div></p>
<p>I'm currently in UK for the week-end and this morning my French mobile phone operator (SFR) sent me a wonderful SMS: WAP sessions within European Union are charged 1.20 euros for the first 50kB and then 5 euros per MB. I was so happy to learn that the prices are still crazy...</p>
<p>Then a friend pointed me to <a href="http://europa.eu/rapid/pressReleasesAction.do?reference=IP/09/620&format=HTML&aged=0&language=EN&guiLanguage=en">this Europe press release</a>. It tells that starting on July 1st, the maximum price in Europe will be €1/MB, then it will decrease to €0.80 in 2010 and to €0.50 in 2011. SFR had not the nice idea to inform me about this price drop (5 times cheaper) which will happen in 34 hours...</p>
<p>This decision also tells that sending SMS in Europe will not be charged more than 0.11€ (before VAT). That explains why SFR was so proud to annouce me one month ago that starting on July 1st they will decrease the price of SMS in Europe from 0.30€ to 0.13 (VAT included).</p>
<p>I hope the 4th mobile license will be given soon and real competition will enter French mobile market, so that we don't need European laws to have reasonable prices (mobile prices in UK are so low compared to France...).</p>]]></description>
	<pubDate>Mon, 29 Jun 2009 12:37:32 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Eugeni Dodonov: msec updates]]></title>
	<guid>http://dodonov.net/blog/?p=450</guid>
	<link>http://dodonov.net/blog/2009/06/26/msec-updates/</link>
	<description><![CDATA[<p>Time has come for the first msec release since Mandriva 2009.1!</p>

<p>This time we have several improvements, such as:</p>

<ul>
<li>support for audit plugins</li>
<li>more msec auditing checks</li>
<li>improved auditing logging</li>
<li>and, of course, bugfixes.</li>
</ul>

<p>So let me introduce some details about each one of them.</p>

<h2>Support for audit plugins</h2>

<p>You may remember that msec shipped with Mandriva 2009.1 introduced support for plugins infrastructure (take a look at your <strong>/usr/share/msec/plugins/</strong> directory to see some examples). This new msec, which will be shipped with Mandriva 2010, also introduces auditing plugins.</p>

<p>Well, you might be asking <strong>what the ..? what is the difference between those plugins?</strong>, so let me clarify it a bit.</p>

<p>Msec has two main functionalities:</p>

<ul>
<li>Security configuration</li>
<li>Security auditing</li>
</ul>

<p>The security <strong>configuration</strong> is what you configure using msecgui or using security levels &#8211; basically, you say what settings should be used on your machine for ssh, user logins, and all kind of system configuration. The security <strong>auditing</strong> are those background checks that run daily on your machine, to determine what has changed since the last run and let you know about that.</p>

<p>In old msec, this security <strong>auditing</strong> was performed by <strong>security.sh</strong>, <strong>security_check.sh</strong> and <strong>diff_check.sh</strong>, so we had just three large and complex files with a lot of duplicated code. With new msec version, everything was split to reduce code duplication, improve readability and simplify plugins creation.</p>

<p>Let me show you a sample plugin which checks for changes in system users:</p>

<pre><code>    #!/bin/bash
    # msec: check for changes in local users

    # check if we are run from main script
    if [ -z "$MSEC_TMP" -o -z "$INFOS" -o -z "$SECURITY" -o -z "$DIFF" ]; then
            # variables are set in security.sh and propagated to the subscripts
            echo "Error: this check should be run by the main msec security check!"
            echo "       do not run it directly unless you know what you are doing."
            return 1
    fi

    # files to log the list of today's and yesterday's, and difference between them
    USERS_LIST_TODAY="/var/log/security/users_list.today"
    USERS_LIST_YESTERDAY="/var/log/security/users_list.yesterday"
    USERS_LIST_DIFF="/var/log/security/users_list.diff"

    # update yesterday's list
    if [[ -f ${USERS_LIST_TODAY} ]]; then
        mv ${USERS_LIST_TODAY} ${USERS_LIST_YESTERDAY};
    fi

    # check for changes in users
    if [[ ${CHECK_USERS} == yes ]]; then
        getent passwd | cut -f 1 -d : | sort &gt; ${USERS_LIST_TODAY}
        Diffcheck ${USERS_LIST_TODAY} ${USERS_LIST_YESTERDAY} ${USERS_LIST_DIFF} "local users"
    fi
</code></pre>

<p>that&#8217;s it. You just drop this file into <strong>/usr/share/msec/scripts/01_check_for_users.sh</strong> and this check will be executed every time msec security checks are run. The security log will be updated, the diff check mail will be created and mailed (along with all other checks), and it will be working automatically from now on.</p>

<h2>More msec auditing checks</h2>

<p>A few additional msec auditing checks were added:</p>

<ul>
<li><strong>CHECK_FIREWALL</strong> &#8212; checks for changes in iptables configuration</li>
<li><strong>CHECK_USERS</strong> &#8212; checks for changes in local users (most of its code was shown above actually)</li>
<li><strong>CHECK_GROUPS</strong> &#8212; checks for changes in local groups</li>
<li><strong>FIX_OWNER</strong> &#8212; if unowned files are found on the system, this check gives the opportunity to change their ownership to nobody/nogroup, instead of blindly doing it automatically</li>
<li><strong>CHECK_RPM_PACKAGES</strong> &#8212; checks for changes in installed RPM packages</li>
<li><strong>CHECK_RPM_INTEGRITY</strong> &#8212; checks all the installed packages for changed files. Both those checks were run before under the CHECK_RPM check, but, as they are quite expensive, these two new checks were introduced instead</li>
</ul>

<p>If you are using cooker or 2010 alpha, these options will not be added automatically to your <strong>/etc/security/msec/security.conf</strong> configuration file. The best way to experiment with them is by using <strong>msecgui</strong>, or running <strong>msec -f standard</strong> or <strong>msec -f secure</strong> to install default configuration for <strong>standard</strong> and <strong>secure</strong> levels.</p>

<p>Besides those items, I was thinking on an option to check for changes in <strong>PAM</strong> authentication, check for failed login attempts and support for rkhunter. And, as always, if you have any idea on some other functionality that should be interesting to have in msec, feel free to comment!</p>

<h2>Improved auditing logging</h2>

<p>The logging format of <strong>/var/log/security.log</strong> was changed to be compatible with syslog-based logging. This should make it easier for system applications to parse it, and for administrator to examine its contents. Now it is way easier to find information by date, kind of message and check type.</p>

<h2>Other ideas</h2>

<p>Among other ideas for msec I thought on the following:</p>

<ul>
<li>msec supports an arbitrary number of custom security levels, but msecgui only supports two basic ones (<strong>standard</strong> and <strong>secure</strong>). It could be nice to have a combobox to select a custom profile..</li>
<li>gui for <strong>TOMOYO</strong> security framework, since the <strong>AppArmor</strong> project looks quite stone-cold dead. This is already a work in progress, so probably I&#8217;ll post some update on this later.</li>
<li>Support for administrator-supplied rules for security and diff checks. For example, to exclude everything matching &#8216;/var/tmp&#8217; from any kind of checks and reports, or excluding network ports from 3000 to 5000 from open port checks.</li>
</ul>

<p>Besides that, there is a number of bugfixes (which are going to be backported to 2009.1 shortly).</p>

<p>So msec is definitely is alive and getting better and better. Stay tuned for more news! <img src="http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> </p>]]></description>
	<pubDate>Fri, 26 Jun 2009 20:02:56 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Jérome Quelin: beginning of moose support in padre]]></title>
	<guid>tag:blogger.com,1999:blog-6162910877268067002.post-3650571752764719448</guid>
	<link>http://jquelin.blogspot.com/2009/06/beginning-of-moose-support-in-padre.html</link>
	<description><![CDATA[so i started using <a href="http://search.cpan.org/dist/Moose/">moose</a> like all the cool kids today. it turns out to be quite nice to use. declaring an attribute is as easy as:<br /><blockquote><pre>has foo =&gt; <span><strong>(</strong></span> is=&gt;<span>'ro'</span>, ... <span><strong>)</strong></span>;</pre></blockquote>and since i'm also using <a href="http://search.cpan.org/dist/POE/">poe</a>, i was glad to find the illicit love child of moose and poe - aka <a href="http://search.cpan.org/dist/MooseX-POE/">moosex::poe</a>. declaring an event without any fuss:<br /><blockquote><pre>event frobnize =&gt; sub <span><strong>{</strong></span> say <span>$_</span><span><strong>[</strong></span>0<span><strong>]</strong></span>-&gt;foo <span><strong>}</strong></span>;</pre></blockquote>but when your module grows to have lots of attributes and poe events, it's difficult to go directly to a given definition in the file.<br /><br />readers of this blog know that i'm using <a href="http://padre.perlide.org/">padre</a> (the perl ide), but neither the sub nor the outline views can help. indeed, if you look the code snippets above, there is no traditional sub definition... syntaxic sugar is nice, but it means the tools need to be aware of them.<br /><br />this was clearly an itch to scratch... i had a look at padre's outline code, and after some help from <a href="http://use.perl.org/%7EAlias/journal/">alias</a>, here's the result:<br /><a href="http://2.bp.blogspot.com/_qZIpP8ZamQY/SkOr4_B5v1I/AAAAAAAAAZI/_9CilwV4bEY/s1600-h/blog.jpg"><img src="http://2.bp.blogspot.com/_qZIpP8ZamQY/SkOr4_B5v1I/AAAAAAAAAZI/_9CilwV4bEY/s320/blog.jpg" alt="" id="BLOGGER_PHOTO_ID_5351309777726717778" border="0" /></a><br />the patch is surprisingly small: around 20 lines for <a href="http://padre.perlide.org/trac/changeset/5577">attribute detection</a>, and the same for event detection... that's the beauty of having cpan modules at hand - the great <a href="http://search.cpan.org/dist/PPI/">ppi</a> in this case.<br /><br />(note: the feature is in trunk currently. you'll have to wait 0.38 release)<br /><br />so, try padre. tell us which feature it lacks. or how can we make it <span>the</span> modern perl editor, the one that would be recommended alongside moose and others.<div class="blogger-post-footer"><img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6162910877268067002-3650571752764719448?l=jquelin.blogspot.com" /></div>]]></description>
	<pubDate>Fri, 26 Jun 2009 10:00:34 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Adam Williamson: Another perspective on Poulsbo]]></title>
	<guid>http://www.happyassassin.net/?p=720</guid>
	<link>http://www.happyassassin.net/2009/06/25/another-perspective-on-poulsbo/</link>
	<description><![CDATA[<p>I come at the <a href="http://www.happyassassin.net/2009/01/30/intel-gma-500-poulsbo-graphics-on-linux-a-precise-and-comprehensive-summary-as-to-why-youre-screwed/">Poulsbo problem</a> from, pretty much, a plain old &#8216;frustrated user with the time to try and build random things&#8217; perspective. The redoubtable Matthew Garrett comes at it from the &#8216;equally frustrated, very smart kernel developer&#8217; perspective. <a href="http://www.advogato.org/person/mjg59/diary.html?start=208">His post on the mess</a> is well worth reading for a different angle on the whole deal.</p>
<p>An update on the situation, BTW: I haven&#8217;t worked on cleaning up the packages for the driver for F11, as I said I would, because of some later experience with it. For both me and a couple of others who&#8217;ve successfully built and got it working, it causes the system to hang solid, quite reliably, about half an hour after you turn it on. Which is a bit of a big problem. With benchmarking, it also seems to be slow even for basic 2D operations, almost as slow as the vesa driver; so it&#8217;s not providing much of a benefit besides the RandR 1.2 support for external monitors.</p>
<p>An email I got from within Intel hints that some of the proprietary special sauce is required even for basic 2D acceleration to work right. I can&#8217;t find any indication of this in the logs, but it may be that - even though I sucked as much of the proprietary stuff as I could into the packages - I missed some, or it somehow doesn&#8217;t quite play right, and hence the 2D acceleration isn&#8217;t working. I&#8217;m not sure.</p>
<p>So for now I&#8217;m just using the vesa driver and sucking it up. Sigh. BTW, through this whole three week UK trip I&#8217;ll be doing all my work from the P. So far this is going pretty well, despite the slow graphics!</p>]]></description>
	<pubDate>Thu, 25 Jun 2009 21:05:00 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Adam Williamson: Ubuntu Wiki - not shareable?]]></title>
	<guid>http://www.happyassassin.net/?p=718</guid>
	<link>http://www.happyassassin.net/2009/06/25/ubuntu-wiki-not-shareable/</link>
	<description><![CDATA[<p>I may be missing something here (be great if I am), but it seems to me that the content of the <a href="https://wiki.ubuntu.com/">Ubuntu Wiki</a> - which contains some great stuff - is not licensed under one of the common &#8217;shareable&#8217; licenses, like CC, GFDL or OPL. Neither the front page nor any of the several random pages of content I checked has a license declaration that I could find, and the &#8220;Legal information&#8221; link in the footer takes you to the <a href="http://www.ubuntu.com/legal">general ubuntu.com legal info page</a>. So as far as I can tell, the license on that page - which is basically &#8220;for anything other than personal non-commercial use, apply to Canonical&#8221; - applies. That&#8217;s a bit unfortunate, and against the open source spirit of collaboration, if it&#8217;s true. I had a couple of people check my sanity on this one, and asked in #ubuntu-doc, and no-one could find anything to the contrary.</p>
<p>I got onto this by looking at the Ubuntu <a href="https://wiki.ubuntu.com/DebuggingProcedures">debugging procedures</a> page, which is great. We&#8217;re looking at improving the Fedora wiki pages on what information to include when reporting bugs on particular components, and it would make sense to just re-use the Ubuntu community&#8217;s work here rather than spend time re-do it all ourselves which could more usefully be spent elsewhere. But if I&#8217;m right, we can&#8217;t.</p>
<p>If anyone knows that I&#8217;m wrong here (or can explain why there isn&#8217;t a less restrictive license, if I&#8217;m right), please do comment. Thanks!</p>]]></description>
	<pubDate>Thu, 25 Jun 2009 20:08:05 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Sebastian Trueg: trueg]]></title>
	<guid>http://trueg.wordpress.com/?p=97</guid>
	<link>http://trueg.wordpress.com/2009/06/24/sharing-my-brain-another-result-of-the-nepomuk-workshop/</link>
	<description><![CDATA[<div class="snap_preview"><br /><p>If I learned anything at the Nepomuk workshop it is that too much information is just in my head and nowhere else. I tried to share it by writing API documentation and tutorials and blogs. But it never is enough. So today comes another dump from my brain: <a href="http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/TipsAndTricks">Nepomuk tips and tricks</a>, a new chapter in the <a href="http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk">Nepomuk tutorial series</a>. I hope it helps you to make more of the technologies Nepomuk provides.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trueg.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trueg.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trueg.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trueg.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trueg.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trueg.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trueg.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trueg.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&blog=6648236&post=97&subd=trueg&ref=&feed=1" /></div>]]></description>
	<pubDate>Wed, 24 Jun 2009 08:48:53 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Eugeni Dodonov: How to resume a broken scp transfer]]></title>
	<guid>http://dodonov.net/blog/?p=445</guid>
	<link>http://dodonov.net/blog/2009/06/23/how-to-resume-a-broken-scp-transfer/</link>
	<description><![CDATA[<p>Well, this question appeared quite frequently to me. However, I never bothered with it, as I was either on a LAN, or had a different source from which I could resume using wget, or a file was sufficiently small to redownload it again. However, this time these approaches did not work:</p>

<ul>
<li>The file was big (a DVD ISO)</li>
<li>The only way to access it was over a SSH connection</li>
<li>The only authentication method it supported was public key authentication</li>
<li>The directory from where the file was downloaded was read-only</li>
<li>The link was sloooow</li>
<li>I already had downloaded about 70% of the file</li>
</ul>

<p>So I started looking for solutions. Most of ideas I found on google suggested using &#8216;<strong>rsync &#8211;partial &#8211;rsh=ssh</strong>&#8216;, and indeed it could work. However, rsync tried to create a temporary file on the server, and, as the directory was read-only, it failed. There probably is some option to make it work, but I don&#8217;t have plenty of rsync experience. And this approach just looked to be over complicated.</p>

<p>After a bit of more googling, I found out that curl supported sftp backend. And, after a few minutes trying to figure out how to make it work with public key authentication, I finally figured it out:</p>

<pre><code>curl -C - --pubkey ~/.ssh/key.pub --key ~/.ssh/key \
  sftp://eugeni@somewhere/mnt/.../i586/my_precious_iso.iso \
  -o my_precious_iso.iso
</code></pre>

<p>To shorten it up, it is possible to write a simple wrapper function (or a script) for bash:</p>

<pre><code>#!/bin/bash
function scp_resume() {
        URL="$1"
        FILE="$2"
        if [ "a$FILE" == "a" ]; then
                echo "Usage: scp_resume &lt;sftp url&gt; &lt;local target&gt;"
                return 1
        fi
        # the magic
        curl -C - $URL -o $FILE
}

function scp_resume_key() {
        URL="$1"
        FILE="$2"
        KEY="$3"
        if [ "a$FILE" == "a" ]; then
                echo "Usage: scp_resume &lt;sftp url&gt; &lt;local target&gt; &lt;key file name&gt;"
                return 1
        fi
        # the magic
        curl -C - --key $HOME/.ssh/$KEY --pubkey $HOME/.ssh/${KEY}.pub $URL -o $FILE
}
</code></pre>

<p>so it did the trick.</p>]]></description>
	<pubDate>Tue, 23 Jun 2009 14:29:09 +0000</pubDate>
</item>
<item>
	<title><![CDATA[Sebastian Trueg: trueg]]></title>
	<guid>http://trueg.wordpress.com/?p=87</guid>
	<link>http://trueg.wordpress.com/2009/06/23/the-first-nepomuk-workshop-its-a-wrap/</link>
	<description><![CDATA[<div class="snap_preview"><br /><p>The first Nepomuk workshop and the first KDE workshop held in Freiburg ever is over. It was great but short. I could have worked on with these guys for much longer. It was a lot of fun to explain the Nepomuk ideas directly and having people not only listening but also understanding and realizing them.</p>
<p>On Friday we started out slowly. Due to different travel times and also some stupidity from travel agencies and German bus drivers we were only complete at around sixish. To get in the mood I had everyone explain what they wanted to achieve over the weekend or what they thought could be interesting to work on with Nepomuk. The beginning was not easy, at least I feared that we would have trouble to actually getting to work. After all, you do not start to work with Nepomuk just like that. It is too confusing and different for that. But the ideas were very good and the people very interested and eager.</p>
<p>So on Saturday my fears of me not being able to handle it were vanished. I explained about <a href="http://www.semanticdesktop.org/ontologies/2007/11/01/pimo">PIMO</a> (just to confuse everyone for real) and showed what I had done with respect to NLP in the <a href="http://www.scribo.ws/">Scribo</a> project (<a href="http://www.omat.nl/drupal/content/Nepomuk-meeting-day-2-3">Tom already mentioned it in his blog</a> although he confused it with PIMO. No big deal, there are way too many project and technology names to get mixed up). Sebastian Faubel showed his very interesting work on a replacement for the Gnome open and save file dialog. He also uses RDF to store meta data and then based on that decides on a location for the documents in a fixed (not really fixed but based on a template) folder tree. After that coding began.</p>
<h3>What did we do?</h3>
<p>Well, I did not really code anything. There was no time for that. I was too busy discussing with and helping the others. And they did do cool stuff. Let me start by mentioning my <strong>hero of the weekend: Tobias König</strong> aka <em>tokoe</em>. He wanted to improve the performance of the Akonadi Nepomuk feeder agents which export contact and email meta data from Akonadi to Nepomuk. He did that by introducing a new fast mode into the <a href="http://api.kde.org/4.x-api/kdelibs-apidocs/nepomuk/html/nepomuk-rcgen.html">nepomuk resource generator</a>. Now he would not be tokoe if he would not have been shocked by the hack that is rcgen. So over the weekend he cleaned it up. He cursed, he sweated, he nearly went mad, but he did it! And since we defined it as a bug fix it is even in 4.3. Great work, Tobias.</p>
<p>Then there was Tom Albers. Now he <a href="http://www.omat.nl/drupal/content/Nepomuk-meeting-day-2-3">already blogged</a> about what he did himself. But I will summarize it anyway: he actually dared and integrated the Scribo-based annotation suggestions into Mailody. I will blog about details on that later. But the idea is that the email body is analysed and a plugin system generates possible annotations such as dates, cities, persons, and also possible events that are mentioned in the email. Not only did he integrate it into Mailody, he also found two bugs that would have been showstoppers for the Mandriva Scribo demo yesterday. So thanks a lot, Tom.</p>
<p><a href="http://raptor-menu.org/">Raptor</a>. Now Raptor is a cool project. Raptor sets out to replace or provide an alternative to Kickoff. And their idea for Nepomuk integration is to remember the launches of applications. For starters &#8220;only&#8221; when an application was launched. This then allows to show more frequently used applications with bigger icons. But it will not stop there. Application launches can be linked to the current context (or the current Plasma activity). I might use KPresenter at work all the time but never at home. Also it would be possible to link files to the application launch that was used to open them. And so on. Alessandro, Francesco, and Lukas quickly understood how to create and ontology and use it in KDE. They now have their dedicated application launch ontology and use it via the Nepomuk libs in Raptor. I hope that the ontology can at some point be made into somewhat of a standard in the <a href="http://sourceforge.net/apps/trac/oscaf/">desktop ontology project</a>.</p>
<p>Daniel, while normally being an Amarok developer (he did the Nepomuk integration in the GSoC last year), was very eager on making Nepomuk really useful on the basic level. So we discussed handling of removable storage and nicer resource URI design a lot. In the end we decided:</p>
<ol>
<li>All files will have a random URI that never changes.</li>
<li>All file systems will be represented in Nepomuk with their mount point and their mount status (Daniel already started working on the service that handles that. Also the <a href="http://pvanhoof.be/blog/index.php/2009/04/01/volume-support-in-experimental-tracker">tracker guys are working on something similar</a>. Matching the ontologies should be fairly easy as the concepts are the same.)</li>
<li>All file URLs will be relative.</li>
<li>All files will have a link to their storing file system.</li>
</ol>
<p>This helps in solving a bunch of problems. Files on removable storages like USB sticks which can be mounted in different places are handled the exact same way as files on local file systems. Moving a file in most cases only means to update one property: the relative URL. Only if the file is moved to another file system that link has to be changed, too. Through the mount state flag on the file system in Nepomuk it is very simple to see if a file is currently available or not. A search client can simply tell the user that they have to mount the file system in question to access the file. I think this is a fine solution and since I tried to design everything without relying on the file resource&#8217;s URI being the file&#8217;s URL the transition should be fairly simply. A goal for 4.4.</p>
<p><a href="http://grundleborg.wordpress.com/2009/06/22/the-nepomuk-sprint/">George already blogged</a> about his Nepomuk integration work with Telepathy. What is so great about his work is that he actually uses PIMO in a productive way: one <a href="http://www.semanticdesktop.org/ontologies/2007/11/01/pimo/#Person">PIMO Person</a> represents one person that can be contacted via Telepathy. And this one pimo:Person has a set of occurrences being the actual contacts like jabber accounts and so on. Thus, if you want to chat with a person you simply click their icon and Telepathy will open one of the available systems, depending on their online status. One could even think of email as a fallback. I find this especially interesting since it so clearly uses the two different layers of information defined via the PIMO ontology: on the lower level we have all the desktop resources like files and emails and jabber accounts and so on. And on a higher level we have all the real world entities like the actual person or a project or a city represented by PIMO concepts. I hope that we will see more integration like this is the future. (I know, I know, I need to write better documentation on this.)</p>
<p>Marcel worked on the Nepomuk integration in Digikam. Since the Digikam team does not want to entirely rely on Nepomuk yet (with it being optional and all) he created a Nepomuk service that keeps the Digikam database and Nepomuk in sync. So rating and tagging your images in Digikam would directly be reflected in Nepomuk and the other way around. Very nice. I hope to see this hitting a stable release soon.</p>
<p>I had hoped to have more time to work with Peter on the meta data display in Dolphin. But sadly that dropped under the table a bit. But I was at least able to show him my crappy formatting rule system I drafted a while back and we cleaned up the display a bit: nicer labels and less useless properties shown.</p>
<h3>What did we look like?</h3>

<a href="http://trueg.wordpress.com/2009/06/23/the-first-nepomuk-workshop-its-a-wrap/img_0165-small/" title="Alessandro, Lukas, Francesco, and Tom at the Nepomuk workshop"><img width="150" height="112" src="http://trueg.files.wordpress.com/2009/06/img_0165-small.jpeg?w=150&h=112" class="attachment-thumbnail" alt="" title="Alessandro, Lukas, Francesco, and Tom at the Nepomuk workshop" /></a>
<a href="http://trueg.wordpress.com/2009/06/23/the-first-nepomuk-workshop-its-a-wrap/img_0166-small/" title="Mathieu, George, Sebastian, Tobias, Peter, and Albert at the Nepomuk workshop"><img width="150" height="112" src="http://trueg.files.wordpress.com/2009/06/img_0166-small.jpeg?w=150&h=112" class="attachment-thumbnail" alt="" title="Mathieu, George, Sebastian, Tobias, Peter, and Albert at the Nepomuk workshop" /></a>
<a href="http://trueg.wordpress.com/2009/06/23/the-first-nepomuk-workshop-its-a-wrap/img_0167-small/" title="Marcel and Albert at the Nepomuk Workshop"><img width="150" height="112" src="http://trueg.files.wordpress.com/2009/06/img_0167-small.jpeg?w=150&h=112" class="attachment-thumbnail" alt="" title="Marcel and Albert at the Nepomuk Workshop" /></a>

<h3>What about the future?</h3>
<p>I hope that we can do this again soon. I think it was really worth it and am very happy to have done it. Thanks again to all of you. You made this a successful event.</p>
<p>PS: I wanted to blog earlier but first I had to sleep for two days straight. I am too old for this shit! ;)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trueg.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trueg.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trueg.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trueg.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trueg.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trueg.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trueg.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trueg.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&blog=6648236&post=87&subd=trueg&ref=&feed=1" /></div>]]></description>
	<pubDate>Tue, 23 Jun 2009 12:00:20 +0000</pubDate>
</item>

</channel>
</rss>
