Software crafter, digital punker -

LineageOS = ❀ (a step by step guide)

đŸ‡ș🇾 – Thurdsay, October, 10th 2019

Keywords: #LineageOS, #Cyanogen, #Android, #ROM, #AOSP

Protect your privacy, get rid of blobs with unknown-to-you behaviors, decrease the use of trackers, or keep your smartphone up-to-date to get security patches, or also postpone the replacing of your device by a newer one so as to be “greener”
 there are plenty of reasons to move your smartphone from Android (stock)to LineageOS (born from the ashes of Cyanogen).Here you can find a small guide with steps to follow.

Of course, here are only the steps I follow for my 5-years-old OnePlus One. You have to be cautious with your device and the things you do on it. Some steps or files may differ from a version or device to another. I won’t be responsible of course if you break or “brick” your stuff (having a bootlooping smartphone is funny but that’s all). The steps are also compiled in this LineageOS dedicated page. More details are provided also in this wiki.

Moreover I did not try yet other altOS (alternative operating systems) like /e/, GrapheneOS or Replicant. Feel free to have a look on these projects!

You should keep in mind developers cannot do whatever they want about the apps they create and you use. In most of cases, making softwares working with “old” operating systems is always seen as a “massive cost” for chiefs and managers. Capitalism and mass market make things worse: tech giants are more focused on releasing new products than keeping the “old” up-to-date. So please, help and back free and open source projects and people who want to make things more sustainable.

Step 0: Get OS, Google apps (or not) & recovery

The first step consists on getting the binaries you have to flash (i.e. install) on your device.

âžĄïž One of these magic things is, of course, the operating system for your device. Go to the LineageOS download page and select your device model (for me, OnePlus One, a.k.a. “bacon”). In the selected page you may see a lot of “nightly” builds: these versions are created each night, so choosing the last is not the best idea (e.g. because of possible stability issues or unfixed bugs).

âžĄïžïžïž Another step is related to the Google applications you want to add to your device (or not). In fact in the Android ecosystem it is quite complicated to run an app, get updates or install things without any amount of Google apps (the “Gapps”). For example the Google Play Services are almost essential, and clean your device of them may prevent you to get some apps.

To choose the amount of “Google apps” you want, go to the OpenGapps project. Then choose the architecture of your device, the version of the Android OS embedded in your LineageOS ZIP and the variant. For example in my case, I can choose ARM, Android 9.0 and “pico”. In this case I have the bare minimum to get the Google Play functionality.

âžĄïž Another thing to download is a custom recovery. The recovery is a dedicated bootable partition with very few features like cleaning your data, change the file system or flash components. In fact it allows you to install on your device the LineageOS version you want. For instance you can choose a TWRP recovery from TeamWin. I got my file here.

âžĄïž Finally you should also download the Android SDK (i.e. “software development kit”). It brings a lot of tools you don’t have to care with, except adb and fastboot.This toolbox is really useful if you want to tinker with your toy. Have a look on this page to download the SDK (see the “Command line tools only” section).

Step 1: Unlock the developer mode

By default your device has its developer mode turned off. You have to enable it if you want to use adb and fastboot commands. So go to your settings, “about the phone” field, then tap many times on the “build” number. If you tapped enough, a message should warn you have enabled the mode. After this step, go back to the new “options for developers” menu which has appeared, and enable the USB debugging option. Finally, run the following command:

adb devices

It should display the list of attached devices, with the name in the right column (here for me “device” and on the left a word with digits and characters (like “2a926c99”)). Note that I use a Linux-powered computer
 did I talk about privacy before? Things for macOS or Windows may be the same.

Step 2: Unlock the bootloader

The bootloader deals with the boot of your device (duh!) and loads the first programs to start. Depending to the device you use, it may be mandatory to unlock it. In fact some manufacturers lock them, so
 change that. Unlocking your bootloader will allow you to change your recovery and change your OS.

First, reboot your bootloader with:

adb reboot bootloader

Your device must restart in the fastboot mode, and display on the screen the “Fastboot mode” message. Note that adb and fastboot are available in the “platform-tools” folder of the SDK zip you got. Then unlock the bootloader with:

fastboot oem unlock

If it succeeded, it should display an “OKAY” message.Finally, install the recovery you got in Step 0, with:

fastboot boot RECOVERY_FILENAME.img

If it succeeded, it should display
 another “OKAY” message :)

Step 3: Flash LineageOS and Gapps

The web site of LineageOS is clear enough, so you can follow their instructions (Installing LineageOS from recovery), I won’t make dumb copy/paste. They use here the sideload feature. The way I choose is using the memory of the device to store the ZIP files, and make the install from the recovery.

âžĄïž You have to boot your device in recovery mode and format the data of your device (caches, system and data for example). It will erase all files and data your device contains. The recovery mode can be triggered with a combination of pressed keys you have to press during several seconds until the device restart (for my bacon, it’s power + volume down buttons).
Then, upload in your device the ZIP of LineageOS and the ZIP for the Gapps you downloaded before in step 0. To do so, run:

adb push /sdcard

adb push /sdcard

Then, from the recovery options, go to the “install” menu and choose the ZIP files you uploaded (first the system, then the Gapps). If the flashes succeeded, the device will restart to the new operating system you just freshly installed!

Step 4: Customize your device!

Once you followed the install instructions, your device will be fully functional. You can now customize it. For example, download the alternative store F-Droid from the web browser. Go to their web site, install the APK file and run the app! If you install F-Droid following this way, a security warning occurs telling you the app is not trusted. You can enable the “unknown sources” option to install the app.Be aware with this option which can be a security flaw if untrusted apps are installed, so disable it after.

From F-Droid you can download the Yalp app. Yalp allows you to download an app without using Google Play nor Google account. Useful isn’t it?

You can also install from Yalp (or F-Droid which is really another store, not a proxy like Yalp) plenty of apps respectful for your privacy. The web browser Brave, which tries to create another model for advertisement more fair and clear, and also block trackers. The Exodus privacy app, which scans in their cloud a lot of Android apps looking for trackers ans flaws, and show you the results thanks to their app. Then Ooni Probe, which tells you if web sites, services or social networks are filtered or blocked in the network you use. Fight against censorship matters, and knowing if your network is spied may be useful. P-R-I-V-A-C-Y I said. If you like Fediverse and decentralized social networks, and have a Mastodon account, get the Tusky app ;–) Twidere is also cool and rich. You don’t want to remember of your passwords? Keepass2Android is a good option :) And what if you want to see videos? NewPipe is a facade for YouTube ;–) About messaging, why not use Silence or Signal! For your mails K-9 is efficient enough. If you are looking for a navigation app, try OsmAnd why uses Open Street Map layers. You can also use the Tor Browser app to surf quite anonymously! If you use 2FA authentication, why not use andOTP?

Finally, why not encipher your device? This option protect your data, messages, SMS et other valuable details from unwanted access. The process to encrypt take some minutes, but privacy and security matter ;–)

Some things to know

You may encounter problems while flashing the recovery or the OS, or unlocking the bootloader. Sometimes with some devices you cannot unlock the bootloader.I had to make several attempts with different versions of Gapps and recovery to make my LineageOS booting and running.Once you succeeded in having a good configuration and a working device, make a backup of your files. Thus you will be always able to flash the components which worked in the past, it saved me a lot of time

Security, privacy, keep your things as long as possible
 it can be tricky to do that but the result worth it!

Do you like my publications? Buy me a beer or use something else ❀

Blog publications licensed under CC-BY-SA

Retours sur 6 ans dans une asso de devs

đŸ‡«đŸ‡· – mercredi 26 juin 2019

Mots clés : #Codedarmor, #Lannion, #Bretagne, #GDG, #VieDeDev

ArrivĂ© en Bretagne (Lannion !) en 2012 pour terminer mes Ă©tudes, je tombais sur une association de dĂ©veloppeurs rĂ©cemment lancĂ©e qui avait pour ambitions d’animer la communautĂ© des dĂ©veloppeurs du coin Ă  force de meetups, d’ateliers et d’évĂšnements et de favoriser le rĂ©seautage et le partage entre personnes de la tech. En 2013, je finis par rejoindre cette bande de geeks et ce pendant 6 putain d’annĂ©es. Yep, je venais de me lancer dans une belle aventure avec Code d’Armor. Retour lĂ  dessus, car j’y tiens trop đŸ„ł

La vie associative

D'abord des rencontres, beaucoup, avec certaines vraiment belles đŸ€. S’investir dans une association fait que l’on est toujours amenĂ© Ă  rencontrer du monde. Des gens qui viennent Ă  vos meetups, des curieux, allant du stagiaire qui dĂ©barque Ă  l’expert barbu dans son domaine. Mais aussi des officiels, comme des Ă©lus de la ville et de l’agglomĂ©ration ou des dĂ©putĂ©s qui s’intĂ©ressent Ă  ce que l’on fait et qui nous encouragent (merci Corinne, merci Eric). Aussi des rencontres avec d’autres associations comme les copains du FabLab de Lannion ou ceux du GDG du FinistĂšre FinistDevs. On se retrouve amenĂ© aussi Ă  Ă©changer avec des intervenants extĂ©rieurs connus nationalement voire internationalement qui viennent de loin faire une confĂ©rence chez nous. Et dans tout ça, de vrais bons potes đŸ».

Bon, aussi de la paperasserie, impossible d’y Ă©chapper. Recherche de subventions, demande de sponsoring, rĂ©unions, il faut savoir mouiller la chemise pour faire tourner la boutique. Les rĂŽles tournent, on essaye de toujours bouger et de se rĂ©partir les tĂąches 🔹.

On peut parfois compter sur certaines entreprises du coin pour nous soutenir, mĂȘme si parfois elles peinent Ă  masquer les autres qui brillent totalement par leur absence, bien trop nombreuses Ă  mon goĂ»t. C’est rageant, frustrant et pĂ©nible, mais c’est comme ça, l’associatif taquine parfois la politique, il faut savoir secouer les cocotiers pour que des choses en tombent, faire avec l’honnĂȘtetĂ© des uns et l’hypocrisie des autres. On peut avoir envie de baisser les bras, de laisser tomber. Mais on persĂ©vĂšre, toujours, et on s’adapte. Et des soutiens nous font continuer, et on les remercie ❀.

Les meetups

Code d’Armor c’est avant tout une histoire d’association d’irrĂ©ductibles bretons (et de au moins 1 normand, quand mĂȘme). On se force tous les mois Ă  faire des meetups, en variant les sujets techniques, ne s’interdisant rien, et dĂ©marchant des speakers de tous horizons. Et ça marche 🎉 !

Lannion est une petite ville, mais sur le plan quantitatif on y retrouve nettement plus de meetups que d’en d’autres. La frĂ©quentation de nos confĂ©rences est remarquable aussi, on arrive Ă  avoir des pics Ă  35 voire 40 personnes un midi sur un sujet, mĂȘme si plus rarement on tombe Ă  5 ou 10, avec un moyenne de 15/20 personnes finalement. C’est le jeu, on varie les propositions, le public vient s’il en a envie. En discutant avec les copains d’autres associations homologues on se rassure en voyant nos rĂ©sultats, on a de quoi ĂȘtre fier. La richesse est dans la diversitĂ©, et on estime que traiter une mĂȘme annĂ©e les thĂ©matiques de blockchains, time series, machine learning, containers et OS mobiles alternatifs apporte beaucoup pour tout le monde. Quand des acteurs locaux animent ces prĂ©sentations, c’est top. Quand d’autres viennent d’ailleurs, c’est encore mieux 👍 !

