Développeurs, il est temps de changer le monde !

A la suite de mon article précédent, j’ai réfléchi (un peu).

Et plusieurs idées ce sont assemblées dans ma tête. Je vais essayer de les articuler correctement, mais ça n’est pas si facile …

Vous vous souvenez de la matinée sur le rôle social du développeur à Devoxx ce printemps ? Non ? Dans ce cas-là, j’en ai parlé :

Et je vous invite à relire ces articles pour bien comprendre de quoi il s’agit. L’idée que j’ai tiré, sans originalité, il est vrai, de ces quatre conférences, c’est que la révolution industrielle de l’informatique va changer la donne, comme les précédentes. Pour mémoire, la révolution de l’imprimerie n’a pas vraiment été une bonne chose pour les moines copistes.

Il est déjà évident que la plupart des tâches pilotées par des workflows sont maintenant totalement définies par l’ordinateur (pensez par exemple aux centres d’appels, à la gestion des interventions des grandes entreprises, les remboursements de notes de frais, …).

Mais d’autres domaines vont bientôt tomber dans l’escarcelle des informaticiens : la bancassurance, la médecine. Le plus important étant évidement l’implémentation de la loi. En effet, si la loi est implémentée par du code (c’est le cas du code des impôts, par exemple), ce n’est plus vraiment le politicien qui choisit comme l’impôt est prélevé, mais le code écrit par un informaticien, quand bien même c’est un sous-traitant d’une grosse SSII en contrat avec le gouvernement.

Or actuellement, nos représentants politiques (députés, maires, ministres), sont là pour … nous représenter, parce que leur connaissance de la loi est plus grande, parce qu’ils sont des personnes clé.

En conséquence, on retrouve par exemple dans l’assemblée nationale (je ne retrouve plus les statistiques que j’avais pu consulter il y a quelques années)

  • des avocats
  • des notaires
  • des médecins
  • des fonctionnaires (je sais, ça n’est pas un métier, mais un statut), au premier rang desquels une palanquée d’inspecteurs des impôts.
  • et un agriculteur

Est-ce qu’il y a des informaticiens dans le tas ? je ne crois pas, non.

Est-ce qu’il y a des gens qui comprennent ce qu’est réellement la révolution numérique ? Je suis à peu près certain que non.

Alors ?

Qu’est-ce qu’il faut faire ?

Vous vous doutez bien de la terrible réponse que je vais apporter : nous, les pionniers du digital, devons trouver des représentants, des champions, et les aider à prendre des responsabilités politiques, pour éviter que les politiques ne décident un jour que toutes ces histoires d’ordinateurs sont décidément trop dangereuses pour leur pouvoir, ce qui arrivera forcément.

Publicités

Je déteste encore git

J’ai déja écrit que je détestais git ? OUI.

Mais, en un sens, ce que je déteste au moins autant, c’est de me faire prendre pour un con.

Tiens, par exemple, quand j’écris un peu énervé

C’est quand même un peu vexant de se voir répondre

https://twitter.com/_Christ_OFF_/status/742378259128692736

Me dire ça, à moi … Me dire que la meilleure façon d’utiliser cet outil difficilement compréhensible, c’est passer par nodejs et chromium … mon dieu.

Et puis, surtout, mon problème n’a rien à voir avec git en tant que tel, mais plus avec la façon foireuse de git d’utiliser la configuration système. Regardez un peu la question StackOverflow que j’ai posé à ce sujet … c’est assez merdique.

Cela dit, quelque chose m’a un peu intrigué. Ce tweet, en particulier.

Là, vous voyez, il y a un problème : le bon outil est ergonomique. Et quand je vois le nombre de personnes qui galèrent pour l’utiliser, sans même parler de l’utiliser correctement, je me demande si, réellement, il y a eu un gain si net par rapport à Subversion. Bon, pour le noyau Linux, clairement, ça doit être indispensable.

Mais ai-je besoin du même genre d’outil pour un projet qui ne va être partagé qu’entre quelques machines de développement et un serveur d’entreprise ?

