Articles plus anciens

Dans la liste des services web que je voulais tester en vue d’autohéberger un maximum mes données se trouvait un agrégateur de flux RSS web.

2 scripts coexistent pour remplir ce rôle, Tiny Tiny RSS et Rsslounge

J’ai choisi de tester ce dernier car il semblerait qu’il soit plus léger, véloce (mais ce n’est pas suffisant, cf. Conclusion)

Installation

  • On télécharge le script sur le site de rsslounge (lien direct vers la 1.7)

  • On dézippe l’archive dans l’arborescence de votre site

  • On change les droits des répertoires et fichiers pour qu’il appartiennent à l’utilisateur exécutant le serveur web (www-data probablement)

  • On configure le serveur web.

Pour les autres services web que je test je ne décris jamais cette dernière étape car elle dépend de votre serveur Web et des choix faits (virtual host, sous-domaine, etc), mais je vais faire une exception ici car j’ai pas mal cherché avant de réussir a faire fonctionner rsslounge.

Je l’ai installé avec le serveur web NGINX, en plaçant RSSLounge dans un sous-répertoire de mon arborescence principal et sans déclarer de sous-domaine.

Soit mon site domaine.fr pour lequel la racine est localisé dans /var/www/domaine.fr, RSSLounge est quand à lui installé dans /var/www/domaine.fr/rsslounge et sera donc accédé via l’URL www.domaine.fr/rsslounge, voici ma configuration NGINX

server {
        listen       80;
        server_name  www.domaine.fr;
        root         /var/www/domaine.fr;
 
        index           index.php;
 
	rewrite ^/rsslounge/favicon.ico$ /rsslounge/public/favicon.ico;
	rewrite ^/rsslounge/plugins/([^/]+)/(.*)$ /rsslounge/plugins/$1/public/$2;
	rewrite ^/rsslounge/favicons/(.*)$ /rsslounge/data/favicons/$1;
	rewrite ^/rsslounge/thumbnails/(.*)$ /rsslounge/data/thumbnails/$1;
	rewrite ^/rsslounge/javascript/(.*)$ /rsslounge/public/javascript/$1;
	rewrite ^/rsslounge/stylesheets/(.*)$ /rsslounge/public/stylesheets/$1;
	location /rsslounge {
		access_log      /var/log/nginx/rsslounge.access.log;
		location ~ \.php$ {
			include         /etc/nginx/fastcgi_params;
			fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
			fastcgi_pass    127.0.0.1:9000;
			fastcgi_param QUERY_STRING mod_rewrite=1&$query_string; 
			fastcgi_index index.php;
		}
		if (!-e $request_filename) {
			rewrite ^.*$ /rsslounge/index.php last;
		}
	}
}

J’ai pas mal cherché pour réussir à mettre les bonne règles de réécritures, en effet les règles décrites sur la FAQ décrivent une installation de RSS à la racine du serveur web et je ne suis pas du tout un expert en réécriture d’URL

 

Configuration

On va ensuite sur l’URL de RSSLounge et on répond aux questions

Si vous spécifiez une base de données spécifique a rsslounge il faudra penser à la créer auparavant :

mysql -u root -p
CREATE DATABASE rsslounge ;

 

Utilisation

On peut ensuite se connecter :

Et commencer à ajouter des flux,  ou importer ceux de google reader

Pour cela on exporte la liste de ses flux dans Google reader en cliquant sur l’engrenage en haut à droite et choisissant « Paramètre de Google Reader »

 

Puis on clique sur le lien « Télécharge » de la ligne « Vos abonnements » de l’onglet « Importer/exporter » :

Cela sauvegarde la liste de vos abonnements sous la forme d’un fichier XML

Puis sous RSSLounge on clique sur les engrenages, on sélectionne « OPML Import » et on ouvre le fichier XML précédemment sauvegardé :

RSSLounge commence alors l’import et la mise à jour des flux (cela prend un certain temps).

In fine on peut lire ses news….

 

Conclusion

RSSLounge change un peu de Google Reader, mais est globalement agréable à utiliser, les raccourcis sont pratiques, l’interface est claire et il rempli correctement son boulot

MAIS

sur un Dockstar ce n’est tout simplement pas possible, ça rame à mort, dommage….

 

