FeedBurner avec votre nom de domaine !

Peut-être utilisez vous FeedBurner pour gérer les flux RSS de votre blog. Savez-vous qu’il est possible d’utiliser votre propre nom de domaine avec les fils générés par ce service ?

Logo de FeedBurner

L’objectif est de faire s’abonner vos lecteurs à vos flux RSS via une adresse du type http://rss.monsite.com plutôt que http://feeds.feedburner.com/.

Pourquoi ça ?

  • Pour conserver l’identité de votre blog : ce que l’on regarde en premier pour déterminer l’origine d’un article c’est le nom de domaine qui lui est associé
  • Pour ne pas être dépendant d’un service externe et pouvoir arrêter de l’utiliser sans perdre d’audience
  • De faire bénéficier du Page Rank assigné aux contenu de vos flux à votre domaine plutôt qu’à feedburner.com

Comment faire ?

Dans l’interface de gestion de votre nom de domaine ou sur votre serveur DNS créez un alias (type CNAME) nommé “rss.monsite.com” qui pointe vers “feeds.feedburner.com.“. Si vous éditez manuellement la configuration de votre serveur DNS, l’entrée doit ressembler à :

rss IN CNAME feeds.feedburner.com.

N’oubliez pas le point final qui indique que l’on fait référence à un chemin absolu. Après avoir attendu que les caches DNS se vident, tentez de vous connecter à votre flux en remplaçant feeds.feedburner.com par rss.monsite.com. Pour mon blog ça donne http://rss.dunglas.fr/. Si ça fonctionne, la partie DNS est opérationnel.

Il faut maintenant activer le service dans FeedBurner. Connectez-vous sur feedburner.com et rendez-vous dans My Account puis dans MyBrand, entrez le nom de domaine que vous avez choisi pour vos flux et validez. Voilà, c’est terminé !

Si vous utilisez WordPress et son plugin FeedBurner de Steve Smith, rendez-vous simplement dans Options -> FeedBurner et remplacez les adresses en feeds.feedburner.com par celle que l’on vient de créer !

Happy Burning !

Que devient Easy Ubuntu ?

Vous vous en souvenez certainement, il y a quelques années maintenant j’avais publié un petit logiciel qui eu un grand succès : Easy Ubuntu.

Easy Ubuntu servait à configurer automatiquement Ubuntu et à y installer les logiciels nécessaires à son utilisation courante (Flash, Java, codecs audio et vidéo, …). Il a participé à la démocratisation de cette distribution et a permis à un grand nombre de personnes de franchir le pas vers GNU/Linux.

Aujourd’hui, Ubuntu a évolué et Easy Ubuntu n’a plus aucune raison d’être. La distribution inclus désormais des utilitaires très “user friendly” qui permettent de récupérer et d’installer les modules propriétaires mais utiles par elle même.

Pourtant, de nombreuses requêtes arrivent toujours sur ce blog en provenances de recherches telles que “télécharger Easy Ubuntu”.

La première version, écrite en Bash et utilisant Zenity pour l’interface est toujours disponible dans les archives de mon ancien blog. (On y trouve aussi des scripts PHP et quelques mods pour PunBB et XOOPS sur lesquels je reviendrais peut-être ultérieurement.) Elle ne fonctionne que sur les veilles version d’Ubuntu (Warty, Breezy).

Capture d'écran d'Easy Ubuntu

J’avais ensuite ré-écrit entièrement le logiciel en Python / Glade pour qu’il soit plus stable et performant puis m’étais retiré du projet par manque de temps. Il avait été repris par une équipe de passionnés. À l’époque, nous avions créé un site internet pour Easy Ubuntu. Les archives de la version Python sont toujours disponible sur celui-ci.

Ce fût la fin de mon aventure avec Easy Ubuntu, mais pas celle avec Ubuntu. J’ai ensuite conçu Conceal, un gestionnaire de dossiers chiffrés pour GNU/Linux en général et Ubuntu en particulier, lors du Summer of Code 2007. J’ai du le mettre en demeure au cours de cette année suite à un emploi du temps chargé mais je reprend son développement. Une nouvelle version sortira très prochainement !

Un lecteur de flux RSS pour Android : la base de données intégrée

Après avoir réalisé notre tout premier programme avec Google Android, nous allons nous lancer dans la réalisation d’un projet un peu plus complexe : un lecteur de flux RSS.