C’est intĂ©ressant aussi de voir comment ça fonctionne autre part. Dans des grosses villes les meetups marchent bien le soir aprĂšs le travail, et assez peu le midi. Les gens bossent en journĂ©e, partent plus tĂŽt pour le meetup et rentrent vivre leur vie. Chez nous c’était l’inverse. La frĂ©quentation le soir baissait et Ă©tait dĂ©cevante. En calant nos meetups sur la pause mĂ©ridienne, on vit la frĂ©quentation passer d’un pĂ©nible 10/15 personnes Ă  une grosse trentaine. Les autochtones prĂ©fĂšrent nous rejoindre le midi.

La communication

Que faire quand vous voulez vous faire connaitre par le plus grand nombre de personnes du coin sans forcément faire tourner des sextapes ? Comment gagner de la visibilité à moindre coût ?

DĂ©jĂ  un site web, merci Erwan ! Ensuite, un systĂšme pour lister les Ă©vĂ©nements. Au dĂ©but Eventbrite, puis afin d’harmoniser les outils des GDG, Meetup a Ă©tĂ© imposĂ©. J’estime avoir perdu au change. Une usine Ă  gaz, moins de donnĂ©es accessibles pour nous (alors que basiques !). La bascule de l’un Ă  l’autre nous a fait perdre du public, il fallait tout recommencer. Ensuite, cĂąbler l’outil au site web et le tour Ă©tait jouĂ©.

Le label Google Developers Group (GDG) aussi. Le mot “GOOGLE” en faisait fuir certains, mais en leur montrant qu’il n’y avait ni dĂ©vots ni prosĂ©lytisme, et qu’on avait surtout un gain de visibilitĂ© et de contenu, ça allait. À une Ă©poque on pouvait voir comment on se positionnait par rapport aux autres GDG, ça nous rassurait dans les moments de doute.

Ensuite, les affiches. On avait la chance d’avoir un bon graphiste dans l’asso (merci Erwan !) pour faire des affiches Ă  poser pour annoncer nos meetups. Puis il se mit en retrait, et je pris la suite. Je ne ferais pĂŽ carriĂšre dans ce domaine :-D Mais avec GIMP, Freepik et Flaticon il y avait moyen de faire des choses efficaces (et sur un malentendu, si on n’était pas regardant, pas trop moches !) 🎹.

Les rĂ©seaux sociaux aussi. Twitter et Google+. Oui, Google+. On y partageait des informations, mais l’audience Ă©tait assez faible avant que l’outil ne soit euthanasiĂ© par Google.

Enfin, la newsletter avec Mailchimp. Interface simple, efficace, avec possibilitĂ© d’avoir des mĂ©triques sur nos campagnes. On a eu des rebonds de frĂ©quentation grĂące Ă  une bĂȘte infolettre mensuelle. 📧

Les gros projets

On peut dire que dans l’associatif ce n’est pas la taille qui compte. DĂšs 2012, Code d’Armor avait repris un Startup Weekend Ă  Lannion, grĂące Ă  ça que je l’ai connu d’ailleurs. AprĂšs on n’a pas continuĂ©, trop contraignant, et de plus en plus lourd Ă  mettre en place đŸ„”.

Il y eu aussi les Ă©ditions de la FĂȘte du Libre, Ă  savoir Libre en FĂȘte en TrĂ©gor. Travailler de concert avec d’autres associations de tous poils, co-gĂ©rer le projet avec le FabLab, et finalement un Ă©vĂ©nement attirant plus de 700 personnes sur une journĂ©e avec de nombreux ateliers, stands et confĂ©rences. Une belle rĂ©ussite, on a de quoi ĂȘtre fier đŸ’Ș

Enfin le DevFest du Bout du Monde avec les copains de FinistDevs. Vous vous rappelez les irrĂ©ductibles bretons ? FaĂźtes travailler ensemble deux GDG et vous aurez un DevFest au bout du monde (littĂ©ralement) avec 350 visiteurs, une dizaine de sponsors, 40 confĂ©rences et ateliers sur 4 tracks en parallĂšle. Et finalement une belle rĂ©ussite qui fait plaisir ! Ca donne aussi envie de continuer. De faire encore mieux, plus grand, peut-ĂȘtre pas ailleurs. L’associatif finit parfois par ĂȘtre une histoire de politique, on fait avec ce que l’on nous donne ou pas.

Les vidéos

Il y eu trĂšs tĂŽt la volontĂ© de capitaliser sur ce que l’on faisait, avoir des traces de nos confĂ©rences. La dĂ©cision fut prise rapidement d’enregistrer et mettre en ligne nos confĂ©rences. Les 1ers essais furent sympas (par exemple), mais demandaient du travail de montage. On passait aussi par les lives de Hangout ou YouTube, mais la qualitĂ© n’était pas au rendez-vous et on subissait un rĂ©seau parfois capricieux (exemple). Ensuite on filmait, en best effort. C’était dĂ©jĂ  mieux, mais pas encore top.

Et derniĂšrement, on s’est Ă©quipĂ©, suite au DevFest entre autres. On gardait notre micro USB Yeti Blue et la webcam C910 de Logitech, et on ajoutait un splitter HDMI ainsi qu’une carte AverMedia ExtremeCap. DerriĂšre OBS sur un laptop Ă  8 Go de RAM et le tour Ă©tait jouĂ©. On tĂątonne encore sur la mise en forme, mais c’est dĂ©jĂ  mieux. Bon, les mĂ©triques de notre chaĂźne YouTube ne sont pas terribles, mais on vient de loin đŸ“œïž. Un bel exemple ici.

Les p’tits trucs en plus

En plus de la vie mensuelle de l’association, du travail de communication, la recherche d’intervenants et les gros projets en parallĂšle, il y avait d’autres choses qui pouvaient arriver. Parfois aider un hackathon du coin avec du mentoring, une autre fois s’investir dans un Startup Weekend voisin. Mais aussi organiser un hub pour le Google Hash Code, animer des I/O Extended, et avoir des membres aller outre-Atlantique pour la Google I/O et le GDG Summit. De temps Ă  temps avoir des personnes qui testent leurs confĂ©rences chez nous avant de les faire dans des gros rassemblements. Les annĂ©es se suivent, se ressemblent et sont finalement bien remplies. Une dizaine de meetups par an en moyenne, de temps un temps un cod’apĂ©ro, et une grosse variĂ©tĂ© de sujets.

Et maintenant ?

En regardant dans le rĂ©troviseur, en pensant Ă  nos moyens humains (un noyau dur de Ÿ personnes) et Ă  notre situation gĂ©ographique, on a de quoi ĂȘtre fier de nous. On se dĂ©carcasse et ça change tout. On arrive Ă  braquer les projecteurs sur notre TrĂ©gor et Ă  faire des choses.

Mais maintenant, je dois bouger, pour raisons familiales. Je garde de supers souvenirs, et j’ai gagnĂ© des bons potes À voir maintenant ce que je ferais, mais je vois dĂ©jĂ  qu’il y a de quoi faire Ă  Toulouse entre le GDG et le Capitole du Libre. Quand on est un animal associatif on trouve toujours un endroit oĂč creuser, pour que je m’arrĂȘte ce n’est pas gagnĂ©. En tout cas, merci les copains et kenavo ! 👏

Et si vous avez du temps, n’hĂ©sitez pas Ă  voir ce que eux ou leurs boites font :) Je pense Ă  Marc, Samuel, Pierre, SĂ©bastien et Kristal, Nicolas et DC Brain, mais aussi Eric, Erwan ou encore Sylvain et CĂ©dric avec Saooti.

Do you like my publications? Buy me a beer or use something else ❀

Blog publications licensed under CC-BY-SA

ÂżLibra, la revoluciĂłn?

đŸ‡«đŸ‡· – mardi 18 juin 2019

Mots clés : #Libra, #Facebook, #cryptomonnaies, #blockchains, #Librem

Ca y est, un nouvel (Ă©niĂšme) acteur dĂ©baroule dans le monde des cryptomonnaies : Facebook avec Libra ! Étant pas mal intĂ©ressĂ© par ce domaine, j’attendais ça depuis un moment. Je ne suis ni expert ni Nakamoto, mais j’ai pas mal d’espoir dans ce genre de projets de barbus. Finalement c’est ce 18 juin que la cryptomonnaie du gĂ©ant du web a Ă©tĂ© annoncĂ©e, 79 ans aprĂšs l’appel du GĂ©nĂ©ral De Gaulle, mais ça n’a rien Ă  voir. Le white-paper et les annonces ont Ă©tĂ© faites, alors regardons tout ça EDIT : Au 14 octobre 2019, PayPal, Visa, Mastercard et eBay font partie des entreprises qui quittent le projet. Plus de dĂ©tails sur cet article de Ars Technica.

0 — Le contexte

Être disruptif, favoriser les Ă©changes financiers, se positionner lĂ  oĂč les banques sont absentes, rĂ©soudre miraculeusement les problĂšmes des cryptomonnaies actuelles qui rencontrent des Ă©cueils concernant leur stabilitĂ© et leur gouvernance. Bon en mĂȘme temps avec Bitcoin et ses forks il faut avouer que l’on est bien servi niveau bordel. Tandis que des opĂ©rateurs de tĂ©lĂ©communication se lancent dans la banque, d’autres misent sur le Bitcoin (non ce n’est pas cool, oui c’est navrant). Certains comme Deutsche Telekom n’ont pas attendu et ont rejoint Hedera. LĂ  c’est une troisiĂšme option qui arrive, mettre en place une nouvelle cryptomonnaie (tant qu’à faire). Et cerise sur le gĂąteau, court-circuiter les systĂšmes capitalistes des banques usuelles je paraphrase l’introduction du livre blanc). On sent que Libra veut surfer sur la hype des cryptomonnaies avec des valeurs humanistes d’accĂšs Ă  l’argent pour tous avec une gouvernance dĂ©centralisĂ©e etc., enfin bref la mĂȘme philosophie qui a accouchĂ© de Bitcoin. Et peut-ĂȘtre aussi taquiner le cousin Chinois WeChat qui propose des transferts d’argent. Mais on va dĂ©chanter un peu par la suite ;)

1 — Qui derriùre le projet ?

DerriĂšre ce projet se trouve pas mal de monde, et du beau. Par exemple cĂŽtĂ© paiements on retrouve Mastercard, PayPal et PayU. CĂŽtĂ© services il y a eBay, Facebook, Lyft, Spotify, Uber... On peut trouver Ă©galement des opĂ©rateurs de tĂ©lĂ©communications avec Iliad et Vodafone. Est-ce Ă©tonnant de voir Xavier Niel dĂ©barquer ? Pas vraiment, un bon coup a peut-ĂȘtre Ă©tĂ© flairĂ©. On retrouve bien entendu des acteurs du monde des blockchains comme Coinbase ou Xapo. Et aussi des ONG et institutions universitaires ! Tout ce beau monde humaniste et dĂ©sintĂ©ressĂ© se regroupe dans l’organisation Ă  but non lucratif The Libra Association basĂ©e... en Suisse​. La monnaie est soutenue par une rĂ©serve d’actifs, dont au moins des dizaines millions de dollars des fondateurs, et ce afin de garder un cours stable. Vu les acteurs en place, on peut supposer avoir bientĂŽt des applications grand public. Vous pouvez avoir la liste exhaustive des acteurs ici, et les conditions Ă  remplir pour prĂ©tendre rejoindre le groupe.

2 — La blockchain

