Comme mon travail en tant qu’administrateur système dans une société Web me fait rencontrer de nouveaux problèmes chaques jours, je me suis dit qu'il fallait que le monde profite de mes solutions :).

 

Popularité de GNU/Linux, jeux vidéos, bref, “Guys, DO YOUR F**KIN JOB!”

Je suis quelqu’un qui débat. Je débat sur tout et n’importe quoi, parce qu’il m’importe de faire passer des idées. Au delà de tout débat politique que je pourrai tenir, dans d’autres lieux que ce blog consacré à l’informatique, je veux ici aborder une idée reçue :

“Linux, ça sert a rien! Rien ne tourne dessus et c’est compliqué à utiliser!”

Cette phrase, je l’entends maintes fois prononcés par des utilisateurs déçus, des néophytes écurés par la complexité apparente des systèmes linux, souvent due à l’idée véhiculé par les médias. Elle est aussi prononcé parfois par des ignorants, mais ceux là sont pardonné par leur inculture totale du sujet. Ceux là je les ignore et les méprises, car ils n’ont pas fait l’effort, et donc méritent tout, sauf mon respect.

Dont panic! Linux is simple!*

Contrairement à l’idée que les gens s’en font, GNU/Linux, et la distribution issue de Debian, Ubuntu, sont aujourd’hui tellement simple que même votre grand mère pourrait l’utiliser.

Mais il y a un hic, et c’est là que les gens gueulent, c’est la difficulté de faire démarrer des éléments prévus pour Windows sur leur système Linux.

On pourrait se réjouir de la présence de Wine, qui permet tant bien que mal de faire démarrer quelques jeux, comme World of Warcraft, LoL et d’autres, en contrepartie de quelques efforts de configuration, qui sont, tout de même, de plus en plus assistés (notamment grâce à Winetricks). Le site de WineHQ annonce quand même plus de 5350 jeux supportés dont Skyrim en qualité “Gold et Platinium”, ce qui implique une gestion assez magistrale des jeux récents.

Au delà des jeux, c’est près de 12000 applications Microsoft que Wine peut faire tourner, avec plus ou moins de réussite, certes, mais quand même, ce n’est pas rien.

Mais maintenant, il y a quelque chose de vrai. Pour faire tourner un jeu sur Linux, il faut donc installer Linux + Wine + Dépendances + Eléments de Wine nécessaire au bon fonctionnement de jeu.

Comparativement à Windows, ou l’on insère le DVD, ou on télécharge le jeu (légalement bien sur), on prie pour que ça ne plante pas, et on joue.

Mais est-ce réellement la faute des utilisateurs?

Microsoft a gangrené le marché pendant 30 ans.

Il y a quelque chose que j’aimerai clarifier ici et briser pour certains une idée reçue : Ce n’est pas parce qu’un programme tourne sous GNU/Linux, qu’il est forcement gratuit, ou libre, ou Open source, qu’il respecte obligatoirement la License GPL. Certains programmes tournent sous copyright (même si ça déplais à Stallman) et coûtes des ronds. Ubuntu accueil d’ailleurs depuis la 11.10 des applications payantes dans sa logithèque en ligne. le business est donc possible sur Linux! Peut être même plus, compte tenu de l’économie réalisé par les consommateurs en se tournant vers un système d’exploitation entièrement gratuit.

Partant du principe qu’il existe donc un monde obéissant aux lois du capital dans l’univers du libre, que coûterait aux développeurs de jeux vidéo, pour compiler, compacter et sortir leurs jeux sur Linux?

Peut être un peu de temps, un peu d’argent, mais quand même, on ne dois pas le re-coder entièrement à ce que je sache! Rallonger d’un mois la sortie d’un jeu pour qu’ils soit portable sur tout les systèmes, c’est pourtant pas bien compliqué. Notch l’a compris en sortant un jeu multi-plateforme. De plus les langages propriétaires comme le C# seraient les seuls affectés par un manque de portabilité, mais on s’en fiche, c’est du Java! Y’a qu’a le transposer et lâcher définitivement le C# qui reste quand même une erreur colossale!

En plus pour le peu de jeu qui ont fait le choix du C#, une infime partie du panel de jeux actuellement sur le marché ne serait pas affectés.

Un effort commun

Mon propos est le suivant : Microsoft Windows, avec la sortie de sa version 8, va devenir de plus en plus privative : Contrôle totale sur la machine, désinstallation à distances des outils piratés, la menace d’un contrôle total sera peut être permanente sur ces systèmes, et les gens vont peut-être, je l’espère, avoir l’intelligence de chercher une alternative. Cette volonté qui viendra, j’en suis sur, de la part d’utilisateur aguerris mais pas forcement forcenés (je pense à ceux qui sont capables en temps normal de pirater un Photoshop CS5 en appliquant des patchs sur leur fichiers hosts) qui chercherons des solutions d’échapper aux contrôles, que ce soit par liberté de piratage, ou par envie d’être libre, tout simplement.