Capture d’écran du lecteur de flux RSS

Ce sommaire lecteur de flux permettra juste de s’abonner, se désabonner et d’afficher des flux RSS. Vous pouvez récupérer l’archive incluant sources et binaires si vous souhaitez tester tout de suite le programme.

Présentation de SQLite

La plate-forme Android intègre le système de base de données relationnelle embarquée SQLite. SQLite est un mini SGBD ne nécessitant que peu de ressources, qui offre la possiblité de gérer facilement des bases de données de taille restreinte.

Comme son nom l’indique, SQLite s’utilise par le biais de requêtes SQL. Il est très bien intégré à Android, ce dernier propose un grand nombre de routines qui nous permettront d’interagir très simplement avec les données (par exemple, pour les afficher à l’écran). Nous l’utiliserons dans notre programme pour gérer la liste des flux RSS auxquels l’on est abonné.

Shéma de la base de donnée

Nous utiliserons un shéma assez simple pour notre base de donnée. Elle ne se constituera que deux trois colonnes :

_id url visit

Le champ _id est un nombre entier qui représente l’identifiant de chaque lien, il sera la clef primaire de notre table. Attention son nom est une convention Android / SQLite, veillez toujours à avoir une clef primaire nommée ainsi dans vos tables. Dans le cas contraire vous ne pourrez pas utiliser simplement les curseurs plus tard ! Ce champ est complètement géré par SQLite. Il s’occupera de l’incrémenter automatiquement et de veiller à sa cohérence.

Le champ url de type text contiendra l’adresse du flux RSS.

Le champ visit, qui n’a aucune utilisé dans l’état actuel du programme, pourrait servir à compter le nombre de chargement des flux RSS afin de les classer par ordre d’assiduité par la suite.

La classe Database

Nous allons placer tout ce qui a trait à la base de données dans une classe nommée Database. Après avoir créer un nouveau projet dans Eclipse, créez donc cette classe. Nous utiliserons deux variables qui portent sur tout la classe :

db permet d’agir sur la base de donnée tandis que rss représente le contexte, notre classe principale (nommée RSSreader). La variable rss nous permet d’utiliser les fonctions openDatabase et createDatabase fournies par la plate-forme.

Le constructeur ce contente d’instancier la variable rss et de lancer la procédure d’ouverture de la base de données.

Cette procédure appelle la méthode fournie par Android openDatabase qui nous permettra d’interagir avec la base de donnée depuis la variable db. Si la base de données n’existe pas, on appelle la procédure qui la créera.

La procédure de création de la base de donnée :

La base de donnée est ici privée (MODE_PRIVATE), c’est à dire que seul notre programme pourra y accèder. La création en elle-même revient à envoyer une requête SQL classique de création de table. Nous créons donc notre base de donnée nommée rssreader puis nous insérons un flux d’exemple (celui de ce blog) en appelant la procédure add.

La base de donnée correspond en fait à un fichier texte rangé dans le répertoire /data/data/votre.package/databases/. Pour vous y connecter lancez la commande adb shell dans un terminal. Vous voici avec un shell au sein du système Android (celui de l’émulateur dans notre cas). Il s’agit en fait de BusyBox tournant au-dessus d’un noyau Linux. Pour utilisez la base de donnée en mode shell lancez sqlite3 /data/data/net.lapinblanc.android.rssreader/databases/rssreader. N’oubliez pas les points virgules terminaux à vos requêtes vous les exécuter !

La procédure add prend en paramètre une url et l’ajoute à la base de donnée :

Ici aussi, le code est limpide, il s’agit de simples requêtes SQL comme si l’on agissait sur serveur de base de données classique.

Voyons maintenant comment supprimer un flux de la base de donnée :

Dernière méthode, certainement la plus intéressante, celle qui renvoi la liste des flux dans la base de données :

Elle retourne un curseur, c’est ce curseur qui nous permettra plus tard de placer les flux dans une liste déroulante. Le tableau de chaines de caractères selectionArgs, ici vide, permet de spécifier des critères de sélection, formatés à la manière d’une clause WHERE dans une requête SQL. Le tableau columns permet d’indiquer quels colonnes nous souhaitons sélectionner, à la manière d’un SELECT en SQL. N’oubliez de sélectionner la colonne _id quelque soit votre requête. Sans elle l’utilisation ultérieur des curseurs sera beaucoup plus difficile.

