Un nouveau wlppr tous les jours sur votre bureau Linux

Comme vous le savez, chez Magetys, nous aimons beaucoup les fonds d’écran, ou les wallpapers comme on les appelle également. Alors forcément on aime wlppr.com qui propose tous les jours un wallpaper original adapté à tous les résolutions d’écran (ou presque !).

Nous avons donc développé un script bash qui permet de placer automatiquement en fond d’écran de votre bureau Linux le wallpaper proposé par wlppr.com. Le script fonctionne sur les environnment Gnome, Unity, xfce et même le tout nouveau Gnome-shell !



TELECHARGER

Pour un meilleur rendu, nous vous conseillons d’éditer le script pour modifier les valeurs screenWidth et screenHeight en début de fichier afin qu’elles correspondent à la largeur et la hauteur de la résolution de votre écran. Nous souhaitions à la base détecter automatiquement ces valeurs grâce à la commande xwininfo :

#screenWidth=`xwininfo -root | grep Width | cut -d":" -f2 | sed 's/^ *//g'`
#screenHeight=`xwininfo -root | grep Height | cut -d":" -f2 | sed 's/^ *//g'`

Mais cela n’est pas possible si l’on souhaite exécuter le script dans une tâche cron. En effet, xwininfo retourne des valeurs uniquement lorsque x-server est lancé or ce n’est pas le cas dans une tâche cron. Si vous connaissez un moyen de récupérer la résolution de l’écran sans que x-server soit démarré, nous sommes preneur !

Avant tout utilisation du script, pensez à le rendre exécutable bien sûr :

sudo chmod a+x wlppr

Pour être sûr de toujours être à jour, vous pouvez faire s’exécuter le script au démarrage de votre ordinateur grâce à l’outil Applications au démarrage.

Pour vraiment parfaire le concept, vous pouvez faire exécuter le script grâce à une tâche Cron. Pour ceux qui ne connaissent pas, Cron est un programme qui permet d’executer automatiquement des scripts, des commandes ou des logiciels à une date et une heure spécifiée à l’avance.

Pour créer une nouvelle tâche, exécuter la commande :

crontab -e

Cette commande permet d’éditer un fichier à l’aide d’un éditeur de texte défini à la première exécution de crontab. Ajoutez alors cette ligne dans le fichier crontab :

0 12 * * * /chemin/vers/le/script/wlppr

Cette commande permet d’exécuter le script tous les jours à midi.

Fermez et sauvegardez le fichier. Pour vérifier que la tâche Cron a bien été ajoutée. Vous pouvez exécuter la commande :

crontab -l

Et voila le travail ! Tous les jours, un nouveau fond d’écran !

Notification text-to-speech avec Karotz à la fin d’un téléchargement sur SABnzbd+

Pour ce nouvel article je vais m’adresser à un public assez restreint puisqu’il est dédié aux utilisateurs de SABnzbd+ (le gestionnaire de téléchargements pour Usenet) et possesseurs de lapin électronique Karotz. Ça peut également intéresser ceux qui souhaitent faire une application Karotz en Python. Aujourd’hui, je vais donc vous montrer comment être notifié de la fin d’un téléchargement sur SABnzbd+ grâce au text-to-speech de Karotz. Je vais vous présenter comment créer une application privée sur le Karotz Lab, créer un script Python pour utiliser l’API Web de Karotz et enfin, configurer SABnzbd+ pour exécuter automatiquement un script Python à la fin d’un téléchargement.

Architecture

Pour ceux qui souhaitent vraiment comprendre le fonctionnement du système. Voici une petite explication. Pour les autres, passez à la section suivante, suivez juste les instructions même si vous ne comprenez pas tout ce que vous faites et ça ira bien :)

Lorsque l’on souhaite faire exécuter une action à un Karotz, il existe deux moyens. Le mode embarqué (hosted), où le code de l’application est installé sur le Karotz ou le mode distant (external), où l’on va passer par une API web qui va piloter le Karotz à distance. En mode embarqué, une action peut être exécutée uniquement grâce aux triggers prévus par le appz store. A savoir, la commande vocale, le déclenchement planifié, le déclenchement répété ou encore à l’aide d’un Nanoz (la puce RFID Karotz). Etant donné ce que l’on souhaite que ce soit SABzbd+ qui déclenche une action sur le Karotz, c’est la méthode distante qui s’impose à nous. Afin d’utiliser l’API web, nous avons besoin d’une API Key et d’une Secret Key. Pour cela, on doit créer un profil d’application dans le Karotz Lab. La Secret Key, comme son nom l’indique, doit rester secrète, on ne peut pas se permettre de l’afficher aux yeux de tout le monde dans un script Python, c’est pour ça que vous devez créer votre propre application Karotz qui restera privée. Afin d’identifier le Karotz cible et de s’assurer que vous avez autorisé l’application à utiliser votre Karotz, vous avez également besoin d’un InstallId. C’est lorsque l’on installe une application sur un Karotz que le Appz Store retourne un InstallId. C’est donc avec ces 3 éléments (API Key + Secret Key + InstallId) que le script Python va pouvoir se connecter à l’API Web afin d’exécuter des actions sur un Karotz ciblé. Etant donné qu’un schéma vaut mieux qu’un long discours, jetez un oeil à ceci :

