Je viens à de terminer l’écoute de « Père riche, père pauvre« , de Robert T. Kiyosaki. Ce livre m’a permis de mettre en perspective le vide abyssal de mes connaissances financières et m’a mis face à face avec mes envies et les moyens que je me suis donné jusqu’aujourd’hui pour y parvenir.

Autant vous dire que le choc fut violent.

Le titre du livre est certes très vendeur, et le sous-titre l’est encore plus. Ceci dit, le livre ne prodigue aucun conseil réel quant à la manière de devenir riche, mais il ouvre des perspectives de réflexion pour qui a l’esprit suffisamment ouvert aux nouvelles idées. En substance, l’auteur dit deux choses primordiales :

  1. Travailler la colonne des actifs : en résumé, il faut faire travailler l’argent pour gagner de l’argent. Notre temps (et donc notre temps de travail qui permet de faire rentrer un salaire) est limité, et il est donc fort probable qu’un travail « classique » ne nous rendra jamais riche. De même, le travail est automatiquement imposé à la source, et une partie des revenus d’une personne donnée repart donc immédiatement à la collectivité (l’État).
    L’auteur propose donc d’investir son argent pour générer des revenus passifs (revenus locatifs, dividendes, investissements dans des petites sociétés, etc);
  2. L’éducation est l’investissement le plus précieux que nous pouvons faire : l’auteur conseille d’investir dans sa propre éducation dans des compétences pratiques telles que l’investissement, les marchés boursiers, la vente, le marketing ou encore la comptabilité. Il répète à l’envi que les gens n’arrivent pas à faire d’argent car ils ne comprennent pas l’argent. L’éducation financière – qui bien souvent fait défaut – est donc la clé de l’enrichissement.

J’ai donc fait un brin d’auto-critique, et il faut admettre que mon éducation – et ma gestion – financière sont, au mieux, catastrophique. Même si j’essaie de m’améliorer, il y a encore fort à faire. Mon éducation financière, si l’on peut l’appeler ainsi, s’est limité à 3 conseils qui m’ont été prodigués tantôt par ma mère, tantôt par mon grand-père :

  1. N’achète rien que tu ne puisses acheter deux fois;
  2. Sois toujours en possession d’un fond de secours correspondant à 6 mois de dépenses courantes;
  3. Sois toujours capable de pouvoir remplacer dans l’instant ton bien le plus cher et le plus utile (typiquement : ma voiture).

A défaut d’avoir une une réelle éducation financière, je dois reconnaître que ces 3 conseils sont plein de bon sens. J’ai tenté des les appliquer avec plus ou moins d’assiduité mais ils ont le mérite d’être censés.

« N’achète rien que tu ne puisses acheter deux fois » me force à réfléchir, avant chaque achat, à son utilité réelle et à sa compatibilité avec la règle #3.

« Sois toujours en possession d’un fond de secours » est une règle de bon sens qui me permet de vivre relativement sereinement, même en cas de perte ou de diminution de revenu passagère

Enfin « Sois toujours capable de pouvoir remplacer dans l’instant ton bien le plus cher et le plus utile » est également une règle de bon sens. J’ai besoin de ma voiture pour me déplacer et pour travailler; le travail est ma principale source de revenu, et si je suis privé de moyen de locomotion, j’ai du mal à remplir mes obligations professionnelles.

En conclusion, je ne deviendrai certainement pas riche demain, mais je m’efforcerai d’approfondir mon apprentissage et ma compréhension des mes finances personnelles pour me donner les moyens d’atteindre mes objectifs.

Also on:

Enfer et damnation, vous venez de constater un bug dans votre code. Évidemment, il est difficile de savoir à quel moment cette régression est apparue et en trouver l’origine pourrait nous permettre de comprendre et donc de résoudre le bug.

Heureusement, git-bisect vient à votre secours, pour peu de savoir l’utiliser.

On commence donc par signifier à git que nous sommes dans un état « mauvais » du code :

git bisect bad

Vous devez démarrer avec "git bisect start"
Souhaitez-vous que je le fasse pour vous [Y/n] ? y

Il faut maintenant remonter suffisamment longtemps dans l’historique dans l’objectif de trouver l’état du code ou la régression constatée n’existait pas. Un petit git log devrait suffire à identifier le commit-id correspondant.

git checkout <commit-id>

Après avoir vérifié que la régression n’existait pas dans cet état du code, on signifie à git-bisect qu’on a une sous la main une version du code correcte.

git bisect good
Bissection : 132 révisions à tester après cette (à peu près 7 étapes)
[<commit-id>] <commit-message>

En retour, git-bisect nous donne le nombre de révisions à tester (ici : 132), et le nombre d’étapes estimées avant d’obtenir le nom du coupable (ici : 7). Enfin, git-bisect à effectué un checkout automatique sur un autre <commit-id> et attend vos instructions.

Il ne reste qu’a tester le code et à donner comme instruction soit un git bisect good, soit un git bisect bad en fonction du résultat observé. L’opération sera plus ou moins longue en fonction du nombre de commits à tester.

