<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Google | Dr. Goulu</title><link>https://drgoulu.com/tags/google/</link><atom:link href="https://drgoulu.com/tags/google/index.xml" rel="self" type="application/rss+xml"/><description>Google</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>fr-FR</language><lastBuildDate>Wed, 09 Apr 2014 00:00:00 +0000</lastBuildDate><image><url>https://drgoulu.com/media/icon_hu_eee4a95885829ab2.png</url><title>Google</title><link>https://drgoulu.com/tags/google/</link></image><item><title>Bits en vrac</title><link>https://drgoulu.com/2014/04/09/bits-en-vrac/</link><pubDate>Wed, 09 Apr 2014 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2014/04/09/bits-en-vrac/</guid><description>&lt;p&gt;Quelques découvertes informatiques en vrac&lt;/p&gt;
&lt;h3 id="les-formulaires-google-drive"&gt;Les formulaires Google Drive&lt;/h3&gt;
&lt;p&gt;Le 
 m&amp;rsquo;a permis d&amp;rsquo;expérimenter la puissance et la facilité d&amp;rsquo;utilisation des
 . C&amp;rsquo;est simplement génial :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;dans
, on crée un document de type formulaire&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;on se retrouve dans un éditeur permettant de composer le formulaire. On peut définir le type de chaque champ : texte, choix multiple, cases à cocher, échelle d&amp;rsquo;évaluation, tout y est. On peut ajouter des règles de validation et des actions à effectuer en fonction des réponses&lt;/p&gt;
&lt;figure class="aligncenter" style="max-width: 480px; width: 100%;"&gt;&lt;a href="https://drgoulu.com/wp-content/uploads/2014/04/form-editor1.png" target="_blank" rel="noopener"&gt;&lt;img src="https://drgoulu.com/posts/2014/images/form-editor1_hu_a9cf01977cab59c3.webp" srcset="https://drgoulu.com/posts/2014/images/form-editor1_hu_a9cf01977cab59c3.webp 320w, https://drgoulu.com/posts/2014/images/form-editor1_hu_2c5aa1c6d7189fc8.webp 480w, https://drgoulu.com/posts/2014/images/form-editor1_hu_f1e314e3652ae458.webp 662w" sizes="(max-width: 640px) 100vw, 480px" alt="Editeur de Formulaire Google Drive" loading="lazy" class="rounded-lg shadow-sm w-full h-auto" data-zoomable /&gt;&lt;/a&gt;&lt;figcaption&gt;Editeur de Formulaire Google Drive&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;En cliquant le bouton &amp;ldquo;afficher le formulaire en ligne&amp;rdquo; on peut voir à quoi ça ressemble pour les utilisateurs et même tester le système, car la collecte des réponses est immédiate : rien à faire de particulier !&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lorsque le formulaire  est prêt, il suffit d&amp;rsquo;envoyer le lien disponible par &amp;ldquo;Envoyer le formulaire&amp;rdquo; à des personnes choisies, ou d&amp;rsquo;intégrer la page sur un site web dans un &lt;iframe&gt;. Plusieurs blogs du C@fé des sciences l&amp;rsquo;ont même fait simultanément sans aucun problème car le formulaire n&amp;rsquo;existe en réalité (virtuelle&amp;hellip;) que chez Google.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Les réponses sont automatiquement collectées dans un document &amp;ldquo;tableur&amp;rdquo; sur Google Drive : une ligne est créée pour chaque formulaire rempli, chaque colonne correspondant à un champ. Notez la colonne &amp;ldquo;horodateur&amp;rdquo; remplie automatiquement, bien utile.&lt;/p&gt;
&lt;figure class="aligncenter" style="max-width: 480px; width: 100%;"&gt;&lt;img src="https://drgoulu.com/posts/2014/images/googleform1_hu_a6abe314f2fb0325.webp" srcset="https://drgoulu.com/posts/2014/images/googleform1_hu_a6abe314f2fb0325.webp 320w, https://drgoulu.com/posts/2014/images/googleform1_hu_8d5bf332d6b672ce.webp 480w, https://drgoulu.com/posts/2014/images/googleform1_hu_f13ef0042a2a4867.webp 600w" sizes="(max-width: 640px) 100vw, 480px" alt="Table des résultats" loading="lazy" class="rounded-lg shadow-sm w-full h-auto" data-zoomable /&gt;&lt;figcaption&gt;Table des résultats&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Ce que j&amp;rsquo;ai trouvé assez impressionnant est que l&amp;rsquo;on peut modifier le tableau sans perturber les votes suivants. Apparemment chaque champ du formulaire est attaché à une colonne par un lien invisible, mais solide : même si on ajoute ou déplace des colonnes, les réponses suivantes restent cohérentes avec les réponses précédentes. Pour le quiz, j&amp;rsquo;ai ajouté la ligne 2 avec les bonnes réponses ainsi que la colonne D Score. Notez au passage la  géniale formule qui compte le nombre de réponses correctes avec 
 et sumproduct. Elle n&amp;rsquo;est pas de moi, et il parait qu&amp;rsquo;elle est possible aussi en Excel&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;figure class="alignright" style="max-width: 300px; width: 100%;"&gt;&lt;img src="https://drgoulu.com/posts/2014/images/stats_hu_81fae1c181f07c07.webp" srcset="https://drgoulu.com/posts/2014/images/stats_hu_81fae1c181f07c07.webp 320w, https://drgoulu.com/posts/2014/images/stats_hu_64ee39dadb93f1b2.webp 480w, https://drgoulu.com/posts/2014/images/stats_hu_4f036da3e04e65df.webp 600w" sizes="(max-width: 640px) 100vw, 300px" alt="stats" loading="lazy" class="rounded-lg shadow-sm w-full h-auto" data-zoomable /&gt;&lt;figcaption&gt;résumé des réponses&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Une petite dernière pour la route : dans le menu &amp;ldquo;Formulaire&amp;rdquo; on peut &amp;ldquo;afficher le résumé des réponses&amp;rdquo; qui présente les résultats sous une forme graphique qui peut être bien utile.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Les formulaires Google Drive permettent de réaliser facilement des sondages, quiz et concours divers avec toute la puissance et la sécurité (&amp;hellip;) de l&amp;rsquo;infrastructure Google. Ca fait déjà des
