readings

The Thing Around Your Neck – Chimamanda Ngozi Adichie

thing_around_your_neckCela fait un moment que je voulais découvrir un auteur africain, je suis donc allé fouiller sur Amazon.com dans la section consacrée aux auteurs africains (à ne pas confondre avec la rubrique Voyage Afrique qui fait plus National Geographic).  Je ne cherchais pas forcément un livre sur la misère ou la famine mais simplement un livre peu importe le sujet.

Ce recueil de nouvelles est parfait. Chimamanda Ngozi Adichie est arrivée aux USA à l’âge de 19 ans, elle vivait avant cela au Nigeria. Elle définit son style comme étant de la fiction réaliste et cela ne pouvait être plus juste. Les sujets sont variés : la religion (les tensions entre musulmans et Igbo sont nombreuses), la place de la femme au Nigeria comme aux USA, la famille, l’immigration etc.

Le style est simple, les histoires montrent du doigt aussi bien le racisme non ordinaire des universitaires occidentaux (genre je sais ce que dois écrire un jeune auteur africain à propos du harcèlement sexuel des femmes)  que la résignation (parfois opportuniste) des africains. La partie sur la difficile adaptation aux USA est aussi intéressante, non pas sur le comportement des américains qui est peu abordé mais plus sur le rapport des immigrants avec leur pays d’origine.

La plus jolie des nouvelles est la dernière qui retrace le conflit entre deux générations – une mère et son fils-  pour se répercuter sur la troisième – la petite fille. Le père est mort assassiné par des cousins jaloux, la mère envoie le fils à l’école catholique dans l’espoir qu’il reviendra avec le savoir pour faire condamner les meurtriers. Mais celui-ci tourne le dos à ses origines et les oblitèrent carrément dans l’éducation de sa fille qui ne retournera vers sa grand-mère qu’au dernier moment.

Il y a bien d’autres auteurs, peut-être plus anciens et plus fondamentaux mais ce livre est sans doute une bonne porte d’entrée dans un monde peu connu de nous.

Par défaut
Uncategorized

Boston

Nous avons passé le réveillon de Noël à Boston dans la famille d’une amie américaine (expatriée heureuse en France). En Québécois on dit Bos- ton et non Bos-tonne, pourquoi ? Pas trouvée l’explication définitive, il semblerait que comme Los Angeles ces villes ait été connues à une époque différente des autres villes comme Washington (et aurait subi l’influence de la région acadienne francophone comme l’a avancé notre amie).

Il faut 6-7 heures de bus pour se rendre à Boston incluant le passage à la frontière qui est toujours un peu délicat : il faut compter sur  l’humeur pas très bienveillante des douaniers et du nombre de bus devant être traités. C’est une des routes les plus agréables, le passage du Vermont est particulièrement joli (le Vermont étant un des Etats le plus libérale refusant par exemple jusqu’à peu l‘installation de Wal-Mart).

 

Agrandir le plan

Il fait un peu moins froid à Boston mais le vent de cette ville portuaire n’est pas très agréable. Nous avons visité Newburyport, une des plus petites villes aux USA d’après notre guide-amie, et sans doute une des premières aux USA comme beaucoup de choses dans le Massachusetts.

J’ai été un peu déçu par le campus de Harvard, faut dire que l’hiver et la neige n’aident pas. Nous sommes passés sur le campus de l’école The Governor’s Academy qui est plus bucolique (imaginez un décor à la “petite maison dans la prairie”). Le quartier historique de North End est agréable à visiter en suivant le Freedom Trail (et on trouve facilement à manger dans un des nombreux restaurants italiens).

Le musée d’art contemporain, ICA, est un peu perdu mais l‘exposition de Damiàn Ortega, artiste mexicain, valait le détour : très diverse avec des photos, des sculptures, des tableaux.

Le dernier soir nous avons assisté à une représentation du spectacle “Sleep No More” dans le quartier de Brookline. Punchdrunk, une companie anglaise a investi une école désaffectée pour en faire une scène géante. Les spectateurs sont dispersés par petits groupes sur 4 étages et parcourent ensuite l’ensemble des pièces où se joue la pièce (MacBeth de Shakespear). Les acteurs interprètent donc au milieu du public qui porte un masque blanc (et on vous demande aussi de ne pas parler). Le résultat est saisissant même si on a un peu l’impression d’avoir rater certains moments.

