PermaLinkSkinizi Laptop skins
Bonjour à tous Eh ben oui, me re-voilou pour vous donner des news.

Allons droit au but : Skinizi marche très bien. On est a plusieurs milliers de commandes. Economiquement c'est du solide. Ma femme a pu quitter son job --> mission accomplie

Skinizi a pas mal évolué, nous faisons maintenant des laptop skins :



Ces stickers pour laptop cartonnent ! Comme vous pouvez le voir, de très nombreux artistes nous ont rejoint. Les visuels plaisent énormément, bref c'est du tout bon

Je vous remerci une nouvelle fois de vos encouragements et de votre aide initiale. Skinizi aurait vraiment eu du mal à décoller sans vous.

A bientôt pour de nouvelles news !

  13:12:02 |  


PermaLinkDes news !! et puis bonnes fêtes !!
Non non vous ne rêvez pas, vous êtes bien sur Domlike.net et il y a bien un nouveau billet

Je voulais vous tenir informé de l'évolution de Skinizi. Aprés tout ce que vous avez fait pour moi, je vous doit bien cela. Voici donc un premier bilan aprés nos premier 3 mois d'ouverture.

En terme de vente, j'ai déjà écoulé plusieurs centaines de skins (Ceux qui veulent avoir le nombre exact peuvent m'envoyer un mail). C'est vraiment encourageant et la courbe des ventes ne cesse de progresser. A l'heure actuelle, on vend 5 fois plus de skins par semaine qu'au début de l'aventure qui avait pourtant bénéficier de plusieurs annonces sur différents  blogs.

J'ai eu la surprise de constater que plus de la moitier de mes clients étaient des clientes Je n'avais pas du tout anticipé cela. C'est une bonne surprise et ça prouve que j'ai de la marge côté homme car la majorité des possesseurs d'iPod sont des hommes.

Mais ma grande satisfaction vient de l'internationnal car je réalise plus de 45% de mes ventes à l'étranger. Avoir passé des heures à contacter différents blogs étrangers pour leur parler de Skinizi n'a pas été vain. Le travail paye de ce côté là.

Les produits proposé ont aussi évolué, on propose maintenant des skins pour iPod Nano 2G/3G/Video/Classic/Touch et même iPhone. Pour le lancement des skins pour l'iPod Touch et de l'iPhone nous avons fait réaliser un petit clip trés sympatique que voici en avant première :

Pas mal non ?

Tout ce ceci pour dire que l'aventure continue et qu'elle n'est pas pret de s'arrêter Merci une nouvelle foi d'avoir contribué au bon lancement de Skinizi.

Bonnes fêtes à tous

iPhone skins - iPod Touch skins - Sono Portable

  21:14:56 |  


PermaLinkFirst feedback (French)
Une semaine après le lancement de Skinizi, premier bilan…

Le bilan est plutôt positif à vrais dire. J’ai eu pas mal d’articles forts intéressants sur plusieurs blogs. Voici une liste pas du tout exhaustive :

France : Espagne : Italie : Germany : United States : Je fais le forcing pour les autres pays mais le marketing et moi on n’est pas super copain donc je vais lui payer un coup et ça devrait aller mieux entre nous

Côté commandes (le principal me direz-vous) ben c’est pas trop mal pour une première semaine car on comptabilise plusieurs dizaines de commandes. Je ne vais pas dire combien car il parait qu’il ne faut jamais le dire dans le e-commerce 8-) (Envoyez moi un email si vous voulez vraiment savoir). Bref, on est sur les rails.

Je tenais vraiment à remercier tout ceux qui m’ont aidé par des liens, des infos, des encouragements. Merci à vous tous et même à celui qui a mit un lien sur le forum sos.cocu.org … non non je ne plaisante pas, tenez d’ailleurs regardez cette copie d’écran de mes sites référents :



Aussi bien que Dominoarea

Et n'hésitez pas à continuer de parler de Skinizi autours de vous !

iPod skins - Protection écran iPod

  10:47:45 |  


PermaLinkHELLLLP !! (English version)
To my precious English speaking readers .

I'm not used to blog in English. I only do it for important news and this post is very important for me, may be the most important post of my blog.

You (may ) know me as a Domino consultant among thousands. And I am. But I went to launch a new website. I'll still be a Domino consultant but I try to create a new activity for my wife. She wants to work at home and I try to make her dream come true.

So let me introduce you :
iPod skins


For those who are too lazy to click on the link, Skinizi is an online shop selling iPod skins . Several friends (artists) created some wonderful designs. At the moment, there are already 14 skins available, and more will come for the new iPods. I also created a pictures gallery on flickr to give a better idea of the product.

Yes, nothing to do with domino

As you might know, the most difficult is to make my site known. Without publicity I am sure to failed. So that's the reason why I really need your help. I need you to speak of this site everywhere you can. I trust a lot in the butterfly effect, even a small comments on a forum can produce a large publicity. Of course for those who own a blog, posts are welcome . If you'd like to see the product and test it before discussing it on your site, I'll be happy to send you one for free. Just tell me which one you'd like to have, and your address, then I'll send it to you immediately.

The opening of my new website is a big adventure for me. If you have any comments on the site, the contents, the lay-out, or if you have any ideas on the new product, please don't hesitate a single second to tell it to me. I need all the help I can get!

It was a very long and difficult project and I'll never succed without help, so a BIG thanks to:

Renaud from Ftel who is a crazy talented designer.

and...

Joe, Gabriel, Marilyn, Sjef, Frédéric, Christophe, Rodolphe, Damien, Laurent, etc…

It is really a chance for me to have as much friends to count on.

iPod skins - iPod screen protection

  17:08:09 |  


PermaLinkHELLLLP !! (French version)
Ces dernier temps, vous l'avez sûrement remarqués, je blogue un peu (bon beaucoup, ok...) moins qu'avant. Ca fait maintenant plus de deux ans que j'ai commencé ce site. L'idée au départ était de me faire connaître, de transmettre et de partager ce que j'avais appris par moi-même et auprès d'autres consultants.

En deux ans de blog, je n'ai jamais rien demandé en retour. Je n'ai jamais rien demandé non plus pour Domgle ainsi que pour mes autres contributions. Et bien aujourd'hui, pour la première fois, je me permets de vous demander de l'aide.

Vui vui donc en gros si j'ai pu un peu vous aider à vous faire mousser auprès de votre client ou de votre patron ben c'est le moment de renvoyer l'ascenseur 

Tout d'abord, laissez moi donc vous présenter ce qui m'a éloigné de ce blog depuis tant de temps :

Lets me introduce you...
iPod skins


Bon pour ceux qui ont la flemme de cliquer sur le lien, Skinizi est un site de vente de skins pour iPod. Je me suis associé avec plusieurs artistes autour du globe qui m'ont créé des visuels à tomber par terre. Il y en a pour tous les goûts ! Ces visuels sont donc reproduit sur des skins adhésifs. Mais je reviendrai en détail sur la période de préparation qui m'a semblé interminable dans d'autres billets.

Aujourd'hui si j'ai besoin de vous c'est pour créer le plus gros buzz possible autours de son lancement. Comme dirai les Wampas, j'ai pas le compte en banque de Manu Chao, je ne peux pas me payer une grosse campagne de pub hollywoodienne avec Jessica (oui encore elle...) qui court au ralenti sur la plage avec un iPod skinné à la main. Non ça je peux mais qu'en rêve... Donc ma seule chance de réussir dans ce projet c'est VOUS. J'ai vraiment vraiment besoin de vous tous sur ce coup.

Comment m'aider ?

Bien c'est très simple, si vous avez la chance d'avoir un blog, ça serait cool de faire un petit billet sur skinizi (je vous donnerai un skin si vous voulez en tester un). Tous les liens vers Skinizi sont importants même ceux des sites peu fréquentés. En plus des utilisateurs que vont m'amener ces liens, il y a le page rank de google qui augmente et j'aurai donc plus de chance de me retrouver en tête de liste. Bon et si ce n'est pas du tout le sujet du blog, vous pouvez toujours cacher le lien par css .

Pensez aussi à toutes les personnes autour de vous qui possèdent un ipod. Ce serait sympa de leur forwarder un lien vers skinizi et dites leurs de faire de même (Un mail du style : si vous envoyez ce mail à plus de 6 personnes qui ont un iPod ben une chose merveilleuse arrivera dans votre vie toute pourrie )

Et le must, si vous connaissez des personnes dans la presse qui pourraient publier l'information n'hésitez pas à me le dire.

Bref, tout ce qui est possible et inimaginable pour faire monter le buzz et faire de ce lancement une réussite.

Une dernière précision :

Je ne change pas de métier. Si ce site réussi, cela permettra à ma femme de travailler à domicile ce qui a depuis longtemps été son rêve. J'aimerai lui offrir cette chance (vui vui vous avez le droit de pleurer là )

Et pour finir, un grand merci à tout ceux qui m'ont aidé dans ce projet. Je n'y serai jamais arrivé tout seul.

Grand merci à :
Renaud de chez Ftel qui fait mine de ne pas le savoir mais qui a un talent de fou.
Et dans le désordre : Joe, Gabriel, Marilyn, Sjef, Frédéric, Christophe, Rodolphe, Damien, Laurent, etc…

C'est vraiment une chance pour moi d'avoir autant d'amis sur qui compter.

iPod skins - Protection écran iPod

  17:38:50 |  19 


PermaLinkPerte de focus lors de la notification "Nouveau message"
L'été est propice à traiter les choses qu’on n’a pas le temps de régler le reste de l’année. Parmi ces « choses » que j’avais en cours, il y avait cette demande d’une utilisatrice qui disait à peu prêt ça :

«Lorsque je suis dans Word, Excel ou tout autre application et que je reçois un message, pourquoi je suis rediriger direct sur Lotus et l’alerte "Vous avez un nouveau message". C’est très énervant, j’ai envie de pleurer, Julien je t’en pris aide moi »

Bon j’suis pas sur de la fin mais l’esprit y est

Après quelques recherches, je me suis rendu compte que ce n’était pas lié à Lotus mais plutôt à Windows. J’allais appuyer sur « Forward » et balancer ça à l’expert windows du coin mais je me suis dit que ça pouvait être intéressant. Et bien intéressant ça l’est à moitié mais en tout cas la solution est très simple :

Copier/coller le code ci-dessous dans un «.reg » et exécutez le pour modifier la base de registre :

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Control Panel\Desktop] "ForegroundLockTimeout"=dword:00030d40 "ForegroundFlashCount"=dword:00000003

Redémarrez et voila, on ne perd plus le focus !

  20:58:24 |  35 


PermaLinkMichel BOTTEMANNE – Maire Honoraire d’Escassefort
Ancien Directeur d’établissement et fondateur de l’AEIH (Association pour l’Éducation et l’Insertion d’Handicapés), il a créé à partir de 1973, 17 centres spécialisés pour enfants, adultes handicapés et personnes âgées, toujours en fonctionnement aujourd’hui. Fortement engagé dans la vie politique locale, Michel Bottemanne a comme souci premier d’encourager les solutions innovantes de prise en charges des personnes dépendantes (âgées ou handicapées).
Lire la suite . . .

  20:25:15 |  24 


PermaLinkProductivité caféinée
Lorsque l'on est prestataire de service, payé à la journée, il est normal que les clients attendent de nous une certaine assiduité et concentration tout au long de la journée. Ceci afin de rentabiliser au mieux la journée payée.

Bon ça c'est dit...

Dernièrement un de mes clients a fait réaliser un film sur le bon vivre au sein de son entreprise par une équipe de journalistes. En visionnant ce film et particulièrement le chapitre "Aménagement d'un nouvel espace détente", un doute m'est venu :

Tiens mais c'est pas moi là qui touille mon café ?!



Ah ben si c'est bien moi...



Ca c'est pas de bol quand même. Je vais 3 fois au café par an et ça tombe pile poil quand il tourne un film ! (bon vous n'êtes pas obligé de me croire sur ce coup ) Ceci étant dit, mon client ne m'en veut pas trop car il y est lui aussi sur la vidéo . Finalement j'ai eu du bol.

Plusieurs moralités à l'histoire :
  • Un journaliste c'est fourbe
  • Toujours soigner son profil droit
  • Faire le gars qui bosse, même au café
  • La télé ça ne fait pas que grossir, ça allonge les nez aussi...


  09:17:12 |  11 


PermaLinkPhotos d'Irlande
Comme prévu, voici un petit échantillon de photos de mon dernier voyage en Irlande. Avec le recul, c'était une très bonne semaine de vacances qu'il me tarde de renouveler. Mes prochains jours de congés seront pour fin août. Je me raccroche donc à ces excellents souvenirs en attendant les suivants.











  20:40:46 |  


PermaLinkThe ultimate "Working with list" help page
On connaît tous la page d’aide du designer nommée "Working with List". On y est normalement tous passé et on en a vite fait le tour. Cette page a le mérite d’exister mais les exemples présentés ne nous aident pas des masses lorsque l’on veut faire des opérations un peu plus complexes.

J’ai donc eu l’idée de faire une page d’aide qué sapélerio Quézac…ou non plutôt « The ultimate working with list help page»

Cette page sera un aggloméré de tous les exemples glanés ici ou là de gestion des listes en @formula. Pour l’instant c’est simplement une entrés de blog mais je vais vite la mettre dans les articles une fois bien terminée. Oui, parce que j’ai pas la prétention de tout connaître et d’avoir tout vu (quoi que …quand j’y pense… ). Donc si vous avez-vous aussi de beaux exemples de formules (courtes) impliquant des listes, elles sont les bien venues.

The ultimate working with list help page


DIFFERENCE :
All unique entries in list 1 but not in list2

list1:="......";
list2:=".....";
reslist:=@unique(@trim(@replace(list1;list2;"")));


AND :
All unique entries in both list 1 and list2

list1:="......";
list2:=".....";
list3:=@replace(list1;list2;"");
resList:=@unique(@trim(@replace(list1;list3;"")));


OR (SUM):
All unique entries in either list1 or list2

resList:=@trim(@unique(List1:List2));


XOR :
All unique entries in list 1 or list2 but not in both

list1:="......";
list2:=".....";
list3:=@replace(list1;list2;"");
list4:=@replace(list2;list1;"");
resList:=@unique(@trim(list3:list4));