Création de l’application Karotz

Vous devez d’abord créer votre propre application Karotz sur le Karotz Lab, rendez-vous donc sur http://www.karotz.com/lab/app/dashboard. Lorsque vous créez une application vous devez remplir un petit formulaire. Les champs Application name, Category, Short description, Description, Icon et Ztore sont obligatoires. Au passage, je trouve ça plutôt dommage que l’on ne puisse pas publier son application sur tous les Ztores. Mais bon, dans notre cas, le problème ne se pose pas étant donné que notre application restera privée. Si tout s’est bien passé vous devriez voir s’afficher une API key et une Secret key pour votre application. Ce jeux de clés va vous permettre d’accéder à l’API Web.

Vous devez ensuite créer une archive ZIP contenant 2 fichiers.

Le premier est le fichier descriptor.xml qui, comme son nom l’indique, décrit l’application. On indique le numéro de version que l’on souhaite utiliser, le tex-to-speech (‘tts’), qu’on utilise l’API Web, qu’on ne possède pas de profil de configuration et que l’on souhaite afficher l’InstallId sur la page de configuration.


<descriptor>
   <version>1.0</version>
   <accesses>
       <access>tts</access>
    </accesses>
    <editor>Magetys</editor>
    <deployment>external</deployment>
    <multiConf>false</multiConf>
    <parameters>
        <parameter key="showInstallUuid" value="true"/>
    </parameters>
</descriptor>

Le second fichier est le fichier screen.xml qui permet de décrire la page de configuration de l’application. Ici, nous désactivons toutes les configurations possibles.


<screen
	nanoTrigger="false"
	permanentTrigger="false"
	scheduledTrigger="false"
	scheduledDateTrigger="false"
	voiceTrigger="false" >
</screen>

Une fois l’archive ZIP créée contenant ces deux fichiers, il suffit de la mettre en ligne en cliquant sur Add a new version.

Maintenant, il ne vous reste plus qu’à cliquer sur Make private, ainsi, seules les personnes possédant le lien de l’application peuvent installer l’application, puis Test !. Vous êtes alors redirigé vers la fiche de l’application et vous pouvez ainsi l’installer sur votre Karotz.

Comme spécifié dans le fichier screen.xml, la page de configuration de l’application contient uniquement l’InstallId. L’installId va également nous être utile pour accéder à l’API Web.

Sur le Karotz Lab, vous pouvez voir que l’application est installée sur un Karotz.

La partie concernant Karotz est maintenant terminée ! On va pouvoir communiquer avec le Karotz depuis un script Python.

Configuration de SABnzbd+

Commencez par Télécharger le script Python que Magetys vous partage avec plaisir.



TELECHARGER
Copiez ce script dans un répertoire, par exemple dans /home/_your_login_/scripts. Vous devez modifier le script pour renseigner votre API Key, votre Secret Key et votre installId. Une fois fait, il faut rendre ce script exécutable (commande chmod a+x).

Dans l’interface SABnzbd+, vous devez spécifier le dossier par défaut qui contient vos scripts grâce au menu Configuration ? Répertoires. Bien entendu, on indique le répertoire où l’on a copié notre script.

Je vous conseille également de désactiver Ne post-traiter que les fichiers vérifiés dans Configuration ? Options afin d’être notifié également lorsqu’il y a eu une erreur de téléchargement.

Dernière étape, il est intéressant d’activer l’exécution du script par défaut dans Configuration ? Catégories en sélection le script pour la catégorie Défaut et toutes les catégories que vous avez déjà pu configurer.

Voilà ! La configuration est terminée. Maintenant, à la fin de chaque téléchargement, vous devriez entendre votre Karotz vous le dire haut et fort ! Etant donné la complexité de cette installation, je réfléchis à une autre solution pour distribuer l’application à travers le Ztore en tant qu’application publique.

SVN se transforme en oeuvre d’art avec Gource

gource

