PROJET AUTOBLOG


Tcit

Archivé

source: Tcit

⇐ retour index

Tous ceux qui veulent changer le monde…

dimanche 13 avril 2014 à 11:45

Aucun politicien ne veut cela. Peut-être certains hommes politiques. Mais parmi ceux qui sont au pouvoir ou ont été un jour au pouvoir, ils ont peur de changer ce monde. Ils ont peur que vous le changiez et qu’ils ne puissent plus en faire ce qu’ils en veulent comme ils font actuellement.

Et ils n’hésiteront pas à aller loin pour vous empêcher de le faire. En Grande-Bretagne, le UK Terrorism Act est plutôt clair sur le sujet. Cette loi définit le terrorisme comme « tout acte ou menace d’action ayant pour but d’influencer le gouvernement ou une organisation gouvernementale internationale » ou « conçue dans le but de faire prospérer une cause politique, religieuse, raciale ou idéologique » ou « conçue pour interférer ou perturber un système électronique ». Par ailleurs, la loi indique que « gouvernement » signifie le gouvernement de n’importe quel pays­ – y compris les États-Unis.

En gros, si vous vous opposez au gouvernement – pardon, à n’importe quel gouvernement dans le monde – vous êtes un terroriste, car vous perturbez l’ordre établi. Ils sont donc en passe de justifier la surveillance de la totalité de la population, puisque tout le monde (oui, tout le monde, puisque si vous êtes du côté du gouvernement vous n’avez rien a cacher, n’est-ce pas ?) est surveillé.

Les politiciens ne nous laissent donc plus la possibilité de changer ce monde.

J’ai peur. J’ai sincèrement peur qu’un jour la voie de la non-violence ne suffise plus, que l’on assistera à un soulèvement populaire, que le peuple, démuni, attaquera ses politiciens. Car les politiciens ne font plus partie du peuple, ils sont contre lui. Ils en ont profité.

Et c’est bien triste d’avoir un discours de prolétaire révolutionnaire tel que le mien, car les hommes valent mieux que cela.

 

Ah oui, dernière chose. Populaire, ça vient de peuple. Et puis je suppose que vous avez appris 3 mots de grec à l’ENA, alors cherchez dēmokratía.

flattr this!

Mon passage de Windows Phone 7 à Android

samedi 5 avril 2014 à 00:46

J’ai enfin fini par me débarrasser du handicap que je trainais derrière moi avec mon ancien smartphone, uniquement âgé de 4 ans pourtant, mais tournant sous le système Windows Phone 7. En effet, lorsqu’elles existaient, les applications WP qui m’intéressaient étaient compatibles uniquement Windows Phone 8, donc j’enrageais un peu à chaque fois.

J’ai fini par trouver d’occasion sur le célèbre site qui organise des enchères, pour moins de 150€, un Samsung Galaxy Nexus en bon état me convenant. Pour rappel, mon précédent smartphone était un Samsung Omnia 7, se positionnant entre milieu et haut de gamme, en tout cas en 2010. Je reste toujours chez Samsung, même si ça ne m’enchante pas vraiment.

 

Ceci est donc un article expliquant et comparant chacun des points observés lors de mon passage de Windows Phone 7.8 à Android 4.4 (techniquement, Cyanogenmod 11).

Interface

Écran d’accueil

Deux philosophies s’affrontent ici :

Bilan : Évidemment, c’est une question de goût. Personnellement, je n’utilise pas tant que cela de widgets d’Android (sur ma page centrale, on trouve juste Horloge + Météo + Musique), donc je pense que le système de tuiles utilisant toute la place disponible était tout aussi agréable. En revanche, l’accès à la liste générale des applications est plus agréable sous Android.

Note : Après deux semaines d’utilisation, je remarque que j’utilise deux nouveaux widgets, un pour suivre mes séries TV et un autre pour voir les horaires des bus en bas de chez moi. L’intérêt est déjà plus grand.

Écran de verrouillage

Sous Windows Phone 7, c’était vraiment rudimentaire (rappelons tout de même que l’OS a été sorti en 2010). On trouve donc les informations suivantes :

Le déverrouillage se fait uniquement par glissement vers le haut. Éventuellement, blocage par mot de passe numérique.