Sources :

Pour un fois voici un article à la fois pour Windows et pour Linux et pour cause le logiciel que je présente est multi-plateforme puisqu’en Java.

Je m’attarderais ici essentiellement a son installation et configuration sous Windows (une fois n’est pas coutume) puisque pour l’instant je n’en ai pas trouvé l’utilité sous Linux

Sous Windows l’éditeur texte par défaut est le Notepad autant dire le strict minimum or si on développe un temps soit peu ou si on veut éditer des fichiers volumineux,ou si on édite des fichiers provenant de différents OS (Windows / Linux, les fameux caractères de fin de lignes), le Notepad Windows ne convient pas du tout.

Après en avoir essayé de nombreux (notepad++, pspad, ultraEdit, etc), mon choix s’est porté sur jEdit, essentiellement pour sa gestion des expressions régulière qui est pour moi la plus complète (sous Windows et aux derniers tests effectués datant de plus de 3 ans).

Le site du logiciel :  http://www.jedit.org

Installation

L’installation sous Windows est assez classique (on clique, on clique), hormis les les configuration suivantes :

Je n’installe pas la documentation de l’API, n’ayant pas pour l’instant franchi le pas du développement de macros ou de plugins pour jEdit.

Aucun raccourcis et je ne démarre pas le serveur jEdit (voir à quoi cela sert ici) au démarrage de Windows, ce dernier est déjà suffisamment long à démarrer

On peut lancer jEdit, voici ce a quoi il ressemble avant toute configuration :

Traduction

Par défaut jEdit n’est pas en Français et il n’existe pas de traduction officiel, mais une officieuse qui n’est pas à jour (Traduction 4.3.1 alors qu’on est en version 4.4.2) mais cela fonctionne tout de même très bien.

Pour ma part je n’utilise que la traduction de l’interface (pas des macros / docs)

On télécharge le fichier zip contenant les properties et on le décompresse dans C:\Program Files\jEdit\properties et on peut re-démarrer jEduit

Configuration

En première configuration je décoche l’affichage de l’astuce du jour…

Puis on va dans « Utilitaire » > « Options générales… »

Voici les configurations que j’effectue systématiquement :

jEdit > Générales

  • Décocher  »Rétablir au démarrage les fichiers précédemment ouverts »

jEdit > Apparences

  • Décocher « Afficher les astuces au démarrage »

jEdit > Encodage

  • Sélectionner les encodages avec lesquels vous travaillez (je laisse juste UTF8 et UTF8Y) pour éviter ce genre de liste à rallonge lors d’un changement d’encodage :

  • Sur cette même page il est possible de choisir l’encodage par défaut

jEdit > Marge

  • Côcher « Numérotation des lignes »

jEdit > Serveurs Proxies

  • Si vous êtes en entreprise, il y a de forte chance qu’il y ait un proxy il convient donc de l’activer et de l paramétrer ici.

jEdit > Gestionnaire de plugin

  • Cliquer sur « Mettre à jour la liste des miroirs »
  • Sélectionner un miroir Français (free par exemple)

jEdit > Enregistrement & Sauvegarde

  • Mettre 5 dans la zone Nombre maximum de sauvegarde
  • Mettre un dossier de sauvegarde (évite de polluer ses dossiers avec des fichiers ~)

Voila pour mes configurations de bases mais jEdit est ultra-paramétrable beaucoup d’autres configuration sont possible (je n’ai jamais pris le temps de m’y pencher sérieusement)

Installation de plugins

Une des forces de jEdit, l’installation de plugins, ajoutant des fonctionnalités ou modifiant son comportement, en voici quelques uns que j’utilise.

L’installation se fait en allant dans « Plugins » > « Gestionnaire de plugins… » puis dans l’onglet « Installation » il suffit de cocher la case face au(x) plugin(s) voulu(s) et de cliquer sur « Installer »

Ajout d’onglets : BufferTabs

Par défaut la sélection des différents fichiers ouverts (tampons dans le jargon jEdit) se fait via une liste déroulante, le plugin BufferTabs ajoute des onglets.

Après l’installation il suffit d’activer le plugin en allant dans « Plugins » et en cliquant sur « BufferTabs »

