Stratégies d'apprentissage et optimisation pour la flexibilité au service de l'utopie numérique
"the only constant is change"
--
Meetup Backbone 17/02/2015
Maxime Lathuilière
@maxlath
retour sur la génèse d'Inventaire
retour d'XP. résumer 4 ans de travail en 15 minutes
Faites 's' pour ouvrir la popup avec les notes
Origine du projet
repenser le marketing dans l'intéret des consommateurs/citoyens
--
mémoire: maxlath.eu/paper-ethical-marketing
quelques mots sur mon parcours: master en management / mémoire de fin d'étude publicité : les débuts
frais ou pas frais, on parle du produit
peut-on remplacer la pub par des flux de données sur les ressources disponibles ? => peut-être résumé par la formule (next) s/marketing/information sur les ressources disponibles/g
s'inscrit dans un mouvement existant: les systèmes de VRM VRM
Vendor Relationship Management
outiller le consommateur pour rééquilibrer la relation commerciale
carte de fidelité = tracker client yaka demander (gentillement) aux entreprises d'ouvrir leurs données-produits en format standard , d'en rendre l'usage libre , et de nous envoyer le lien quand on passe à la caisse (plutôt qu'un bout de papier so XXième siècle), pour qu'on puisse réutiliser/recroiser les données via des outils dont ils n'ont pas le contrôle !
=>
essais infructueux: entreprises radines en données / vous avez déjà fait un hackathon open data d'un grand groupe ? P2P-RM
P2P Resources Management
l'économie collaborative/horizontale comme laboratoire de transaction avec échanges de données ouvertes
--
article: maxlath.eu/p2p-rm
contourner le problème du manque d'incentive tant que pas d'usage
Objectifs du projet
Cartographier les ressources disponibles entre pairs avec des données ouvertes
= en faire l'inventaire
Specs d'un outil garantissant l'intéret du citoyen
libre/open source
savoir libre
données en formats standard
contrôle des données par l'utilisateur
outil decentralisé
outil développé par une organisation ouverte et indépendante
top of ze pop UX
inscrire l'incorruptabilité dans la structure. pas de revente des données, pas de pub. vendor-lockin impossible : les utilisateurs restent parcequ'ils ont envie de rester Full-Stack Bisounours
“A prototype is worth a thousand meetings.”
~ Mike Davidson, VP of Design, Twitter
"bonjour, je sors d'école de commerce et j'ai une super idée, tu veux être mon CTO?"
pas de cash, pas d'experience, pas de clients. des difficultés de réaliser un proto quand on est pas dev devenir son propre associé technique
pas de cash => investissement en temps expérience technique : 0
don de voyance : 0
sur quelles technos parier ?
"startegie d'apprentissage"
Bouillonnement des technos décentralisées
Social Web : RWW, WebID
Unhosted : RemoteStorage, PouchDB
Personal Clouds : CozyCloud, OwnCloud...
Internet reboots: Etherium, MaidSafe...
des difficultés de réaliser un proto quand on est pas dev web décentralisé : faible adoption / immaturité
=> commencer en web classique / centraliser autour d'un server, mais en gardant la possibilité d'évoluer
Javascript
language standard du web
unhosted, server-less, read-write-web, node-webkit, cordova/phonegap : JS comme point commun
Unhosted, clients lourds => JS. + avantage structurel comme language standard du web + flexibilité server-less, node-webkit... “A prototype is worth a thousand meetings.”
~ Mike Davidson, VP of Design, Twitter
et comme un proto blablabla (next) Vite Vite Vite !!
fail early fail often
~ sagesse Lean
apprentissage JS // proto 1er proto: Meteor
avant la 1.0, evolution chaque semaine "facile même pour les débutants"
j'ai essayer de lire le code de Meteor
je m'y suis cassé les dents
tout va bien tant que ça va. pas fait pour être compris, juste utilisé et que tout marche comme par magie fail early fail often: mon cul
apprendre, ça prend du temps
lesson learned
là, le storytelling devrai me faire dire que je me suis résolu à ne prendre plus que des petits outils, au code lisible et que je suis tombé amoureux de Backbone.js, que nous vécure heureux et eurent beaucoup d'enfants FAUX
dans ce brouillard général, j'ai été très chanceux app CozyCloud
Stack:
Coffeescript
NodeJs / ExpressJs
BackboneJs
Brunch
CouchDB
concours MesInfos (VRM). Cozy en 2 mots. j'ai tout pompé tip a posteriori:
qu'utilisent ceux qui essayent de résoudre les mêmes problèmes ?
Full Stack bernard l'hermite
Les bernard l'hermite se caractérisent par le fait qu'ils possèdent en général un abdomen mou dépourvu de carapace. Par conséquent, ils occupent pour se protéger des abris qui, pour la majorité des espèces, sont formés par des coquilles de gastéropode mais aussi des éponges ou des bambous.* Et là, tout s'est bien passé
Ou presque
concepts MVC - this - hoisting - async - prototypal inheritence ...
3 mois de galère. dans le doute, j'attachais tout à window . Mais au moins, j'apprends javascript, pas un framework Reprendre cette base pour un nouveau proto et étoffer
=> aménager la coquille
le concours passé, commence le proto Inventaire
faciliter les layouts
modulariser / découpler
choix par la doc trouvée / importance de la communauté / maturité L'été/automne à bidouiller
créer un système d'authentification
Persona vs unknown crypto créer un réseau social
Neo4J propaganda "you need a graphDB to do graphs". LevelGraph => pb réplication Levelup => retour CouchDB créer une UX top of the pop
framework CSS/JS
VS
lib MVC
Foundation topbar vs $el => Flexbox => problème de compatibilité
un DOM pour les gouverner tous
exemple: attacher des views à la top bars Foundation plug&play task-runner plugins
Remplacer les wrap de wrap d'outil par les outils dans un script. (ex: browserify, gzip, cssnext...) la docu des plugins présupposent que vous connaissez déjà l'outil. maitenance hasardeuse rule of thumb
plus un outil est packagé, plus vous êtes dépendant de mainteneurs de projets
=> retourner à la source
package.json:
"build": "./scripts/build"
./scripts/build:
brunch build --production
./scripts/minify
./scripts/gzip
./scripts/update_i18n_files
héberger le site: les PAAS
héberger le site: les PAAS
Nodejitsu $48/mois pour un SSL => VPS // Nginx // apt-get // Couchdb
l'apprentissage peut parfois sembler un peu long
Status du respect des specs
libre/open source
savoir libre
données en formats standard
contrôle des données par l'utilisateur
outil decentralisé
outil développé par une organisation ouverte et indépendante
top of ze pop UX
AGPL3/repo github public. Peut faire mieux encore tellement de fonctionnalités manquantes
groupes
real-time
messageries
suivi des transactions
intégration continue
...
prendre son temps
(mais en allant vite)
la facilité mêne au coté obscure de la complexité les plus du zero-magic: la configurabilité
les moins du zero-magic: la configurabilité
voir analytics couchdb view / http apprendre en mode bourrin
réaliser un projet de A à Z
regarder des conf au ptit dej
aller à des meetups
lire la doc / des bouquins/ le code
lire les articles de dev expérimenté(e)s
lire des dev expérimenté(e)s blablater sur twitter
lire lire lire
essayer essayer essayer
on ne peut pas comprendre un outil sans avoir fait l'experience du problème qu'il tente de résoudre
pour comprendre un problème et les solutions techniques packagé par tel ou tel framework, il faut l'avoir affronté, sinon c'est de la magie. Une grande partie de la notre métier consiste à comprendre le contexte dans lequel s'articule les outils : ne laisser pas les frameworks vous voler l'occasion d'apprendre ('fin c'est un équilibre à trouver) du coup je commence à voir venir les arnaques
"get your facebook-killer app working in minutes"
"focus on doing what you like, while we care for the rest"
vous avez le bonjour de mon dentiste
beaucoup de cassage de dents plus tard
Stratégies d'apprentissage et optimisation pour la flexibilité au service de l'utopie numérique
"the only constant is change"
--
Meetup Backbone 17/02/2015
Maxime Lathuilière
@maxlath
retour sur la génèse d'Inventaire
retour d'XP. résumer 4 ans de travail en 15 minutes