Sous Android, en gros, on fait ce que l’on veut. On a accès a beaucoup de widgets qu’on peut ici également placer sur plusieurs pages accessibles à droite ou à gauche. Un regret que j’ai est qu’il n’y ait pas de widget unifiant les sources musicales, pour contrôler n’importe quelle source de musique facilement.

Le déverrouillage peut s’effectuer de plusieurs manières différentes :

  1. Mot de passe/code PIN
  2. Glissement dans une direction
  3. Reconnaissance visuelle (je recommande à personne d’utiliser ça, quand même)
  4. Mon préféré, le schéma de connexion (joindre des points). Et quand je dis mon préféré, c’est vraiment que j’adore.

Bilan : Avantage certain à Android.

Notifications

Samsung Galaxy Nexus

Windows Phone 7 a une barre en haut de l’écran montrant des informations basiques comme la batterie, l’état de la sonnerie (vibreur/son…), si le wifi est activé, si la connexion de données est activé,  l’état du réseau GSM, etc.

Les notifications se font par le moyen de « notifications push », des barres d’information qui viennent s’afficher pendant un court instant. L’utilisateur peut appuyer dessus pour se rendre à l’application concernée, ou bien l’ignorer. Dans ce cas, la notification sera inaccessible à tout jamais. Oui. Vous avez bien lu. C’est tellement stupide que les cerveaux qui perdent de l’énergie en entassant les dollars de Redmond ont remis cette fonctionnalité telle quelle dans Windows Phone 8, et c’est uniquement avec la mise à jour Windows Phone 8.1, si elle arrive un jour, que viendra le centre de notifications.

Pour Android, c’est depuis longtemps mais particulièrement avec la version au nom d’une célèbre marque de biscuits enrobés de chocolat, que l’on a une zone d’information en haut de l’écran très riche.

A gauche, les notifications, qui peuvent être effectuée par n’importe quelle application. On voit dans la zone les icônes des applications concernées, et on accède au détail en déroulant la zone. A droite, on a les informations de base (réseaux, batteries, etc) et en déroulant, on a directement accès à des options permettant d’activer/désactiver la connexion de données, le wifi, le vibreur, etc. Parfait.

Bilan : Bref.

 Applications

Je vais surement vous surprendre en disant cela, mais il y a bien énormément plus d’applications dans le Play Store de Google que dans le Windows Store de Microsoft.

A part énoncer des banalités sur le sujet, j’aimerais toutefois vous faire savoir que l’on trouve un taux beaucoup plus faible d’applications de qualité exécrable ou bien de clones d’autres applications ou de jeux sur le Windows Store. La faute sans doute à un marché de l’adware qui n’est pas encore lancé sur cet OS. Et puis quoi qu’on en pense, le fait est qu’il est plus rare que des failles de sécurité soient découvertes sur Windows Phone, cela venant bien évidemment du fait que l’OS est plus fermé qu’une huitre aux premières neiges. On peut également penser aux coûts d’inscription auparavant très élevés (~100$, réduits au même niveau que pour aller publier chez Google aujourd’hui : ~15€).

Un mot toutefois sur les performances des applications. Malgré le fait que la quantité de RAM ait été multipliée par 2 et le processeur ait pris un deuxième cœur, je ne constate pas vraiment d’améliorations en termes de performances. Au contraire, je dirais même que si on ferme complètement les applications sur Android, elles mettent (bien) plus de temps à se lancer. Évidemment, je pourrais blâmer Java, mais je ne peux pas non plus exclure que le fait que je tourne avec un kernel modifié, une version « snapshot » de Cyanogenmod elle-même basée sur une version d’Android n’étant pas faite pour tourner sur mon appareil hashtag #triste.

Bilan : Le tribunal n’est clairement pas compétent pour juger si Bluetouff est coupable d’une recherche Gogoole si les applications de l’un ou de l’autre système sont meilleures.

Personnalisations – Hack

Bon alors là c’est le grand jeu sur Android. Vu que c’est basé sous Linux, on peut :

  1. Installer toutes sortes d’applications en dehors du Play Store avec des fichiers APK.
  2. Débloquer le chargeur de démarrage (Unlocker le bootloader si on parle la langue)
  3. Avoir un accès de super-utilisateur (Rooter le téléphone)
  4. Flasher la partition de récupération système (Recovery Flash) pour avoir accès aux possibilités suivantes
  5. Installer un noyau différent (Kernel)
  6. Installer une version d’Android différente (Fork, ROM, etc) qui changent complètement votre expérience utilisateur d’Android.
  7. Bref, tout ce que l’on veut.