Nous sommes tombés récemment sur un projet plutôt sympa. Il s’agit de Gource, un outil pour voir l’évolution d’un projet sous contrôle de version GIT, MercurialSVN ou ou encore CVS de façon très artistique. Qui a dit que le développement ne pouvait pas rejoindre les arts graphiques ? Certainement pas nous, et cet outil en est une des preuves ! Pour tester, nous avons généré une vidéo Gource d’un projet Symfony sous contrôle SVN que nous avions réalisé l’année dernière. Nous vous laissons jeter un oeil sur le rendu.

Visualisation SVN avec Gource from Magetys on Vimeo.

Maintenant que vous avez vu un peu de quoi retourne Gource, nous allons vous expliquez comment l’utiliser avec SVN sous Linux Ubuntu ! Tout d’abord, rendez-vous dans la section téléchargement du projet chez Google Code Project Hosting pour télécharger et installer le deb.

Rendez-vous ensuite dans votre projet SVN local :

cd my-svn-project

A l’aide de la commande SVN, générez un fichier de log complet :

svn log --verbose --xml > my-project.log

A partir de maintenant, il va falloir transformer votre fichier de log SVN en un fichier de log compréhensible par Gource. Pour cela, un script Python a été développé. Allez télécharger SVN Gource Script sur la page téléchargement du projet. Collez ensuite le script python à la racine de votre projet SVN. Executez la commande ci-dessous pour générer le bon fichier de log. Bien entendu, vous devrez préalablement avoir installer python sur votre machine si ce n’est pas déjà fait.

python svn-gource.py --filter-dirs my-project.log > my-project-gource.log

Il ne vous reste plus qu’à lancer la visualisation à l’aide de la commande :

gource --log-format custom my-project-gource.log

Il existe des paramètres intéressants que nous vous laissons découvrir par vous-même pour changer la date, les avatars, les couleurs, etc… Pour aller plus loin, il est carrément possible de faire une vidéo à partir de la visualisation Gource à l’aide de la commande suivant (il vous faudra ffmeg d’installé) :

gource --log-format custom my-project-gource.log --stop-at-end --output-ppm-stream - | ffmpeg -y -b
3000K -r 60 -f image2pipe -vcodec ppm -i - -vcodec mpeg4 gource.mp4

Dans cet exemple, la vidéo est encodé à l’aide du codec mpeg4 puisqu’il est présent dans la paquet ffmpeg d’Ubuntu par défaut. Par contre, vous allez sans doute vous rendre compte que la compression n’est pas terrible… Pour palier à ce problème, il existe le codec H264, cependant, celui-ci n’est pas présent dans le paquet par défaut de ffmpeg d’Ubuntu… Il ne vous reste donc plus qu’à compiler ffmpeg avec x264, il existe un très bon tutorial sur ubuntuforums pour faire ça ! Une fois fait, vous pourrez encoder en H264 avec le preset High Quality pour avoir un rendu optimal à l’aide de cette commande :

gource --log-format custom my-project-gource.log --stop-at-end --output-ppm-stream - | ffmpeg -y -b
3000K -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -vpre hq -crf 22 -threads 0 output.mp4

Voilà, Amusez-vous bien avec Gource !

Installation à la main d’UT2004 sous Linux

Unreal Tournament 2004 Linux

Introduction

Vous avez entre les mains le DVD du jeux Unreal Tournament 2004 et vous êtes trop content à l’idée qu’Epic ait prévu que l’on puisse l’installer sur votre machine sous Linux. Cependant, le script d’installation présent sur le DVD est buggé, il demande à l’infini d’insérer le second CD d’installation….

please mount the unreal tournament 2004 Disc 2 CD ROM

Vous avez beau tenter de démonter et remonter le DVD, rien à faire, l’installation est totalement bloquée et une grande frustration s’abat sur vos épaules… Heureusement, vous allez trouver dans cet article comment installer le jeu tout de même sur votre système d’exploitation préféré.

Copier les fichiers

Tout d’abord, commencez par copier le contenu de votre DVD à l’endroit où vous souhaitez installer le jeu.

Il faut ensuite télécharger le dernier patch pour le jeu, dans sa version pour Linux bien sûr, et décompresser l’archive du patch dans votre répertoire d’installation. Si l’on vous demande de remplacer des fichiers, répondez, oui ! Vous pouvez télécharger le patch v3369-2 chez clubic par exemple.

Installer les dépendances

Le jeu nécessite ensuite un certain nombre de dépendances pour fonctionner :

  • /usr/lib/libSDL-1.2.so.0
  • /usr/lib/libstdc++.so.5
  • /usr/lib/libopenal.so.1