Nous avons maintenant une base de donnée fonctionnelle et très légère sous Android. Dans le prochain article nous verrons comment créer une interface graphique pour gérer ces données.

Note : Merci à Infernal Quark d’avoir corrigé l’affreuse faille par injection SQL que j’avais laissé trainé…

La sélection musicale du moment

Programmer c’est bien, en musique c’est mieux ! Voici une petite sélection de ce que j’écoute en ce moment :

  • Les londoniens de Headjam font un mélange de Dub et de Punk rafraichissant ! Musique travaillé et entrainante, voix agréable et surprenante. Ma préférée sur leur MySpace : Open All Hours
  • Restons dans le calme avec les catalans de Chalart58, un mélange Reggae / Jungle plutôt pas mal. Sur leur MySpace : El pitbull de Bologna. A voir aussi, leurs potes de La Kinky Beat (l’album est excellent mais les chansons en ligne me plaisent moins)
  • La Spirale c’est un mélange rap-électro de Wazemmes qui rend bien, un peu à la TTC. Ma préférée : anarchie (feat. liqid)
  • Toujours des lillois avec les potes de Fourmis Delta pour un peu d’anarcho-punk. À écouter : Aliénation télévisée.
  • Du Punk maintenant avec cette vidéo de Sin Dios en concert : impressionnante reprise de A las Barricadas !
  • Razorbois c’est de la Oi! russe, simple et efficace. À écouter : BoxCutter Justice

Plugin Scoopeo pour WordPress v0.3

Voici une nouvelle version de mon plugin qui permet d’intégrer Scoopeo à WordPress. Au programme :

  • Affichage des commentaires dans l’ordre chronologique
  • Suppression des erreurs et des en-têtes inutiles lorsqu’il n’y a pas de commentaires Scoopeo associés à une page
  • Affichage des dates en français
  • Lien vers la page de l’auteur du commentaire

Télécharger le plugin Scoopeo pour WordPress version 0.3

Le W3C n’est pas “W3C compliant” !

Le World Wide Web Consortium est l’organisation qui rédige et publie les standards du web. Il est à l’origine de XHTML, CSS et SVG. Le W3C fourni également des validateurs qui test le respect de ses formats par les documents soumis.

Mais même une page importante du W3C comme les spécifications du format SVG échoue lors de la validation : essayez par vous-même ! Peut-être que le W3C devrait utiliser le HTML 5 pour écrire ses pages web…

W3C

The W3C website is not W3C compliant !

The World Wide Web Consortium is the organization that develops web standards. It is the source of XHTML, CSS and SVG. It produces some validators to test compliance with its formats.

But even an important W3C page like the SVG specification failed to respect their own standards : try by yourself ! Should the W3C use HTML 5 to write their pages ?

W3C

Premier programme avec Android

Le kit de développement de Google Android désormais installé, commençons à coder ! L’objectif de cet article est de découvrir les bases de la programmation et de l’exécution de programmes pour Android. Il nécessite de maitriser la programmation en Java et de connaitre les rudiments du fonctionnement d’Eclipse.

Plugin Android pour Eclipse

Lançons Eclipse et créons un nouveau projet Android. Nous le nommerons Hello. Le package, dont le nom respectera les conventions Java, sera pour notre example net.lapinblanc.android.hello. Hello sera également l’Activity Name. L’Activity Name est simplement le nom de la classe principale du programme qui dérivera de la classe Activity d’Android. C’est simplement une classe exécutable. Application Name est le nom de votre application telle qu’elle apparaitra pour l’utilisateur.

Interface graphique par programmation

Modifions maintenant notre programme pour lui faire afficher un texte de bienvenue. Il est nécessaire de créer une interface simpliste afin d’afficher quelque chose. Modifions la classe autogérée Hello pour qu’elle ressemble à ceci :

Android propose un grand nombre de “widgets”. Vous pourrez très simplement utiliser les classiques boutons, listes déroulantes, mais aussi des horloges, des sélecteurs de date et même des galerie photos et des afficheurs de vidéo !

Notre programme écrit, lançons-le depuis l’émulateur fourni. Il faudra créer une nouvelle configuration Eclipse. Cliquez sur la flèche verte et choisissez Open Run Dialog. Choisissez comme type Android Application, nommez votre application, indiquez le package et le même nom de projet que vous avez entrez un peu plus haut. C’est parti, l’émulateur doit se lancer et afficher notre magnifique programme.

