Il y a des gens qui, à propos de certains problèmes, font preuve d’une grande tolérance. C’est souvent parce qu’ils s’en foutent.

Mark Twain

Publicités

The inspiring heroism of Aaron Swartz

5secondsofmayhem:

The internet freedom activist committed suicide on Friday at age 26, but his life was driven by courage and passion

image

The internet activist Aaron Swartz, seen here in January 2009, has died at the age of 26. Photograph: Michael Francis Mcelroy/AP

(updated below)

Aaron Swartz, the computer programmer and internet freedom activist, committed suicide on Friday in New York at the age of 26. As the incredibly moving remembrances from his friends such as Cory Doctorow and Larry Lessig attest, he was unquestionably brilliant but also – like most everyone – a complex human being plagued by demons and flaws. For many reasons, I don’t believe in whitewashing someone’s life or beatifying them upon death. But, to me, much of Swartz’s tragically short life was filled with acts that are genuinely and, in the most literal and noble sense, heroic. I think that’s really worth thinking about today.

At the age of 14, Swartz played a key role in developing the RSS software that is still widely used to enable people to manage what they read on the internet. As a teenager, he also played a vital role in the creation of Reddit, the wildly popular social networking news site. When Conde Nast purchased Reddit, Swartz received a substantial sum of money at a very young age. He became something of a legend in the internet and programming world before he was 18. His path to internet mogul status and the great riches it entails was clear, easy and virtually guaranteed: a path which so many other young internet entrepreneurs have found irresistible, monomaniacally devoting themselves to making more and more money long after they have more than they could ever hope to spend.

But rather obviously, Swartz had little interest in devoting his life to his own material enrichment, despite how easy it would have been for him. As Lessig wrote: “Aaron had literally done nothing in his life ‘to make money’ … Aaron was always and only working for (at least his conception of) the public good.”

Specifically, he committed himself to the causes in which he so passionately believed: internet freedom, civil liberties, making information and knowledge as available as possible. Here he is in his May, 2012 keynote address at the Freedom To Connect conference discussing the role he played in stopping SOPA, the movie-industry-demanded legislation that would have vested the government with dangerous censorship powers over the internet.

Critically, Swartz didn’t commit himself to these causes merely by talking about them or advocating for them. He repeatedly sacrificed his own interests, even his liberty, in order to defend these values and challenge and subvert the most powerful factions that were their enemies. That’s what makes him, in my view, so consummately heroic.

In 2008, Swartz targeted Pacer, the online service that provides access to court documents for a per-page fee. What offended Swartz and others was that people were forced to pay for access to public court documents that were created at public expense. Along with a friend, Swartz created a program to download millions of those documents and then, as Doctorow wrote, “spent a small fortune fetching a titanic amount of data and putting it into the public domain.” For that act of civil disobedience, he was investigated and harassed by the FBI, but never charged.

But in July 2011, Swartz was arrested for allegedly targeting JSTOR, the online publishing company that digitizes and distributes scholarly articles written by academics and then sells them, often at a high price, to subscribers. As Maria Bustillos detailed, none of the money goes to the actual writers (usually professors) who wrote the scholarly articles – they are usually not paid for writing them – but instead goes to the publishers.

This system offended Swartz (and many other free-data activists) for two reasons: it charged large fees for access to these articles but did not compensate the authors, and worse, it ensured that huge numbers of people are denied access to the scholarship produced by America’s colleges and universities. The indictment filed against Swartz alleged that he used his access as a Harvard fellow to the JSTOR system to download millions of articles with the intent to distribute them online for free; when he was detected and his access was cut off, the indictment claims he then trespassed into an MIT computer-wiring closet in order to physically download the data directly onto his laptop.

Read More

Note de lecture : Wicket in Action, par Martijn Dashorst & Eelco Hillenius

Note : 7 ; Un apprentissage progressif, classique et sans surprise mais efficace d’un framework Web à la sauce client riche.

Wicket est un Framework de présentation Web vraiment à part. En effet, c’est à ma connaissance le seul à être statefull. En cela et par sa séparation HTML / Java, il me rappelle beaucoup les frameworks d’IHM Windows avec lesquels j’ai longtemps travaillé (OWL et MFC). C’est sans doute pour cela que je me sens à l’aise avec.

