Markdown

#Markdown Késaco?

J’ai découvert [Markdown](http://daringfireball.net/projects/markdown/) l’an dernier, alors que je rédigeais un tutoriel traitant en partie de Google Maps. Alors Markdown, qu’est-ce que c’est? Markdown est un langage de mise en forme de texte. Ainsi, un fichier dont le texte aura été construit en utilisant les balises Markdown pourra être facilement formaté en un document html valide. Un petit coup de css et vous obtenez un document prêt pour le web.

###Pourquoi apprendre Markdown

Première raison qui me vient à l’esprit, la simplicité de la syntaxe et l’utilité de pouvoir facilement transformer son texte en html. Ensuite, parce que Markdown est disponible pour mettre en forme les commentaires sur Github. La plupart des pages Readme, Licence et History présente sur Github(voire toute), sont d’ailleurs écrite en utilisant Markdown.

On pourrait également imaginer une intégration de Markdown dans les forums, pour mettre en forme ses posts, en complément du traditionnel bbcode.

Au revoir Android. Bonjour Cyanogen!

Novembre 2012

En lisant la Newsletter de Novembre 2012 de la FSFE, je suis tombé sur un article qui clarifie les choses du côté de la garantie en cas de modification  du logiciel présent sur le téléphone. Celui-ci explique donc que si vous avez acheté votre appareil dans l’Union Européenne, vous conservez la garantie constructeur de 2 ans même si vous modifiez le côté logiciel. Une bonne nouvelle donc, qui me pousse à ne pas attendre la fin de ma garantie et à installer Cyanogen sur mon téléphone.

Après avoir assister à la conférence Libérez votre Android! de la FSFE lors des Journées du Logiciel Libre de Lyon, je me lance dans l’aventure le soir même. L’installation des logiciels nécessaires se passent plutôt bien, puis vient le premier problème: impossible de démarrer le téléphone en mode fastboot. En effet, l’opérateur a semble-t-il désactivé ce mode… Fin de l’histoire donc; pour l’instant, jusqu’à ce que je trouve une solution.

Juillet 2013

Après différentes recherches complémentaires et diverses lectures pendant ces quelques mois, j’ai fini par trouver une solution à mon problème. Seul petit bémol, celle-ci est payante mais a le mérite de fonctionner: WotanServer. Ce site propose différents services allant du désimlockage à la mise à jour du système. Dans mon cas, l’opération de désimlockage a également pour effet de débloquer le mode fastboot et donc de me permettre de commencer l’aventure Cyanogen.

Je commence donc par l’installation de l’environnement nécessaire sous Arch Linux grâce aux dépôts: yaourt -S fastboot  android-sdk-platform-tools android-udev  android-sdk-build-tools .

Je décide de choisir la version Nightly de Cyanogen pour être sûr de bénéficier de la correction de la faille Master Key touchant toutes les versions d’Android.

Pour la suite, il est donc nécessaire de passer en mode fastboot sur le téléphone, dans mon cas, pour un Xperia Mango SK17:

    • Éteindre le téléphone.
    • Maintenir le bouton volume haut.
    • Connecter le cable USB au téléphone après l’avoir connecter à l’ordinateur au préalable.

Le téléphone devrait avoir démarrer en mode fastboot et la led en haut à gauche s’allumer en bleue.

Enfin, il suffit de suivre le tuto d’installation sur le wiki. Celui-ci est bien détaillé et complet. Simplement, ne pas oublier d’utiliser sudo pour fastboot si besoin. La page Sony pour obtenir le code de déverrouillage du bootloader (Pas nécessaire avec la procédure WotanServer).

J’utilise donc Cyanogen depuis quelques jours maintenant, pas de difficulté particulière pour s’habituer au système. De nouvelles fonctionnalités intéressantes. Enfin, ajout du dépôt d’applications F-Droïd pour avoir accès à un choix d’applications libres.

Ghost: Un « nouvel » outil de publication

Je suis tombé par hasard il y a plusieurs semaines sur une campagne Kickstarter visant à financer le développement d’une nouvelle plateforme de blog nommée Ghost. Le design mit en avant est alléchant. Ghost prévoit en effet de présenter le contenu de manière simple et claire.

Côté fonctionnalités, la possibilité d’écrire ses articles en utilisant le langage de mise en forme Markdown a retenu mon attention. Langage déjà présent par exemple sur Github, pour la mise en forme des Pull Request notamment. Le dashboard semble également prometteur car il devrait permettre de visualiser, entre autre, des informations concernant le trafic du site. En effet, cette fonction de statistique me manque un peu sur WordPress (bien qu’il soit possible de l’ajouter par ailleurs, aucune des solutions que j’ai pu envisager ne m’a pour l’instant convaincu) et je me contente pour le moment des logs apache si besoin. Autre point intéressant, la compatibilité annoncée avec tous les types de supports: ordinateurs, smartphones et tablettes.

Côté techno, le tout repose sur NodeJs et Express, que j’affectionne tout particulièrement. Un package NPM est également prévu, annonçant un déploiement aisé. Enfin, Ghost sera publié sous licence MIT.

Ce projet a été financé à 785% au terme d’une campagne Kickstarter fin mai 2013. Le développement est maintenant en cours, avec une première publication des sources sur Github prévue pour la rentrée (Septembre 2013). Peu d’informations sur l’avancement des choses pour l’instant, mais gageons que nous aurons plus d’informations d’ici la fin du mois.

J’attends donc avec impatience de pouvoir tester la bête et pourquoi pas, contribuer lorsque le code sera rendu public. Les grandes inconnues restent pour moi la gestion des images et des galeries, ainsi que la possibilité d’avoir des pages statiques. Fonctionnalités que j’apprécie sur WordPress. Alors Ghost: évolution, révolution ou simple outil parmi d’autre? A suivre donc…

Map projection: Convert Lambert II into Longitude/Latitude

Last week, I faced an interesting problem. I was given a file containing the geographical position of various antennas around Disneyland Paris. The idea was to display them on a map: Open Street Map or Google Maps or whatever. Fine. In order to place the antenna on the map, I must use their coordinates in terms of latitude and longitude. But all coordinates are expressed in Lambert II. So I had to convert Lambert II into Longitude/Latitude.

I searched for formula, read articles and finally found the library Proj4Js which aim is to transform point coordinates from one coordinate system to another. I searched a little more and found node-proj4js a NodeJs port of Proj4Js. What’s next?

I found out that Lambert II conversion is not available by default. You had to add its specification in the Proj4Js format, which is pretty easy when you discover how to do it. First, you need to know the EPSG reference number of the coordinate system. Lambert II EPSG number is 27572. With this number, go to the website http://spatialreference.org/ref/ and search for your coordinate system using its reference number or its name. For example, the link for Lambert II is http://spatialreference.org/ref/epsg/27572/.

Once you find it, there is a link for the specification in the Proj4Js format: http://spatialreference.org/ref/epsg/27572/proj4js/. Now, just copy and paste the code in proj4js/lib/defs under the name EPSG27572 for Lambert II. I’m now able to convert Lambert II to Longitude/Latitude system. Let’s see how to do it!

I’m adding Proj4Js and initializing source and destination coordinate system:

var Proj4js = require("proj4js");
var source = new Proj4js.Proj('EPSG:27572'); //Lambert II
var destination = new Proj4js.Proj('EPSG:4326'); //Longitude/Latitude

Next, we need to create the source point to be used by Proj4Js:

var xLambertII = 589987;
var yLambertII = 2424591;
var point = new Proj4js.Point([xLambertII, yLambertII]);

Finally, convert from Lambert II to Longitude/Latitude et print new coordinates:

var latLon = Proj4js.transform(source, destination, point);
console.log('X: ' + latLon.x + ' Y: ' + latLon.y);

Let’s finish this article with a picture about map projections from the well-known xkcd website.

Multiplicité des préférences

S’il y a bien une chose commune aux différents systèmes d’exploitation que j’utilise, c’est entre autres mon navigateur: Firefox. Lorsque l’on passe d’un OS à un autre, d’un PC à autre, les marques pages, eux par contre changent. Pas énormément, chacune de mes instances de navigateur possèdant les sites incontournables que je consulte régulièrement. Seulement plus le temps passe, plus les différences apparaissent… Le site consulté la veille en plein déplacement, n’est pas présent dans les marque-pages du PC de bureau qui vous attends chez vous.

Il arrive donc un moment où le besoin de synchronisation se fait sentir. Firefox possède en outre un système pour retrouver ses marque-pages depuis n’importe quel navigateur Firefox, mais cela implique de stocker ses données dans le cloud, les nuages. Je fais évidemment davantage confiance à Mozilla qu’aux autres pour la gestion des données personnelles, mais tout de même… Une partie de moi reste réticente à cette idée. Dans ce cas, pourquoi ne pas gérer le système de synchronisation soi-même?

La solution est relativement simple, installer son propre serveur de synchronisation de marque-pages. Par chance, Mozilla met à disposition les sources de son serveur de synchronisation ainsi qu’une documentation relativement complète. Les prérequis sont clairement identifiés et l’installation s’effectue aisément. Reste ensuite à effectuer la configuration minimale nécessaire au bon fonctionnement du service.

Le point qui m’a posé le plus de problème fut le paramètre:

[nodes]
fallback_node = http://localhost:5000/

La mauvaise configuration de celui-ci empêchait le service de fonctionner correctement. Après quelques recherches et plusieurs semaines à m’occuper d’autres choses, j’ai fini par trouver le paramètre correct dans ma situation. Ainsi, pour fonctionner normalement, ce paramètre doit absolument correspondre à l’adresse publique de votre service. Adresse que vous allez utiliser dans la configuration du service au niveau de Firefox. Une valeur correcte peut donc être http://www.nomdedomaine.fr:5000 par exemple, ou dans notre cas: http://www.unicoda.com:5000. Ajouter à cela un petit script pour démarrer automatiquement le serveur Sync au démarrage et le tour est joué.

 

Voir aussi:

http://www.docgreen.fr/2011/12/06/installer-son-propre-serveur-mozilla-sync-pour-firefox-saison-03-episode-final/