Interface graphique par fichier XML

Nous avons créé notre sommaire interface graphique entièrement dans le code source Java. Une approche plus moderne, popularisée par Glade, est de décrire l’interface graphique dans un fichier XML. Ce dernier sera lu par le programme et l’interface graphique sera automatiquement générée en conséquence. Il devient ainsi beaucoup plus facile de modifier et de faire évoluer une interface graphique déjà existante.

Android offre cette fonctionnalité par défaut.

Notre Hello World est cette fois-ci déjà généré par Eclipse !
Restaurons la classe par défaut :

Intéressons nous au fichier res/layout/main.xml, c’est dans celui-ci qu’est décrit notre interface. C’est l’attribut text de la balise TextView qui permet de spécifier ce qui sera affiché à l’écran.

Bonjour Android !

Il existe plusieurs type de layouts, ils permettent d’agencer les objets à l’écran comme bon vous semble. Les principaux sont le LinearLayout, qui affiche les éléments de manière horizontale ou verticale, le RelativeLayout qui permet de placer les élements les uns par rapport aux autres (la boite de texte doit être à droite du bouton OK et en-dessous du label de bienvenu…), le TabularLayout qui agence les éléments de manière tabulaire ou encore le FrameLayout qui permet d’afficher plusieurs layouts au sein d’un seul. Pour de plus amples informations, référez-vous au tableau récapitulatif des différents layouts. Il est assez explicite.

Le fichier R.java, qu’il ne faut pas modifier, gère les liens entre le code source Java et le fichier XML de description d’interface.

Amusez-vous à modifier le fichier XML puis cliquez sur Run pour voir le résultat. Dans le prochain article nous attaquerons les choses sérieuses : nous commencerons enfin la réalisation de notre lecteur de flux RSS pour Android avec la partie base de donnée intégrée !

Plugin pour intégrer Scoopeo à votre blog WordPress

Scoopeo, c’est le plus populaire des digg-like francophone. Scoopeo est un aggrégateur de liens. Ceux-ci sont classés suivant les votes des visiteurs. Le site permet également de poster des commentaires à propos des pages publiées.

C’est une pratique répandue chez les blogueurs de faire apparaître leurs articles sur les sites webs sociaux tels que Scoopeo, Blogasty ou encore Wikio. C’est une manière efficace de leurs assurer une forte visibilité et de générer du traffic sur leur blog.

J’ai développé un plugin pour WordPress, un moteur de blog très répandu qui permet :

  • De voir le nombre de “clic” et de voter directement depuis les articles publiés
  • De rappatrier les commentaires postés à propos de vos articles sur Scoopeo à la suite des commentaires classiques

Ce plugin permet de maximiser le nombre de votes reçus pour vos articles, car vos visiteurs peuvent voter simplement même s’ils ne sont pas arrivés sur la page depuis Scoopeo. Il rapatrie également tout le contenu associé à votre article (les commentaires Scoopeo), tous les visiteurs pouvant ainsi en profiter.

Note : le plugin existe désormais en version 0.3.

Télécharger le plugin d’intégration de Scoopeo à WordPress

Installation

  1. Décompressez le fichier scoopeo-0.2.zip
  2. Transférez le fichier scoopeo.php dans le répertoire wp-content/plugins
  3. Activez le plugin depuis le menu Plugins du Tableau de bord
  4. Placez <?php the_scoopeo_clicker (); ?> dans vos templates pour afficher le clicker. Par exemple après <?php the_content('» Lire la suite...'); ?> dans index.php et single.php (Modèle de l’index principal et Article seul depuis l’éditeur de thème).
  5. Placez <?php the_scoopeo_comments (); ?> dans vos templates pour afficher les commentaires postés sur Scoopeo. Par exemple après <?php if ('open' == $post-> comment_status) : ?> dans comments.php (Commentaires depuis l’éditeur de thème).

C’est tout, le plugin est installé !

Todo :

  • Convertir les dates du format RSS au format français
  • Trouver le lien pour répondre sur Scoopeo
  • Récupérer les “alt url”

Notes :

Développement pour Android sur Mac OS X