Ai-je besoin d’un outil développé essentiellement pour des gens qui considèrent que l’ergonomie de la ligne de commande de Linux est un must insurpassable ?

Ai-je besoin d’un outil dont la l’intégration avec Linux est tellement poussée que le moindre problème dans la configuration réseau doit se résoudre dans les fichiers de configuration ssh du compte utilisé ?

Bref, encore une fois, je suis perplexe devant la faculté du monde du développement à adopter un outil inergonomique, rempli de fonctionnalités inutiles, et totalement inopérable pour peu que cet outil permette de démontrer une forme tordue de supériorité intellectuelle.

Et là, je me rends compte qu’en un sens, le Python ou plutôt sa communauté a peut-être changé ma perception de ce genre de choses …

#devoxxfr Boucles de feedback du développeur

Et donc le but du talk, c’est de permettre au développeur de rester dans sa zone de concentration … en évitant les pertes de temps liées au redéploiement.

Donc pour être rapide, ils vont utiliser peut-être un tomcat en prod, mais surtout en jetty intégré avec maven, et c’est bien parce que ça démarre très vite. Et pour être honnête, j’ai personnellement déja joué avec le plugin maven-jetty-plugin et les scaninterval … Mais je n’avais pas réussi à lui faire prendre en compte les modifications de code source. Et puis, pour être honnête, on n’est pas encore au niveau de …. Wisdom \o/.

Alors avec maven-jetty-run on peut relancer l’appli. Mais pour les tests, on fait comment ? J’imagine qu’ils vont me parler d’infinitest … bingo ! C’est vrai que je sais qu’il existe depuis …. qu’Eric Lefevre en a parlé il y a bien longtemps.

Et c’est tout pour le serveur. Passons maintenant au client. Notez qu’encore une fois, quand je change mon code Javascript dans Wisdom, il est relinté, recompressé, et peut-être même retesté à la volée. Mais quand même … Il y a aussi des outils qui permettent de modifier le JS dans le navigateur, et de le voir modifié dans le projet source.
Avec Chrome dev tools, on peut créer des « workspaces » qui associent à des fichiers fournis en HTTP des fichiers sur le filesystem. C’est bien, parce qu’on peut directement bosser dans le navigateur avec tout son outillage, et avoir les modifications effectuées sur les fichiers source. D’un autre côté, avec grunt browserSync, on peut demander au navigateur de se rafraîchir. Et c’est assez génial, puisque la page web se rafraîchit très très très vite. Franchement, j’aimerais bien voir ça dans …. Wisdom ! En plus, browserSync, permet de synchroniser la navigation entre plusiurs navigateurs. Et évidement, c’est incompatible avec les workspaces : le workspace modifie le fichier, browserSync recharge la page, le workspace détecte à nouveau la modification, …

En bonus, côté Javascript, on peut aussi faire des tests avec Karma/Jasmine. Et on peut également mettre un watcher … du coup le test sera rejoué. Et pour ne pas regarder la console, Karma a un plugin growl … Ca, ça fait plaisir !

#devoxxfr – Maven, Java9 et Jigsaw

Après le gentil JGiven, on passe au film d’horreur modulaire. Coup de bol, Rémi Forax m’a donné quelques clés pour comprendre l’histoire (ça fait vraiment trop people de sortir des phrases comme ça).

Java6 est mort, Java7 est mourant, tout comme maven2 …
Et Java9 commence à faire du Jigsaw (visible danbs le build java9 depuis le début du mois).

Actuellement, un build simple avec le dernier JDK 9 fonctionne avec maven. Et même la création d’un JAR fonctionne. Par contre, générer un JAR de javadoc ne fonctionne pas du tout.

Et donc, clairement, maven marche en java9. MAIS certains plugins devront évoluer (jar, javadoc, …). Mais heureusement, il y a une page dans le wiki de Maven qui liste les versions minimales et toutes les informations associées.

Juste en passant, le build de maven ne dure qu’une minute. C’est rapide !