Elle serait lancĂ©e rĂ©ellement au 1er semestre 2020. D’aprĂšs le site web il va falloir se contenter seulement du testnet d’ici lĂ , c’est dĂ©jĂ  un bon dĂ©but pour jouer avec. La blockchain est une blockchain Ă  consortium / Ă  permission donc finalement privĂ©e. Tout le monde ne pourra pas faire tourner des noeud de validation sans accord en amont. Une hĂ©rĂ©sie pour les puristes... Personnellement je perçois ça comme un dĂ©voiement des idĂ©aux initiaux ayant donnĂ© naissance aux 1Ăšres blockchains. Si on centralise chez des acteurs donnĂ©s un systĂšme de cryptoactifs normalement Ă  dĂ©centraliser on n’est pas sorti du sable

Mais attention, Libra aurait pour ambition dans les annĂ©es Ă  venir de basculer en mode sans permission une fois la blockchain et son Ă©cosystĂšme lancĂ©s. La promesse est belle, mais elle n’engage que ceux qui y croient et il faudra ĂȘtre prudent quand Ă  la maitrise des noeuds du rĂ©seau. C’est bien beau d’ouvrir sa blockchain mais si le traffic est monopolisĂ© par les vĂ©tĂ©rans du projet on n’ira pas loin non plus.

On retrouve des promesses de confidentialitĂ© des transactions avec les Ă©volutions du protocole orchestrĂ©es par la Libra Association. Mais les limites arriveront face aux rĂ©glementations en vigueur, dit autrement les lois des pays. Devrait-on s’attendre Ă  une confidentialitĂ© Ă  plusieurs vitesses ? Autant rester sur du Monero pour se prĂ©munir de ces ambiguĂŻtĂ©s ;–)

Le papier est ici

3 — Les smart contracts

Petit nouveau cĂŽtĂ© programmation, pas de Viper ou de Solidity mais Move comme langage de programmation des smart contracts, fraichement inventĂ© pour renforcer des aspects liĂ©s Ă  la sĂ©curitĂ© de la blockchain et ses smart contracts. Ça peut ĂȘtre intĂ©ressant de dĂ©nicher des benchmarks histoire de voir oĂč les nouveautĂ©s sont. Visiblement il y a une volontĂ© d’avoir un langage de programmation avec des sĂ©curitĂ©s inhĂ©rentes concernant les transactions, les actifs voire la gouvernance. Clairement bien devant Solidity donc.

Les specs sont ici.

4 — Sous le capot

Dans sa conception pas de rĂ©volution visiblement, consensus de type Byzantine Fault Tolerant comme Bitcoin ou Ethereum mais pas d’implĂ©mentation avec du Proof Of Work. En mĂȘme temps ça aurait Ă©tĂ© aberrant d’avoir un consortium pour la validation mais avec du brute force pour obtenir le consensus. LibraBFT se base sur autre chose et visiblement du Proof Of Stake.

Le stockage des donnĂ©es se fait classiquement avec un arbre de Merkle. Par contre l’architecture de la blockchain serait diffĂ©rente :

Contrairement aux blockchains précédentes, dans le cadre desquelles une blockchain est un ensemble de blocs de transactions, la blockchain Libra est une structure unique de données qui enregistre l’historique des transactions et des états au fil du temps

Quelques détails ici.

Peut-on vraiment parler de blockchains finalement, ou ne serait-ce pas qu’un bon coup de marketing bullshit ? Je n’ai pas l’impression que l’architecture de ce registre distribuĂ© ne repose sur des chaĂźnes de blocs(comme Bitcoin, Ethereum, Monero etc) ou sur des graphes orientĂ©s acycliques (comme Hedera avec son Hashgraph ou IOTA avec son Tangle).

5 — Les actifs

Libra disruptif, oui et non. La valeur des tokens ne sortira pas de nul part, et pour assurer une stabilitĂ© (fiable ?) sera basĂ©e sur d’autres valeurs comme indiquĂ© dans le livre blanc : Contrairement à la majorité des cryptomonnaies, la Libra est entièrement garantie par une réserve d’actifs réels. Divers dépôts bancaires et titres gouvernementaux à court terme seront conservés dans la réserve Libra pour chaque Libra créée, afin de renforcer la confiance envers sa valeur intrinsèque.

On peut lire aussi que : [la cryptomonnaie] est soutenue par un rĂ©seau d’échanges concurrentiel pour l’achat et la vente de la Libra.

Si on regarde du cĂŽtĂ© de la rĂ©serve de Libra, il n’y a pas de secrets : apports par les fondateurs et investment tokens d’un cĂŽtĂ©, achat de tokens Libra en monnaies fiduciaires par les utilisateurs de l’autre. Donc oui, le projet tacle les cryptomonnaies actuelles en pointant du doigt leur volatilitĂ© Ă  cause des achats / ventes de tokens par les utilisateurs, mais c’est le mĂȘme principe est utilisĂ© ici (diffĂ©remment).

Dit autrement, on met en place un systĂšme financier alternatif pilotĂ© par un consortium, mais tout de mĂȘme adossĂ© Ă  des valeurs existantes. Libra fait donc du neuf avec du vieux, et se place en concurrent des systĂšmes financiers souverains. Cette solution rĂ©ussira-t-elle lĂ  oĂč d’autres ont Ă©chouĂ© ? Les rĂ©actions des gouvernements pourraient ĂȘtre intĂ©ressantes Ă  suivre.

LĂ  oĂč il faudra ĂȘtre vigilant est la gestion des actifs. Certaines blockchains par essence produisent mĂ©caniquement une quantitĂ© limitĂ©e ou illimitĂ©e de tokens, mais ici la Libra Association s’occupera de la production ou la destruction de ses actifs. On remet donc l’humain et les entreprises au centre des dĂ©cisions. À tort ou Ă  raison ?

6 — Les services

Il faudrait pour le coup regarder du cĂŽtĂ© de Calibra mĂȘme s’il n’y a presque rien Ă  se mettre sous la dent au jour d’aujourd’hui. DerriĂšre ce nom se cache une filiale de Facebook destinĂ©e Ă  garantir la sĂ©paration des donnĂ©es personnelles et financiĂšres, mais aussi pour proposer des services utilisant la Libra. On aurait ici le mĂȘme genre d’outils que MyEtherWallet pour la blockchain Ethereum.

Sauf que quelque chose ne colle pas. Le projet pose clairement que des obligations lĂ©gales existent, notamment pour Ă©viter le blanchiment d’argent ou les fraudes fiscales. Comment pourrait-on alors avec un cloisonnement si parfait pour pouvoir ĂȘtre en rĂšgle lĂ©galement (donc surveiller les Ă©changes financiers) tout en gardant Ă  part les donnĂ©es personnelles (trouver les personnes incriminĂ©es) ? Il y aura nĂ©cessairement Ă  un moment ou un autre des dĂ©pendances entre ces deux ensembles de donnĂ©es. Une confidentialitĂ© pour les uns, mais qui tombent vite pour les autres. Finalement la mĂȘme problĂ©matique que pour les messageries chiffrĂ©es : chiffrement de bout en bout pour les uns, mais backdoors pour les autres.


Clairement, moi qui aime le cĂŽtĂ© cypherpunk des cryptomonnaies je suis content de voir un poids lourd dĂ©barquer avec des gros acteurs histoire de mettre un peu plus le bordel. J’espĂšre vraiment que les lignes bougeront dans le bon sens, mĂȘme si je n’attends pas grand chose de Libra. Les idĂ©es sont belles, mais les valeurs initiales des blockchains et cryptomonnaies sont vite abandonnĂ©es.

Par contre, le problĂšme reste le mĂȘme : lĂ  oĂč on centralisait des dĂ©cisions dans des organismes Ă©tatiques on en vient Ă  centraliser dans un consortium. Ne choisirait-on pas ici la peste pour le cholĂ©ra ? Quelles sont les rĂšgles en vigueur au sein de cet ensemble d’acteurs ? Les intĂ©rĂȘts des uns s’arrĂȘteront-ils face aux ambitions des autres ?

Avoir un systĂšme de paiement mondial pour tous, affranchi de presque tout et en dehors des banques fait rĂȘver. Mais Libra n’a pas l’apanage de ça, d’autres cryptomonnaies Ă©taient dĂ©jĂ  lĂ , avec leurs problĂšmes certes. Il faudrait juger les services qui se baseront sur Libra. On pourrait obtenir une rĂ©elle plus-value avec ce projet. Mais on pourrait autant s’enfermer nous-mĂȘmes involontairement dans un systĂšme dĂ©jĂ  verrouillĂ©. Dit autrement, de nouveaux services pourraient arriver attirant de nouveaux utilisateurs / clients. A qui cela profitera-t-il ? Est-ce que sciemment Facebook n’est pas en train d’accroitre sa force de frappe et sa puissance ?

Pour les amateurs de science-fiction et de cyberpunk on commence vraiment Ă  se rapprocher de ces conglomĂ©rats tentaculaires qui sont partout, et souvent ça finit mal. On peut aussi voir les prĂ©misses d’une monnaie commune comme les crĂ©dits universels que l’on retrouve dans un paquet d’oeuvres de SF : une planĂšte, une devise. Et pis c’est tout. Mais on rĂȘve un peu.

Bref c’est sympa, excitant, mais ça a un cĂŽtĂ© faussement punk bon-chic-bon-genre. Pas d’emballement Ă  avoir pour l’instant, on peut dĂ©jĂ  se faire plaisir avec Ethereum et Monero.

Des liens utiles à lire au chaud au pied de sa ferme d’ASIC :

Do you like my publications? Buy me a beer or use something else ❀

Blog publications licensed under CC-BY-SA

A story of people, tech watch and koalas

đŸ‡ș🇾 Tuesday, June, 11th 2019

Keywords: #tech, #readings, #news, #VieDeDev, #learnings

Did you meet this moment where you were looking for a blog post you read about a topic but can’t find the hyperlink pointing to it? Did you ever ear about a new killer framework for your project but during a meeting were not able to get back its name? I did. From my point of view, developers should make technical watch (tech watch), share and save things they found, to avoid such situations. Let me explain why.

🌍 1 — Make tech watch to DISCOVER

People who have technical or creative positions (developers, architects, whatever you want) and also I think non-tech / non-creative people (project manager, team manager, etc.) should care about watch so as to discover things.

We are human (I hope) and by definition are curious: read articles or listen podcasts enables us to be more open-minded and to get rid of prism we have on some themas. By always crawling the same blogs we might be more narrow-minded or see problems and topics only with the same single point of view and horse blinders. For example “why should I parse, as a developer, an RSS stream about ecology? My job is not related to this theme because I work on backends, not with koalas, no need!” That’s a first way to react. However if I spend some time to consume ecology-related contents, I may get a new point of view about some subjects I know. “Koalas may die because of the global warming due to too much greenhouse gases made by the coal-powered plants built to feed our datacenter using my not-enough-optimized backend. Oh crap, how should I make my code greener?”

Discover new things is cool. Read content from unusual providers to remain curious is cooler. Look for RSS feeder, tech-related or not web sites, or blogs of people outside your scope. You may find interesting things you can directly or not use afterwards. A good exercise is to talk to colleagues with a job far-away from yours.

Some examples of websites about laws, regulations, hardware, games, scientific subjects: Ars Technica, NextInpact, Numerama or The Verge. You can also go to events like Pas sage en Seine and listen podcasts like these in Artisan DĂ©veloppeur.

🎓 2 — Make take watch to LEARN

Tech watch is not hopefully a story of RSS streams, publications or other things to crawl with a cup of coffee. Tech watch is also about practicing.