Il est pour moi donc important que la communauté des développeurs de jeux vidéos se mettent en ordre de marche pour assurer la portabilité des produits sur les plateformes GNU/Linux.

Valve Corporation, par le biais de Steam, avait suscité l’espoir en annonçant la sortie hypothétique d’un client Steam Linux, ouvrant ainsi la voie aux studios de pouvoir faire profiter aux utilisateurs de ce système, une partie de la bibliothèque dans laquelle ont retrouve une grande quantité des jeux PC actuel.

Il faut à tout pris soutenir et encouragé des projets de ce type, par le biais de sondages, et de réclamation pour montrer que le marché est là, et qu’il attend. il faut pousser aussi les autres, comme Origin pour EAGames, et des studios comme Ubisoft ,à lancer eux aussi la même initiative, et les pousser à sortir leurs jeux sous Linux.

Oui, ce billet est plus ou moins un appel, un appel d’un développeur et d’un joueur, tournant sous GNU/Linux depuis maintenant 5 ans, et qui aimerai beaucoup se débarrasser de Windows 7 sur son PC fixe, qu’il est obligé de lancer tout les jours pour jouer sur Steam :p.

*Pas de panique, Linux, c’est Simple!

“Gource” pour vos dépôts Git

Bonjour à tous!

Petit billet plein de légèreté et de beauté aujourd’hui. Vous, brillants administrateurs systèmes qui tombez par hasard sur ce blog en quête de réponses improbables, n’avez jamais rêvé d’un peu de couleur et de folie pour vos environnement de développement?

Donc aujourd’hui je vais vous parler d’un petit logiciel sympatoch nommé gource.

Gource est un logiciel de visualisation de projet git/svn qui permet de voir les dossiers, les branches, les commits et les membres à partir des logs sur le projet en question. Niveau professionnel, l’intérêt est plus que limité, mais d’un point de vue visuel, qu’est ce que ça en jette ;D.

Voici par exemple ce que des petits malins ont générés à partir des dépôts git de php. On y voit les contributions et les évolutions au fur et à mesure, comme la naissance de php 4 puis 5.

Pour vous amuser à visualiser vos projets, voici donc la marche à suivre :

Etape 1 : Installer les dépendances et les librairies.

Ce logiciel fonctionne avec les librairies SDL compilées en C++ (j’ai d’ailleurs été bien surpris de voir à quel point ces librairies commençaient à devenir intéressantes, ne se contentant plus de faire du 2D SNES, je devrais plus me tenir au courant).

Pour ce faire donc, sur une machine debian (Ubuntu 11.10 dans mon cas) envoyer la commande suivante :

sudo apt-get install build-essential libsdl1.2-dev libsdl-image1.2-dev libftgl-dev libpcre3-dev libpng12-dev libjpeg62-dev

Etape 2 : Installer “Gource”.

Les versions de “gource” sont disponibles à la page suivante : http://code.google.com/p/gource/downloads/list

Etant codé en C++, ces derniers nous gratifient joyeusement d’une versions Win32 ce qui satisfera nos chers utilisateurs de Microsoft :).

Une fois les sources décompressées, il s’agis maintenant de les compiler afin d’obtenir un exécutable. Les commandes classiques suffisent :

cd /Repertoire_de_Gource
./configure
make
sudo make install

Si vous n’avez pas fait de connerie, normalement, si vous envoyez dans votre terminal :

gource -h

Vous devriez voir apparaître la liste d’aide (assez complète) pour gource et donc que votre installation sera un succès.

Etape 3 : Utiliser “Gource”.

Maintenant que gource est installé, il ne vous reste plus qu’a vous rendre dans votre dossier ou siège votre clone local de git (le dossier qui contient le .git in fact).

cd Dossier_du_Projet

Et à lancer la commande suivante, qui est la commande standard pour avoir un rendu vif et dynamique :

gource —seconds-per-day 80 —auto-skip-seconds 0.1 —file-idle-time 500 —max-files 500 —multi-sampling -1280x720 —stop-at-end —elasticity 0.1 -b 000000  —hide filenames,dirnames  —disable-progress —user-friction .2 —disable-bloom

Les arguments de commande sont suffisament clair pour faire ce que vous voulez. Par défaut la visualisation est en fenetré, mais vous pouvez le faire facilement passer en plein écran (et épater vos colègues) avec l’argument supplémentaire

“-f” ou “—fullscreen”.

Voila, grâce à Gource, vous allez pouvoir faire tomber les filles en soirée en montrant “Voila ce que c’est qu’être développeur!”.

C’est comme jouer de la guitare mais en mieux.

Etape bonus : compresser votre résultat en vidéo.

Si vous voulez faire baver le monde devant vos réalisations et pouvoir les héberger sur YoupornTube, il faut donc envoyer tout ça en enregistrement vidéo.

Pour ça je vous conseil de consulter la page ici présente : http://code.google.com/p/gource/wiki/Videos