Vous vous doutez bien qu’on a moins de marge de manœuvre avec Windows Phone. Cependant, même avec un truc aussi fermé, des gentils hackers ont réussi a faire joujou. On pouvait donc :

  1. Installer un chargeur de démarrage (bootloader) personnalisé pour nous permettre d’installer nos ROM.
  2. Installer des ROM alternatives, donnant surtout une sorte d’accès de super-utilisateur, pour permettre à certaines apps d’aller fouiller un peu partout, mais surtout d’avoir accès à une foule de paramètres.
  3. Installer des applications en dehors du Windows Store (Opera Mobile était l’application que j’adorais pour cela)

Et étrangement, c’était presque plus simple sous Windows Phone, même si ce n’est pas du tout la même chose. Vous aurez noté que j’ai utilisé le passé pour parler de Windows Phone. Car cela était possible uniquement sous WP7. Comme tout le monde se fout de cet OS le noyau de WP8 est davantage protégé, accéder au chargeur de démarrage n’est pas possible et donc au trou.

Bilan : Basé sur un pingouin, Android ne pouvait que gagner.

 Matériel

(en gros, rien à voir avec le logiciel ici)

Bon, en presque deux ans, y a eu du progrès. Donc au niveau de l’écran, couleurs plus belles, luminosité impressionnante. Le système de boutons d’action virtuels (et non physiques) est très sympa à utiliser. Concernant les autres boutons, rien a redire. Je m’étais habitué à la présence d’un bouton pour avoir accès à l’appareil photo directement, mais vu qu’il est accessible depuis l’écran de déverrouillage, cela ne me pose pas plus de problèmes que cela.

En revanche, ce qui m’a clairement perturbé au début, c’est que les ports micro-usb sont situés en bas du téléphone, et non en haut comme dans la majorité des cas. C’est peu pratique pour moi qui suis un utilisateur très fréquent de mon téléphone comme un baladeur audio, car il a la tête en bas dans ma poche et je dois donc le retourner une fois sorti. Vous avez bien entendu le droit de m’insulter pour cette fainéantise.

Allez sinon, réception wifi peut-être sensiblement meilleure, vitesse des données supérieure car accès au mode HSPA+, et puis la fonctionnalité totalement inutile, le NFC. Bon, soyons honnêtes, si j’étais aux USA, j’utiliserais peut-être la fonctionnalité Google Wallet avec le paiement sans fil, mais cela uniquement dans l’hypothèse où Google c’est des gentils, et qu’ils veulent que le bien et la paix sur Terre. Donc voilà.

Passons au sujet le plus important : la batterie. Je dois dire que je suis très agréablement surpris, car malgré que ce soit de l’occasion, les performances restent admirables. En veille, ça tient deux semaines. En utilisation intensive (donc normale pour moi :p ), deux jours. Alors que mon ancien tenait 4/5 jours en veille et tout juste une journée entière en pleine utilisation.

Enfin, un truc cool et très pratique est la LED en bas du téléphone qui se programme en plusieurs signaux pour des notifications ou bien une indication pendant la charge électrique.

Quelques autres trucs que je n’ai pas réussi à dire avant…

(je mettrai également des trucs ici si j’en trouve après, ou si vous m’en soufflez à l’oreille)

(En fait, je sais qu’il y en a que j’ai oublié, mais je ne m’en souviens plus à l’heure actuelle, donc…)

Java. Ah, si j’ai du le mentionner. Mais faudra bien que je m’y mette un jour.

flattr this!

Partager ses liens de Shaarli sur Twitter

mercredi 26 mars 2014 à 22:27

J’en avais marre (ok, MrKooky en avait marre) de poster mon flux RSS de tweets par le service dlvr.it. Même avec pubsubhubbub, ce n’est pas instantané et en plus, la redirection ne se fait pas directement. Ces deux problèmes sont désormais réglés.

Je vous explique donc ce que j’ai fait pour exporter mes liens partagés sur Shaarli vers Twitter. J’utilise YOURLS pour réduire la taille des URLs des liens pour Twitter. Donc l’URL est passée à la moulinette de l’API de mon instance YOURLS, puis envoyée à l’API twitter pour être postée.