We have the chance with the job of developer to have a massive bunch of communities all around the world. These groups e.g. like Android User Groups, Google Developers Groups, Java User Groups, and communities built about frameworks or programming languages provide a lot of meetups, keynotes, codelabs, or coding dojo. Going to one of these events allows you to try new tools you might use, and also meet people. By gathering people around a topic for a noon or an afterwork, these communities make the ecosystem more dynamic and living. They can also set up big events attending hundreds or thousands of men and women who want to discover new subjects with keynotes, or satisfy their curiosity with noon’s quickies, or try a new framework during workshops.

Making tech watch by talking to people and practicing with colleagues is a good opportunity to be aware of the power or the efficiency of this or that tool. Companies who do not let their collaborators go to these kinds of events, or who do not set up internally such events, are blinded and out of the game. And they might kill koalas for sure. By acting like this they refuse to make their workers more skilled or efficient. Ask to your chief if you may find a slot in the agenda to make a workshop. If the answer starts by “useless”, “waste of money, not profitable”, “not enough time” or “it’s not your job”, it may be the time to go somewhere else. Sometime you can see those kinds of companies complaining about the lack of talents or workforce. Hey, software / doers / makers culture or not?

Have a look on DevFests (powered by Google without chains or gags) or Devoxx for example. You should also keep an eye on Code d’Armor (no koalas but incredible seagulls), Codeurs en Seine, DevFest du Bout du Monde, DevFest Nantes, FOSDEM or Libre en FĂȘte en TrĂ©gor
 Yup I make my own advertisement, but it’s my blog ;–) Communities may use social networks like Twitter and also Meetup to register their events. You can find here a Google Developers Group near you! You can also keep an eye on worldwide events like Apple WWDC, Google I/O or Microsoft Build.

🚹 3 — Make tech watch to GUARD

The last reason you should really make tech watch, and this argument should make your chief interested, is guarding. Guarding? Yep, guarding. Guarding from all crappy things which may come to burn your company, eat koalas or waste so much money. To my point of view developers are in the frontline of the tech ecosystem.

Thus if a critical flaw appears on, randomly, almost 100% of the sold CPU in the world, developers may be able to understand the huge quantity of problems which will fall. Other example, if a web giant is angry with another giant and removes its certificats from the store due to a misuse of user agreement, developers may be the most aware people and can warn their colleagues and chiefs about this problem which can be spread to all users. A last example, if a flaw has been found and perhaps with exploits on a library or a tool all projects of the company use, developers should be ready to evaluate the risk, to apply the patches and to warn. So let them enough time to read, check and react! These examples above are not invented, they were true facts (from Ars Technica, The Verge, and Tech Crunch). Thus if your chiefs do not understand the gain to make tech watch, talk to them including money. And with koalas.

Worried about to miss something? Have a look on CERT-FR, CVE, Google Project Zero or US-CERT.

đŸ“€ 4 — But how to deal with such amount of data?

Good question and I do not know the perfect solution. Bookmarks of your web browser are cool, but with too much references it will be a pain. Some tools like Pocket can be efficient but never tried with a large amount of documents. Using social networks to share content is a good idea, but choose the good tool. Some companies used places within Google+ to share data
 woops, Google+ closed. Sharing a spreadsheet? Ok but too much 90'.

Personally on my week-ends I implemented my own solution. A spreadsheet with its sheets exported to CSV, then parsed to HTML and JSON contents feeding my PWA with a Ruby web service. And a terminal so as to deal with the logic of my program without using a GUI. I had a lot of time to kill and it worked. Why not uploading the project on a server? Good idea.

As a developer you should make tech watch. It is the only thing you should remember here. You have to do it. Your boss must provide you resources to make it. But a good tech watch is not done behind your own desk. You should share things you found with your colleagues. Go to meetups, attend to events, talk with people outside your scope. By essence we work on a fucking living world where each day new tools to discover and new rules to learn appear.

So think ahead, discover, learn and guard. And save koalas ʕ â€ąáŽ„â€ąÊ”

Do you like my publications? Buy me a beer or use something else ❀

Blog publications licensed under CC-BY-SA

La galÚre du choix des speakers pour une conférence

đŸ‡«đŸ‡· – mardi 4 juin 2019

Mots clés : #DevFest, #CFP, #CallForPapers, #conferences, #VieDeDev

AprĂšs avoir organisĂ© la 1Ăšre Ă©dition du DevFest du Bout du Monde avec Code d’Armor (le GDG des CĂŽtes d’Armor) et les copains du FinistDevs (celui du FinistĂšre), j’ai dĂ©cidĂ© d’aborder le dur choix de la sĂ©lection des intervenants pour une confĂ©rence, car plusieurs façons de voir les choses s’opposent, les polĂ©miques se rĂ©pĂštent, et aucune solution n’est vraiment meilleure que l’autre

âžĄïž Savoir se lancer, et minimiser les risques

Je prends exemple ici du DevFest du Bout du Monde mĂȘme si finalement on retrouve cette problĂ©matique partout. Lorsque l’on dĂ©cide de crĂ©er la 1Ăšre Ă©dition d’une confĂ©rence, en plus de tout le travail de lancement du projet, on doit faire le choix des personnes qui interviennent pour des confĂ©rences, quickies ou ateliers, et un outil de Call For Paper (comme Conference Hall) fait gĂ©nĂ©ralement grandement l’affaire. Chaque organisateur vote mais se pose souvent les mĂȘme questions que ses collĂšgues : quelle stratĂ©gie adopter ? qu’est-ce qui ferait consensus ?

On pourrait miser sur les gros poissons, et dans l’IT ce n’est pas ce qui manque. En 2019 une entreprise du secteur qui n’a pas de Dev Rel / Dev Advocate / Dev Evangelist / Dev {insĂ©rez un titre qui claque ici} n’a pas tout compris Ă  la culture software. DerriĂšre ces candidats-lĂ  ce sont des entreprises qui rĂ©munĂšrent les intervenants et qui sont objectivĂ©s Ă  faire des tournĂ©es un peu partout pour partager voire Ă©vangĂ©liser sur un sujet, une techno ou sur le fait que c’est l’entreprise que-c’est-elle-la-meilleure-avec-des-paillettes. Et parfois on peut se retrouver avec ces rockstar speakers Ă  participer Ă  leurs tournĂ©es comme si on Ă©tait leur roadies en leur prĂ©parant la scĂšne et avoir la chance insigne de les avoir. Dans les faits le contenu proposĂ© par les intervenants est rĂŽdĂ© dans une majoritĂ© des cas, et il n’y a pas de regret Ă  avoir quand Ă  leurs prestations (ouf !). Mais parfois, on se dit qu’avoir telle ou telle entreprise reprĂ©sentĂ©e dans les confĂ©rences peut ramener davantage de monde et faire gagner l’évĂ©nement en visibilitĂ© (et en r€cettes) ; on peut ĂȘtre amenĂ© Ă  faire le choix de simplement profiter de son aura sans s’assurer d’avoir quelque chose de qualitatif derriĂšre. C’est con, mais pour se lancer on doit prendre des dĂ©cisions et ne pas faire des paris trop risquĂ©s pour assurer la viabilitĂ© du projet. Quitte Ă  avoir Jean-Rufus qui (re)parle encore dans un grand slideshow du fonctionnement du nouveau BullShitLayout proposĂ© dans la prĂ©-alpha-release d’une lib.

âžĄïž Savoir se lancer, mais miser sur le local

On peut aussi faire le choix du local pur-terroir-certifiĂ©-bien-de-chez-nous-100%-green. L’intĂ©rĂȘt ici est de mettre en avant des p’tits nouveaux, de chercher des talents ou des intervenant.e.s qui ont du potentiel et de construire l’aventure avec elles et eux.

Cette façon de faire a un bel avantage qui est celui de donner une identitĂ© rĂ©gionale Ă  l’évĂ©nement avec des thĂ©matiques pas forcĂ©ment abordĂ©es ailleurs. Ainsi on aurait, si toutes les confĂ©rences Ă©quivalentes faisaient ce choix, des Ă©vĂ©nements avec leur identitĂ© propre et faisant que le public se dĂ©place pour profiter du contenu plus ou moins original. Miser sur les talents locaux rĂ©sous un autre problĂšme qui est que, au jour d’aujourd’hui, si on prend les plus grosses confĂ©rences (voire d’autres plus petites aussi), on retrouve les mĂȘmes intervenants. Constamment. Pire encore, on retrouve les mĂȘmes sujets mais Ă  des dates et lieux diffĂ©rents (vous vous rappelez quand je parlais de tournĂ©es ?). De fait quand bien mĂȘme ce serait qualitatif, le paysage dĂ©jĂ  saturĂ© ne va pas spĂ©cialement faire de place aux nouveaux venus qui veulent tenter l’aventure. Dit autrement, si ta boite au gros capital ne te paye pas pour te dĂ©placer partout pour faire des confĂ©rences racoleuses, tu pourras au mieux te contenter des meetups du coin. N’est pas le U2 du dev qui veut nan mais oh. Les Stades de France du logiciel ne sont pas pour les keupons du coin.

Mais le problĂšme du “tout local” est que des confĂ©rences peuvent ne pas faire le mĂȘme poids que d’autres. Elles pourraient se retrouver malgrĂ© elles trop spĂ©cialisĂ©es sur un domaine n’attirant pas assez de monde, ou alors en concurrence frontale avec d’autres spĂ©cialisĂ©es dans le mĂȘme sujet mais avec plus de moyens. Miser sur le “100% local ou presque” implique aussi que le public ait Ă  se dĂ©placer exprĂšs, ce qui peut parfois ĂȘtre bloquant lorsque l’on habite sur la cĂŽte mĂ©diterranĂ©enne et que l’on veut aller Ă  une confĂ©rence en Hauts-de-France ou dans le FinistĂšre. Pourquoi aller au CongrĂšs National de l’Oignon Rouge Ă  PlougasnouĂ«t alors que je peux aller au Salon National de l’Oignon Ă  Paname ?

Quand bien mĂȘme cela pourrait marcher, il faudrait avant tout que les entreprises du secteur s’investissent. Pour certaines ĂȘtre sponsor n’est pas envisageable (💾) ou implique des process particuliĂšrement complexes (đŸ€Ș), pour d’autres envoyer des collaborateurs animer des confĂ©rences ne reprĂ©sentent pas d’intĂ©rĂȘt ni de retour sur investissement (💾💾💾). Curieusement ce sont souvent les mĂȘmes qui se plaignent de ne pas rĂ©ussir Ă  recruter des talents ou Ă  les voir s’en aller vers de plus verts open spaces („ლ).

Bref, proposer du contenu trop local rendrait l’évĂšnement trop
 local, il faut savoir ce que l’on veut. Pour Libre en FĂȘte en TrĂ©gor 2018 on a pris ce paris, il a Ă©tĂ© rĂ©ussi. Plus de 700 personnes en une journĂ©e avec ateliers, stands et confĂ©rences, une belle rĂ©ussite :–) On a appliquĂ© la mĂȘme stratĂ©gie pour le CafĂ© Vie PrivĂ©e 2018 de Lannion : un bar bondĂ© avec une bonne quarantaine de personnes, des confĂ©rences d’acteurs du coin, et de vrais bons retours.

🏁 Et alors dans tout ça ?

Je voudrais dire qu’il faut rĂ©ussir Ă  faire le bon compromis.

Pas celui qui sĂ©curise un projet qui n’a mĂȘme plus besoin de l’ĂȘtre car il est bien rĂŽdĂ© et reconnu. Pas un compromis qui ne rĂ©pond qu’aux lois sacrĂ©es des bilans sur tableur, oĂč on doit attirer des tĂȘtes d’affiche et des grosses boĂźtes pour faire venir un maximum de spectateurs histoire de s’assurer d’avoir des bĂ©nĂ©fices Ă  5 chiffres đŸ€‘. Non. Clairement pas. Surtout pas quand on retrouve les mĂȘmes confĂ©rences partout alors qu’elles ont Ă©tĂ© enregistrĂ©es plusieurs fois et mises sur YouTube.