dans le C@fé &amp;hellip;&lt;/p&gt;
&lt;h3 id="curation-v30"&gt;Curation V.3.0‎&lt;/h3&gt;
&lt;p&gt;Rien à faire, il n&amp;rsquo;y a toujours pas mieux pour suivre les sites intéressants que les
. J&amp;rsquo;ai longtemps utilisé
avec lequel j&amp;rsquo;ai commencé à faire de la
. En effet, en cochant simplement les articles que je trouvais intéressants, Google Reader les agrégeait dans un flux RSS &amp;ldquo;de sortie&amp;rdquo; que je pouvais publier sur
.&lt;/p&gt;
&lt;p&gt;Puis Google a annoncé la fermeture de Reader (toujours incompréhensible pour moi) et j&amp;rsquo;ai utilisé
. C&amp;rsquo;était une bonne idée : Scoop.it permet d&amp;rsquo;agréger non seulement des flux RSS, mais aussi des tweets, le contenu de pages Facebook et de recherches Google. On peut créer ainsi plusieurs &amp;ldquo;topics&amp;rdquo; thématiques, et de jolis widgets comme celui ci-contre à droite. Mais le point fort de Scoop.it, c&amp;rsquo;est ses possibilités de partage : chaque contenu &amp;ldquo;scoopé&amp;rdquo; peut être partagé automatiquement sur Twitter, Facebook, Gogle+ et Tumblr, entre autres.&lt;/p&gt;
&lt;p&gt;Scoop.it, c&amp;rsquo;est vraiment bien, mais &amp;hellip; il y a un problème rédhibitoire : les liens du contenu partagé sont modifiés pour conduire les visiteurs sur la page Scoop.it du topic, et pas directement vers l&amp;rsquo;article original. Ceci a trois conséquences que je trouve gênantes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;La première n&amp;rsquo;est pas trop grave : les lecteurs doivent cliquer deux fois pour arriver à l&amp;rsquo;article qui les intéresse, une fois sur la page où ils voient le contenu partagé, puis une seconde fois sur la page Scoop.it.&lt;/li&gt;
&lt;li&gt;La seconde fausse les analyses de trafic, qui semble provenir de Scoop.it plutôt que du site de partage. Ainsi par exemple mon site a accueilli plus de 2000 visiteurs passés par Scoop.it en un an sans qu&amp;rsquo;il me soit possible de déterminer où ces 2000 personnes ont initialement découvert l&amp;rsquo;article qui les intéressait.&lt;/li&gt;
&lt;li&gt;La troisième touche le droit d&amp;rsquo;auteur : les outils de partage qui changent les liens diffusent le contenu d&amp;rsquo;autrui en coupant le lien vers la source, qui est parfois le seul élément identifiant l&amp;rsquo;auteur. Je me suis soudain aperçu que
 &amp;ldquo;rebloguait&amp;rdquo; automatiquement les articles que je trouvais intéressants, parfois en me les attribuant implicitement puisqu&amp;rsquo;il n&amp;rsquo;y avait plus de mention du site original.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Je me suis donc mis en chasse de nouveaux outils de curation, et après quelques essais j&amp;rsquo;ai choisi le &amp;ldquo;trio de la curation V.3&amp;rdquo; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
 comme agrégateur de flux. Il offre grosso-modo les fonctionnalités de Google Reader,  une
, plus une
 (en fait un plugin d&amp;rsquo;un agrégateur plus général). Chaque jours je parcours une centaine d&amp;rsquo;articles en sautant d&amp;rsquo;un à l&amp;rsquo;autre en pressant la touche
\[j\], et si je le trouve intéressant je le lis et je presse
\[s\]comme &amp;ldquo;star&amp;rdquo;. Ca le marque comme favori et l&amp;rsquo;ajoute à mon
.&lt;/li&gt;
&lt;li&gt;
Je pourrais utiliser directement CommaFeed pour partager le contenu sur Facebook, Twitter, Google+ et autres (mais pas Tumblr). Mais surtout, il me faudrait le faire manuellement : 6 ou 8 clicks de plus, c&amp;rsquo;est trop. Alors j&amp;rsquo;ai utilisé
, un service qui permet d&amp;rsquo;automatiser des tâches internet en créant des &amp;ldquo;recettes&amp;rdquo; de la forme If This Then That . J&amp;rsquo;ai ainsi créé des &amp;ldquo;recettes&amp;rdquo; qui partagent automatiquement le contenu de mon flux de sortie vers mes pages Facebook, Google+, App.net et Tumblr. Automatiquement. Rien d&amp;rsquo;autre à faire :-)  (Pour Twitter j&amp;rsquo;hésite encore&amp;hellip;)&lt;/li&gt;
&lt;li&gt;Et j&amp;rsquo;utilise toujours Scoop.it pour atteindre les utilisateurs de cette plateforme et profiter des beaux widgets, mais je n&amp;rsquo;utilise plus les outils de partage. En attendant qu&amp;rsquo;IFTTT permette de &amp;ldquo;scooper&amp;rdquo; automatiquement, j&amp;rsquo;utilise le flux de sortie comme unique source dans Scoop.it et je &amp;ldquo;scoope&amp;rdquo; à la main tout ce que j&amp;rsquo;ai préalablement sélectionné dans CommaFeed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tout ça ne me demande en définitive pas plus d&amp;rsquo;efforts que de tourner les pages d&amp;rsquo;un journal en papier, et je peux me concentrer sur la lecture tout en gardant une trace dont vous pouvez profiter où vous le souhaitez.&lt;/p&gt;
&lt;h3 id="networkx"&gt;NetworkX&lt;/h3&gt;
&lt;p&gt;
 est une librairie Python permettant de représenter et traiter des problèmes de graphes. Je l&amp;rsquo;utilise professionnellement assez intensivement ces temps-ci pour un
, mais l&amp;rsquo;autre jour il m&amp;rsquo;a permis de résoudre le
 du
 en quelques lignes seulement. En fait la plupart servent à lire le fichier des données, puis la partie intéressante tient en une seule ligne :&lt;/p&gt;
\[source lang="Python"\]&lt;p&gt;print G.size(weight=&amp;lsquo;weight&amp;rsquo;) - minimum_spanning_tree(G, weight=&amp;lsquo;weight&amp;rsquo;).size(weight=&amp;lsquo;weight&amp;rsquo;)&lt;/p&gt;
\[/source\]&lt;p&gt;Fort non ? Hélas il me semble que peu de problèmes du Project Euler concernent les graphes, donc je ne vais pas pouvoir améliorer mon score rapidement &amp;hellip;&lt;/p&gt;
&lt;h3 id="2048"&gt;2048&lt;/h3&gt;
&lt;p&gt;
Cet article serait paru il y a trois jours si je n&amp;rsquo;étais pas tombé sur
, le jeu addictif du moment. C&amp;rsquo;est un jeu tellement simple qu&amp;rsquo;il aurait du être inventé avant Pac-Man. Et on voit tout de suite comment faire : placer les puissances de 2 les unes à côté des autres pour former une chaîne croissante et propager ainsi les sommes pour arriver à former enfin, après 1024 coups au minimum, la tant convoitée pièce 2048. Il m&amp;rsquo;a fallu 3 jours. Enfin 3 soirs. 3 nuits&amp;hellip;&lt;/p&gt;
&lt;p&gt;A un certain moment j&amp;rsquo;en ai eu marre et voulu utiliser la bonne vieille méthode pour résoudre les problèmes compliqués : programmer. Mais Matt Overlan a été plus rapide et efficace :
 et est très instructif. Je crois que c&amp;rsquo;est la première fois de ma vie qu&amp;rsquo;un ordinateur m&amp;rsquo;apprend à résoudre un casse-tête plutôt que l&amp;rsquo;inverse. Peu après avoir observé le solveur parvenir au 2048, j&amp;rsquo;ai appris à dominer ma tentation d&amp;rsquo;additionner coûte que coûte les nombres les plus élevés et à conserver des lignes ou des colonnes de 4 cases &amp;ldquo;bloquées&amp;rdquo;, et j&amp;rsquo;ai gagné.&lt;/p&gt;
