Planet Squeak fr

blogs about Squeak, Pharo, Croquet and family
planet squeak - planet squeak es - planet squeak jp - planet squeak fr - planet croquet - planet squeak code - planet smalltalk

June 22, 2011

Laurent Laffont

20ème coding-dojo: reload countdown kata

Avec enthousiasme nous sommes retournés au randori avec le Reload countdown kata, Serge avec nous depuis Hà Nội.

Je n'en dis pas plus, tout est dans la vidéo.

Nous pensons refaire le kata la prochaine fois:

by Laurent Laffont at June 22, 2011 06:46 AM

June 16, 2011

Laurent Laffont

19ème coding-dojo: nouveaux mondes

Pour ce dojo nous avons travaillé de nouveau sur TWM. On peut maintenant ajouter de nouveaux mondes, un peu comme les bureaux virtuels sous Linux ou Spaces sous OSX.

Baptiste est venu en tant qu'observateur.

Une vidéo du résultat

by Laurent Laffont at June 16, 2011 06:47 AM

June 04, 2011

Laurent Laffont

18ème coding-dojo: Strategy Pattern autour du monde

Coding-dojo trés sympa: d'une part nous avons travaillé sur TWM (gestionnaire de fenêtres pour Pharo), d'autre part Serge Stinckwich a participé depuis Hà Nội (Vietnam) via Skype ! (c'est beau Internet)

L'objectif du dojo était d'implémenter des politiques différentes de placement des fenêtres pour TWM - cas idéal pour placer un Strategy Pattern, le tout en TDD évidemment.

by Laurent Laffont at June 04, 2011 04:58 PM

May 17, 2011

Laurent Laffont

17ème coding-dojo: techniques de test

Aujourd'hui nous avons étudié plusieurs techniques de test sur du code legacy, basé sur notre Picasa Kata.

La difficulté est de faire en sorte qu'il n'y ait pas d'accès réel aux web services Picasa pour les tests.

Tout d'abord nous avons isolé le code qui faisait appel aux web services:

PicasaAPI>>httpGet: aQuery
    ^ HTTPSocket httpGet: aQuery

Ensuite plusieurs techniques ont été mises en oeuvre:

testSearch2DSKReturn2Photos
  | photos httpSocketClass|
  httpSocketClass := Class new
                      class compile: 'httpGet: aQuery  
			                ^ PicasaAPITest  new xmlTwoDSK';
                      yourself.
  photos := PicasaAPI new 
               HTTPSocketClass: httpSocketClass;
               get: 'http://picasaweb.google.com/data/feed/api/all?q=DSK&max-results=2'.
  self assert: 2 equals: photos size.
testSearch10MilesDavisReturn10Photos
  | photos redirection |
  [redirection := MethodRedirection new 
                             on: (PicasaAPI >> #httpGet:) 
                             do: [:arguments|
                                  self 
                                     assert: 'http://picasaweb.google.com/data/feed/api/all?q=miles+davis&max-results=10' 
                                     equals: arguments  first.  
                                   self xmlTenMilesDavis].
    photos := PicasaAPI new get: 'http://picasaweb.google.com/data/feed/api/all?q=miles+davis&max-results=10'.
    self assert: 10 equals: photos size.
  ] ensure: [redirection uninstall].

Le "code movie":

Pour récupérer le code source:

Gofer it
	squeaksource: 'DojoAnnecy';
	package: 'TestingTechniques';
	load
	

by Laurent Laffont at May 17, 2011 09:21 PM

April 30, 2011

Laurent Laffont

16eme coding-dojo: Hapao et couverture de tests

Nous avons analysé et amélioré la couverture des tests sur ProfStef en utilisant Hapao. Alexandre Bergel, développeur principal sur Hapao, s'est même joint à nous du Chili via Skype pour qu'on puisse faire des retours sur l'utilisation d'Hapao.

Du coup on aimerait développer cette expérience de coding-dojo avec des intervenants connectés via Skype, à méditer.

by Laurent Laffont at April 30, 2011 01:08 PM

April 14, 2011

Laurent Laffont

15ème coding-dojo: Themes et MetacelloBrowser

Patrick nous a expliqué comment fonctionne les thèmes dans Pharo. Il est l'auteur des thèmes Sandcastles.

L'objectif du dojo était de créer une configuration Metacello pour ces thèmes - petit rappel: Metacello permet de décrire les dépendances entre packages, à l'instar de ce qu'est apt pour les paquets .deb sous Debian.

Pour cela nous avons utilisé le tout nouveau MetacelloBrowser qui est chargeable dans Pharo 1.2 comme ceci:

Gofer new
   squeaksource: 'MetacelloBrowser';
   package: 'ConfigurationOfMetacelloBrowser';
   load.

puis:

 (ConfigurationOfMetacelloBrowser project version: #stable) load.

Ceci fait vous trouverez une nouvelle entrée Metacello dans le menu principal > Tools.

Le code movie:

by Laurent Laffont at April 14, 2011 06:47 AM

April 11, 2011

Laurent Laffont

14eme coding-dojo: encore des mocks, mais HTTPSocket

Meilleure utilisation Mocketry avec HTTPSocket. Vidéo à l'appui.

by Laurent Laffont at April 11, 2011 08:59 AM

April 04, 2011

Laurent Laffont

13eme coding-dojo: élevage de mocks

Pas de coding-dojo Mardi 22 Mars bien que nous nous soyons retrouvés au Gallice pour travailler sur un portage de SeasideHosting sur Pharo.

Mardi 28 Mars nous sommes repartis sur les Mocks mais en nous enlisant un peu: Patrick est allé expliquer à un développeur de jeux vidéos qui prenait son café ce qu'on faisait, laissant Romain et Laurent sur des questions existentialistes sur l'interface de la classe Url.

Conclusion: c'est plus facile de "mocker" HTTPSocket>>httpGet: que la classe Url.

Peut être un troisième coding-dojo sur ce sujet en vue ?

by Laurent Laffont at April 04, 2011 05:09 PM

March 16, 2011

Laurent Laffont

12ème coding-dojo: Picasa et Mocks

L'objectif du Dojo était de développer quelques classes permettant de consommer les web services Picasa avec Pharo.

Pour éviter les requêtes pendant les tests, nous avons utilisé les Mocks de Mocketry.

Nous remettons ça la semaine prochaine !

Le code:

Gofer it
	squeaksource: 'DojoAnnecy';
	package: 'PicasaRandori';
	load
	

Et la vidéo:

by Laurent Laffont at March 16, 2011 08:48 PM

March 09, 2011

Laurent Laffont

11ème coding-dojo: Tennis Kata (le retour)

Nous avons repris le Tennis Kata mais en expérimentant une autre approche: un TestCase est un contexte (ex: score 30-0) et les TestCase sous-classes sont des branches dans le scénario.

TennisGameStartTest
  TennisZeroFifteenTest
    TennisZeroThirtyTest
      TennisThirtyFourtyTest
        TennisPlayerTwoWinFirstGameTest
  TennisThirtyZeroTest
    TennisPlayerOneWinFirstGameTest

Un assert par méthode de test.

Cela nous a permis d'avancer pas à pas en créant un arbre des possibilités bien visualisé dans le browser Pharo.

Pour récupérer le code:

Gofer it
	squeaksource: 'DojoAnnecy';
	version: 'TennisKata-Laurent.1';
	load.

Et nous avons filmé le dojo:

by Laurent Laffont at March 09, 2011 06:31 AM

March 01, 2011

Laurent Laffont

10ème coding-dojo: Tennis Kata

10ème coding-dojo fêté avec une Clairette ramenée par Patrick pour un Tennis Kata de compétition :)

Cette fois-ci nous avons tourné toutes les 5mn tel que Miguel Moquillon nous le conseillait lors du dojo à PharoConf... et c'est bien mieux.

Nous nous sommes fait plaisir avec un refactoring pas forcément évident effectué progressivement sans casser les tests: remplacement du score courant d'un entier par une Stack.

Nous avons des idées pour l'écriture des contextes de test que nous essayerons la prochaine fois.

Le résultat est comme à l'accoutumée sur SqueakSource:

Gofer it
	squeaksource: 'DojoAnnecy';
	package: 'TennisKata';
	load.

by Laurent Laffont at March 01, 2011 09:48 PM