PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

jesuislibre : Test unitaire automatisé lors d’un push sur github

mardi 19 février 2013 à 13:06

travis

Suite au développement de garchdeps (outils de gestion des dépendances pour Archlinux). J’ai rencontré des problèmes lors de l’accès à certaines propriétés de mon code Python, je n’utilisais pas les nouvelles méthodes de création de classe. C’est pour cela que je me suis mis à la recherche d’une solution permettant d’effectuer des tests unitaires automatiques après chaque push sur le dépot github,  Pratique en travail d’équipe, cela permet de s’assurer que le code est toujours valide lorsqu’un membre pushe son code.

Pour cela, je vais utiliser le projet communautaire travis-ci.org couplé à github

1) Travis-CI c’est quoi ?

Travis-CI est une plateforme d’intégration continue, créée par la communauté Ruby, cette plateforme est libre et comme le dit la dévise du projet

A distributed build system for the open source community

Cette plateforme est principalement dédiée à la communauté du libre, d’ailleurs dans sa version communautaire, elle ne prend en compte que les dépôts github publics. Actuellement travis-ci gère une quinzaine de langages.

A noter que les sources travis-ci sont disponibles sur le dépôt github

 2) Synchronisation entre travis et github

Pour créer un compte sur travis-CI, rien de plus simple, il suffit de cliquer sur « sign in with github », une fois que vous vous êtes connecté, sélectionnez les dépôts sur lesquels vous désirez effectuer des tests unitaires

3) Configuration de votre projet pour supporter le test unitaire (Python)

A la racine de votre projet, créez le fichier .travis.yml contenant au minimum les lignes suivantes

# Language à parser
language
: python

# Version de python à tester
python
:
- "2.7"
- "3.2"

# script du test unitaire à executer
script
: ./garchdeps.py --test

Exemple d’un code de test unitaire

class TestPackages(unittest.TestCase):
    def setUp(self):
        """Before unittest"""
        pwd = os.path.dirname(__file__)
        filename = "%s/%s" % (pwd, "packages.cache")
        self.__allpackages = loadPkgInfo(filename, False, True)

    def test_summary(self):
        """ test summary properties"""
        self.assertEqual(len(self.__allpackages), 1277)
        self.assertEqual(self.__allpackages.fullsize, 6347736)

    def test_size(self):
        """ test object size"""
        self.assertEqual(self.__allpackages.getPkgByName('libreoffice-common').size, 241767)
        self.assertEqual(self.__allpackages.getPkgByName('kdebase-workspace').size, 73720)
        self.assertEqual(self.__allpackages.getPkgByName('arduino').size, 47104)

    def test_maxiobject(self):
        self.assertEqual(self.__allpackages.maxi['size'].pkgname,
                         'libreoffice-common')
        self.assertEqual(self.__allpackages.maxi['depssize'].pkgname,
                         'kdeplasma-applets-networkmanagement')
        self.assertEqual(self.__allpackages.maxi['nbused'].pkgname,
                         'glibc')
        self.assertEqual(self.__allpackages.maxi['nbtotaldeps'].pkgname,
                         'kdeplasma-applets-networkmanagement')
        self.assertEqual(self.__allpackages.maxi['maxdepth'].pkgname,
                         'kdeutils-kremotecontrol')

    def test_maxivalue(self):
        self.assertEqual(self.__allpackages.maxi['size'].size,
                         241767.0)
        self.assertEqual(self.__allpackages.maxi['depssize'].depssize,
                         1472500.0)
        self.assertEqual(self.__allpackages.maxi['nbused'].nbused,
                         165)
        self.assertEqual(self.__allpackages.maxi['nbtotaldeps'].nbtotaldeps,
                         292)
        self.assertEqual(self.__allpackages.maxi['maxdepth'].maxdepth,
                         16)

4) Push du code vers github