Wicket in action est sans nul doute un très bon tutorial pour comprendre et rentrer dans Wicket, par la pratique.

Le premier chapitre nous présente un incontournable « Hello, World » à la sauce Wicket. C’est très bien … à l’exception de mon incapacité à faire fonctionner cela par moi-même ! En fait, certains ingrédients nécessaires viennent plus tard, beaucoup plus tard ! C’est l’un de mes seuls reproches par rapport à ce livre par ailleurs excellent.

Le second chapitre fait le tour du Framework, une excellent idée, même si au final l’ensemble est un peu lourd à digérer pour un début. Mais les chapitres suivants vont revenir sur chacun des éléments.

Une application web, ça commence par une page, puis deux, puis trois. Avec le troisième chapitre les choses sérieuses commencent et on y construit une vraie amorce d’application Web, avec du HTML et des pages Wicket mappant des composants, une redirection de page, etc… C’est aussi le début de l’application d’exemple du livre. S’il n’y avait qu’un seul chapitre à lire, ce serait celui-ci.

On se plaint parfois de la complexité des modèles Wicket, mais ceux-ci sont admirablement expliqués au chapitre 4, en avançant progressivement sur les types de modèles de plus en plus complexes. Bravo !

Le chapitre 5 sur les liens, labels et répéteurs nous donne l’impression de revisiter une partie du chapitre 3. C’est une impression assez bizarre. Mais la qualité pédagogique est toujours au rendez-vous.

Même long de presque 40 pages, le chapitre 6 sur les formulaires explique clairement les composants de saisie, mais aussi la cinématique de fonctionnement du formulaire, c’est à dire son cycle de vie.

Le chapitre 7 conclut la seconde partie de ce livre en présentant la composition des pages, la manière de modulariser celles-ci et d’améliorer ce faisant la réutilisabilité.

La troisième partie s’attache aux usages avancés de Wicket. Le chapitre 8 ouvre le bal avec le développement de composants réutilisables. Pas franchement facile à suivre.

Plus important (on aurait pu mettre ça en seconde partie), l’utilisation des CSS et des ressources est au cœur du chapitre 9. Un contenu finalement indispensable.

Le chapitre 10 conclut cette 3ème partie, et c’est avec l’inévitable volet Ajax de Wicket. Je ne suis pas franchement sûr que celle-ci soit toujours d’actualité avec l’avancée des librairies Ajax modernes, dont JQuery, pour laquelle une adaptation Wicket existe : WiQuery.

La quatrième partie évoque la mise en production des applications Wicket. On commence au chapitre 11 par évoquer la sécurité et l’usage des contextes de session. Le chapitre 12 parle d’internationalisation. Nécessaire mais ennuyeux.

Le  chapitre 13 s’intéresse à l’intégration avec Spring et Hibernate. C’est un sujet important, mais hélas pas très bien traité ici.

Le dernier chapitre (la mise en production) nous réserve une étonnante surprise : il débute par l’évocation des tests unitaires ! Franchement on aurait pu débuter le livre par ça, ou presque ! Puis on évoque un reste à faire de petits sujets : configuration, logging, monitoring (avec JMX), etc..

Le livre est vraiment excellent. Je le conseille (presque) sans réserve aux personnes souhaitant se mettre à Wicket. Mes réserves, les voici :

Quelques bizarreries dans l’ordonnancement des sujets, mais rien de grave.

Un contenu qui commence à dater : il s’agit de la version 1.3 de Wicket, antérieure à Java 1.5 ; la version courante fait un usage abondant des génériques et rend légèrement obsolète certaines parties de code. Le texte mériterait un rafraichissement !

wicket-inaction-manning

Référence complète : Wicket in Action – Martijn Dashorst & Eelco Hillenius – Manning 2008 – ISBN: 1932394982 ; EAN: 978 1932394986

Wicket in Action


http://www.goodreads.com/book/add_to_books_widget_frame/1932394982?atmb_widget%5Bbutton%5D=atmb_widget_1.png

Agile Playground #5 (en images)

Lors de ce 5ème agile playground, nous étions comme c’est maintenant l’habitude, accueillis chez Valtech. Grand froid et même un début de neige ont retardé l’arrivée des habitués. En fait, le taux de désistement a été particulièrement important : environ 35 participants pour plus de 60 inscrits !

apg5-before01