Elle contient toutes les indications pour encoder proprement vos vidéos en mp4.

Je ne fais pas de tuto détaillé là dessus pour la simple et bonne raison que je me suis complètement vautré dans l’installation de codecs ffmpeg et qu j’ai flingué une partie des lectures vidéos sur mon linux, ce sont des choses qui arrivent u_u’…

Donc je vous souhaite bon courage et une bonne journée à tous!

Gros problèmes entre le BTRFS et le NFSv4

Bonjour à tous.

Petit article aujourd’hui pour parler d’un souci, j’espère que ça servira d’avertissement pour certains qui tomberaient dans le même piège que moi.

Le ton est volontairement humoristique, car quand on a ce genre de couille, il vaut mieux en rire, ou du moins, essayer.

C’est assez relié avec les tutos sur les partages nfs déjà disponibles sur ce blog, donc pour ceux qui dormiraient au fond de la classe, prenez note.

Alors, comme vous avez pu le lire, j’ai récemment mis en place un système de partage assez simple mais néanmoins complexe (WTF?) au niveau de mon serveur de fichier et de mes systèmes là ou je travail en tant qu’administrateur système.

Alors comme ce matin j’ai vécu un véritable apocalypse et empêché une équipe de travaillé pendant 30 minutes, je préfère avertir les têtes brûlées qui voudrait un jour tenter de faire les mêmes conneries que moi. 

Ne faites pas comme moi, gardez toujours à l’esprit que quelque chose en développement, même si il parait très cool tout ça, N’EST PAS STABLE!

Quand j’ai formaté mon serveur à l’installation de Debian, j’ai pris la décision d’utiliser le BTRFS comme système de fichier. Pour ceux qui dormais ces 5 dernières années, le BTRFS est annoncé comme le successeur des systèmes journalisés comme la série des ext. Il est en développement depuis 2007 et considéré comme stable depuis mars 2009.
Oui mais… 

On peut se demande, pourquoi ce système si miraculeux, n’équipe donc pas toutes nos distributions linux actuelles? Lui qui annonces vers performance de +500% en compressé comparé à son camarade ext4, reste irrémédiablement dans l’ombre.

Le fait est que malgré tout le travail et les avancées faites sur son sujet, il n’en reste pas moins un système de fichier en développement, non complet et inapplicable à certaine situation.

Mon exemple est le suivant. Voici mon ancienne infrastructure, que vous connaissez bien, vous les deux ou trois qui suivez mon blog :

Comme vous le voyez, j’ai fais le choix du BTRFS et j’exporte en NFSv4 au cotés de la partition du Système linux, transportant la racine du système, sur une partition en XFS.

La première fois que j’ai tenté ce montage, j’ai été confronté à un problème assez étrange. En effet, la partition du NAS, en BTRFS, une fois monté en en NFS, provoquait un très très très gros ralentissement.
En temps normal, un hdparm -t sur la partition NAS donnait une vitesse de lecture variant entre 1 et 5 Mo/s, contrairement aux 110 Mo/s dont j’ai habitude.
Suspectant un problème inhérent au fait de dédoubler un lien nfs partant d’une même source et allant vers une même destination, je me suis donc décidé à essayer de ne tourner qu’avec une seule exportation, limitant dans le même coup les erreurs de démontages sur les postes clients, et j’ai donc donné vie au tutoriel d’hier (ou d’avant hier, je sais plus).

Bref, donc cette configuration fut modifiée et j’ai pu aboutir au bout de quelques recherches à l’ensemble suivant :

Hier soir je clos définitivement l’affaire, prépare à distance mes systèmes, et, prévoyant, met mon réveil plus tôt pour être premier au boulot, on sait jamais.

Ce matin, les 4 premiers postes démarrent sans encombre et je vais me fumer une cigarette, certes matinale mais néanmoins méritée pour célébrer ma victoire sur cette hérésie qu’est l’infrastructure de développement local standard des sociétés de développement web d’aujourd’hui.

En revenant de cette délicieuse cigarette, le 5e poste est allumé et… 


 

D’un coup, tout les systèmes commencent à ralentir.

Suspectant un ralentissement du réseau, je cherche d’abord dans ce sens, avant de me rendre compte que mes hdparm ne passent plus. Chaque consoles ouvertes avec lesquelles je lance un hdparm me lâchent, et me guide désespérément vers la triste réalité que me réserve le /var/log/syslog.

Pour la faire courte, toute la couche BTRFS avait sauté d’un coup à la suite de l’appel nfsv4 du 5e poste. Je me retrouve avec une énorme erreur kernel, révélée en fait par le hdparm.

Je me retrouve donc à devoir repasser sur notre vieux serveur de fichier, celui qui crash dès qu’une porte claque trop fort.

Ouaip, donc un conseil :

LE BTRFS EN NFSv4 POUR LE PARTAGE MASSIF, ON ÉVITE!

Et moi je reformate ma partition de serveur en ext4. Ça m’apprendra a faire des expériences.