Après avoir commité et pushé le code vers github, et après une attente de quelques secondes, le résultat de votre build devrait apparaître sur le site travis-ci et devrait ressembler à la capture ci-dessous

travis-ci

5) Bonus

Sur la page README.md de votre projet (github) il est possible d’ajouter un bouton qui permet d’indiquer si les tests se sont correctement déroulés. Il vous suffit d’ajouter la ligne suivante

[![Build Status](https://secure.travis-ci.org/badele/garchdeps.png)](http://travis-ci.org/badele/garchdeps)

Ce qui donne ceci

Gravatar de jesuislibre
Original post of jesuislibre.Votez pour ce billet sur Planet Libre.

Nicolargo : Raspberry Pi 512, déballage et installation

mardi 19 février 2013 à 08:00

Certains buzz démarrent avec pas grand chose, d'autre sont issus de vraies bonnes idées. Le Raspberry Pi B 512 est de cette catégorie là. Proposer une carte mère pour moins de 30€ avec un CPU ARM à 700 Mhz, un GPU bi-core pour un affichage "full HD" et 512 Mo de RAM. J'ai donc décidé d'acheter le modèle Raspberry PI B 512 avec un jolie boitier transparent. Ce kit est en vente chez Kubii au prix de 50€ (au passage je tiens à signaler le très bon service client de Kubii. Service rapide et personnalisé. C'est suffisamment rare pour le signaler).

Passons au vis du sujet avec le déballage et l'installation de la bête.

Pour quoi faire ?

L'avantage d'un prix aussi bas est de pouvoir se lancer dans son achat sans avoir vraiment d'idée précise d'utilisation en tête. Après quelques jours, voici une liste de choses que l'on peut ou ne peut pas faire avec un Raspberry.

Le Raspberry Pi B 512 est parfaitement adapté pour:

Il peut être utilisé occasionnellement pour:

Passez votre chemin si vous voulez:

Déballage

Commençons par la fin en montrant le résultat: mon Raspberry PI B 512 en action avec un écran, un clavier et une souris.

Raspberry PI 512

Regardons de plus prêt le coeur du système:

capture_043 capture_044 capture_045 capture_042 capture_046 Raspberry PI B 512

 

Installation

Choisir son système d'exploitation

Le Raspberry Pi est compatible avec les systèmes d'exploitations GNU/Linux. Certaines distributions se sont spécialisées pour ce matériel spécifique. La liste des systèmes d'exploitations compatibles se trouve sur cette page du site officiel. Mon choix c'est porté vers la Raspbian "Wheezy" qui est une distribution dérivée de Debian que je manipule tous les jours. Il existe également une autre distribution basée sur Arch Linux qui offre des performances équivalentes (voir l'article de P3ter sur le sujet).

Le système d'exploitation doit être stocké sur une carte SD à insérer dans le lecteur du Raspberry PI. Pour mettre le système Raspbian sur la carte SD j'ai utilisé mon PC portable sous Ubuntu 12.10 qui dispose d'un lecteur intégré de carte SD. La procédure suivante est donc à adapter selon votre matériel.

On commence donc par télécharger l'image de la dernière version de Raspbian puis de vérifier avec le logiciel sha1sum que l'archive est complète.

$ wget http://files.velocix.com/c1410/images/raspbian/2013-02-09-wheezy-raspbian/2013-02-09-wheezy-raspbian.zip
$ sha1sum 2013-02-09-wheezy-raspbian.zip
b4375dc9d140e6e48e0406f96dead3601fac6c81  2013-02-09-wheezy-raspbian.zip

La valeur barbare donnée par la commande sha1sum est à comparer avec celle de référence disponible sur la page de téléchargement. Si elles différent alors il ne vous reste plus qu'à recommencer le téléchargement.

On peut ensuite décompresser le fichier pour obtenir l'image disque (2013-02-09-wheezy-raspbian.img dans mon cas):

$ unzip 2013-02-09-wheezy-raspbian.zip
inflating: 2013-02-09-wheezy-raspbian.img

