Blocage des pub avec Unbound

Voici un complément des bloqueurs de pub classique : le DNS.

On ajoute la prise en charge de cette liste de domaines à bloquer dans notre fichier de configuration d’Unbound :

Voilà ! Reste à relancer le service.

Défilement pleine page dynamique avec AngularJS 1.x

Sur ma station météo j’ai voulu implémenter un défilement pleine page (FullPage scrolling ou snap scroll).  La difficulté était de charger et de rafraichir dynamiquement les éléments affichés. Il existe probablement des solutions plus élégantes. Mais celle-ci répond à mon besoin.

1. Défilement pleine page

Pour le réaliser j’ai utilisé angular-snapscroll couplé à ses dépendances.

Je maintiens un index qui sera récupéré par mon contrôleur. Voici le code, pour le moment, qui affiche l’index :

2. Routage des vues

Pour le routage j’utilise ui.router  et les vues multiples.

Nommage des vues :

Maintenant passons au routage :

On affiche donc les vues 1 et 2 en fonction de la position du scroll.

Voici donc le contrôleur  qui va forcer la navigation.

3. Sources

Documentation angular-snapscroll

Documentation ui-router

https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views

 

Chargement dynamique d’environnements avec AngularJs

Afin de pouvoir automatiser le passage de l’environnement de développement à l’environnent déployé. J’ai utilisé quelques astuces afin de gagner du temps lors de la production de version.

La solution consiste à générer un fichier env.js contenant les variables de déploiement. C’est Grunt qui fera le travail de configuration.

1. Installation de grunt-ng-constant

2. Ecriture des configurations

Dans un répertoire config, on placera le template. Ce template sera utilisé pour générer le fichier de configuration. Dans ce script on stockera les différentes variables dans comme variable d’environnements (window.__env).

Et les fichiers de configurations…

Pour le développement :

Pour la production :

3. Chargement de la configuration

Maintenant nous allons configurer notre module. En chargeant les variables d’environnement (window.__env) .

On n’oubliera pas d’inclure le fichier env.js à nos scripts.

4. Script de production

On enregistre une tache ngConstant chargée de générer le fichier env.js

5. Sources :

http://www.jvandemo.com/how-to-configure-your-angularjs-application-using-environment-variables/

http://cayugasoft.com/configuring-multiple-environments-angular-js-using-grunt-ng-constant/

Démarrer une application graphique sur un affichage distant en ssh

Pour lancer une application sur l’hôte SSH :

Il suffit d’exécuter export DISPLAY=:id# dans la session SSH.

 

Script de reconnexion automatique au réseau Wifi

Lors de mes tests de station météo j’ai pu constater qu’au bout que quelques jours la station ne répondais plus. Diagnostique, plus de réseau wifi. J’ai donc fouiner pour dénicher ce script.

A placer dans un fichier a rendre exécutable :

Ajouter la tache cron suivante en éditant le fichier /etc/crontab

 

Sources :

http://www.domopi.eu/reconnecter-automatiquement-votre-raspberry-pi-au-wifi/

NodeJS et demon

Pour compléter l’article sur la manière de créer un service sous Debian. Voici comment créer un service à partir d’une application NodeJS.

J’utilise forever. Pour l’installer, rien de plus simple avec NPM.

Je crée un répertoire dans lequel forever viendra écrire ses fichiers PID.

Voici maintenant le fichier de service :

 

Sources  :

https://thomashunter.name/blog/running-a-node-js-process-on-debian-as-an-init-d-service

https://www.npmjs.com/package/forever-service

Quelques commandes pour contrôler le Raspberry Touchscreen 7″

Voici quelques commandes pour prendre le contrôle de votre écran tactile.

Mettre à jour la framboise avant l’utilisation de l’écran :

Allumer ou éteindre le rétro-éclairage :

On:

Off:

Sources :

http://forums.pimoroni.com/t/official-7-raspberry-pi-touch-screen-faq/959

Script de création d’un daemon sous Debian

Pour la station météo, certains programmes doivent fonctionner en tache de fond. Pour cela on utilise des démons.

Dans mon exemple j’ai un script Python à lancer. Ce script est capable de fonctionner en mode autonome mais je souhaite l’intégrer au système. Mon service s’appelle « launcher ».

Copier le script launcher dans le répertoire /etc/init.d/ et donner les droits d’exécution chmod +x /etc/init.d/launcher

Enregistrer le service et le démarrer :

Sources :

https://openclassrooms.com/courses/faire-un-demon-sous-linux

Configuration du Raspberry Pi en mode « kiosk screen » pour la station météo

La station météo a vocation à être posée sur un meuble. Donc souhaite afficher en plein écran les informations importantes. De manière transparente on ne souhaite pas montrer qu’il s’agit d’un ordinateur.

1. Faire de la place

J’ai décidé de supprimer quelques programmes dont je n’ai pas usage pour libérer un peu la carte SD. Entre autres : Minecraft ou LibreOffice, Sonic, etc…

D’abord une mise à jour :

Puis on supprime les programmes inutiles :

Enfin le ménage :

2. Installation

Ensuite nous avons besoin de Chromium et de quelques outils que l’on installe

Nous allons utiliser Chromium en mode kiosque c’est à dire en plein écran, sans barre d’outils ni décoration de fenêtre.

Edit : Pour installer Chromium sur Jessie

3. Configuration

Nous allons indiquer à LXDE qu’il faut lancer Chromium automatiquement au démarrage. Editer le fichier /etc/xdg/lxsession/LXDE/autostart

Et voici ! Il ne reste plus qu’à relancer la bête framboise !

4. Sources

https://www.danpurdy.co.uk/web-development/raspberry-pi-kiosk-screen-tutorial/

https://www.raspberrypi.org/forums/viewtopic.php?t=121195

Weatherg : Lecture des capteurs DHT22 et BMP185 en Python

1. Installer les dépendances :

Pour le DHT22, cloner la bibliothèque fourni par Adafruit et installer là :

Pour tester l’installation et votre câblage :

Ici 22  correspond au DHT22, pour le DHT11, utiliser 11 . Le 4 correspond à la broche GPIO #4 du Raspberry PI.

Recommencer pour le BMP185, ce dernier est câblé sur les broche I2C.

Enfin un petit test :

2. Exemple de code

3. Sources :

A venir