Il faut faire un compromis qui satisfait Ă  la fois les organisateurs et le public, et ce n’est pas facile. Avoir des speakers de renom va Ă©viter aux personnes de faire des dĂ©placements trop longs : on fait venir les speakers reconnus auprĂšs des gens pour qu’ils en profitent, et il faut le faire. Ce que l’on fait parfois dans nos meetups de GDG ou autres user groups peut ĂȘtre refait ici : on fait venir des bons intervenants de loin pour les gens du coin. En plus, ça sĂ©curise le projet et, ouf !, ça rassure.

Mais il faut aussi laisser leur chance aux autres. Je ne parle pas de laisser 10% des slots disponibles pour les “petits” avec des quickies de 15 minutes le midi lorsque tout le monde mange, quand les “grands” eux ont 90% des slots toute la journĂ©e. Non. PlutĂŽt faire du 50–50. Il ne faut pas confondre l’égalitĂ© devant le sacro-saint CFP et l’équitĂ© entre les intervenants n’ayant de base pas les mĂȘme chances ni la mĂȘme visibilitĂ©. Quand on organise une confĂ©rence on doit proposer du contenu intĂ©ressant d’abord, et flatter l’égo des uns et des autres ensuite. Pas l’inverse.

Ca peut ĂȘtre couillu et risquĂ©, mais il faut tenter. Les GDG et autres users groups servent Ă  ça aussi : faire connaitre et tester des intervenants du coin pour ensuite les propulser sur des Ă©vĂ©nements plus gros, ou Ă©changer entre eux des infos sur des speakers pas encore connus d’autres rĂ©gions mais qui peuvent faire de belles choses. Du cĂŽtĂ© du DevFest du Bout du Monde, on a rĂ©ussi Ă  avoir 25% d’intervenants de Bretagne, 42% si on compte ceux venant de Nantes (troll spotted?). Pour une premiĂšre c’est pas mal dĂ©jĂ . Mais le choix ne fut pas Ă©vident du tout, on s’est bien pris la tĂȘte, sachant aussi que l’on se refusait de mettre en avant des collĂšgues. On ne voulait pas avoir des commandos de nos entreprises respectives dans le programme.

Bref. Que l’on soit organisateur d’évĂ©nements ou pas, on retrouve souvent les mĂȘmes remarques : des speakers de renom qui ont rĂ©pondu prĂ©sents 👍, et parfois un manque de speakers peu connus qui pourtant peuvent proposer de belles choses 👎. Pourtant il y a moyen de corriger ça. Faut juste du courage et de la curiositĂ©, et prend des risques.

Toi qui rĂąles d’avoir les mĂȘmes noms dans les confs, j’espĂšre que tu comprendras mieux la problĂ©matique. Mais toi qui organises ces confs, j’espĂšre que tu comprendras le rĂ©el problĂšme ;–)

Do you like my publications? Buy me a beer or use something else ❀

Blog publications licensed under CC-BY-SA

Pourquoi il faut tenter les Startup Weekends

đŸ‡«đŸ‡· – vendredi 22 mars 2019

Mots clés : #StartupWeekend, #startup, #VieDeDev, #innovations, #challenges

Depuis un moment une interrogation me restait en tĂȘte concernant l’associatif et les gros projets qui peuvent en dĂ©couler, Ă  savoir comment capitaliser a minima l’expĂ©rience acquise, et la restituer au mieux auprĂšs de qui veut bien s’intĂ©resser au sujet. Finalement, j’ai dĂ©cidĂ© de poser ici quelques billets, comme une sorte de retour d’expĂ©rience associative qui vaut ce qu’il vaut. Enfin bref j’ai un peu de temps et aujourd’hui je commence avec un projet qui date un peu : mon 1er Startup Weekend du cĂŽtĂ© orga de la Force.

Mais pourquoi un Startup Weekend ?

J’avais dĂ©jĂ  eu l’occasion de participer Ă  des startup weekends, mon 1er datant de 2012. A l’époque, une jeune association de dĂ©veloppeurs de Lannion (Code d’Armor) avait pris le pari de faire dans la ville une nouvelle Ă©dition. DĂ©barquant tout juste dans la rĂ©gion, j’avais tentĂ© l’expĂ©rience avec des camarades de promo et ce fut un vrai bon moment. Puis vinrent 2016 et 2017 oĂč Kreizenn Dafar et la:matrice avaient lancĂ© un autre Startup Weekend Ă  Saint Brieuc. Vu l’ambiance de ce genre d’évĂšnements, la diversitĂ© des participants et l’excitation produite par les 58h pour creuser une idĂ©e, ce fut une nouvelle fois des vrais bons moments mĂȘlant maquettage, prototypes, business, chartes graphiques, sondages et mĂ©langes d’odeurs de boisson Ă©nergisante et de choux renfermĂ© (miam). Les organisateurs de l’époque avaient formĂ© une foutrement bonne Ă©quipe avec une ambiance chaleureuse (ce qui se voyait en tout cas), et c’est un peu Ă  cause de ça que j’ai tentĂ© l’aventure. Pour ĂȘtre transparent, c’est aussi parce qu’en faire un Ă  Lannion Ă©tait devenu nettement plus complexe, dans le sens oĂč on pouvait difficilement mobiliser toutes les ressources nĂ©cessaires (mais c’est un autre sujet). On y avait pensĂ© avec Code d’Armor, mais c’était trop risquĂ© Ă  l’époque pour nous sur trop de plans. Et puis bon, il faut savoir prendre des risques et j’avais envie de me frotter Ă  cet exercice.

L’édition 2017

Du coup, printemps 2017, tentons l’aventure
 et dĂ©couvrons quelques marches Ă  franchir. Bon dĂ©jĂ , les rĂ©unions le soir Ă  Saint Brieuc quand on vit Ă  Lannion, ça pique, surtout quand elles se passent aprĂšs le boulot, m’enfin bon si j’avais signĂ© c’était pour y aller :) L’un de Ă©lĂ©ments les moins Ă©vidents Ă  apprĂ©hender Ă©tait la diversitĂ© des profils. Se retrouver (en tant que profil technique) parmi des comptables, facilitateurs, juristes, graphistes, entrepreneurs ou personnes baignant dans le monde fabuleux de la Starteup Nachione faisait qu’il fallait ĂȘtre capable de parler le mĂȘme langage
 et de comprendre les problĂ©matiques des uns et des autres qu’on ne soupçonnait pas. À cela s’ajoutait un ensemble de sujets en dehors de ma zone de confort comme par exemple la gestion du budget, les contrats de sponsoring ou la logistique. Mais finalement, vu la cohĂ©sion de l’équipe, c’était facile d’apprendre de tout le monde et de comprendre ces choses nĂ©buleuses basĂ©es sur des tableurs et des looonnngues rĂ©unions. Et finalement, j’ai gagnĂ© quelques potes ;) Une fois les prĂ©paratifs passĂ©s (je n’ai plus tout en tĂȘte, ça date un peu), place au grand jour ! Et lĂ  ce fut le pied (j’embellis un poil). À une Ă©quipe d’organisateurs rĂŽdĂ©s (sauf moi) s’ajoutaient des bĂ©nĂ©voles qui couraient partout, une logistique qui assurait, un facilitateur de talent
 bref on avait une bonne base. En plus de ça les coachs et les membres du jury avaient rĂ©pondu Ă  l’appel, et nous avions rĂ©ussi Ă  l’époque Ă  avoir un large panel de coachs pour toucher un maximum de sujets. ComptabilitĂ©, droit des affaires, banques, entrepreneuriat, communication, ressources humaines
 ça brassait large, et ça a servi aux participants. Coup de bol, les planĂštes devant ĂȘtre apparement bien alignĂ©es Ă  un moment, Cyril de Sousa Cardoso avait rĂ©pondu prĂ©sent pour aiguiller les Ă©quipes et les inspirer avec un talk trĂšs riche. Et ça, ce fut bien cool. De mon cĂŽtĂ©, je faisais partie du groupe ayant le titre pompeux plein de galons de “mentor”. Avec une Ă©quipe sous mon aile, je devais m’assurer que celle-ci puisse profiter de l’évĂ©nement et se faire plaisir tout en Ă©vitant de se planter (trop salement). GĂ©rer les conflits internes, les aider Ă  creuser leur projet et concevoir leur service, les conseiller et les voir se planter (c’est le jeu) sur le week-end fut aussi riche que rythmĂ©, mais ce fut une bonne expĂ©rience.

Et du coup ?

Et finalement ? Finalement je ne regrette rien, ou alors j’ai oubliĂ© (U_U). J’ai autant appris de mes collĂšgues aux profils techniques que des autres, et c’est une trĂšs bonne chose. D’ailleurs, on devrait ĂȘtre vigilant Ă  sensibiliser les gens aux problĂ©matiques et façons de faire des autres mĂ©tiers avec lesquels on peut interagir, cela rend les choses plus humaines, et on Ă©vite d’avoir des oeillĂšres. Être avec des mentors, des coachs et des jurys donnait des conversations gĂ©nĂ©ralement riches et utiles pour la suite. Une chose chouette aussi Ă  voir, c’était que ces derniĂšres Ă©ditions ont permis Ă  des participants de se lancer aussi dans l’aventure en faisant leurs propres Ă©vĂ©nements (Ă  Caen et Angers par exemple). Un regret quand mĂȘme concerne la participation des Ă©tudiants de la rĂ©gion, elle aurait pu ĂȘtre plus Ă©levĂ©e, mais ça c’est une autre histoire. On aurait aimĂ© aussi avoir le soutien d’entreprises de la rĂ©gion, certaines nous ont soutenu, d’autres n’ont jamais daignĂ© rĂ©pondre
 une autre histoire ça aussi. On peut aussi souligner que trop peu osent encore continuer aprĂšs, comme si la prise de risque n’était pas encore ancrĂ©e chez nous. Je ne peux que conseiller d’aller au moins une fois Ă  un startup weekend en tant que participant. Quel que soit son profil (technique, business, design ou porteur de projet), on apprend pendant 58h autant des autres que de soi-mĂȘme. Visions de choses, buts Ă  atteindre, contraintes, besoins, ou encore travail en Ă©quipe, gestion du stress et des relations humaines, mĂȘme si finalement son projet n’aboutit pas, on ne repart pas sans rien. Et quand bien mĂȘme son projet ne finit pas sur le podium, rien n’empĂȘche de continuer et de se lancer, car ce week-end aura permis de faire avancer les choses. On gagne capitalise sur diffĂ©rents Ă©lĂ©ments et on repart avec des souvenirs, des goodies et des idĂ©es plein la tĂȘte ! CĂŽtĂ© organisateur, c’est une chose Ă  faire aussi. On s’aperçoit de l’audace et des capacitĂ©s d’imagination et de prise de risque des participants, et ça fait plaisir Ă  voir. On travaille aussi de concert avec diffĂ©rents interlocuteurs permettant d’avoir un bon aperçu du tissu associatif et Ă©conomique local, des ambitions de chacun et des clivages politiques parfois imbĂ©ciles n’arrangeant pas les choses. Et finalement, quand on a un noyau associatif dur qui veut aller loin dans son projet, on finit par faire un bel Ă©vĂ©nement !