Cet article est le premier d’une série consacrée au développement d’applications sur la nouvelle plate-forme pour téléphones mobiles crée par Google : Android.

Google Android

Les deux premiers billets seront très accessibles, voir simplistes. Celui-ci détaillera la procédure d’installation de l’environnement de développement (sur Mac OS X mais elle est très similaire sur Linux et Windows). Dans le prochain nous réaliserons le traditionnel “Hello Word” et nous présenterons les bases de la conception d’interface graphiques avec Android.

Nous passerons ensuite aux choses sérieuses avec la réalisation d’un lecteur de flux RSS en deux articles. D’abord l’utilisation de la base de donnée intégrée à Android (SQLite) puis la réalisation de l’interface graphique et la gestion des évènements (incluant formulaires, liste déroulantes et visualisation de pages internet).

Capture d’écran du lecteur de flux RSS

Présentation

Android est une plate-forme libre (principalement sous licence GPL v2 et Apache) qui contient un système d’exploitation basé sur Linux, une interface graphique, quelques applications et un kit de développement (SDK). Elle est promu par l’Open Handset Alliance, un consortium de compagnies du secteur du téléphone mobile dont sont membres LG, Motorola, Samsung, T-Mobile, Telefónica, Intel ou encore Texas Instruments. Les avantages mis-en-avant de la prochaine plate-forme maîtresse du secteurs sont:

  • Son ouverture (logiciels libres, spécifications ouvertes)
  • L’égalité entre les applications d’origine et celles écrites par des tiers
  • Les possibilités d’intégration avec les services webs (Google Maps, …)
  • La facilité et la rapidité d’y développer des applications

Android utilise Java comme langage pour ses applications. Il utilise la machine virtuelle Dalvik, elle exécute des fichiers d’extension .DEX et permet une séparation entre les processus. Chaque application Android à son propre processus, il est donc possible de terminer une application sans devoir relancer le système entier.

L’installation du kit de développement sous Mac OS X

Pas de panique, Google à bien fait les choses. Nous aurons besoin de deux éléments pour être opérationnels, le SDK en lui même et un plugin pour Eclipse.

Le SDK

Récupérez le SDK version Mac OS X sur la page dédiée du site d’Android. Décompressez le ensuite dans le répertoire de votre choix (pour ma part ça sera dans ~/). Le plus gros est fait ! Nous allons juste ajouter le dossier tools/ du SDK à notre PATH afin de pouvoir lancer facilement les utilitaires de la plate-forme depuis un terminal. Ouvrez ou créez le fichier ~/.bash_profile et ajoutez-y :
export PATH=${PATH}:<répertoire_de_votre_sdk>/tools
Vous remplacerez <répertoire_de_votre_sdk> par par le chemin du dossier que vous avez extrait.

Accueil de l’émulateur

Vous pouvez désormais lancer l’émulateur en double-cliquant sur emulator dans le répertoire tools/ ou simplement en tapant emulator dans le terminal (Applications -> Utilitaires -> Terminal).

Le plugin Eclipse

Plugin Android pour Eclipse

Android est conçu pour qu’on y développe des applications avec l’IDE Eclipse d’IBM. Si ce n’est pas encore fait, téléchargez et installez-le. La version intitulée Eclipse IDE for Java Developers convient parfaitement.
Installons maintenant le plugin Android :

Lancez Eclipse et sélectionnez Help -> Software Updates -> Find and Install….
Dans la boîte de dialogue qui apparaît choisissez Search for new features to install puis appuyez sur Next.
Choisissez New Remote Site.
Dans la boîte qui s’affiche entrez Android Plugin comme nom et comme URL:
https://dl-ssl.google.com/android/eclipse/
Cliquez sur OK.
Le plugin doit apparaitre dans la liste, cliquez sur Finish.
Dans la boîte qui apparait cochez Android Plugin -> Developer Tools.

Cliquez sur Next.
Après avoir lu la license cliquez sur Accept puis sur Next, Finish et Install All.
Relancez maintenant Eclipse.

Il faut désormais configurer les préférences.Choisissez Eclipse -> Preferences puis Android.
Cliquez sur Browse… dans l’écran principal et indiquez le chemin de votre SDK.
Cliquez sur Apply puis sur OK.

Vous voici paré pour développer des applications Android depuis Mac OS X. La suite au prochaine épisode !

Note : Article librement inspiré et en parti du tutoriel officiel.