En ce qui concerne la librairie libSDL-1.2, elle doit très certainement être présente sur votre système. Si ce n’est pas le cas, installez le paquet libsdl1.2debian-alsa.

Pour la librairie libstdc++5, ça va être plus compliqué, en effet, si votre système est à jour, vous possédez la version 6 de cette librairie et vous ne trouverez même plus la version 5 dans les dépôts. Fort heureusement il existe http://packages.debian.org pour retrouver des vieux paquets. Allez donc à cette adresse pour télécharger le deb de libstdc++5 et sa dépendance gcc-3.3-base à cette adresse. Installez les deux paquets.

Enfin, pour la librairie OpenAL, elle doit déjà se trouver sur votre système, si ce n’est pas le cas, installez le paquet libopenal1.

Lier les dépendances

Maintenant que les trois librairies sont bien installer sur votre machine, il faut que le jeu puisse les trouver, pour cela, nous allons créer des liens symboliques vers ces librairies. Ouvrez un terminal, allez dans le dossier System du jeu et créez les liens symboliques.

cd /.../ut2004/System/
ln -s /usr/lib/libSDL-1.2.so.0 libSDL-1.2.so.0
ln -s /usr/lib/libstdc++.so.5 libstdc++.so.5
ln -s /usr/lib/libopenal.so.1 openal.so

Décompresser les fichiers uz2

Il faut maintenant décompresser les fichiers compresser au format uz2. Pour cela, on va utiliser un logiciel TinyUZ2, que pouvez télécharger chez Unreal Admin. Décompressez le fichier tinyuz2 et placez le dans votre repertoire d’installation du jeu. Il ne reste plus qu’à exécuter les commandes suivantes dans votre terminal pour décompresser les fichiers et supprimer les archives.

cd /.../ut2004/
find -name '*.uz2' -exec ./tinyuz2 -d {} \;
find -name '*.uz2' -exec rm {} \;

Créer le fichier pour la clé CD

Allez, encore un petit effort pour la dernière étape de cette installation. Il s’agit de créer un fichier nommé CDkey dans le dossier System du répertoire d’installation du jeu, et d’y inscrire à l’intérieur votre clé CD.

Lancer le jeu

Et voilà, si vous avez suivi ce tutorial à la lettre, il ne vous reste plus qu’à lancer le jeu à l’aide de la commande :

./.../ut2004/System/ut2004-bin

Ce tutorial a été testé sur une distribution Ubuntu 9.10 x86 c’est pourquoi, nous avons indiqué des liens vers des paquets debian, mais vous pouvez de la même manière trouver les paquets rpm ou autres correspondants à votre distribution.

Bonjour Madame sur votre bureau Linux

Bonjour Madame

Noël approche et vous avez très certainement terminé de rédiger votre liste de cadeaux au Père Noël. Mais les meilleurs cadeaux sont bien sûr ceux que l’on attend pas. C’est pourquoi, Magetys vous offre un jolie cadeau pour Noël !

Vous connaissez très certainement le site BonjourMadame, le site qui tous les matins à 10h propose une photo d’une jolie fille! Et bien Magetys a développé un petit script bash pour que la jeune demoiselle arrive directement en fond d’écran sur votre bureau. Le script fonctionne pour les distributions Linux ayant un environnement de bureau Gnome ou Xfce.

Vous pouvez télécharger le script ici : BonjourMadame v1.0.1

Pensez à rendre le script exécutable

sudo chmod a+x bonjourMadame

Pour être sûr de toujours être à jour, vous pouvez faire s’exécuter le script au démarrage de votre ordinateur en allant dans le menu :

Système -> Préférences -> Applications au démarrage

Et pour vraiment parfaire le concept, vous pouvez faire exécuter le script grâce à une tâche Cron. Pour ceux qui ne connaissent pas, Cron est un programme qui permet d’executer automatiquement des scripts, des commandes ou des logiciels à une date et une heure spécifiée à l’avance.

Pour créer une nouvelle tâche, exécuter la commande :

crontab -e

Cette commande permet d’éditer un fichier à l’aide d’un éditeur de texte défini à la première exécution de crontab. Ajoutez alors cette ligne dans le fichier crontab :

5 10 * * * /.../bonjourMadame

Cette commande permet d’exécuter le script à l’adresse spécifiée tous les jours à 10H05.

Fermez et sauvegardez le fichier. Pour vérifier que la tâche Cron a bien été ajoutée. Vous pouvez exécuter la commande :

crontab -l

Joyeux Noël !

ps: si vous êtes plutôt un utilisateur de mac rendez-vous ici : Bonjour Madame sur Mac