&lt;p&gt;Après certains passent au 
 voire au 
, mais je crois que je vais plutôt attaquer la version &amp;ldquo;
&amp;rdquo; de Valentine. Un peu déroutant de prime abord, mais j&amp;rsquo;aime beaucoup l&amp;rsquo;idée un peu holiste qu&amp;rsquo;il y a là derrière&amp;hellip; Bravo !&lt;/p&gt;</description></item><item><title>Tels que Le Corbeau, Le Renard</title><link>https://drgoulu.com/2009/05/14/tels-que-le-corbeau-le-renard/</link><pubDate>Thu, 14 May 2009 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2009/05/14/tels-que-le-corbeau-le-renard/</guid><description>&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://drgoulu.com/posts/2009/images/185758_4c5b65586a9a4_hu_1f2a3aff6921af32.webp 320w, https://drgoulu.com/posts/2009/images/185758_4c5b65586a9a4_hu_e9bf044b15af8e33.webp 480w, https://drgoulu.com/posts/2009/images/185758_4c5b65586a9a4_hu_4945fb85428db825.webp 533w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://drgoulu.com/posts/2009/images/185758_4c5b65586a9a4_hu_1f2a3aff6921af32.webp"
width="533"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
Une petite oeuvre
pour changer. Suite à un petit délire autour de la machine à café, voici la célèbre fable de La Fontaine
et re-traduit du chinois en français :&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;_Tels que Le Corbeau, L_e Renard&lt;/p&gt;
&lt;p&gt;Maître Corbeau sur arbre Walsh Organisation des Nations Unies, Un fromage dans sa bouche. Maître Renard, par l&amp;rsquo;odorat, C&amp;rsquo;est dans cette langue: &amp;ldquo;Hé, Monsieur Bonjour, Du Corbeau. Tu es magnifique! Vous voyez! Ne pas mentir, si votre Ramage Relatif à vos plumes Vous êtes le Tiger Woods de Phoenix. &amp;quot; International Consumer Electronics Show mots musique arabe Corbeau connecter Golf Club Nord-Pas de Deux Envoyer; Montrer leurs belles voix Il ouvre un large bec et d&amp;rsquo;ouvrir de sa proie. Fox, la fin de l&amp;rsquo;année, a dit: &amp;ldquo;Mon bon Monsieur, Chaque flatteur Le coût de la vie de ceux qui l&amp;rsquo;écoutent Cette leçon vaut bien un fromage, sans doute à ce sujet. &amp;quot; Crow, la honte et la confusion, Swear, un peu plus tar_d que cela prendrait plus._&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Un certain nombre de mots anglais et la merveilleuse allusion à Tiger Woods trahissent l&amp;rsquo;utilisation de l&amp;rsquo;anglais comme langue intermédiaire.&lt;/p&gt;
&lt;p&gt;Quelques essais de passage par d&amp;rsquo;autres langues révèlent des demi surprises , comme le fait que le mot &amp;ldquo;Corbeau&amp;rdquo; n&amp;rsquo;est pas traduit partout : dans les expressions &amp;ldquo;Maître Corbeau&amp;rdquo; ou &amp;ldquo;Monsieur du Corbeau&amp;rdquo;, il est interprété comme un nom propre.&lt;/p&gt;
&lt;p&gt;Quant aux Nations Unies  j&amp;rsquo;imagine que l&amp;rsquo;idéogramme correspondant signifie aussi &amp;ldquo;perché&amp;rdquo;, et que l&amp;rsquo;International Consumer Electronics Show résulte du &amp;ldquo;ces&amp;rdquo; de &amp;ldquo;à ces mots&amp;rdquo; interprété comme un acronyme&amp;hellip;&lt;/p&gt;
&lt;p&gt;Bref, il y a encore quelques bricoles à améliorer dans le domaine de la traduction automatique, mais en attendant ça peut quand même être un peu utile, et très rigolo.&lt;/p&gt;
&lt;p&gt;(edit : j&amp;rsquo;ai répété le test tous les 2 ans environ, les résultats sont dans les commentaires)&lt;/p&gt;</description></item><item><title>Google trie 1 PetaByte de données !</title><link>https://drgoulu.com/2008/11/22/tri/</link><pubDate>Sat, 22 Nov 2008 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2008/11/22/tri/</guid><description>&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://drgoulu.com/posts/2008/images/12217e99baa824ef61d7941a70ea03f7_hu_5f0929e09bf105c7.webp 240w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://drgoulu.com/posts/2008/images/12217e99baa824ef61d7941a70ea03f7_hu_5f0929e09bf105c7.webp"
width="240"
height="161"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
Pour trier un jeu de 72 cartes, je prends une carte de mon jeu mélangé, et je la pose sur la table. J&amp;rsquo;en prends une seconde, et je la place sur la table avant ou après la première selon l&amp;rsquo;ordre que je souhaite. La troisième carte peut aller avant ou après les deux premières, ou être insérée entre les précédentes, et ainsi de suite jusqu&amp;rsquo;à ce que toutes les cartes soient triées dans l&amp;rsquo;ordre sur la table, ce qui me prend un peu plus d&amp;rsquo;une minute.&lt;/p&gt;
&lt;h3 id="un-terabyte-pour-commencer"&gt;Un TeraByte pour commencer&lt;/h3&gt;
&lt;p&gt;Dans le même temps de 68 secondes,
, améliorant d&amp;rsquo;un facteur 3 le
obtenu plus tôt cette année. Suivant les règles du  &amp;ldquo;
&amp;rdquo; proposé par
en 1998, les cartes contenaient 100 bytes, ce qui représente au total un TeraByte, l&amp;rsquo;équivalent, grosso-modo, d&amp;rsquo;un annuaire qui inclurait tous les habitants de la planète.&lt;/p&gt;
&lt;p&gt;Un TeraByte, c&amp;rsquo;est la capacité d&amp;rsquo;un gros disque dur actuel, mais on ne peut y lire ou écrire &amp;ldquo;que&amp;rdquo; 300 MegaByte par seconde : il faudrait au mieux une heure pour lire les donner à trier dans une mémoire de 1000 GigaByte (qui n&amp;rsquo;existe pas&amp;hellip;) et une autre heure pour réécrire la liste triée, sans compter le temps du tri proprement dit . Google a donc utilisé 1000 ordinateurs, et au moins autant de disques durs formant une partie du &amp;ldquo;Google File System&amp;rdquo;
, le gigantesque système de stockage de Google.&lt;/p&gt;
&lt;h3 id="trions-en-parallèle"&gt;Trions en parallèle&lt;/h3&gt;
&lt;p&gt;Mais comment trier les mêmes données à plusieurs? Reprenons le jeu de 72 cartes et divisions le en 2 tas de 36 cartes mélangées, un pour toi, un pour moi. Nous pourrions placer nos cartes sur une seule ligne sur la table et espérer le faire 2 fois plus vite, mais problème peut survenir si nous voulons simultanément insérer nos cartes au même endroit : comment les placer dans le bon ordre dans ce cas ?  Soit on doit alors comparer nos deux cartes et éventuellement les intervertir avant de les insérer, soit on doit convenir d&amp;rsquo;insérer les cartes à tour de rôle, ce qui ralentit considérablement l&amp;rsquo;opération. Avec 1000 ordinateurs, on ne va pas s&amp;rsquo;en sortir beaucoup mieux car c&amp;rsquo;est visiblement l&amp;rsquo;accès à la table (=mémoire), unique, qui forme un goulot d&amp;rsquo;étranglement : pas efficace.&lt;/p&gt;
&lt;p&gt;Une autre approche serait que je trie mes 36 cartes et toi tes 36 cartes indépendamment, puis que nous réunissions nos deux piles triées, ce qui est très rapide : je pose mes cartes une à une tant qu&amp;rsquo;elles viennent avant celle que je vois sur le haut de ta pile, et quand je ne peux plus en poser, tu poses les tiennes tant qu&amp;rsquo;elles viennent avant celle que je ne pouvais plus poser etc.&lt;/p&gt;
&lt;p&gt;On peut faire même mieux en échangeant astucieusement nos cartes plutôt que de reformer une seule pile. Si je trie les carreaux et coeur, et toi les trèfles et pique, plus besoin de reformer une pile unique à la fin : commençons par nous échanger les cartes qui n&amp;rsquo;ont pas la bonne couleur, puis trions nos tas chacun sur notre table, et voilà !&lt;/p&gt;
&lt;figure class="alignright" style="max-width: 280px; width: 100%;"&gt;&lt;img src="https://drgoulu.com/posts/2008/images/d4e5d0a778dba725091d8317e6bac939.gif" alt="Animation de lalgorithme de tri quicksort, nettement plus efficace sur un ordinateur que le tri par insertion" loading="lazy" class="rounded-lg shadow-sm w-full h-auto" /&gt;&lt;figcaption&gt;Animation de l&amp;rsquo;algorithme de tri &amp;quot;quicksort&amp;quot;.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 id="quicksort"&gt;QuickSort&lt;/h3&gt;
&lt;p&gt;Voilà qui ressemble furieusement à l&amp;rsquo;
illustré ci-contre : on commence par échanger les données plus grande qu&amp;rsquo;un pivot (seuil bleu) de la première moitié contre celles plus petites que le seuil de la 2ème moitié. Puis on peut répéter l&amp;rsquo;opération entre le premier quart et le second d&amp;rsquo;une part, et le 3ème et le 4ème d&amp;rsquo;autre part, et ainsi de suite. Si on a un nombre de données qui est une puissance de 2, on peut tout trier par simples échanges, et si on dispose aussi d&amp;rsquo;un nombre de processeurs qui soit une puissance de deux, on peut répartir le travail très efficacement. A quelques variations près, c&amp;rsquo;est cet algorithme
qui est utilisé pour trier de très grosses quantités de données.&lt;/p&gt;
&lt;h3 id="mapreduce"&gt;MapReduce&lt;/h3&gt;
&lt;p&gt;S&amp;rsquo;il y a un sujet sur lesquel j&amp;rsquo;aurais du me documenter avant d&amp;rsquo;
, c&amp;rsquo;est
. Le principe est tout simple :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le programmeur écrit :
&lt;ul&gt;
&lt;li&gt;une fonction &amp;ldquo;map&amp;rdquo; qui sera appliquée à chaque donnée et produira un résultat intermédiaire&lt;/li&gt;
&lt;li&gt;une fonction &amp;ldquo;reduce&amp;rdquo; qui regroupera les résultats intermédiaires de &amp;ldquo;map&amp;rdquo; pour produire le résultat final&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;on donne ces deux fonctions à MapReduce, qui se charge de les exécuter de façon efficace sur beaucoup de donnée sur beaucoup de disques durs et beaucoup d&amp;rsquo;ordinateurs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le MapReduce de Google contient en fait un algorithme de partitionnement qui répartir les résultats des &amp;ldquo;map&amp;rdquo; sur les &amp;ldquo;reduce&amp;rdquo;, et un algorithme de tri incorporé à la partie &amp;ldquo;Reduce&amp;rdquo;, car les fonctions &amp;ldquo;reduce&amp;rdquo; peuvent presque toujours être rendues plus efficaces si leurs données sont triées. De ce fait, il semblerait que le record du tri ait été obtenu avec une fonction &amp;ldquo;map&amp;rdquo; triviale, et une &amp;ldquo;reduce&amp;rdquo; qui ne l&amp;rsquo;est pas moins!&lt;/p&gt;
&lt;p&gt;MapReduce est probablement la plus géniale idée des ingénieurs de Google, et une contribution majeure à l&amp;rsquo;informatique du futur. Le code n&amp;rsquo;est pas public, mais
.  D&amp;rsquo;autre part la fondation Apache a un
, qui se base sur
, leur équivalent du Google File System. C&amp;rsquo;est en utilisant ce système + 1000 lignes de Java seulement que Yahoo! a pu trier le TeraByte en 209 secondes
. 3x moins bien que Google, c&amp;rsquo;est quand même pas mal du tout&amp;hellip;&lt;/p&gt;
&lt;p&gt;Pour en savoir plus sur MapReduce vous pouvez lire la référence
, et/ou :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;regarder cette vidéo &lt;div class="my-6 mx-auto" style="max-width: 760px; width: 100%;"&gt;
&lt;div class="w-full relative rounded-lg overflow-hidden shadow-md bg-black" style="padding-bottom: 56.25%; height: 0;"&gt;
&lt;iframe
src="https://www.youtube-nocookie.com/embed/NXCIItzkn3E"
title="YouTube video player"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
loading="lazy"&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;consulter ces
, plus techniques, avec exemple de code
et performances&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="et-un-petabyte-un-"&gt;Et un
, un !&lt;/h3&gt;
&lt;p&gt;Une fois qu&amp;rsquo;on a un stockage distribué (GFS), un système de traitement parallèle massif (MapReduce) et quelques milliers d&amp;rsquo;ordinateurs, pourquoi se limiter à trier un TeraByte ? Comme ils le disent dans
, Google était &amp;ldquo;curieux de voir ce qui arrive si on essaie avec un PetaByte&amp;rdquo;. 1000x plus quoi. Juste pour voir&amp;hellip;&lt;/p&gt;
&lt;p&gt;Ca a pris 6 heures et 2 minutes, soit 21720 secondes sur 4000 ordinateurs. Ramené au même nombre d&amp;rsquo;ordinateurs, ça a donc pris &amp;ldquo;seulement&amp;rdquo; 1277x plus de temps pour trier 1000x plus de données. C&amp;rsquo;est assez efficace si l&amp;rsquo;on considère que la complexité d&amp;rsquo;un algorithme comme QuickSort est O(N.log N) : sur un seul ordinateur, trier 1000x plus de données prend théoriquement 1000x10 = 10'000x plus de temps. Mais en répartissant le tri sur 4 fois plus d&amp;rsquo;ordinateurs, on divise ce temps par 4 et en plus on divise par 4 la taille des données : on devrait se retrouver avec 250x8/4 = environ 500x plus de temps. Un facteur 1277 c&amp;rsquo;peut sembler nettement plus, mais c&amp;rsquo;est normal en raison des communications supplémentaires entre les ordinateurs.&lt;/p&gt;
&lt;p&gt;Le tri du PetaByte pose une autre problème intéressant : les données étaient réparties sur 48'000 disques durs et statistiquement, en 6 heures de calcul, au moins un des disques tombe en panne
! Il faut donc que les données triées soient redondantes pour que l&amp;rsquo;on puisse remplacer le disque fautif sans interrompre l&amp;rsquo;exécution du tri, ce qui illustre une autre fonctionnalité remarquable du Google File System &amp;hellip;&lt;/p&gt;
&lt;h3 id="et-après-"&gt;Et après ?&lt;/h3&gt;
&lt;p&gt;Peu de groupes au monde disposent d&amp;rsquo;assez de ressources pour tenter de faire mieux que Google. Mais heureusement, les
sont ouverts à d&amp;rsquo;autres catégories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la catégorie &amp;ldquo;penny&amp;rdquo; consiste à trier le plus de nombres possibles pour un &amp;ldquo;cout&amp;rdquo; d&amp;rsquo;un penny, environ 1.3 centimes d&amp;rsquo;Euro. Le record actuel a été obtenu sur un PC doté d&amp;rsquo;un AMD 64 sous Linux, mais surtout de 4 disques dur SATA, qui a trié 1'812'000 enregistrements de 100 bytes en 2.408 secondes&lt;/li&gt;
&lt;li&gt;la catégorie &amp;ldquo;Minute&amp;rdquo; limite le temps de calcul à 60 secondes. Une machine parallèle du MIT a trié 2.140 Milliards d&amp;rsquo;enregistrements de 100 bytes toujours en 2007.&lt;/li&gt;
&lt;li&gt;la catégorie &amp;ldquo;
&amp;rdquo; me semble plus intéressante au niveau du matériel que du logiciel : il s&amp;rsquo;agit de trier un maximum de nombres par
d&amp;rsquo;énergie consommée par l&amp;rsquo;ordinateur. Le record appartient à un ordinateur portable utilisant un processeur intel Mobile Core 2 Duo doté de 13 (!) disques durs, et qui trie environ 11'300 enregistrements par Joule
. Si les machines de Google avaient la même efficacité énergiétique, le tri du PetyBytes aurait consommé 0.885 GigaJoule, soit 246KWh. Répartis sur 6 jours, ça donne une puissance de 1.7 KW seulement.
. Mais avec 4000 gros PC et 48'000 disques durs, Google est probablemet autour de 20x plus.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="et-les-spaghetti-dans-tout-ça-"&gt;Et les spaghetti dans tout ça ?&lt;/h3&gt;
&lt;p&gt;Je ne peux me résoudre à terminer un article sur le tri sans parler du
qui m&amp;rsquo;avait émerveillé il y a près de 25 ans déjà
.&lt;/p&gt;
&lt;p&gt;Comme on l&amp;rsquo;a vu plus haut, les meilleurs algorithmes de tri existant ont une complexité O(N.Log N) : le temps de calcul augmente plus vite que le nombre des données, et malgré quelques progrès dus à la parallélisation, il n&amp;rsquo;existe pas de tri informatique général* en O(N).&lt;/p&gt;
&lt;p&gt;Pourtant, des spaghettis pourraient réussir là où les
patinent :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;on coupe un spaghetti à une longueur représentant le premier enregistrement à trier ramené à un nombre. On coupe un autre spaghetti à la longueur du second nombre, et ainsi de suite pour tous les nombres, et en un temps O(N) on obtient N spaghettis.&lt;/li&gt;
&lt;li&gt;on pose verticalement la botte de spaghettis sur une table plane de façon à tasser tous les spaghettis contre la table. Ceci prend un temps constant, très court et indépendant de N et ne compte donc pas dans la complexité globale&lt;/li&gt;
&lt;li&gt;En posant une planche enduite de colle sur la botte, on extrait le spaghetti le plus long, on le mesure, on retransforme le nombre en une donnée qu&amp;rsquo;on écrit au bas de la liste triée et on recommence N fois, pour chaque spaghetti.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Voilà, les spaghettis permettent de trier nos enregistrements en un temps proportionnel à N ! Trier 1000x plus de spaghettis prendra exactement 1000x plus de temps. En fait, si on disposait d&amp;rsquo;une machine capable de couper puis de mesurer 150 millions de spaghetti à la seconde, elle aurait égalé la machine de Google sur le TeraByte, et l&amp;rsquo;aurait battu sur le PetaByte, en 18.8 heures seulement :-)&lt;/p&gt;
&lt;p&gt;Plus sérieusement, si on a besoin de trier des objets physiques (des grains de sable, des protéines, des ADN ?), il pourrait être intéressant de ne pas oublier la leçon des spaghetti : certains dispositifs physiques peuvent être plus rapides que les plus puissants ordinateurs
&lt;/p&gt;
&lt;h3 id="références"&gt;Références&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span id="ref-1"&gt;&lt;/span&gt;Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung &amp;ldquo;
&amp;rdquo;, 19th ACM Symposium on Operating Systems Principles, Lake George, NY, October, 2003.&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-2"&gt;&lt;/span&gt;Jeffrey Dean and Sanjay Ghemawat, &amp;ldquo;
&amp;rdquo; OSDI'04: Sixth Symposium on Operating System Design and Implementation, San Francisco, CA, December, 2004.&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-3"&gt;&lt;/span&gt;Jim Wyllie, &amp;ldquo;
&amp;rdquo;, IBM, February 4, 1999&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-4"&gt;&lt;/span&gt;Owen O’Malley, &amp;ldquo;
&amp;rdquo;, Yahoo!, May 2008&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-5"&gt;&lt;/span&gt;
: records de tri de données depuis 1987&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-6"&gt;&lt;/span&gt;“
“  Datamation, V 31.7, April 1985, pp 112-118.&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-7"&gt;&lt;/span&gt;Eduardo Pinheiro, Wolf-Dietrich Weber and Luiz André Barroso, &amp;ldquo;
&amp;rdquo;, Google Inc. Proceedings of the 5th USENIX Conference on File and Storage Technologies (FAST’07), February 2007.&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-8"&gt;&lt;/span&gt;Suzanne Rivoire et al. &amp;ldquo;
&amp;quot;,SIGMOD’07, June 11–14, 2007, Beijing, China&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-9"&gt;&lt;/span&gt;Dewdney, A. K.&amp;ldquo;On the spaghetti computer and other analog gadgets for problem solving&amp;rdquo;, Scientific American, (June 1984), 250 (6): 19-26&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-10"&gt;&lt;/span&gt;Niall Murphy et al. &amp;ldquo;
&amp;rdquo;,
,2008, Vol 4 nr 1, pages 3-12&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Note* : il existe des algorithmes de tri de complexité linéaire sur des données satisfaisant certaines hypothèses, comme Hervé me l&amp;rsquo;a fait remarquer dans un commentaire&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Sommes Egales de Nombres Premiers Consécutifs</title><link>https://drgoulu.com/2008/06/03/sommes-egales-de-nombres-premiers-consecutifs/</link><pubDate>Tue, 03 Jun 2008 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2008/06/03/sommes-egales-de-nombres-premiers-consecutifs/</guid><description>&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://drgoulu.com/posts/2008/images/389c66e7ddab342c9a24fd6e80fd3c65_hu_fd262a323e2485f5.webp 320w, https://drgoulu.com/posts/2008/images/389c66e7ddab342c9a24fd6e80fd3c65_hu_b848df796048d1a5.webp 480w, https://drgoulu.com/posts/2008/images/389c66e7ddab342c9a24fd6e80fd3c65_hu_24c0678be981a15f.webp 512w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://drgoulu.com/posts/2008/images/389c66e7ddab342c9a24fd6e80fd3c65_hu_fd262a323e2485f5.webp"
width="512"
height="512"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
Le quatrième et dernier problème de la
mérite un article à lui tout seul. (J&amp;rsquo;ai parlé des trois autres dans
)&lt;/p&gt;
&lt;p&gt;Il s&amp;rsquo;agit de trouver le plus petit
P qui soit en même temps :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la somme de 9 nombres premiers consécutifs&lt;/li&gt;
&lt;li&gt;la somme de 119 nombres premiers consécutifs&lt;/li&gt;
&lt;li&gt;la somme de 215 nombres premiers consécutifs&lt;/li&gt;
&lt;li&gt;et la somme de 675 nombres premiers consécutifs !&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(les nombres 9, 119, 215 et 675 sont différents pour chaque concurrent&amp;hellip;)&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est étonnant, mais beaucoup de nombres premiers sont des sommes de nombres premiers consécutifs (abrégé SNPC ci après), par exemple :&lt;/p&gt;
&lt;p&gt;5+7+11+13+17 = 53 7+11+13+17+19 =67 11+13+17+19+23 =83&lt;/p&gt;
&lt;p&gt;De plus, il est fréquent qu&amp;rsquo;un même nombre premier soit égal à plusieurs SNPC. Par exemple sur
on mentionne:&lt;/p&gt;
&lt;p&gt;34421 = 269 + … + 709 (71 nombres premiers) 34421 = 1429 + … + 1571 (23 nombres premiers) 34421 = 3793 + … + 3853 (9 nombres premiers) 34421 = 4889 + … + 4937 (7 nombres premiers) 34421 = 11467 + … + 11483 (3 nombres premiers)&lt;/p&gt;
&lt;p&gt;Le nombre P recherché n&amp;rsquo;est donc peut-être pas très grand, d&amp;rsquo;autant que la somme des 675 premiers nombres premiers ne vaut que 1'578'242. Il n&amp;rsquo;y a probablement pas besoin de calculer en &amp;ldquo;bigint&amp;rdquo;, les entiers sur 32 bits, voire 64 disponibles avec n&amp;rsquo;importe quel langage de programmation devraient suffire. Par contre, il est pratique de disposer de fonctions prédéfinies pour manipuler des nombres premiers, c&amp;rsquo;est pourquoi j&amp;rsquo;ai choisi d&amp;rsquo;utiliser
.&lt;/p&gt;
&lt;p&gt;Les fonctions suivantes suffisent pour résoudre le problème posé: &lt;em&gt;(code modifié le 4/6/8 suite aux commentaires de b0z0)&lt;/em&gt;&lt;/p&gt;
\[gist id="0e35207dedf4e337c937"\]&lt;p&gt;La fonction SCP (Sum of Consecutive Primes) renvoie la somme des n nombres premiers consécutifs en commençant par le i-ème nombre premier en utilisant la fonction prédéfinie Prime&lt;/p&gt;
\[j\]&lt;p&gt; qui renvoie directement le j-ème nombre premier.&lt;/p&gt;
&lt;p&gt;Cette somme n&amp;rsquo;étant pas forcément un nombre premier, la fonction PSP (Prime Sum of Primes) appelle répétitivement SCP en augmentant i jusqu&amp;rsquo;à ce que la somme soit un nombre premier, vérifié grâce au test de primalité
, une fonction non triviale bien utile ici. Pour une raison expliquée plus bas, PSP renvoie une paire de résultats : la somme, et l&amp;rsquo;indice du premier nombre premier de la somme.&lt;/p&gt;
&lt;p&gt;Enfin, la fonction CPSP (Compound Prime Sum of Primes) implante l&amp;rsquo;algorithme que j&amp;rsquo;ai inventé pour la circonstance. Elle prend en paramêtre la liste des nombres de nombres premiers consécutifs sommés. Pour résoudre notre problème, on appellera  CPSP&lt;/p&gt;
\[{675, 215, 119, 9}\]&lt;ol&gt;
&lt;li&gt;on initialise une liste p avec les n résultats de PSP obtenus pour chacun des nombres de nombres premiers consécutifs à additioner. Ainsi, pour CPSP
\[{675, 215, 119, 9}\], p est initialisé à {{1583291,2},{149993,15},{41641,10},{127,2}}. Autrement dit, 1583291 est le plus petit nombre premier qui soit la somme de 675 nombres premiers consécutifs, et cette somme commence avec le 2ème nombre premier. 149993 est le plus petit nombre premier qui soit la somme de 215 nombres premiers, en commençant par le 15ème, et ainsi de suite&lt;/li&gt;
&lt;li&gt;par paresse (qualité indispensable chez les programmeurs&amp;hellip;) , la détection de la fin de l&amp;rsquo;algorithme est réduite au minimum vital : dès que la liste p n&amp;rsquo;est plus modifiée par l&amp;rsquo;algorithme, on arrête&lt;/li&gt;
&lt;li&gt;Pour chaque élément de la liste p en commençant par le deuxième, on regarde si la somme est inférieure à la somme du premier indice. Si c&amp;rsquo;est le cas, on calcule une somme supérieure en incrémentant l&amp;rsquo;indice correspondant, jusqu&amp;rsquo;à ce que la somme soit égale à la première, ou la dépasse. Après cette étape, la liste p devient {{1583291,10},{1600981,840},{1589563,1526},{1584829,15997}} : on voit que les sommes 2,3 et 4 ont dépassé la somme 1&lt;/li&gt;
&lt;li&gt;Si la somme 1 est plus petite que la somme 2, on augmente la somme 1 jusqu&amp;rsquo;à ce que&amp;rsquo;elle atteigne ou dépasse la somme 2. On arrive ainsi à {{1623917,10},{1600981,840},{1589563,1526},{1584829,15997}}. On boucle au point 2&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Les trois dernières boucles donnent les listes suivantes qui montrent bien le fonctionnement de l&amp;rsquo;algorithme:&lt;/p&gt;
&lt;p&gt;{{8256361,1127},{8112103,3883},{8115539,6728},{8112787,71376}} {{8275409,1130},{8259353,3947},{8264171,6833},{8256383,72536}} {{8275409,1130},{8275409,3954},{8275409,6841},{8275409,72696}}&lt;/p&gt;
&lt;p&gt;et voilà : 8'275'409 est égale à la somme des:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;675 nombres premiers consécutifs à partir du 1130-ème (9109)&lt;/li&gt;
&lt;li&gt;215 nombres premiers consécutifs à partir du 3954-ème (37339)&lt;/li&gt;
&lt;li&gt;119 nombres premiers consécutifs à partir du 6841-ème (68821)&lt;/li&gt;
&lt;li&gt;9 nombres premiers consécutifs à partir du 72696-ème (919421)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Quelques minutes pour choisir le bon outil (Mathematica) + quelques minutes de programmation + 30 secondes de calcul, c&amp;rsquo;est gagné !&lt;/p&gt;</description></item><item><title>Recrutement et Casse-Tête</title><link>https://drgoulu.com/2008/05/17/recrutement-et-casse-tete/</link><pubDate>Sat, 17 May 2008 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2008/05/17/recrutement-et-casse-tete/</guid><description>&lt;p&gt;Si vous souhaitez travailler chez Google ou facebook, voici un petit tuyau : cultivez l&amp;rsquo;art de résoudre des casse-tête, et montrez vos talents sur internet.&lt;/p&gt;
&lt;p&gt;
, on testera votre raisonnement logique dès les premières minutes du premier interview téléphonique, puis on vous cuisinera sur de nombreux autres problèmes plus mathématico-informatiques lors des interviews suivants. En parallèle, vous recevrez un e-mail qui vous incitera à participer aux
, un site extraordinaire sponsorisé par de nombreuses entreprises qui recherchent à la fois des solutions originales à des problèmes très pointus et des développeurs de haut niveau. Un très bon endroit pour se faire remarquer (pas seulement par Google) si vous êtes un mordu d&amp;rsquo;algorithmes. Dommage qu&amp;rsquo;on doive s&amp;rsquo;engager à ne pas parler des problèmes à l&amp;rsquo;extérieur du site TopCoder, parce qu&amp;rsquo;ils sont très jolis.&lt;/p&gt;
&lt;p&gt;Google lance aussi des &amp;ldquo;chasses au trésor&amp;rdquo; sur internet. Là je viens de commencer à participer à
, qui commence très fort: si le robot ci-dessous ne peut aller que vers la droite ou vers le bas, combien y&amp;rsquo;a-t-il de chemins distincts qui le mènent au but ?&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://drgoulu.com/posts/2008/images/a257750efe5059e695eed9af28ef2bc4_hu_2c4d2a69bd9a618e.webp 320w, https://drgoulu.com/posts/2008/images/a257750efe5059e695eed9af28ef2bc4_hu_bbb066b352bf2cd7.webp 480w, https://drgoulu.com/posts/2008/images/a257750efe5059e695eed9af28ef2bc4_hu_5dde9e8079e39906.webp 548w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://drgoulu.com/posts/2008/images/a257750efe5059e695eed9af28ef2bc4_hu_2c4d2a69bd9a618e.webp"
width="548"
height="251"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Vous avez trouvé ? En comptant à la main ? Bien. Mais en fait, pour la chasse au trésor, il faut répondre pour un damier de 56x32 cases (le nombre change pour chaque participant) &amp;hellip; Dans ce cas, la réponse est 232059241971866600926656, ce qui suppose de
et de disposer d&amp;rsquo;une bonne calculatrice &amp;hellip;&lt;/p&gt;
&lt;p&gt;Si c&amp;rsquo;est facebook qui vous tente, il faut visiter
, chosir un des jolis problèmes qui s&amp;rsquo;y trouvent, le résoudre avec un programme en C++, Java, JavaScript, OCaml/SML, Perl, PHP ou Python, ce qui montre bien que les langages de programmation n&amp;rsquo;ont que peu d&amp;rsquo;importance pour ceux qui savent ce qu&amp;rsquo;est un algorithme, et que toutes ces jolis sites web ne sont que du vernis.  Ensuite, il faut envoyer la réponse à { (0xFACEB00C &amp;raquo; 2) en décimal } @ facebook.com.
.&lt;/p&gt;</description></item><item><title>Pourquoi n'y a-t-il pas plus de Google s ?</title><link>https://drgoulu.com/2008/04/16/pourquoi-ny-a-t-il-pas-plus-de-google-s/</link><pubDate>Wed, 16 Apr 2008 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2008/04/16/pourquoi-ny-a-t-il-pas-plus-de-google-s/</guid><description>&lt;p&gt;Dans
Umair Haque analyse pourquoi très peu de startups innovantes arrivent à bouleverser l&amp;rsquo;économie comme Google. Selon lui &amp;ldquo;&lt;em&gt;la raison est très simple. Parce que chaque entreprise qui avait le potentiel de révolutionner l&amp;rsquo;économie dans les 5 dernières années a été vendue bien avant d&amp;rsquo;avoir la possibilité de révolutionner quoi que ce soit.&lt;/em&gt;&amp;rdquo; Et si Google n&amp;rsquo;a pas été ainsi tué dans l&amp;rsquo;oeuf, c&amp;rsquo;est parce que ses fondateurs avaient &amp;ldquo;&lt;em&gt;la conviction de changer le monde pour le meilleur&lt;/em&gt;&amp;rdquo; et n&amp;rsquo;ont pas cherché à se vendre.&lt;/p&gt;
&lt;p&gt;Paul Graham répond à ceci dans
, un excellent essai qui semble plus pertinent si on
ou lu &amp;ldquo;
&amp;rdquo;. Voici la traduction de quelques passages :&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Les fondateurs de Google étaient disposés à vendre dès le début. Ils voulaient simplement plus que ce que les acquéreurs étaient prêts à payer. C&amp;rsquo;est la même chose avec Facebook. Ils auraient vendu, mais Yahoo a offert trop peu (&amp;hellip;)&lt;/p&gt;
&lt;p&gt;D&amp;rsquo;après ce que j&amp;rsquo;ai vu jusqu&amp;rsquo;ici, les startups qui refusent une offre d&amp;rsquo;acquisition finissent généralement par mieux réussir. Pas toujours, mais souvent arrive une offre plus élevée, ou une introduction en Bourse. (&amp;hellip;)&lt;/p&gt;
&lt;p&gt;Même si je suis sûr que Larry Page et Sergey Brin veulent changer le monde, au moins maintenant, la raison pour laquelle Google a survécu pour devenir une grande entreprise indépendante est la même que celle pour laquelle Facebook est jusqu&amp;rsquo;ici restée indépendante : elle est sous-estimée par les acquéreurs. (&amp;hellip;)&lt;/p&gt;
&lt;p&gt;Alors, quelle est la véritable raison pour laquelle il n&amp;rsquo;y a pas plus de Googles? Curieusement, c&amp;rsquo;est la même raison pour laquelle Google et Facebook sont restés indépendants: la finance sous-estime les jeunes entreprises novatrices.&lt;/p&gt;
&lt;p&gt;La raison pour laquelle il n&amp;rsquo;y a pas plus de Googles est que les investisseurs encouragent les jeunes entreprises novatrices à se vendre au lieu de les financer.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Graham se livre ensuite à une attaque en règle du business actuel du capital-risque, montrant que leur objectif de maximiser rendement/risque les conduit à prendre le contrôle, puis à vendre une entreprise réellement innovante plutôt que de financer sa croissance sous la direction de ses fondateurs visionnaires. Graham y voit cependant une opportunité pour une nouvelle espèce d&amp;rsquo;investisseurs, un genre de super business angels qui partageraient la vision des fondateurs, mais avec des moyens leur permettant d&amp;rsquo;assurer le développement de l&amp;rsquo;entrprise, et pas seulement son lancement.&lt;/p&gt;
&lt;p&gt;Référence : &lt;span class="openbook_template5"&gt;&lt;a href="http://openlibrary.org/authors/OL835516A/Daniel_Ichbiah" title="Click to view author in Open Library" target="_blank" rel="noopener"&gt;Daniel Ichbiah&lt;/a&gt; (2007). &lt;a href="http://openlibrary.org/books/OL25646346M/Comment_Google_mangera_le_monde" title="Click to view title in Open Library" target="_blank" rel="noopener"&gt;Comment Google mangera le monde&lt;/a&gt;. Archipel.&lt;span class="Z3988" title="ctx_ver=Z39.88-2004&amp;amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;amp;rft.genre=book&amp;amp;rft.btitle=Comment+Google+mangera+le+monde&amp;amp;rft.isbn=9782841878857&amp;amp;rft.au=Daniel+Ichbiah&amp;amp;rft.pub=Archipel&amp;amp;rft.date=2007"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Google ouvre son infrastructure</title><link>https://drgoulu.com/2008/04/08/google-ouvre-son-infrastructure/</link><pubDate>Tue, 08 Apr 2008 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2008/04/08/google-ouvre-son-infrastructure/</guid><description>&lt;p&gt;Stupéfaction : Google vient de permettre à 10'000 programmeurs d&amp;rsquo;utiliser
, un environnement permettant de développer (en Python) des applications qui fonctionneront directement sur les serveurs de Google, en utilisant certaines technologies propriétaires de Google, et tout ça gratuitement.&lt;/p&gt;
&lt;p&gt;Jusqu&amp;rsquo;ici, Google gardait jalousement sa technologie permettant de stocker et d&amp;rsquo;indexer pratiquement toute l&amp;rsquo;information du web sur des milliers d&amp;rsquo;ordinateurs disséminés à travers le monde. On connaissait cependant l&amp;rsquo;architecture et les principales briques du système :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le
(GFS), permettant de gérer d&amp;rsquo;énormes fichiers répartis et redondants&lt;/li&gt;
&lt;li&gt;
, la base de données &amp;ldquo;orienté colonnes&amp;rdquo; et reposant sur GFS. Bigtable est utilisé par énormément d&amp;rsquo;applications Google, l&amp;rsquo;index du moteur de recherche n&amp;rsquo;étant pas le moindre : c&amp;rsquo;est Bigtable qui retrouve en quelques secondes toutes les pages internet contenant des mots donnés&amp;hellip;&lt;/li&gt;
&lt;li&gt;
 est un programme général permettant de faire simultanément 2 choses avec un très grand nombre de données : une transformation de chaque donnée (Map) et une agrégation des résultats (Reduce). MapReduce sert par exemple à compter le nombre de liens pointant vers chaque page (web link graph reversal), information utilisée pour calculée le