D'ailleurs, le week-end du 29–30–31 mars aura lieu la 4Ăšme Ă©dition du startup weekend de Saint Brieuc, et il reste encore des places ! Si vous hĂ©sitez encore, vous pouvez voir les photos des derniĂšres Ă©ditions ;)

Do you like my publications? Buy me a beer or use something else ❀

Blog publications licensed under CC-BY-SA

Tapster — Robot as a Service đŸ€–

đŸ‡ș🇾 – Tuesday, August, 28th 2018

Keywords: #Tapster, #automation, #robots, #DIY, #VieDeDev

Disclaimer: I have no stocks in Tapster Robotics, Inc. and I wrote this article because I contributed to a project in my personal spare time which to my mind must be more known. I had the chance and the great opportunity to contribute to a free and open source project: the Tapster robot designed by Tapster Robotics, Inc. Because it was rich and exciting, I wanted to write down the experience I had with this project. I won’t talk about the robot’s initialization, but this wiki page is clear and effective.

1 — First thing, why such robot?

When I got my new job, I made some researches about the state of the art of automation and tests tools, quite useful for us — developers. I found a strange but fun project (mainly thanks to this article): a real robot which was able to tap on smartphones screens. The project was also free, open source and open hardware (wow!) and we could be able to build a new one using 3D printers. However I found something was missing. Basically the robot was driven by a Node.js server which receives HTTP requests, but there were no clients to use so as to send such requests, what a pity. Lucky strike I am a developer, so did I choose to work on apps in my own leisure time so as to enrich this project. Second lucky strike, in my team at Orange Group, we have to create tools in order to test and validate innovative products and services, and I succeeded later in introducing this robot in my team. Here the fun starts!

2 — The core of the bot, it’s server

The basic features of the robot were cool yet. If we dive in the legacy GitHub repository (or this one) we find several basic features such defining 3D position of the robot’s finger, changing its arms angles, tap on coordinates
 The problem was the missing of other types of moves we might need for testing purposes. Thus the robot’s server was upgraded with new features: tap several times on a point, double tap, make swipes, tap on random points or draw patterns. The new server was used as a base for the following clients.

3 — {AT | T} Driven Development

When you are worried about the quality of your product, you may set up some processes like ATDD (Acceptance Test Driven Development), TDD (Test Driven Development) or BDD (Behavior Driven Development). If we focus on ATDD or TDD, we can find powerful and efficient tools to write tests. If we are looking for acceptance tests Robot Framework does the job. If we want instrumented tests for mobile apps we can use UI Automator / Espresso, Selenium or Appium. And for unit tests you can get a lot of libraries like JUnit. The thing is Robot Framework uses third party tools (guess what? Appium for example) to process tests on mobile apps. And what if this framework was able to deal with a Tapster robot? Challenge completed, keywords have been implemented. They provide to people in charge of tests several routes to the robot’s API so as to make gestures on apps. And when if we combine these keywords with Appium’s, the level of abstraction allows to make the robot interact with the app-under-test easier. New features have been added like stress taps and stress swipes (useful for monkey tests) and interactions with UI widgets using their ID, texts or Xpath. In other words these keywords helped a lot.

4 — Automation is good, mostly with scripting

DevOps is a nowadays well-known process improving the way of working and the communication between the developers team and the ops team. In order to automate all the tests, integration and validation steps for a product, Jenkins is generally used. One of its benefits is the ability to trigger scripts, e.g. written in Python, so as to executed tasks. Because we wanted to use the robot (i.e. send HTTP requests to its server) without additional glue, a Python client has been implemented. People want to have an interactive mode? No problem. Some of them want to execute always defined commands? Implemented. With this efficient scripting language and the Jenkins scheduler it was possible to automate interactions on a smartphone using the robot.

5 —Think to your colleagues, think GUI...

OK I am a developer so do I work using GNU/Linux-based OS and the console is one of my best friends. But you may have colleagues who are not developers, and they do not use console-based softwares at all, only tools with a lovely and shiny graphical user interface. In addition if I want to animate showcases, graphical clients are sexier. For these reasons Android and Web apps have been implemented and they provide a handy use: to drive remotely the robot through Wi-Fi connections ; quite useful if your computer and the robot are in a corner while you talk to attendees, or drink a pint of beer behind a kakemono.

6 — Hey bot!

Someday I was bored to always trigger the same commands so as to test the features. It was quite annoying to make always the same moves (that is the reason why robots have been created, haven’t they?) and a idea appeared: and what if an assistant was integrated inside the Android app? What if I were able to
 talk to the robot? So let’s go to implement an assistant, but which one? For sure Google Assistant
 Joking! The chosen one was Snips. Snips is an off-the-grid solution of assistant implementing both ASR (Automatic Speech Recognition) and NLU (Natural Language Understanding). Nothing is done in a foreign cloud you don’t own, in fact nothing is done in a cloud. Operations are proceeded locally, thus the solution is respectful of your private life. You can define several intents for your assistant, train it and also trigger actions. Once defined you just have to download the assets and use the binaries (dedicated to your platform) in order to process your voice and make the match between what you said and what thing should be done. The solutions is quite incredible, and you have a high degree of customization making GAFAM’s solutions not so exciting. After having defined the french and the english assistants, they have been integrated to the Android app, and the result is quite fun :–) (if you understand french, see this video).

→ And so what?

This project is amazing. Firstly the model 2 of the robot is free, open source, open hardware and not expensive to build. Licenses in use are MIT and BSD 2-Clause, and several forks (still-alive-or-dead) exist. Secondly even if the model 2 is not enough for you, you can improve it to your needs or use another model: the Tapster Sidekick (see this video, this one and this). Then, the robot helped for certain test cases. In fact common testing softwares can fail to trigger events (tap, swipe, 
) on secured elements like SIM card-displayed-widgets. With more and more secured apps we might need hardware-based tools to complete tests and enhance the quality workflows.

But to my mind a tricky part about the robot is the calibration. Indeed the robot is agnostic: it doesn’t care about the model of smartphone you are using (or tablet) or its OS. In fact if you say to the robot to tap to (x,y), it will tap to (x,y). That’s all. (x,y) might be a point outside the screen, or a different point you want to click on. That is the reason why you have to calibrate the robot according to a device model, and that point has also been improved :–)

However a regret can remain about Appium.

Few years ago the version 1.4 of Appium was able to deal with a Tapster robot. But with the massive refactoring (based on axes and chain saws) of Appium with its version 1.5 the code dealing with the robot has been withdrawn, and its milestone deprecated. Thus it could be cool to integrate again the robot management in this tool
 who’s on it?

If you are looking for resources, feel free to follow these links:

Do you like my publications? Buy me a beer or use something else ❀

Blog publications licensed under CC-BY-SA

Privacy or sensitive data
 a list of tools to protect your Юѕѕ

đŸ‡ș🇾 – Friday, August, 17th 2018

Keywords: #privacy, #data, #censorship, #surveillance, #freedom

Sometimes friends of mine asked me why I am so interested in subjects and tools related to privacy, data and share. I answered them because they are quite fun themas, and make us be aware of the use of digital tools we have. They also make us looking for new solutions and solve hard challenges so as to reach both a kind of wahoo effect and innovation. But sometimes they asked me which tools they should use so as to protect their data or just secure their devices. When I answered them I forgot some details or cool softwares which could have help them. So here we are, this is a list of tools you can use, share and improve if you are worried about your privacy, your sensitive data or the protection of the use of your daily tools.

🌐 1 — Web browsing

You should choose free and open source web browsers who are not maintained by companies looking for profits.

Some of them are dedicated to privacy like Brave, Orfox (from the Guardian Project) or Firefox Focus. Others can possess dedicated extensions like Firefox or are already configured like Tor Browser. But the browser is not enough, you have the right to define another search engine like Qwant or DuckDuckGo! Such engines do not contain trackers and do not use for example your location in order to provide to you the best list of sushis bar for the dinner you have around you. The user experience is a bit degraded, but it is a question of search request after all :)

🚀 2 — Networking

Use safe browsers is a good idea. but what if the network you use is public or cannot be trusted? What should you do if you are using for example Wi-Fi hotspots?

You can still use TOR: with its onion routing and its shiny hammer, you may have a more secure but a slower connection from your device to the destination server. Be aware in this case the final layer of your onion can betray you, and sometimes computers can be confiscated for legal reasons. You can still use some VPN solutions like ProtonVPN and OpenVPN which make harder the read of your connection payloads. Another fun tool for Android and iOS powered devices is OONI probe: a kind of probe which checks if censorship has been implemented in the network you use. Beware the probe collects evidences of censorship by checking connections to certain websites which can have their content regulated or forbidden (like porn). Measurements data can be collected and available on this web page. DNS configuration can be changed to prevent your web navigation of being blocked: Quad9, Google, OpenDNS, Cloudflare, FDN, FreeDNS... no need to keep the default one!

📡 3 — Web tracking

There are a quite big list of add-ons to plug on your favorite web browser so as to check whether a web site is tracking you or not. Collect of data, locations, configuration of your device, cookies, JavaScript scripts, redirections, profile creations, all those boring things which help companies to earn money and define their audience can be blocked.

For example you can find for Firefox several plugins like Kimetrack, Privacy Badger and No Script. They allow you to disable third party scripts which are not useful for you. They give you also a lot of details about the trackers the pages may have.

💈 4 — App stores

For some operating systems like GNU/Linux and Android, we can use alternative app stores to get applications and other software. Even if some of them are not verified by the OS owner (e.g. with Google and its Google Play), alternative stores can bring to light free and open source applications respectful to your private life. They possess also applications which do not apply to the rules of the official store owner, rules which can be very boring for developers. But with these alternative stores, it will be your job to trust the app and not to complain the bad behaviors they can have on your device (malwares are spreading a lot within Android ecosystem because of those stores).

Did you know for Android F-Droid and Yalp? No? Time to move and try :)

💿 5 — Operating systems

The first thing to change if you are worried about your privacy is the operating system (OS) you have on your computer, smartphones, tablets or whatever you use. Avoid the use of black-box OS like Windows: if you cannot see what it is doing, do not use it.

For computers, GNU/Linux based OS are numerous: Ubuntu (not a big fan but it’s a start), Debian, ArchLinux (if you have a beard) or Gentoo (if you have an Albus Dumbledore’s white beard and a pointed hat). There are other systems dedicated to privacy and private life protection: Qubes OS, Tails or PureOS for examples. You can replace your smartphones and tablets OS based on Android by LineageOS (a fork of Android) or eelo (a new starting project). You must keep in mind if you are not using the official OS of your device, you may have security fixes and bug patches later than others or never...

And what if I bought a computer with such OS instead of installing it? Have a look on Minifree! They sell laptops with preinstalled GNU/Linux OS and free BIOS certified by the Free Software Foundation. Check their website, you may discover a laptop matching your needs :)

📬 6 — Messaging

Instant messaging, SMS, voice chats, emails... Who owns the apps you use daily? It might be mainly Google (Gmail, Hangouts), Apple (iMessage), Microsoft (Skype, Outlook) and Facebook (WhatsApp, Messenger), thus companies who must be interested by your data.

Have a look of enciphered SMS with Silence, and encrypted communications with Signal. Telegram is not so evil, but is concerned by political issues... Did you notice the chat app used by some of Mr Robot’s characters? It’s Wickr. This web site is able to help you to choose the most suitable app for you. “And what about my emails” do you think? Have a look on ProtonMail.

🔧 7 — Daily tools

Look deeper in the tools you use daily on your computer or your smartphone: you may see things you can replace by free or open source or privacy-respectful versions.