Graver son système sur la carte SD (source: eLinux)

On commence par insérer la carte dans son lecteur (celui de mon PC portable dans mon cas), puis on utilise la commande df -h pour obtenir le point de montage (/dev/sdb1 dans mon cas) correspondant à la carte SD. Attention de bien utiliser le point de montage pour éviter de formater votre disque système !!!:

capture_036

Une fois le point de montage identifié, il faut saisir les commande suivante (en remplaçant /dev/sdb1 par votre point de montage):

sudo dd bs=4M if=./2013-02-09-wheezy-raspbian.img of=/dev/sdb

Quelques explications sur cette dernière commande:

Très bien, votre carte contenant l'OS Raspbian "Wheezy" est prête à être utilisée !

Insérer votre carte dans le lecteur SD du Raspberry PI, brancher un clavier et l'alimentation micro USB et c'est parti !

capture_048

Configuration initiale du système

Au premier démarrage, vous allez avoir droit au lancement automatique de l'utilitaire de configuration "raspi-config" qu'il est possible de rappeler par la suite en saisissant la commande suivante dans un terminal:

sudo raspi-config

Raspi-config se présente sous la forme suivante:

capture_040

Les différentes fonctions permettent de:

capture_041

Premières impressions

Comme lors de  mon test du Linutop 4,  la première impression quand on utilise le Raspberry Pi avec son interface graphique LXDE, est un retour en arrière de quelques années ou il fallait attendre quelques secondes avant l'affichage des fenêtres. La lecture vidéo HD est par contre bleufante (voir le paragraphe en de billet), on voit que le GPU est parfaitement exploité.

Une fois dans un terminal, la machine réagi bien. Dans un très appréciable silence total, on utilise un système GNU/Linux minimaliste mais réactif.

Quelques tests

CPU, GPU et RAM

Sur ces aspects là, rien de notable, on est dans la norme avec ce type de matériel. Si vous voulez des chiffres pour comparer avec d'autres machines, je vous conseille la lecture de cette page Wiki chez eLinux.

Interface réseau

L'interface Ethernet est à la norme FastEthernet (soit un débit théorique maximum de 100 Mbps). Comme le Raspberry Pi n'a pas une capacité de stockage importante, cette vitesse pourra être pénalisante lors de l'accès à vos données stockées sur un NAS ou une autre machine.

Un rapide test avec Iperf montre un débit maximum en TCP de 90 Mbps en entrée et 65 Mbps en sortie. On a donc de bonnes performances pour une interface FastEthernet, en espérant une évolution en Giga pour la prochaine version de Raspberry Pi.

Multimédia

Là ou le Raspberry Pi est bluffant c'est sur les lectures audio et vidéo. En effet, avec les efforts pour adapter XBMC sur ce matériel on dispose de logiciel permettant sans aucun problème de lire des vidéos H.264 full HD.

Si vous ne souhaitez pas passer par XBMC, vous pouvez utiliser OMXPlayer de la manière suivante:

omxplayer -o hdmi 

Il est même possible, pour certains besoins spécifiques d'acheter, pour des sommes assez modiques, des licences pour des codecs MPEG-2 ou VC-1.

Il lui manque quoi ?

Personnellement, je serais assez intéressé par une version luxe (à 60€ max faut pas déconner non plus) intégrant les choses suivantes:

Conclusion

Nous voici arrivé au bout de ce premier article sur le Raspberry Pi, d'autres viendront vites, plus spécialisés. Je dois avoué avoir été agréablement surpris pas les capacités et le potentiel de cette petite machine. Le futur est là, devant nos yeux.

Et vous ? Avez vous craqués ? Si oui pour quelle utilisation ?

Cet article Raspberry Pi 512, déballage et installation est apparu en premier sur Le blog de NicoLargo.

Gravatar de Nicolargo
Original post of Nicolargo.Votez pour ce billet sur Planet Libre.