On a un shaarli dans liens/, des scripts dans twitter/ et un YOURLS dans to/.

La librairie que nous utiliserons est twitteroauth. Il vous suffit de télécharger les fichiers du dossier twitteroauth, c’est-à-dire uniquement OAuth.php et twitteroauth.php et de les mettre dans notre dossier twitter/

Dans index.php du shaarli :

Dans le bloc :

if (isset($_POST['save_edit']))

On doit ajouter à la fin de ce bloc :

if (isset($_POST['lf_yourls']))
 {
 // create a new cURL resource
 $ch = curl_init();
 // set URL and other appropriate options
 $titleyourls = str_replace(' ', '%20',$link['title']);
 $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}(\/\S*)?/";
 if (preg_match($reg_exUrl, $link['url'], $url)){
   $linkyourls=$url[0];
   $original = "&shaarlink=VOTREURL/liens/?".smallHash($link['linkdate']);
 }
 else{
   $linkyourls = "VOTREURL/liens/".$link['url'];
   $original = "";
   }
 curl_setopt($ch, CURLOPT_URL, "VOTREURL/twitter/tweet.php?url=".$linkyourls."&title=".$titleyourls.$original);
 curl_setopt($ch, CURLOPT_HEADER, 0);
 // grab URL and pass it to the browser
 curl_exec($ch);
 // close cURL resource, and free up system resources
 curl_close($ch);

Maintenant, on ajoute l’option pour partager dans shaarli : éditons le fichier liens/tpl/editlink.html de cette manière :

<!DOCTYPE html>
<html>
<head>{include="includes"}</head>
<body
{if condition="$link.title==''"}onload="document.linkform.lf_title.focus();"
{elseif condition="$link.description==''"}onload="document.linkform.lf_description.focus();"
{else}onload="document.linkform.lf_tags.focus();"{/if} >
<div id="pageheader">
        {include="page.header"}
        <div id="editlinkform">
            <form method="post" name="linkform">
                <input type="hidden" name="lf_linkdate" value="{$link.linkdate}">
                <i>URL</i><br><input type="text" name="lf_url" value="{$link.url|htmlspecialchars}" style="width:100%"><br>
                <i>Title</i><br><input type="text" name="lf_title" value="{$link.title|htmlspecialchars}" style="width:100%"><br>
                <i>Description</i><br><textarea name="lf_description" rows="4" cols="25" style="width:100%">{$link.description|htmlspecialchars}</textarea>
                <i>Tags</i><br><input type="text" id="lf_tags" name="lf_tags" value="{$link.tags|htmlspecialchars}" style="width:100%"><br>
                {if condition="($link_is_new && $GLOBALS['privateLinkByDefault']==true) || $link.private == true"}
            <input type="checkbox" checked="checked" name="lf_private" id="lf_private">
            &nbsp;<label for="lf_private"><i>Private</i></label><br>
            {else}
            <input type="checkbox"  name="lf_private" id="lf_private">
            &nbsp;<label for="lf_private"><i>Private</i></label><br>
            {/if}
                <input type="checkbox" checked name="lf_yourls" id="lf_yourls">
                &nbsp;<label for="lf_yourls"><i>Share with Yourls</i></label><br>
                <input type="submit" value="Save" name="save_edit" class="bigbutton" style="margin-left:40px;">
                <input type="submit" value="Cancel" name="cancel_edit" class="ass="bigbutton" style="margin-left:40px;">
                {if condition="!$link_is_new"}<input type="submit" value="Delete" name="delete_link" class="bigbutton" style="margin-left:180px;" onClick="return confirmDeleteLink();">{/if}
                <input type="hidden" name="token" value="{$token}">
                {if condition="$http_referer"}<input type="hidden" name="returnurl" value="{$http_referer|htmlspecialchars}">{/if}
              </form>
        </div>
</div>
{include="page.footer"}
</body>
</html>

Notez que j’ai choisi de cocher la case « Share with YOURLS » par défaut (attribut checked).

A présent créons le fichier tweet.php dans twitter/ :

<?php

//Insérez ici une licence GNU avec copyright au nom de Doug Vanderweide

//YOURLS API signature
define('YOURLS_API_SIGNATURE', '');