Have a look on softwares made by Cozy Cloud and Framasoft. Need to store your passwords or looking for an efficient software which can build for your very strong credentials? Why no... Keepass! Your device contains pictures of your kids, contact of your lover, or your personal tasks and thoughts of the day. Did you think to protect them with encryption? Plenty of operating systems provide such tools in their settings, move on! You can also have a look on VeraCrypt. If you want to hide information with pictures or sounds, thus use steganography and go to DeepSound and SilentEye websites. Yep, Mr Robot again :)

💰 8 — Payment

OK this part is far less feasible because of the laws of countries and all the bullshit you can see in not specialized press. Nevertheless if I want to talk about privacy, I cannot miss to introduce cryptocurrencies.

When you buy something on the Internet or withdraw money using fiat currencies (e.g. USD, EURO, YEN, ...) you leave traces for your bank and it can be very useful if your payment card has been stolen or pirated: block the card, cancel transactions, alert you in case of strange moves. We can read several things about cryptocurrencies: they are gorgeous, they can make you earn a lot of money and perfectly anonymous. Please stop now. This is not true at all, but some cryptocurrencies like Zcash and Monero are anonymous (a bright article here): if you make a transaction, no one can find the sender (you) and the receiver. For these two, the side effect is transactions cannot be removed, because they are stored in a blockchain, but that’s another story.

đŸ•” 9 — Security

Did I say the previous parts were tricky? This one is harder. If you want to protect your privacy, data and your private life when you use softwares, you have to put your trust on them. But how to be sure the softwares, devices and network connections you use are safe? Keep in mind they can be spied, or contain flaws from where data can be stolen, or worse with backdoors and remote control system.

Hopefully there are some of tools you can use if you are skilled enough so as to check whether an app or a connection is clean or not. Have a look of the the Kali OS and the Metasploit framework, they are great tools to tests applications, OS, networks
 If you are able to break your target or exploit it, it means other people can do so. Feel free to test but respect the law about that 8-)

⛩ 10 — The most important: people

Honestly I did not find all these tools on my own. I discussed with friends and colleagues, and read organizations blogs. Thus if you want to protect your ĐŽss and keep your things safe, you should check the news of some serious and harsh groups, they can warn people if big problems occur.

I place here unordered groups like the Electronic Frontier Foundation, the Guardian Project, La Quadrature du Net, the TOR Project, the Open Observatory of Network Interference, Exodus Privacy, the Ministry of Freedom, the Free Software Foundation and April.

đŸŽâ€â˜ ïž TL ; DR — Conclusion

Privacy, data, private life, web uses
 we must be worried about them. We should ask to ourselves questions: what if my device is stolen? What if we have a massive data theft? What if we learn companies are spying us? How can we protect our devices as strongly as possible?

We have a lot of tools, applications, operating systems and devices. I just wrote here a small sample of them. Some of them may be Single Points of Failure so do not put all of your sensitive data in one medium. Free and open source worlds are far more convinced about privacy and private life than bg companies. Security and privacy protection make us create new solutions and help innovation. Hacktivism can bring to the light the bad behaviors of companies. People need to protect and defend their data and their private life, because damages can be massive in case of censorship, flaws or bugs. If your are not convinced, I advise you to read some great books: you might have another point of view after that: 1984 of George Orwell and 2084 written by Boualem Sansal.


Do you like my publications? Buy me a beer or use something else ❀

Blog publications licensed under CC-BY-SA

Et si on parlait de l’hypocrisie vis à vis des GAFAM et du libre ?

đŸ‡«đŸ‡· – jeudi 16 aoĂ»t 2018

Mots clés : #GAFAM, #libre, #opensource, #FLOSS, #tech

Cet article est Ă  considĂ©rer comme un billet d’humeur, et Ă  ce titre les opinions exprimĂ©es ici ne sont que les miennes. Mais je trouve pertinent de prĂ©ciser pour la suite plusieurs choses. Tout d’abord, oui je me considĂšre comme libriste, et partisan de l’open source. Oui, la vie privĂ©e, le partage et l’ouverture sont des sujets qui me prĂ©occupent. Oui, je suis aussi cette annĂ©e prĂ©sident d’un Google Developers Group (GDG). Si vous faites un blocage lĂ -dessus me considĂ©rant comme un dĂ©vot, inutile de continuer Ă  lire vous risqueriez d’avoir un avis nuancĂ© :) Sinon sachez qu’ĂȘtre dans un GDG n’engage Ă  rien, n’impose rien, ne contraint rien, et ne permet que d’avoir accĂšs Ă  beaucoup de contenus, et dans le cadre d’une p’tite association de dĂ©veloppeurs de Lannion comme Code d’Armor, ce n’est pas nĂ©gligeable. Ce billet d’humeur fait suite Ă  ces vagues d’hypocrisie institutionnalisĂ©es et un brin dĂ©magos qui concernent aussi bien les gĂ©ants du web que les solutions alternatives

( ‱‱)† Vade retro GAFAM

Ne nous voilons pas la face, il y a des bons et des mauvais cĂŽtĂ©s chez les gĂ©ants du web, et c’est un fait. Dit autrement, les avis butĂ©s et non nuancĂ©s hurlant au “diable Google” et au “cancer Facebook” sont assez risibles et tristes. Bim, c’est dit.

Que leur devons-nous, Ă  ces grosses entreprises AmĂ©ricaines ? Beaucoup de choses, mais pas tout non plus. Prenons l’exemple d’Apple. Ce membre de GAFAM propose des produits onĂ©reux, mais gĂ©nĂ©ralement efficaces, et faisant partie d’un Ă©cosystĂšme riche et cohĂ©rent pour l’utilisateur. Qui a dĂ©mocratisĂ© (sans inventer) les tablettes numĂ©riques proposant (enfin !) des bons produits ? Apple. Qui Ă©vite de tomber dans la facilitĂ© en limitant son catalogue de smartphones pour ne pas avoir Ă  proposer des appareils bas de gamme bons au rebus au bout de 2 ans ? Apple (pas seulement). Qui met en avant la protection de la vie privĂ©e de ses utilisateurs quitte Ă  avoir des dĂ©boires avec le gouvernement AmĂ©ricain ? Vous avez compris. Il y a certes une prison dorĂ©e et verrouillĂ©e pour les usagers, saupoudrĂ©e d’un peu de marketing bullshit, mais la marque de Cupertino a su rĂ©pondre efficacement Ă  des besoins. Passons du cĂŽtĂ© G des GAFAM. Sans chercher pour autant Ă  faire un catalogue des services de Google/Alphabet, il y a des Ă©lĂ©ments qui se dĂ©marquent dont des projets de X. Le projet Loon pour dĂ©livrer un accĂšs Ă  l’Internet dans des endroits reculĂ©s, le projet Wing pour d’autres modes de transport ou le projet AI, sobrement baptisĂ© pour l’intelligence artificielle. Alors oui, il ne s’agit pas ici de pure philanthropie. Google et Alphabet restent des entreprises, et les revenus de la firme de Moutain View sont essentiellement publicitaires. Mais il y a des efforts pour creuser diffĂ©rents sujets et faire avancer les dĂ©bats sur des thĂšmes qui finiront tĂŽt ou tard par s’imposer.

Je ne vais pas m’amuser Ă  faire une liste des contributions de tous ces gĂ©ants, ni de leurs dĂ©rives vis Ă  vis des donnĂ©es, de la vie privĂ©e ou de la coopĂ©ration avec des États, mais voici quelques Ă©lĂ©ments posĂ©s en vrac qui me font me poser la question suivante : Si nous devons bannir ces entreprises de nos vies, serions-nous prĂȘt Ă  jeter ces produits, ou ceux sur lesquels ils sont basĂ©s, ou encore les outils auxquels des contributions ont Ă©tĂ© apportĂ©es ? Je cite en vrac entre autres les librairies et frameworks Flutter, Angular, Polymer et React, le systĂšme d’exploitation Android, le navigateur Chromium, les langages informatiques GraphQL, Dart, Go et TypeScript, l’outil Kubernetes, TensorFlow et PyTorch pour l’intelligence artificielle, l’Open Handset Alliance, et Google Project Zero pour la sĂ©curitĂ© informatique.

On peut ainsi constater deux choses : nous devons beaucoup d’outils et de produits Ă  ces sociĂ©tĂ©s, certains vraiment formidables d’ailleurs, mais justement, ne nous leur en devons pas trop ? La question reste ouverte :–)

(╯°□°)╯Serment d’hypocrite

La raison qui me fait Ă©crire ce billet, est de voir l’augmentation de cas de comportements schizophrĂšnes, ou de syndromes de Stockholm, vis Ă  vis des GAFAM. Comment peut-on rester stoĂŻque quand des Ă©lus torpillant les GAFAM vis Ă  vis de leur ingĂ©rence dans la vie privĂ©e et la collecte de donnĂ©es laissent leurs Ă©coles ou ateliers numĂ©riques s’installer sur le territoire ? Comment ne peut-on pas ĂȘtre affligĂ© quand on voit des personnalitĂ©s politiques scandalisĂ©es par le monopole de ces gĂ©ants, quand on leur laisse des villes, l’Éducation Nationale et le MinistĂšre des ArmĂ©es ? Comment peut-on Ă  la fois critiquer l’omniprĂ©sence des entreprises AmĂ©ricaines dans nos vies quotidiennes, sans pour autant Ă©duquer les citoyens au numĂ©rique et favoriser les solutions alternatives ? Car oui, il y en a ! En cherchant un peu, on peut voir que dans une multitude de situations, des solutions non intrusives, respectueuses et vertueuses existent, et rendent dispensable l’utilisation des produits de GAFAM.

Nombreuses sont les critiques vis Ă  vis de l’hĂ©gĂ©monie d’Android dans le monde des appareils mobiles. Si sa prĂ©sence (indirectement celle de Google) gĂšne autant, quand arriveront les soutiens officiels et concrets Ă  des projets comme eelo ou LineageOS ? Lorsque des villes ont besoin de services en ligne Ă  des fins de gain de productivitĂ© ou de partage, pourquoi ne voit-on pas ou peu de communication sur des solutions comme celles proposĂ©es par Cozy Cloud ou Framasoft ? Quand des personnalitĂ©s politiques tirent sur WhatsApp et Telegram, applications n’ayant pas leur confiance, pourquoi voit-on des travaux sur une app française de messagerie sĂ©curisĂ©e alors que d’autres existent comme Signal ? Devrions-nous nous attendre Ă  des fiascos comme Louvois et SAIP ?

(ლâ•č◡â•čლ ) La route est longue...

Il ne faut cependant pas voir le verre Ă  moitiĂ© vide. Des progrĂšs peuvent ĂȘtre citĂ©s, notamment avec GendBuntu dans la Gendarmerie (systĂšme d’exploitation basĂ© sur Ubuntu) (chacun sa paroisse hein), ou encore la montĂ©e en puissance de Qwant. Des associations et partis continuent de taper du poing sur la table et de dĂ©battre, comme l’April, la Quadrature du Net ou le Parti Pirate. Des projets ont mĂȘme donnĂ© des fruits pas dĂ©gueus comme CHATONS, et DĂ©googlisons Internet.

Le problĂšme est que, au jour d’aujourd’hui, les projets et entitĂ©s qui se soucient de la vie privĂ©e, du numĂ©rique, de la dĂ©centralisation et du partage sont gĂ©nĂ©ralement catĂ©gorisĂ©s dans un coin comme une sorte de militantisme paranoĂŻaque Ă  voir le mal partout, un peu comme ce tonton rĂ©ac’ qu’on invite aux repas de famille mais qu’on Ă©vite de trop laisser parler. Mais ne serait-il pas tant d’essayer ou de promouvoir de nouveaux modĂšles ?