.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tout ceci est expliqué cette passionnante vidéo d&amp;rsquo;une heure, à regarder absolument si vous voulez comprendre.&lt;/p&gt;
&lt;div class="my-6 mx-auto" style="max-width: 640px; width: 100%;"&gt;
&lt;div class="w-full relative rounded-lg overflow-hidden shadow-md bg-black" style="padding-bottom: 56.25%; height: 0;"&gt;
&lt;iframe
src="https://www.youtube-nocookie.com/embed/oRwFpQKgRps"
title="YouTube video player"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
loading="lazy"&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Pourquoi Google met-il ceci à disposition gratuitement ? Lorsqu&amp;rsquo;on sait qu&amp;rsquo; ils n&amp;rsquo;arrivent pas à recruter autant qu&amp;rsquo;ils aimeraient, que les 10'000 comptes ont été réservés en quelques minutes, et qu&amp;rsquo;ils ont les moyens de contrôler puis de racheter toute application intéressante qui résulterait de cette initiative, on peut commencer à apprécier ce coup à sa juste valeur&amp;hellip;&lt;/p&gt;
&lt;p&gt;sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Michael Arrington &amp;ldquo;
, TechCrunch, 5 avril 2008&lt;/li&gt;
&lt;li&gt;Fay Chang &amp;amp; al, &amp;ldquo;
&amp;rdquo;,
&lt;/li&gt;
&lt;li&gt;Jeffrey Dean and Sanjay Ghemawat, &amp;ldquo;
&amp;rdquo;, OSDI 2004&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>