Ma biographie

Je m'intéresse aux pitons depuis ma plus tendre enfance. J'ai des souvenirs
très clairs de ceux de la console d'éclairage de la salle de spectacle où mon père travaillais à l'époque et de ceux de sa super calculatrice programmable. Mon premier pas du simple pitonnage vers l'informatique s'est fait le jour où, à l'âge de 7 ou 8 ans, un VIC-20 a fait son apparition à la maison. J'étais fasciné par ce qu'on pouvait arriver à faire en pitonnant en BASIC quelques instructions POKE bien placées directement dans la mémoire graphique. Avec son modem 300 bauds, je décrouvrais les BBS et je me prenais pour Matthew Broderick dans War Games! La prochaine grande étape fut la construction de mon premier ordinateur vers l'âge de 14 ans, un super 386 XT Turbo (!) bâti de mes propres mains avec lequel j'ai écris un bout de code Assembleur et hébergé un BBS qui m'ont mis dans le trouble avec la GRC! Heureusement, mon hobby s'est avéré plus payant que délinquant, puisqu'il m'a permis de décrocher mon premier emploi d'été à programmer en Turbo Pascal, mon langage de prédilection de l'époque. The rest, as they say, is history. J'avais dès lors trouvé ma voie; j'allais devenir ingénieur en informatique spécialisé en logiciel: obtention de mon bac. en 1997 et de mon permis d'ingénieur de l'OIQ en 2000. Je suis conseiller chez L-IPSE depuis mars 2003, où j'interviens maintenant surtout en architecture organique et je m'intéresse particulièrement à l'agilité et la mise en application de bonnes pratiques d'ingéniere logiciel. Mais à la base, je ne suis toujours qu'un pitonneux !

Bienvenue dans l'univers
des blogueurs L-IPSE
François
Quelles singeries!? 
archive.php

Dans une réunion, une collègue a fait référence à un singe hier en disant : « si vous ne voulez pas vous retrouver avec le singe ». Mais, de quel singe parlait-elle au juste ?

C’est une référence au film 12 singes avec Brad Pitt?

Ou au théorème selon lequel un nombre infini de singes installés à des machines à écrire pourraient éventuellement aléatoirement finir par écrire du Shakespeare  (qui, soit dit en passant, peut d’ailleurs se simuler en utilisant un alogorithme génétique)?

Non, en fait, c’est une référence à un l’excellent article « Management Time : Who’s Got the Monkey ? »  paru la première fois en 1974 dans le prestigieux Harvard Business Review, où il apparaît à nouveau en 1999 en réédition classique. Ça traite de l’art de déléguer et le singe représente un fardeau qu’on porte sur nos épaules. En tant que gestionnaire, on ne doit pas prendre tout le fardeau, tous les singes sur nos épaules. Il faut apprendre à déléguer, à se débarrasser de nos singes.

Je vous recommande fortement cette lecture fort intéressante, ludique et utile !

Mes petits enfants auront sûrement la même réaction face à une souris que mes enfants ont face à une disquette 3 1/4″ aujourd’hui: « C’est quoi ça Papa?! ». En effet, la souris suivra très certainement le même chemin que la disquette: l’extinction !

En 2007, on parlait de la remplacer par une interface visuelle — visuelle dans le sens de suivre le mouvement des yeux! Cool! Mais, attention de ne pas trop gligner des yeux! Il me semble que ça doit donner des migraines ce truc-là! On parlait alors de GUIDe (Gaze-Enhanced User Interface Design).

Plus tard, en 2009, on parlait de Microsoft qui travaillait toujours sur l’évolution de la souris, pour le temps qui lui reste. Oui, en effet, il y aura sûrement encore quelques itérations de la souris avant sont extinction…

Avec l’évolution des écrans tactils multi-touch de nos appareils mobiles et tablettes et de l’apparition de Kinect dans nos salons, et avec des technologies comme GUIDe, Microsoft Surface, et la technologie derrière le film Rapport Minoritaire, et celle où on fait usage des ondes cérébrales qui sortent tranquillement des laboratoires, il me semble qu’on est dû pour une petite révolution de l’interface usager dans nos stations de travail. Et, avec toutes ses interfaces basées sur la gestuelle, l’intérêt pour les postes de travail en position debout et plus ergonomique gagnera peut-être en popularité. Ou, encore mieux, la position couchée! Disons que c’est pas gênant de se faire prendre les deux pieds sur le bureau dans ce genre de setup!

