Fantomas’side

Weblog open-source

Archives pour le tag : service

Flux RSS de service

Le temps des releases : Vélib'erator

Suite à mon abonnement à Vélib', habitant près d'une station récemment construite, j'ai vite remarqué que de trouver un vélo en bon état ou une place de parking à proximité avant les 30 minutes fatidiques et payantes pouvait vite devenir un calvaire.

Sur ce, après quelques recherches,  j'ai pu constater que les informations sur l'état des stations du réseau Vélib' étaient librement accessibles. D'où l'idée de créer un paquet python nommé Veliberator, me permettant depuis mon shell de consulter l'état de mes stations favorites.

Pour les fans de la ligne de commande, essayez ceci :

$ sudo easy_install veliberator
$ sudo synchronize.py
$ find_place.py 42008

Partant de là, je me dis qu'il serait dommage de m'arrêter à ce stade du développement, d'autant plus que mon problème pour trouver une place libre rapidement ne se résous que depuis mon ordinateur, il faudrait donc que ce service soit accessible partout et pour tout le monde.

Un site web semble être la solution idéale, d'autant plus si on est capable d'optimiser l'affichage des pages au type de support, par exemple un mobile.

Equipé de mon module python et de Django, j'ai donc réalisé le site http://veliberator.com.

Au programme du site :

Continuer la lecture

Génération de flux RSS en PHP

RSS pour Really Simple Syndication, est une des récentes technologies qui popularisent le web 2.0. Le format RSS est un flux de données XML regroupant diverses informations sur des ressources accessibles depuis le réseau.

Dans le cas d'un site d'actualités, les flux RSS du site regrouperont les nouveaux articles publiés et les commentaires récents qui permettront aux utilisateurs de voir l'évolution du site sans avoir besoin de s'y connecter en permanence.

Générer un flux RSS 2.0 à l'heure actuelle peut rester facile pour n'importe quel développeur. Cependant, générer de multiples flux devient vite une tâche fastidieuse. J'ai donc décidé d'écrire un jeu de classes PHP, pour me simplifier la production de flux de type RSS.

Un exemple concret de construction de flux à partir de ces classes vous montrera la marche à suivre. Notre exemple se base sur le listage d'un répertoire distant, à travers un flux RSS.

<?php
include('myrss.class.php');

$rss = new RSS('Contenu du répertoire', 'http://url.du.repertoire', 'Description du répertoire');

if ($handle = opendir('.')) {
  while (false !== ($file = readdir($handle)))
    if ($file != "." && $file != "..") {
      $file_info = stat($file);
      $desc = is_dir($file) ? 'Dossier créé ' : 'Fichier de '.round(
      $file_info['size'] / (1024 * 1024), 2).' Mo';
      $desc .= strftime('le %A %d/%m/%Y à %H:%M:%S', $file_info['atime']);
      $date = strftime('%D');
      // Remplissage du flux
      $item = new Item($file, 'http://url.du.repertoire/'.$file, $desc, $date);
      $rss->add($item);
    }
  closedir($handle);
}
print $rss->publish();
?>

Et voilà comment en moins de ...

Continuer la lecture

Service class design

Avant de faire du Python par la force des choses et d'en découvrir la toute puissance, j'ai commencé la programmation sur le web avec PHP, et me suis particulièrement intéressé aux moyens de communication à travers les différentes technologies qui composent internet.

A la suite de plusieurs projets plus ou moins grands, une subtilité m’apparaît, peu importe la technologie, du moment que les programmes ont accès aux mêmes ressources, et qu'ils partagent le même langue pour communiquer, il n'y a pas de problèmes.

D'où l'idée de centraliser les tâches à partir d'un même noyau qui sera accessible par n'importe quels types de technologies.

Dans le cas d'un blog, les différents articles qui le composent doivent au minimum pouvoir être créés, édités et supprimés.

Donc si on veut pouvoir faire une interface pour administrer tout cela, disons dans une page, on va rédiger du code pour apporter ces fonctionnalités. Maintenant nous voulons pouvoir administrer les articles pour pouvoir les éditer à partir d'un client quelconque. Doit-on une fois de plus re-coder ces fonctionnalités ? Non ! Cela serait une énorme perte de temps.

A l'heure du web 2.0 et de la centralisation des données, il est temps de se simplifier la tâche.

La solution proposée est de fournir un service accessible de n'importe où et qui centralisera toutes les actions faites aux articles du blog. L'accès aux ressources se fera donc par HTTP, le minimum je pense.

Écrire ...

Continuer la lecture