Quelques restaurants que nous avons faits :

Quelques photos du voyage (le reste sur Flickr) :

BostonNoel2009 001

Le métro de Boston est très facile à utiliser et a un réseau étendu.

BostonNoel2009 006

Dans le train vers Newburyport

BostonNoel2009 068

Sortie de la station Brookline Village pour aller à la représentation de “Sleep No More”

BostonNoel2009 064

Le musée d’art contemporain, ICA, l’exposition de Damián Ortega

BostonNoel2009 049

Une des artères principales de Boston

BostonNoel2009 047

Le campus de Harvard, pas très joli sous la neige

IMG_0134

Notre avion au retour

IMG_0135

La “cabine”

Par défaut
coding

Revue du web .NET du 21 décembre

Les tweets de la semaine

http://twitter.com/jrguay/statuses/6797869877 SharePoint 2010 offre une nouvelle expérience de développement et maintenant le monde fancy du web (jQuery) peut rencontrer le monde de l’entreprise.

http://twitter.com/willyxoft/statuses/6772998114 Spring 1.3.0 est sorti, les changements majeurs sont le support de NHibernate 2.1. (avec en plus un byte code provider), et la disponibilité de template de projets pour Visual Studio. Plein d’autres choses à découvrir dans la documentation exhaustive : http://www.springframework.net/docs/1.3.0/reference/html/index.html La version 2.0 est déjà en développement, elle apportera une simplification de la configuration.

http://twitter.com/silverlightblog/statuses/6800040893 le moment des fêtes est toujours un peu plus calme, de quoi tuer le temps avec un jeu … simple.

La question Stackoverflow

 http://stackoverflow.com/questions/1935726/best-way-to-send-message-to-thread-c-net-inter-thread-communication .NET 4.0 apporte de nouvelles classes autour de la concurrence et des collections qui  peuvent se rendre utiles pour certains patterns de communication entre Threads.

Actualités Microsoft

Non on ne vous parlera pas du retard d’un certain logiciel pour régler certains problèmes de performance :)

IronRuby est une implémentation du langage Ruby pour .NET. On en a beaucoup entendu parlé avec la DLR (Dynamic Language Runtime) récemment et avec l’arrivée du mot-clé dynamic dans .NET 4.0. La DLR a permis la naissance de projets comme IronPython et IronRuby en fournissant un ensemble de services au-dessus de la CLR. Dans cet article Jimmy Schementi présente la version RC1 du projet.

Actualités “Alt.NET”

Récemment sur le blog officiel de NHibernate, deux billets donnent un aperçu de la verion 3.0 du framework de mapping objet-relationnel :

Le premier donne un état du portage de Linq to NHibernate vers la nouvelle version qui ne base plus sur l’API Criteria et utilise le nouveau parseur de la version 2.1. Les fonctionnalités du fournisseur actuel sont implémentées et testées, il ne “reste” plus que les fonctionnalités autour de requêtes imbriquées ou encore les unions.

Le deuxième billet aborde la nouvelle API de Criteria : QueryOver. L’API criteria était basée sur l’utilisation d’objets pour requêter (Query, Expressions, Alias) mais reposait aussi sur des chaînes de caractères pour passer le nom des propriétés par exemple. Le billet passe en revue les expressions lambdas et les méthodes d’extensions introduites par la nouvelle version.

De l’autre côté

On parle souvent des nouveaux langages comme Ruby ou de la renaissance de certains comme Python mais certains ne sont que des noms vaguement entendu lors d’un cours d’informatique. Erlang fait partie de ces derniers. Eugene Letuchy nous parle de l’utilisation de Erlang dans l’infrastructure de “chat”de Facebook. N’oubliez pas de consulter le fichier pdf en bas de billet, on y apprend des chiffres intéressants.

Un projet

WPF Reports est un projet open source de technologie de rapports se basant sur WPF. Bien qu’au début de son existence il supporte aussi les en-têtes/pieds de page que le databinding et des choses moins courantes comme les codes barres et l’export XPS.

barcodereport chartreport