All numbers within a given range
list:=1:2:3:4:5:1:2:3:4:5:1:2:3:4:5;
lower:=2;
upper:=4;
p0:=@text(list);
p3:=@Trim(@Replace(p0;@Replace(p0;@Right(@Text(List-lower);"-")+p0;"");""));
res:=@texttonumber(@Trim(@Replace(p3;@Replace(p3;@Right(@Text(upper-@texttonumber(p3));"-")+p3;"");""


How many dates in a list are less than a given date ?
rem "subtract list from date to get list of +ve & -ve nos";
p1:=@Text(Date-DateList);
rem "change all entries which are -ve";
p2:=@Explode(@ReplaceSubstring(@Implode(p1;"/");"-";"*");"/");
rem "now replace unchanged entries from orig list";
p3:=@TextToTime(@Trim(@Replace(@Replace(p2;p1;@Text(DateList));p2;"")));
@elements(p3)


Extract the dates upper than a specific date within a date list
orig := [12/12/2007]:[25/07/2009]:[01/01/2007] ;
dateLimit := [04/07/2007];
secs:= @Text(orig-dateLimit ); after:= @Replace(secs; "-"+@Trim(@Right(secs;"-")); "");
tmpResult:= @Trim(@Replace(after; secs; @Text(orig)));
result := @TextToTime(tmpResult);


Extract dates corresponding to a specifics weekdays within a date range
Weekday := "2" : "3";
StartDate := [01/04/2002];
EndDate := [10/04/2002];
R := @TextToTime(@Explode(@TextToTime(@Text(StartDate) + " - " + @Text(EndDate))));
D := @Replace(@Text(@Weekday(R)); Weekday; "X" + Weekday);
W := @Trim(@Right(@Left(@Explode("<" + @Implode(D + "=" + @Text(R); "<") + "<"; "X"); "<"); "="));
@Prompt([OK]; "Test"; @Implode(W; "; "))


Calculate the number of weekdays between two date fields
diffDays := (EndDate - StartDate) / 86400 + 1;
strtDay := @Modulo(@Weekday(StartDate); 7);
endDay := @Modulo(@Weekday(EndDate); 7);
result := (diffDays - endDay + strtDay - 8) * 5 / 7 - @Max(-2; -strtDay) - @Min(1; endDay) + 5 - strtDay + endDay

  20:56:28 |  


PermaLinkiNotes pour SmartPhone
Dernièrement, un client m’a demandé si on pouvait utiliser iNotes avec leurs gsm. La plupart des employés de cette société sont équipés de Nokia 5070. C’est un vieux modèle qui n’est plus commercialisé mais qui peut tout de même accueillir Opera mini.

iNotes n’est pas utilisable avec les browsers embarqués dans les gsm, que ce soit IE Pocket PC ou Opéra mini ou un browser « constructeur », cela ne change rien à la donne. iNotes est bourré de javascipt, il y a des popup partout et les css sont un cauchemar à interpréter, il n’est donc pas étonnant de tomber là-dessus :



Ils ont bien fait les choses chez lotus, ils testent le navigateur à la place de nous afficher un truc tout pourri

Ce qui semble le plus poser de problème à la dernière génération de mini navigateur c’est moins le javascript que les css. Pour preuve, j’ai pu tester Domgle (recherche ajax) avec Opéra mini beta 4 et grande a été ma surprise (oui je parle un peu comme Yoda en ce moment) lorsque je me suis rendu compte que le navigateur exécutait mon code ajax sans problème mais qu’il interprétait mal ma css et affichait les résultats en vrac :



En fait c’est plutôt ma css qui n’est pas adapté au navigateur.

Bref passons… Donc, non, iNotes n’est pas utilisable avec un navigateur de gsm / pda / smartphone. Par contre, on peut tout à fait imaginer proposer, à l’aide d’une vue simplifiée, la liste des mails "en arrivés" ainsi que l’agenda de l’utilisateur. On peut aussi créer un masque simplifié de visualisation et d’envoi de mail.

Je suis loin d’être le premier à avoir pensé à cela, Rob Wunderlich publie même une base contenant des éléments de structure à copier dans le modèle de BAL. Rob a fait du bon travail mais son code à plusieurs limitations :
  • Il n’est pas compatible V5 (mon client est encore en V5 jusqu'en octobre).
  • Les entrées de l’agenda ne sont pas disponibles.
  • Sa vue des messages en arrivé fait intervenir @UserName dans sa sélection (pas bon du tout pour pleins de raisons…).
  • Un petit bug en V7 : lors de l’envoi de mail, ben le mail il part pas et il est sauvegardé en brouillon (en fait c’est un bug de @mailSend en V7).
Bon pour toutes ces raisons et surtout parce que mon client était intéressé par ma proposition, j’ai repris le travail de Rob pour palier aux limitations sus nommées (oui je parle aussi comme Arielle Dombasle parfois).

Voici donc le résultat après une petite journée de travail :

La vue agenda

La vue inbox


La visualisation d’un message


Rédaction d’un message



Avec un peu plus de temps, on peut faire mieux mais ceci convient tout à fait pour le moment. Il ne faut pas aussi oublier que plus c’est light plus c’est rapide à l’affichage (même en 3G, on a vraiment l’impression de revivre l’époque du RTC parfois…).

Pour ce qui est des tests et pour éviter de ruiner votre forfait, vous pouvez utiliser ces émulateurs très pratiques Opera Mini Beta 4 ou la version 3.1.8.

  21:35:18 |  79 


PermaLinkOpenPreferences
Dans la série « j’en apprends tout les jours avec Domino » voici ma dernière trouvaille : la commande ?OpenPreferences.

Pour commencer ouvrez votre navigateur et tapez cette url :
http://Nom de votre serveur/$Preferences.nsf?OpenPreferences

Pour les gros faignants vous pouvez vous servir de mon serveur :
http://www.domlike.net/$Preferences.nsf?OpenPreferences

Bon voilà pour les présentations, maintenant à quoi elle sert cette base ? hein ? Je ne vais pas vous refaire la seule page de l’aide du designer y faisant référence, non, je vais simplement reprendre le premier paragraphe qui fait une bonne synthèse :

« Dans une application Notes, de nombreux paramètres, tels que la façon dont est formatée une valeur de date ou d'heure ou les préférences de langue par défaut, sont définis via le système d'exploitation de l'utilisateur. Ce dernier a la possibilité de modifier ces paramètres en fonction de ses préférences. Dans une application Web, les formats sont déterminés par les paramètres installés avec le navigateur. La commande URL OpenPreferences permet aux utilisateurs d'applications ouvertes dans un navigateur de sélectionner les formats d'affichage à mettre en oeuvre pour les applications résidant sur un serveur ou sur tous les serveurs au sein d'un domaine. »

Il y a aussi cette remarque très intéressante :

« Remarque Les paramètres que l'utilisateur définit pour OpenPreferences ne prévalent pas sur les paramètres personnalisés que vous spécifiez pour une colonne de vue ou un champ. »

Quand utiliser cette base ?
Oui cette base peut paraître au premier abord complètement inutile mais à y réfléchir de plus prêt pas tant que ça en fait. Prenez le cas d’un utilisateur itinérant utilisant une application web :
Ses paramètres peuvent changer suivant le pays ou il se trouve.
Suivant les politiques windows (GPO) il peut ne pas avoir la possibilité de changer celles-ci.
La base lui serait très utile.
Mais pour nous, développeur, la plus grande utilité que je vois à cette base c’est la possibilité avec son propre pc de « simuler » ce que verront les utilisateurs d’autres pays en terme de format de date/heure de currency, etc…

Ca m’aurait permis d’anticiper certains problèmes (de ce type)

Comment fonctionne cette base ?
En fait depuis le début de ce billet je parle de base mais il n’en est rien. Ce n’est pas une base. Si vous regardez votre serveur domino vous ne verrez pas de $Preferences.nsf. De plus ce qui actionne l’apparition de ce ces paramètres c’est la commande ?OpenPreferences. Cela fonctionne comme la commande url ?login qui, elle, fait apparaître le masque d’authentification.

Le code des pages qui apparaissent est placé dans le répertoire data/domino/template. Les fichiers concernés sont les suivants :



Comme vous disposez des sources il est tout a fait envisageable d’adapter celles-ci à votre convenance et même l’intégrer de manière transparente dans une de vos application.
Le fonctionnement général est assez simple. Vous définissez vos paramètres et ils sont stockés dans un cookie :



L’étendue de ces préférences est donc liée au domaine.

Je ne sais pas si je suis le seul sur terre à être passé à côté mais je pense bien que ça me servira dans le futur (au moins à me la péter ).

  17:48:07 |  


PermaLinkIntégration de XML/SWF Chart dans Domino
Dans une de mes dernières applications web, mon client m’a demandé un module "Statistiques". Ce module devait comporter plusieurs graphiques basés sur les données saisies par les utilisateurs de l’application.
Je me suis souvenu d’un article de Philippe qui parlait de XML/SWF Chart.

J’ai donc suivit ses conseils et adapté assez facilement ce fabuleux outil de représentation graphique et voici un exemple de rendu :



Pas mal non ? Je peux vous dire que ça a fait sont petit effet. N’hésitez donc pas une seconde à utiliser cet outil. Et encore merci à Philippe.

  22:03:38 |  


PermaLinkMicrosoft vs Lotus
Pour ceux qui manquent d'arguments pour défendre Domino face aux produits proposés par Microsoft ou ceux qui veulent bien affûter leurs armes, voici un document très intéressant. Ce petit doc de 13 pages compare les produits Lotus Vs Microsoft à fonctionnalité égale :



Il détaille la multitude de produits Microsoft nécessaires pour égaler les fonctionnalités natives de Domino. Juste un exemple très parlant si l'on compare seulement les produits nécessaire pour avoir une solution de messagerie + messagerie instantanée :

Microsoft Messaging, Basic and Instant Collaboration
  • Windows Server 2003
  • Windows Server 2003 CAL
  • Active Directory 2000 or 2003 – Part of the Windows server licensing
  • Exchange Server 2003
  • Exchange Server 2003 CAL – Includes Outlook 2003
  • Internet Explorer 6 SP1 – for full OWA functionality including S/MIME and gzip compression
  • Windows Live Communication Server – Only runs on Windows Server 2003
  • Windows Live Communication Server CAL
  • SQL Server
  • Windows Messenger 5.1 or Office Communicator 2005
  • Outlook 2003 – for integrated email presence awareness

IBM Messaging, Basic and Instant Collaboration
  • Lotus Domino Server (Messaging Only)
  • Lotus Notes client CAL (Messaging Only)
  • Server OS of choice to host Domino & Sametime (Windows, UNIX, Linux, OS/400, ZOS, Solaris etc.)

Et l'on parle ici seulement des fonctionnalités de Mail+IM. Je vous laisse découvrir dans ce document la liste des produits Microsoft nécessaires dés que l'on veut ajouter en plus un environnement collaboratif

Ce document est à passer et à exposer à toutes les sociétés qui envisagent de migrer à court ou moyen terme. Même si elles ne font pas machine arrière, elle ne pourront pas dire que vous ne les avez pas prévenue en voyant leur TCO (Total cost of ownership) exploser !

  18:50:09 |  


PermaLinkI'll be back !
Il parait qu'une des règles d'or lorsque l'on a un blog c'est de ne jamais s'excuser de son inactivité. Je ne sais pas qui a fait ces règles (et je m'en balance un peu d'ailleurs) mais je ne vais pas la respecter et donc m'excuser . Désolé aussi de ne pas avoir répondu à certains mails durant cette période et ceux qui ont eu une réponse ont eu de la chance .

Pourquoi cette inactivité prolongée ? Ben j'en sais trop rien en fait. J'aime être en « suractivité cérébrale», avoir plein de choses sur le feu, tout ça. Mais peut-être que ces derniers temps j'ai trop abusé. Je ne suis pas si multi-tâche que je le pensais.

Parmi ces fameuses tâches qui m'ont fait m'écarter de ce blog il y en a une sur laquelle je reviendrai bientôt ici et qui me prend beaucoup de temps. Je ne peux par trop en parler mais c'est quelque chose auquel je tiens beaucoup. Je ne peu pas en dire plus mais sachez que j'aurai bientôt besoin de vous. Comme dirait un ami pilote de l'air « Something is cooking » (si ça c'est pas du teasing !).

Ce blog et certains mails n'ont pas été les seules victimes de ma baisse de régime. Je suis allé en Irlande mais je n'ai finalement pas assisté au ILNUG comme prévu. Les résumés de cet évènement qui fleurissent ici ou là, me font un peu regretter ce choix (surtout quand je vois ceci !) mais je n'avais vraiment pas l'esprit à ça. Donc pas de résumé du ILNUG de ma part mais de très bons souvenirs d'Irlande (photos are coming).

Heureusement qu'il y a plusieurs blogs francophone sur Domino, vous avez pu continuer à être informé des dernières nouvelles par l'éternel Dominux et ses confrères dont vous trouverez la liste dans la colonne de droite.

Bon ben maintenant que c'est dit, il va falloir que je m'y remette !

  19:39:31 |  


PermaLinkTester son Anti-virus
Comment savoir si l’anti-virus de mon serveur Domino fonctionne ?

On ne vous a jamais posé cette question ? Personnellement, on me l’a posé plus d’une fois.
La plupart des sociétés dans lesquelles je suis intervenu faisait entièrement confiance à l’éditeur et ne procédaient à aucun test véritable.

Attendre une attaque pour voir si tout fonctionne bien, est un peu risqué à mon sens.

Une des solutions est d’utiliser les fichiers de test que la plupart des éditeurs mettent à disposition de leurs clients. C’est une bonne solution mais j’ai tendance à penser que c’est un peu de la triche. Rien ne nous prouve que l’anti-virus détectera bien les futurs « vrais » virus.

La solution qui à ma préférence c’est ce que propose Eicar. Ce site met à notre disposition un fichier exécutable viral inoffensif. C’est un peu comme une petite bombe nucléaire sans sa charge atomique. Vous pouvez télécharger l’exécutable simple ou bien l’exécutable zippé (une ou deux fois) pour voir si votre AV dézippe correctement. Vous désactivez l’AV de votre station et vous téléchargez ce fichier pour faire un petit envoi de mail avec celui-ci en PJ. Vous pouvez ainsi voir si tout fonctionne comme prévu. Bref c’est pour moi une très bonne solution et sans danger.

A vos tests !

  20:53:44 |  


PermaLinkMalentendu sur les BackEnd documents en LS
Dernièrement, on m'a demandé de me pencher sur une application V5 qui malgré un module de gestion de « locks » de document, générait toujours des conflits de sauvegarde. En y regardant de plus prêt je me suis rendu compte assez rapidement de l'erreur du développeur ayant conçu ce système de lock. Je pense que c'est une erreur dont on a tous été l'auteur à nos débuts et qui nécessite un petit éclaircissement.

En LotusScript, lorsque l'on ouvre un document avec un client lourd, on peut en exploiter le document frontal (frontend document, client side). Dans les évènements du masque, on le retrouve souvent en paramètre nommé "Source" mais on peut aussi récupérer cet objet par la propriété "CurrentDocument" de l'objet NotesUIWorkspace.

Le document frontal est un document en mémoire qui est spécifique au client qui ouvre ce document. Lorsque l'on veut mettre à jour les données du document frontal avec le document en arrière plan (backend document, server side) on utilise la méthode reload.

Ce que l'on sait moins (en tout cas au début) c'est que le document en backend est lui aussi en mémoire côté client et que les modifications du document réalisées par un agent ou un autre utilisateur ne sont pas répercutées tant que le document ouvert n'a pas été fermé et ré ouvert.

Prenons un cas concret :
  • Deux utilisateurs A et B ouvre le même document en lecture.
  • L'utilisateur B édite le document et modifie le champ toto et le fait passer de la valeur "litoto" à "cpasdrole".
  • L'utilisateur B enregistre et ferme le document.
  • L'utilisateur A entre en modification, fait un reload mais la valeur du champ toto est toujours à "litoto". De plus, dans le post mode change ou dans un bouton d'action, si l'on regarde la valeur du source.document.toto(0) il sera aussi égal à "litoto".
  • L'utilisateur A ferme le document et l'ouvre a nouveau et le champ toto a bien pris la modification de l'utilisateur B.

Pour accéder au « vrai » document en backend, la solution est donc d'accéder au document par un autre biais que le notesuidocument. Vous pouvez faire comme ceci par exemple :

Dim vw As NotesView
Set vw = Source.Document.ParentDatabase.GetView("(UNID)")
Set BackEndDoc = vw.GetDocumentByKey(Source.Document.UniversalID)

Ou "(UNID)" est une vue dont la première colonne est égal à @Text(@documentUniqueID).

J'espère avoir été clair car ce n'est pas évident à expliquer tout ça. Concernant la gestion des locks, il y a plusieurs solutions possibles que je n'explorerai pas ici. Je voulais juste mettre le doigt sur ce mal entendu trop répété concernant les BackEnd documents.

  22:25:16 |  98 


PermaLinkSuivi des faits
Tout comme plusieurs de mes confrères blogueurs, je n’ai pas toujours donné de suite à tous mes billets. Je profite donc de celui-ci pour faire le point :

  • Concernant ma passion soudaine pour la course à pied, elle s’est un peu (beaucoup) estompée après ma tendinite du moyen fessier. En fait après une radio, j’ai découvert que cette tendinite n’en était pas une mais que c’était une fracture ischio-pubienne. Une tendinite qui met trois mois à guérir c’était louche aussi… Bon en tout cas une fracture c’est un peu plus classe qu’une tendinite de la fesse

  • Concernant mon imprimante, j’ai finalement acheté une HP Photosmart 6180. Les divers tests que j’ai pu voir (celui-ci notamment ) plaçaient HP et Canon en tête. J’ai longtemps hésité et j’ai décidé de rester fidèle à HP vu que je sortais d’une très bonne expérience.

  • Concernant le réseau d’indépendants, il se met en place petit à petit. L’idée suit son cours et les débuts sont encourageants. J’en profite pour renouveler mon offre : Si vous êtes indépendant que vous avez plusieurs années d’expérience à votre actif et que vous souhaitez faire parti de ce réseau, n’hésitez pas en m’en faire part. Inversement si vous êtes client sachez qu’il existe un moyen de s’offrir des prestations de grandes qualités pas plus onéreuses qu’en SSII.

Pour la suite, J’essayerai de donner suite un peu plus systématiquement à mes billets…

  07:39:49 |  


PermaLinkPlacetypes Lotus Quickr 8
La sortie de Lotus Quikr 8 approche est on commence en savoir un peu plus sur la bête. Pour ceux qui ont besoin de rappel, sachez que Lotus Quickr 8 est la suite de Lotus Quickplace 7. IBM avait plus ou moins abandonné Quickplace pour se rendre compte il y a seulement quelques mois du potentiel intéressant de celui-ci face à la monté en puissance de la demande d’applications collaboratives évoluées (Social Network).

Dernièrement, IBM a donc demandé à la société SNAPP de créer 11 templates (placetypes pour quickplace) à introduire dans cette nouvelle version :

  • Project Management
  • Ideas and Innovation
  • Image Repository
  • Meeting and Agenda Management
  • Activities Integration
  • Contact Management
  • Dynamic Surveys
  • Corporate Communications Management
  • Collaborative Presentation Development
  • Issues Escalation, Workflow and Management
  • J2EE Document Library Integration


Dans la lignée des derniers développements d’IBM, ces templates utiliseront le toolkit dojo. Et en plus ils seront gratuits… Que demande le peuple ?

  10:01:52 |  


PermaLinkInstallation d'un Serveur Sametime 7.5 FP1 sous Windows.
La semaine dernière, je vous annonçais que j'allais passer une partie de la semaine à installer un serveur Sametime 7.5 chez un de mes clients. Cela c'est bien passé dans l'ensemble. J’ai tout installé en une journée (serveur Domino inclus) et j'ai mis deux jours à régler 2 petits bugs (la fameuse règle des 80/20...). Voici donc un tout petit résumé de cette installation.

Lire la suite . . .

  20:53:38 |  12 


PermaLinkImprimante multifonctions
Ce matin, après 7 ans de bons et loyaux services mon imprimante HP OfficeJet T45 a rendue l'âme :



C'est la courroie qui entraîne les têtes d'impressions qui a rompue. Elle était extrêmement usée et je sentais que la fin était proche.
Durant sa petite vie, elle a tout de même connue 4 PC et malgré son câble parallèle un peu "has been" (enfin, lent surtout...) elle remplissait très bien son rôle. Ce fut vraiment un très bon investissement.

Maintenant, je dois donc la remplacer et je pense rester fidèle à HP avec une Officejet 6310 ou 7210 à moins que vous ayez une meilleure piste ?

  11:59:41 |  


PermaLinkMessages d'erreur
J'imagine la tête du traducteur devant traduire ces messages d'erreur :



Il faut dire que je l'ai bien cherché, j'ai utilisé la commande :
@Command( ViewSwitchForm ; "form2" );

Si j'ai un conseil à vous donner c'est d'éviter d'utiliser ViewSwitchForm dans vos développements. Il y a pas mal d'effet de bords autours de cette commande. Préférez un lui ce code LS :

doc=uidoc.Document
uidoc.close
doc.form="form2"
workspace.EditDocument(false,doc)

Vous aurez moins de surprise...

  08:15:18 |  


PermaLinkV8 et Blog de Pierre Moysan
Ben non je n’ai pas encore travaillé sur la V8…J’ai honte fouettez moi, je le mérite. En fait j’ai une petite excuse :
La sortie de la V8 à coïncidée peu ou prou à l’apparition chez moi d’une petite maladie intestinale plus communément appelé gastro .
Du coup ça m’a mis en retard dans mon travail et j’ai loosé jusqu'à ce week-end pour tout rattraper (sauf la gastro ).

Je ne vais donc pas vous causer de la V8 mais d’un blog qui mérite vraiment le détour. Ce blog c’est stergann.org de Pierre MOYSAN. Certains d’entre vous le connaissent déjà mais pour les autres sachez qu’il mérite de rentrer dans vos readers rss. Voici deux de ces derniers billets qui ont attirés mon attention :


En plus Pierre est un vrai passionné d’astronomie. Beaucoup de mes amis croient que moi aussi je suis un passionné d’astronomie car j’ai un gros télescope dans mon salon. En fait je le sors que de temps en temps à mes invités ou mes enfants pour regarder la lune ou la nébuleuse d’Orion.

  21:04:34 |  11 


PermaLinkLotus Notes et Domino 8 Beta sont sortis !
Hier soir sans rien dire à personne, les petits jokeurs d’IBM ont mis la beta de Lotus 8 en download. C’était sans compter sur la vigilance de Jean-Yves Riverin alias JYR sur Dominoarea qui fut le premier au monde à télécharger et à poster son commentaire sur le tout nouveau forum ND8 :



JYR premier au monde sur quelque chose, c’est un évènement aussi important que la sortie de la béta (C’est pour rire JYR… Je précise parcequ’il est Canadien est ils ont pas toujours le même humour que nous ces gens là )

Me concernant il me reste actuellement 1,2Go à télécharger (C’est là ou j’suis content d’être à 2Mo en download) :





Les versions disponibles sont Windows, AIX, iSeries, Linux etSolaris.

Thanks again to JYR and stay tune for the next event !!

  09:10:00 |  12 


PermaLinkAutomatiser le redémarrage d’un serveur Domino sous Windows
Bon je sais que la première question que vont se poser certain c’est :

Pourquoi automatiser le redémarrage un serveur Domino ?

Ben il y a plusieurs raisons possibles :
  • Certains problèmes liés à la tache http et à sa gourmandise en RAM.
  • Pour faire des opérations de maintenance (compact, updall, fixup) sur les bases log.nsf, names.nsf, mail.box, etc…
  • Pour faire des sauvegardes bases fermées.

Comment automatiser ce redémarrage ?
  • Si il s’agit d’un simple redémarrage, on peut créer un document programme tel que celui-ci :



  • Si il s’agit d’un arrêt puis d’un démarrage x minutes plus tard, on peut exécuter un .bat avec les instructions suivantes :

    net stop "Lotus Domino Server (LotusDominoData)"

    on fait nos trucs

    net start "Lotus Domino Server (LotusDominoData)"

    On peut même écrire ce que l’on veut dans le journal système windows avec ce type d’instruction :
    logevent -s S -r "Script Event" "Shutdown Completed."

En fait aucune de ces deux solutions ne me convient vraiment :
  • Pour la première, on ne peut pas effectuer d’actions entre l’arrêt et le redémarrage du serveur.
  • Pour la seconde, on est obligé de passer par le scheduler de windows pour exécuter le .bat à heure régulière. Cela n’est possible que si il y a une session d’ouverte car le schéduler n’est pas un service windows…
C’est là ou j’ai besoin de votre expérience. Comment faîte vous ?

On m’a orienté vers Crontab qui peut être exécuté comme un service windows. Le connaissez-vous ?

  21:07:49 |  16 


PermaLinkJean-Michel Bottemanne
Michel BOTTEMANNE - fondateur de l'AEIH (Association pour l'Éducation et l'Insertion d'Handicapés) et Maire Honoraire d'Escassefort

  20:25:12 |  


PermaLinkHeberger un serveur Domino en 2007
Pour un particulier, héberger un serveur Domino est quelque chose de relativement onéreux comparé à d’autre type de serveur d’application (php en particulier).
L’hébergement le meilleur marché est actuellement l’offre de dominodeveloper qui pour 25$/mois vous offre un hébergement mutualisé avec 200Mb d’espace disque et 2Go de bande passante mensuelle. Depuis plus d’un an que domlike.net y est hébergé, je n’ai eu que très peu de problème. Ils ont une hotline très réactive. La seule lacune vient de la mutualisation en elle-même et des faibles performances du serveur.

Du coup je me suis intéressé au système de location de serveur. Yogi nous parle régulièrement de sa Dedibox. J’y ai donc jeté un oeil ainsi qu’à son seul concurrent sérieux à savoir Kimsufi. Après une courte analyse, l’offre Dedibox semble d’un meilleur rapport qualité prix mais ce qui m’a fait vraiment pencher en faveur de cette dernière c’est la communauté de passionnés qui se sont regroupés autour du forum dedibox-news. C’est un peu le Dominoarea de la dedibox .

Pour 36 € par mois on dispose du serveur suivant :
  • Processeur 2GHz
  • 1024 Mo RAM DDR-2
  • Disque dur 160Go SATA-2
  • Bande passante illimitée !!!

Bref, j’ai donc commandé ma Dedibox le 26 février et elle m’a été livrée le 28. Je me connecte à mon interface de gestion, demande la distrib W2K3 serveur :



En moins de 10 minutes je parviens à me connecter à ma dedibox via une session Remote Desktop.

Je bricole encore un peu dessus mais je ne devrais pas tarder à migrer le site j'ai déjà migré le site. Je pense que vous allez vite vous rendre compte de la différence de perfs...

Aujourd'hui, ce système d'hébergement est pour moi la meilleure solution et pas seulement pour un particulier. Bien sur il faut maîtriser l'administration du serveur mais ça reste vraiment à la porté de tout le monde (je parle bien sur des distributions Windows).

Prochain article : Installer un serveur Domino sur une Dedibox W2K3

  14:28:25 |  22 


PermaLinkPrésentation Lotus Notes 8
Voici une présentation flash exposant quelques nouvelles fonctionnalités de LotusNotes 8. C’est la première fois que l’on en voit « officiellement » autant.

Le seul truc qui n’a pas (encore) changé c’est le workspace.

  07:27:43 |  


PermaLinkIrish Lotus Notes User Group
Cette semaine je me suis inscrit au séminaire 2007 du Irish Lotus Notes User Group. Cette manifestation se produira le 24 et 25 mai prochain à Dublin.

iLug 2007

L'édition 2006 avait été un vrai succès et cette année est aussi très prometteuse. Plusieurs éléments m'ont incité à m'inscrire :
  • La beta de Lotus Notes 8 devrait être sortie. Fini les print-screen. On aura du concret sous les yeux et dans les mains.
  • Je vais enfin pouvoir rencontrer et discuter avec Ed Brill, Alan Lepofsky, Julian Robichaux, Bruce Elgort, Bill Buchan, etc...
  • Ces deux jours sont entièrement gratuit
  • C'est en Irlande et Ryanair a eu la bonne idée d'ouvrir une ligne Biarritz/Shannon à 0,38 € l'AR :

J’espère aussi qu’il y aura quelques frenchies dans le lot.

Du coup j'en profite pour passer une semaine de vacances avec toute ma p'tit famille. Je ne suis jamais allé en Irlande. Je ne devrais pas être déçu, on m'en a dit que du bien.

  21:39:58 |  


PermaLinkIPod Nano 8Gb
Ben oui j'ai craqué et comme dirait Lorie,  j'suis une fashion victim.
En fait, ça faisait longtemps que je lorgnai dessus sans franchir le pas... jusqu'à ce lundi ! Donc messieurs mesdames, laissez moi vous présenter mon nouvel ipod nano 8Gb :



Les premières impressions sont plutôt bonnes. La prise en main est à la hauteur de sa réputation. Très vite on navigue sans difficulté dans les divers menus.

Arrivé chez moi, je télécharge iTunes (31Mo tout de même) et je plugue mon ipod. Tout de suite il me propose de m'enregistrer (ce que j'ai fait) et de mettre à jour le firmware de la 1.1.1 à la 1.1.2. Tout est fait en 3 minutes montre en main.

Concernant iTunes, on m'en avait dit le plus grand mal mais force est de constater qu'il est plutôt facile à utiliser.

Première surprise, l'Ipod ne fait pas 8Go mais 7.4Go. Renseignements pris l'OS ferait 300Mo et le reste est utilisé par divers softwares. On ne peut pas dire qu'ils aient hyper optimiser l'espace disque côté OS... Cela veut-il dire que les premiers Ipod 2go ne faisaient en fait que 1.4Go ?!

Premier rip de CD et plantage sur le dernier morceau... Mon lecteur CD semblait boucler sans arrêt sur la fin du morceau. En suivant, je ripe une dizaine de CDs sans problème. Ripper un Cd reste tout de même assez long. Je n'ai pas calculé mais il va bien me falloir une bonne journée pour ripper toutes mes CDs (+- 400). La bonne surprise c'est la vitesse de synchronisation entre le PC et l'IPod, c'est vraiment très rapide avec à peu prêt 10 secondes pour un album transféré.

Concernant la qualité d’écoute, elle est plutôt bonne. J’ai fais par contre l’erreur d’acheter des écouteurs type « implant auriculaire » (45€) que je ne supporte finalement pas. Je préfère largement les écouteurs d’origines.

Voilà pour les premières impressions. Je vous en dirais sûrement des nouvelles ces jours-ci.

  20:43:53 |  11 


PermaLinkRecherche freelances compétents désespérément
Il m’arrive régulièrement d’avoir des demandes de prestation dont je ne peux donner suite par manque de disponibilité ou par éloignement géographique trop important.

Pour donner suite à ces demandes je voudrais créer un réseau d’indépendants (développeurs et administrateurs). Le but final étant de garantir aux clients en plus d’une excellente qualité de service, une réactivité et une disponibilité accrue.

Je suis déjà en contact régulier avec quelques indépendants triés sur le volet mais je suis loin de couvrir le tout le territoire national ! Donc si vous êtes freelance et que vous êtes intéressé par cette idée, contactez moi par email.

  21:52:27 |  15 


PermaLinkMonitorer les transferts d' emails externes
Lors de prestation en administration, j'ai régulièrement cette demande :

"Est-il possible d'être automatiquement alerté lorsque l'on ne reçoit plus de mail de l'extérieur ou lorsque ceux que l'on envoi ne sortent pas ?"

Envoyer et recevoir des mails est l'une des fonctions primaire de notre système d'information et portant cette fonctionnalité n’est pas si évidente que ça à monitorer.

Le problème principal vient du fait qu'il existe de plus en plus de serveurs intermédiaires (Anti-virus, Anti-Spam, serveur relais, etc.…) entre notre serveur Domino et l'extérieur (et inversement). On est donc potentiellement de plus en plus sujet à la défaillance d'un de ces éléments et du coup à la rupture du transfert des mails.

Si l'on souhaite anticiper les appels des utilisateurs suite à ce type de problème il faut mettre en place un système de monitoring. Mais comment faire ?

Je me suis longtemps posé cette question jusqu'a ce que je découvre que certain providers disposent d'adresse email de type ping@provider.com (si vous voulez un exemple envoyez moi un mail). Ces adresses renvoient un mail en réponse de celui envoyé. Dans le corps du message tous les champs du mail envoyé sont présent ce qui est trés utile.

La découverte des adresses ping m'a ouvert les yeux sur la solution suivante :
  • 1 Un agent envoi un mail à l'adresse ping toutes les 5min avec le unid du document qui à servi à créer le mail en sujet. Ce document est stocké dans la base.
  • 2 Un agent exécuté "before new mails arrives" reçoit la réponse du ping et flage "reçu" le document ayant servi à l'envoi. Le mail reçu est supprimé.
  • 3 Toutes les 20 min le serveur de monitoring exécute un fichier JScript qui effectue une requête AJAX sur un vue affichant la liste des mails n'ayant pas reçu de réponse dans les dernière 20 minutes.
  • 4 Si il y a plus de 2 documents n'ayant pas reçu de réponse, le serveur de monitoring lance une alerte.

Voici le schéma général :



Dans la base de monitoring, une vue affiche les mails envoyés avec le temps de réponse :



L'outil de monitoring que je conseille à tout bout de champ c'est Advanced Host Monitor. Il n'est pas cher (de 100 à 600$), il fait tout et en plus il a eu plein d'Awards.

Voici le test créé dans host monitor :



Voici les source utilisés :

Jscript pour HostMonitor - Voici l'agent d'envoi d'email - Voici l'agent de réception d'email

Cela fait plus d'un mois que ce système de monitoring est maintenant en place et il s'avère très efficace. N'hésitez pas à me contacter ou à écrire un commentaire si vous avez besoin de renseignement supplémentaire sur cette solution.

  09:24:51 |  


PermaLinkDomgle V1.2 is Out (English)
A new release of the fabulous search tool called Domgle is out :



I was not alone to work on this release. A special thanks to Renaud Gouffé for this fantastic design. There are new functionalities and a new error reporting system :



You can follow the project's evolution and download the Domgle db on openNTF. The online demonstration is still available here .

Thank you to Ed Brill and Julian Robichaux to have spoken about Domgle on their "How to sell Notes inside your organisation"(ID212) presentation :



You can download their presentation here.

Domgle is now in production environment in a lot of companies. For those who think about installing and customising Domgle but don't have time or people for it, don't hesitate to ask me .

  18:48:38 |  


PermaLinkDomgle V1.2 disponible
La version 1.2 du fabuleux outil de recherche multibase nommé Domgle est maintenant disponible :



Je ne suis pas le seul à y avoir travaillé, vous pouvez remarquer le beau design et le code HTML tout clean réalisé par Renaud Gouffé. Il y a aussi de nouvelles fonctionnalités et un nouveau système de rapport d’erreur :



Vous pouvez continuer à suivre l’évolution et télécharger les sources de ce projet sur openNTF. La version de démonstration est toujours dispo ici.

Je profite de ce billet pour remercier Ed Brill et Julian Robichaux pour avoir parlé de Domgle durant leur présentation "How to sell Notes inside your organisation"(ID212) lors de la dernière LotuSphere à Orlando :



Merci à Smicky sans qui je n’aurai jamais su qu’ils en avaient parlé. Vous pouvez d'ailleurs télécharger leur présentation ici.

Domgle est maintenant en production dans de nombreuses sociétés. Pour ceux qui envisagent de mettre en place ou de customiser Domgle sachez que je reste à votre entière disposition .

  18:16:56 |  


PermaLinkMise en place de google ADSense et modification du flux rss
La fréquentation de ce site augmentant de manière régulière, j’ai été obligé de passer à l’abonnement supérieur chez dominodeveloper.
Je payais 25$ pour le production plan 1 et j’ai du passer à 40$ par mois pour le production plan 2.
J’ai maintenant 5GB/mois de bande passante à disposition. J’espère tenir cette année sans devoir encore augmenter l’abonnement.

Pour éviter de trop tirer sur la bande passante, j’ai aussi réduit le flux rss qui ne diffuse que les 260 premiers caractères du billet.

Pour pallier à ce coût, j’ai aussi décidé de tester google adsense comme l’a fait Yogi l’année dernière. Côté design ça me gêne un peu, je ne trouve pas ça terrible terrible. Je ne sais pas trop ou mettre le bandeau sans gâcher le design général du site .

En tout cas, je suis curieux de voir le résultat. Je vous tiendrai moi aussi au courant de l’évolution des revenues.

  23:25:17 |  


PermaLinkInfos utilisateur
Lorsque l’on développe une application web sous Domino et qu’arrive le temps du recettage, on est souvent sollicité pour des problèmes de personnalisation du type :

« Monsieur Jeannot n’a pas les liens vers ses applications métier au niveau de la page d’accueil. »
« Il manque l'onglet aministration à Madame Dubus»
«etc...»


La personnalisation d’une application est très souvent liée :
  • A des rôles
  • A l’appartenance à certains groupes
  • A un niveau d’accès
  • Les trois à la foi

En V6+, pour connaître l’accès d’un utilisateur à une base, on peut utiliser le bouton « accés effectif » dans l’onglet général de la LCA. Mais il y a plusieurs problèmes à l’utilisation de cette fonctionnalité :
  • On n’est pas toujours en V6.
  • On n’est pas toujours gestionnaire de la base
  • On n’est jamais certain que les droits de l'utilisateur n’aient pas changés depuis le signalement du bug.
  • On ne sait pas si l’utilisateur disposait du bon login lorsqu’il a constaté l’anomalie.

Bref, pour faciliter le travail du support pendant la période de recettage, j’insère un petit bout de code JS qui affiche toutes les informations nécessaire lorsque l’utilisateur fait un alt-u:



Lorsque l’on voit arriver une fiche d’anomalie avec cette boite de dialogue en copie d’écran, on sait que notre travail sera vraiment facilité.

Voici donc le code à insérer dans votre masque /page :

<script language="JavaScript" type="text/javascript">
nn=(document.layers)?true:false; ie=(document.all)?true:false; 
function keyDown(e) { 
	var evt=(e)?e:(window.event)?window.event:null;
	 if(evt){ var key=(evt.charCode)?evt.charCode: ((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0));
		if(key=="85" && toucheAlt(e)==true ) showUserInfo(); 
	}
}
// retourne vrai si la touche Alt a ete enfoncee avec la derniere touche
function toucheAlt(e) {
  if (window.event) {
    return (window.event.altKey);
  } else {
    return (e.altKey || (e.modifiers % 2));
  }
} 
document.onkeydown=keyDown; 
if(nn) document.captureEvents(Event.KEYDOWN);
function showUserInfo(){
var userName =  '<Valeur calculée 1>';
var userAccessLevel = '<Valeur calculée 2>'
var userRolesAndGroup = '<Valeur calculée 3>';
alert('User name : '+userName+'\n\nUser access level : '+userAccessLevel+'\n\nUser roles & groups : \n'+userRolesAndGroup );
}
</script>

Voici le code des 3 valeurs calculés :
Valeur calculée 1 : @Name([CN];@UserName)
Valeur calculée 2 : @Subset(@UserAccess( @DbName );1)
Valeur calculée 3 : @Implode(@UserNamesList;", ")

Bien sur le code est brut et vous pouvez le customiser en fonction de vos besoins et de l’application.

  19:29:03 |  


PermaLinkCours de Javascript
Pour ceux qu’Ajax rebute car ils ont du mal à digérer le javascript, ou ceux qui comme moi pense en savoir finalement assez peu sur ce fabuleux langage de programmation, voici une série de vidéos formations en Anglais données par Douglas Crockford (Yahoo) :

Jake en fait mention dans son dernier billet. J’avais commencé leurs visualisations la semaine dernière et je peux vous dire qu’elles sont vraiment faciles à suivre. J’ai découvert cette série de vidéo et bien d’autre via le YUI Theater. Belle initiative de yahoo que d’avoir créer ce portail dédié aux interfaces riches.

Si vous êtes septique sur l'utilité de regarder ces vidéos, voici un petit quiz :
  • Connaissez vous la différence entre les opérateurs a==b et a===b ?
  • Quel est le scope d'une variabe non déclarée ?
  • Que veux dire la ligne : value instanceof Array ?

Le javascript est plus que jamais un langage d’avenir. Autant donc bien le maîtriser.

  20:19:12 |  30 


PermaLinkBlogSphere V3
Ca fait toujours plaisir



  19:04:38 |  16 


PermaLinkLa LotuSphere 2007 a commancé ! Et j'y étais !
Ben oui j'y suis ! La preuve :



Bon je sais c'est moyen mais j'ai pas pu résister. Belle initiative en tout cas que cet espace dans Second Life. J'étais très septique sur l'utilité d'un tel soft mais après avoir fait quelques rencontres intéressantes dans les locaux d'IBM, je dois avouer m'être bien trompé.

J'ai en effet rencontré quelques bloggeurs et des architectes IBM. Ce que vous savez peut-être pas c'est qu'IBM a mis à notre disposition des architectes Lotus rien que pour nous et tous disponiblent pour répondre à nos questions :



Profitez-en ! Ils ont l'air trés callé sur leur sujet (en même temps vaut mieux...)

Voici deux bloggeurs Italiens que j'ai rencontré ce soir :

Daniele Vistalli de vistali.it :



Giuseppe Alle de dominopoint.it :



En tout cas la vraie LotuSphere 2007 a bel et bien commencée ! Vous pouvez en savoir plus sur le blog de Dominux qui nous a déjà fait quelques retours.

  20:40:10 |  


PermaLinkFive things you may not have known about me (French)
J’ai été taggé par Joe Litton pour participer au fameux "Five things you may not have known about me". Voici donc ma contribution :

  • 1. J’ai fais mon service militaire dans les fusillers commandos de l’air. Rassurez-vous c’est pas moi qu’est choisi…. Je voulais juste être tranquille pendant 10 mois et on m’avait dit que l’armée de l’air c’était la planque. Pas cool la planque en tout cas . Bon l’avantage c’est que j’ai touché et tiré avec plein d’armes et que je me suis fait pleins de potes.

  • 2. J'ai eu pas mal d'ordinateurs dans me petite vie. En voiçi la liste classée par ordre chronologique :
    Je garde une affection toute particulière pour l'Apple IIc. Mes premières nuits blanches, je les aient passées devant un jeu nommé Sorcellerie (Wizardery).
    Je me souviens encore du premier niveau comme de ma pôche.J'ai encore en tête mon sortilège préféré nommé TILTOWAIT dont j'ai retrouvé la trace dans une doc scannée :



    C'est sûrement ce jeu qui m'a donné le goût des RPG (Role playing game).

  • 3. Durant mon adolescence, et longtemps après, j’ai fait énormément de jeux de rôle. Cela allait du JDR traditionnel tel que Dark Sun jusqu’au plus trash comme In Nomine Satanis. J’étais personnellement maître de jeu sur L’appel de Chtulu. Ce jeu de rôle est issu des nouvelles de l'écrivain américain H. P. Lovecraft dont je vous conseille vivement la lecture si vous aimez la littérature fantastique.

  • 4. Côté musique, j’aime beaucoup le Rock progressif (Genesis, Yes, Jethro tull,etc…) et le Jazz. Je suis particulièrement fan de John Coltrane et Magma.

  • 5. J'en sais rien...


  21:27:03 |  


PermaLinkMails HTML dans outlook 2007
Pour ceux qui en ont marre du rendu des mails HTML dans Lotus Notes sachez qu'il en sera bientôt de même dans Outlook. En effet la version 2007 n'utilisera plus IE pour traduire l'html mais Word 2007. Le problème c'est que Word 2007 ne supporte pas les images d'arrière-plan, le positionnement CSS, les CSS flottants, les GIF animés, les animations Flash ou les autres plug-ins, autant de fonctions qui sont abondamment utilisées dans les newsletters. La raison de ce changement n'est pas très claire mais il semblerait que ce soit pour des problèmes de sécurité.

Tiens donc, Oulook ne serait pas trés sur ? Sans blague...

Merci à clubic pour l'info.

  19:19:11 |  


PermaLinkdb.FTSearch à oublier ?
Dans le cadre du développement de Domgle, je me suis rendu compte d'une belle anomalie liée à la méthode DB.FTSearch. Cette méthode gère très mal les droits d'accès aux documents. Voici ce que j'ai pu constater :

Dans un agent web s'exécutant en tant qu'utilisateur web (option de l'agent "run as web user"), la methode DB.FTSearch renvoie dans la collection résultant de la recherche des documents dont l'utilisateur n'a pas forcément les droits d'accès.
On s'en rend compte car lorsque l'on parcour la collection, on tombe sur des documents qui ont leurs champs et leurs propriétés vides. Un doc.GetitemValue("Form")(0) retourne "" de même pour doc.UniversalID.

Comment contourner le problème ?
Le premier réflexe que l'on peu avoir est de faire un test sur un des champ du document et si il est vide, on passe au document suivant. Je vous parle de cette solution car c'est celle que j'avais adoptée. Ben en fait c'est une très mauvaise solution.
Le problème vient du fait que la methode DB.FTSearch renvoie au maximum 5000 documents et si votre base en contient bien plus que cette limite, l'utilisateur peut se retrouver devant un résultat de recherche ne reflétant pas la réalité.

La bonne méthode est à mon sens de tout simplement oublier db.FTSearch mais d'utiliser plutôt NotesView.FTSearch. Lorsque l'on fait un db.getView("NomVue"), il filtre la vue avec les droits de l'utilisateur. Bien entendu cette vue doit afficher tous les documents de la base (SELECT @All).

Je n'ai pas remarqué de différence notable en terme de temps de réponse.

Conclusion :
Je ne sais pas si vous avez pu constater la même chose, je ne sais pas non plus si cela est spécifique aux agents web mais quoi qu'il en soit le bug est bien là. Pensez y donc a deux fois avant d'utiliser le bon vieux db.FTSearch.

AddOn :
Ces variables du notes.ini permettent de bypasser la limitation des 5000 documents FT_MAX_SEARCH_RESULTS
TEMP_INDEX_MAX_DOC

  09:22:19 |  


PermaLinkTable UNK
En ce moment je participe (entre autre…) à une migration V5 -> V7. Lorsque l’on migre un domaine il y a au préalable une série de vérifications à réaliser. Par mis elles, il y a la taille et la configuration de la table UNK de tout vos names. J’ai décidé de faire un petit billet dessus car je me suis rendu compte que cette table n’était pas forcément connue de tous.

La table UNK (UNique Key) est une table interne qui stocke tout les noms de champs contenus dans une base. Pour ceux qui connaissent le client designer, c’est la liste des champs qui apparaît lorsque l’on veut donner à une colonne la valeur d’un champ en particulier. Cette liste est constituée des noms de tous les champs insérés dans les masques de notre base ajoutée à ceux des documents.

Pourquoi s’intéresser à cette table ?
Bien tout simplement car elle a une taille limite et qu’une migration modifie certain template en y ajoutant des masques et que l’on risque de s’approcher voir dépasser cette fameuse limite. Peut-être êtes vous déjà tombé devant ce type d’erreur :
  • Database has too many unique field names
  • Cannot Store Document; Database has too many unique field names. Please ask your administrator to compact the database.

Quelle est donc sa limite ?
La limite de cette table est de 64ko ce qui correspond à environ 3000 champs ayant des noms de 10 caractères en moyenne. Cette limite est valable pour toutes les versions de base Domino.

Que faire pour éviter de passer cette limite ?
Le plus simple est d’activer l’option "Autoriser davantage de champs dans la base" ou en anglais « allow more fields in database » :


Cette option augmente la limite à 22,893 champs on a donc de la marge. Cette option n’est présente qu’à partir de la V5. Vous pouvez l’activer à partir de l’interface notes ou faire un « load compact –K ».
Pour l’activation, il ne faut pas que la base soit indexée. Si elle l’est, désactivez l’indexation, lancez le compact et relancez l’indexation.

Comment savoir si on est prés de la limite ?
A défaut de l’inclure dans Domino (ce qui au passage est vraiment dommage), IBM nous a développé un petit outil du nom de Itemdef.exe. Vous pouvez le télécharger ici.

Doit-on vraiment s’inquiéter de cette limite ?
Pas pour les bases applicatives. Il faut vraiment avoir une application hors du commun pour atteindre cette limite. Mais si vous doutez ou même par curiosité, n’hésitez pas à faire le test.

Par contre le vrai danger se situ au niveau de l’annuaire du domaine. Le names possède énormément de champs et en ajoute un bon paquet dans le template de la version 6.

Pour vous en persuader voici un petit test. J’ai créé une base sur mon serveur à partir du modèle pubnames V6. Voici ce que m’indique Itemdef juste après cette création sans qu’il n’y ai un seul document dans la base :


Comme vous pouvez le voir, la table UNK est déjà pleine à 81%.

J’ajoute simplement un document de policies et regardez le résultat :



On est déjà au maximum. Imaginez donc l’impact que cela peut avoir lors d’une migration.

Si sur la même base j’active « allow more fields in database » je retombe à 11% :



Conclusion
La taille de la table UNK de l’annuaire du domaine est loin d’être un facteur à négliger. Certain l’on fait et ils s’en sont mordus les doigts. C’est arrivé chez un très gros client Français qui a planté plus de 400 serveurs en moins d’une demie journée. So be careful of this F@ !$ ?@! limitation.

  23:14:24 |  14 


PermaLinkBonne et heureuse année 2007 !
C’est pour moi la deuxième fois que je vous souhaite une bonne année par l’intermédiaire de ce site. D’après les statistiques Technorati, un blog a une durée de vie moyenne de six mois. Je suis donc satisfait de ne pas avoir manqué de motivation et de matière première pour maintenir ce site bien au delà de cette fameuse statistique.

En lisant mon billet de l’an dernier je me rends mieux compte de ce qui a changé cette année.

Tout d’abord je poste de plus en plus pour le plaisir de poster. Ce n’est plus un devoir comme cela pouvait l’être au paravent. C’est un peu lié au fait que je mets un peu plus de moi dans mes billets mais surtout parce que vous y apportez vos commentaires. Donc merci à tout ceux qui en ont posté cette année :

YoGi (38)
Smicky (36)
Sylvain (28)
Benoit (22)
JNK (17)
Stéhane Maillard (17)
aquanotes (9)
Renaud (9)
Olivier@Dominux (8)
Michael (7)
Jérôme (6)
stefd70 (5)
Bob (4)
kerozen (4)
Lionel (4)
Cecile (3)
DiGGeR2 (3)
Jerome (3)
Markus Koller (3)
philippe (3)
Joe Litton (2)
Laurent (2)
Massilia (2)
Thierry (2)
William Beh (2)


Merci aussi à tous ceux qui visitent régulièrement ce site. Google Analytics me permet d’en savoir un peu plus sur vous grâce à la géo localisation. Vous pouvez en voir le détail ici et peut-être vous trouver dans la liste.

Sinon côté résultat, la société Domlike se porte bien, pas comme son dirigeant qui vient de se faire une tendinite du moyen fessier droit à trop courir (le premier qui rigole je blackliste son ip ). Donc mon premier conseil de coureur pour cette année 2007 sera :
Fait attention à tes fesses, Elles peuvent te jouer des tours. Apprends à les écouter.

Côté voyage professionnel, en 2006 je n’ai pas passé de séjour en Suisse, j’y ai juste fait quelques allers-retours.
En 2007 je n’irai pas non plus à la LotusSphere contairement à Yogi, Olivier et Smicky. J’ai déjà expliqué mes raisons dans un de mes commentaires ici.

En tout cas avec tout les reporters que l’on aura en direct live d’Orlando ce sera comme si on y était ! Peut être que Yogi nous fera même un podcast du World Beer Center d’Orlando qui sait .

  09:51:51 |  54 


PermaLinkPompe à essence 2.0
Ma pompe elle est super, c’est une pompe à essence 2.0 !

Elle fait le plein super vite et en plus elle parle :



Photo prise ce matin avec mon portable.

  21:40:13 |  13 


PermaLinkPour bien rigoler avec une blague à 2 francs
Dans la série « Pour bien rigoler avec une blague à 2 francs » :
Allez sur votre intranet d’entreprise, copié/collé le code ci-dessous dans votre navigateur (dans la barre d’URL) et demandez à votre webmaster si il n’y a pas un truc qui cloche sur l’intranet.

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.getElementsByTagName("img"); DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+"px"; DIS.top=(Math.cos(R*y1+i*y2+y3)*y4+y5)+"px"}R++}setInterval('A()',50); void(0);