Bon, ce n’est pas cela qui va nous arrêter. D’autant que cette semaine, Yannick et moi étions impliqués pour une première du “Business Value Fail” que nous avons imaginé ensemble !

Place au choix des sessions pour les participants…

apg5-register01

… et place à la présentation des sessions pour les animateurs.

apg5-presentation01

Le second jeu “les derdians” était animé par Lan Levy.

apg5-presentation02

Ne comptez pas sur moi pour vous dévoiler le Business Value Fail ! En tout cas pas tout de suite. Ce serait dommage si vous n’y avez pas encore participé et que vous comptez le faire.

Bon, finalement je vais quand même soulever un coin du voile.

Aujourd’hui, il y avait 3 équipes

apg5-bvf04

La première…

apg5-bvf06

La seconde…

apg5-bvf11

La troisième

apg5-bvf12

Et … bah, disons une quatrième

apg5-bvf05

Et ça bosse dur pour construire un truc qui ait de la valeur !

apg5-bvf13

A la fin de la dernière itération, présentation des résultats globaux

apg5-bvf15

Et ce pour chacune des équipes

apg5-bvf18

Et calcul et affichage des résultats

apg5-bvf-results

Nous avons terminé par un feedback sur cette première itération du jeu. Beaucoup d’idées utiles et une bonne identification des manques de notre création dans sa première mouture ! Un grand merci à tous les participants qui nous ont tous contribué. Il y aura pas mal de changements dans la version 2, je pense !

Je ne sais pas si on peut qualifier notre session d’effort, mais bon on a eu droit au réconfort.

Chips, bières et tout et tout, quoi. Des recentres et des discussions intéressantes, comme toujours aussi.

apg5-after01

Chips, bières et tout et tout, quoi. Des recentres et des discussions intéressantes, comme toujours aussi.

apg5-after03

Note de lecture : Pro SQL Server 2005 Service Broker, par Klaus Aschenbrenner

Note : 7 ; Une approche complète et didactique du sujet: bravo!

Je n’attends généralement aucun miracle de ce type de livre qui ressemble trop à un texte commandé par l’éditeur. Dans le cas présent, je me suis trompé. Déjà, et c’est important, l’auteur maîtrise parfaitement son sujet, il fait ensuite preuve d’indiscutable qualités pédagogiques, ce qui est bien plus inattendu ! Le livre est volumineux, car il compte 435 pages pour un sujet somme toutes pointu. Mais le livre se veut exhaustif sur le sujet. C’est aussi pourquoi le livre est divisé en deux parties, la première, le « programming model » étant l’introduction, la seconde « Advanced service broker programming » intéressera l’expert ou le DBA. Nous avons donc deux livres en un, en quelques sortes. C’est une bonne chose, car les livres APress sont souvent assez chers.

La première partie est composée de 7 chapitres totalisant 220 pages. Les deux premiers nous offrent un tour complet technique et fonctionnel de Service Broker. C’est un vrai plaisir, et l’on a une idée très clair du fonctionnement et des possibilités de l’outil à cet issu. Le 3ème chapitre complète le tableau en présentant les différentes briques de programmation permettant de mettre en place un service de messagerie : messages, queues, contrats et services. En réalité, on est déjà capable de mettre en œuvre un « hello world » assez élaboré arrivé à ce stade. Le chapitre 4 dédié à l’activation permet d’avoir une vision claire sur les possibilités de déploiement et d’administration des services (cela sera complété en seconde partie). Les 3 derniers chapitres sont consacrés à des sujets déjà avancés : l’écriture de services en .NET avec C#, la gestion des transactions et des services distribués.

Je ne suis pas bien sûr d’être la bonne audience pour la seconde partie, le niveau est un peu élevé pour moi. Il traite de sujets aussi avancés et complexes que les autorisations et l’encryptage, l’architecture SODA (Service Oriented database Architecture, pour le coup ça m’intéresse à nouveau), le développement d’applications en grandeur réelle, la scalabilité et les performances.

Je n’hésite pas à le dire, voici un très bon livre. Le propos est clair et précis, les exemples assez nombreux et pas trop touffus, ils illustrent bien le propos. De plus, l’auteur n’a pas hésité à ajouter de nombreux diagrammes pour expliquer l’architecture ou la cinématique, ce qui manque notoirement souvent à de tels ouvrages. Par contre, et c’est un bon symptôme, il a souvent renoncé aux sacro-saintes copies d’écran, sauf quand elles apportaient réellement quelque chose !