Le projet se base beaucoup sur le XAML, le langage utilisé par WPF pour déclarer les objets d’interface et en particulier l’API autour des documents comme le FlowDocument. Voici un exemple de template qui définit un pied de page :

 <xrd:SectionReportFooter PageFooterHeight="2" Padding="10,0,10,10" FontSize="12">
        <Table CellSpacing="0">
            <Table.Columns>
                <TableColumn Width="*" />
                <TableColumn Width="*" />
            </Table.Columns>
            <TableRowGroup>
                <TableRow>
                    <TableCell>
                        <Paragraph>
                            <Image Tag="dpd.jpg" Height="0.5cm" />
                        </Paragraph>
                    </TableCell>
                    <TableCell>
                        <Paragraph TextAlignment="Right">
                            Page
                            <xrd:InlineContextValue PropertyName="PageNumber" FontWeight="Bold" /> of
                            <xrd:InlineContextValue PropertyName="PageCount" FontWeight="Bold" />
                        </Paragraph>
                    </TableCell>
                </TableRow>
            </TableRowGroup>
        </Table>
    </xrd:SectionReportFooter>

Voici l’initialisation du rapport :

var reportDocument = new ReportDocument();

StreamReader reader = new StreamReader(
   new FileStream(@"Templates\ComplexReport.xaml", FileMode.Open, FileAccess.Read));