➜  webapp git:(6ae90d246) git bisect good
Bissection : 132 révisions à tester après cette (à peu près 7 étapes)
[49cbe40d5cb63b9f2a036560190983b2848d6df0] Merge branch 'master' into deploy/staging
➜  webapp git:(49cbe40d5) ✗ git bisect good
Bissection : 66 révisions à tester après cette (à peu près 6 étapes)
[dc9c093633ca9af720ae560b01ff455d4bd4fb51] <commit-message>
➜  webapp git:(dc9c09363) ✗ git bisect good
Bissection : 33 révisions à tester après cette (à peu près 5 étapes)
[4f8b4fd5f7ecb71141510823e89f3d941f6d892b] <commit-message>
➜  webapp git:(4f8b4fd5f) git bisect bad                                       
Bissection : 16 révisions à tester après cette (à peu près 4 étapes)
[0e5acfb262de5f692f8383cd51fe5c4bed729b92] <commit-message>
➜  webapp git:(0e5acfb26) git bisect good
Bissection : 7 révisions à tester après cette (à peu près 3 étapes)
[7623848ffee8d72429623e3b5fb8fb1a8040aeed] <commit-message>
➜  webapp git:(7623848ff) ✗ git bisect good
Bissection : 4 révisions à tester après cette (à peu près 2 étapes)
[50f6b9ebf42ff5cda83d33d4489e944829f87c56] <commit-message>
➜  webapp git:(50f6b9ebf) ✗ git bisect good
Bissection : 2 révisions à tester après cette (à peu près 1 étape)
[d763c0336e13cbc91befbe853194dd077775e6cd] <commit-message>
➜  webapp git:(d763c0336) git bisect good
Bissection : 0 révision à tester après cette (à peu près 1 étape)
[c1af98fc24e031d0d87a567caa7615c0c2c3d66c] <commit-message>
➜  webapp git:(c1af98fc2) git bisect bad 
Bissection : 0 révision à tester après cette (à peu près 0 étape)
[026f9bf37555815c0efc9dfb16e90473faacf48f] <commit-message>

Une fois la dernière étape passé, git-bisect vous donne l’identité du coupable :

git bisect bad
026f9bf37555815c0efc9dfb16e90473faacf48f is the first bad commit

Pour terminer, nous pouvons revenir à l’état initial du code (HEAD)

git bisect reset
Also on:

First, check that your development machine has both docker and docker-machine installed

which docker
which docker-machine

Create a new droplet on Digital Ocean

docker-machine create --digitalocean-size "s-1vcpu-1gb" --driver digitalocean --digitalocean-access-token YOUR_DIGITALOCEAN_ACCESS_TOKEN invoiceninja-prod

Set up the right environment

eval $(docker-machine env invoiceninja-prod)

Run the container

docker run -d -e APP_ENV='production' -e APP_DEBUG=0 -e APP_URL='http://ninja.dev' -e APP_KEY='SomeRandomStringSomeRandomString' -e APP_CIPHER='AES-256-CBC' -e DB_TYPE='mysql' -e DB_STRICT='false' -e DB_HOST='localhost' -e DB_DATABASE='ninja' -e DB_USERNAME='ninja' -e DB_PASSWORD='ninja' -p '80:80' invoiceninja/invoiceninja

Retrieve your IP

docker-machine ip invoiceninja-prod
Also on:

Today on #indieweb-wordpress, I’ve been asked why, given my technical background, I did not used some of the Ruby based solution to jump in and try the Indieweb principles.

As a reminder, I (re)discovered Indieweb and POSSE a few days ago now, and even if I’ve been using Ruby and Rails as my main languages for almost a decade now, I choose to setup a new WordPress blog to play around with it.

There are a few reasons for this :

  1. Setting up a WordPress was a one-click task with my current host (gandi.net, thanks for asking)
  2. I read along the Indieweb wiki for a few days, gathering information about how it is supposed to be done, and why everyone should have their own website. In the wiki, most of the tutorials were WordPress based and it seems to me like a good place to start. To be completely honest I did not even noticed there was a Ruby page.
  3. Even if I do not like WordPress, I have to admit that the community around it is huge, thus, more chance to find every plugin I would need to setup my new home on the Internet
  4. I never said I’d stick with WordPress. More likely I am going to play around with it for a few, then find my way back home with a Ruby on Rails solution.
Also on:

Chaque semaine, je passe environ 6h30 dans ma voiture. Jusqu’à il y a peu, ce temps n’était pas mis à profit. Bien sûr je lançais Spotify pour me distraire mais j’avais tout de même la sensation de perdre un temps considérable.

Dans le même temps, ces dernières années, j’avais ressenti une frustration grandissante : je n’avais plus le temps de lire.

Je n’avais jamais prêté plus d’attention que ça aux audiobooks, l’idée de me faire lire un livre par un inconnu me semblait incongrue. Pire : j’avais peur de ne pas être suffisamment attentif et de ne pas parvenir à suivre le fil de l’histoire. Rester assis pour lire activement ou regarder une série, d’accord, mais pour écouter?

Pourtant, tous les enfants du monde aiment se faire lire une historie par leur parents avant de s’endormir. Pourquoi cela devrait-il cesser à l’âge adulte?

Sur recommandation de Johnny, j’ai créé un compte sur Audible pour tenter l’expérience en lisant écoutant un livre que je n’aurais probablement jamais lu : la biographie d’Elon Musk.

Non seulement ma curiosité concernant ce personnage impressionnant a été satisfaite, mais en plus j’ai pris goût à l’exercice. Mieux : mes trajets passaient bien plus vite et il l’est même arrivé de regretter d’être déjà arrivé à destination.

J’ai depuis écouté plusieurs autres livres, dont La semaine de 4 heures et Inferno.

Also on: