Menu Close

How I chased space invaders 17000kms far from home

Every evening before bed, I have this routine of watching Jay Swanson’s videos on YouTube.

One the recurring topic he is covering in his vlog is… Space invaders!
If you live in Europe, I bet that you have already seen these mosaics on the wall of your city.

The streetartist who makes them is French and has invaded several cities around the world!

One remarquable thing about him is that he « gamified » his work.
Through the official Flash invader mobile app you can take pictures of the invaders you found and earn in-game points!

 

Chapter 1: How’s everything started

One day, I was wandering on Google streetview and randomly saw an invader in a Paris’ street. This got me thinking: what if I looked how the Flash invader app works and extend its features to Google streetview?

This way, anybody, anywhere would be able to play the game! Wouldn’t it be cool?

Chapter 2: Building a working prototype

I started by using a proxy to lookup what kind of requests the app was making.
In the past, I would have used Charle’s proxy for this but nowadays there are much better solutions like MITMproxy.

While inspecting the content of the request, I learnt a bit more about how the app is working.
In short, when you take a picture it’s making a request to a remote server with the following parameters:

  • The geo coordinates of the user
  • Some sort of user authentification
  • The compress photo that you just took
  • And on the backend the LTU technology (a French startup cocorico) is used for the image recognition

MITM proxy Interface

The way it works is actually quite clever, it means that you really have to be next to an invader to Flash it. You cannot just take a photo of one of them in a magazine and claim that you found it.

Once the data collected, the next step for me was to build an actual prototype. For this, I used Postman to replicate the query.

After hours of debugging, I eventually made it work!

YOU FOUND AVI_21\nCHAMPION! 🤘

Chapter 3: Making a Google chrome extension

Before working on this project, I never made any Chrome extension. So, it was actually a very fun way to learn how to code one!

Once again, I won’t dive too deep into the technical details. If you are interested, the sources of the chrome extension are open-sourced.

See it in action:

Note that installing and configuring this extension requires a little bit of technical knowledge. So, if you need more guidance, I will be very happy to help you configure it.

Conclusion

What I really wanted to empathize in this article is that I made this extension to promote the game and enhance it with new features.

In the second part of this article we will for example see how you can chase invaders that have been removed or dephased!

How to find your first clients as a remote freelancer? (2019 update)

Two years ago, I wrote this article about how to land your first job as a remote freelancer. After going through the same process again for a couple weeks, I felt like giving it an update was much needed.

TLDR, try to avoid as much as possible any situations where you will be in competition with a pool of other freelances. Instead, use your personal network of connections and remember that chance plays an important role.

But first thing first, let’s start by giving you a little bit of context about my current work situation. After spending 20 months working at the BBC, my partner and I decided to travel in Asia for six months. We are now based in Sydney, Australia and have a working holiday visa valid up until March 2020.

Things didn’t really work as expected

Interestingly, what worked for me in 2015 didn’t really performed as well as of today.

When starting to look for new missions I was quite confident that I would find a freelance job quite easily. Indeed, if you compare to 2015, I have now more work experience more recommendations and a larger skillset.

So where did things go wrong?

It’s not about how qualified you are

As a developer, one of the biggest struggles when applying for a job is to fight the impostor syndrome.

Rare are the companies that clearly acknowledge that “new tools, products and systems are always appearing” and that you cannot be good at everything. Hence the job ads that require you to have X years of experience with this or this technology and hence the complete nightmare for most of the junior developers. On top of that, as a freelance developer you might have the feeling that you already need to be a technology expert (given that your client won’t have the time nor the budget to train you).

Well, let’s be clear about all of the above: this is b****t. A lot (to not say most), of the successful freelance developers I talked to have started their career without being an expert with the technology that was asked.

⇒ “Fake it until you make it” is the way to go!

No alt text provided for this image

… It’s actually more about your work situation and timing!

Something else to not underestimate is your current work situation.
From experience, a lot of companies are looking for permanent contractors and an even greater number will also be looking for somebody who can work inplace (the infamous “no remote”).

No alt text provided for this image

To say it differently: Your geographic position and the kind of visa you hold matters a lot!

Finally, something I didn’t realize in the first place, timing and chance are big factors. I cannot recall how many hot opportunities went down because of X, Y, Z reasons.

…Which leads us to the next important question:

How to handle rejection?

One of the biggest learning I had as a BBC Solutions Engineer was resilience! Not everything is instantaneous, companies processes takes time and in the end what pays off is your patience rather than stupid stubbornness.

If a potential client stop suddenly replying to your emails (or is inconsistent in the way he deals with you) take it as a good thing: You would probably have never wanted to work for this company in the first place anyway.

My advice to succeed

Plant a lot of “seeds” 

Interestingly, client prospection is not a game where you will see the consequences of your actions immediately. So, to maximise your chance of success, your best shot is to try a lot of different things. Never get stuck!

To give you some ideas, here is what I tried out:

  • Get in touch with local umbrella companies.
  • Reach out to local Web agencies and startups.
  • Contact ex-colleagues and professional connections.
  • Use your personal network of friends.
  • Register on freelancer job platforms (CometMaltToptal…)
  • Add a bunch of potential leads on Linkedin.
  • Answer tons of classic job ads (on Seek, Indeed, Linkedin…).
  • Look for Twitter job posting.
  • Register on freelance communities on Slack or Discord (RemotiveBeebenchReactiflux…)
  • Attend local meetups (because meeting people in real life will often accelerate the process)
  • Send cold emails to interesting prospects found on Angellist
  • Extend your research to other remote jobs platforms. Here is an interesting list I found on Reddit.

Also remember, it’s not because one lead is promising that you should focus exclusively on it. It’s a matter of balance, give this seed enough time and resources to grow but at the same time, keep the ball rolling.

Conclusion:

Finding your first clients as a freelancer is hard. On top of that, if you are a remote freelancer, things might get even more complicated.

However, don’t loose faith. The sweet spot is what’s the most beneficial in term of time spent versus return on investment.

On a final note, I also wanted to empathize in this article that everybody is different. My situation is obviously unique so what might work for me won’t work necessarily the same way for someone else.

Found this article interesting and have something to say about it? Let me know in the comment section.

Also, I always keen to hear more about freelance missions. If you are or know somebody who is looking for an experienced frontend developer feel free to send me a DM.

Le principe du moindre choix pour les nuls

En ce moment, comme je voyage, j’ai un peu de temps à ma disposition. Du coup j’en profite pour approfondir certains sujets.

Or, depuis un petit moment, il y avait un domaine qui m’intéressait particulièrement : les maniements de cartes et le principe du moindre choix.

Ce sujet est complexe et pour être tout à fait honnête, je n’ai trouvé sur le net que peu de sites français qui expliquent de manière complète, claire et structurée de quoi il est question.

Ce cas de figure se présentant néanmoins très régulièrement il m’a paru important d’en parler.

Quelques rappels utiles

Déjà, commençons par quelques rappels généraux sur les probabilités au Bridge.

Les « tables de la loi » du jeu de la carte.

Si, comme moi, vous ne les avez jamais apprise par cœur c’est le moment de s’y mettre.

Cartes manquantes  

Partage    

Probabilités (%)

2 1 – 1

2 – 0

52

48

3 2 – 1

3 – 0

78

22

4 3 – 1

2 – 2

4 – 0

50

40

10

5 3 – 2

4 – 1

5 – 0

68

28

4

6 4 -2

3 – 3

5-1 et 6-0

48

36

16

7 4 -3

5 – 2

6-1 et 7-0

62

31

7

Bémol important : Notez que ces probabilités sont vraies au sens global (c’est à dire sur l’ensemble des répartitions). Sur des partages spécifiques, c’est le partage le plus régulier qui est le plus probable.

Pas de panique cependant, j’y reviens dans la suite ;-).

Il manque un honneur

Un autre sujet qui revient régulièrement sur la table (de bridge hehe) est lié au meilleur maniement dans le cas où il manque un seul honneur. Faut-il dans ce cas tirer en tête où bien faire l’impasse ?

Pour répondre à cette question, vous connaissez peut-être la règle des 7-9-11 :

  •      S’il manque le valet, il faut tirer en tête jusqu’à 7 cartes
  •      S’il manque la dame, il faut tirer en tête jusqu’à 9 cartes
  •      S’il manque le roi, il faut tirer en tête jusqu’à 11 cartes

Exemple d’application :

A R V 5 2

10 6 4 3

Ici, pour avoir le plus de chance de capturer la Dame, il faut ici tirer en tête As et Roi.

Il existe d’ailleurs un autre moyen de se retrouver ses probas: Vérifiez mentalement si l’honneur manquant devait tomber dans le cas où vous tirez en tête et où il se situe dans la main longue. S’il ne tombe pas, tentez l’impasse.

Bref

Dans le meilleur des mondes tout fonctionnerait parfaitement. Le truc, c’est qu’évidemment il existe des exceptions.

Prenons ainsi l’exemple suivant :

A 9 7 3

R D 4

Comme vous pouvez le constater, avec mon partenaire nous possédons 7 cartes et il manque le Valet. La règle des 7-9-11 énoncée ci-dessus suggère donc de tirer en tête.

En pratique cependant, voici ce qui se passe à la table:

  •      Vous tirez le Roi, à gauche on fournit le 5 et à droite le 6.
  •      Vous tirez la Dame, à gauche on fournit le 2 et à droite le 10.
  •      Vous jouez à présent le 4, à gauche on fournit le 8.

Faut-il tirer en tête ou bien tenter l’impasse au 9 ?

Autrement dit, maintenant que vous avez vu le 10 apparaître, est-ce que cela remet en question votre stratégie de démarrage (qui consistait à tirer en tête rappelons-le) ?

Et bien la réponse est oui (!), figurez-vous qu’il est à présent presque deux fois plus probable que le Valet soit à gauche (et donc qu’il faille tenter l’impasse). C’est une application directe de ce que l’on appelle le principe du moindre choix.

Le principe du moindre choix

Commençons par quelques définitions.

De manière générale :

A chaque étape de la réalisation d’un problème de probabilités, il convient d’intégrer dans le raisonnement l’information supplémentaire fournie. Ne pas prendre en compte cette information, c’est choisir avec l’incertitude complète initiale alors que celle-ci a été réduite.

Appliqué au bridge :

Présupposés:

  • Au moment de jouer la couleur nous ne disposons d’aucune autre information sur la distribution des mains adverses.
  • Lorsqu’un adversaire a le choix entre plusieurs cartes équivalentes il choisira de jouer ses cartes de manière aléatoire.

Principe du moindre choix :

Quand il manque deux cartes importantes accolées l’une à l’autre et que l’une d’entre elle est apparue à un tour précédent, alors il est plus probable que la carte manquante soit chez l’autre adversaire*.

Explications du principe du moindre choix:

Si l’on reprend notre exemple :

A 9 7 3

R D 4

  •      Vous tirez le Roi, à gauche on fournit le 5 et à droite le 6.
  •      Vous tirez la Dame, à gauche on fournit le 2 et à droite le 10.
  •      Vous jouez à présent le 4, à gauche on fournit le 8.

Faut-il à présent tirer en tête ou bien tenter l’impasse au 9 ?

Solution en appliquant « bêtement » le principe du moindre choix :

Après que le 10 soit tombé à droite, le principe du moindre choix nous dit qu’il est à présent plus probable que l’autre honneur manquant soit à gauche. Il faut donc faire l’impasse.

Solution détaillée :

Vous vous demandez peut-être ce qui se cache derrière le principe du moindre choix ?

Et bien, si l’on récapitule, au moment de décider quelle carte jouer en Nord au troisième tour, on a, à droite, deux distributions possibles.

  •      Distribution 10 6 sec (répartition 4-2) => Préférable de faire l’impasse
  •      Distribution V 10 6 (Répartition 3-3)  => Préférable de tirer en tête

Comme je vous le disais dans la section rappel, une combinaison spécifique de partage a plus de chance d’être régulièrement balancée (même si, pris au global, il y a plus de répartitions différentes 4-2 que 3-3).

Dans ces conditions, il est donc plus probable que le joueur de droite ait une distribution V 10 6 plutôt que 10 6 sec.

Alors pourquoi diable faudrait-il faire l’impasse plutôt que tirer en tête ?

Oui, Jackie Chan a lui aussi des problèmes avec le principe du moindre choix

Et bien, pour comprendre la solution, essayons de prendre le problème d’une autre manière:

  • Avec deux cartes, l’adversaire de droite jouera systématiquement 6 => 10 (100% des cas).
  • Avec trois cartes en revanche, au second tour il peut jouer le 10 ou le Valet (la théorie du moindre choix posant comme principe qu’avec deux cartes équivalentes l’adversaire tire random). Avec trois cartes il y a donc 50% de chance de voir la combinaison spécifique 6 => 10 apparaître et 50% de chance de voir la combinaison 6 => V.

Ainsi, vu qu’il est beaucoup plus « rare » de voir la combinaison spécifique 6 => 10 apparaître avec trois cartes (seulement 50% du temps) on pariera que l’adversaire n’en a que 2. C’est la raison pour laquelle on situe le Valet à gauche et on doit faire l’impasse.

Une autre manière de raisonner que j’aime beaucoup (merci David Harrari !) est de considérer les cas favorables versus défavorables.

Sur ce coup on gagne :

  • S’il y a V x à droite
  • S’il y a le 10 x à droite

En revanche on perd:

  • S’il a une combinaison V 10 x à droite.

Deux cas contre un, il est donc meilleur de jouer l’impasse.

Pour briller en soirée, le principe du moindre choix repose sur un théorème de statistiques bien plus large : le théorème de Bayes.

Le théorème de Bayes selon XKCD

Comme nous l’avons vu, ce type de problèmes est souvent très contre-intuitif et il est facile de se planter 😉

Exemples  d’applications:

De manière à être bien sûr d’avoir compris le principe, voici quelques exemples de mise en pratique:

A 9 6 2

R D 3

Vous jouez ici successivement le Roi puis la Dame. Au premier tour Est fournit un petit et au second il défausse le 10. Que faites-vous au troisième tour ?
Réponse: Ici il faut parier que le Valet est en Ouest et donc faire l’impasse.

A D 10 3

R 5 2

Vous jouez ici successivement l’As et le Roi. Est fournit un petit et le 9. Que faites-vous au troisième tour ?
Réponse: Cette fois-ci le cas de figure est différent. Il manque le Valet et le 9 qui ne sont pas des cartes équivalentes. Munie par exemple de Valet 9 4, Est n’a pas le choix au second tour. Vu que nous ne sommes pas dans une situation de moindre choix, il faut tirer en tête.

A R 8 4

 D 3 2

Vous jouez ici successivement l’As et la Dame. Est au premier tour jette le 9 et au second le 10. Que faites-vous au troisième tour ?
Réponse: Ici, comme nous voyons deux cartes importantes sur trois tomber il faut donc parier sur le Valet en Ouest et donc faire l’impasse. Notez aussi que si Est avait joué successivement 9 puis petit vous n’auriez pas eu d’autre choix que de tirer en tête.

D’autres exemples d’application :

La magie dans ce principe du moindre choix c’est qu’il s’applique à toutes les situations où il vous manque deux honneurs concourants. Voyez plutôt :

D V 9

 6 5 3

Vous partez de Sud vers la Dame qui se fait prendre par un honneur en Est. Une fois la main récupérée vous partez de nouveau petit en Sud, Ouest joue petit, que jouez-vous en Nord?
Réponse: il faut ici pariez sur le fait qu’Ouest ait l’autre honneur. Il faut donc jouer le Valet.

R 10 9

 6 5 3

Cette fois-ci, vous partez de Sud vers le 10 qui se fait prendre par le Valet. Une fois la main récupérée vous partez de nouveau petit en Sud, Ouest joue petit, que jouez-vous en Nord?
Réponse: le principe du moindre choix nous recommande de visualiser la Dame en Ouest il faut donc jouer le 9.

D 5 3

 V 9 4

Vous partez en Sud d’un petit vers la Dame qui est prise en Est par un honneur. Une fois la main récupérée vous rejouez dans la fourchette de Sud, Est joue petit, que jouez-vous en Nord?
Réponse: le principe du moindre choix nous recommande de visualiser l’autre honneur en Ouest il faut donc jouer le 9.

 

Les fausses cartes

Bravo, vous connaissez maintenant le principe du moindre choix. Votre formation de maître Jedi du jeu de la carte est presque terminée. Il nous reste cependant un cas à traiter: les fausse cartes (aussi appelées cartes trompeuses).

Pour comprendre de quoi il s’agit partons de l’exemple suivant:

A R D 9 7 3

6 5

Vous tirez l’As et à droite un honneur tombe (le valet par exemple). Comme nous l’avons vu, le principe du moindre choix vous recommande de visualiser le 10 à gauche (et donc faire l’impasse au second tour).

Sauf que! Si vous jouez avec un bon joueur qui lui aussi connaît ce principe, ce dernier va peut être essayer de brouiller les pistes.

Ainsi munie par exemple de la combinaison V 10 2 il peut jouer le Valet au lieu du 2.

Les 4 jeux:

A R D 9 7 3
8 4              ⃞        V 10 2
6 5

 

Alors, pourquoi Est est-il si méchant?

Et bien, mettez-vous à sa place. Assis en Est, vous déduisez rapidement que le déclarant va tirer en tête si vous présentez un petit au premier tour.

Votre seule chance de réussite est donc de jouer un honneur pour essayer de faire croire au déclarant qu’il est en présence d’une situation de moindre choix (et donc faire l’impasse).

Eviter les fausses cartes

Un bon moyen pour détecter les fausses carte est d’appliquer le principe suivant

Si l’honneur que vous voyez tomber, en étant la dernière carte du défenseur dans la couleur fait que la distribution est « normale » * alors le principe du moindre choix s’applique.

* une distribution normale est constituée au maximum de deux cartes d’écart. Par exemple: 2-2, 3-1, 4-2. Mais pas 4-1, 5-2 etc…

Autrement dit: imaginez que l’honneur qui vient de tomber chez un de vos adversaires soit sa dernière carte. Est-ce que dans ce cas la couleur est bien répartie? En fonction de la réponse agissez en conséquence.

Mise en pratique:

A R D 9 7 3

6 5

Ici, vous voyez tomber le Valet sous l’As au premier tour. De plus, vous comptez cinq cartes dehors.
Si le Valet était sec cela aurait voulu dire que la répartition est 4-1… Ce qui est très peu probable. Le principe du moindre choix ne s’applique donc pas et il faut tirer en tête.

A 10 7 6 5 4

R 8 2

Ici, vous voyez tomber le Valet sous le Roi au premier tour. Quatre cartes dehors. Si le Valet était sec cela aurait voulu dire que la répartition est 3-1. Ce qui en fait une répartition « normale ». Le principe du moindre choix s’applique et il faut donc faire l’impasse.

Récapitulatif:

D’une manière générale, quand vous êtes en attaque et qu’un honneur apparaît au premier tour

  • Commencez par vous demander si votre adversaire est capable de fournir des fausses cartes.
  • Si non, faite l’impasse
  • Si oui appliquer le principe des fausses cartes.

D’une manière générale, quand vous êtes en défense:

  • Si vous avez dans la main une combinaison V 10 x, cela ne coûte rien de fournir un honneur à la place d’un petit. Dans le meilleur des cas vous tromperez l’adversaire.
  • Attention cependant à ne pas voir des cartes trompeuses partout. Avouez qu’il serait dommage de donner bêtement une levée en détruisant une mauvaise répartition “naturelle”…

Le sujet des fausse cartes étant vaste et complexe (car faisant intervenir d’autres facteurs notamment d’ordre comportemental et psychologique) je ne vais pas m’attarder plus longtemps sur la question.

Si cependant le sujet vous intéresse, je vous recommande la lecture de cet article passionnant qui compare théorie et pratique dans le cadre des fausses cartes et du moindre choix.

Conclusion :

Au travers ce billet de blog nous avons vu ce qu’est le principe du moindre choix et comment l’appliquer. Je ne vous cacherais pas que l’écriture de cet article a été longue et qu’à plusieurs reprises j’ai bien cru m’arracher les cheveux tant le contenu trouvé sur Internet était parfois confus et/ou contradictoire.

Rédaction de cet article, allégorie.

Ainsi, si une partie de cet article manque de clarté ou si vous pensez avoir trouvé une erreur n’hésitez pas à laisser un commentaire, j’y répondrais avec plaisir.

Enfin, si vous avez des doutes sur l’application du principe ou tout simplement une question sur un maniement de carte je vous recommande vivement l’utilisation d’un logiciel comme Suiteplay (sur windows) ou bridge CCanalyser sur le Web et Android.

* Je vous ai traduit (et généralisé) ici la version proposée par Eddie Kantor : When the opponents hold 2 equally important cards and one has appeared on the previous trick, then take the finesse for the remaining important card.

Bibliographie :

http://www.bridge-chailley.fr/wp-content/uploads/2013/10/C079-Notions-probabilit%C3%A9s-1.pdf
https://en.wikipedia.org/wiki/Principle_of_restricted_choice
http://learngoodbridge.blogspot.com/2008/11/law-of-restricted-choice-lrc.html
http://dsbridge.fr/pages/techniq/maniements/AsRoi.htm
http://austinbridge.org/sbruce/lecture/RestrictedChoice.pdf
https://www.math.u-psud.fr/~harari/Bridge/art3.pdf
https://xkcd.com/2059/
http://www.peribridgeclub.com/pages/bridge/donnes/conseils-ron-klinger.html
http://terencereese.tripod.com/the_principle_of_restricted_choice.htm
http://www.bridgebum.com/restricted.php

Older Posts