Success in Programming

Je pense que je ne suis pas un mauvais développeur, mais j’écris mieux du code que je sais “me vendre”. Et il est parfois frustrant de voir son collègue “grande gueule” être mieux vu alors qu’il écrit du code médiocre etc … (On va rester gentil)

Je me suis donc attaquer à la lecture de ce livre Success in Programming

L’auteur décrit son expérience et ses bonnes recettes pour promouvoir sa marque personnelle. La cible est clairement les développeurs et tout ce qu’il cite est facile à mettre en oeuvre avec un minimum d’effort.

Il y a quand même beaucoup de “déja-vu” si vous vous lisez un peu sur le personal branding mais ca reste un bon résumé qui donne envie de s’y mettre ( la preuve ^^ )

Même si il y a un focus particulier pour les réseaux sociaux et Internet, je conseille ce livre si vous voulez être mieux vu par votre entourage et réseauter efficacement !

Activer/désactiver la sortie hdmi d'un raspberry pi via cron

Dans mon salon, j’ai mis en place un dashboard pour m’afficher différentes informations (l’heure, la météo, les derniers films et séries ajoutés sur le media player, etc …)

Pour cela, j’ai utilisé :

Par contre, j’étais embêté de laisser l’écran allumée toute la journée, et l’allumer manuellement a été vite lassant.

J’ai donc mis en place un petit script qui “allume” l’écran de 7h00 à 8h30 tous les jours.

HowTo

Créer un script :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash -e

# /usr/local/sbin/raspi-monitor
# Script to enable and disable the HDMI signal of the Raspberry PI
# Inspiration: http://www.raspberrypi.org/forums/viewtopic.php?t=16472&p=176258

CMD="$1"

function on {
/opt/vc/bin/tvservice --preferred

# Hack to enable virtual terminal nr 7 again:
chvt 6
chvt 7
}

function off {
/opt/vc/bin/tvservice --off
}

function must_be_root {
if [ $USER != root ]; then
echo "ERROR: Script must be executed as the root user"
exit 1
fi
}

function main {
must_be_root
if [ "$CMD" == "on" ]; then
on
elif [ "$CMD" == "off" ]; then
off
else
echo "Usage: $0 <on|off>"
exit 1
fi
exit 0
}

main

Via le compte root (sudo -i), accéder au listing des tâches cron via crontab -e et rajouter :

1
2
3
4
5
# Enable the monitor every day at 7:00
0 7 * * * /usr/local/sbin/raspi-monitor on > /dev/null 2>&1

# Disable the monitor every day at 8:30
30 8 * * * /usr/local/sbin/raspi-monitor off > /dev/null 2>&1

Libre à vous de modifier le paramétrage des horaires !

Source :

Restaurer une base postgreSQL de heroku dans un container docker local

Voici une démarche pour récuperer un backup d’une de vos applications heroku pour la mettre en local via docker.

Prérequis

Démarche

  • Lancer boot2docker (pour ceux qui ne sont pas sous linux) et avoir le shell dessus
  • Installer une image postgres : docker run -p 5432:5432 --name blog-postgres -e POSTGRES_PASSWORD=test -d postgres
    • Explication de la ligne : on crée un container docker via l’image postgres qui s’appelle blog-postgres avec le mot de passe test et on redirige le port dans le host.
  • Dans le repertoire de l’appli heroku :
    • heroku pgbackups:capture
    • heroku pgbackups:url <= il faut garder le résultat de cette ligne
  • Dans boot2docker, on ouvre une console dans le container : docker exec -it "id of running container" bash
  • Dans le bash fraichement ouvert : apt-get update && apt-get install curl
    • curl -o latest.dump "Coller le contenu du pgbackups:url"
    • pg_restore --verbose --clean --no-acl --no-owner -h localhost -U postgres -d postgres latest.dump
    • rm latest.dump
    • exit pour sortir du bash du container postgres