Une fois qu’on ajoute des modules dans le code, il faut une version récente du maven-compiler-plugin pour supporte Jigsaw. Parce que l’équipe Maven l’a déja corrigé.
Et une fois que ça compile … on teste. Mais là, Surefire ne gère pas encore les modules, et du coup les tests s’exécutent en-dehors des modules. C’est moins bien, mais c’est déja ça.

Mais globalement, tant qu’on ne joue pas à builder de l’OSGi/Jigsaw, tout à l’air bien facile à faire.

Et maintenant, chez Maven, on essaye de modulariser. Mais c’est moins facile, puisqu’il faut nettoyer tous les arrangements faits avec le passé (plusieurs modules qui utilisent le même package, par exemple).

Bon, et maintenant, le morceau compliqué des multi-releases jars : des jars buildables avec plusieurs versions. Ca sera implémenté (joliment, je trouve) avec un projet multi-module : un module basique, et un module par version de Java séparée, et enfin un assembly. ca fait vraiment bien sens, je trouve.

Et lors de la compilation, Hervé nous rappelle qu’il faut utiliser le toolchain maven, pour garantir que le bon compilateur est utilisé.

#devoxxfr – JGiven

Bon, pour la BDD, j’ai déja vu Fitnesse, et franchement, ça fait braire tellement c’est mal fichu. J’avais aussi vu un autre outil BDD, bien plus convaincant, au chtijug, mais comme j’ai oublié son nom, ben forcément, c’est moins tentant.

Heureusement, c’est la fin de journée, et les talks raccourcissent. On est donc partis pour 1/2 heure de JGiven. Espérons que ce soit chouette !

Et donc, le BDD, ce sont les three amigos (dév, test, métier) qui écrivent ensemble les specs à partir d’exemple.

Le but de JGiven, c’est de produire un rapport facilement lisible et navigable.

Et effectivement, le rapport est beau. Bien plus beau que Cucumber … et je ne vous parle pas de l’horreur qu’est Fitnesse.

Encore mieux que le rapport, un scénario n’est pas un fichier plat, mais une classe Java (en fait un test). Et en bonus, quand on exécute le test, JGiven affiche un joli rapport d’exécution qui va contenir le scénario de façon lisible avec les succès ET les échecs.

Et attendez, c’est pareil pour injecter les valeurs des tests (plutôt que de faire des sales tables façon wikipedia) !

Bon, mais tout ça, c’était « simple ».

Quand on veut partager les informations, JGiven fournit aussi des outils pratiques.

bon, la présentation va vraiment vite. Donc on passe vite fait aux options de présentation, qui vont permettre d’afficher une variable du test entre guillemets de façon automatique, par exemple.

Franchement, pourquoi on n’utilise pas dans nos projets ce genre d’outils intelligents, mais des horreurs comme Fitnesse ?

Je note toutefois qu’un outil comme JGiven n’est en fait qu’un support de discussion.

Et c’est vrai qu’avec un outil pareil, aller voir le métier pour discuter d’un point d’implémentation est vraiment pratique.

Question marrante : comment le métier écrit les scénarios.

La réponse est chouette : en fait, le métier n’écrit pas les scénarios – ils le font peut-être au début, mais très rapidement, il faut être développeur pour pouvoir maintenir un scénario. Du coup, le fait que ce soit en fait simplement une surcouche de JUnit n’est pas gênant sur le long terme. Ce qui s’illustre par le processus de développement : le BI arrive avec une idée, qui est élicitée par l’équipe de dév à grands coups de post-it. Puis, une fois la réunion terminée, les post-its sont traduits directement en code (parce qu’ils sont valides).

#devoxxfr la blockchain en détail

Juste en introduction, un chiffre, actuellement, 1 bitcoin=470$

Donc chez Octo, ils croient que la blockchain va changer le monde … et moi aussi.