//twitter API keys
define('TWITTER_API_CONSUMER_KEY', '');
define('TWITTER_API_CONSUMER_SECRET', '');
define('TWITTER_API_ACCESS_TOKEN', '');
define('TWITTER_API_ACCESS_TOKEN_SECRET', '');

require_once('twitteroauth.php');

//sanitize inputs
if(!isset($_GET['url'])) {
     echo('Could not find URL of item');
}
elseif(trim($_GET['url']) == '') {
     echo('URL is empty string');
}
elseif(!isset($_GET['title'])) {
     echo('Could not find title of item');
}
elseif(trim($_GET['title']) == '') {
     echo('Title is empty string');
}
else {
     //build GET link to YOURLS API
     $link = 'VOTREURL/to/yourls-api.php?signature=' . YOURLS_API_SIGNAT$

     //use curl to send API request
     //reads XML response into string
     $ch = curl_init($link);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     //if curl fails, report that fact
     if(!$reply = curl_exec($ch)) {
          echo('Curl request to URL shortening service failed.');
     }
     curl_close($ch);

     //create DOMDocument to parse response string
     $xml = new DOMDocument();
     $xml->loadXML($reply);

     //get short URL
     $node = $xml->getElementsByTagName('shorturl')->item(0);
     $shorturl = $node->textContent;

     //get status message
     $node = $xml->getElementsByTagName('statusCode')->item(0);
     $status = $node->textContent;

     //get verbose API response
     $node = $xml->getElementsByTagName('message')->item(0);
     $message = $node->textContent;

     //if the short URL is an empty string, or the status code isn't 200,
     //kill the script and report error
     if(trim($shorturl) == '' || $status != '200') {
     echo("Shortening of url failed. Error code: $status Error message: $message");
     }

     //set twitter status
     $shaarlipart = "";
     if (isset($_GET['shaarlink'])){
     $shaarlipart = " Shaarli : " . $_GET['shaarlink'];
     }

     $status = strip_tags($_GET['title'] . " " . $shorturl . $shaarlipart);

     //create TwitterOAuth object
     $to = new TwitterOAuth(TWITTER_API_CONSUMER_KEY, TWITTER_API_CONSUMER_SECRET, TWITTER_API_ACCESS_TOKEN, TWITTER_API_ACCESS_TOKEN_SECRET);
     //send status update request
     //if curl fails, report that
     if(!$content = $to->post('https://api.twitter.com/1.1/statuses/update.json', array('status' => $status))) {
          $content = 'Failure posting status to Twitter. This is probably due to a network error, downtime in the Twitter API, etc.';
          echo($content);
 }
     //if the Twitter API has a fit, report that
     elseif($to->lastStatusCode() != '200') {
          $content = 'Error returned by Twitter API. Code: ' . $to->lastStatusCode() . ' // XML response: // ' . print_r($content, true);
          echo($content);
     }
     //redirect to Twitter on success (not relevant here)
     header('Location: http://www.twitter.com/home');
}
?>

On aura pris le soin d’aller sur son instance YOURLS, de récupérer le token et le mettre au bon endroit. Pareil, rendez-vous sur https://apps.twitter.com, créez une nouvelle application, et récupérez l’API key, l’API secret d’une part et générez un token, puis récupérez l’Access token et l’Access token secret. Mettez tout cela au bon endroit dans le fichier (indice, c’est au début).

N’oubliez pas de changer VOTREURL par… OK, je vous laisse deviner. Et faut que vous ayez php-curl, aussi, oubliez pas. Je suis certain qu’il y a plus léger que curl, c’est juste que c’est rapide.

Bon, j’attends des retours, vu qu’il y a peu de chances que ça soit correct (ça marche chez moi en tout cas) mais ceci était une version de travail, j’ai juste trop la flemme de vérifier si c’est bien ça qui est en ligne.

Et sinon, y a plus qu’à espérer que l’API de Twitter ne change pas dans 2 mois. Mais sinon, vu que ça se base sur OAuth, ça devrait tenir.

Source : Avant tout ce billet même s’il est loin d’être à jour et valable dans notre cas. https://www.dougv.com/2011/01/03/update-to-the-yourls-twitter-google-reader-script/

flattr this!

Très chers fournisseurs d’accès à Internet…

samedi 15 mars 2014 à 23:09

Très chers soi-disant fournisseurs d’accès à Internet, divers Orange, Bouygues, SFR, Numéricable, etc.