Si Service Broker vous intéresse, c’est LE livre. Une nouvelle édition adressant SQL Server 2012 est bien évidemment parue depuis. Malgré le considérable enbompoint qu’elle a pris au passage, je ne doute guère que la qualité restera au rendez-vous ! Pour Klaus Aschenbrenner, « pro, ça veut dire pro ».

pro-sqlserver2005-service-broker

Référence complète : Pro SQL Server 2005 Service Broker, Learn how to program distributed message applications with SQL Server 2005 Service Broker – Klaus Aschenbrenner – Apress 2007 – ISBN : 1-59059-842-3 ; EAN : 978 1 59059 842 9

Pro SQL Server 2005 Service Broker


http://www.goodreads.com/book/add_to_books_widget_frame/1590598423?atmb_widget%5Bbutton%5D=atmb_widget_1.png

Note de lecture : Implementing Lean Software Development, par Mary et Tom Poppendieck

Note : 7 ; Suite de l’opus précédant…

Le précédant ouvrage des Poppendieck nous avait accoutumé aux pratiques Lean, celui-ci passe en quelque sortes, une seconde couche. Les principes sont à nouveau passés en revue, mais ici on consacre un chapitre par élément (et non par principe) important. Leur mise en valeur s’effectuant essentiellement à l’aide de cas d’exemples, non seulement pour introduire chaque chapitre, mais aussi pour illustrer celui-ci tout au long.

  • Value : La valeur est au centre des principes Lean, non seulement pour délivrer les fonctionnalités apportant le plus de valeur et ce régulièrement (itérativement), mais en délivrant celle-ci le plus rapidement possible en optimisant la chaine de valeur et en focalisant les équipes sur les activités qui délivrent cette valeur.
  • Waste : C’est aussi en focalisant les équipes sur les activités liées au produit final que l’on élimine le gâchis, mais aussi en éliminant les produits semi-finis ou en éradiquant le « hands-off » ou passage de relais formels entre deux équipes. Parmi les 7 origines du gâchis on trouvera également les fonctionnalités inutiles, les défauts, les délais, le réapprentissage et le « task switching », tous symptômes qui peuvent être éliminés à la racine.
  • Speed : La théorie des files d’attente est au centre des préoccupations de rapidité. Ici l’attention est portée sur les temps de cycle, et le moyen le plus efficace pour les raccourcir : l’élimination des temps d’attente
  • People : Le moyen de rendre plus efficace une équipe est de lui confier sa propre destinée! C’est aller plus loin que la simple “responsabilisation”. L’équipe ainsi autodirigée trouve son accomplissement dans son propre travail. Fini la motivation par les bonus et autres salaries variables…
  • Knowledge : Créer de la connaissance, apprendre en faisant. C’est résumer un peu rapidement l’esprit de la chose, mais ici il est question de “set based design” et de refactoring, au final de différer les décision jusqu’au moment où l’on a appris suffisamment d’éléments pour opérer une décision judicieuse et non à priori.
  • Quality: Ce point est abordé de manière peu convaincante dans l’ouvrage, sauf peut-être quand sont évoqués les 5 “S”: Sort, Systematize, Shine, Standardize et Sustain. Bien entendu y sont aussi évoqués les tests. La catégorisation des tests qui est proposée est à mon avis très pertinente.
  • Partners : Cette partie traité des partenariats, des contrats et de l’externalisation. Lean approche cette question par le “win win” et les contrats à long terme.

La grande qualité de cet livre sont les histories qui servent d’exemples aux différentes questions abordées. Beaucoup de points restent hélas un peu abstraits, et malgré la qualité du texte, on en est toujours à se demander à la fin: “mais comment implémenter Lean dans le monde du développement logiciel ?”.

implementing-lean-soft-dev

Référence complète : Implementing Lean Software Development, From concept to cash – Mary Poppendieck & Tom Poppendieck – Addison Wesley / Signature series 2006 – ISBN : 0-321-43738-1

Implementing Lean Software Development: From Concept to Cash


http://www.goodreads.com/book/add_to_books_widget_frame/0321437381?atmb_widget%5Bbutton%5D=atmb_widget_1.png