Prenons par exemple la plateforme Patreon. Si des artistes arrivent Ă  ĂȘtre financĂ©s via cette plateforme, pourquoi pas des membres de projets libre et open source ? En France, le mouvement (relativement louable) de la #StartupNation s’installe pour favoriser la crĂ©ation d’entreprises. Et si on avait un mouvement similaire type #FreeNation ? Le nom claque un peu quand mĂȘme. DerniĂšre idĂ©e, les cryptomonnaies. En supposant que l’on place les efforts et dĂ©bats ailleurs que sur la spĂ©culation, la rĂ©gulation ou l’interdiction des cryptomonnaies et des ICO, ne pourrait-on pas par exemple imaginer des tokens permettant de financer des entitĂ©s dĂ©vouĂ©es Ă  l’open source ? Quitte Ă  ĂȘtre disruptif avec ces monnaies alternatives, pourquoi pas l’ĂȘtre Ă  fond et repenser la rĂ©munĂ©ration ?

M’enfin bon. A force de rĂ©flexions de ce genre, et puisque tous ces Ă©lĂ©ments sont gĂ©nĂ©ralement inconnus du public, et que les discours concernant les GAFAM sont systĂ©matiquement binairisĂ©s pro/anti, je me demande s’il n’y a pas finalement un refus de la classe politique et d’une partie de la population de se poser des questions, de soutenir des solutions meilleures pour tous, et de remettre en cause ses habitudes. Personnellement je me dis qu’un jour le message finira par passer. Pas Ă  grands coups d’articles putaclicks, mais plutĂŽt Ă  force d’éditions de Libre en FĂȘte comme Ă  Lannion ou de CafĂ©s Vie PrivĂ©e, ça finirait peut-ĂȘtre par changer
 mais les prises de conscience tardent.

Je terminerai par une belle phrase de Framasoft qui rĂ©sume tout ça : La route est longue mais la voie est libre... Entre temps, faĂźtes un tour sur la page du projet Contributopia ;–)

Do you like my publications? Buy me a beer or use something else ❀

Blog publications licensed under CC-BY-SA

When I say mine you say Coinhive ⚒

đŸ‡ș🇾 – Saturday, January, 4th 2018

Keywords: #Monero, #cryptocurrency, #Coinhive, #web, #mining

Few weeks ago I started an experiment like a quick-and-dirty proof of concept around cryptocurrencies and web mining. I choose Coinhive so as to see what it was possible to do with this tool. I write here the results of my experiments and the tests I made of this API. Before that, let’s sum up the principles of blockchains and Monero ⛏

Note Coinhive is closed

⛏ About blockchains & cryptocurrencies

I won’t write too much lines about blockchains and cryptocurrencies, because it’s not a really new concept (brought out in 2008 by Satoshi Nakamoto with Bitcoin), and I should both talk about concepts of cryptanarchism, cypherpunk and cryptography. So, let’s make it short. And if you understand french-written slidedecks, go here ;-D

Blockchains can be seen as distributed decentralized ledgers or databases. No one owns a unique instance of the base but a number of nodes linked each others through peer-to-peer network. This aspect is one of the biggest advantage of the technology, the other relies on the impossibility to corrupt the data stored inside it within “pages” of the ledger called blocks. Due to hash operations, the content of a block is unfalsifiable and sustainable, and if a block has been altered the following will be too and so on. There are several types of hash operations called Proofs of Work: Equihash for Zcash, Ethash for Ethereum, Hashcash for Bitcoin or CryptoNight for Monero. There will be also Proof of Stake instead of Proof Of Work for Ethereum but not for today. This mathematical competition is made between each node in order to choose the one which will be able to build the new block. Thus the successful node earns tokens (e.g. Bitcoin, Ether, Zcash, Monero or Dogecoin) and can spend them (e.g. in exchange places like Kraken, Changelly or Coinbase). Blockchains are public, and some of them (e.g. Monero, Dash and Zcash) can hide their data like transactions, fees, amount of used tokens or owners. For some blockchains, instead of just exchanging tokens, it is possible to store programs and define decentralized applications (ÐApps) using Ethereum or EOS. Cryptocurrencies can be called with their acronyms: BTC, BCH, BTG, ETH, ETC, ZEC, XMR respectively for Bitcoin, BitcoinCash, Bitcoin Gold, Ether, Ether Classic, Zcash and Monero. Some of these altcoins are in limited quantity (at most 21.000.000 for BTC) or not (XMR, ETH). Finally, altcoins are volatile and mainly used for speculation. And sometimes, there are funny crashes (see below).

Graph of values of BTC, ETH and XMR with a crash

(╯°□°)â•Żïž” ┻━┻ Ok buddy, and Coinhive? Soon, but before let’s talk about its currency: Monero.

⛏ About Monero

Drawing about Monero

Monero is an opensource cryptocurrency launched in 2014. It is based on CryptoNote algorithm which protects privacy, contents and transactions. CryptoNote and the network in use, Kovri, obfuscate the data so as to make it quite impossible for an intruder to see what happens. Technologically Monero is quite awesome: Kovri is based on I2P’s specifications, encryption is everywhere, and several mechanisms like Ring Signatures (hiding senders), Ring Confidential Transactions (hiding amounts of XMR in transactions) and stealth addresses (protecting the receivers of the transactions) have been set up with the aim of protecting the blockchain. Yes, Monero is one of the most badass of cryptocurrencies. According to Bitinfocharts (on 01/03/2017) the USD value of 1 XMR was $379.65, the mining time to wait before a new block was around 2 minutes, the blockchain size was around 38 GB and the reward for the successful miner was around 5.5 XMR. Nice :)

(ノ`Д ́)ノ Please guy, don’t make another boring article about Monero, I want Coinhive!

Ok, since we have introduced blockchains and Monero, let’s talk about Coinhive.

⛏ “Hello Coinhive!”

Logo of Coinhive

What’s that?

I won’t write a too big paragraph about the history of Coinhive. I just say that this tool is quite well-known today because of its use with Pirate Bay portals, and the Showtime case. The idea behind is to provide a new way of remuneration: because more and more people use ad-blockers, it may be quite tricky to use advertisements to monetize a web site or an app. So, if we can mine Monero when the users are visiting our product? That’s why Coinhive is here.

Coinhive offers a JavaScript miner for the Monero blockchain, and it is really easy to integrate it inside a web project. The miner is run in the browser, and uses the CPU power of the users to try to mine new blocks. Due to the lack of API in Web standards, GPU are not really used with this API. Coinhive uses Monero thanks to of the lightweight of CryptoNight, and also because the calculational power to have to mine Monero can be medium.
The formula for the payouts is quite simple, Coinhive keeps around 30% of the benefits, and the remaining 70% are for the developer:

(solved-hashes / global-difficulty) * block-reward * 0.7

So, what are the features?

First, proof of work captchas!

Coinhive is not just another miner for Monero, or a tool for pirates or whatever press-groups can say. The project offers a new kind of captcha using
 Proof of Work! Instead of having to write a not-so-readable keyword, or click on ugly cars with several pictures, this captcha system makes users (in fact their browsers) need to compute a defined number of hashes so as to submit a form. Spams are prevented, it is far less boring that old-school captchas, and it might make developers earn a bit of Monero. The use is quite simple: add a reference to a script in HTML, add a div with the amount of hashes and the data key, and that’s all. The div will be replaced by additional content within an iframe.

Second, proof of work shortlinks!

Coinhive provides a feature related to shortlinks. Instead of using GAFA’s or other well-knowns URL shortener (please, consider using, it is possible for the developer to define a short link with which users have to solve a number of hashes before being automatically forwarded to the target URL. It is quite interesting so as to prevent spams, click-bots or too curious spies.

The use is very simple, add the short link in your text content, and when the user clicks on, a new page will be opened in its browser with the state of the process.

Third, Monero mining — the clean way The last feature, and the more known, is about mining. After having defined public and private keys for the API, developers can integrate JavaScript glue and/or HTML components in a web page so as to set up the miner. In fact, it is a better idea to ask the user to allow the mining process, but on 01/03/2018 it remains possible to mine Monero silently. The use of this feature is as simple as the captcha feature: add a div in your page, add a script and that’s all. The div will contain an iframe with the widget of the miner. The widget itself is customizable, specially with colors, number of threads to use and the throttle. The higher the throttle is, the more busy will be the CPU.

... and the clean-or-not way.

Coinhive allows developers to use pure JavaScript glue to mine Monero instead of using widgets. This is this kind of tools some websites used, and they were in a dirty way I won’t show here. The cleaner way is to use the API which asks the user to grant the mining process. It is better to have resilient users choosing or not if you can mine than having lost a lot of them because of ninja mining. The code to inject is as simple of the others :

However it is not because there is no GUI that users cannot see the miner working. Indeed, if we look deeper with the task manager of the browser, we can see there is something quite busy on the web page. But no more details are available :–/

And a dashboard.

Finally Coinhive has a clean dashboard which sums up the hashrate (hashes/s), the total number of hashes and the pending payments. It lists also the “sites” you have defined (here “dwarf” defined for the demo in my web site). You can easily read that with this demo I’m not rich at all, and the XMR gain I may have will not refund the power supply costs. But who cares? It’s just for beauty of proofs of concepts :)

⛏ Enter in the noice of the hive

Thus, and it is the purpose of this article, I tried the mining feature of Coinhive. I made it in a quick-and-dirty way, hide it in a dedicated location in my web site, and here I am. I tried this feature with 2 smartphones and 2 laptops using Firefox as web browser. I used the same configuration: 4 threads and 100% of speed (i.e. 1.0 for the throttle). The tests duration was around 1 hour. I choose this duration so as to be closer of a use case where someone watches a video on a streaming platform or uses its favorite web application (social network, tool in the cloud, etc.). Below are the specifications of the devices.

I put below the resulting hashes of each device. I can say I made these tests with only the miner and no more application opened. The device have not been rooted, jailbreaked or overclocked. The miner in use was the UI miner.

⛏ And so what?

I can say that if I want to make users of web projects mine Monero using Coinhive, I will make it possible if they are using computers and not smartphones. With computers there are higher hashrates and maybe they can make me earn Monero tokens if the hashes are successful. But with all the last flagships of OEMs, I think it might be interesting to mine with them. Look at the specifications of the iPhone X, the Samsung Galaxy S8 or the Huawei Mate 10, it could worth :)

I will make new tests with new parameters so as to have better ouputs :) Moreover I want to look deeper in the browser so as to find more traces and logs related to the miner. Coinhive is not opensource, and I am the kind of person which wants to look deeper to trust the tools I use. I would like to make new tests with JavaScript pure miner, using Chrome, Opera, Safari and Edge. It may be interesting to make tests with several durations and speed of mining so as to find the good combination between them which permits to mine Monero units without impacting too much the users. In addition, I have felt that the fans of the laptops were noisy, and the smartphones were quite hot. So it has an impact on power consumption and temperature of the components. It may be interesting to keep an eye of these elements in the future tests.

The API of Coinhive is both really interesting and easy to use, and to my mind it is not a so bad example of what we can do with blockchains. Prevent spams, earn money for side projects or news-websites, monetize a web site even if users block advertisements, these are interesting ways of use. We can also integrate Coinhive to opensource projects or associations so as to help them to earn money and buy some supplies for examples.

Indeed malicious people and malwares can use the API to earn money silently, but I believe it is not a good reason at all to forbid this kind of tools.

Let’s see what will be the next cool features! ~=[,,_,,]:3

Do you like my publications? Buy me a beer or use something else ❀

Blog publications licensed under CC-BY-SA