On configure ensuite le plugin en allant dans « Plugins » > « Option des plugins » et sélectionnant « BufferTabs »

  • Cocher « Enable Buffertabs by default »
  • Sélectionner « Top » pour « location of BufferTabs »

La liste déroulant faisant doublon avec les onglets on la désactive :

  • Menu « Affichage » dé-selectionner « afficher le sélecteur de tampons »

 

Travailler avec des fichiers XML

Le plugin XML (installe 4-5 plugins par dépendance) permet de travailler aisément avec des fichiers XML, ne serait ce que le reformatage :

Avant :

Après :

Visualisation de la structure du document dans le Sidekick (plugin dépendant) :

Programmation PHP : PhpParser

Comme son nom l’indique permet de faciliter le travail avec les fichiers php

Gestion des fichiers en projet : ProjectViewer

Travail sur les fichiers textes : TextTool

Permet notamment de trier un fichier, supprimer les doublons, etc

Voir les caractères spéciaux : Whitespace

Edition de fichier distant via FTP ou SFTP : FTP

FTP c’est le nom du plugin, une fois installé le plus simple pour l’utiliser et d’ancrer l’explorateur de fichier, pour cela dans « Utilitaires » > « Option Générales… » dérouler « jEdit » > « Ancrage » et sélectionner l’ancrage voulu (left / right …) pour le panneau « Explorateur »

Dans le panneau « Explorateur », cliquer sur « Plugins » > « FTP » et choisir « Connect to FTP Server » pour une connexion FTP classique et  »Connect to Secure FTP Server » pour une connexion SFTP (ou SSH), remplir les données de connexion.

Le panneau de l’explorateur liste alors les fichiers distants :

En cas de connexion via SSH, il n’est pas nécessaire de renseigner de clé privé…

 

 

Voila pour le principal, jEdit est ultra-puissant mais il faut y passer un peu de temps pour le paramétrer à son gout.

Pour plus de détails (en anglais) voir cet article

 

PS :

je disais en début d’article que jEdit était le seul éditeur texte gérant correctement les expressions régulières, voici un exemple, l’utilisation des références arrières.

Soit les dates suivantes :

20011015
20010812
20011205
20010622
20010504
20010318
20010616
20010101

Que l’on veut transformer ainsi :

15/10/2001
12/08/2001
05/12/2001
22/06/2001
04/05/2001
18/03/2001
16/06/2001
01/01/2001

On utilise l’expression régulière suivantes (pas optimisé, c’est juste un exemple) :

Rechercher : ([0-9]{4})([0-9]{2})([0-9]{2})

Remplacer : $3/$2/$1

Et voila…

Notepad++ ne le permet pas.

A l’heure des nouvelles interfaces de bureau (Unity, Gnome-shell) cet astuce est sans doute inutile.

Mais je n’utilise pas ces nouvelle interfaces, je suis resté sur Ubuntu 11.04 avec Gnome 2.x et j’ai ce tips dans mes brouillons d’article depuis pas mal de temps. ne voulant pas le perdre je le publie.

Par défaut depuis Gnome 2.3 le menu système n’a plus d’icônes :

Pour les faire réapparaître, il suffit de lancer la commande :

gconftool-2 --type Boolean --set /desktop/gnome/interface/menus_have_icons True

Et voila le boulot :

 

Sources :

05 jan 12

Article pense-bête.

Il y a quelques temps de cela j’ai ajouté un groupe secondaire à mon utilisateur avec la commande :

sudo usermod -g groupe_secondaire mon_utilisateur

Mais cela à eu pour conséquence que ce nouveau groupe est devenu le groupe principal de mon utilisateur (visible qu’après déconnexion / reconnexion)

Voici donc la commande pour rétablir le groupe d’origine :

sudo usermod -g mon_groupe_principal mon_utilisateur

mon_groupe_principal = mon_utilisateur

Cela rétabli le groupe de l’utilisateur, mais le groupe secondaire ajouté précédemment est supprimé du compte de l’utilisateur on le rajoute donc avec la bonne commande (celle qu’il aurait fallu faire dès le début) :

sudo adduser mon_utilisateur groupe_secondaire

Pour voir le nouveau groupe ajouté avec la commande groups, il faut se déconnecter/reconnecter

Rque :

J’avais initialement publié cet article le 15/12 mais il était faut car j’utilisais  la commande :

