PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

nIQnutn : Afficher vos liens favoris sur votre site

mardi 19 janvier 2016 à 08:43

Il existe de nombreux outils pour partager ses liens favoris. L'un des meilleurs reste certainement Shaarli, Qwant permet également de publier des Carnets publics et il en existe de nombreux autres.

Ces solutions sont toutes intéressantes mais aucune ne permet d'intégrer facilement ses favoris sur son site web. J'ai pourtant trouvé une solution efficace pour intégrer tous mes favoris sur le site.

Cette solution nécessite seulement l'utilisation de PHP et un fichier au format Netscape bookmark contenant les liens.

Pour commencer, il faut exporter les liens depuis Shaarli. Rien de plus facile, il suffit de se rendre sur l'URL http://shaarli.chezmoi.com/?do=export&what=public (pour l'export des liens publics uniquement).

Ce fichier est structuré comme ceci:

bookmarks_shaarli.txt


Bookmarks

Bookmarks

Lien 1
Description du lien 1
Lien 2
Description du lien 2

On retrouve toutes les informations: le titre du lien, son URL, sa description, sa date de création, les tags associés et l'attribut privé.

Il faut maintenant l'afficher sur une page. Le code est assez basique et grandement inspiré par celui de Shaarli.

bookmark.php
> Emplacement du fichier
$urlBase= "/data/documents/0007/bookmark.php" ; // A MODIFIER >> URL de la page
$nb_elem_per_page = intval(5) ; // A MODIFIER >> Nb de liens à afficher


$url=preg_replace('/(^.*?)\\?/', '', $urlBase."?page") ; //  Variable  de la page à récupérer
$urlGet=$urlBase."?page"; // URL pour la navigation
$data=file_get_contents($file); // Récupère le contenu du fichier
$dateFile= date("d/m/Y", filemtime($file)) ; // Date du fichier
$type='unknown'; // Type du fichier


// Fonction startsWith
function startsWith($haystack,$needle,$case=true)
{
    if($case){return (strcmp(substr($haystack, 0, strlen($needle)),$needle)===0);}
    return (strcasecmp(substr($haystack, 0, strlen($needle)),$needle)===0);
}

// Fonction endsWith
function endsWith($haystack,$needle,$case=true)
{
    if($case){return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)),$needle)===0);}
    return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)),$needle)===0);
}


if (startsWith($data,''))  $type='netscape'; // Vérification du type de fichier: Netscape bookmark