Articles similaires

Geek de France : Petit guide des consoles de salon sous GNU/Linux

mardi 19 février 2013 à 06:00

consoles

Aujourd’hui, Geek de France souhaitait vous présenter différents projets de console de jeux vidéo ayant abouti ou abandonné ou en cours de développement ou ya (Vous comprendrez le jeu de mot plus loin dans l’article) et utilisant notre système d’exploitation GNU/Linux.

Notre seconde partie concerne les consoles de salon.

La plus ancienne

dogs
D.O.G.S était le premier projet à ma connaissance à proposer une console de jeux vidéo. Cet ancêtre canin s’adresse en priorité aux bidouilleurs motivés puisque le site propose sur le fameux principe du Do It Yourself (Prenez un Yaourt au self), la marche à suivre avec la liste des composants électroniques aux plans du circuit imprimé; tout y est décrit pour créer soit même son propre système à brancher à la télévision.

La plus vendue

ps3
A l’origine, cette console n’est pas sous GNU/Linux, mais offre la possibilité d’installer des distributions compilées pour son architecture atypique, enfin ça c’était avant le drame… L’idylle entre la PlayStation 3 et notre manchot commence en décembre 2006, un mois après sa sortie sur l’archipel nippon. Disponible en téléchargement via la distribution Yellow Dog Linux qui permet d’exécuter les applications disponibles dans la distribution, typiquement bureautique. Grâce à cette fonctionnalité, Sony vend sa PS3 comme un centre de divertissement numérique égal au PC. D’autres distributions Linux telles que Ubuntu, Fedora, Debian ou Gentoo seront disponibles en version compatible PS3, ainsi que toutes les distributions prévues pour l’architecture PowerPC 32 ou 64bits.

Petit bémol : d’origine, il est malheureusement impossible d’utiliser la carte graphique RSX de la console sous GNU/Linux : Sony a bridé son accès. Pour obtenir une accélération graphique, il est donc nécessaire de passer par d’autres ressources matérielles. Heureusement, l’accélération 3D utilisant les possibilités du processeur Cell fut possible à partir de janvier 2008 au sein du projet Gallium 3D, qui fut incorporer dans Mesa 3D.

Le drame survint le 1er avril 2010, Sony sortit la mise à jour 3.21 pour ses PS3, qui marqua la fin de l’idylle entre notre manchot et la console de Sony en supprimant la fonctionnalité « Other OS » utilisée pour installer GNU/Linux. Officiellement, cette décision était prise pour éviter des problèmes de sécurité, officieusement, se fut pour Sony un moyen de contrer la faille trouvée par George Hotz, un hackeur connu pour avoir hacké l’iPhone à 17 ans et qui s’était fixé le défi de hacker la Playstation 3, inviolable depuis maintenant 3 ans et qu’il releva en 5 semaines!!

S’ensuivra un recours collectif d’utilisateurs poursuivant Sony aux USA : la possibilité d’installer GNU/Linux ayant été mise en avant par Sony, et ayant poussé des consommateurs à choisir la PS3 face à ses concurrents, les plaignants considèrent que l’entreprise nippone a violé les termes de son contrat envers les utilisateurs, et a tenté d’entraver une concurrence libre. Fort heureusement, le 25 mai 2011, la Team Rebugs, auteur du microcode CFW (Custom Firmware) Rebug 3.55, sort 2 outils servant à réintégrer l’option « Other OS » sur les PS3 fonctionnant avec le microcode précité. Comme quoi, une fois fait, il est difficile de chasser le manchot de son nid!

La plus commerciale

smartevoconsole
La console de salon sous Linux connu sous le nom Evo Smart Console, était conçu pour faire tourner des jeux commercialisés à l’ère de la septième génération (PS3, Xbox360, Wii) et produit par Envizions.