newgrp mon_groupe_principal

Or cette dernière est temporaire, dès que vous vous déconnecté vous retrouvez le précédent groupe principal

 

Commentaires fermés

Pour ma veille je suis 281 flux RSS (après avoir fait du ménage ce matin), or il existe quelques sites qui ne proposent qu’une version tronquée des articles, par exemple Numérama :

 

Je comprends leurs motivations mais ça m’enquiquine (pour être poli).

Je me suis donc mis en quête d’un service permettant d’avoir le flux complet à partir d’un flux tronqué.

J’ai tout d’abord trouvé le service Full Text RSS Feed Builder, le premier test n’a pas été concluant le jour même mais semble avoir fonctionné les jours suivants (une histoire de cache dans Google Reader ?)

Mais qu’importe puisqu’entre temps je me suis souvenu que j’avais bookmarké un article décrivant un script remplissant le même rôle et pouvant être auto-hébergéfivefilters : RSS avec les articles complets

Le service s’appelle Create Full-Text Feeds de fivefilters.org

Par contre depuis que Tom@mplius à publié son article (Mai 2010) les conditions de distributions semblent avoir changées, le site fivefilters.org ne propose plus que son service en ligne gratuit mais limité (3 articles max par flux) et il faut payer (20 €) pour avoir les sources et l’auto-héberger.

En cherchant un peu j’ai trouvé le site sur lequel les sources de l’ancienne version sont distribués : http://code.fivefilters.org/p/full-text-rss/

Il s’agit de la version 2.7 et en payant on a la version 2.9, à vous de voir si les changements entre ces 2 versions vous sont nécessaires, en ce qui me me concerne la 2.7 me convient.

Pour l’installation, c’est un peu comme tous les services web :

  • Téléchargement des sources
  • Décompression dans un répertoire de votre serveur web
  • Fixer les droits sur les fichiers pour s’assurer que c’est l’utilisateur faisant  tourner votre serveur web (www-data) qui est propriétaire des fichiers
  • Paramétrage de votre serveur web pour prendre en compte ce nouveau site

Et on peut tester en allant sur l’URL de votre serveur web :

Un peu comme service gratuit fivefilters.org on entre l’URL du flux compléter et on valide.

Par contre à la différence du service gratuit hébergé, on a accès aux options notamment le nombre d’article par flux.

Un petit test avec le flux de Numérama, résultat de la page :

 

On copie l’URL résultante et hop on ajoute le flux dans Google Reader, ça marche parfaitement….

 

J’ai ensuite effectué quelques configurations supplémentaires.

En premier lieu il faut copier le fichier config.php en custom_config.php et éditer ce dernier.

Activation du cache :

Cela se fait simplement en positionnant la variable suivante :

$options->caching = true;

Il faut ensuite créer le répertoire paramétré dans $options->cache_dir et 2 sous répertoires rss et rss-with-key en effet les sources 2.7 ne contiennent pas ces répertoires et s’assurer que ces répertoires appartiennent à l’utilisateur faisant  tourner votre serveur web (www-data).

Protection du service :

Le service fonctionne parfaitement mais je veux en protéger l’accès, en effet je ne souhaite pas que tout le monde puisse l’utiliser.

Full Text Feed contient un mécanisme de clé permettant de différencier les utilisateur avec clé de ceux sans clé (en terme de fonctionnalité), mais malgré ce qui est indiqué dans cette page, l’ajout de la variable $options->key_required à true n’oblige pas l’utilisation d’une clé

J’ai donc modifié les sources pour le permettre. Dans le fichier makefulltextfeed.php j’ai ajouté le test  suivant :

if (($options->key_required) && (!$valid_key)) {
        die('A valid key is mandatory');
}

Après le test suivant :

$valid_key = false;
if (isset($_GET['key']) && isset($_GET['hash']) && isset($options->api_keys[(int)$_GET['key']])) {
        $valid_key = ($_GET['hash'] == sha1($options->api_keys[(int)$_GET['key']].$url));
}

Dans le fichier custom_config.php on indique ensuite la/les clés valides et l’option indiquant qu’une clé est obligatoire :

$options->api_keys = array();
$options->api_keys[1] = 'xxxx';
$options->key_required = true;