C'est le genre de truc débile qui me fait pleurer de rire .

Si ça ne fonctionne pas ça veut dire que votre intranet a des framesets ou alors y a pas d’image…

  20:02:57 |  


PermaLinkLiens Ajax
Trois petits liens sur Ajax :

  • Tout d’abord un nouveau bouquin (et oui encore…) sur la programmation Ajax :
    Bien développer pour le Web 2.0
    J’en ai lu quelques passages et ce livre semble excellent. Christophe Porteneuve ne se borne pas à l’aspect technique mais déborde allègrement sur tout ce qui touche à la problématique d’accessibilité liée au Web 2.0. Une très bonne idée cadeau (ça c'est juste au cas ou ma femme lit mon blog).

  • Une nouvelle librairie AJAX légère et accessible aux débutants. 13,6ko et pas besoin de librairie externe pour SimpleJS.js

  • J’arrive peut-être un peu la bataille mais j’ai découvert un site génial qui nous crée des gifs animés pour nous faire patienter quand Monsieur Ajax il travaille : AjaxLoad


  19:42:58 |  


PermaLinkLes parametres du Notes.ini
Le notes.ini d'un serveur référence tous les paramètres qui sont nécessaire à son bon fonctionnement.

Il existe à l'heure actuelle prés de 2151 paramètres référencés. Vous comprenez donc que le notes.ini d'un serveur peut parfois ressembler à un vrai capharnaüm.

Le problème c'est que lorsque l'on souhaite connaître la fonction d'un de ces paramètre on ne sait pas trop ou aller chercher l'info. L'aide du client d'admin est très limité sur le sujet et même si la knowledge base est un peu plus bavarde ce n'est toujours pas la panacée.

Tout ça pour dire que si vous n'avez pas d'info sur un paramètre du notes.ini allez plutôt voir sur le site du drcc. Ils ont créé une véritable bible de tous ces paramètres et ils nous l'ont mis à disposition sur leur site ( ici).

Ils ont aussi créé un outil pour réordonner le notes.ini par catégorie de paramètre. Cet outil est assez connu car il est disponible depuis pas mal d'années sur leur site. Si je vous en parle maintenant c'est qu'ils ont refait l'ergonomie générale et c'est beaucoup plus simple d'utilisation (plus besoin de s'inscrire et le serveur est beaucoup plus rapide).

Voici un petit « avant après » d'un notes.ini :

 

 
C'est plutôt pro et surtout on s'y retrouve…

C'est vraiment dommage d'être obligé d'aller se renseigner auprès d'une société extérieure à IBM pour avoir des infos techniques d'un de leur produit. En tout cas ils ont fait du super bon boulot chez drcc.

  18:55:04 |  18 


PermaLinkLes 10 Km d'Arcachon
Aujourd'hui j'ai participé à la 10ième édition des 10km d'Arcachon. Arrivé sur place à 9h40, inscription puis départ à 10h30. Côté météo c'était extra. Soleil magnifique, pas de vent, température de 8°C, bref aucune excuse pour faire un bon temps (enfin pas trop mauvais quoi...).

Début de course :
Je loupe le complètement le départ, je discutais avec mes filles... Je suis donc parti à 10 km/h avec tous les touristes.
Première ligne droite, j'accélère et décroche tout ce monde pour me retrouver dans mon rythme.
Dans le style économie d'énergie on fait mieux.

Milieu de course :
C'est cool c'est plat, y a un peu de sable qui rentre dans les chaussures mais ça roule.
Arrivé au ravitaillement... Je prends rien.

Fin de course :
Ca monte et ça descend sans arrêt, c'est super dur. J'ai mal aux jambes. Le 7ieme kilomètres est un enfer.
Dernier kilomètre sur le plat, j'accélère un peu et je fini ma course en 45 minutes et 16 secondes.

J'avais pour objectif 45 minutes. Je suis donc plutôt content. C'est encouragent après deux semaines d'entraînement. Pour ceux que ça interesse, j'ai mis le détail (km par km) de ma course sur ma sreadsheet. Il y a aussi le classement officiel de la course (je suis 353ieme)

Ce que je retiens de ma première course :
  • Courir c'est dur.
  • Ca fait mal aux jambes.
  • La transpiration dans les yeux ça pique.
  • Après 10km, les lignes blanches c'est beau.


  16:40:09 |  


PermaLinkExtraction des bases courrier inutilisées
Dans la série "un p'tit script qui pourrait ben vous servir un jour" (un peu comme le Show n Tell Thursdays mais à la sauce de la France), voici un agent qui extrait dans un fichier texte les bases du répertoire mail qui ne sont pas référencées dans les documents personnes. En gros cet agent vous sort toutes les bases que vous avez oublié de supprimer (ou mal supprimé) aprés le départ de vos collègues.

Sub Initialize         Dim session As New notessession     Dim dbcurrent As notesdatabase     Dim view As notesview     Dim entry As NotesViewEntry     Dim item As Notesitem     Dim itemText As String     Dim vc As NotesViewEntryCollection     Dim dirDBArray() As String     Dim usersDBArray() As String         Dim db As NotesDatabase     Dim intExportFile As Integer         Set dbcurrent = session.currentdatabase     Dim dbdir As New NotesDBDirectory(dbcurrent.server)         intExportFile = Freefile     Open "c:\temp\ExportFile.txt" For Output As intExportFile     ' Récupération des bases dans le répertoire mail     i%=0     Set db = dbdir.GetFirstDatabase (DATABASE)     Do Until db Is Nothing         If Lcase(Left(db.FilePath, "5")) = "mail\" Then             i%=i%+1             Redim Preserve dirDBArray(i%)             dirDBArray(i%-1)=Lcase(replaceSubstring( db.FilePath,".nsf",""))         End If         Set db = dbdir.GetNextDatabase     Loop            Set view = dbcurrent.getview("People")     Set vc = view.AllEntries     ' Récupération des fichiers mails des documents personne     i%=0     Set entry = vc.GetFirstEntry()     While Not entry Is Nothing         If Lcase(Left(entry.document.mailfile(0), "5")) = "mail\" Then             i%=i%+1             Redim Preserve usersDBArray(i%)             usersDBArray(i%-1)=Lcase(entry.document.mailfile(0))         End If         Set entry = vc.getnextEntry(entry)     Wend     ' Comparaison des deux tableaux et extractions dans le fichiers texte     For x% = Lbound(dirDBArray)To Ubound(dirDBArray)         y%=0         found%=0         For y% = Lbound(usersDBArray)To Ubound(usersDBArray)             If dirDBArray(x%)=usersDBArray(y%) Then                 found%=1                 Exit For             End If         Next         If found%=0 Then             Write #intExportFile, dirDBArray(x%)         End If     Next             Close #intExportFile     End Sub Function ReplaceSubstring( Byval s1 As String, s2 As String, s3 As String) As String Dim index% index = Instr( s1, s2 ) If index = 0 Then ReplaceSubstring = s1 Else ReplaceSubstring = Left$(s1, index - 1 ) & s3 & ReplaceSubstring(Right$(s1, Len(s1) - (index + Len(s2)) + 1 ), s2, s3 ) End If End Function
A noter que cet agent est à créer dans votre carnet d'adresse.
A noter aussi que pour faire cette extraction je me base sur la vue "People", je ne m'occupe donc pas des bases de courrier en arriver.
A noter encore que si vous avez plusieurs serveurs mails, vous devez l'exécuter sur chaque serveur.

Cet agent est à exécuter par le client et demande très peu de ressource au serveur. Il est compatible V5, V6, V7.

  21:04:52 |  74 


PermaLinkMigrating from Exchange to Lotus Notes
Un nouveau redbook vient de sortir et il va en intéresser plus d’un :

Migrating from Microsoft Exchange 2000/2003 to Lotus Notes and Domino 7

Alors, qu’attendez-vous pour migrer ? Vous n'avez plus aucune excuse maintenant .

  17:25:46 |  


PermaLinkSécurité
Ils sont vraiment gonflé chez M$ :

Le nouveau Windows Vista de Microsoft pourrait être victime de trois virus-ver connus depuis 2004 si l’utilisateur installe un client de messagerie mail comme Lotus Notes, Yahoo ou Gmail, selon l'éditeur d'antivirus britannique Sophos.

Moralité : installez Outlook vous serez sur de ne choper aucun virus... C'est de loin la meilleure de l'année celle là .

Via ZDNet.fr.

  07:49:37 |  


PermaLinkDétournement de james BOND
Juste pour vous faire partager un détournement de james BOND realisé par les grands malades de MOZINOR :



J'ai rarement autant rigolé devant une vidéo

  22:47:57 |  


PermaLinkLotus Expeditor 6.1
Lotus expeditor 6.1 vient de sortir. Il y a un mois on ne savait pas que ce produit existait et on en est déjà à la V6.1 . Plus sérieusement, ils ont choisi de calquer le versionning sur celui de WebSphere.

Lotus Expeditor est le concurrent direct du client .net et servira de socle aux applications dites « composites » tel que Sametimes 7.5 et Lotus Notes 8. Vous pouvez lire la fiche produit pour en savoir plus. IBM nous a même fait un petit graphique :



Je vous invite et vous inviterai à plusieurs reprises de vous intéresser à Lotus Expéditor / Eclipse RCP et Lotus Component Designer car c’est l’avenir de notre client Designer actuel.

  22:23:44 |  


PermaLinkEntraînement 2.0 pour un semi-marathon
Au mois de mai j’ai prévu de participer au semi-marathon de Langon-Bazas. Je n’ai jamais fait de course aussi longue et j’ai vraiment besoin de pas mal d’entraînement pour faire un temps pas trop mauvais.

J’ai donc commencé par acheter une bonne paire de chaussures que m'a conseillé un collèque marathonien (merci Michel):

J’ai aussi pris un cardio pour contrôler mon rythme cardiaque pendant l’entraînement. C’est très pratique et pas très cher (20 €) :


Bref côté logistique c’est ok même si j’ai pas encore de lecteur mp3 mais qui sait…Noël arrive .

Le web nous offre aussi pas mal d’outil assez sympa pour nous aider. Prenez par exemple Openrunner. Ce site web nous permet de calculer la distance d’un trajet. Par exemple ce matin je suis allé chercher le pain en courrant. J’ai donc pu savoir avec précision combien de km j’avais parcouru :


On peut aussi voir le profil (dénivelé) du parcours :


Bref, c’est très pratique openrunner.

J’ai aussi mis en partage ma spreadsheets dans laquelle je liste tous mes entraînements. Si vous avez un compte google, vous pouvez consulter mon fichier à cette adresse : http://spreadsheets.google.com/ccc?key=pg30L9IRfQ8Fcg30xEIvmKQ

Bon maintenant le plus dur reste à faire : Rester motivé et se libérer assez de temps libre pour l’entraînement.

  15:31:49 |  26 


PermaLinkArmchair quarterbacks
Ce n’est pas demain la veille qu’un de mes billets génèrera plus de 70 commentaires. Je vous dis cela car les derniers posts de Jake Howlett ont provoqués une petite tempête. Pour ceux qui ne connaissent pas Jake, son blog est sûrement le plus consulté de toute la "communauté" Domino. Il est développeur indépendant et anime son blog depuis maintenant plus de 6 ans. Et même si cette phrase manque peut-être d’un peu de modestie, on ne peut pas objectivement le contredire lorsqu’il dit :

“I also still believe that the site itself has made a massive difference to the world of Domino web development. If this site never existed I'm confident that Domino web development would be in a much sorrier state than it is now.”

Si, comme moi, vous suivez ce blog depuis plusieurs années vous avez peut-être remarqué que la passion de Jake pour Domino c’était un peu dissipée ces derniers temps. Dans un de ses dernier billet il a incité ses lecteurs à "se lâcher" et à critiquer les lacunes du moteur web de Domino et surtout l’inertie d’IBM pour écouter et régler ces problèmes.

Ce billet lui a value un commentaire plutôt sec d’Ed Brill (Directeur Marketing de Lotus). Jake l’a plutôt mal prit et du coup le torchon brûle (c'est pas la super ambiance quoi).

Voili voilou… Bon c’est sur c’est pas une super info mais en même temps y a plein de commentaires super interessants que je vous invite à lire. Et puis maintenant je sais ce que c’est un "armchair quarterbacks" et si vous ne savez pas vous pouvez toujours demander à notre représentant Français : Yogi .

  14:10:38 |  


PermaLinkLotus Notes 8

Depuis quelques semaines, on peut lire de plus en plus de fuites ou de confidences (c'est selon ) de blogeurs ayant approchés de prêt la version 8 du client Notes.
En croisant toutes ces informations, on peut avoir une vision un peut plus claire de Notes 8. Je vais donc essayer dans ce billet d'en faire un petit résumé.

Pour commencer je ne vais pas utiliser dans ce billet de vocabulaires délibérément abscons car je ne veux pas entrer dans le travers dénoncé par Lionel. Prenez le temps de lire c'est à mourir de rire.
Plus sérieusement je vais essayer de ne pas trop rentrer dans les détails techniques et rester le plus « hight level » possible.

Que sait-on de plus sur Lotus 8 ?

Deux types d'installations seront possibles. La version Traditional et la version Eclipse/ Expeditor. Lors du process d'installation, il vous sera demandé quels composants vous souhaitez installer et l'installation d'Eclipse/ Expeditor se fera ou pas en fonction des options choisies.

Notes 8 Traditional Client
Au niveau de son architecture, cette version sera semblable au client actuel. Il reposera sur les API C++ que l'on connaît bien. Cette version a l'avantage d'utiliser moins de ressources CPU et RAM. En effet il n'y a pas de JVM à lancer, il n'y a pas Eclipse à lancer par-dessus la JVM, etc…
Cette version a aussi l'avantage de faciliter la migration des clients. On reste dans un upgrade classique.
Par contre, un des gros point noir de cette version est de brider le client Notes en terme de nouvelles fonctionnalités. Il n'aura pas tout ce que peux offrir Eclipse en terme de connectivité avec d'autres applications Java. Il n'aura pas non plus toutes les options de la nouvelle interface revisité que l'on attend depuis longtemps (enfin surtout nos utilisateurs…).
Certains (comme vowe) disent que c'est une erreur de continuer de proposer cette version, qu'il faut forcer les clients à passer sous Eclipse. De mon côté, j'attends d’en savoir un peu plus avant d'émettre un avis.

Notes 8 Eclipse/ Expeditor Client
Ce client Notes reposera sur Eclipse RCP. Lors du lancement de Notes, la machine virtuelle java sera lancée puis Eclipse puis le plugin Notes pour Eclipse. Cette version est très gourmande en ressource. On parle de 1go de RAM minimum. La grosse blague c'est de dire que si le pc peut faire fonctionner Vista il pourra faire fonctionner Notes 8 mais pas sur qu'il arrive à les faire fonctionner en même temps .
Vu que les premiers déploiements ne devraient pas arriver avant début 2008 cela ne posera peut-être pas autant de problème que ça car le parc machine aura pas mal évolué. Par contre les clients disposant d'architectures centralisées de type Cytrix devront sentir le vent passer…

Concernant Eclipse RCP je vous renvois vers la présentation que je vous avez présenté il y a quelques semaines. Tout est assez clair. Si il y a une chose à retenir c'est que le souhait d'IBM est de faire d'Eclipse et de Notes 8 le point d'entré de toutes les applications utilisateurs. C'est une logique qui peut que nous (admin/développeur Domino) être bénéfique. Toute la machine commerciale d'IBM va promouvoir ce nouveau client pour en faire le socle, le portail d'entrée et d'interconnexion de toutes les applications « composite » java.

Lotus Expeditor c'est quoi ?

Concrètement c'est un nouveau produit d'IBM qui devrait faire son entrée sur le marché d'ici peu. C'est assez difficile de le présenter car ses contours techniques restent assez flou. Ce que j'ai pu en savoir c'est que c'est une sorte de boîte à outil ou framework qui ajoute des possibilités techniques aux développeurs sous Eclipse.
Par exemple c'est grâce à Lotus Expéditor que des applications différentes pourront s'interconnectées dans Eclipse et faire qu'un évènement dans une appli provoque une action dans une autre.
C’est aussi grâce à Expéditor que votre application Java fonctionnera sur n’importe quel pc, portable, ou mobile (concernant les mobiles il paraît que c’est un peu du pipo… a suivre).
Enfin Expéditor permettra aussi de bénéficier de fonctionnalités nous permettant de faire fonctionner nos applications off-line (ça ne vous rappelle rien ). Bien sur ces applications devront être préalablement développées en utilisant Expeditor.

Voilà pour ce tour de piste sommaire des dernières news sur Notes 8. Bien sur si vous avez des infos supplémentaires ou des corrections à apporter à mes propos, n’hésitez pas à en faire part dans vos commentaires.

UPDATE :
Vowe a eu des infos interessantes sur Lotus Expeditor.

  07:55:05 |  


PermaLinkCompact -R
Depuis quelques mois les migrations en V7 se multiplient. Actuellement, un de mes clients est en V7 et je prépare la migration d'un deuxième pour début 2007.

Mon problème c'est que j'ai aussi des clients en V5 et lorsque je leur développe des applications j'ai souvent besoin de réutiliser du code d'autres bases V6 ou V7.

Pour convertir l'ODS d'une base dans une version inférieure au serveur qui l'héberge, on peut utiliser la tâche compact avec l'option -R. Si je suis sur un serveur V6 et que je fais un compact -R d'une base, l'ODS passe en V5.

La syntaxe est la suivante :
load compact -R nombase.nsf

Donc tout va bien si on doit convertir une base dans une version inférieure à celle de son serveur.

Comme vous l'avez compris, le binz arrive lorsque l'on doit convertir dans une version "n-2" (de la 7 à la 5 par exemple). Dans ce cas on doit tout d’abord convertir la base en V6, mettre la base sur sa petite clée USB et aller trouver un serveur V6 pour convertir sa base en V5...au secour !

Personnellement, je ne connais pas de soft qui permette de transformer la version de l'ODS dans la version de son choix. Quelqu'un en connaît-il un ? Je crois que je ferai vite un p'tit chèque pour un tel soft. Je commence à saturer .

  22:26:10 |  


PermaLinkUtiliser AJAX pour actionner vos Agents
Afin de mieux vous expliquer l’utilité d’Ajax pour appeler des agents via le web, prenons un cas concret :

Imaginez que vous disposez, sur l’une de vos applications, une page de type " tableau de bord ". Les différentes statistiques ne sont pas calculées à l’ouverture de la page mais prés calculées par un agent programmé toutes les heures. Ceci afin d’éviter de trop lourd calcul à chaque visualisation.

Jusque là tout va bien sauf que le gestionnaire de votre application à la bonne idée de vous demander un « bouton » sur cette page lui permettant de mettre à jours lui même ces statistiques.

Pour réaliser le souhait de votre utilisateur vous avez deux solutions.

  • La première solution (la mauvaise) consiste à appeler directement l’agent en question en lançant une url de type http://serveur/base.nsf/nomAgent?OpenAgent via un bouton par exemple :
    <input type="button" onclick="window.location.href=‘nomAgent?OpenAgent’”>

    Le premier problème c’est que le navigateur va rester figé durant l’exécution de l’agent car rien ne lui est renvoyé par le serveur avant la fin de tous ses traitements. De plus une fois le traitement réalisé on va se retrouver devant une belle page blanche avec un gros « Agent exécuté ».

  • La seconde solution (la bonne) c’est d’exécuter cet agent par une requête Ajax et recharger la page une fois l’agent exécuté. Cette solution a l’avantage de pouvoir montrer à l’utilisateur que l’agent est en cour d’exécution par un indicateur de ce type : .
    De plus on contrôle la fin d’exécution de l’agent et on peut ainsi choisir de recharger la page par exemple.

  • Voici comment mettre en place cette solution.

    Côté HTML on crée tout d’abord un bouton ainsi qu’un block div pour l’indicateur ajax :
    <input type="button" id="btUpdateStatistics" onclick="updateStatistics()" value="Mettre à jour statistiques"> <span id="Indicateur" style="display:none"><img src="Indicator.gif"></span>


    Voici le code côté Javascript à placer avant le bouton :
    // Création de l'handler ou l’on va gérer // l’apparition de l’indicateur d’activité // ainsi que l’activation/désactivation du bouton. var myGlobalHandlers = { onCreate: function(){ $('btUpdateStatistics').disabled = true; Element.show('Indicateur'); }, onComplete: function() { if(Ajax.activeRequestCount == 0){ $('btUpdateStatistics').disabled = false; Element.hide('Indicateur'); } } }; Ajax.Responders.register(myGlobalHandlers); var opt = { // Use POST method: 'get', // Handle successful response. Here we reload the current location onSuccess: function(t) { window.location.reload(); }, // Handle 404 on404: function(t) { alert('Error 404: location "' + t.statusText + '" was not found.'); }, // Handle other errors onFailure: function(t) { alert('Error ' + t.status + ' -- ' + t.statusText); } } function updateStatistics(){ if(Ajax.activeRequestCount == 0){ new Ajax.Request('nomAgent?OpenAgent', opt); } }
    Votre bouton sera donc désactivé pendant le traitement de l’agent et l’indicateur Ajax apparaîtra.



    Voici donc comment simplement faire appel à vos agents via le web sans créer d’agent spécifique.

    UPDATE :
    Comme vous l'aurez deviné, ne pas oublier d'insérer la bibliothèque Prototype.js à votre page.


      21:48:28 |  14 


    PermaLinkDominoWiki 1.1
    Les Wikis comme les blogs font semble t-il leurs percés en entreprise. Comme vous le savez sûrement il existe des templates Domino gratuits de blog ainsi que de wiki sur openNTF.
    Justement, dernièrement Ben Poole a sorti la version 1.1 de son DominoWiki sur openNTF. Vous pouvez visiter son site de démonstration pour en voir le résultat. C'est vraiment de l'excelent travail surtout qu'il a pensé à nous les petits frenchy en fournissant une version française.

    N'attendez donc plus pour proposer un Wiki à votre direction. Vivez à l'heure du web 2.0 !

    P.S : bon ok, la dernière phrase elle est peu être un peu too much... Surtout que le wiki il a été inventé en 1995 .

      21:37:09 |  


    PermaLinkL'été indien
    Depuis le commencement de ce blog j'ai rarement dévié du sujet principal (domino pour ceux qui ne l'auraient pas remarqué...)
    Il se trouve qu'en ce moment, côté actualité c'est le calme plat et que techniquement, je n'ai pas de truc de ouf à vous montrer.

    Du coup j'ai eu envi de vous parler de mon week-end (non partez pas, nooooonnnnn....).

    Ce week-end donc, j'ai passé une journée à Biscarosse plage (au nord ouest des Landes). En arrière saison j'avais l'habitude d'y passer énormément de temps gamin. J'en garde de très bons souvenirs de cabanes dans les forets de pins et de balades sur les plages dépeuplées. Ce week-end j'ai pu remarquer que la magie des lieux agissait aussi sur mes filles qui ont savourées elles aussi cette belle journée iodée.

    J'en ai profité pour prendre quelques photos sur un ponton prés de l'océan.





    Ma technique s'améliore petit à petit mais c'est long...

      21:13:26 |  


    PermaLinkBlog de Jean-Noël Koval
    Je voulais vous présenter le blog de Jean-Noel Koval(IBM). Je connais ce blog que depuis quelques semaines. A ma connaissance il n'est référencé nulle part et c'est bien dommage car il est pour le moins très instructif.
    Si certain doute encore de la sortie de la BETA d’Hannover, Jean-Noël lève tout les doutes dans son dernier billet.

      19:16:40 |  


    PermaLinkUne série de vidéos et podcast
  • Dernierement j'ai eu l'occasion de visualiser cette très intéressante présentation d’ Eclipse RCP et développement collaboratif par Thomas Coustenoble et André Wolf sur www.softwaretv.com :



    Pour info la présentation se bloque après le film sur Sametimes. Il faut cliquer sur le sommaire pour que ça reparte.
    Donc si vous avez une heure devant vous, prenez le temps de visualiser cette video, ce ne sera pas une heure de perdu.

  • Si vous avez moins de temps vous pouvez toujours regarder cette interview télévisée de Jeff Eisen où il parle de la 7.0.2 et notamment la possibilité de mettre son client sur une clé USB.

  • Enfin, Bruce Elgort va interviewer Mike Rhodin (IBM General Manager for Workplace, Portal and Collaboration Software) dans son hebdomadaire "The Taking Notes Podcast". Il vous demande si vous avez des questions particulières que vous souhaitez lui poser. L’interview aura lieu la semaine prochaine.


  •   15:38:47 |  


    PermaLinkBeta Hannover J-??
    Je viens de retarder le compteur de la bêta Hannover car elle n'est pas encore sortie (ou alors par la porte de derrière...). Je sais que certains privilégiés d'IBM France la teste en ce moment mais rien de plus...

    C'était une bonne idée ces compteurs au départ mais si je dois changer les timings trop souvent ça va vite devenir l'enfer.

      23:05:29 |  


    PermaLinkDesign de Domgle
    Domgle, dont j’ai ouvert un projet sur openNTF depuis maintenant plus d’un mois, continu à vivre sa petite vie.
    L’application a maintenant atteint les 250 téléchargements.
    Si cette application est techniquement parfaite il n’en va pas de même pour le design… Et là j’ai pensé à vous. Il y a peut-être par mis vous un designer qui sommeille (ou parfaitement réveillé d’ailleurs…) qui a quelques minutes à offrir et essayer de faire mieux que ceci (pas dur…).

    On ne sais jamais, j’aurai au moins essayé .

    UPDATE :
    Merci à Renaud de son aide sur ce projet. Vous pouvez aller voir son chef d'oeuvre ici. C'est bô nan ? Moi j'adoooore. Merci encore.

      19:43:38 |  


    PermaLinkDominoBlog
    "Finally - a blog dedicated to the world of IBM Lotus Domino server infrastructure and administration, written by the team that builds it."


    L'équipe qui développe Domino a donc décidé d'ouvrir leur propre blog : dominoBlog.
    J'espère que ce sera l'occasion d'avoir un peu plus d'info sur les développements en cours et pas simplement un "blog plaquette".
    Quoi qu'il en soit c'est une fois de plus la preuve que Lotus s'ouvre au monde. Cela n'a plus rien à voir avec l'obscur monolithe que l'on avait en face de soit il y a quelques années...

    Ce blog est bien entendu basé sur le dernier "blog template" de la 7.0.2.

      20:33:31 |  


    PermaLinkLe gâchis Workplace
    Il y a quinze jours lors de la derniere Collaboration University de Londres, Chris Miller (qui n'est pas Vice President Workplace, Portal and Collaboration Products...merci Yogi) a bel et bien annoncé la mort des produits Workplace. Ils seront comme prévu intégrés à Websphere. J’avais annoncé ce changement il y a maintenant 3 5 mois.

    C’est donc bel et bien la fin d’un beau gâchis qui consistait, même si IBM s’en défend, à vendre du Websphere aux clients Lotus. Le gros problème dans l’histoire, mis à part le fait que l’on prenait les clients pour des abrutis, c’est que tout l’effort marketing et commercial c’est focalisé sur Workplace au détriment de Domino. Petit à petit Domino est donc passé pour un produit en fin de vie, quasi mort, même pour les employés d’IBM.

    Autant dire qu’il y a du boulot pour les équipes marketing de Lotus France… Actualiser l’image de Domino ne sera pas une mince affaire mais ce qu’il y a de positif c’est que les arguments ne manquent pas avec notamment l’intégration avec Sametimes et le portage sous Eclipse des clients Notes.

    Certains pays comme le Danemark et le Canada l’ont déjà compris et ont diffusés des campagnes publicitaires sur les taxis et dans la presse :


    UPDATE : Une nouvelle pub vient d'être affiché sur le site d'Alan Lepofsky.

    A ma connaissance, ça fait un petit moment que l’on n’a pas vu de la pub française pour un produit Lotus autre que Workplace. Faisons leur confiance ça finira bien par arriver.

    Au sujet des pubs autours de Domino, Alan Lepofsky a eu la bonne idées d’en déposer quelques une sur YouTube. Personnellement j’aime beaucoup celle-ci :



      21:19:31 |  


    PermaLinkLotus Next Release Countdown
    Dans le monde des blogs, une des modes actuelles c'est l'utilisation des Widgets. Des sites spécialisés comme WidgetBox attirent énormément de monde.

    En fait ces widgets sont principalement utilisés pour donner une consistance à un blog quand le blog lui même en manque.
  • Dans les classiques on trouve l'horloge... Au cas ou son PC ne soit pas à l'heure ou que l'on ait pas encore remarqué que la barre de tâche elle donne aussi l'heure.
  • Il y a aussi la météo... Au cas ou l'on n'ait pas de fenêtre dans son bureau ou que l'on souhaite connaître la météo d'un endroit ou on n'est pas.
  • Il y a aussi les photos aléatoires de chats ou de chiens pour attendrir les amis de nos amis les animaux.

  • Bref tout ces widgets ne servent pas à grand chose... Sauf qu'en regardant de pret ce widget qui calcule le temps restant avant l'arrivée de la prochaine éclipse, j'ai directement pensé à Hannover (because eclipse...) et que le compte à rebours pourrait être utilisé pour annoncer la future sortie d'Hannover !*

    Bon mais le plus dur reste à faire car en fait aujourd'hui il n'existe aucun site sur lequel on peut visualiser les dates de sortie des futures versions des produits Lotus. On peut parfois arriver à glaner des infos sur le site d'Ed Brill mais c'est souvent avec surprise** que ces releases arrivent sur la table. Pour preuve la sortie cet été du client Lotus Notes 7 pour Linux qui a surprit tout le monde.

    J'ai tout de même eu assez d'infos pour me permettre d'afficher fièrement ces deux comptes à rebours (je met l'image pour les lecteurs via rss):



    Si vous avez de votre côté des infos sur Quickplace, Sametimes ou de la 7.0.x de Domino, n'hésitez pas à m'avertir que je rajoute un compteur.

    Donc maintenant vous savez ou aller pour avoir les dates de sorties des produits lotus .

    *Bon pour ceux qui n'ont pas tout compris à la phrase en fait je vais faire un compte a rebours de la sortie d'Hannover .
    ** C'est un peu comme la savonnette sous la douche, on ne sait jamais quand elle tombe... ceux qui ont fait du rugby savent de quoi je parle


      19:29:17 |  


    PermaLinkLotus Ajax Activity Indicator
    Ce qui est nouveau avec Ajax c’est que l’on doit parfois faire comprendre à l’utilisateur que le navigateur « travaille » même si la page ne se recharge pas ou qu’il n’y a pas le sablier. D’où l’invention des Ajax activity indicator (plein d’exemple ici).

    Ben dernièrement j’ai eu l’idée de faire des indicateurs Ajax Lotus avec mes quelques grammes de compétences en Paint Shop Pro. Voici ce que cela donne :

    Le classique fondu :

    La barre de progression verte :

    Deux barres de progression à la K2000 :
    et
    L'horloge :

    Le touniquet :

    Ben j'sais pas trop comment l'appeler celle là :

    Si vous êtes plus doué que moi (c'est pas dur...), je me ferai un plaisir d'afficher vos chefs d'oeuvres

      14:25:48 |  


      08:52:48 |  


    PermaLinkLa 7.0.2 est sortie !
    La version 7.0.2 est maintenant disponible par téléchargement. Cette version est pour l'instant en Anglais mais la version Française devrait être disponible le 15 décembre soit dix semaines plus tard... Ils sont un peu moue du genou* les traducteurs chez IBM .

    La version client Mac est maintenant en Beta et devrait sortir en décembre en Anglais et début 2007 en Multi-Lingual.

    Si vous voulez avoir plus de détails sur cette version, je vous invite à lire sa release note.

    Pendant qu'on parle de la 7.0.2, Chris Whisonant a déjà testé la possibilité de mettre tout l'environnement Lotus Notes sur une clé USB.

    * un peu lent quoi (made in Sud-Ouest)

      08:22:56 |  


    PermaLinkHow to explain RSS concept with a simple drawing
    Dans la version 7.0.2 de Domino on aura un template nous permettant d'agréger des documents de plusieurs bases pour les rendre disponible via RSS.
    Aujourd'hui, plusieurs bases libres (free quoi...) disposent de fonctionnalités RSS. Bref, le RSS on ne peut plus y couper.

    Expliquer, vulgariser ce concept n'est pas si évident qu'il n'y paraît mais heureusement pour nous l'auteur de ce billet nous fait tout le travail. Avec en prime ce beau dessin :



      07:32:31 |  


    PermaLinkCréer un document avec une simple requête Ajax et prototype
    Dans ce billet je vais revenir en détail sur la méthode que j'ai utilisé dans ma base de sondage pour créer un document avec une simple requête Ajax.

    On utilise souvent Ajax pour aller chercher des informations mais moins souvent pour en créer ou en modifier. On y pense pas systématiquement mais c'est pourtant très pratique dans certains cas.
    Voici donc une solution simple pour créer un document dans une base domino :

    Prenons un exemple concret avec ce sondage :

    Ci dessous le code html du formulaire de saisie du sondage :
    <form name="DOME-6T7S28" method="post" action="javascript:vote('DOME-6T7S28')"> <div class="PollTitle"> What would you do if you could control the whole world for one day? </div> <div class="PollChoice"> <input name="PollOption" value="Sleep" type="radio"> Sleep<br> <input name="PollOption" value="Migrate all exchange servers to Lotus" type="radio"> Migrate all exchange servers to Lotus<br> <input name="PollOption" value="Ask Ed Brill for a free invitation for LotusSphere 2007" type="radio"> Ask Ed Brill for a free invitation for LotusSphere 2007<br> </div><br> <input name="Pollid" value="DOME-6T7S28" type="hidden"> <input name="PollTitle" value="What would you do if you could control the whole world for one day?" type="hidden"> <input value="Vote" onclick="vote('DOME-6T7S28')" style="background: transparent" type="button">   <input value="Results" onclick="view('DOME-6T7S28')" style="background: transparent" type="button"> </form>

    On a trois radio boutons (PollOption) qui correspondent au choix possibles et deux champs cachés (Pollid & PollTitle).
    Lors du vote on exécute la fonction javascript "vote" (original ) La voici un peu simplifiée :

    function vote(currPoll) { form= document.forms[currPoll]; var params = form.serialize(form); var url = dbWebPollPath+'PollEntry?createdocument'; var myAjax = new Ajax.Request( url, { method: 'post',parameters: params,onComplete: viewResult }); }
    Le framework prototype.js utilisé dans le sondage dispose de la fonction "form.serialize" qui est trés pratique. Cette fonction permet de sérialiser les input d'un formulaire. Si on fait un alert sur la variable params on obtient ceci (pour ceux qui ont de bons yeux...) :



    Cela nous permet de poster le résultat tel quel dans notre requête Ajax.
    Comme vous avez pu le remarquer, cette requête est suffixée par "PollEntry?createdocument". ?createdocument nous permet de créer des documents par le biais d'une url. La seule contrainte est d'avoir un masque disposant des champs que l'on envoi dans la requête. Voici mon masque PollEntry :



    Dans notre cas des simples champs texte suffisent.

    Voici donc comment les votes du sondage sont enregistrés dans la base sondage :



      09:15:36 |  


    PermaLinkLe futur client Designer
    Vous voulez voir à quoi ressemblera le futur client Designer sous Eclipse ? Ben le voici :



    C'est Maureen Leland qui a postée ça sur son site. Elle fait partie de l'équipe projet. Vous voulez voir à quoi ressemble Maureen Leland ? Ben la voici :



    Bref, cette version du client Designer viendra APRES Hannover (merci Smiky !). On a aucune date. Ce que l'on sait c'est que pour l'instant c'est développé pour Windows mais le but à terme c'est d'avoir un client multi-plateforme.

      22:16:01 |  


    PermaLinkSummer replay
    L’été est bientôt finit et il a été plutôt mouvementé pour Domlike.net.

    Tout a commencé le 15 juillet lorsque j’ai mis à disposition mon appli de recherche multi base nommée Domgle.
    Le succès de cette appli a dépassé mes espérances…enfin… je n’en avais pas des masses d’espérances car elle est gratos cette appli.
    Quoiqu’il en soit cela m’a permit de me faire connaître un peu plus au niveau international. On sait jamais si je dois fuir le FISC ça peut servir .

    Depuis cet été la fréquentation de ce site a augmenté de 30% environ et j’ai eu droit à pas mal de billets d’autre blogger. Voici l’évolution de mon classement sur Technorati depuis Juin :



    J’ai listé tous les liens des blogs "important" ayant parlé de domlike ici.

    Tout ça se calme petit à petit mais la fréquentation reste. Un de mes meilleurs referer (lien externe) est maintenant OpenNTF sur lequel j’ai ouvert un projet pour Domgle.

    J’ai conversé un peu (parfois beaucoup…) avec les cadors internationaux tel qu’ Ed Brill, Julian Robichaux, Bruce Elgort et Jake Howlett (avec qui je dialoguais déjà un peu). Ce sont des gars bien sympas mais la palme d’or revient au Floridien (ça ce dit ça ?!?!) Joe Litton (oui oui y a des gars sympa en Floride). Et au passage vive Skype !

    On parle souvent de communauté Domino. Ca peut paraître dérisoire depuis la France mais au niveau international elle existe bel et bien cette communauté.

    J’ai aussi profité de l’été pour ajouter une section "PRESENTATION & CV" mise un peu à jour avec même une photo

      22:22:55 |  


    PermaLinkMigration d'Exchange vers Lotus
    Il ne faut pas se le cacher, Lotus Notes est attaqué de manière récurrente en entreprise. Les arguments développés par les partenaires Microsoft sont très souvent fallacieux (bidons quoi ). Ce travail de sape peut parfois fonctionner et amener certaines sociétés à franchir le pas.
    C’est le cas par exemple d’une société du Rhône qui fait passer maintenant cette annonce :

    Projet n°XXXXXXXXXXXX : Analyste développeur expérimenté en Migration Lotus
    Notes vers Exchange
    Recherchons de manière urgente pour notre client un Analyste développeur
    ayant déja une expérience de la migration d'applications développées sous
    Lotus Notes vers Exchange. Merci d'adresser très rapidement votre
    proposition de service incluant un Cv complet détaillant les missions de
    cette nature déjà réalisées ; la tarification souhaitée, pour positionnement.
    Début le 25 Septembre 2006
    Durée : 100 jours ouvrés
    Lieu : Rhône (69)


    Je leur souhaite bien du courage pour migrer leurs applications Lotus Notes sous Exchange ! C’est totalement impossible ! Cet exemple montre bien le niveau d’incompétence ou pire de mensonges dont sont capable les partenaires Microsoft vis-à-vis des clients Lotus.

    Heureusement, il me semble qu’il existe aussi de plus en plus de client Exchange qui migrent vers Lotus Notes. Cela reste à vérifier mais je vois maintenant régulièrement des annonces comme celle-ci :

    Projet n°XXXXXXXXXX : Expert Exchange 5.5
    Nous recherchons un expert Exchange 5.5 2000 2003 pour une migration vers
    Lotus Notes 6. Mission 6 mois à Paris.
    Début le 1er Octobre 2006
    Durée : 110 jours ouvrés
    Lieu : Paris (75)
    Qualification requise : Expert Exchange 5.5
    Outils dont la maîtrise est indispensable : Exchange
    Outils utiles : Lotus Notes


    L’argument « choc » de Microsoft était de dire que Notes était mort. De toute évidence cet argument ne trouve plus autant d’échos. Notes est même très vivant et bien plus qu’Exchange. Les perspectives avec notamment Hannover sont plutôt encourageante et motive à conserver voir à migrer vers Notes.

    Dernièrement j’ai appris qu’en 2005 le groupe Publicis avait migré d’Exchange vers Domino. Il n’y a eu, à ma connaissance, aucune publicité particulière autour de cette migration. C’est vraiment dommage de la part de Lotus de ne pas l’avoir exploité.
    Un tel groupe n’investi pas autant d’argent dans une migration sans de bonnes raisons, il serait intéressant d’exposer tout cela dans la presse.

    Bref, si vous sentez que dans votre entreprise, Domino est menacé ou si vous vous posez des questions sur une éventuelle migration, parcourez avec attention cette présentation d’Ed Brill.
    Je sais j’en ai déjà parlé mais ça vaut vraiment le coup.

    N’hésitez pas aussi d’en avertir votre commercial IBM qui pourra lui aussi contredire les arguments de Microsoft à votre direction.

      19:53:53 |  12 


    PermaLinkCombien de RAM pour mes serveurs Domino ?
    Vous l’avez sûrement tous remarqué, la RAM est de moins en moins chère (non sans blague…super le scoop…).

    Si vous êtes administrateur ou même chef de projet, vous avez sûrement déjà acheté ou fourni des préconisations de configuration pour l’achat d’un serveur Domino.

    En matière de RAM, les préconisations IBM se bornent à des configurations minimums mais ce qu’il faut aussi savoir c’est qu’il existe des configurations maximums au dessus des quelles il est inutile d’aller.
    En effet Domino ne peut utiliser une quantité indéfinie de RAM. Bien sur cela dépend de l’OS mais sachez par exemple qu’il est totalement inutile d’avoir un serveur Domino sous windows de plus de 2Gb de RAM. Ceci n’est absolument pas lié à Domino mais à la gestion des process de la part de OS.

    Pour concrétiser mon propos voici un graphe montrant la RAM disponible sur trois serveurs Domino sous Windows 2003. Deux d’entre eux ont 4 Gb de RAM et le dernier 2Gb. Sur deux courbes, on remarque un seuil bas ou les serveurs Domino ne peuvent utiliser la RAM pourtant disponible.



    Je ne vais pas trop entrer dans les détails mais si le sujet vous intéresse, je vous invite à parcourir la session ID111 de Rob GearHart qu’il a réalisée lors de la LotusSphere 2006.

    Pour résumer, ayez en tête de ne pas survitaminer inutilement vos serveurs en RAM, privilégier plutôt la puissance CPU car c’est souvent le "Bottleneck" des serveurs Domino.

      21:46:29 |  13 


    PermaLinkL'Australie selon KéViN
    Cet été j’ai découvert un blog qui m’a bien fait rire et rêvé. Ce blog n’a rien à voir avec Domino et il ne reste plus qu’un billet à son auteur pour le terminer. Ce blog est en fait celui de KéViN.

    Kévin, après ses études est parti l’été dernier pour un an de vadrouille en Australie. Pendant son périple, il a relaté de manière régulière ses aventures au pays des kangourous.

    C’est plein de fêtes, de rencontres, d’Irlandais bourrés (pléonasme ? ), de bière, de jeunesse quoi !

    Il a lui même batisé son voyage : Une année DownUndeR... Ca veut tout dire .

      23:29:54 |  


    PermaLinkLotusSphere 2007


    Du 21 au 25 janvier 2007 prochain à Orlando (Floride) se déroulera la LotusSphere 2007. Ce rendez-vous annuel est l’occasion pour IBM de faire le point avec ses clients et partenaires sur les développements en cours, le planning des futures sorties ainsi que les orientations techniques et fonctionnelles à venir.
    C’est l’occasion aussi pour les participants de bénéficier des nombreuses sessions d’information et de formation. Le planning de cette année est consultable ici.

    L’an dernier une session a fait beaucoup parler d’elle. Il s’agit de la session de Bill Buchan et de Paul Mooney intitulée « The Worst Practices ». De cette session à succès ils ont dernièrement créé un site web. On peut y voir le détail de ces mauvaises pratiques et en déduire du coup les bonnes… C’est très bien fait et plein d’humour (notamment celle-ci qui est à mourir de rire).

    Si vous avez la chance de pouvoir vous y rendre, cela vous coûtera 1695US$ (sans les billets d’avion) mais ne tardez pas trop car plus on se rapproche de l’évènement plus ça augmente .

    Je n’ai jamais eu l’occasion d’y aller. Ce n’est pas l’envie qui m’en manque mais je n’ai pas encore trouvé de sponsor .

      20:43:05 |  13 


    PermaLinkFree Domino Ajax survey (Kind of English ;-))
    As I already said it to you, my blog is based on the BlogSphere’s template. A traditional survey system is include in this template.
    I never used it for several reasons but mainly because I did not like the fact that it entirely reloaded the page after voting. A blog’s homepage is in general rather heavy with several blog entries the ones under the others, plus the series of various “blocks” on the sides. This reload could take a lots of time for the user.

    The other reason of my disaffection of the system of survey includes in the BlogSphere’s template, is that it‘s displayable only in the side blocks.

    So… Lately, I visited the web site of Rod Boothby and I saw the paying Ajax survey developed by Majikwidget. I found the idea excellent and I thus adapted my survey to make it nearly identical (without the use of iframe but div…).

    How to use it?

    1. Create one or more web poll in the dedicated database (downloadable here): :



    2. Add this two libraries in the page header or directly in your blog entry (could be a bad idea...) :

    <script type="text/javascript" src="prototype.js"></script>
    <script type="text/javascript" src="ajaxwebpoll.js"></script>


    You can download prototype.js here.
    You can download ajaxwebpoll.js here.

    3. Add where you want this div tag in your blog entry. This div must have the ID of your web poll and "BlogPollContents" class (very important):

    <div id="DOME-6T2AT6" class="BlogPollContents"></div>


    4. Insert on the body onload event or at the bottom of your page (quicker), the function which will call all your surveys :

    <script>
    // Get all the polls
    getWebPolls();
    </script>


    5. A little modification need to be made into the ajaxwebpoll.js library. You must specify where to find the survey database :

    var dbWebPollPath = 'http://www.domlike.net/domlike/WebPoll.nsf/';

    Don't forget “/” at the end of the URL and know that the survey's database must be on the same server as your blog (Ajax limitation).

    How to customize your survey ?

    You can customize your survey thanks to the following classes :
    BlogPollContents
    PollTitle
    PollChoice

    Here my css sample :

    .BlogPollContents
    {
    background-color:#FFFFFF;
    font-family:verdana,arial, sans-serif;
    min-height:170px;
    width: 500px;
    padding : 5px 5px 5px 5px;
    margin: 0px 5px 0px 5px;
    border: 1px solid #E7E7E7;
    }

    .PollTitle
    {
    font-weight: bold;
    color: #73BA38;
    font: 1.0em;
    line-height :2.2;
    }

    .PollChoice
    {
    line-height :1.8;
    }


    The image used for the percentages's bar must be named pollimg.gif.
    The image used as indicating of loading must be named indicator.gif.

    You can also directly modifying the survey's database or the JS library…

    Here is the result :



    Who you need to thanks ?

    So... a bit me and as well Declan Lynch cause i used a lot of his work on BlogSphere's template.

      21:55:20 |  


    PermaLinkFree Domino Ajax survey (french)
    Comme je vous l’ai déjà dit, mon Blog est basé sur le template du projet BlogSphere. Il est inclus dans ce template un système de sondage traditionnel.
    Je ne l’ai jamais utilisé pour plusieurs raisons mais principalement car je n’aimais pas le fait qu’il rechargeait entièrement la page après la validation. La page d’accueil d’un blog est en général assez lourde avec plusieurs billets les uns sous les autres, plus la série des divers « block » sur les côtés.
    Ce reload est donc assez coûteux aussi bien en charge réseau qu’en temps pour l’utilisateur.

    L’autre raison de ma désaffection du système de sondage inclut dans le template BlogSphere, c’est qu’il est affichable uniquement dans les blocks latéraux.

    Bref…

    Dernièrement, j’ai visité le site de Rod Boothby et je suis tombé sur un sondage en ajax payant développé par Majikwidget. J’ai trouvé l’idée excellente et j’ai donc adapté mon sondage pour le rendre pratiquement identique (sans l’utilisation d’iframe…).

    Vous connaissez la suite, j'en ai profité pour vous poser pleins de questions.

    Comment l’utiliser ?

    1. Créer un ou plusieurs sondages dans la base de sondage (téléchargeable ici) :



    2. Ajouter ces deux librairies dans le Header de votre page (ou directement dans le billet) :

    <script type="text/javascript" src="prototype.js"></script>
    <script type="text/javascript" src="ajaxwebpoll.js"></script>


    Vous pouvez télécharger prototype.js ici.
    Vous pouvez télécharger ajaxwebpoll.js ici.

    3. Ajouter n'importe ou dans votre billet le tag div ayant l’identifiant du sondage et la classe "BlogPollContents" :

    <div id="DOME-6T2AT6" class="BlogPollContents"></div>


    4. Placer dans le on load du body ou en bas de page (plus rapide), la fonction qui va appeler vos sondages :

    <script>
    // Get all the polls
    getWebPolls();
    </script>


    5. Il y a tout de même une modification à apporter à la librairie ajaxwebpoll.js. Vous devez spécifier où ce trouve votre base de sondage :

    var dbWebPollPath = 'http://www.domlike.net/domlike/WebPoll.nsf/';

    Bien penser au “/” à la fin de l’url et bien savoir que la base de sondage doit être sur le même serveur que la page qui affiche votre sondage (limitation d’Ajax)

    Comment personnaliser le sondage ?

    Vous pouvez personnaliser votre sondage grâce aux classes suivantes :
    BlogPollContents
    PollTitle
    PollChoice

    Voici pour exemple ma css :

    .BlogPollContents
    {
    background-color:#FFFFFF;
    font-family:verdana,arial, sans-serif;
    min-height:170px;
    width: 500px;
    padding : 5px 5px 5px 5px;
    margin: 0px 5px 0px 5px;
    border: 1px solid #E7E7E7;
    }

    .PollTitle
    {
    font-weight: bold;
    color: #73BA38;
    font: 1.0em;
    line-height :2.2;
    }

    .PollChoice
    {
    line-height :1.8;
    }


    L’image utilisée pour la barre des pourcentages doit être nommée pollimg.gif.
    L’image utilisée comme indicateur de chargement doit être nommée indicator.gif.

    Bien sur, rien ne vous empêche de modifier directement la base de sondage ou les librairies JS...

    Voici le résultat :



    Qui devez-vous remercier ?

    Ben en fait un peu moi et aussi Declan Lynch dont j’ai repris une partie de son travail réalisé dans la BlogSphere.

      18:44:06 |  85 


    PermaLinkAjax Survey
    Cela fait maintenant plus d'un an que je blogue de manière régulière. Cela fait donc maintenant plus d'un an que je parle un peu dans le vide sans trop savoir qui me lit.
    Je connais tout de même quelques un d'entre vous de part les commentaires mais sachant qu'il y a plus de 350 visiteurs différents à lire ce blog tous les jours cela représente une infime partie.

    Dans le but, entre autre, de mieux faire connaissance j'ai développé un système de sondage en Ajax. C'est dans ce type d'application qu'Ajax est particulièrement efficace. Pas de rechargement à chaque vote, enregistrement des votes en arrière plan, etc...

    Je rentrerai dans les détails techniques dans un prochain billet. En attendant, si vous rencontrez des bugs, n'hésitez pas à m'en faire part.

    Voici le sondage :


    Jusque là rien de compliqué...









      09:42:57 |  16 


    PermaLinkBack from Aveyron
    Me voici de retour de l'Aveyron. J'avais prévu de vous parler un peu de ce voyage mais je risque de vexer mes quelques lecteurs aveyronnais . Disons qu'en Aveyron il doit faire en moyenne -10° que dans le reste de la France. C'est génial quand il y a la canicule en France, mais beaucoup moins en temps normal.
    Sinon côté paysage ce n’est pas trop mal mais dans le même style, je préfère de loin le Lot ou le Gers.

    A part les économies de crème solaire, le bon côté des choses c'est que j'ai pu faire pas mal de kayak (j'adore le kayak) sur leTarn et sur le lac du Parelou.
    Côté photos, j'ai un peu progressé mais j'avais oublié mon pied . Voici tout de même quelques clichés :


    Aveyron1

    Aveyron3

    Aveyron2

    Aveyron5


      09:42:10 |  


    PermaLinkzer
    zrzr

      17:01:38 |  


    PermaLinkAjax Survey
    J'avais depuis un petit moment dans mes projets de créer un systeme de sondage en ajax. Voici Voici mon test de sondage :







       |  


    PermaLinkBack from Aveyron
    Me voici de retour de l'Aveyron. J'avais prévu de vous parler un peu de ce voyage mais je risque de vexer mes quelques lecteurs aveyronnais . Disons qu'en Aveyron il doit faire en moyenne -10° que dans le reste de la France. C'est génial quand il y a la canicule en France, mais beaucoup moins en temps normal.
    Sinon côté paysage ce n’est pas trop mal mais dans le même style, je préfère de loin le Lot ou le Gers.

    A part les économies de crème solaire, le bon côté des choses c'est que j'ai pu faire pas mal de kayak (j'adore le kayak) sur leTarn et sur le lac du Parelou.
    Côté photos, j'ai un peu progressé mais j'avais oublié mon pied . Voici tout de même quelques clichés :

       |  


    PermaLinkIBM sort Sametime 7.5 en avance
    Bon j'suis pas encore parti .

    Un petit billet pour dire qu'IBM vient d'annoncer la sortie en avance de Sametime 7.5. Dés a présent les sources peuvent être téléchargeable via le Passport Advantage. Pour résumer, IBM a sorti le serveur Sametime pour AIX, AS/400, Solaris et Windows, et le client pour Linux et Windows. La version Mac est encore en beta. IBM a aussi promit une version serveur pour Linux au premier semestre 2007.

    Bon ça y est je pars !

      21:55:13 |  


    PermaLinkHoliday :-D !
    Les vraies vacances arrivent !
    Demain je serai sur les routes de France en direction de l’Aveyron (dans ce camping). Je ne connais pas du tout ce département, je vous en dirai des nouvelles à mon retour. En tout cas j’espère que le temps sera meilleur que ces derniers jours…

    Avant de partir j’ai installé Google Analytics pour voir ce que ça donne. Google a ouvert le service cette semaine. J’ai bien dis tester car je ne compte pas l’utiliser longtemps. En effet, le gros problème de ces analyseurs de site c’est qu’il ne prennent pas en compte les flux rss. Pour un blog ça craint car la grosse majorité des consultations se font via rss. Pour preuve, voici mes statistiques serveurs par url du mois de juillet :



    A propos des web analytics, Lionel Conforto vient d'écrire deux billets trés interessants :
  • Web Analytics: 1. une introduction
  • Web Analytics: 2. les indicateurs de base


  • Sur ce, je vous souhaite une bonne semaine à tous !

      09:17:31 |  


    PermaLinkActualité internationnale
    Mis à part la sortie du client Lotus 7 sous Linux le 24 juin et l'offre d'Ytria (qui ce termine bientôt, dépêchez-vous !), ben il ne se passe pas grand chose cet été. Parmi les diverses "petites infos" de ce mois d'août voici celles qui peuvent vous intéresser :

  • Pour ceux dont l'ERP est sous SAP, prenez le temps de regarder et de montrer à votre DSI la demo flash du fameux "IBM Lotus Notes access for SAP solutions".

  • FileNet vient d'être acheté par IBM. FileNet est un concurrent direct de Documentum & OpenText sur le marché des gestionnaires de contenu.

  • Suite à un billet d'Ed Brill concernant le passage de Lotus à Exchange d'une grosse société de consulting Australienne, John Head (IBM) a été chargé de constituer une bibliothèque d'application afin d'enrichir les trop peu nombreux templates fournis par défaut avec Domino. En fait il veut faire un OpenNTF certifier IBM mais avec des applications développées gracieusement par la communauté Domino. Personnellement je trouve la démarche hyper gonflée de la par d'IBM.

  • Pour ceux d'entre vous qui connaissent ou utilisent DominoWiki, Ben Poole (le chef de projet) cherche des âmes charitables pour traduire les textes utilisés dans cette application. Si votre Anglais n'est pas aussi approximatif que le mien, vous pouvez donc lui offrir vos services sur son site.

  • La version 8 de Quickplace est sur les rails et sortira début 2007. Au programme, une nouvelle interface, intégration d'ODF, de l'ajax un peu partout (mode oblige) avec du RSS. Pour en savoir plus vous pouvez lire ce billet de Stu Downes ou écouter le dernier podcast de Julian et Bruce.


  •   11:42:47 |  


    PermaLinkExpatriation
    Dernièrement je vous parlais de Stan Rogers qui avait du mal à s'en sortir en tant qu'indépendant. Je dis "avait" car maintenant le moral semble bel et bien revenu au beau fixe. Il a reçu pas mal de soutiens et plusieurs offres de mission mais il s'est finalement décidé pour un poste fixe en Afrique du Sud (lui est de Toronto). Il s'en explique dans son dernier billet. Bonne chance Stan !

    L'expatriation est une grande expérience qui me tente de plus en plus. L'idée de partir pendant 2 ou 3 ans dans un autre pays de s'enrichir d'une nouvelle culture de voir ses enfants devenir bilingues, est une idée plutôt séduisante.
    Derrière ce miroir aux alouettes se cache une prise de risque professionnelle non négligeable, surtout lorsque l'on est père de famille. Il doit y avoir forcément un plan B voir un plan C...

      09:39:55 |  


    PermaLinkNSFTools.com expired...
    Julian Robichaux a oublié de renouveler son nom de domaine... J'espère que sa récupération ne va pas lui poser problème...

    Je ne sais pas chez quel fournisseur de nom de domaine il était mais c'est une chose qui ne risque pas de m'arriver.
    Je suis actuellement chez Lycos Hébergement. C'est sûrement un peu plus cher que la moyenne mais on dispose de pas mal de services bien pratiques comme le renouvellement automatique du nom, des redirections d'adresses email (3 par domaine) et une interface d'administration excellente. Voici la liste de mes noms de domaine :


    Comme vous pouvez le constater j'ai bien activé l'option de renouvellement automatique .

    Update :
    Ben en fait c'est revenu (voir les commetaires...)...

      09:16:15 |  


    PermaLinkCombien je pèse ? 68kg ? non non 3,951.78 $ !!
    Cet après midi j'ai trouvé un p'tit truc qui m'a fait bien rire.

    Le dollar étant l'unité de mesure universelle sur ce bas monde, des ingénieurs qui n'avaient sûrement rien de mieux à faire ont pervertis les classements de technorati pour calculer la valeur en dollar d'un blog... Ce qui donne ceci pour www.domlike.net :


    Autant dire que j'ai du boulot pour ma retraite moi . Dés que j'arrive à 10 000$ j’fais péter l’champomy !

    Non mais blague mise à part là ou c'est vraiment stupide c'est que ce qui est intéressant dans un blog c'est ce que le blogeur a à dire... Du coup si je vends le blog, ben il vaut plus rien !

    Voici le lien vers ce fabuleux "cost calculator"


      19:01:26 |  


    PermaLinkFormat de date
    En ce moment je termine une application web destinée à être utilisée par des utilisateurs de nombreux pays. Lors des tests, par mis les bugs remontés (ben oui j'en fait ) il y en avait un concernant les formats de date affichés dans les vues. Voici la vue affichée :



    Les formules de colonnes date étaient tout ce qu'il y avait de plus classique :
    @Text(@Date(dateRetour))

    Si j'ouvre les documents, les valeurs affichées dans le masque sont bien au format européen. Le problème se situe donc exclusivement au niveau des vues...

    En fait après recherche il se passe le phénomène suivant :
    Lorsque l'on ouvre un masque, Domino va chercher le format de la date à afficher dans les propriétés de son champ. Il est donc très facile de contrôler et uniformiser leur format. Tout le monde connaît les propriétés d'un champ date :



    Dans une vue, Domino s'appuit aussi sur des propriétés de colonne identique à celle des champs (merci philippe) a condition de supprimer le @text devant le @date. Si l'on ne précise rien dans la vue, Domino applique les préférences de l'utilisateur ayant créé le document.
    Ce que j'ai encore du mal à comprendre c'est ou est stocké cette information... Même ScanEz ne peux m'en dire plus.

    Tout va bien pour nos vues sauf lorsque l'on veut associer du texte à notre date. Par exemple lorsqu'on veut catégoriser la premiere colonne sur la concaténation du nom de l'utilisateur et de la date (c'était le cas dans mon application). Là du coup on ne peut plus appliquer les préférences de colonne...

    Pour résoudre mon problème, je n'ai trouvé que la solution suivante pour que quelque soit l'utilisateur on ait le même format de date :
    Temp1:=@Text(@Year(dateRetour));
    Temp2:=@Text(@Month(dateRetour));
    Temp3:=@Text(@Day(dateRetour));
    Temp2:=@Right("0"+Temp2; 2)
    Temp3:=@Right("0"+Temp3; 3)
    Temp3+"/"+_Temp2+"/"+Temp1


    Ben je sais c'est pas très classe mais je n'ai rien trouvé de mieux ! En tout cas ça fonctionne...



      20:24:57 |  


    PermaLinkPromo Summer - Ytria
    En été, le rythme de travail est souvent moins soutenu qu'à l'accoutumer (en tout cas j'espère pour vous...). Donc si vous avez quelques minutes devant vous, n'hésitez pas à profiter de l'offre estivale d'Ytria



    Du 18 juillet au 18 août, Ytria fournit les clés de licence de tous ses produits.
    Si j'en fait la promo c'est que, comme le dit Jake Howlet (codestore), ces "petits" softs sont vraiment efficaces et font gagner pas mal de temps. Commencez par tester ScanEz, je sais que j'en ai déjà parlé ici mais il vaut vraiment le détour.

      18:44:54 |  


    PermaLinkBeta 3 de Sametime 7.5
    La version Beta 3 de Sametime 7.5 vient de sortir et est téléchargeable ici.

    Dépêchez-vous tant que le téléchargement est ouvert !

      21:48:43 |  


    PermaLinkLotus Notes sous Linux !
    Le 24 juillet prochain sera mis en ligne la version téléchargeable de Lotus notes sur Linux !
    cette version sera disponible par les clients du Passport Advantage. Contrairement à ce que je vous disais, nul besoin de Workplace. Ce sera une version "stand alone" tel que les versions disponibles pour windows et mac. La version supporté initialement sera RHEL 4 et SUSE devrait suivre prochainement.

    Pour moi cette annonce ne confirme pas seulement le dynamisme actuel de Lotus mais bel et bien la fin de workplace tel qu'on le connait.

    Si vous voulez en savoir plus vous pouvez lire ce post d'Ed Brill.

    Update :
    Ce matin plusieurs articles annonces cette sortie :
    ZDNet - IBM pousse Lotus Notes dans le libre et sous Linux
    Silicon.fr - Lotus Notes passe sous Linux
    SVM - IBM s'apprête à sortir une version Linux de Lotus Notes

      18:57:36 |  


    PermaLinkPrésentation d'Hannover
    IBM a mis en ligne une présentation d'Hannover (lotus 8). C'est pas tout jeune mais j'avais du louper l'annonce lorsque j'étais en Ecosse (merci à Stéphane Maillard pour me l'avoir signalé).

    Voici la démo en ligne
    Voici la démo téléchargeable

    Pour ceux qui veulent être tenu informé des dernières nouvelles sur Hannover, il a le blog de Mary Beth. Elle est très bien informée et pour cause elle est en charge du projet Hannover... Comme vous pourrez le constater, son dernier post sur l'utilisation de la toucher F5 est assez controversée.

      18:52:45 |  


    PermaLinkSametimes 7.5 Beta 2
    Le 20 juin Lotus a mis en ligne une démo de la version BETA 2 de Sametimes 7.5. Vous pouvez télécharger le client ici.
    Concernant les nouvelles fonctionnalités, je vous renvoi sur la petite présentation flash produite par IBM dont je vous avais déjà parlé ici ou sur ce pdf.

    Le monde informatique a d'ailleurs publié aujourd'hui un petit article très intéressant sur le positionnement de Sametimes dans la stratégie d’IBM pour contrer MSN.

    Si je suis certain d’une chose c’est que ces outils de messagerie instantanée vont bientôt proliférer comme des Gremlins sous la pluie . Il y a encore pas mal de DSI à convaincre mais faisons confiance à la génération MSN… Elle arrive en force.

    Voici tout de même un aperçu de cette BETA 2 et de la fonction Poll Broadcast :



    Non non, c’est pas à moi la Strato

      20:50:13 |  


    PermaLinkStan Rogers en galère
    Si vous avez déjà posté quelques questions sur un des forums Lotus, Stan Rogers à certainement dû répondre à au moins une d'entre elle. C'est de très loin le plus gros contributeur de ces forums et ce depuis de nombreuses années. Si je vous parle de Stan Rogers c'est qu'il y a quelques mois, il a décidé de ce mettre en freelance après son licenciement (pour motif économique)…
    La suite ne fut pas aussi rose qu'il ne l'espérait. Il est maintenant en pleine galère. Plus de quoi ce trouver un pc, plus de quoi payer sa ligne ADSL, etc… Il en explique les raisons et son cheminement dans son dernier post.

    Ce qui est frappant c'est de voir que même avec son niveau d'expertise sur Domino, il n'arrive pas à s'en sortir. Il y a sûrement d'autres raisons à cet échec mais il est clair que personne n'est à l'abri de ce retrouver sans boulot même le plus compétent d'entre nous.

    Note à moi-même (et à d'autre ) :
    1. Il ne suffit pas d'avoir un blog, de participer et d'aider le plus possible d'utilisateurs sur les forums pour croire que l'on est à l'abri.
    2. Ne pas espérer de retours à ses contributions (mais si on en a c'est cool )
    3. Privilégier ses amis DSI aux stagiaires (même s'ils aiment moins la bière et les pizzas )

    Maintenant que j'y pense ce serait très pro de la part d'IBM US de lui offrir, à défaut d'un job, un petit laptop T43. Ceci pour avoir participé avec tant de zèle et sans contrepartie à la promotion d'un de leur produit.

    Good luck Stan !  

      19:22:20 |  


    PermaLinkLa stratégie marketing de Lotus France
    Dans la dernière une du site de Lotus France, Domlike.net avait été référencé comme « blog d'un expert indépendant ». C'est intéressant de voir que l'on est valorisé par Lotus France. A défaut d'augmenter la fréquentation cela fait plaisir de voir son "travail" reconnu.

    J'ai donc remercié comme il se doit Thomas Coustenoble (Responsable Marketing IBM Lotus France) et j'en ai profité pour lui poser quelques questions afin de m'éclairer sur la stratégie Marketing de Lotus France.

    Voici sa réponse qu'il m'a permis de diffuser ici :

    La stratégie est simple : continuer à innover dans le domaine de la collaboration tout en apportant des réponses concrètes à la problématique d'évolution du poste de travail de nos clients (ce qui suppose une couverture plus large en terme d'offre : portail, dashboards fonctionnels, formulaires électroniques, designers et une approche basée sur des standards ouverts J2EE, XML, support Web Services, ODF, Linux...

    Nous maintenons fortement nos investissements sur la plate-forme Notes Domino qui est au coeur de cette stratégie d'évolution (avec notamment l'arrivée d'Hannover en H1 2007). Nous venons d'annoncer de nombreuses innovations sur Notes Domino (intégration SAP, ND sur clé USB, support Linux/Mac, template de blog...). Une suite bureautique basée sur l'Open Document Format sera également bientôt disponible (au minimum pour tous les clients Notes Domino sous maintenance, soit 125 millions d'utilisateurs…)

    Complémentaire à une approche Domino, le portail (quel qu'il soit : Workplace Services Express, WebSphere Portal) offre à nos clients une première étape vers un poste de travail adapté au métier et au rôle des utilisateurs (ce qui est une évolution fondamentale). La mise en œuvre d'un portail permet également de poser un socle facilitant le développement / déploiement de nouveaux services (collaboratifs, applicatifs...).

    Afin de nous rapprocher de nos clients et partenaires, nous avons récemment lancé www.softwaretv.com. Il s'agit d'une initiative française...de Lotus. Beaucoup d'indicateurs sont à nouveau au vert pour la marque (2 rachats en 2005, +10% d'utilisateurs ND, près de 125M° d'utilisateurs au niveau mondial, l'annonce d'Hannover à Lotusphere, la sortie de Workplace Services Express v2.6 et prochainement, Sametime v7.5 qui est très attendu par l'ensemble de notre réseau (le client Sametime est plus sexy et il s'agit plus d'une plate-forme que d'un produit, il est donc possible de développer ses plug-in).

    Concernant la messagerie, nous avons annoncé dernièrement un programme de migration Exchange vers Domino/Linux. Ce programme va directement rémunérer nos partenaires sur chaque BAL migrée...

    J'espère que vous y voyez un peu plus clair sur la stratégie marketing de Lotus France.

    C'est vrai qu'au niveau international Lotus dispose d'un formidable outil de communication non officiel qui est le blog d'Ed Brill. Ce blog est, j'en suis certain, bien plus fréquenté que le site de Lotus lui-même et y contient bien plus d'information. C'est vraiment dommage de ne pas avoir l'équivalent en France.

      18:43:49 |  


    PermaLinkRéparation du fil RSS et des commentaires
    Pour ceux qui sont sous RSS, j'ai une bonne nouvelle : Le lien vers l'article est maintenant valide, plus de 404… !

    Pour ceux qui écrivent des commentaires un autre bonne nouvelle : On arrive à la page d'accueil du site après le post… J'ose même pas dire ce qu'il se passait tellement j'ai honte... Si vous voulez savoir ben fallait poster des commentaires avant

      21:05:46 |  


    PermaLinkFou rire de la soirée
    Mon site web me permet de voir plusieurs choses sur mes visiteurs, leur adresse ip, d'ou ils viennent (le referer) mais aussi quels mots clés ils tapent sur google pour atterrir sur mon site.

    Et là... ce soir... surprise ! :



    Ou comment attirer les pervers en parlant de programmation

      22:58:23 |  


    PermaLinkActualité internationale
    Ben on peut dire que ça bouge pas mal au niveau international en ce moment !

    Tout d'abord il semblerait que notre chers Surjit Chana (IBM Vice Président of Marketing & Partners for Lotus Software) fasse les frais d'une restructuration interne et céderait sa place à Marjorie Tenzer qui connait bien ce job car elle l'occupait pendant les années de gloire Lotus.

    Mais la grande info de la semaine c'est qu'il semblerait que Workplace soit....mort ! Et découpé en morceau pour en faire un composant de Websphere Portal. Workplace deviendrait Websphere Advanced Services.

    cliquez ici <-- ca c'est pour ranimer ceux qui sont tombés dans les pommes

    D'ou je tiens ça ? Ben du blog du très bien informé Volker Weber. C'est ce post. Je vous conseille aussi de lire les commentaires de Bob Balaban, Bruce Elgort et Andrew Pollack (rien que ça...) c'est trés informatif.

    Pourquoi donner autant de crédits à ce post ? D'une part, Ed Brill (Business Unit Executive, Worldwide Lotus Messaging Sales ) en fait mention dans son dernier billet et n'infirme en rien ce qu'annonce Volker Weber. D'autre part, Bob Balaban apporte ses commentaires mais ne contredit lui aussi en rien cette annonce...J'en déduit donc une part de vérité.

    Je ne vais pas trop développer le sujet mais pour ma part je pense que tout reprend sa place. Workplace était basé sur Websphere. C'est un produit qui techniquement se rapproche bien plus de Websphere que de Domino. Maintenant quant on parlera de Lotus on pensera Domino. C'est plus clair pour tout le monde.

    Qu'en pensez-vous ?

      22:11:06 |  


    PermaLinkActualités Française
    Au printemps on voit naître les fleurs, les petits oisillons, les jupes courtes, les claques et... des blogs !

    Ce mois-ci donc, deux nouveaux blogeurs sont entrés dans la danse. Ils semblent tout les deux très motivés (faudra pas que ça ce relâche... hein ben ).

    Tout d'abord Petit teckel. Mis à part que je déteste les teckels (seul mon chat peut imaginer à quel point !) le contenu de ce blog reste assez éclectique bien que principalement consacré à Domino. J'ai notamment appris que le site officiel du gouvernement princier de Monaco (ouf !) est sous Domino. Je comprends donc d'où vient mon seul visiteur monégasque (si si j'en ai un... d'ailleurs s'il pouvait me contacter...)

    On en vient à Philippe GAUVIN et son site Domino & Web 2.0. Je travaille depuis maintenant plusieurs mois en plein dans le Web 2.0. J'utilise donc régulièrement AJAX, JSON, etc... Je peux vous dire que j'ai eu du mal à trouver des informations en français à mes débuts et j'aurai vraiment aimé trouver un tel site. Les premiers articles sont vraiment excellents. Ce qui ne gâche rien c'est que Philippe a en plus la qualité d'être pédagogue (non non cherchez pas, y a pas de contrepètrie ). Bref à RSSISER.

    Pour ceux qui veulent se mettre à AJAX et qui ont quelques notions d'Anglais, je peux vous conseiller le bouquin Pragmatic Ajax qui m'a énormément aidé à bien maîtriser la bête .

      19:45:36 |  


    PermaLinkModify Reader / Author field
    Yogi parlait dernièrement de la nécessité de bien paramétrer le serveur d'administration du carnet d'adresse du domaine.

    Développer une application sous Domino ne peut se faire en occultant l'impact des opérations d'administrations courantes sur celle-ci. Une des opérations archi-récurrentes est le renomage des utilisateurs. Un changement de nom de famille ou d'OU est vraiment très fréquent. A partir du moment ou votre application contient des champs lecteurs, auteurs ou ayant un rôle fonctionnel, ces renomages ont un impact direct sur le fonctionnement de votre application.

    Par défaut la tâche d'administration qui modifie les LCA et le carnet d'adresse du domaine ne va pas modifier les champs de votre applications.

    Pour lui demander de s'occuper des documents de votre base, vous devez modifier la LCA de celle-ci. Dans l'onglet Avancé de la lca vous devez choisir un serveur d'administration (qui doit être au moins éditeur dans la LCA...) et changer la valeur par défaut du champ "Action" :



    Trois valeurs possibles :
  • Ne pas modifier les champs noms : C'est l'option par défaut. La tâche d'administration ne passe pas sur vos documents et ne modifie rien dans votre application (mis a part la LCA...)

  • Modifier les champs lecteur et auteur : La tâche d'administration modifie tout les champs lecteurs et auteurs des documents de votre application.

  • Modifier tout les champs nom : La tâche d'administration modifie tout les champs lecteurs, auteurs ainsi que tout les champs nom des documents de votre application.

  • A vous de choisir l'option la plus appropriée. Je ne pense pas que ce soit à l'administrateur de paramétrer cette propriété, seul les développeurs connaissent l'impact d'un "non renomage" sur l'application.

      19:26:01 |  


    PermaLinkTEXTAREA
    Dans un formulaire web, on a souvent besoin d'utiliser un champ de type textarea pour saisir du texte sur plusieurs lignes. Prenons par exemple un champ pour saisir des adresses ou encore des commentaires, on peut difficilement se passer d'un champ de saisie multi-ligne.
    Pour cela Domino nous offre plusieurs solutions :

    Le champ rich text :
    C'est le seul type de champ transformé en textarea au format web. Très pratique donc mais infernal si l'on veut exploiter les données saisies dans des vues ou par code.

    Un champ texte multivalue :
    Un champ texte multivalue avec comme séparateur "une nouvelle ligne" génère un textarea.


    Un peu plus pratique que le champ RichText mais ce n’est toujours pas l'extase si l'on souhaite exploiter les données car domino stocke toutes les lignes saisies dans les valeurs multiples du champ... Obligé de jouer avec les @implode/@Explode.

    Créer un champ HTML de type textarea et le renseigner par texte calculé :
    Vous pouvez créer vous même votre champ dans le code html de votre masque. Ceci est possible si et seulement si vous créer un champ texte du même nom. Pour renseigner ce champ avec les données déjà saisies, on utilise un texte calculé. Idem pour la visualisation des données en prenant soin de ne pas le passer en html relais :


    C'est la solution idéale car tout est stocké dans un simple champs texte. Aucun problème donc pour exploiter les données saisies par l'utilisateur.

      21:34:32 |  


    PermaLinkAlimentation HS
    Les orages étant relativement fréquent en cette période, j'avais bien pris la précaution de bien débrancher mon pc (entre autre) avant de partir en Ecosse.

    Manque de bol a peine rebranché, je vois une flamme de 10 cm de long sortir de mon alim et me faire sauter les plombs de la maison .
    Heureusement pour moi il y avait que l'alim de grillée. J'y connais presque rien en électronique mais c'est ce composant qui a éclaté :



    C'était une alim d'un boîtier Antec Sonata (excellent boîtier). J'ai donc commandé une nouvelle alim chez ldlc. J'ai pris une alimentation générique comme celle-ci. J'ai tellement eu peur de perdre mon disque dur dans l'affaire que j'ai aussi pris un graveur de DVD pour sauvegarder mes datas.
    J'ai reçu l'ensemble deux jours plus tard. A la place d'une alim 400W j'ai eu une 480W par contre assez bruyante comparé à l'ancienne.

    Bref si un génie de l'électronique veut une super alim d'Antec Sonata je lui ferai seulement payer les frais de ports .

      11:12:31 |  


    PermaLinkNomenclature des éléments de structure
    Il y a quelques années je suis tombé sur une application développée par IBM Espagne avec une nomenclature des éléments de structure très particulière.
    L'idée consiste à débuter le nom du masque ou de la vue (ou autre...) par un numéro. Comme ceci :



    Ceci permet en fait de classer ces documents dans un ordre différent que l'alphabétique. On peut par exemple classer ses vues par fonctionnalités ou par natures (vues d'affichages, vues techniques, etc...)

    Je trouve cela très pratique, ça permet d'y voir plus clair surtout sur les bases très fournies en document de structure. Et puis je ne sais pas ce que vous en pensez mais je trouve que ça donne aussi un côté pro. En tout cas j'ai adopté cette méthode et depuis toutes mes applications appliquent ce principe.

      21:39:55 |  12 


    PermaLinkVoyage en Ecosse
    Me voici de retour d'Ecosse.. C'était la deuxième fois que je m'y rendais. La première fois c'était en 1998. J'en gardais le souvenir d'une nature à l'état brut d'un pays de landes et de cascades. Cette fois j'ai surtout apprécié sa lumière et ses couleurs.
    Côté temps, c'est vrai qu'il ne faut pas y aller pour le soleil. Il y a un dicton Ecossais qui dit :

    "Si tu vois la colline là bas c'est qu'il va pleuvoir... Si tu ne la vois pas c'est qu'il pleut !"

    Bon, Je ne vais pas vous refaire le guide du routard mais un conseil : Allez-y y faire un tour. Vous ne serez pas déçu !

    Voici comme prévu quelques photos :



    H�bergement gratuit avec Mezimages.com

    H�bergement gratuit avec Mezimages.com

    H�bergement gratuit avec Mezimages.com

    H�bergement gratuit avec Mezimages.com

    H�bergement gratuit avec Mezimages.com



      20:40:49 |  


    PermaLinkInitiation au LotusScript
    Le document le plus téléchargé de ce site est de loin le tutoriel de Michaël Delique sur l'initiation au LotusScript. Il a été téléchargé plus de 700 fois depuis sa mise en ligne.

    Michael m'a envoyé la toute dernière version de son tuto que vous pouvez maintenant télécharger ici.

    Michaël est administrateur du forum DominoArea (comme moi...). Il répond très régulièrement (pas comme moi...) aux questions des nombreux visiteurs. Tout ceci à temps "perdu" et sans attendre de contre partie (financière...).
    C'est pour cela que si vous avez trouvé son tuto utile, n'hésitez pas une seconde à le lui faire savoir .

    J'aurai pu faire le même billet en remplaçant Michaël par Oguruma qui est lui aussi un contributeur régulier de DominoArea et rédacteur de nombreux tutos.

      14:11:34 |  


    PermaLinkLes limites des DOM Table
    Comme beaucoup d'entre-vous le savent déjà, AJAX (pour Asynchronous JavaScript And XML) est une méthode de programmation d’application Web utilisant plusieurs technologies: HTML (XHTML), CSS, DOM, JavaScript, XML, XSLT et l’objet XMLHttpRequest.

    Je suis actuellement sur un projet ou je dois être capable d'afficher dynamiquement une liste de 1500 documents dans un table. Nous voulons pour cette application respecter les normes du Web2.0 et donc l'utilisation d'AJAX. C'est pourquoi je suis parti sur la construction de ma table à l'aide des éléments DOM Table (insertRow,insertCell...)

    Exemple d'utilisation des DOM Table pour construire un tableau de 50 lignes :

    function tableMethods()
    {
    	var x = document.createElement('table');
    	var y = x.appendChild(document.createElement('tbody'));
    	for (var i=0;i<50;i++)
    	{
    		var z = y.insertRow(0);
    		for (var j=0;j<50;j++)
    		{
    			var a = z.insertCell(0).appendChild(document.createTextNode('*'));
    		}
    	}
    	document.getElementById('writeroot').appendChild(x);
    }


    J'ai donc codé mon tableau dynamique de cette façon. Mais je me suis vite rendu compte de la lenteur d'affichage du tableau.
    Pour un tableau de 1500 lignes, sous IE6 il faut au navigateur 70 secondes pour construire mon tableau ! Sous Firefox c'est un peu mieux avec 24 secondes ...
    Ce que j'ai aussi pu remarquer c'est que cette lenteur est exponentielle car pour un tableau de 500 lignes IE6 met "seulement" 11 secondes...

    Bref, ces temps de réponse son inacceptable pour le projet. Je me suis donc rabattu sur le bon vieux innerHTML avec un array.push + array.join (éviter les += pour construire de grosses chaînes de caractères, c'est hyper gourmand) :

    Exemple d'utilisation du bon vieux innerHTML avec un array.push + array.join pour construire un tableau de 50 lignes :

    function inner2()
    {
    	var string = new Array();
    	string.push('<table><tbody>');
    	for (var i=0;i<50;i++)
    	{
    		string.push('<tr>');
    		for (var j=0;j<50;j++)
    		{
    			string.push('<td>*</td>');
    		}
    		string.push('</tr>');
    	}
    	string.push('</tbody></table>');
    	var writestring = string.join('');
    	document.getElementById('writeroot').innerHTML = writestring;
    }

    Et là les temps de réponse sont de 12 secondes sous IE pour afficher 1500 lignes et de 8 secondes sous Firefox. Ce qui est sommes toute acceptable.

    Je vous conseille donc d'éviter les DOM table pour les tableaux de grosse taille, c'est vraiment trop gourmand en ressource.
    Cette limitation est dommageable pour l'utilisation des normes du Web2.0. Espérons que les prochaines versions de IE corrigeront ce problème.

      07:45:38 |  


    PermaLinkDes news de la 7.0.2
    Ed Brill dévoile quelques nouveautés de la 7.0.2 de Domino dans son dernier billet. Contrairement à ce que peut laisser penser son numéro de realease, ce n'est pas une version mineure !

    Jugez plutôt :

    • IBM Lotus Notes access for SAP solutions -- seven use cases for integrating Notes mail/calendar/contacts with SAP systems
    • A weblog template
    • An RSS feed template -- note this isn't a core code change, it's a database which aggregates information from other Notes databases and publishes them as RSS feeds.  I'll be writing more about it in the coming days.
    • "Nomad" (current codename, formerly "Wanda") -- A complete, functioning, supported Notes install to a portable USB memory key, for enhanced roaming user support
    • Improvements to iCalendar support
    • Notes 7 on Macintosh (Power and Intel); Domino Web Access support on Macintosh/Firefox
    • Notes 7 on Linux via the IBM Workplace Managed client 2.6.1
    • SmartUpgrade "run as admin" utility -- which will work with previous releases of Notes but is shipping with 7.0.2
    La plupart de ces évolutions étaient annoncés mais la grosse surprise (pour moi) vient de la version Linux de Notes... Quelqu'un en sait-il un peu plus sur ce client Workplace et de l'intégration de notes 7 ?

    UPDATE :

    Merci à Michael Bourak (alias Smicky) pour ces précisions :

    En fait, le client workplace, c'est le client riche/managed qui va avec Workplace Collaboration Services. Ce client a un plugin pour lotus notes 7 sous windows depuis qq temps et, avec la 7.02, un plugin notes pour linux. Concrètement, oui, IBM a fini le portage du client notes pour linux mais uniquement au travers de ce plugin. Ca te permet d'utiliser toutes les applis Notes via Linux.
    Si tu veux le "full" client notes sur linux, ca vient avec Hannover, la prochaine version du client Notes attendue pour début 2007 (qui est de toute facon la "fusion" de ce managed client et du client notes "classic" actuel)


    Pour ceux qui ne le connaisse pas, Smicky est le brillant concepteur de DomBulletin et occasionnellement reporteur pour Dominux (ben oui, il a du lui proposer plus que moi ... Je lui avais pourtant proposé l'intégrale des télétubbies en DVD...)

      00:04:40 |  


    PermaLinkLimitations Domino suite...
    Il y a quelques semaines je vous parlais des limitations des différentes versions de Domino.
    Pour chaque version, IBM avait listé séparément toutes ces limitations. Pas trés pratique...

    J'avais donc mentionné qu'il serait bien d'avoir un petit tableau résumant tout cela.
    Et bien dites merci à Jérôme NOEL (un voisin girondin) qui nous a tout résumé dans ce tableau.

      19:15:39 |  


    PermaLinkProblème de Mise en cache avec AJAX
    La gestion du cache navigateur a toujours été relativement problématique. Si l'on souhaite éviter cette mise en cache, la solution actuelle consiste à placer les trois instructions suivantes dans la section de notre page HTML :

    <meta http-equiv="Expires" content="0">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Cache-Control" content="no-cache">

    Mais pour faire ceci il faut avoir la main sur ce qui nous ai renvoyé par le serveur... et ce n'est pas toujours le cas.
    Je suis actuellement sur un projet web avec pas mal d'Ajax et on requête souvent des vues avec la commande ?readviewentries. Impossible donc d'insérer des tags meta dans la réponse du serveur. On se retrouve donc systématiquement avec le résultat du readviewentrie dans le cache du navigateur... pas cool.

    Pour éviter cela il existe deux solutions :

    1. La plus bourrin consiste à insérer un Math.random() à la fin de l'url. Ceci rend l'url unique et elle n'est donc pas reprise du cache. Le problème c'est que si la vue est conséquente, le cache des utilisateurs sera vite rempli de ces flux xml. Le cache ne sert plus à grand chose pour ces utilisateurs.

    2. La version 6 de Domino nous a apporté dans son petit traîneau un truc qui s'appelle les règles de site web. Ces règles permettent de faire plein de choses (voir l'aide du client d'admin) mais ce qui nous intéresse le plus c'est qu'elles permettent de modifier les entêtes http renvoyées par le serveur. On peut donc pour un certain type d'url empêcher la mise en cache du navigateur. Voici comment procéder :

    Le document de règle de site web est un document enfant du document de site internet. Pour le créé, ouvrez le document de site Internet et sélectionnez Site Web – Créer règle.
    Remplissez le document règle :


    Le plus délicat à paramétrer c'est le modèle d'url entrant. Il faut absolument que toutes vos vues appelées via un ?ReadViewEntries aient un préfixe identique (exemple : vtAJAX...). Ceci afin qu'elles correspondent au même modèle d'url entrant.

    J'ai donc testé en long en large et en travers et ça fonctionne du tonnerre. Ces documents de règles sont très utiles et nous permettent ainsi de contrôler de manière très précise la mise en cache des différents éléments d'une page web. A ce sujet, allez regarder cet article, il est très intéressant.

      22:55:23 |  


    PermaLinkUne semaine bien méritée
    Le mois de mai va bientôt commencer. Je vais enfin pouvoir lever le pied côté boulot car en plus des nombreux ponts, je me suis pris une semaine de vacances du 20 au 28 mai. Semaine bien mérité pendant laquelle je part avec toute ma famille ici :



    Celui qui devinera le premier où je part aura droit à un jolie petite carte postale (celle que quand tu l'ouvres y a de la musique ) et à un petit souvenir local (je peux pas en dire plus...).

    A vos commentaires !

    UPDATE :

    Après l'Islande, la Suède, la Norvège, la Finlande et l'Irlande Sylvain a enfin trouvé l'Ecosse !
    Bon... pour la St Sylvain (si si c'est la st Sylvain aujourd'hui) je vais être indulgent .

    Je vais loger dans cette maison pendant une semaine. C'est au bout du monde mais c'est ce que j'aime en Ecosse. J'y suis allé il y a sept ans et j'en suis tombé raide dingue ! Je vous conseille vraiment de vous y rendre. Emportez un bon bouquin d'Anne Rice (la trilogie des sorcières par exemple) quelques albums de Magma ou de Coltrane et vous êtes dans l'ambiance !

    Je publierai quelques photos à mon retour.

      21:03:51 |  13 


    PermaLinkMode edition et mode lecture en web
    Par mis les diverses applications web que je découvre chez mes clients j'ai remarqué une "malfaçon" récurrente. En effet, ces applications utilisent souvent des sous masque spécifiques pour le mode édition et pour le mode lecture. Lorsque je creuse un peu pour en découvrir les raisons voici les réponses que l'on me donne :

    1. Les url relatives ne sont pas les même lors de la création et lors de la consultation en mode lecture/écriture. En consultation on est un cran au dessus :
    En consultation : http://monserveur/mabase.nsf/mavue/documentUNID?OpenDocument
    En création: http://monserveur/mabase.nsf/monmasque?OpenForm
    "On est donc obligé de calculer toutes les url relatives avec des @if(@isnewdoc..."

    2. Si l'on souhaite mettre une partie du masque en édition et une autre en lecture en fonction de l'état du document ou de la personne qui l'ouvre ce n'est pas possible sans séparer les sous masques (typique dans le cas d'un workflow) .

    Avant d'apporter des solutions à ces deux problèmes je tiens à dire que je n'ai rien contre les sous masque dans les applications de faibles volumétries et peu utilisées. Par contre dés que l'on touche à une base de plusieurs milliers d'enregistrements, il est conseillé d'éviter au maximum l'utilisation de sous masque. L'effet sur les performances est très significatif.
    Les masques et les sous masques sont des documents comme un autres mais avec un champ spécifique ($FormulaClass = "4"). Plus il y a de documents dans la base, plus le serveur mettra de temps à les trouver et les afficher.

    Solution du problème 1 :
    Pour ne plus galérer avec les urls relatives placez dans le HTML Head Content de votre masque un "base href" comme ceci :
    "<base href=\"http://" + Server_Name + "/" + DBPath + "/\" />"
    Server_Name correspond à la variable CGI (champ calculé égal à lui même) et DBPath est un champ calculé avec cette formule :
    @ReplaceSubstring(@Subset(@DbName; -1); " " : "\\"; "+" : "/")
    Le "base href" permet de spécifier la base de vos url relative et ce quelque soit l'emplacement ce la page. On régle donc ainsi le problème de lien relatif.
    C'est un peu hors sujet mais j'ai une fonction trés utile en javascript qui permet de retrouver l'url d'une base :
    function urlBase() {
    var pathname = window.location.href;
    return pathname.substring(0,(pathname.indexOf('.nsf')+4)) ;
    }

    Solution du problème 2 :
    La solution consiste à baser l'affichage d'un champ ou du texte calculé égal au champ en fonction de la valeur d'un autre champs :

    La formule définit dans le champ Section1ReadMode donne les conditions du mode lecture (1->mode lecture 0-> mode écriture). On peut donc ainsi conditionner le mode de visualisation d'une partie d'un document indépendamment du "mode réel".

      08:47:27 |  98 


    [Replication or Save Conflict]
    PermaLinkGoogle calendar
    Il y a quelques jours, dans la plus grande discrétion, Google a lancé Google Calendar :


    Après une grosse semaine de pratique, je peux vous en dire quelques mots.
    La bonne surprise c'est la prise en main, un simple clic sur une zone du calendrier fait apparaître une zone de saisie dans le contexte de la page (vive AJAX+DOM...)


    On peut aussi déplacer un rendez-vous par drag & drop.
    Lorsque l'on rentre dans le détail d'un évènement, on peut en définir la date et l'heure de départ et d'arivée. On peut aussi inviter d'autre utilisateur, paramétrer un reminder et initier une discussion avec les invités.


    Lorsque l'on veut imprimer son calendrier, un pdf est généré que l'on peut ensuite imprimer. C'est cool mais on perd les couleurs...

    Ce que je n'aime pas des masses c'est le manque de customisation possible. Impossible par exemple de définir des familles d'évènement (réunion, anniversaire, congés...). Tout les évènements apparaissent bleu et si l'on a un emploi du temps chargé cela devient vite illisible. Il y a aussi un import d'agenda possible mais seulement pour Outlook, ical (ipod), Yahoo calendar et un format csv.

    En conclusion Google Calendar est vraiment bien fait, très pratique mais on atteint vite ses limites lors d'une utilisation professionnelle. Pour une utilisation professionnelle préférez l'excellent kiko.

    UPDATE :

    Il existe maintenant un petit soft chez Indcentral qui permet d'exporter des evenements de son agenda notes au format iCal. Il et donc mainenant possible d'exporter son agenda vers google calendar.

      08:29:06 |  


    PermaLinkLe petit journal people
    Si vous ne le saviez pas encore, figurez-vous que le petit monde domino est peuplé de bloggeur qui ont une vie privée des plus normale (qui en doutais ?!?!).

    Au moment ou j'écris ces lignes Declan Lynch (le créateur de BlogSphère) se marie avec Terri Sciolla. Ils se marient à Las Vegas dans la même chapelle que Demie Moore, Bruce Willis et Michael Jordan. Vous pouvez même télécharger la vidéo du mariage (y a pas encore la nuit de noce )...

    Vous avez peut-être aussi remarqué que Jake (www.codestore.net) n'est plus très bavard ces derniers temps sur son blog. Ben lui aussi c'est marié avec Karen jeudi dernier. Jake lui avait demandé sa main de la plus romantique des façons le 23 février dernier (ils sont rapide ces Anglais !).

    Mais la bonne surprise du week-end c'est que Lionel Conforto a reprit le chemin de son blog (et de quelle manière !) qu'il avait mis de côté après la naissance de son fils Marc en décembre.

    Souhaitons leur à tous les meilleures choses du monde.

      16:39:33 |  


    PermaLinkViewEz
    En février dernier je vous avais parlé de ScanEz. Cet outil est clairement devenu indispensable à mes développements. Je ne vais pas vous refaire mon billet de février d'autant plus que Ytria a créé quelques tutoriaux en flash décrivant les principales fonctionnalités de ses produits.
    Non, cette fois-ci je vais vous parler d'un de leur produit en pre-release, j'ai nommé ViewEz. Comme son nom l'indique cet outil va vous permettre de gérer plus facilement vos vues.

    Je ne sais pas vous mais ça m'arrive fréquemment de devoir changer la formule ou une des propriétés d'une colonne présente dans plusieurs vues. Ca peut vite virer à la crise de nerfs !
    Une des principales fonctionnalités de ViewEz c'est justement de vous permettre de toutes les modifier à la fois. Pour cela ont peut demander à l'outil d'analyser toutes les colonnes des vues sélectionnées pour nous indiquer quelles sont celles qui possèdent les mêmes formules et ainsi vous les classifier en famille.


    Vous pouvez ensuite modifier les propriétés ou les formules de chaque famille de colonne.



    Ytria offre une réduction de 20% si vous achetez ce produit avant le 30 avril (période de pre-release)

    Si vous souhaitez essayer ViewEz et voir toutes ses autres fonctionnalités, vous pouvez le télécharger ici.

      19:43:30 |  


    PermaLinkLe moral remonte !
    Pour ceux qui ont le moral qui baisse, qui pensent se retrouver bientôt poussé dehors avec pour seul bagage une expérience Lotus Notes. Ceux qui pensent s'être enterré dans une techno cul de sac. Pour ceux qui écoutent les DSI qui lisent 01 informatique aux toilettes plomber Domino. Ben pour tous cela je vous recommande de lire ce billet de Rocky Oliver.

    Personnellement je me souviens d'une discussion en 2002 avec un commercial d'IBM me disant que Domino s'arrêterait avec la 6.5. Il tenait cette information de sa direction commerciale... Ne jamais écouter un commercial d'IBM .

    A propos de Rocky Oliver, il travaille actuellement avec Steve Castledine (le créateur de DominoBlog) et la bonne nouvelle c'est que cette appli sera dans les prochaines versions de Domino.

      20:35:58 |  


    PermaLinkIBM sort les griffes... pour sauver des pingouins
    C'est vraiment pas trop tôt diront certains (dont moi) mais vaut mieux tard que jamais.
    IBM semble avoir compris la nécessité de défendre Lotus Domino face aux attaques répétées de Microsoft. Et qui sont les mieux placé pour promouvoir Domino ? Hein ? Ben les consultants IBM dispersés dans toutes les sociétés du globe.
    La grande force d'IBM face à Microsoft c'est que c'est avant tout une société de service avec des dizaines de milliers de consultants dans les plus grands groupes au monde.

    Du coup IBM a décidé d'offrir un joli petit pactole (jusqu'à 20 000$) à ceux qui arrivent à persuader les DSI de migrer leurs infrastructures Exchange vers une solution Domino sous Linux.
    L'offre n'est pas encore valable en Europe mais ça ne va pas tarder.
    Pour en savoir plus : Voir l'annonce

      21:22:48 |  


    PermaLinkSametime 7.5 demo


    Pour ceux qui sont intéréssés par Sametimes, IBM a publié une petite présentation flash sur les nouveautés de la version 7.5. Une fois passé l'inscription (laborieuse) vous avez droit à télécharger la présentation.

    Vous pouvez aussi consulter la présentation faite lors de la LotusSphere 2006 ici.

    J'ai eu l'occasion de voir "en live" un réunion sous sametimes réunissant des responsables informatiques de Mexico, Paris et Pekin. L'utilisation de Sametime nécessite une discipline et une organisation particulière mais il est clair que ça facilite énormément les échanges.

    Ajout :
    Voir cet article trés interessant sur les IM (Instant Messaging).


      21:01:44 |  


    PermaLinkGuide d'instalation de domino 7 sur Suze
    Michel Bluteau vient de créer un tutoriel pour installer domino 7 sur Suze Linux Entreprise Server 9 :

    Quickstart guide for installing Domino 7 on SLES 9

    Ce tuto est très didactique avec plein de copie d'écran comme j'aime. Les pros de Linux vont encore lever les yeux au ciel mais j'ai bien rigolé quand j'ai vu ma première barre de progression sous shell :




      08:01:07 |  


    PermaLinkDomino application performance
    Deux articles très intéressants sont parus dernièrement dans la Lotus technical library :

    Lotus Notes/Domino 7 application performance: Part 2: Optimizing database views
    Lotus Notes/Domino 7 application performance: Part 1: Database properties and document collections


    Ne vous laissez pas tromper par leurs titres car 90% des recommandations sont valables pour les versions 5 et 6.

    Ce qui a de bien c'est qu’ils démontent pas mal d'idées reçues dont une qui a vraiment la dent dure et que je ne cesse de crier sur tout les toits :

    Using the extended class syntax, doc.DateToday = Today, appears to be just as fast as using doc.ReplaceItemValue ("DateToday", Today). In theory, we should see some performance difference because in one case, we are not explicitly telling Lotus Notes that we will update a field item, so Lotus Notes should spend a bit longer figuring out that DateToday is, in fact, a field. However, practical tests show no différence.

    C'est un peu tard pour certain mais ça fait plaisir de le voir écrit noir sur blanc !

    Ils ont aussi réalisés de nombreux tests pour déterminer quelle était la méthode de recherche de document la mieux approprié suivant divers contextes.

    Très enrichissant tout ça !

      19:34:27 |  


    PermaLinkDes formulaires plus simple
    Beaucoup d'entre nous on était amené à créer des formulaires web avec pour seule et unique information, le nom et le type des champs.

  • Comment organiser tous ces champs ?

  • Comment rendre ce formulaire le moins rebutant possible pour l'utilisateur ?

  • Pour nous aider dans notre tâche Dieu créa Fred Cavazza qui créa ce tutoriel.

    Fred Cavazza travaille pour mon ancien employeur (personne n'est parfait ). Je vous conseille fortement son blog.

      09:16:44 |  


    PermaLinkMonitorer son réseau et son infrastructure Notes avec HostMonitor et.... AJAX
    Les outils d'analyses réseau se démocratisent et fleurissent en entreprise. Quel plaisir de pouvoir d'un seul coup d'oeuil visualiser l'état général de son réseau !

    Concernant Domino, ces outils nous permettent de savoir si un serveur répond au ping, éventuellement connaître les services qui y tournent, la charge CPU, etc... Mais si l'on souhaite :

    Connaître le nombre de mail en attente dans la mail.box ;
    Avoir une alerte si un conflit de réplique apparaît dans une application ;
    Faire éxécuter plusieurs actions par un agent et en afficher les résultats;
    ou tout autre contrôle non standart ;

    ben il n'y a plus grand monde du côté des outils d'analyses. En fait, en étudiant de prés HostMonitor je me suis rendu compte qu'on pouvait exécuter un script javascript et en retourner le résultat à l'outil d'analyse. Et c'est là ou l'on peut faire intervenir AJAX pour récupérer et parser un flux XML en retour d'une requête http.

    Voici un exemple pour connaître le nombre de mail en attente dans une mail.box :

    statusAlive = 'Host is alive:' statusDead = 'No answer:' statusUnknown = 'Unknown:' statusNotResolved = 'Unknown host:' statusOk = 'Ok:' statusBad = 'Bad:' statusBadContents = 'Bad contents:' servername = 'server.hostname.fr' username = 'julien%20bottemanne' password = 'xxxxxxx' maxLimit = 50 function performtest() { var status=statusUnknown; var view=new ActiveXObject("Microsoft.XMLDOM"); view.async=false; var strURL = 'http://'+servername+'/names.nsf?Login&Username='+_ username+'&Password='+password+'&RedirectTo=/mail.box/mail?readviewentries' view.load(strURL); var xml=view.getElementsByTagName("viewentries"); var noentries=parseInt(xml.item(0).getAttribute("toplevelentries")); if (noentries<maxLimit){ status=statusOk; }else{ status=statusBad; } return status+noentries //change this line to return proper test`s "Status" and "Reply" value to HostMonitor }
    Bon je suis d'accord c'est pas tout a fait de l'AJAX mais bon... presque. Si vous avez donc bien compris le système, vous comprenez que de cette manière, il est possible de monitorer tout ce que l'on souhaite.
    Pour des contrôles très particuliers liés à des fonctionnalités applicatives, il suffit donc de créer un agent qui effectue ces contrôles et génère en sortie un flux XML. Bien entendu cela oblige de lancer la tâche http sur les serveurs monitorés.

    J'ai oublié de parler du prix... En fait je me suis intéressé à HostMonitor car il est de loin le moins cher du marché (de 100$ à 400$) et possède de très nombreuses fonctionnalités et pas mal de récompenses.
    Deux de mes clients ont suivit mes conseils et l'ont mis en place et ils en sont très satisfaits. L'un de a même activé les alertes SMS. Il est donc en permanence au courant de l'état de son infrastructure domino, même en déplacement, même chez lui, même le week-end.... bon je sui d'accord c'est peut-être pas super cool d'être dérangé en pleine partie de... tennis parce qu'un serveur ne route plus rien du tout... mais bon ça en rassure certain

      09:09:32 |  


    PermaLinkLimitation de domino 5, 6 et 7
    On nous a tous posé des questions diverses sur les limitations de domino (champs, taille de base, etc...). Voici ou trouver vos réponses :

    Known limitations of Notes and Domino 7.x
    Known limitations of Notes and Domino 6.x
    Known limitations of Notes and Domino 5.x


      12:22:45 |  


    PermaLinkDominoblogs
    Laurette Rynne lance www.dominoblogs.com. Comme l'explique Laurette ce site est destiné à référencer tout les blogs autours de Domino :

    "It is not the intention of this site to rank blogs, nor is it the intention of this particular site to provide an aggregated feed of available blogs, however these are options which may become available in related sites sharing the information collected on this site. "

    Ce site est réalisé avec domBulletin dont vous pouvez trouver le template sur openntf.

    The sickos a référencé aussi énormément de blog sur Domino .

      10:10:15 |  


    PermaLinkMigrer vers Exchange ?
    Si votre DSI ou certains de vos clients pensent à migrer leurs infrastructures domino pour du microsoft regardez un peu les explications d'Ed Brill. Lors de la dernière LotusSphère il a animé une session démolissant un a un les arguments de microsoft. Ce powerpoint bourré d'humour (à commencer par le titre) est tiré de cette session. Dommage qu'il n'y ai pas un podcast de la session ce devait être vraiment sympas.

    Vous pouvez trouver la présentation ici

    Dernièrement Ed Brill a été nommé à juste titre "Best blogs for buyers"

    Dans la même veine vous pouvez lire aussi cet article de Richard Schwartz.

      09:30:00 |  


    PermaLinkProcédure de déplacement d’un serveur Domino
    Voici une petite procédure pour vous aider à déplacer un serveur domino d'une machine à une autre. J'ai fait ça quatre fois ce mois-ci. C'est une opération plutôt simple mais pour tranquiliser tout le monde (client compris) il est trés utile de présenter un petite procédure de ce type. :



      08:16:54 |  73 


    PermaLinkBlogSphere & nsfTool
    Comme vous pouvez le constater, le design de ce site a un petit peu évolué. J'espère que vous trouvez ça mieux.
    J'ai passé pas mal de temps à régler quelques soucis de CSS mais maintenant ça roule ! De plus, le rendu est identique sous IE & Firefox ce qui n'est pas si évident au départ.

    La base notes que j'utilise est une "customisation" de la BlogSphere, un projet open source d'openNtf. Cette semaine Declan Lynch un membre de ce projet m'a contacté pour utiliser ma CSS dans la nouvelle version de cette base. Ajouté à la citationde Julian dans nsfTool c'est deux coups de projecteur aussi inattendus que plaisants.

      14:46:57 |  


    PermaLinkDomlike.com
    Vous vous souvenez peut-être, il y a quelque temps, Jessy (une amie...) avait acheté domlike.com pour me le revendre au prix fort....

    Ben Jessy elle l'a eu dans l'os car je viens de me le payer pour 15 euros les 3 ans... son bail avait expiré !!

    Bon je ne sais toujours pas ce que je vais en faire de ce nom de domaine mais en tout cas il est a moi !

    En fait je ne sais toujours pas pourquoi je l'ai acheté... Peut-être pour éviter de me le faire voler à nouveau...

    La morale c'est que j'ai acheté un truc que je n'aurais jamais acheté si on ne me l'avait pas volé...

    Il faudra que je fasse lire mon blog par un psy car j'ai vraiment l'impression de mal tourner.

       |  


    PermaLinkScanEZ




  • Combien de fois allez vous visualiser les propriétés des documents ? Pas très pratique de passer de champs en champs pour voir leur valeur....


  • Combien de fois il vous est arrivé de devoir créer une vue simplement pour visualiser les documents qui correspondent à certains critères ?


  • Combien de fois avez vous du créer un agent pour simplement affecter une valeur particulière à un champs ?


  • Combien de fois, lors de conflits de réplique, allez vous rechercher "à la main" la différence entre les deux docs pour savoir lequel vous gardez ?


  • Etc...


  • Bref, il y a énormément d'opérations de ce type que les développeurs et admin Domino sont amenés à réaliser régulièrement. Pour nous aider et nous faire gagner du temps la société Ytria edite ScanEz.

    Comme je n'aime pas parler de ce que je ne connais pas, j'ai téléchargé le produit sur leur site et j'ai mis les mains dedans. Ce qui frappe au premier abord c'est la multitude de possibilités offertes. Jugez plutôt :



    On prend vite le produit en mains, il est relativement ergonomique, les options sont là ou on les attend. Rien à redire.

    En plus des fonctions de bases, j'ai particulièrement apprécié les nombreuses recherches disponibles ainsi que la possibilité de voir son Notes.ini avec toutes ses variables et de pouvoir les modifier en live.

    Je ne suis pas adepte des outils de développement mais cela fait maintenant prés de 15 jours que je l'utilise et j'avoue que j'aurais du mal à m'en passer (même en version limité ).

    Je dois encore tester actionBarEZ. Ce produit donne, entre autre, la possibilité de modifier l'apparence de toutes les vues d'une base en même temps.
    On ne deviendra plus tout blanc quand un client nous dira :
    "Non en fait finalement l’arial c’est naze dans les vues mettez moi plutôt du verdana..."

      13:05:19 |  


    PermaLinkNew Database ReplicaID
    En LS, il n'y a pas de moyen "standard" pour affecter un nouveau replicaID à une base. En effet la propriété ReplicaID de l'objet NotesDatabase n'est pas "setable".

    Pour s'en sortir il y a la solution manuelle en créant une nouvelle copie de base. Mais si l'on souhaite automatiser la chose on doit passer par du LS ou du java.

    En LS il existe la methode CreateCopy mais elle permet seulement de créer une copy vide d'une base.

    Donc la seule et unique manière en LotusScript de créer une copie d'une base disposant d'un ID de réplique différent est de faire une réplique de la base (methode CreateReplica) et d'utiliser la fonction ci-dessous pour changer l'id de réplique de la base.

    Voici donc un exemple d'agent qui utilise ma fonction SetNewReplicaID :


    Lire la suite . . .

      08:52:04 |  


    PermaLinkGérer les listes en @formule
    Haydn Parker a diffusé il y a quelques années plusieurs @formules qui permettent de faire diverses opérations sur des listes. Je les consulte régulièrement car cela m'évite souvent de passer par du LotusScript.

    Les voicis :
    DIFFERENCE All unique entries in list 1 but not in list2 list1:="......"; list2:="....."; reslist:=@unique(@trim(@replace(list1;list2;""))); AND All unique entries in both list 1 and list2 list1:="......"; list2:="....."; list3:=@replace(list1;list2;""); resList:=@unique(@trim(@replace(list1;list3;""))); OR (SUM) All unique entries in either list1 or list2 resList:=@trim(@unique(List1:List2)); XOR All unique entries in list 1 or list2 but not in both list1:="......"; list2:="....."; list3:=@replace(list1;list2;""); list4:=@replace(list2;list1;""); resList:=@unique(@trim(list3:list4)); How many dates in a list are less than a given date? rem "subtract list from date to get list of +ve & -ve nos"; p1:=@Text(Date-DateList); rem "change all entries which are -ve"; p2:=@Explode(@ReplaceSubstring(@Implode(p1;"/");"-";"*");"/"); rem "now replace unchanged entries from orig list"; p3:=@TextToTime(@Trim(@Replace(@Replace(p2;p1;@Text(DateList));p2;""))); @elements(p3) All numbers within a given range list:=1:2:3:4:5:1:2:3:4:5:1:2:3:4:5; lower:=2; upper:=4; p0:=@text(list); p3:=@Trim(@Replace(p0;@Replace(p0;@Right(@Text(List-lower);"-")+p0;"");"")); res:=@texttonumber(@Trim(@Replace(p3;@Replace(p3;@Right(@Text(upper-@texttonumber(p3));"-")+p3;"");"")))
    J'espère qu'elles vous seront aussi utile qu'a moi.

      13:58:46 |  


    PermaLinkUn nouveau venu
    Décembre a vu la naissance de BenCodes un nouveau blog autour de domino. Les premiers articles sont bien sympas. Et Benoit (son auteur) semble bien motivé. Si je ne me trompe cela fait maintenant le cinquieme blogs francophone :

  • double-six

  • darkBlog

  • Dominux

  • BenCodes


  • Et le mien !

    On n'est jamais de trop pour soutenir domino ! (pas mal ce slogan... )

      13:21:22 |  10 


    PermaLinkFaire sauter la ACL d'une base
    On a tous été confronté à l'impossibilité d'ouvrir une base. C'est relativement frustrant surtout si c'est une base qui possède une ACL cohérente...

    Pour se sortir de ce mauvais pas il existe en V6 la possibilité de passer outre la LCA en passant en mode "Full Administrator". Encore faut-il faire parti du groupe de super administrator et encore faut-il être en V6...

    Donc si vous êtes en V5 ou que vous n'avez pas la super chance de faire parti des supers administrators, voici une solution pour mettre à blanc la LCA d'une base :

    Pour commencer vous avez besoin d'un éditeur héxadécimal. Il y en a pas mal de gratuit comme celui-ci.

    On se fait une copie de la base (au cas ou...)

    On ouvre la base avec l'éditeur et on met à zero l'offcet 16c à 1a7:



    On sauvegarde et voilà ! votre LCA est vide avec l'accés Gestionnaire par defaut...

    Cette astuce est relativement connue mais on ne sait jamais vous êtes peut-être passé à côté

      08:13:02 |  


    PermaLinkInvalid POST request exeption
    Je viens de passer une journée entière à régler un problème lié à inotes (DWA).

    Les symptômes :
    Lorsque l'on souhaitait supprimer un message rien ne se passait.
    Lorque l'on voulait envoyer un message on tombait sur une erreur DNS.
    Sur la console Domino : Invalid POST request exeption [/url/quejaidemande.nsf...]

    Après un premier diagnostic, il est apparu que tout fonctionnait bien à l'intérieur de la DMZ et que cela se passait mal dés que l'on était à l'extérieur de la DMZ. J'ai donc concentré mes investigations sur le firewall. Les règles de filtrage étaient bonnes, rien à redire dessus.

    Avant de laisser tomber et de refiler le bébé à l'admin réseau j'ai, au cas ou, demandé à un collègue indep (merci Jacques ). Il me dit de regarder si le firewall ne fait pas de la "détection d'intrusion". J'ai dis OK sans trop savoir ce qu'il voulait dire et je me suis tapé la doc du FW et effectivement il en faisait.

    En fait la détection d'intrusion consiste en l'analyse du contenu des requêtes traversant le FW. Il y a plusieurs milliers de règles qui permettent de bloquer les "intrusions". Un peu le même système que les analyses antispam. Dans mon cas c'était une règle qui empêchait les POST http... rien que ça !

    Après avoir désactivée cette règle, tout est revenue dans l'ordre ! Sachez donc qu'il existe des firewalls qui ne font pas simplement du firewall mais plein d’autres choses que vous ne connaissez même pas. Ce n'est pas un élément neutre sur un réseau.



      09:47:58 |  


    PermaLinkExecute Statement
    Je vous donne ici un de mes tips préféré trouvé à l'époque sur le Gold Forum de Lotus :

    Je vous pose d'abord le problème :
    Vous êtes en pleine migration V5->V6 et vous vous rendez compte que certains agents ne fonctionnent plus en V6. Vous êtes en environnement mixe 5/6 et le même agent doit donc fonctionner pour les deux clients...
    Comment faire pour qu'un seul et même agent puisse utiliser les nouvelles fonctionnalités avec les clients V6 (ou V7) et garder un code adapté pour les clients V5 ?

    Ceci est possible. La solution tourne autour de la fonction lotusScript Execute. La fonction Execute permet de compiler une partie du code lors de son exécution (dans le run time). La solution consiste donc a faire un Execute d'un code adapté à la version du client. L'astuce est de placer ce code dans une librairie. On aura donc une librairie pour l'agent V5 et une librairie pour l'agent V6.
    Voici comment appeler et compiler les librairies adaptées au client lors de l'exécution de l'agent :

    Dim script As String script = {Option Public} & Chr$(10) & {Option Declare} & Chr$(10) & {Use "} If session.NotesBuildVersion >= 182 Then script = script & {My ND6 Script Library} Else script = script & {My R5 Script Library} End If script = script & {"} & Chr$(10) & {Sub Initialize} script = script & Chr$(10) & {Call myFunction} & Chr$(10) & {End Sub} Execute(script)


    Ce qu'il faut penser à faire c'est de déclarer toutes ses variables utilisés dans les librairies dans la section déclaration de l'agent et en faire des variables globales. Sinon vous ne pourrez pas y accéder dans l'agent.

    Cette fonction est peu connue mais permet de vous sortir de situation bien délicate.


      07:59:30 |  


    PermaLinkDu repos bienvenue
    Cette semaine j'ai 4 jours de libre (sans compter le week-end ) Cela faisait longtemps que ça ne m'était pas arrivé. Du coup je vais passer le plus clair de mon temps à faire tout ce que je n'ai pas encore eu le temps de faire :

    • La sieste.

    • Faire le point avec mon expert comptable.

    • Passer une visite médicale pour mon assurance prévoyance.

    • Engueuler mon banquier pour m'avoir appliqué des frais de gestion énorme.

    • Emmener ma grande fille à l'école .

    • Finir ma terrasse <-- ça c'est ma femme qui m'oblige...

    • Et surtout pouvoir enfin prospecter de nouveaux clients.

    Trouver du temps pour "faire le commercial" est un vrais problème lorsque l'on est indépendant. Donc si de votre côté vous avez des prestations à me présenter, n'hésitez pas !

    L'année dernière j'ai pris goût aux missions à l'étranger. C’est un bon moyen pour allier l'utile à l'agréable. En ce moment j'ai deux copains indépendants aux Etats unis et au Canada . J'aimerai pouvoir faire comme eux de temps en temps

      07:33:49 |  


    PermaLinkReproduire la syntaxe Lotusscript sur un site web
    La semaine dernière j'ai passé plus de deux heures à chercher un moyen d'afficher sur ce site mon code lotusScript avec la même syntaxe que dans designer (les mots clés en bleu, commentaires en vert, etc...) .

    J'ai fini par poser ma question sur le forum lotus. Ben et julian m'ont répondu. En fait Julian (www.nsftools.com) à développé une base web pour effectuer cette convertion.

    Vous pouvez télécharger sa base ici.

    Je l'ai donc installé sur mon site et relooké à mon goût. Vous pouvez donc vous en servir ici.

    J'avais aussi posé ma question à Jake Howlett avec qui j'ai la chance de correspondre pas mal. Il m'a orienté vers un de ses ancien post.

    En fait lui utilise TextPad qui permet facilement de copier un code LS au format html. Trés pratique !



      14:51:55 |  


    PermaLinkCompteur et clés uniques
    Dans certaine application, il est nécessaire de générer des clés uniques pour chaque document. Ces clés sont utilisées pour identifier de manière unique des documents et ainsi pouvoir les lier.
    Il existe deux solutions; soit ont passe par un système de compteur soit on génère une clés aléatoire de type UNID.

    Les compteurs :

    Pour ce qui est des compteurs j'utilise la solution de Jonathan Coombs :

    Generating sequential numbers in replicated applications

    Je n'ai jamais eu de mauvaises surprises avec cette solution. A première vu cela peut paraître un peu lourd pour un simple compteur mais je peux vous assurer qu'il n'y a rien à jeter. A utiliser sans modération ! >
    Je crois qu j'en ai déjà parlé dans un autre post mais l'utilisation des documents profil pour un compteur est a proscrire. Vous aurez de trés mauvaises surprises principalement du au fait que les documents profils sont mis en cache par les clients notes au moment de l'ouverture de la base et ne sont rafraîchis qu'a la fermeture de la base... De plus il arrive de temps en temps que le document profil se "vide" et disparaît sans explication.


    Les clés uniques

    Le UNID est une clé unique pourquoi ne pas l'utiliser ? Tout simplement à cause des copier/coller qui font perdre le UNID des documents. Ce serait dommage de perdre tous les liens à un document suite a cette opération. Le principe du calcul du UNID est bon car il inclut dans son algorithme une notion temporelle. De ce fait aucun doublon n'est possible. Voici comment je reproduis le système de calcul du unid :

    Version formule :
    varUnique := @Unique; varPrefix := @Word(varUnique;"-";1) ; varSuffix := @Word(varUnique;"-";2) ; varYear := @Right(@Text(@Year(@Now)); 2); varMonth := (@Month(@Now)-1) * 31 ; varDOY := @Text(varMonth + @Day(@Now)); varPrefix + varYear + varDOY + "-" + varSuffix
    Version lotusscript :
    Function fCreateUniqueID As Variant 'Creates Unique ID, 4 letters from @Unique, a dash, the 2 digit year, '3 digit julian date, 5 digit # seconds since midnight 'Example: RBRT-04112312345 Dim dt As NotesDateTime Dim x As Long, y As Long Dim u As Variant Dim v As String Set dt = New NotesDateTime(Today()) u = Evaluate(|@Unique|) v = Cstr(u(0)) x = Datenumber(Year(dt.LocalTime),Month(dt.LocalTime),Day(dt.LocalTime)) y = Datenumber(Year(dt.LocalTime),1,1) fCreateUniqueID = Strtoken(v,"-",1) & "-" & Format$(Today,"yy") &_ Format$((x-y)+1,"000") & Format$(Timer,"00000") & fGenRndString(2) End Function Function fGenRndString(tmp_length As Integer) As String Dim x As Integer, digit As Integer Dim result As String For x = 1 To tmp_length digit = Round(Rnd*16,0) ' Generate number between 0 to 15... result = Hex(digit) If result = "10" Then result = "A" fGenRndString = fGenRndString + result Next x End Function


    On l'oublit souvent mais la fonction @unique ne sert pas seulement à elever les doublons d'une liste. On peut l'utiliser pour nous générer une chaine unique.

      18:47:11 |  


    PermaLinkLa route est droite mais la côte est rude
    Pour ceux qui maîtrise l'anglais et qui ont 10 minutes devant eux, voici une discussion apparu avant les vacances de noël sur le forum lotus.
    La discussion a été initiée par un développeur un peu déprimé sur son avenir autour de Domino et surtout sur le fait qu'il devrait à terme se "taper du websphere".
    Les réactions de divers Jedis Notes par mis lesquels Ben Langhinrich, Stan Rogers et Ed Brill (excusez du peu...) sont excellentes est pleines d'informations intéressantes.

    A savourer ici.


      19:57:15 |  


    PermaLinkBonnes fêtes à tous !










    Je vous présente mes meilleurs voeux autant personnels que professionnels, pour l'année 2006, et vous remercie de vos visites et de votre soutien.

    2005 a été pour moi une année fabuleuse !

    J'ai tout d'abord passé plusieurs mois en Suisse où j'ai travaillé pour la fédération internationale de la Croix Rouge. Ce fut une expérience humaine et technique inoubliable (pour ma carte fréquence plus aussi -> j'ai 25000 miles !).

    J'ai créé ma société (la mienne à moi tout seul !) qui propose des prestations d'expertises en .net et bien sûr Domino (Admin et dev).
    C'est le début d'une grande aventure. Pour l'instant tout va bien mais vous savez comme moi que cela va très vite dans un sens comme dans l'autre (rappelez vous 2002....). Je passe bien plus de nuits blanches qu'avant, les cheveux blancs ne devraient pas tarder. Ce doit être le prix de la liberté...

    J'espère que 2006 sera aussi fructueuse !

    Donc pour fêter cette nouvelle année, je me suis offert un hébergement chez dominodeveloper.net. Vous n'avez rien remarqué en entrant sur ce site ?

    Pour vous c'est :
    -> Beaucoup plus rapide (vous trouvez pas que la neige elle tombe plus vite )
    -> Disponible à 99.9% (c'est ce qui disent dans leur pub... je ne sais toujours pas 99.9% de quoi ?!)

    Pour moi c'est :
    -> Plus de pc qui tourne toute la journée dans le bureau...
    -> Plus de coupure EDF qui kille le site... Quand ce n’est pas mes filles qui m'éteignent l'ordi...
    -> Plus de facture EDF de la mort.

    Si vous voulez plus de détail sur l'hébergement vous pouvez aller ici (j'ai pris le plan 1)

    Merci encore à vous et bon réveillon !  

      08:29:08 |  


    PermaLink1 mois de plus
    Une bonne nouvelle.

    Pour vos certifications, si vous avez "oublié" de passer vos mises à jour V6 vous avez un mois de plus :

    Notes Domino 6/6.5 update exams to be retired on January 31, 2006

    D'autre part les Self Test Sofware pour la mise a jour V7 sont déjà disponible :

    Self Test Software now offers practice tests for Notes Domino 7 update exams

      16:54:35 |  


    PermaLinkNotes c'est quoi ?
    Pour éviter de galèrer à expliquer ce qu'est et ce que fait Notes... Julian Robichaux nous facilite les choses :

    What Is Notes

      15:16:30 |  


    PermaLinkWeb Group Management Tool
    Voici un de mes derniers développements. Il s'agit d'un outil de gestion de groupe.
    Cet outil donne à vos utilisateurs la possibilité de gérer les groupes dont ils sont gestionnaire ou propriétaire. A ma connaissance il n'existe pas d'outil similaire sur le marché. Pour ceux qui envisage de passer en full web ou qui le sont déjà c'est la meilleure façon de continuer à laisser aux utilisateurs la maîtrise de leurs groupes. On peut aussi parfaitement envisager d'intégrer cette application dans un intranet.

    Voiçi une version de démonstration

    Login : "1 test"
    Mot de passe : "passe"

    Cette application est indépendante du names.nsf. Pas besoin de modifier son modèle. La synchronisation des modifications se fait automatiquement par agent.

    Si cet outil vous intéresse ou si vous voulez plus de précisions sur son fonctionnement, faite moi signe .

      13:33:02 |  


    PermaLinkTutoriel des Certifications
    Pas mal de monde m'ont déjà demandé qu'elles étaient les démarches pour passer une certification. Voici donc un petit tutoriel :

    Il exisite deux organismes pour passer les certifications IBM/Lotus. Il s'agit de Prometric et de Vue (non non pas le truc pour nettoyer les lunettes ).
    Je ne connais pas de difference entre ces deux organismes. Le choix se fera en fonction du centre de formation agréé le plus proche de chez vous. Vous avez la liste de ces centres de formations sur les deux sites.
    Pour ce qui est du coût d'une certif, il est de 140 euros. Et si on la loupe, il faut repayer...c'est comme le permis de conduire en fait...

    Une fois le centre de formation choisit, je vous conseille de téléphoner pour réserver votre place (prometric : 0800 807790 et Vue : 0800-904757).
    Votre interlocuteur vous dira les dates et les horaires disponibles.
    Vous n'avez plus qu'à vous rendre au centre de formation 1/4 d'heure avant le test avec un piece d'identité.

       |  


    PermaLinkDes rencontres
    Je viens de faire un petit tour en Suisse et j'en ai profité pour rencontrer Lionel Conforto (www.double-six.org). On est allé manger une fondue aux champignons à tomber par terre ! Bon j'imagine que vous en avez un peut rien a faire de la fondue  Mais au cours de cet excellent repas je me suis rendu compte que « l'univers » Domino était relativement petit. On connaissait pratiquement les mêmes personnes. Ce microcosme « actif » autour de Domino n'est pas si grand. C'est à la fois rassurant car il a le mérite d'exister mais décevant de par sa taille.  

      En tout cas les rencontres extra-professionelles de ce genre sont trés enrichissantes et permettent de nouer des liens solides. C'est, je crois, ce qui est le plus important. Compétence mis a part, Il est clair que c'est le réseau relationnel qui permet de s'en sortir dans les coups durs. J'ai pu le vérifié plusieurs fois... 

      19:53:20 |  


    PermaLinkCertifications en question
    Beaucoup de choses sur le grill en ce moment... En fait depuis ce matin j'en ai une en moins car j'ai passé et réussi la certification 190-601 (mise à jour dev V5->V6). Mes certifications m'ont bien servies au départ mais je dois avouer que je les remet souvent en causes.
    Ces certifications valident un niveau de compétences à un moment précis mais ne reflettent en rien la valeur réelle d'un consultant. Sa capacité d'analyse, sa capacité d'écoute, son relationnel, sont autant de choses qui compte tout autant que son niveau théorique.

    Alors pourquoi continuer à les passer ?

    Tout simplement parcequ'un client qui reçoit 10 cv pour une prestation regarde, par manque de temps, deux choses : Son niveau technique et son prix.
    J'ai déjà plusieurs années d'expériences (8...) et je n'ai eu qu'un seul entretient dans le but de valider si ma personnalité était "compatible" avec les intervenants du projet. Ca veut en dire long sur la "déshumanisation" des processus de choix des prestataires.

      20:44:22 |  


    PermaLinkArrayInsert
    Voici une fonction qui peut vous rendre service. En tout cas j'aurai aimé tomber dessus et ne pas être obligé de la coder . Le but de cette fonction est d'insérer dans un array, une valeur à une position donnée. Voivi la fonction :

    Function ArrayInsert(sArray As Variant, intPos As Integer,sValue As Variant)

    'sArray correspond à votre tableau
    'intPos est la possition a laquelle vous voulez inserer votre valeur
    'sValue est la valeur que vous souhaitez inserer (peut être un string ou une data ou tout autre valeur)

    Dim nSize As Variant
    Dim bRedimSize As Variant

    nSize = Ubound(sArray)
    bRedimSize = True

    If bRedimSize Then
    nSize = nSize + 1
    Redim Preserve sArray(nSize)
    End If

    If intPos < nSize Then
    For i = nSize To intPos + 1 Step -1
    sArray(i) = sArray(i - 1)
    Next i
    sArray(intPos) = sValue
    Elseif intPos = nSize Then
    sArray(nSize) = sValue
    End If

    End Function

    Ceci peut vous servir aussi pour les NotesItems

      08:07:35 |  


    PermaLinkSortir des vues privées... en V6
    Les vues privées sont des vues spécifiques à un utilisateur, elles peuvent être sur serveur ou sur client. Ces vues permettent principalement de bénéficier d’une sélection de documents basés sur le nom de l’utilisateur (@username) et c'est leur principale utilité.

    Ces vues posent souvent problème car elle sont privées à un utilisateur et ne peuvent être supprimée, ou mise a jour, seulement par celui-ci. De plus les vues privée côté client génèrent un trafic réseau important en rapatriant sur le client l’ensemble des données nécessaires à leurs constructions.

    En conséquence on les utilise le moins possible, lorsqu'on ne peut vraiment pas faire autrement.

    Depuis la version 6, il existe la commande @setviewinfo qui permet avec l’option [setfilter] de filtrer une vue sur une colonne. Ce filtre se fait côté client et ne demande pas d’effort particulier au serveur. A l’aide de cette commande on peut donc reproduire le fonctionnement des vues privées en basant notre filtre sur le nom de l’utilisateur.

    Cette commande peut être utilisée dans des actions ou des entrées de plan mais pas dans les évènements de vue (QueryOpen ou QueryClose) contrairement a ce qui est indiqué dans certaines technotes. De plus, on ne peut pas appliquer un filtre sur un autre et si l’on souhaite modifier le filtre d’une vue en cour d’affichage, on est forcé de fermer la vue et de la ré-ouvrir avec le nouveau filtre.

    Après la pause d’un filtre sur une vue, les tries sur colonne ne sont plus possible (comme dans un picklist ou une vue intégrée). De ce fait il est indispensable de supprimer tout ces tries sur colonne car ils grossissent inutilement l'index de la vue.

    Problème :
    A partir du moment ou un filtre est activé, il devient actif sur toutes les vues. Ce bug est référencé par la technote 1204481. On peut le contourner en « réinitialisant » ce filtre par cette commande :
    @SetViewInfo([SetViewFilter]; ""; "" ; 1);
    Tout appel à une vue devra donc comporter cette ligne après l’OpenView.

    Exemple :
    @SetTargetFrame("docu-vue");
    @Command([OpenView];"V_CIRCUIT")
    @SetViewInfo([SetViewFilter]; ""; "" ; 1);
    Des tests ont été effectués et ils montrent que les vues cachées ainsi que les picklists ou autre @dblookup/@dbcolumn ne sont pas affectés par ce bug. Il convient tout de même de rester vigilant car cette fonction n’a manifestement pas été bien codée/analysée par IBM



      18:34:36 |  


    PermaLinkImport de fichier au format CSV
    Sur les différends forum consacrés à lotus on trouve énormément de post au sujet de l'échange de données entre Domino et Excel / Word.
    Dernièrement j'ai dû faire un script d'importation de fichier au format CSV dans Domino. Le script devait s'exécuter côté serveur et ne devait pas utiliser OLE pour réaliser l'intégration. Malgrés la multitude de source mis à disposition (forum, Sandbox...), il m'a était trés difficile de trouver un algorithme d'import de fichier csv acceptant les délimiteurs de texte. C'est pourtant fréquent de trouver des délimiteurs de texte (") en CSV...

    Quoi qu'il en soit voici ce petit bijou trouvé au fin fond de la sandbox :

    Function getDataArray(dataLine As String, delim As String, escape As String) As Variant
    Dim dataColl() As String
    'where x is char position of the specified delim and y is the char position of the delim escape char
    Dim x, y, startPos, endPos, length, index, nextStartPos As Integer
    Dim delimLen ,escapeLen, charLen As Integer
    Dim dataArray() As String

    startPos = 1
    endPos = 0
    index = 0
    length = Len(dataLine) + 1
    delimLen = Len(delim)
    escapeLen = Len(escape)

    While ( startPos =< length)
    x = Instr(startPos, dataLine, delim )
    y = Instr(startPos, dataLine, escape )

    'ensures the correct delim is being used
    If ( ((y > 0) And (x < y)) Or ((x > 0) And (y = 0)) ) Then
    'value of data line is not escaped
    endPos = x
    nextStartPos = endPos + delimLen
    Elseif (x = 0) Then
    endPos = length
    nextStartPos = endPos + delimLen
    Else
    'value is escaped
    startPos = startPos + escapeLen
    endPos = Instr(startPos, dataLine, escape + delim)
    If (endPos = 0) Then
    'end of line reached
    endPos = length
    End If
    nextStartPos = endPos + escapeLen + delimLen
    End If
    charLen = endPos - startPos
    Redim Preserve dataArray(index) As String
    dataArray(index) = Mid(dataLine, startPos, charLen)
    index = index + 1
    startPos = nextStartPos
    Wend
    getDataArray = dataArray
    End Function

    Ce script stocke dans un variant toutes les valeurs d'une ligne csv en prenant en compte les délimiteurs et pour l'avoir tester, je peux vous dire qu'il fonctionne à merveille !

      17:57:13 |  


    PermaLinkDoclink
    Dans la famille "non documenté" je voudrais l'arrière petit neveu du coté de ma tante

    Un truc très "drôle" avec Domino c'est qu'on en apprend tous les jours :

    Un client m'appelle et me dit :
    Dans ton application lorsque l'on fait des doclink et que l'on colle le résultat il apparaît l'url du document à la place du doclink classique.
    J'avoue que j'ai eu du mal à le croire mais après vérification, ben c'est vrai....
    Une rapide recherche m'a permis de tomber sur une personne qui a eu le même problème que moi et qui m'a donné la solution que voici :
    Lorsque l'on ajoute dans un document un champ nommé "URL", le doclink prend la valeur de ce champ à la place de son classique lien doc...

    J'ai donc renommé mon champ et là miracle ça marche !

      Comme dirait un de mes client : "Une noteserie de plus..."

      12:56:21 |  


    PermaLinkTroubleshooting Script for Notes Scheduled Agents (and Agent Manager)
    Un petit lien pour ceux qui auraient des problèmes à faire fonctionner un agent programmé :

    Troubleshooting Script for Notes Scheduled Agents (and Agent Manager)

      09:21:13 |  


    PermaLinkWhat'sNew In Domino 7
    Comme vous le savez Domino 7 est sortie il y a peu. Si vous vous référez à l'aide de Domino pour connaître les nouveautés de cette version vous risquez d'être déçus...

    En fait la liste des nouveautés énoncées dans l'aide n'est vraiment pas exaustive. Du coup Jake Howlett a mis à notre disposition un wiki "What's New In Domino 7" qui regroupe pas mal de nouveautés non documentées..

      08:56:40 |  


    PermaLinkND7 FAQ










    DominoPower est un webzine mensuel dont je vous conseille vivement la lecture. Ce mois-ci ils focalisent leurs articles sur la sortie de la version 7.

    J'ai particulièrement apprécié cet article qui est en fait une interview du "lead Domino product manager" et du "Business Unit Executive" par les lecteurs de DominoPower.

    On y apprend pas mal de choses aussi bien sur la stratégie future de lotus concernant domino que sur des aspects plus technique comme par exemple comment convertir au format NSFDB2 une base notes standard :

    DominoPower reader Pat Schaper: In a step by step approach, how do you upgrade existing Notes applications and Domino servers to DB2NSF for environments that do not already have a DB2 server?

    Ed and Rob: This is a simple process. Start by installing and configuring a Domino 7.0 server and a DB2 server. Then to convert a NSF based app to a DB2 enabled notes database, do one of the following on a Domino server that has been DB2 enabled:

    create a new copy
    create a new replica
    run the Compact command


      08:12:54 |  


    PermaLinkJessy mon amie
    Pas trop longtemps aprés avoir acheté mon nom de domaine "domlike.net" je reçois ce gentil mail d'une certaine Jessy... :



    En gros ils ont vu que je n'avais acheté que le .net et ils ont donc acheté le .com du même nom. Vous imaginez bien le but de l'affaire : Faire payer 89$ un nom de domaine qui en vaut 15$...

    Si encore elle avait envoyé une photo ...

      08:43:15 |  


    PermaLinkMessage de liaison
    Utilisez-vous souvent les masques de liaison ?
    Avant qu’un client m’en parle je ne les avais jamais utilisés ! Pour que tout le monde sache de quoi je parle en voici un aperçu :



    Pour les utiliser, placez vous sur un document d’une base quelconque et faite Création – Mail – Spécial – Message de liaison.

    Bref, dans certains comptes les utilisateurs utilisent beaucoup cette fonctionnalité de Notes. Le problème c’est qu’en V6 ce masque, il fonctionne pas super bien. Une technote décrit ce problème : 1166533.
    Pour résumer, la recherche des utilisateurs (via touche F9) des champs noms de ce masque déconne a donf. La technote résume le problème et indique que lotus a pris en compte le bug mais depuis la 6.5.1… rien, pas de fix.

    Du coup je m’y suis attelé pendant un bon moment et j’ai fini par trouver comment corriger tout cela. La seule chose à faire c’est dans les propriétés du masque décocher « Add header to form »… tout simplement.

    Je me demande vraiment pourquoi Lotus ne passe pas plus de temps à essayer de résoudre les problèmes que leur remonte leurs clients ? Surtout quand la soluce et si bénigne ?

      07:06:21 |  


    PermaLinkCluster et destin
    Je viens de sortir un nouvel article sur l’optimisation et l’équilibrage de charge des clusters domino. En fait cet article date de 2001 mais il est toujours d’actualité. J’avais promis un article sur Microsoft Web Application Stress Tool et il devrait venir lui aussi pour bientôt…

    Sinon vos vacances se sont bien passées ? Moi j’étais tranquille sur l’île d’Oléron essayant de décompresser un maximum et d’oublier le boulot quand je croise ce panneau :



    C’est un signe… Je ne pourrais jamais m’en défaire

       |  


    PermaLinkKeyboard Event
    Lorsqu’on programme sous Domino, on est parfois obligé de passer par les API notes et windows. Programmation fastidieuse, laborieuse et souvent difficile à décliner sur toutes les versions de windows. Dans de nombreux cas c’est effectivement la seule alternative mais pas systématiquement.

    Je me suis souvent sortie d’impasses en générant des évènements clavier ou souris. En fait en générant les mêmes signaux systèmes que le ferais un utilisateur en tapant sur son clavier. Pour cela on utilise la méthode keybd_event de la librairie user32 commune à toutes les versions de Windows.

    Dans une Bibliothèque de script j’ai simplifié l’appel à cette fonction.

    Voici quelques exemples :

    Ctrl-Shift-F9 (ré indexation des vues):

    Keydown("CTRL")
    Keydown("SHIFT")
    Keydown("F9")
    KeyUp("F9")
    KeyUp("SHIFT")
    KeyUp("CTRL")

    Faire une impression écran:

    PressKey("PRINT_SCREEN")

    Afficher un aperçu avant impression en V6:

    ' Print Preview in R6
    Keydown("CTRL")
    Keydown("P")
    KeyUp("P")
    KeyUp("CTRL")
    PressKey("TAB")
    PressKey("TAB")
    PressKey("TAB")
    PressKey("TAB")
    PressKey("TAB")
    PressKey("TAB")
    PressKey("TAB")
    PressKey("TAB")
    PressKey("TAB")
    PressKey("TAB")
    PressKey("TAB")
    PressKey("TAB")
    PressKey("Spacebar")

    On peut aussi du même coup changer les options d’impressions (impression horizontale, nb de copie, etc…)

    Dans un masque relativement long, voici comment on peut faire, comme en web, un lien « haut de page » :
    PressKey("PAGE_UP")
    PressKey("PAGE_UP")



    Ceci nous permet énormément de choses et pour certaines impossibles autrement.

    Voici le lien vers l'exportation de la bibliothèque de script Keyboard Event.


       |  


    PermaLinkIcodex desktop skins
    Si vos utilisateurs utilisent que l’espace de travail pour travailler sous Notes et si vous trouvez l’interface vraiment « out to date », voici un utilitaire qui peut vous être utile.
    Ce petit utilitaire gratuit est édité par Icodex.


    Il vous permet de personnaliser à votre guise votre espace de travail. Il vous faut juste créer 6 images bitmap et le tour est joué.
    C’est très simple d’emploi et le résultat peut-être vraiment sympas.

    Voici le mien :



    Vous pouvez le télécharger ici.

      13:57:30 |  


    PermaLinkIdées reçues...
    Au fils du temps un développeur se forge un certain nombre de certitudes basés la plupart du temps sur ce qu’il a pu expérimenter et ce qu’on lui a transmit. De ces certitudes, ces évidences on m’en a transmis énormément. La plupart se sont révélées exactes mais un certain nombre n’était pas si fondé.

    Premier exemple :
    Pour une question de performance on m’a toujours dit que, dans un document, pour accéder à la valeur d’un item on devait privilégier cette syntaxe :
    NotesDocument.GetItemValue(NomItem, valeur)(0)
    A la syntaxe :
    NotesDocument.NomChamp(0)

    Je parle ici seulement des performances, il est évident que la methode GetItemValue a l’avantage d’avoir le nom de l’item dans ses paramètres et ainsi pouvoir rendre celui-ci variable.

    Bien voici les résultats sur une boucle de plus de 1500 documents :



    Oui, la methode GetItemValue est plus rapide mais seulement de 1% en moyenne... Il n’y a pas de quoi en faire une consigne de développement !

    Pour ceux que cela intéresse voici le code de l’agent


       |  


    PermaLinkTimer LotusScript
    Lorsque vous trouvez que l’agent que vous venez de développer est assez lent ou que vous souhaitez optimiser un code existant vous aurez sûrement besoin de calculer le temps d’exécution de certaine partie de votre code pour identifier les points de lenteur.

    Pour cela vous avez la possibilité d’utiliser le timer lotusscript. Il est très simple d’utilisation et permet d’aller jusqu’à une précision de l’ordre du millième.
    Voici comment on peut l’implémenter rapidement dans son code :

    '////////////////////////////////// INITIALISATION DES LOGS //////////////////////////////////
    Dim agentLog As NotesLog
    Dim startTime As Single
    Dim processingTime As Single

    Set agentLog = New NotesLog( "Agent log" )
    Call agentLog.OpenAgentLog
    Call agentLog.LogAction("Debut")
    '/////////////////////////////////////////////////////////////////////////////////////////////////

    startTime = Timer


    Votre code…

    processingTime = Timer - startTime
    Call agentLog.LogAction(" Execution de cette fonction en " & Format$(processingTime1, "0.00") & " secondes.")

    Le résultat peut-être consulté dans les logs de l’agent.



      08:46:37 |  


    PermaLinkMicrosoft Web Application Stress Tool
    Combien d'utilisateur web peut supporter mon application domino sur ce serveur ?

    On ne vous a jamais posé cette question ?

    Jusqu'a présent je répondais par un "Suffisamment" sur de moi pour qu'il n'y ai pas de doute possible.
    Par contre lorque l'on m'a dit qu'une application allait passer de 400 utilisateurs potentiels à 1200... J'étais bien moins sur de moi...

    Pour en avoir le coeur net j'ai donc procédé à une étude de montée en charge dans les règles de l'art. Pour cela j'avais besoin entre autre d'un outil de stress performant et si possible gratuit. Je me suis souvenu d'un article dans DominoPower magazine qui parlait de Microsoft Web Application Stress Tool. Cet outil gratuit de microsoft (non non y a pas d'erreur il est bien gratuit ) est une vrais petite merveille. Mon prochain article sera un mini tutoriel de Microsoft WAS.

    Le serveur en question est un PIII 900Mhtz avec 1Go de Ram et 32 Go en Raid1 (mirroir). L'application domino est une application standard sans traitement particulièrement gourment.
    Alors, d'aprés vous, combien ce serveur peut accueillir d'utilisateurs web simultanés et actifs? 50 ? 100 ? 200 ? 1000 ?

    La réponse : entre 90 et 100 utilisateurs

    En fait c'est le CPU qui est le point faible de cette machine. Cela apparaît clairement dans les statistiques renvoyées. Cela pourra vous aider à répondre la prochaine fois qu'on vous pose ce type de question...

      15:13:42 |  


    PermaLinkDomino est un taggeur !
    Ce week-end j'ai travaillé sur le référencement de ce site. C'est alors que je me suis rendu compte d’une chose fort désagréable. Domino se permet dans certains cas de rajouter des tags sans qu'on lui demande quoi que ce soit... C'est le cas du tag meta suivant :



    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta name="robots" content="noindex">
    ...

    Ce tag est très problématique dans mon cas car il indique au robot google (et autres) de ne pas indexer le contenu de la page !

    Quelques exemples concrets :
    www.lotusgeek.com
    www.codestore.net

    Aprés recherche je me suis rendu compte que ce tag est généré pas la tâche HTTP sur l'instruction ?OpenView avec paramètres. Comment passer outre ? La technote 1103294 est claire : Pas de solution pour supprimer ce tag.
    J'allais abandonner lorsque je me suis rappelé qu'un masque peut avoir plusieurs alias. J'ai donc ajouté deux alias à mon masque lié à ma vue ($$View template for mavue) de la manière suivante :

    $$ViewTemplate For BlogByCategory | $$NavigatorTemplate for BlogByCategory | D6Main3

    J'ai ensuite créé un simple navigateur avec le nom de BlogByCategory.
    A partir de là on peut appeler par url notre navigateur qui s'ouvre dans un masque avec notre vue intégrée (ouf !). Cliquez sur Article ou sur Blog et vous verrez l'url suivante :

    BlogByCategory?OpenNavigator&RestrictToCategory=Blog

    Et bien sûr sans ce tag de malheur.

      20:20:01 |  


    PermaLinkUn titre presque similaire...
    Ce problème m'a été posé par un client :
    Lorsque l'on sauvegarde un document on doit être averti si un autre document porte un titre similaire. Par similaire il entend égal ou presque égal... Comme vous pouvez vous en douter, le problème est dans le "presque".
    Après discution on est tombé d'accord pour dire qu'il y a avertissement lors de la sauvegarde si dans son titre un autre document possède au moins deux mots identiques de plus de 3 caractères. Vous me suivez ?

    Exemple :
    Titre 1 : Je rentre les moutons.
    Titre 2 : Je sort les moutons. <- pas d'avertissement
    Titre 3 : Je sort tout les jours les moutons <-- Warning

    Pour faire celà j'ai pas mal gambergé et je suis finalement parti pour la solution suivante :

    Sub Querysave(Source As Notesuidocument, Continue As Variant)

    Je vous passe les déclarations...

    'On transforme l'objet en liste de texte
    macro$ = |@Explode( "| & source.fieldgettext("Objet") & |"; " ")|
    Result = Evaluate (macro$)

    'On transforme cette liste en texte de type "Valeur1":"Valeur2" avec toute les valeurs supérieures à 3 caractères
    list1$=""
    i=0
    Forall v In Result
    If Len(v)>3 Then
    If i=0 Then
    list1$=|"|+v+|"|
    Else
    list1$= list1$ & |:"|+v+|"|
    End If
    i=i+1
    End If
    End Forall

    unid$=docCurrent.UniversalId

    'La formule suivante est inspirée de mon dernier post
    SearchFormula$={Form="document" & @Text(@DocumentUniqueId)<>"} &_
    unid$ & {" & @Elements(@unique(@trim(@replace(@Uppercase(} & list1$ &_
    {);@replace(@Uppercase(} & list1$ & {);@Explode(@Uppercase(Objet);" ");"");""))))>1}

    'on effectue la recherche
    Set collection = db.Search( SearchFormula$, Nothing,0)

    'Si il y a au moins une occurence, on averti l'utilisateur
    If collection.count>0 Then
    Messagebox...
    End If

    End Sub


      20:48:35 |  


    PermaLink@DBLookup et les listes de clés
    Aujourd'hui je suis tombé sur un petit os qui m'a permis de trouver une petite perle. Je m'explique. Ce qu'il y a de bien avec @dblookup c'est qu'on peut lui donner comme clé une liste de clés.

    Exemple:
    La formule suivante retourne une liste comprenant la valeur des champs "couleur" des documents Pomme, Poire, Pêche (ça marche aussi avec des voitures ou des oeufs de pâques) :
    list:= @DbLookup( "" : "NoCache" ; "Server" : "Database" ; "Fruit" ; "Pomme":"Poire":"Pêche" ; "couleur")

    Tout va bien dans le meilleur des mondes sauf que s'il n'y a pas d'enregistrement "Pomme" (par exemple), @DbLookup nous retourne une erreur. Pour ce prémunir de ce désagrément il nous suffit donc de mettre dans la clé seulement des valeurs existantes. Je sais qu'il y a une formule qui fait cela à merveille et je pars donc la chercher sur le gold forum. Et là je tombe sur ce post de Haydn Parker. Pas mal non ? Ce forum est plein de bonnes surprises.

    Pour finir j'utilise donc sa formule et cela donne :

    list1:="Pomme":"Poire":"Pêche";
    list2:=@DbColumn( "" : "NoCache" ; "Server" : "Database" ; "Fruit" ; 1);
    list3:=@replace(list1;list2;"");
    resList:=@unique(@trim(@replace(list1;list3;"")));
    list:= @DbLookup( "" : "NoCache" ; "Server" : "Database" ; "Fruit" ; resList ; "couleur")

    Et voilà, plus d'erreur !

      20:31:37 |  


    PermaLinkLes gouts et les couleurs
    Je ne sais pas vous mais côté design, il y a des jours ou je manque vraiment d'inspiration. Après avoir passé un quart d'heure à batailler avec Paint à chercher quelle couleur de bouton irait bien avec ma barre d'action jaune orangée, je suis allé faire un tour du côté de ColorMatch.

    Voici les couleurs que Colormatch m'a sortie :

    Mon jaune :
    Les couleurs assoties :

    Pour certaines couleurs c'est pas encore ça mais sinon c'est pas mal du tout.

    Ca peut peut être vous éviter quelques fautes de goût de ce type :
    www.funcar-auxerre.com

    J'ai envoyé le lien de colormatch au webmaster de funcar-auxerre...pas de réponse.

       |  


    PermaLinkEdito
    Après de longs mois de travail (7 jours en fait...), voici enfin mon blog à moi !

    Le but premier de ce blog est de partager mes réflexions et ce que je peux avoir de connaissance sur Domino.
    Bien sûr et surtout, vos retours m'intéressent grandement car exerçant en freelance et donc travaillant la plus part du temps seul, avoir des avis critiques est primordial pour moi. Enfin cela me permet aussi de me faire connaître auprès de clients potentiels autrement que par mes déplorables séances de phoning (c'est vraiment un métier à part le phoning...).

    Voici pour commencer un article sur les différentes façons de trouver (ou hacker pour les ados...) vos mots de passe HTTP sous Domino. Il existe maintenant des outils très performants que l'on doit connaître pour mieux les contrer (c'est pas de maître Yoga cette phrase ?!?)

       |  


    A propos

    Ce site est destiné à faire connaître mon travail d'expert Domino indépendant et à vous faire partager mes analyses, découvertes et humeurs autour de Lotus Domino et bien d'autres sujets.

    Hébergé sur ma Dedibox

    Bonne visite.
    A propos de moi

    Prénom: Julien
    Nom: Bottemanne
    Adresse: Toulenne (33)

    Originaire du Lot et Garonne, j'habite depuis maintenant 2 4 ans en Gironde. J'aime énormément cette région et je savoure avec ma femme et mes deux filles sa qualité de vie.

    email - julien@domlike.net

     Monthly Archive
     Search
    Contrat

    Tous le contenu de ce site est mis à disposition sous un contrat Creative Commons.

    Contrat Creative Commons

    Paypal

    RSS et autres

    Lotus Domino ND6 RSS News Feed RSS Comments Feed Geo URL RSS Validator Blog Admin Lotus Geek Open Notes Picture Database OpenNTF BlogSphere