Le système d’exploitation utilisé, Mirrors Evolution,  était une distribution GNU/Linux customisée, basée sur Fedora. La console était aussi équipée en haute définition (HD) d’une résolution de 1080p, d’un accès Internet, et permettait de faire tourner les jeux Windows. Des codes sous licences libres étaient à disposition pour permettre aux développeurs de faire des jeux tournant sous GNU/Linux.

Il y eu deux versions :

Cette première incursion sur le terrain des consoles fut un échec cuisant, puisque la console de salon d’Envizions, produite selon certaines sources à 3000 exemplaires, fut vendu selon son PDG à quelques centaines d’unités.

 

La plus hype

ouya

Ouya est une future console de jeu vidéo, qui fonctionne avec sa propre version d’Android et qui table sur un prix de 99$.

J’ai longtemps hésité à l’inclure dans cette liste car ce projet à pris comme base Android… or il existe déjà une pléthore de console portable asiatique (et même une de notre petit archer français) sous le système mobile de Google, donc rien de neuf à priori sous . Mais le plus intéressant ce n’est pas la console en elle-même, mais son histoire et les personnes qui sont derrière cette console : c’est Julie Uhrman, bien connue de l’industrie du jeu vidéo (IGN, GameFly, Vivendi Games), qui eu l’idée du nom OUYA et de sa console quand elle était chez IGN, puis a fondé sa start-up en janvier 2012 et a fait appel au designer Yves Béhar (qui travailla entre autre sur l’OLPC et les hauts parleurs Jambox) pour collaborer à la conception du projet, et Muffi Ghadiali qui dirigea la conception des Kindle d’Amazon, comme chef de produit pour mettre sur pied l’équipe d’ingénierie. Elle s’est aussi entourée dans un conseil consultatif de Ed Fries, l’homme derrière la première XBOX et ancien directeur de Microsoft Game Studios, Brian Fargo, PDG de InXile développeur de jeu de longue date, Markus “Notch” Persson, le créateur de Minecraft et fondateur du studio Mojang et Adam Saltsman de Canabalt.

Le projet OUYA semblant trop risqué face à Sony, Microsoft et Nintendo, la start-up ne trouva pas d’investisseurs et se tourna vers le site de financement participatif Kickstarter où elle demandait une participation de 950 000$, un buzz immense entoura la console qui souleva plus de 8 500 000$ ce qui en fait le deuxième projet le plus financé du site.

La console est prévue pour sortie en Mars 2013.

 

La plus attendue

steambox

La Steam Box est nom de code qu’à donner l’industrie du jeu vidéo à la console de Valve et qui sortira cette année. Elle sera dédiée à l’exécution de la plateforme Steam pour permettre aux joueurs de lancer des jeux, médias, et autres fonctions que le client Steam fournissait déjà sur leur PC, mais à présent sur leur télévision.

Ce projet a été dévoilé par plusieurs journalistes grâce à des documents publiés par la société, mais l’existence de la console n’a été confirmé qu’en décembre 2012 lors des Spike Video Game Awards. Le matériel serait proche d’un PC et tournera sous … GNU/Linux !!

C’est pour cela qu’un des objectifs cruciaux chez Valve en ce moment est de mener à bien le portage, sous notre système d’exploitation de prédilection, du mode Big Picture, qui permet aux joueurs PC (sous Windows pour le moment) de déporter l’affichage sur leur écran de  télévision HD, pour jouer.

Alors vous aussi pensez-vous que l’année du serpent sera aussi celle du manchot ludique ?

Gravatar de Geek de France
Original post of Geek de France.Votez pour ce billet sur Planet Libre.

Nicolargo : Package d’installation pour Glances sous Windows

lundi 18 février 2013 à 16:55

Grâce au travail de Nicolas Bourges, Glances dispose désormais d'un installeur pour sa version Windows. Vous pouvez donc installer Glances 1.6 en version 32 ou 64 bits sans avoir à installer les pré-requis (Python, librairie PsUtil...) puisque tout est "packagé" dans le binaire.