// Si le fichier est au format Netscape bookmark, on parcourt le fichier
if ($type=='netscape') 
{ 

    $data =  (explode('
',$data)) ; // Retourne un tableau avec pour chaque entrée les liens (Titre + Description + ...) $page_nb = isset($_GET[$url])?intval($_GET[$url]):1; // Numero de la page $number_of_pages = intval(count($data)/$nb_elem_per_page)+1; // Nombre de pages total $page = isset($_GET[$url])?intval($_GET[$url]-1):0; // Parcourt les liens depuis le XXX jusqu'au XXX foreach (array_slice ($data, $page*$nb_elem_per_page, $nb_elem_per_page) as $html) { $link = array('linkdate'=>'','title'=>'','url'=>'','description'=>'','tags'=>'','private'=>0); $d = explode('
',$html); // Retourne un tableau avec le lien (+ attibuts) et la description if (startswith($d[0],'(.*?)!i',$d[0],$matches); $link['title'] = (isset($matches[1]) ? trim($matches[1]) : ''); $link['title'] = html_entity_decode($link['title'],ENT_QUOTES,'UTF-8'); // Récupère le titre $raw_add_date=0; preg_match_all('! ([A-Z_]+)=\\"(.*?)"!i',$html,$matches,PREG_SET_ORDER); // Récupère les attributs et les valeurs contenu dans le lien foreach($matches as $m) { $attr=$m[1]; $value=$m[2]; // attribut et valeur if ($attr=='HREF') $link['url']=html_entity_decode($value,ENT_QUOTES,'UTF-8'); // Récupère le lien elseif ($attr=='TAGS') $link['tags']=html_entity_decode(str_replace(',',' ',$value),ENT_QUOTES,'UTF-8'); // Récupère les Tags elseif ($attr=='PRIVATE') $link['private']=($value=='0'?0:1); // Récupère l'attibut Privé / Public elseif ($attr=='ADD_DATE') $raw_add_date=intval($value); $link['linkdate']=date("d/m/Y",$raw_add_date); // Récupère la date } // On affiche les liens if ($link['private'] == 0 ) { echo "

".$link['title']."

".$link['description']."

Tags: ".$link['tags']."
Date: ".$link['linkdate']."


" ; } elseif ($link['private'] == 1 ) { echo "Lien privé
"; } } } echo "

Mis à jour le: ". $dateFile."

"; // Affiche la date du fichier // Pagination } // Message d'erreur si le format du fichier n'est pas Netscape bookmark else { echo " File has an unknown file format. Nothing to read."; } ?>

On pourrait afficher tous les résultats d'un coup mais je préfère ajouter un menu de navigation. Pour ajouter ce menu, il suffit d'ajouter le code ci-dessous.

menu de navigation
// Pagination
echo "
"; $previous=( $page_nb > 1) ? "Précédent |  " : "" ; echo $previous; for($i=1;$i<=$number_of_pages;$i++) { echo " ". $i ." " ; } $next=( $page_nb != $number_of_pages ) ? " | Suivant " : "" ; echo $next; echo "
";

Voici le résultat sur la page des Liens en vrac et un autre page de test bookmark.php.

Je laisse encore un lien vers Shaarli pour ceux qui préfèrent son interface et bénéficier de ses différentes options, notamment la recherche et tri par tag.

Pour le moment, le code permet d'afficher les fichiers exporter depuis Shaarli et éventuellement les autres fichiers de type Netscape bookmark mais ne doivent pas intégrer d'autres balises ni de listes imbriqués.
J'essaierai de faire une mise à jour pour avoir un truc plus universel et plus complet. Cela offrira la possibilité d'utiliser l'export de ses favoris depuis Firefox.

Ressources


2016 nIQnutn CC-BY

Gravatar de nIQnutn
Original post of nIQnutn.Votez pour ce billet sur Planet Libre.

Wooster by CheckmyWebsite : Nouveautés 2016 Check my Website

mardi 19 janvier 2016 à 06:00

Vous savez, tout ce genre de choses !

Un petit regard dans le rétro

Nous avons peu communiqué que ce soit sur ce blog ou ailleurs pendant cette fin d’année 2015. Il faut dire que nous avons été bien occupé à préparer Check my Website pour 2016 en mettant en production fin novembre notre architecture v2 dont je parle plus longuement ensuite.

Nous bouclons en temps qu’entreprise notre première année civile complète avec son lot de bonnes et mauvaises surprises en fonction des saisons mais continuons à progresser régulièrement tant sur le plan commercial que technique et fonctionnel.

Plusieurs intiatives en cours devraient porter leurs fruits en 2016, notamment en terme de partenariats.

2016 en fanfare

Check my Website prend un virage important pour l’année à venir en étant la première solution de monitoring SaaS à pouvoir complètement s’interfacer avec votre système de supervision interne, et ce de plusieurs façons.

Vous ne perdez aucun des bénéfices habituels du service comme la console ou les notifications ainsi que les contrôles en parallèle depuis plusieurs endroits dans le monde, vous gagnez juste beaucoup d’indépendance et d’autonomie sur la façon de traiter les données que nous récoltons pour vous, que ce soit au niveau stockage ou présentation.

Check my Website pour l’entreprise

La nouvelle version de Check my Website possède une architecture pub/sub sur HTTPS permettant un certain nombre de fonctionnailtés inédites dans le monde du Saas.

Instance privée de stockage

Il est désormais possible de stocker les données à la fois chez Check my Website et vers un backend « privé », spécifique à l’entreprise. L’implémentation de ce principe est aujourd’hui réalisé avec InfluxDB comme base de données mais d’autres bases vont suivre.

Les données sont consommées en temps réel, comme nous le faisons nous-même pour notre propre stockage.

Ceci permet entre autres d’utiliser des interfaces de visualisation Open Source comme Grafana et de mixer données provenant de Check my Website et de vos autres outils de monitoring.

Tableau de bord réalisé pour monitoring-fr.org
Tableau de bord réalisé pour monitoring-fr.org

Quelques exemples concrets de tableaux de bord, connexion en guest/guest :

Nous pouvons également opérer pour vous dans le Cloud ou sur site ce type d’instance privée de stockage.

Instance privée de collecte

Il est possible désormais d’utiliser en plus des workers publics qui vous sont présentés dans la console des workers privés.

Ceci vous permet de surveiller vos applications et portails web internes comme vous le faîtes pour vos sites web publiques.

Un worker privé est une instance de collecte Check my Website que vous pouvez installer ou vous le souhaitez, que ce soit sur l’Internet ou derrière votre firewall d’entreprise.

Il se connecte au service Check my Website et exécute à intervalles réguliers des contrôles comme n’importe quel autre worker.

Ce worker, même installé derrière votre firewall, reste sûr. Il n’y a pas de connexion entrante vers votre infrastructure. Vous êtes bien sûr seuls à pouvoir exécuter des contrôles sur ce worker.

Et il sait rester simple. Nous avons entièrement packagé tout le nécessaire dans un conteneur qui se déploie sur n’importe quel type de serveur Linux, physique ou virtuel. Pas de sauvegarde, pas de configuration, ce conteneur est entièrement jetable et ne nécessite pas d’administration.

Les plugins Check my Website

Pour ceux qui ne souhaitent pas installer de stockage privé, il est toujours possible de récupérer les données collectées par le service via les plugins Check my Website. Les solutions suivantes sont d’ores et déjà compatibles et de nouvelles sont ajoutés régulièrement et à la demande.

Solutions de supervision

Les nouveaux plugins sont indiqués en gras.

  • Shinken
  • Centreon
  • Graphite
  • Nagios
  • Icinga
  • Naemon
  • InfluxDB
  • Zabbix

Système de Gestion de contenu

  • Wordpress

Vous avez alors accès à toutes les possibilités présentées plus haut comme les tableaux de bord pour Grafana.

Les scénarios fonctionnels

Nous avons commencé la période de beta pour les scénarios fonctionnels Check my Website.

Ces scénarios permettent de définir un certain nombre d’étapes fonctionnelles à accomplir sur un site ou une application web. Ce sera par exemple mettre un produit dans un caddie sur un site marchand, valider le panier…

Ce type de contrôles est complémentaire de ceux que nous pratiquons déjà au niveau disponibilité et performance dans le sens où ils permettent de voir ce qui ne fonctionnent pas ou plus sur un site.

Nouvel onglet fonctionnel dans la console
Nouvel onglet fonctionnel dans la console

A chaque contrôle, nous enregistrons un temps d’éxecution global pour le scénario ainsi que le temps de chaque étape. Nous enregistrons une video retraçant le parcours du navigateur (au choix firefox et chrome pour le moment) et présentant celle-ci ainsi que les graphes de temps dans la console Check my Website.

Un nouveau point de contrôle

Nous sommes très heureux de proposer, en partenariat avec Fullsave, un point de contrôle de vos sites web depuis Toulouse. La société FullSave est hébergeur internet et opérateur télécom régional. La société disposa à ce titre d’une boucle métropolitaine en fibre noire interconnectant ses quatre datacenters toulousains. Depuis 2014, FullSave opère TLS00, le premier datacenter neutre éco-responsable de Toulouse situé au cœur des réseaux fibres régionaux. Ce point de contrôle est directement installé dans le data-center toulousain de la société.

Go go go

Nous n’avons pas chômé mais il reste beaucoup à faire ! Beaucoup avant de pouvoir arriver à ce que nous avions en tête au niveau fonctionnel quand nous avons imaginé il y a maintenant plus de trois ans une première version complète de Check my Website.

J’aurai l’occasion très prochainement ici même de détailler chacune de ces grandes nouveautés qui font petit à petit la valeur et la singularité de notre offre sur le marché.

Gravatar de Wooster by CheckmyWebsite
Original post of Wooster by CheckmyWebsite.Votez pour ce billet sur Planet Libre.

antistress : L'extension du jour : User Agent Switcher pour Firefox

lundi 18 janvier 2016 à 23:59

Super heros capé arborant le logo de Firefox sur la poitrine
Captain Extensions recommande
User Agent Switcher

Voici une extension pour Firefox qui m'est indispensable depuis un moment – même si je ne l'utilise qu'occasionnellement – et dont je n'ai pas encore parlé ici :

User Agent Switcher (installable depuis le site addons.mozilla.org) est une extension qui, comme son nom l'indique, permet de modifier le user agent de votre navigateur (suivez ce lien pour connaître votre user agent actuel).

Je vois au moins trois utilités à cette extension :

Dans le deuxième cas, vous aurez donc à cœur de choisir un user agent extrêmement répandu et de l'afficher de manière permanente.

Dans le troisième cas qui est le mien (et qui ne semble pas être le plus connu pour cette extension), il suffira d'afficher ponctuellement le user agent d'un appareil sous iOS – puisque chacun sait que Flash est banni de cette plateforme. Ainsi le site vous servira quasiment à coup sûr une version alternative optimisée, c'est-à-dire en l'occurrence dépourvue de tout contenu au format Flash. Et pour éviter de vous retrouver avec un écran minuscule, vous simulerez un iPad plutôt qu'un iPhone (pour connaître le user agent d'un iPad récent, recherchez le terme « iPad » sur la page indiquée au paragraphe précédent).

Pour finir, je signale que, pour contourner un bogue qui fait disparaître ma liste de user agents alternatifs, j'ai dû décocher, dans les préférences de l'extension, la ligne « Hide the User Agent Switcher Tools menu ».

User Agent Switcher est une extension publiée par Chris Pederick sous la licence libre GNU GPL 3.0.

Télécharger User Agent Switcher.


L'illustration en tête de ce billet est une composition réalisée par mes soins à partir de cette image et donc soumise à la même licence CC BY-NC-SA que cette dernière.


Get Firefox Button

Gravatar de antistress
Original post of antistress.Votez pour ce billet sur Planet Libre.

Journal du hacker : Publier sur le Journal du hacker à partir de FreshRSS

lundi 18 janvier 2016 à 22:31

Utilisateur régulier de FreshRSS, j'utilise assez régulièrement la fonction de partage, qui permet de publier un lien sur Wallabag, Diaspora, par mail, etc...

Je pensais depuis longtemps :

" Ça serait chouette de faire le petit bout de code pour pousser l'article en question sur le Jdh ..."

Et je traînais ça dans ma todolist, dans celle du Journal du hacker (oui, on a ouvert une instance sur Framaboard pour partager les tâches à faire <- on recrute ;), jusqu'à ce que je me décide à regarder un peu sérieusement.

Et en fait c'est très simple :

Dans la configuration de FreshRSS (roue dentée > Partage), vous pouvez ajouter un moyen de partage :

L'entrée ajoutée s'appelle gen.share.jdh, je ne sais pas pourquoi, mais vous pouvez lui donner le nom que vous souhaitez, comme pour toutes les extension de partage de FreshRSS

Après validation de la modification, vous pouvez retourner à vos flux, et une nouvelle entrée de partage est disponible (raccourci clavier 's')

C'est plus rapide pour contribuer au Journal du hacker !

C'est en contribution chez FreshRSS, en route pour la version 1.3.1 !

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

genma : ZTE Open C Revenir à Firefox OS après un passage par Android

lundi 18 janvier 2016 à 09:30

Si vous avez teste Android sur un ZTE FR et que vous voulez revenir à Firefox OS, voici la procédure que j'avais faite moi sur un téléphone ZTE FR (cf https://forums.mozfr.org/viewtopic.php?t=122920

Voici ce que j'ai fait :
-téléchargement de US_Android+to=FFOS.zip ici
- mise du zip sur une carte sd
- boot sur le loader d'Android avec Power + Up
- Choix install from ZIP : choix du zip
- le Zip s'installe, le téléphone redémarre
=> J'ai alors un FirefoxOS sur le téléphone mais toujours avec le logo Android au boot
On branche le téléphone sur le port USB sous Windows, utilisation du pack root et on refait la procédure de root du ZTE
=> On a alors FirefoxOS au boot (logo) et le FirefoxOS de ZTE
=> On peut alors mettre une Rom communautaire (via la rom sur la carte sd...)

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

I'm richer than you! infinity loop