<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Autour de Linux &#187; Ubuntu</title>
	<atom:link href="http://linux.leunen.com/?feed=rss2&#038;cat=5" rel="self" type="application/rss+xml" />
	<link>http://linux.leunen.com</link>
	<description>Ubuntu, linux, C++, audio, python, ...</description>
	<lastBuildDate>Tue, 17 Aug 2010 11:50:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Un bug dans le screenlet sysmonitor</title>
		<link>http://linux.leunen.com/?p=944</link>
		<comments>http://linux.leunen.com/?p=944#comments</comments>
		<pubDate>Tue, 17 Aug 2010 11:50:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://linux.leunen.com/?p=944</guid>
		<description><![CDATA[Si vous utilisez les Screenlets pour agrémenter votre desktop, vous aurez peut-être remarqué que le Screenlet Sysmonitor n&#8217;affiche pas l&#8217;adresse IP de votre PC.

La cause de ce bug se trouve dans le fichier /usr/share/pyshared/screenlets/sensors.py. Le code litigieux est affiché ci-dessous et vous pouvez voir que cette fonction, sensée retourner l&#8217;adresse IP de votre PC, utilise [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous utilisez les Screenlets pour agrémenter votre desktop, vous aurez peut-être remarqué que le Screenlet Sysmonitor n&#8217;affiche pas l&#8217;adresse IP de votre PC.<br />
<center><img src="http://linux.leunen.com/wp-content/uploads/2010/08/screenlets.png" alt="Screenlets" title="Screenlets" width="379" height="493" class="size-full wp-image-945" /></center><br />
La cause de ce bug se trouve dans le fichier <em>/usr/share/pyshared/screenlets/sensors.py</em>. Le code litigieux est affiché ci-dessous et vous pouvez voir que cette fonction, sensée retourner l&#8217;adresse IP de votre PC, utilise la commande <em>ifconfig</em>:</p>
<pre class="codesource">
<span class="reservedname">def</span> net_get_ip(): <span class="codecomment"># by Whise</span>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="codecomment">"""Returns ip if it can"""</span>
&nbsp;&nbsp;&nbsp;&nbsp;ip = commands.getoutput("ifconfig")
&nbsp;&nbsp;&nbsp;&nbsp;x = 0
&nbsp;&nbsp;&nbsp;&nbsp;<span class="reservedname">while</span> True:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip = ip[ip.find("inet addr:"):]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip = ip[10:]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ipc = ip[:ip.find(chr(32))]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="reservedname">if</span> ipc != '127.0.0.1' and ipc != None and ipc !='1':
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="reservedname">return</span> ipc
&nbsp;&nbsp;&nbsp;&nbsp;<span class="reservedname">return</span> _('Cannot get ip')
</pre>
<p>La commande <em>ifconfig</em>qui vous donne l&#8217;état et la configuration de vos interfaces réseau retourne un string de données ressemblant à celui-ci:</p>
<pre class="codesource">
$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:25:b3:c0:b6:86
          <b>inet adr:</b>10.224.66.135  Bcast:10.224.66.255  Masque:255.255.255.0
          adr inet6: fe80::225:b3ff:fec0:b686/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:34235 erreurs:0 :0 overruns:0 frame:0
          TX packets:23840 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:100
          Octets reçus:33282663 (33.2 MB) Octets transmis:3990859 (3.9 MB)
          Mémoire:98400000-98420000
</pre>
<p>Or, la fonction <em>net_get_ip()</em> recherche la chaîne de caractères contenant <em>inet addr</em> pour localiser l&#8217;adresse IP. Le seul problème c&#8217;est que cette chaîne de caractères est introuvable dans ce que retourne la commande <em>ifconfig</em> à cause d&#8217;un <em>d</em> de trop. La chaîne de caractères est en effet<em> inet_adr</em> et non pas <em>inet_addr</em>. </p>
<p>Pour contourner le bug en attendant qu&#8217;une mise à jour corrige le problème, vous pouvez éditer le fichier <em>/usr/share/pyshared/screenlets/sensors.py</em> et modifier le fichier vous même:</p>
<pre class="codesource">
$ gksudo gedit /usr/share/pyshared/screenlets/sensors.py
</pre>
<p>Changez les lignes concernées pour qu&#8217;elles soient semblables à ceci:</p>
<pre class="codesource">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip = ip[ip.find("inet adr:"):]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip = ip[9:]
</pre>
<p>Sauvez le fichier et dans le gestionnaire de Screenlets, cliquez sur le bouton Tout redémarrer. L&#8217;adresse IP doit maintenant apparaître.<br />
Notez que j&#8217;ai signalé ce bug sur Launchpad. </p>
]]></content:encoded>
			<wfw:commentRss>http://linux.leunen.com/?feed=rss2&amp;p=944</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utiliser un Arduino sous Linux</title>
		<link>http://linux.leunen.com/?p=937</link>
		<comments>http://linux.leunen.com/?p=937#comments</comments>
		<pubDate>Sat, 26 Jun 2010 12:11:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://linux.leunen.com/?p=937</guid>
		<description><![CDATA[Il y avait longtemps que j&#8217;avais envie de me remettre à la programmation de microcontrôleurs. Après avoir regardé du côté des PIC, je me suis tourné vers l&#8217;Arduino.
Il se présente sous la forme d&#8217;un circuit électronique contenant le microcontrôleur Atmega328P de Atmel et d&#8217;une interface USB permettant de le programmer. Il est possible de télécharger [...]]]></description>
			<content:encoded><![CDATA[<p>Il y avait longtemps que j&#8217;avais envie de me remettre à la programmation de microcontrôleurs. Après avoir regardé du côté des <em>PIC</em>, je me suis tourné vers l&#8217;<a href="http://www.arduino.cc">Arduino</a>.<br />
Il se présente sous la forme d&#8217;un circuit électronique contenant le microcontrôleur <em>Atmega328P</em> de <em>Atmel</em> et d&#8217;une interface USB permettant de le programmer. Il est possible de télécharger sur le site un IDE permettant la programmation de l&#8217;<em>Arduino</em> en utilisant un langage développé pour lui et qui ressemble basiquement au C.<br />
L&#8217;avantage de l&#8217;<em>Arduino</em> est qu&#8217;il dispose de tout ce qu&#8217;il faut dès le départ. Pas besoin de programmateur ni d&#8217;alimentation; celle-ci est assurée soit par un bloc secteur (non fourni) soit par l&#8217;interface USB. Le contrôleur <em>Atmega328P</em> qui l&#8217;équipe est doté d&#8217;entrées/sorties, d&#8217;un port série, de sorties PWM, d&#8217;entrées analogiques pour capteurs; bref de tout ce qu&#8217;il faut pour rendre un électronicien heureux.<br />
<center><img src="http://linux.leunen.com/wp-content/uploads/2010/06/arduino.jpg" alt="Arduino et carte ethernet" title="arduino" width="400" height="268" class="size-full wp-image-938" /></center><br />
Sur l&#8217;image ci-dessus, vous pouvez voir l&#8217;<em>Arduino duemilanove</em> (il existe d&#8217;autres modèles mais celui-ci peut être considéré comme le modèle de base) surmonté de sa carte ethernet. Celle-ci me permettra d&#8217;interroger l&#8217;<em>Arduino</em> à distance.</p>
<p>Sous Ubuntu Lucid, aucun problème pour faire fonctionner et programmer l&#8217;<em>Arduino</em>. A noter que contrairement à Windows, aucun driver ne doit être installé puisque le driver <em>FTDI</em> nécessaire à l&#8217;USB est compris dans le noyau. Il suffit donc d&#8217;installer les paquets permettant d&#8217;utiliser <em>gcc</em> pour compiler du code <em>AVR</em>:</p>
<pre class="codesource">
$ sudo aptitude install avr-libc gcc-avr gdb-avr binutils-avr
</pre>
<p>Ensuite, <a href="http://arduino.cc/en/Main/Software">téléchargez</a> sur le site l&#8217;IDE qui vous permettra d&#8217;écrire, de mettre au point et d&#8217;uploader le code. Cette application est écrite en java et le site recommande d&#8217;installer le paquet sun-java6-jre mais le programme fonctionne très bien avec la version <em>openjdk</em> de base d&#8217;Ubuntu. Décompressez l&#8217;archive, créez une entrée dans le menu programmation et le tour est joué:</p>
<pre class="codesource">
$ sudo tar -C /opt -zxvf arduino-0018.tgz
</pre>
<p>Il se peut que vous deviez vous ajouter au groupe <em>dialout</em>:</p>
<pre class="codesource">
sudo useradd -G dialout votre_login
</pre>
<p>Ensuite, lancez l&#8217;IDE et connectez l&#8217;<em>Arduino</em> à un port USB. Dans l&#8217;IDE, il faut via le menu <em>Tools</em> définir le modèle d&#8217;<em>Arduino</em> utilisé et le port série. Dans Ubuntu, le port est /dev/USB0. </p>
<p>Mon exemplaire de l&#8217;<em>Arduino</em> a été commandé chez <a href="http://www.antratek.be">Antratek</a>. Excellent service (ce qui vaut la peine d&#8217;être signalé) et livré 3 jours après la commande. Attention, le site est en Néérlandais uniquement !</p>
]]></content:encoded>
			<wfw:commentRss>http://linux.leunen.com/?feed=rss2&amp;p=937</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Applications Indicators</title>
		<link>http://linux.leunen.com/?p=933</link>
		<comments>http://linux.leunen.com/?p=933#comments</comments>
		<pubDate>Sat, 19 Jun 2010 09:24:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://linux.leunen.com/?p=933</guid>
		<description><![CDATA[Dans les prochaines versions d&#8217;Ubuntu, la zone de notification sera remplacée par deux zones appelées System Indicators et Applications Indicators.
La zone System Indicators contiendra les applets système du genre gestion de session, du son ou de la batterie pour les portables. La zone Applications Indicators contiendra les applications (icônes et menus) qui s&#8217;installent en partie [...]]]></description>
			<content:encoded><![CDATA[<p>Dans les prochaines versions d&#8217;Ubuntu, la <em>zone de notification</em> sera remplacée par deux zones appelées <em>System Indicators</em> et <em>Applications Indicators</em>.<br />
La zone <em>System Indicators</em> contiendra les applets système du genre gestion de session, du son ou de la batterie pour les portables. La zone <em>Applications Indicators</em> contiendra les applications (icônes et menus) qui s&#8217;installent en partie dans le tableau de bord et qui traditionnellement se trouvaient dans la <em>zone de notification</em>.<br />
Ce changement a été initié pour des raisons d&#8217;accessibilité, d&#8217;unité de présentation et de facilité pour l&#8217;utilisateur.<br />
Dans Lucid lynx, appindicator existe déjà. Vous pouvez l&#8217;installer dans le tableau de bord en ajoutant à celui-ci l&#8217;applet appelée <em>Applet de notification</em>. </p>
<p>Il est très facile de créer une petite application qui va placer une icône dans la zone <em>Applications Indicators</em>. Si vous avez installé l&#8217;<em>Applet de notification</em> dans votre tableau de bord, l&#8217;icône de votre application ira se loger dans celle-ci sinon, elle ira se mettre dans l&#8217;ancienne zone de notification.<br />
Voici un exemple de code en python:</p>
<pre class="codesource">
<span class="codecomment">#!/usr/bin/env python
</span><span class="codecomment"># -*- coding: utf-8 -*-
</span>
<span class="codecomment"># https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators
</span>
<span class="reservedname">import</span> appindicator
<span class="reservedname">import</span> gtk
<span class="reservedname">import</span> os

<span class="reservedname">class</span> IndicatorSample:
  <span class="reservedname">def</span> __init__(self):

    self.ind = appindicator.Indicator (<span class="quotedstring">"System Tools"</span>,<span class="quotedstring">"applications-system"</span>, appindicator.CATEGORY_SYSTEM_SERVICES)
    self.ind.set_status (appindicator.STATUS_ACTIVE)
    self.ind.set_attention_icon (<span class="quotedstring">"indicator-messages-new"</span>)

    <span class="codecomment"># Création d'un drop-down menu
</span>    self.menu = gtk.Menu()

    <span class="codecomment"># Création des éléments du menu
</span>    self.menu_item1 = gtk.MenuItem(<span class="quotedstring">"Firefox"</span>)
    self.menu_item1.connect(<span class="quotedstring">"activate"</span>, self.on_launch, <span class="quotedstring">"firefox"</span>)
    self.menu_item2 = gtk.MenuItem(<span class="quotedstring">"Calculatrice"</span>)
    self.menu_item2.connect(<span class="quotedstring">"activate"</span>, self.on_launch, <span class="quotedstring">"gcalctool"</span>)

    self.menu.append(self.menu_item1)
    self.menu.append(self.menu_item2)
    self.menu_item1.show()
    self.menu_item2.show()

    self.image = gtk.ImageMenuItem(gtk.STOCK_QUIT)
    self.image.connect(<span class="quotedstring">"activate"</span>, self.on_quit)
    self.image.show()
    self.menu.append(self.image)

    <span class="codecomment"># Associe le menu créé avec appindicator
</span>    self.ind.set_menu(self.menu)

  <span class="reservedname">def</span> on_launch(self, widget, data):
    os.system(data)

  <span class="reservedname">def</span> on_quit(self, widget, data = None):
    gtk.main_quit() 

<span class="reservedname">if</span> __name__ == <span class="quotedstring">"__main__"</span>:
  indicator = IndicatorSample()
  gtk.main()
</pre>
<p>Auparavant, on plaçait une icône dans la <em>zone de notification</em> en utilisant l&#8217;objet <em>gtk.StatusIcon</em> et on pouvait spécifier l&#8217;icône en la chargeant depuis un fichier avec <em>gtk.status_icon_new_from_file()</em>. Il semble que ce ne soit pas, plus ou pas encore possible avec <em>appindicator</em> et qu&#8217;on soit donc obligé de choisir une icône dans le stock. On peut lire dans le wiki d&#8217;Ubuntu sur la page consacrée à <a href="https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators">appindicator</a>:</p>
<blockquote><p>The icons need to use icon names from themes, direct paths to icon files are not supported. For example, icon names used with gtk_status_icon_new_from_file() won&#8217;t work.</p></blockquote>
<p>Si jamais vous avez une solution à ce problème, laissé un commentaire à ce billet. Merci d&#8217;avance.</p>
]]></content:encoded>
			<wfw:commentRss>http://linux.leunen.com/?feed=rss2&amp;p=933</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PhpMyAdmin &#8216;not found&#8217; sous Lucid</title>
		<link>http://linux.leunen.com/?p=931</link>
		<comments>http://linux.leunen.com/?p=931#comments</comments>
		<pubDate>Thu, 10 Jun 2010 12:00:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://linux.leunen.com/?p=931</guid>
		<description><![CDATA[Avec enthousiasme, vous installez LAMP sur Ubuntu et dans la foulée PhpMyAdmin pour la gestion des bases de données mysql, bien décidé à créer votre première application Web. Et puis, tout fonctionne bien sauf PhpMyAdmin qui refuse de se lancer. Qu&#8217;est-ce qui se passe ? A y regarder de plus prêt, PhpMyAdmin a été installé [...]]]></description>
			<content:encoded><![CDATA[<p>Avec enthousiasme, vous installez LAMP sur Ubuntu et dans la foulée PhpMyAdmin pour la gestion des bases de données <em>mysql</em>, bien décidé à créer votre première application Web. Et puis, tout fonctionne bien sauf PhpMyAdmin qui refuse de se lancer. Qu&#8217;est-ce qui se passe ? A y regarder de plus prêt, PhpMyAdmin a été installé dans <em>/usr/share</em> alors que les fichiers <em>html</em> et <em>php</em> doivent se trouver par défaut dans <em>/var/www</em>. C&#8217;est Apache qui veut cela. La solution est toute simple:</p>
<pre class="codesource">
$ sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin
</pre>
<p>La commande va créer un lien symbolique pour fire croire à Apache que les fichiers de PhpMyAdmin se trouvent bien au bon endroit.</p>
]]></content:encoded>
			<wfw:commentRss>http://linux.leunen.com/?feed=rss2&amp;p=931</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Synchroniser deux répertoires distants par FTP</title>
		<link>http://linux.leunen.com/?p=925</link>
		<comments>http://linux.leunen.com/?p=925#comments</comments>
		<pubDate>Sat, 05 Jun 2010 16:43:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://linux.leunen.com/?p=925</guid>
		<description><![CDATA[On connait tous rsync qui permet de synchroniser deux répertoires en faisant des sauvegardes incrémentielles. Cette synchronisation est unidirectionnelle; il y a un répertoire source et un répertoire de destination. Malheureusement, rsync ne fonctionne pas en FTP. Mais heureusement, dans la panoplie des outils pour Linux, il existe une application qui est capable de synchroniser [...]]]></description>
			<content:encoded><![CDATA[<p>On connait tous <em>rsync</em> qui permet de synchroniser deux répertoires en faisant des sauvegardes incrémentielles. Cette synchronisation est unidirectionnelle; il y a un répertoire source et un répertoire de destination. Malheureusement, <em>rsync</em> ne fonctionne pas en FTP. Mais heureusement, dans la panoplie des outils pour Linux, il existe une application qui est capable de synchroniser deux répertoires via FTP: <em>lftp</em>.</p>
<p><em>lftp</em> est un client FTP très évolué. Il s&#8217;utilise en ligne de commande et son gros avantage est sa capacité de faire du <em>mirroring</em>. Le <em>mirroring</em> consiste à comparer deux répertoires et à les synchroniser pour qu&#8217;ils soient identiques. lftp est capable de synchroniser un répertoire distant avec un répertoire local ou, l&#8217;inverse, synchroniser un répertoire local avec un répertoire distant. La différence réside dans le fait que dans le premier cas, la source est le répertoire local et dans le second, la source est le répertoire distant.</p>
<p>La commande de base si on veut que la source soit le répertoire local est :</p>
<pre class="codesource">
lftp ftp://login:password@host -c "mirror --delete --reverse --exclude-glob dossier_à_exclure /répertoire_local /répertoire_distant"
</pre>
<p>Dans le cas où on veut une synchro du répertoire local avec comme source le répertoire distant, on supprime l&#8217;option <em>&#8211;reverse</em>.<br />
l&#8217;option -c de <em>lftp</em> permet de donner à <em>lftp</em> un ensemble de commandes. Elle doivent être entre guillemets et séparées par des points-virgules. Notez aussi que l&#8217;option <em>&#8211;exclude-glob</em> peut être insérée plusieurs fois s&#8217;il y a plusieurs répertoires ou fichiers à exclure. Cette option accepte les wildcards (*,?). Je ne vais pas détailler toutes les commandes mais sachez que les commandes classiques de FTP sont reconnues (cd, lcd, get, mmet, put, mput,&#8230;). Je vous conseille la lecture de la page de manuel pour toutes les options et possibilités de ce programme.</p>
<p>Evidemment, lftp est particulièrement bien adapté à son utilisation au sein d&#8217;un script. A titre d&#8217;exemple, voici un petit script bash appelé ftpsync qui synchronise un répertoire distant à partir d&#8217;un répertoire local:</p>
<pre class="codesource">
#!/bin/bash
#
# Synchronise deux répertoires en utilisant FTP

HOST="ftp.votre_site.com"
LOGIN="votre_login"
PASSWORD="mot_de_passe"
LOCALDIR="$1"
REMOTEDIR="/"
EXCLUDED="*.*~"

function Usage()
{
  echo -e "\n  Synchronise un répertoire local avec un répertoire distant en utilisant FTP";
  echo -e "\n  USAGE: ftpsync local_dir";
  echo;
}

if [ "$LOCALDIR" = "" ]
then
  echo -e "  ERREUR: Veuillez spécifier un répertoire local";
  Usage;
  exit 1;
fi

if [ -e "$LOCALDIR" ]
then
  lftp -c "set ftp:list-options -a;
  open ftp://$LOGIN:$PASSWORD@$HOST;
  lcd $LOCALDIR;
  cd $REMOTEDIR;
  mirror --reverse \
         --delete \
         --verbose \
         --exclude-glob $EXCLUDED";
fi
</pre>
<p>A l&#8217;heure où on parle de plus en plus de cloud computing, où il est facile de se procurer des zones de stockage sur Internet gratuitement comme <em>DropBox</em>, <em>UbuntuOne</em> ou autre <em>SpiderOak</em>, synchroniser deux répertoires par FTP peut sembler anachronique mais <em>lftp</em> peut encore rendre de grands services pour faire, par exemple, des backups de votre site web distants sur votre PC en local.</p>
]]></content:encoded>
			<wfw:commentRss>http://linux.leunen.com/?feed=rss2&amp;p=925</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Compiler xvidcap-1.1.7 sous Lucid</title>
		<link>http://linux.leunen.com/?p=920</link>
		<comments>http://linux.leunen.com/?p=920#comments</comments>
		<pubDate>Sun, 23 May 2010 20:27:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Vidéo]]></category>

		<guid isPermaLink="false">http://linux.leunen.com/?p=920</guid>
		<description><![CDATA[Dans les forums d&#8217;Ubuntu-fr, quelqu&#8217;un demandait comment compiler xvidcap-1.1.7 sous Lucid afin de résoudre des problèmes de son qu&#8217;il avait avec la version des dépôts et manifestement avait un peu de mal a s&#8217;en sortir avec les messages d&#8217;erreurs.
Xvidcap est un programme de capture d&#8217;écran, dans un fichier vidéo AVI ou mpeg, destinée à la [...]]]></description>
			<content:encoded><![CDATA[<p>Dans les <a href="http://forum.ubuntu-fr.org/viewtopic.php?id=393570">forums d&#8217;Ubuntu-fr</a>, quelqu&#8217;un demandait comment compiler <em>xvidcap-1.1.7</em> sous Lucid afin de résoudre des problèmes de son qu&#8217;il avait avec la version des dépôts et manifestement avait un peu de mal a s&#8217;en sortir avec les messages d&#8217;erreurs.</p>
<p><em>Xvidcap</em> est un programme de capture d&#8217;écran, dans un fichier vidéo AVI ou mpeg, destinée à la réalisation de screencast.<br />
Pour compiler le programme, il faut le télécharger <a href="http://sourceforge.net/projects/xvidcap/">ici</a>, installer les paquets suivants qui sont nécessaires:</p>
<pre class="codesource">
$ sudo aptitude install libxmu-dev
$ sudo aptitude libxmu-headers
$ sudo aptitude libxt-dev
</pre>
<p>Ensuite, il faut décompresser l&#8217;archive puis compiler le programme de manière habituelle:</p>
<pre class="codesource">
$ tar  -zxvf xvidcap-1.1.7.tar.gz
$ cd xvidcap-1.1.7
$ ./configure
$ make
</pre>
<p>Mais durant le make, une erreur apparaît qui peut être incompréhensible pour quelqu&#8217;un qui n&#8217;a pas l&#8217;habitude:</p>
<pre class="codesource">
capture.c: In function ‘XGetZPixmapSHM’:
capture.c:668: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
capture.c:668: error: ‘req’ undeclared (first use in this function)
capture.c:668: error: (Each undeclared identifier is reported only once
capture.c:668: error: for each function it appears in.)
capture.c:669: error: ‘xShmGetImageReply’ undeclared (first use in this function)
capture.c:669: error: expected ‘;’ before ‘rep’
capture.c:675: error: ‘sz_xShmGetImageReq’ undeclared (first use in this function)
capture.c:675: error: ‘xShmGetImageReq’ undeclared (first use in this function)
capture.c:675: error: expected expression before ‘)’ token
capture.c:675: error: ‘X_ShmGetImage’ undeclared (first use in this function)
capture.c:693: error: ‘rep’ undeclared (first use in this function)
</pre>
<p>En bref, cela signifie que dans le fichier capture.c, à la ligne 668, dans la fonction XGetZPixmapSHM, il y a un type non-déclaré: <em>xShmGetImageReq</em>.<br />
Après une petite recherche dans les fichiers d&#8217;entête (.h), il apparaît que ce type est  déclaré dans Lucid dans le fichier <em>X11/extensions/shmproto.h</em>. Or celui-ci n&#8217;est pas inclus dans capture.c. A la place, on trouve un fichier <em>X11/extensions/shmstr.h</em> qui lui n&#8217;existe plus. Donc il semblerait bien que le premier remplace le second dans les dernières versions. Il suffit donc dans le fichier capture.c de trouver la ligne contenant:</p>
<pre class="codesource">
#include &lt;X11/extensions/shmstr.h&gt;
</pre>
<p>et de la remplacer par:</p>
<pre class="codesource">
#include &lt;X11/extensions/shmproto.h&gt;
</pre>
<p>Relancez la compilation puis l&#8217;installation et vous obtiendrez une version compilée de xvidcap fonctionnelle et avec le son en plus:</p>
<pre class="codesource">
$ make
$ sudo make install
</pre>
]]></content:encoded>
			<wfw:commentRss>http://linux.leunen.com/?feed=rss2&amp;p=920</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Absence de son et/ou d&#8217;image dans les vidéos en flash</title>
		<link>http://linux.leunen.com/?p=913</link>
		<comments>http://linux.leunen.com/?p=913#comments</comments>
		<pubDate>Sat, 22 May 2010 15:02:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://linux.leunen.com/?p=913</guid>
		<description><![CDATA[Depuis que j&#8217;avais installé Lucid Lynx sur mon portable, je n&#8217;avais pas de son avec les vidéos flash de Youtube ou de DailyMotion par exemple dans Firefox. Avec Chromium, c&#8217;était encore pire; je n&#8217;avais même pas la vidéo. Même l&#8217;installation du plugin non libre n&#8217;arrangeait pas les choses. J&#8217;ai donc décidé d&#8217;installer la dernière version [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis que j&#8217;avais installé Lucid Lynx sur mon portable, je n&#8217;avais pas de son avec les vidéos flash de <a href="http://www.youtube.com/">Youtube</a> ou de <a href="http://www.dailymotion.com/fr">DailyMotion</a> par exemple dans Firefox. Avec Chromium, c&#8217;était encore pire; je n&#8217;avais même pas la vidéo. Même l&#8217;installation du plugin non libre n&#8217;arrangeait pas les choses. J&#8217;ai donc décidé d&#8217;installer la dernière version du plugin disponible sur le site d&#8217;Adobe et que vous pouvez télécharger à cette <a href="http://get.adobe.com/fr/flashplayer/?promoid=BUIGP">adresse</a>.</p>
<p>Choisissez, dans la boîte déroulante, la version <em>.tar.gz pour linux</em>. Vous obtenez un fichier <em>install_flash_player_10_linux.tar.gz</em>. Notez que la version peut être différente dans votre cas. Ici, il s&#8217;agit de la version 10.<br />
Si vous jetez un oeil au contenu de cette archive, vous verrez qu&#8217;elle ne contient qu&#8217;un seul fichier appelé <em>libflashplayer.so</em> qui est le plugin à installer dans Firefox ou Chromium.<br />
Il vous faut maintenant décompresser l&#8217;archive et copier le plugin dans Firefox et dans Chromium. Pour cela, placez-vous dans le répertoire où vous avez téléchargé l&#8217;archive et tapez les commandes suivantes:</p>
<pre class="codesource">
$ tar -zxvf install_flash_player_10_linux.tar.gz
$ cp libflashplayer.so ~/.mozilla//plugins
</pre>
<p>C&#8217;est tout pour Firefox. Si vous utilisez aussi Chromium, il faut aussi copier le fichier dans le répertoire adéquat de Chromium:</p>
<pre class="codesource">
$ cp libflashplayer.so /usr/lib/chromium-browser/plugins
</pre>
<p>Il vous reste à vérifier que le plugin est bien installé en tapant dans la barre d&#8217;adresse du navigateur:</p>
<pre class="codesource">
about:plugins
</pre>
<p>Votre navigateur affiche alors la liste des plugins installés. Vérifiez que c&#8217;est bien la version de flash correspondant à celle que vous venez d&#8217;installer.<br />
Vérifiez ensuite que vous avez du son et que tout fonctionne correctement à présent.</p>
<p>Update: Il semble que pour certains, il faille une désinstallation de la version de flash installée précédemment avant de vouloir installer la nouvelle version provenant du site d&#8217;Adobe.</p>
]]></content:encoded>
			<wfw:commentRss>http://linux.leunen.com/?feed=rss2&amp;p=913</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Projet WebM et VP8</title>
		<link>http://linux.leunen.com/?p=907</link>
		<comments>http://linux.leunen.com/?p=907#comments</comments>
		<pubDate>Wed, 19 May 2010 19:53:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Vidéo]]></category>

		<guid isPermaLink="false">http://linux.leunen.com/?p=907</guid>
		<description><![CDATA[Sous le terme VP8 se cache un codec de compression vidéo de haute performance demandant peu de ressources processeur pour le décodage ce qui le rend attractif même pour de la HD.
VP8 est un codec développé initialement par Google au sein du projet WebM et que ce dernier vient de rendre Open Source. Destiné à [...]]]></description>
			<content:encoded><![CDATA[<p>Sous le terme <em>VP8</em> se cache un codec de compression vidéo de haute performance demandant peu de ressources processeur pour le décodage ce qui le rend attractif même pour de la HD.<br />
<em>VP8</em> est un codec développé initialement par <em>Google</em> au sein du projet <a href="http://webmproject.blogspot.com/"><em>WebM</em></a> et que ce dernier vient de rendre Open Source. Destiné à concurrencer le codec <em>H264</em>, codec propriétaire, qui a été choisi pour le HTML5, ce codec a une chance de rallier tous les suffrages alors même que le codec <em>ogg</em>  avait été évincé de la course dans le choix d&#8217;un codec pour le <em>HTML5</em>.</p>
<p>C&#8217;est donc un grand jour pour la communauté du libre. De plus, on a appris aussi aujourd&#8217;hui que <a href="http://www.collabora.co.uk/press/2010/05/join-google-webm-project.html">Collabora</a>, l&#8217;entreprise derrière <em>gstreamer</em> avait rejoint le projet <em>WebM</em>. Ce projet inclut aussi <em>vorbis</em> en tant que codec audio et un container dérivé du container <em>Matroska</em>.<br />
Outre <em>Collabora</em>, le projet <em>WebM</em> de <em>Google</em> est aussi supporté par <em>Adobe</em>, <em>Skype</em>, <em>Opéra</em>, <em>Mozilla</em>, <em>NVidia</em>, <em>Logitech</em>, <em>TI</em>, <em>Broadcom</em> etc&#8230; On se souvient que <em>Mozilla</em> et <em>Opéra</em> s&#8217;étaient opposés à l&#8217;utilisation de <em>H264</em> dans le cadre du <em>HTML5</em>, il est donc assez normal de les retrouver ici dans les entreprises supportant le projet <em>WebM</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://linux.leunen.com/?feed=rss2&amp;p=907</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Disque dur non reconnu à l&#8217;installation</title>
		<link>http://linux.leunen.com/?p=904</link>
		<comments>http://linux.leunen.com/?p=904#comments</comments>
		<pubDate>Wed, 19 May 2010 18:48:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://linux.leunen.com/?p=904</guid>
		<description><![CDATA[Cette astuce a été donnée par phil24 dans les forums ubuntu et comme ce problème a l&#8217;air de revenir régulièrement, je trouvais bon d&#8217;en faire l&#8217;écho ici.
Si lors de l&#8217;installation d&#8217;Ubuntu, lorsqu&#8217;il vous est demandé comment vous voulez partitionner le disque dur, vous vous apercevez que votre disque dur n&#8217;est pas reconnu et n&#8217;apparaît pas, [...]]]></description>
			<content:encoded><![CDATA[<p>Cette astuce a été donnée par <a href="http://forum.ubuntu-fr.org/viewtopic.php?pid=3468808#p3468808">phil24</a> dans les forums ubuntu et comme ce problème a l&#8217;air de revenir régulièrement, je trouvais bon d&#8217;en faire l&#8217;écho ici.</p>
<p>Si lors de l&#8217;installation d&#8217;Ubuntu, lorsqu&#8217;il vous est demandé comment vous voulez partitionner le disque dur, vous vous apercevez que votre disque dur n&#8217;est pas reconnu et n&#8217;apparaît pas, vérifiez les points suivants:<br />
d&#8217;abord regardez dans le BIOS de votre PC si le disque dur n&#8217;est pas défini comme faisant partie d&#8217;un volume RAID et au besoin spécifiez le mode AHCI pour ce disque. Ensuite, si votre disque dur persiste à ne pas vouloir apparaître lors de l&#8217;installation, démarrez le LiveCD d&#8217;Ubuntu comme si vous vouliez le tester. Une fois lancé et votre session initialisée, supprimez le paquet <em>dmraid</em> en ouvrant un terminal et en tapant:</p>
<pre class="codesource">
$ sudo aptitude remove dmraid
</pre>
<p>Ce paquet semble empêcher la détection des certains disques SATA.<br />
Ensuite, pour installer Ubuntu, double-cliquez sur l&#8217;icône du bureau permettant l&#8217;installation d&#8217;Ubuntu. Votre disque dur devrait enfin être détecté.</p>
]]></content:encoded>
			<wfw:commentRss>http://linux.leunen.com/?feed=rss2&amp;p=904</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SpiderOak, une alternative à Dropbox et UbuntuOne</title>
		<link>http://linux.leunen.com/?p=900</link>
		<comments>http://linux.leunen.com/?p=900#comments</comments>
		<pubDate>Wed, 12 May 2010 07:20:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://linux.leunen.com/?p=900</guid>
		<description><![CDATA[J&#8217;ai déjà parlé dans un article précédent de solutions de stockage en ligne du style UbuntuOne ou Dropbox. Ces systèmes permettent outre le stockage de données, la synchronisation entre plusieurs PC et le partage de fichiers.
Or, il existe une alternative, découverte sur le blog de Nicolargo de SpiderOak qui est semble-t-il plus souple que Dropbox [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai déjà parlé dans un article précédent de solutions de stockage en ligne du style <a href="https://one.ubuntu.com/">UbuntuOne</a> ou <a href="https://www.dropbox.com/">Dropbox</a>. Ces systèmes permettent outre le stockage de données, la synchronisation entre plusieurs PC et le partage de fichiers.<br />
Or, il existe une alternative, découverte sur le <a href="http://blog.nicolargo.com/2010/05/spideroak-un-serieux-concurrent-a-dropbox.html">blog de Nicolargo</a> de <a href="https://spideroak.com/">SpiderOak</a> qui est semble-t-il plus souple que <em>Dropbox</em> et <em>UbuntuOne</em> dans ce sens qu&#8217;elle permet de synchroniser non plus un seul répertoire (~/Dropbox ou ~/Ubuntu One) mais tous ceux que vous voulez. Il semble même possible, mais je n&#8217;ai pas encore eu l&#8217;occasion de tester cette option, de synchroniser un répertoire avec une machine et un autre répertoire avec une autre machine. Autre caractéristique de <em>SpiderOak</em>, le chiffrement des données (une clef est associée automatiquement à votre compte) pour augmenter la confidentialité de vos données.<br />
En bref, cela a l&#8217;air très intéressant d&#8217;autant plus que les prix sont plus bas que ceux pratiqués par <em>Dropbox</em> ou <em>UbuntuOne</em>. Comme pour ces deux solutions-là, vous avez droit à 2GB gratuitement. Cela vous permet de tester le système et vous offre une zone de sauvegarde de taille réduite mais néanmoins utilisable. L&#8217;offre payante s&#8217;établit elle à $10 par mois pour 100GB de stockage. Pas mal du tout ! Pour ces mêmes $10, <em>Dropbox</em> et <em>UbuntuOne</em> ne proposent que 50GB.<br />
Je vous invite à tester <em>SpiderOak</em> en <a href="https://spideroak.com/download/referral/b861afdf8e7c987a728dc9d673bec063">cliquant sur ce lien</a> pour télécharger le client pour Ubuntu. Vous pouvez choisir le paquet pour ubuntu Karmic qui fonctionne très bien sous lucid.<br />
Seul bémol, mais c&#8217;est le cas aussi de <em>Dropbox</em> et même d&#8217;<em>UbuntuOne</em>, ce n&#8217;est pas libre, pour l&#8217;instant du moins.</p>
]]></content:encoded>
			<wfw:commentRss>http://linux.leunen.com/?feed=rss2&amp;p=900</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