Donc Bitcoin (parce que c’est l’exemple canonique de la blockchain).
Bitcoin permet (mais on le sait déjà) de transférer de façon sûre des informations. Et ça, c’est grâce à des méthodes cryptographiques bien connues.
D’abord du hash, c’est rapide, c’est résistant à la collision, et c’est non réversible (bien pratique pour conserver la confidentialité de l’information hashée).
Ensuite, la signature électronique. elle est assymétrique, comme ça on peut envoyer la clé publique au monde entier, tout en étant toujours le seul à pouvoir signer un message.

Ensuite, il y a des structures de données qui vont bien.
Typiquement, la blochchain, qui consiste en fait à mettre dans le block (n) la signature du block (n-1). Ce qui fait qu’on ne peut modiifier à bas cout que le dernier block. Et puis le merkle tree (petite musique d’ambiance) .. Globalement, on crée des hashes à partir d’un arbre de hash, qui permet à partir d’un seul hash d’avoir l’état de validité de tout un paquet d’opération. L’intérêt est surtout de pouvoir valider une donnée rapidement et efficacement.

Du coup, bitcoin, c’est juste l’assemblage de toutes ces technologies pour ne pouvoir faire que les opérations suivantes

Transférer des bitcoins qu’on possède
Trouver des bitcoins (miner) et faire des transactions coinbase.

Donc les gens peuvent se transférer des bitcoins, qui passent par l’envoi de message signés par le hash de l’émetteur via le protocole gossip.

Bon, le truc compliqué, c’est quand on veut transférer des demi-bitcoins, parce qu’il faut faire une transaction vers le destinataire et vers soi-même avec le reste.

Et le truc encore plus compliqué, c’est d’éviter la double-dépense : envoyer la transaction à deux destinataires pour dépenser le même bitcoin en double. On l’évite justement grâce aux blocks et aux arbres de merkle : les transactions sont toutes enregistrées dans des blocks qui sont organisés, de façon interne, en arbres de merkle.

Alors du coup, après, pour faire pousser les blocks, il faut que les mineurs calculent de nouvelles valeurs de « nonce », qui garantit la valeur du hash. Et là, l’explication est un peu flou, mais c’est pas grave.

Passons maintenant à un problème typique des réseaux : supposons que deux nouveaux blocks apparaissent en même temps, avec des hash valides, mais des contenus de transaction différents. Et ça va être résolue simplement en considérant que, dans le cas d’un fork, la chaîne de blocks valide est toujours la plus longue. Et du coup, si on contrôle la moitié du réseau, on a d’une certaine manière la possibilité de réécrire l’histoire, en invalidant certaines transactions, ou faire du déni de service en empêchant une personne de voir ses transactions écrites.

Du coup, les mineurs ont quand même un rôle important, surtout qu’il sont rémunérés en bitcoin … à l’heure actuelle, trouver un nouveau nonce rapporte environ 7000 € en bitcoins !

Ca soulève certains enjeux. D’abord, la difficulté de miner augmente en fonction du nombre de mineurs … et comme il y a maintenant des cartes physiques dédiées, ça devient vraiment compliqué. Du coup, pour miner, actuellement, l’investissement minimum est de 70 000 €. Et pour posséder 51 % du réseau, il faut un investissement bien plus conséquent … Et la théorie des jeux indique que, dans ce cas, il vaut mieux s’équiper pour miner, ce qui permet de sécuriser le réseau de façon partagée. Même si les mineurs restent les mêmes. Ca se voit avec les pools de minage.

En bonus, si les pools de mineurs se regroupent, ils sont susceptibles de prendre le contrôle de l’écosystème bitcoin … mais si ils le faisaient, ils perdraient leur investissement actuel.

Dernier point : le nombre de bitcoins minables est défini. Et il semblerait que plus aucun bitcoin ne sera minable en 2140. Bon, à cette date, on sera mort. Mais surtout, les mineurs ne pourront plus gagner de l’argent en minant. En revanche, comme à cette date il y aura 17 milliards de bitcoins en circulation, les frais de transaction seront suffisants pour faire vivre les mineurs, qui se seront reconvertis.