Je ne veux pas de vos « Box » que vous m’imposez. Pour me connecter à internet, j’ai besoin d’un modem, rien de plus. Laissez-moi le choix de me charger de cela.

Je ne veux pas de vos « décodeurs TV » que vous fournissez pour votre option TV.  Laissez-moi choisir mon matériel de lecture multimédia. Fournissez-moi seulement un flux vidéo regardable, je me charge du reste, croyez-moi.

Je ne veux pas de vos soi-disant services comme vos « pack sécurité » horriblement chers comprenant des anti-virus, anti-pourriels de mauvaise qualité, de vos contrôles parentaux, de vos services de sauvegarde en ligne ou de ce que vous appelez un nuage sans savoir pourquoi, des 50 adresses courriel que je peux obtenir, de vos abonnements à un service de musique en ligne, vos réductions sur des places de cinéma ou sur des consoles, ou même de vos solutions de contrôle domotique de mon domicile (sic).

Je ne veux pas de vos appels illimités. Je me fiche totalement de pouvoir appeler le Venezuela ou tout autre pays du monde en illimité à n’importe quelle heure.

 

En résumé, ce je veux que vous soyez ce que vous annonciez à un moment : des fournisseurs d’accès à Internet. Je veux que vous transportiez des putains de zéros et de un jusqu’à chez moi. JE ME CHARGE DU RESTE.

Ah, et puis ces zéros et ces uns, vous avez intérêt à les faire parvenir jusqu’à mon matériel à la même vitesse quelque soit la provenance, hein. Et puis sans regarder d’où ça vient et où ça va.

 

Note : Pour info, je ne suis pas éligible FDN.

 

Image : Keep it simple, stupid (and short)Jegi - Image sous licence CC-BY 2.0

flattr this!

Rainmeter, le conky du Windowsien (bouh)

mercredi 5 février 2014 à 16:58

Si comme moi il y a des moments où vous êtes forcés de retourner sous ce bon vieux Windows, vous êtes probablement souvent effarés de tout ce qui existe dans l’univers GNU/Linux et en comparaison ce qui manque dans l’OS de Microsoft.
En vrac, on peut citer les bureaux virtuels, un langage de shell puissant, ou encore un démarrage rapide lorsqu’on ne possède pas de SSD.

Mais le gouffre entre Linux et Windows se trouve surtout dans tout ce qui est personnalisation. En effet, même si la configuration est plus effrayante pour un débutant, la puissance de la personnalisation sous les différents gestionnaires graphiques de Linux est largement supérieure à ce que l’on peut trouver nativement ou non sous Windows.

En parlant de personnalisation, il y a une fonctionnalité que j’aime beaucoup sous Linux, le conky. Il s’agit d’un programme qui permet d’afficher presque tout ce que vous pouvez imaginer comme informations sur votre bureau. Alors cela va des plus efficaces aux plus jolis, comme vous pouvez le voir :

Conky neutreConky JoliImages de jasonwryan et Bugich respectivement sous licences CC BY 2.0 et CC BY-SA 3.0

Bon, vous n’êtes pas parti installer une distribution Linux ? Dommage.

Bon allez, et si je vous avouais qu’il y a moyen d’avoir un semblant de conky sous Windows, vous êtes intéressés, non ?

Non, pas le truc qui me fait rire à chaque fois que je le vois activé par défaut, les widgets qui montrent la météo et la bourse. Beaucoup mieux. Un programme du nom de Rainmeter :

rainmeter

Alors, c’est plutôt pas mal, non ?

Ici, j’ai un thème très complet (Enigma), mais il y en a beaucoup, beaucoup d’autres disponibles.

Décrivons un peu toutes les informations auxquelles j’ai accès. Je pars d’en haut à gauche et je vais dans le sens des aiguilles d’une montre.

J’ai presque toutes les fonctionnalités actuelles activées (il manque notamment flux RSS et gmail), mais comme je l’ai dit, beaucoup d’autres aspects peuvent exister, donc d’autres manières de présenter les informations. Par exemple, vous pouvez vous prendre pour un pilote de vaisseau spatial.

Voilà, donc si comme moi vous êtes bloqués sous Windows à cause de vos applications qui ne sont pas encore disponibles sous Linux, vous savez quoi faire pour atténuer ce dégoût. ;)

flattr this!