On commence par télécharger le programme d'installation:

download
Télécharger Glances 1.6 en version 64 bits
(ou en version 32 bits)

MD5sum
glances-1.6.0-x64.exe                          de2c35c4bdd6a3ab2b938ea5f4c1567d
glances-1.6.0-x86.exe                          1d25902a2b1030f953a108792f4732cf

Puis on se laisse guider dans le wizard d'installation qui va mettre, par défaut, le binaire Glances.exe dans le répertoire C:\\Program Files\\Glances puis créer un raccourci sur votre bureau.

En cliquant sur ce raccourci, Glances va se lancer automatiquement en mode serveur. Pour ajouter d'autres paramètres (comme le mot de passe) il suffit de modifier ce raccourci pour y ajouter les options voulues (par exemple -P ).

Il ne vous reste plus qu'à revenir sur un vrai OS (ndlr: Nicolargo, tu me copieras 100 fois "Je ne trollerai plus.") puis à lancer la commande:

glances -c 

glancesonwin7

Et hop, vous pouvez maintenant surveiller vos machines Windows en une ligne de commande !

Cet article Package d’installation pour Glances sous Windows est apparu en premier sur Le blog de NicoLargo.

Gravatar de Nicolargo
Original post of Nicolargo.Votez pour ce billet sur Planet Libre.

Génération Linux : Mise en place du WiFi sur le Raspberry Pi

lundi 18 février 2013 à 14:33

Comme je l'ai dit dans mon article précédent, je voulais, dans un premier temps, utiliser mon Raspberry Pi pour mettre une webcam dans la chambre de mon bébé (donc juste en ligne de commandes via SSH, pas d'interface graphique).

Ne voulant pas tirer de câble réseau dans sa chambre, j'ai regardé pour brancher le Raspberry Pi en WiFi via une clé WiFi. C'est très simple, voici la marche à suivre.

wifilogo.png

Choix de la clé WiFi

Dans un premier temps, j'ai du choisir la clé WiFi à mettre sur mon Raspberry. Je voulais une clé automatiquement reconnue sur Raspbian, qui ne coûte pas cher et qui supporte la faible alimentation du Raspberry.

Pour faire mon choix, je me suis aidé de cette page qui liste les périphériques compatibles avec la Raspbian. Après avoir fait un tour sur quelques sites web, j'ai choisi la clé WiFi TP Link TL-WN725N. Cette clé n'a pas coûté cher (10€ environ) et "Works out of the box on Raspbian 2012-12-16 without a powered USB hub." selon la page des compatibilités. Parfait !

TL-WN725N-06.jpg

Configuration de la clé WiFi

Une fois la clé branchée sur le Rasberry, sa configuration est très simple, dans le fichier /etc/network/interfaces, il m'a suffit d'ajouter ces lignes :

allow-hotplug wlan0
iface wlan0 inet static
address 192.168.0.150
netmask 255.255.255.0
gateway 192.168.0.1
wpa-ssid "mon SSID"
wpa-psk "mon mot de passe"

Comme vous l'avez vu, j'ai décidé de mettre une adresse IP fixe pour mon Raspberry (192.168.0.150). Si vous voulez allouer une IP dynamique en WiFi, vous devez ajouter ces lignes à la place :

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "mon SSID"
wpa-psk "mon mot de passe"

Ensuite un petit ifdown wlan0 puis ifup wlan0 et tout sera en place. Vous pouvez le vérifier avec un ifconfig.

Cette configuration fonctionne très bien, depuis deux semaines, mon Raspberry tourne 24h/24 uniquement en WiFi en broadcastant la webcam en ligne. Je n'ai aucun problème d'alimentation et aucune coupure de service.

Dans mon prochain article, j'expliquerai comment j'ai configuré cette webcam pour broadcaster la vidéo sur le Net.

Gravatar de Génération Linux
Original post of Génération Linux.Votez pour ce billet sur Planet Libre.

Articles similaires