A cause de certaines limitations, d’autres monnaies sont apparues : le litecoin (avec beaucoup moins de puissance de travail requis), le NXT (ou c’est carrément une loterie – mais une loterie franchement intéressante), et bitshare qui permet la délégation de proof of work.

Pour en revenir au bitcoin, on atteint déjà certaines limites : les transactions doivent attendre 10 minutes avant confirmation … enfin, dans le cas où tout va bien (c’est-à-dire si le block fait encore moins de 1 Mo). Dans les autres cas, on peut attendre plusieurs heures … pas pratique pour acheter la baguette.

Et maintenant, passons à Ethereum …

Ca n’est pas le successeur de bitcoin.
Ca n’est pas non plus le début du web 3.0 (le fameux web décentralisé).
Et ça n’est enfin pas le nouvel investissement avec revenu garanti.

En fait, c’est un ordinateur
Décentralisé s’appuyant sur la blockchain et sans maître
Infalsifiable grâce aux preuves de calcul.
Toujours disponible (du moins tant qu’il y a suffisamment de noeuds)
Accessible de partout, et par tout le monde.

Où toute action se paye. Et l’aspect économique va permettre de (dé)favoriser certaines actions
Qui produit des résultats cohérents … à terme, ce qui n’inclut pas des résultats valides à court terme.
Et enfin aussi rapide qu’un smartphone des années 90.

Comment est-on passé de bitcoin à ethereum ?
Grâce à une blockchain plus rapide, qui peut stocker des données, et des smart contracts turing complete (WTF ?!).

Donc pour ça, la taille des blocks est adaptable dynamiquement en fonction du contenu.
Et d’autre part, la chaîne de blocs qui est acceptée n’est as la plus longue, mais celle qui met en jeu les blocs du plus grand nombre de mineurs.

Les données dans la blockchain
En fait, chaque compte de la blockchain a un stockage de données et du code qui lui est associé.
Chaque compte ? ben oui, parce qu’on peut gérer un compte par utilisateur et par smart contract. Bon, le stockage, c’est du clé/valeur 256 bits => 256 bits, donc peu, mais les APIs permettent du stockage bien plus riche (sans doute via un hash). En bonus, c’est un stockage privé. Cela dit, ces données sont lisibles par tous les mineurs.

Du coup, à cause des limitations de débit (90kb/1és), il vaut mieux ne stocker que les hashs des données, plutôt que les données complètes

Les smart contracts.
Bon, là, c’est juste du code stocké dans la blockchain et capable d’agir dessus.

En bonus, l’exécution d’un tel programme est transactionnel.

Et enfin, les contrats peuvent se parler. Du coup, un contrat de prêt peut appeler un contrat de gestion de comptes.

Bon, il y a toutefois des limitations :
pas d’exécution déclenchée automatiquement parce que le code doit pouvoir être exécuté quelque soit l’hôte
pas d’accès direct aux données externes pour la même raison
et pas de temps d’exécution limitée parce que l’exécution d’un smart contract se paye

Les smart contracts se développent pour l’instant avec des langages dédiés (le Solidity équivalent au javascript, le Serpent équivalent au Python, et enfin le LLL analogue au Lisp).

Et enfin, une pause

On reprend avec une démo, basée sur ethereum et ethereum wallet, qui permet de voir facilement ce qu’il y a dans un compte.

A noter que l’exécution d’un contrat coûte de l’ethereum et du gaz, ce qui garantit qu’aucun contrat ne peut s’exécuter indéfiniment.

Bon, tout ça, ça induit plusieurs complexités

Chaque version d’un smart contract a une adresse différente. il faut donc trouver un moyen de garantir qu’on utilise la dernière version.
Exécuter un contrat à intervalles réguliers va nécessiter un smart contract particulier (comme ethereum alarm clock), qui agit comme un cron distribué (et rémunérant les exécuteurs en bitcoin).
Interagir entre contrats nécessite de connaître à la fois l’adresse et l’api de l’autre contrat. Il y a donc des mécanismes de service registry qui existent pour ça.
Obtenir des informations sur le monde extérieur passe par un oracle, qui peut être appelé en synchrone ou en assynchrone.