Vous avez maintenant votre base postgresql dans votre container docker, accessible via un outil d’admin ou autre !

Ajout clé ssh sur dokku (bis)

Dans un précédent article, j’ai expliqué une facon d’ajouter une clé SSH à dokku.

Avec cette méthode, vous pouvez rencontrer l’erreur suivante : sudo: no tty present and no askpass program specified

et donc au lieu de faire la commande sur le poste “distant”, vous pouvez faire ceci sur le serveur dokku

echo "YOUR_KEY" | sudo sshcommand acl-add dokku fixe

avec YOUR_KEY qui réprésente le contenu du fichier ~/.ssh/id_rsa.pub du poste distant.

Faire de son Pi une borne (Raspberry Pi Kiosk mode)

Je vais vous décrire la démarche pour configurer votre pi pour qu’il démarre automatiquement en affichant un site en plein écran. Très utile pour afficher des dashboards (ex: dashing, pubs, etc …)

Installation

  • Je pars du principe que vous avez tout le matériel nécessaire (le pi, sd, cable réseau ou wifi par usb, etc …)
  • Récuperer la derniere raspbian sur le site de raspberry pi http://www.raspberrypi.org/downloads/
  • Suivre la démarche pour installer l’image sur votre sd : http://www.raspberrypi.org/documentation/installation/installing-images/README.md
  • Remettre la SD dans le pi et le démarrer.
  • Normalement l’outil raspi-config se lance, il faut configurer
    • 1) Expand file system pour occuper toute la SD
    • 3) Enable boot to desktop
    • 4) Mettre la bonne timezone et config clavier (optionnel)
    • Terminer et rebooter si vous avez étendu la partition
    • Si vous êtes en wifi, profiter de l’interface X pour configurer le réseau via l’application WiFi config
  • Mise a jour du système, dans un terminal :
    • sudo apt-get update
    • sudo apt-get upgrade
  • Installation des packages necessaires :
    • Retirer le curseur de souris : sudo apt-get install unclutter
    • Installation de Chromium sudo apt-get install chromium
  • Nous allons demander au ServerX de ne pas s’éteindre apres un certain temps d’inactivité
    • sudo nano /etc/lightdm/lightdm.conf
    • et compléter le fichier
1
2
3
4
# add the following lines to the [SeatDefaults] section

# don't sleep the screen
xserver-command=X -s 0 dpms
  • Maintenant nous allons configurer le pi pour démarrer que sur chromium en mode kiosk sur une url précise
    • sudo nano /etc/xdg/lxsession/LXDE/autostart
1
2
3
4
5
6
# comment everything and add the following lines

@xset s off
@xset -dpms
@xset s noblank
@chromium --kiosk http://www.google.fr

Un reboot et tada :)

Dokku et redirection www vers non-www

La page philippegarry.com est une simple page statique hébergé grace à dokku et je la voulais aussi accessible via www.philippegarry.com sans devoir redéployer sur le vhost www.

Voici comment faire cette redirection “proprement” :

Editer le fichier /etc/nginx/conf.d/dokku.conf
et sous la ligne include/home/dokku/*/nginx.conf; il faut insérer ceci :

1
2
3
4
5
6
server {
listen 80;
server_name www.philippegarry.com;

return 301 http://philippegarry.com$request_uri;
}

Et hop tout fonctionne après un /etc/init.d/nginx restart

Source : DigitalOcean

Ajout clé ssh sur dokku

Petit pense bête personnel :
Pour rajouter une clé ssh sur dokku et donc autorisé une machine à pousser sur le serveur, il faut lancer cette ligne de commande dans un git bash (en modifiant user et domain.com par vos valeurs) :
cat ~/.ssh/id_rsa.pub | ssh user@domain.com "sudo sshcommand acl-add dokku fixe"
(le dernier argument est un commentaire pour trier facilement les clés ssh sur le serveur)