Mais bon, pour revenir sur la souris… Je suis tout pour l’extinction de la souris, une technologie dépassée s’il en est une (tout comme le fax d’ailleurs… à quand l’extinction du fax!?). Oui, SVP débarassez-moi de la souris, et vite, mais de grâce, ne touchez pas à mes pitons! Et surtout, évitez de changer le positionnement et la tailles des touches, ou pire, d’enlever des touches sur les claviers, comme sur les récents laptop Dell XPS Studio 15/17: pas de touche Pause/Break !?! Quossé ça?!

Celà dit, quand il est question d’ergonomie, je suis prêt à essayer de changer. D’un point de vue ergonomique, voici la meilleure combinaison de clavier et de souris que j’aie jamais utilisée, Microsoft Natural Keyboard et cette souris-joystick de 3M:

Pas sûr par contre que j’oserais aller jusqu’à celui-ci de Maltron:

040109_rg_ergonomickeyboards_03.jpg

Pitonneux à 2 doigts s’abstenir…

Supposons que vous ayez une table définie comme ceci:

CREATE TABLE MyTable (
OID INT, --clé primaire
OID_Parent INT, --récursion, clé étrangère
--... autre colonnes
)

Bien qu’il soit possible de définir une clé étrangère avec l’attribut DELETE CASCADE, à la différence d’autres SGBD, les suppressions en cascade récursives sur la même table ne sont pas pris en charge sous MS SQL Server. Avec une telle relation récursive, tenter de supprimer un enregistrement duquel un autre enregistrement dépen n’est pas permis. Si pour contourner le problème vous tentez de créer un déclencheur INSTEAD OF DELETE, celui-ci ne se déclenche uniquement pour le premier DELETE. Il ne se déclenche pas récursivement pour supprimer tous les enregistrement. Ce comportement est attendu et documenté sur MSDN : “Si un déclencheur INSTEAD OF défini sur une table exécute une instruction portant sur cette table et qui est susceptible de l’activer de nouveau, il n’est pas appelé de façon récurrente.” La solution est donc de créer un déclencheur de suppression récursif comme celui-ci:

CREATE TRIGGER del_MyTable
ON MyTable
INSTEAD OF DELETE AS CREATE TABLE #Table(OID INT)
INSERT INTO #Table (OID) SELECT OID FROM deleted
DECLARE @c INT
SET @c = 0
WHILE @c <> @@ROWCOUNT
BEGIN
SELECT @c = @@ROWCOUNT
INSERT INTO #Table (OID)
SELECT MyTable.OID FROM MyTable
LEFT OUTER JOIN #Table ON MyTable.OID = #Table.OID
WHERE MyTable.OID_Parent IN (SELECT OID FROM #Table)
AND #Table.OID IS NULL
END
DELETE MyTable FROM MyTable
INNER JOIN #Table ON MyTable.OID = #Table.OID
END

Ce déclencheur insère tous les enregistrements de la pseudo table deleted dans une table temporaire #Table. Ensuite, il rassemble tous les enregistrements qui ne sont pas déjà dans la table temporaire (LEFT OUTER JOIN … WHERE IS NULL). La boucle s’arrête si aucun nouvel enregistrement n’est trouvé. Finalement, tous les documents recueillis sont supprimés.

(Adapté de devioblog)

Voici une façon simple et élégante (mais pas très rapide!) de boucler en SQL sur tous les enregistrements d’une table qui comporte une clé primaire unique:

-- changer type, id et table selon le type et le nom de la clé primaire et la table à manipuler
declare @id type
select @id = min(id) from table
while @id is not null
begin
-- modifier cette ligne selon l'opération à faire sur chaque enregistrement
select * from table where id = @id
select @id = min(id) from table where id > @id
end

Pour boucler sur tous les enregistrements d’une table qui ne comporte pas de clé primaire, la méthode est plus complexe et moins élégante; elle implique l’utilisation d’une table temporaire. Voirhttp://support.microsoft.com/kb/111401 pour plus de détails.

WikiPlus de KWizCom 
archive.php

C’est connu, les fonctionalités de base de SharePoint côté Wiki sont faibles comparativement à d’autres offres sur le marché. La référence dans ce segment est sans contredit MediaWiki, l’engin derrière Wikipedia. Tout autre technologie sera nécessairement comparée à MediaWiki. Et, dans une telle comparaison, SharePoint ne fait généralement pas très bonne figure. En fait, c’était surtout vrai avant SharePoint Server 2010 qui offre maintenant des fonctionalités Enterprise Wiki qui commandent plus de respect! Par contre, si vous êtes toujours sur MOSS ou WSS 2007 ou si votre plateforme de prédilection gratuite reste SharePoint Foundation 2010, le produit WikiPlus de KWizCom, une compagnie canadienne (Markham, Ontario) soit dit en passant, pourrait sans doute vous intéresser!

François