En conclusion, ces systèmes sont implémentés avec une vision libertaire du monde, qui vient de l’absence de régulation du web faite par les gouvernements depuis les années 2000. On en revient aux fameuses histoires de « code is law » et « software is eating the world ».

Je cherche un truc …

Je vous fais là une « capture des besoins » vite fait pour un truc …. dont je commence vraiment à ressentir le besoin.

Donc, j’ai un téléphone portable sur lequel je mets la musique que je veux écouter (en l’occurrence sur une carte SDHC de 16 Go). Le problème, c’est que ma bibliothèque occupe bien plus que les 4 Go dont je je dispose pour ma musique (4 Go parce qu’il y a aussi quelques cartes pour OsmAnd~).

Donc, j’aimerais bien trouver une solution pour stocker ma musique de façon mobile (plus que mon NAS, en tout cas).

Apparemment, ça semble exister sous la forme de disques durs wifi. Parce qu’avec ça, je mets ma musique dessus, et zou, non ?

En fait, ça n’est pas si simple. Parce que d’après ce que je comprends, il faut utiliser une application spécifique pour lire la musique et les vidéos. Et, selon les modèles, il y aura de l’ethernet ou pas, ca fera répéteur wifi ou pas, …
Vous le comprenez bien, je ne suis pas conquis par ce que je vois sur le marché. Surtout parce que la question de l’UPnP est laissée de côté. Et oui ! L’UPnP, ma marotte !Ce qui m’amène évidement à faire ma liste de course.Si je devais choisir un disque dur réseau sans fil, j’en prendrais un qui

    Dispose d’un stockage de … 250 Go (?)Intègre un serveur UpnPSe synchronise via rsync avec mon NAS domestiqueDispose d’une batterie tenant une douzaine d’heureSe recharge en USBDispose de connexions ethernet et wifi (avec bien sûr une sécurité très forte sur le wifi – genre une authentification basée sur l’adresse MAC)Soit également utilisable comme magnétoscope numérique en vacances (genre je branche une prise HDMI sur la télé, je choisis le film à jouer via le point de contrôle UPnP, et zou !)

Bon, par contre, au niveau budget, je suis un peu incertain …

Bon, ben va falloir se mettre à Android, moi je vous le dis

Je croyais que ces histoires de Raspberry PI étaient juste de l’enfumade à destination de geeks trop heureux de balancer leur pognon aux orties, jusqu’à ce que je me rende compte que Rui Carno avait lui aussi succombé.

D’abord au Raspberry PI, comme tout le monde …

Puis sur un autre ordinateur à processeur ARM … un peu plus couillu … et également livré installé avec une distirbution Android (et pas Linux ou Ubuntu comme ce fut la mode il ya  quelques années).

Bon, du coup, si je trouvais l’idée relativement séduisante, j’étais encore un peu dubitatif quant au pourquoi ou au comment du truc : qu’est-ce que je peux en faire ? Qaund est-ce que ces machins pourront bien me servir ?

Et puis aujourd’hui je suis tombé, un peu au hasard, sur cet autre ordinateur Android/ARM. Et d’un coup, les choses commencent à se clarifier.

Je crois avoir déja dit (et si ça n’est pas le cas, je le déclare aujourd’hui) que pour moi le PC vit ses dernières heures comme machine ubiquitaire (vous savez, l’ordinateur qu’ont rouvait partout). Demain, l’avenir ne sera pas non plus en iProut de Cuppertino. Non, à mon avis, l’avenir a beaucoup plus de chances de se dessiner autour d’un univers Android totallement balkanisé (enfin, autant que l’univers PC à son époque hégémonique). On trouvera des Android Desktop (x86 ou ARM, on s’en fout), des Android laptop, tablettes ou téléphones (ça existe déja, je sais, merci), des Android set-top-box

https://twitter.com/riduidel/status/301704635004100608