reportDocument.XamlData = reader.ReadToEnd();
reportDocument.XamlImagePath = Path.Combine(Environment.CurrentDirectory, @"Templates\");
reader.Close();

On utilise ensuite des objets de type ReportData pour fournir les données du rapport via des propriétés ou des DataTables pour remplir des grids :

List<ReportData> listData = new List<ReportData>();
for (int i = 0; i < 5; i++) // generates five reports
{
	ReportData data = new ReportData();

	// set constant document values
	data.ReportDocumentValues.Add("PrintDate", dateTimeStart); // print date is now
	data.ReportDocumentValues.Add("ReportNumber", (i + 1)); // report number

	// sample table "Ean"
	DataTable table = new DataTable("Ean");
	table.Columns.Add("Position", typeof(string));
	table.Columns.Add("Item", typeof(string));
	table.Columns.Add("EAN", typeof(string));
	table.Columns.Add("Count", typeof(int));
	Random rnd = new Random(1234 + i);
	int count = rnd.Next(20) * (rnd.Next(2) + 1);
	for (int j = 1; j <= count; j++)
	{
		// randomly create some articles
		table.Rows.Add(new object[] { j, "Item " + (j + (1000 * (i + 1))).ToString("0000"), "123456790123", rnd.Next(9) + 1 });
	}
	data.DataTables.Add(table);
	listData.Add(data);
}

XpsDocument xps = reportDocument.CreateXpsDocument(listData);
documentViewer.Document = xps.GetFixedDocumentSequence();

Pause

La revue du web fait une petite pause de deux semaines. Nous serons de retour le 11 janvier.

Par défaut
Uncategorized

Revue du web .NET du 15 décembre

Les tweets de la semaine

http://twitter.com/thierry_n/statuses/6581723672 : une nouvelle version de Mono, qui voit son offre commerciale prendre forme avec Mono Touch (développement pour l’iPhone), Mono Tools for Visual Studio et la plateforme serveur avec support (Suse Linux). Au passage le compilateur Mono devient aussi “C# 4.0 compatible”.

http://twitter.com/EdgarSanchez/statuses/6566426910 on parlait la semaine dernière de GWT, Volta, voici un produit open source commercial, SharpKit, qui permet de travailler en C# et compiler vers Javascript et vice versa.

La question Stackoverflow

 http://stackoverflow.com/questions/1681546/custom-wpf-control-dependency-property-not-binding-to-external-dp/1681624#1681624 Les “dependency properties” de WPF sont un des aspects les plus puissants du framework mais aussi un des plus difficiles à appréhender. Ici un exemple qui met en lumière l’importance des metadata associées aux DP.

Actualités Microsoft

Bien que certains pensent qu’une beta 3 ou une RC pour Visual Studio 2010 serait la bienvenue, la date de sortie (22 mars 2010) approche (moins de 100 jours maintenant). Dans cet article, Somasegar présente les nouveautés autour du développement d’add-in pour Visual Studio :

  • un SDK de 10 MB au lieu de 100 MB (= documentation en ligne)
  • WPF comme framework de base
  • facilité d’extension autour de l’éditeur
  • un site renouvelé pour découvrir les extensions existantes

On pourra consulter aussi les nombreuses vidéos issues de la conférence “Development Tools Ecosystem”

Actualités “Alt.NET”

DDDFrance est un site francophone qui propose des ressources autour du Domain Drivern Design en français. Par exemple le livre DDD Quickly a été traduit : DDD vite fait.

Au passage, en suivant les principes du DDD dont l’utilisation au plus proche du langage du domaine métier, doit-on coder en anglais ou dans sa langue maternelle ?

De l’autre côté

VirtualBox est une application de virtualisation rachetée par SUN il y a maintenant un peu plus d’un an. La version 3.1 sortie fin novembre apporte des fonctionnalités telle que la migration “live’” d’une instance d’un hôte à un autre ou encore la restauration à partir d’un snapshot (arbitraire et non le dernier). Un projet communautaire fournit une console web pour administrer les machines virtuelles.

Un projet

StatLight.logo.home Statlight est un framework de tests automatisés pour Silverlight. Vous pouvez le penser un peu comme le Nunit de Silverlight. Dans la définition de xUnit et du TDD en général il faut que l’outil fournisse un moyen de :

 

  • définir les tests (attributs)
  • les exécuter
  • vérifier les résultats (méthodes d’assertions)
  • et les assembler en suite

Il faut d’abord se procurer le template de projet de tests unitaires pour Silverlight et le code source du framework de test unitaires (on le trouvera dans le sous-répertoire source code du toolkit : C:\Program Files (x86)\Microsoft SDKs\Silverlight\v3.0\Toolkit\Jul09\Source par exemple, extraire les dlls du répertoires binaries du dossier compressé). Vous devez arriver à cette structure

setup

Voici un test sur l’interface :

[TestClass]
public class Test : SilverlightTest
{
  private MainPage sut;

 [TestInitialize]
 public void Setup()
 {
    sut = new MainPage();
    //pour nettoyer les pages entre chaque TU
    this.TestPanel.Children.Add(sut);
 }

 [TestMethod]
 public void TestButton()
 {
    Assert.AreEqual(300, sut.Width);
    //no automation
    //visible with the [assembly: 
    //InternalsVisibleTo("MySLApplication.Tests")] 
    sut.Button_Click(this, null);
    Assert.AreEqual(Visibility.Visible, sut.childrenPanel.Visibility);
 }
}

Le changement de visibilité sur les contrôles et l’assembly vient du manque d’automation dans le Framework de test. Quand vous lancez le test une page apparaît avec les résultats :

resultat du test

Statlight permet d’automatiser cette démarche et est compatible avec TeamCity ou MSBuild par exemple. Ici on ajoute l’appel à l’outil dans un post-build (à exécuter avec un compte admnistrateur) :

C:\StatLight.v0.9\StatLight.exe -x='C:/Projects/MySLApplication.Tests/Bin/Debug/MySLApplication.Tests.xap"

résultat du test dans VS

La version de Visual Studio 2010 de Web Testing devrait être compatible Silverlight mais en attendant et/ou vous êtes sur une plateforme moins récente, StatLight est l’outil à évaluer.

Par défaut
everything else, photos

Première neige : le chargement

Après une tempête comme celle de mercredi, les premières actions de la ville sont de déneiger les voies prioritaires et les trottoirs. Puis dans les jours qui suivent il faut enlever la neige (il est tombé 28cm en une journée sur Montréal). La ville prévient une journée à l’avance en posant des panneaux et les voitures restantes sont enlevées pour faire passer les engins de chargement.

Les chenilles enlèvent la neige sur le trottoir :

An parallèle de gros tracteurs regroupent la neige en une ligne continue sur la route :

et enfin la neige est chargée dans des camions qui amènent la neige dans des entrepôts de stockage :

Tout cela prend bien 20-30 minutes pour une rue, imaginez donc cela pour une ville de 3.5 millions d’habitants !

Par défaut
photos

Première neige

Voilà nous avons survécu à notre première tempête ! rv a même taquiner de la pelle pour déblayer l’escalier de notre bâtiment :) Voici quelques photos prises ce matin vers 6h30 sur le chemin de la gym. Les trottoirs sont déblayés par une “chenille”. Le plus dur ce sont pour les automobilistes qui doivent dégager leur voiture de la neige amassée suite au passage des engins sur les routes.

Première neige

Première neige

Première neige

Par défaut