Même si dans le cas de la freebox, je pense que c’est essentiellement parce que free dispose des compétences bas-niveau plus que des compétences UI (faut voir à quel point l’interface de la Revolution est parfois inhomogène).

Bon, je continue mon énumération …

avec des Android embarqués à la pelle (voiture, POS, j’en passe et des meilleures)

Autrement dit, Android, plus que le Mac, plus que le PC, c’est l’avenir.

Il va donc falloir s’y mettre … donc prochain achat : une tablette Android avec clavier détachable (façon tablette Windows 8). Parce que vous, je sais pas, mais moi, taper un article de blog sur un écran tacile, ça va vite me barber, hein.

Evidement, pour aller avec, il va falloir envisager la recovnersion professionnelle (mais ça on verra – bien – plus tard).

Deuil

Cette semaine, l'informatique est en deuil. Pas à cause de Steve Jobs, sur lequel je partage plus l'avis de Richard Stallman que celui de bien des panégyristes.
Non. Cette semaine, Dennis Ritchie est mort.
Admettons que vous ne connaissiez rien à l'informatique.
Pour vous, ce nom ne dira rien. Pourtant, sans celui, j'ai la nette impression qu'une part substantielle de notre univers informatique n'existerait pas.
En effet, Dennis Ritchie est l'un des inventeurs du langage C.
Et ce langage a une place plutôt importante dans l'histoire des langages de programmation.
Sans lui, pas de Java, pas de PHP, pas d'Objective-C (du coup, évidement, pas grand chose pour les iPhones).
A coté de cette invention (déjà remarquable), il est aussi l'un des créateurs d'Unix. Et sans Unix, pas de Mac OS X (puisque pas de BSD qui dérive d'Unix).
Donc, si vous êtes un maqueux fou, vous devez sans doute plus aux authentiques inventions de Dennis Ritchie qu'à l'habile marketting de Steve Jobs.
Et évidement, quelquesoit l'ordinateur, vous devez bien plus à Ritchie qu'é Jobs.
Pourtant, bien peu de gens parleront de cet homme qui a modelé notre environnement d'une manière bien plus durable que le tycoon d'Apple.
Alors pour une fois, j'essaye de rétablir l'équilibre, et je rend hommage à ce grand homme de l'informatique sans lequel nous n'en serions indubitablement pas là.

Ca marche bien l’UPnP !

Je sais pas si vous savez, mais chez moi, j'ai un DNS-323 configuré pour être, en plus du reste, un serveur UPnP. C'est chouette sur la freebox, parce que je regarde mes films peinard.
Mais c'est aussi chouette quand quelqu'un vient avec un peu de matos supportant UPnP. En l'occurence, hier, un de mes frères a ramené un petit Archos WiFi (sans doute un Archos 3cam Vision) fonctionnant, d'après ce que j'ai compris, avec Android. Et ce qui est cool avec Android, ou tout au moins avec l'OS livré avec, c'est que les serveurs UPnP sont automatiquement détectés et listés dans les sources vidéo, audio, images, tout ça.
Du coup, il a suffit que je lui donne l'accès à mon réseau WiFi pour qu'il découvre tous les films/musiques/images stockés sur mon disque dur réseau, et pour qu'il les lise. Est-ce utile de dire que ça m'a instantanément donné envie ?
En fait, ce qui m'a encore plus donné envie, c'est l'idée de disposer d'une façon facile d'accéder à tout ce contenu … par exemple avec une espèce de petit navigateur UPnP, façon explorateur de fichier de Windows avec l'affichage des fichiers A/V divers. je me suis même dit qu'en Java/Swing/JavaFX, ça ne serait pas bien sorcier à coder … Tellement, même, qu'il semble que ça existe déjà ! Bon, le truc con, c'est que c'est du Java 6, donc indisponible sur mon antiquité PowerPC.
D'un autre coté, il m'a subtilement été suggéré d'installer Piwigo sur le serveur, histoire donner un accès facile aux photos, ce que je vais sans doute tenter … Et puis après, j'installerai … peut-être, une quelconque appli web de lecture audio.