AllyStats v0.4

Publié par Fabrice Michellonet sous le(s) label(s) , , le 14 octobre 2008

Un post très très rapide afin d'annoncer la sortie de la version 0.4 d'AllyStats. Cette version permet de :

  • utiliser le script dans tout les pays.
  • utiliser le script si vous possedez plusieurs compte sur des univers différents.
  • modifier la couleur de fond des graphiques.
  • meilleure proportion des graphs.
  • correction du calcul de la progression lors de l'export HTML

Toutes vos remarques ont étés prises en compte et je les intégrerais à mesure dans le script... il me faut juste un peu de temps... libre

OGame Skript [FR] v0.3

Publié par Fabrice Michellonet sous le(s) label(s) , , le 26 septembre 2008

Depuis l'annonce de la première version Française d'OGame Skript sur le forum officiel OGame, les choses ont pris une bonne tournure. En effet l'accueil qui lui à été réservé à été plutôt bon, plusieurs personnes m'ont gentillement aider à corriger les coquilles qui se sont faufilées par ci par là, certains allant même jusqu'à poster les corrections nécessaires dans telle ou telle regexp.

Je ne pouvais rêver mieux... encore merci à tout ceux qui participent à améliorer le script.

Ainsi grâce au travail de tous, j'ai le plaisir de releaser la version 0.3 de cette traduction Française du script qui comporte toutes les corrections demandées sur le board OGame.Pour les plus préssés, le script est diponible ici le temps qu'il soit publié sur le site OGame Skript officiel; Fallait bien que je vous fasse profiter de la primeur.

Pour cette seconde release, il n'y aura pas de Changelog, car je savais qu'il y aurait beaucoup de remontées, mais promis la prochaine fois, je tracerais exactement tout les changements.

ASCMD : Parametrez vos scripts SSAS.

Publié par Fabrice Michellonet sous le(s) label(s) le 22 septembre 2008

Beaucoup d'entre vous doivent dors et déjà connaitre cette astuce qui facilite les problématiques de déploiement de vos cubes Olap (Sql Server Analysis Services); Pour ma part je n'ai découvert qu'aujourd'hui qu'il est possible de parametrer les scripts XMLA, MDX et DMX lors de leur execution via ASCMD.

Petit retour en arrière, ASCMD est un utilitaire en ligne de commande qui permet d'exécuter des scripts sur une instance d'Analysis Services locale ou distante. Le code source est fournit dans les samples de SQL Server sous forme d'un projet C# à compiler.

Dans le cadre d'une livraison chez un de vos client par exemple, ASCMD s'avère fort utile car il permet de scripter toutes les opérations possible que vous souhaiter effectuer; ceci vous affranchit de la lourde tache des backup/restore couramment usités dans la version 2000 d'Analysis Services.

Prenons un exemple concret; Le script suivant, permet de modifier le nom du serveur sur lequel est disponible la source de données relationnelle :


<Alter ObjectExpansion="ExpandFull" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Adventure Works DW</DatabaseID>
<DataSourceID>Adventure Works DW</DataSourceID>
</Object>
<ObjectDefinition>
<DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xsi:type="RelationalDataSource">
<ID>Adventure Works DW</ID>
<Name>Adventure Works DW</Name>
<ConnectionString>Provider=SQLNCLI.1;Data Source=$(ServerName);Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=AdventureWorksDW</ConnectionString>
<ImpersonationInfo>
<ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>
</ImpersonationInfo>
<Timeout>PT0S</Timeout>
</DataSource>
</ObjectDefinition>
</Alter>

Notez la déclaration et l'utilisation de la variable $(ServerName). Celle-ci va pouvoir être définit lors de l'execution de la manière suivante :

ascmd.exe -S localhost -i modifyDS.xmla -v ServerName=My_production_server

Cette fonctionnalité ouvre de nouveaux horizons pour les déploiements, plus besoin de demander à vos interlocuteurs de faire ceci ou cela;

  • Scriptez vos actions sous forme de scripts XMLA parametrés.
  • Livrez un fichier ini, seul point que votre interlocuteur devra éditer afin de le faire correspondre à son environnement.
  • Demander à votre interlocuteur de lancer le seul fichier fichier bat fournit réunissant l'ensemble des commandes à executer.
  • Vous êtes zen, vous venez de considérablement diminuer les chances d'erreurs du à une mauvaise manipulation de votre interlocuteur.

Bon déploiements à tous.

OGame AllyStats

Publié par Fabrice Michellonet sous le(s) label(s) , , le 21 septembre 2008

Je vous l'avais annoncé à demi mots le 12 septembre dernier (OGame Skript [Fr] releasé), j'allais écrire au moins un script greasemonkey pour OGame. Voila c'est chose faite, enfin pour une béta :)... je vous présente AllyStats; L'idée est d'améliorer la page statistique d'alliance (merci ptitony & les Freeglad pour l'idée) de la manièere suivante :

image 1 sur 4 image 2 sur 4 image 3 sur 4 image 4 sur 4

Si ce que vous avez vu vous plais, n'hésitez pas à l'installer.

Pré-requis

Il est possible qu'il vous soit demandé de redémarrer Firefox; Dans ce cas, surtout faites le.

Installation

Synchronisation

Pour les utilisateurs avancés, il vous est possible de (re)charger les statistiques d'une période précédente en suivant le formalisme JSON suivant :


[
{"Name":"Player 1","Points":"1000","Homeworld":"[x:xxx:xx]"},
{"Name":"Player 2","Points":"1242","Homeworld":"[x:xxx:xx]"},
...
{"Name":"Player N","Points":"758","Homeworld":"[x:xxx:xx]"}
]

Cette feature vous permettra également de synchroniser les stats de tout les membres de votre alliance lors de la première installation.

Utilisation

Elle est des plus simple; dès la première utilisation AllyStats va stocker les points de chaque joueur de votre alliance. A mesure que leur points augmentent, le graphique qui est apparu dans la nouvelle colonne mettra en évidence leur progression. Si vous souhaitez surveiller l'évolution de vos coéquipier de manière hebdomadaire, il vous faudra réinitialiser le classement en utilisant le bouton prévu à cet effet (le second). Finalement, si vous disposez également d'un forum ou vous vous retrouvez avec vos amis, AllytStats vous donne la possibilité d'exporter vos progressions au format html & bbcode

N'hésitez pas à me dire ce que vous en pensez, ainsi que me faire part de toutes vos remarques constructives.

Enjoy

Dojo Lightbox

Publié par Fabrice Michellonet sous le(s) label(s) le 17 septembre 2008

Aujourd'hui je me propose d'illustrer la mise en place de lightbox à la sauce Dojo comme toujours. Pour ceux qui n'en ont jamais entendu parler, dépêchez-vous cliquez sur les images ci-dessous.

image 1 sur 3 image 2 sur 3 image 3 sur 3

L'implémentation est fortement inspirée de la librairie de Lokesh Dhakar; d'ailleurs l'équipe Dojo n'hésite pas à le dire ouvertement ici. Mais alors quel intérêt à utiliser l'implémentation faite par Dojo plutôt que la version originale? Pour être franc, la seule raison qui puisse vous faire choisir celle de Dojo est le fait d'utiliser déjà ce framework, car honnêtement la version originale est esthétiquement un tout petit peu mieux.

J'entends déjà certain d'entre vous dire, mais pourquoi ne pas utiliser lightbox et Dojo conjointement. C'est effectivement possible, mais sachez que lightbox se repose sur le framework scriptaculous lui-même reposant sur prototype.

Voila... vous commencez à comprendre, vouloir les faire cohabiter signifie aussi ajouter les 2, 3 plus gros framework javascript dans vos pages; bonjour les performances!

Le choix se fait donc assez rapidement, si vous utilisez déjà Dojo alors utilisez leur implémentation; si par contre votre coeur balance plutôt pour scriptaculous ou prototype alors vous préférerez l'implémentation de Lokesh Dhakar.

Bon passons aux choses sérieuses, voici ce qu'il vous faut faire pour utiliser cette jolie feature.

Import des css tundra et image



Notez l'url pointant vers la seconde css (image.css). La documentation officielle référence Lightbox.css, mais c'est malheureusement une erreur.

Import de la fonctionnalité dans un bloc javascript


dojo.require("dojox.image.Lightbox");

Il ne vous reste plus qu'a l'utiliser maintenant de la manière suivante :



image 1 sur n

Notez l'utilisation de l'attribut group, qui vous permet d'enchainer les images d'une même série.

J'espère que cette présentation vous donnera des idées pour vos galerie d'images.

Les images utilisées dans l'exemple ci-dessus proviennent du site de Lokesh Dhakar, que je remercie bien évidemment.

OGame Skript [Fr] releasé

Publié par Fabrice Michellonet sous le(s) label(s) , le 12 septembre 2008

Ça y est c'est officiel OGame Skript est releasé en Français; j'ai d'ailleurs été intégré dans l'équipe.L'accueil qui lui est fait sur le forum officiel d'OGame y est plutôt bon.

Il s'agit la de ma première participation à un projet Open Source que je n'ai pas initié... et cela semble être une bonne expérience.

J'ai dans l'idée de proposer des Addons non officiels, alors repassez ici pour avoir des nouvelles.

Internationalisation OGame Skript

Publié par Fabrice Michellonet sous le(s) label(s) , le 8 septembre 2008

Ceux qui me connaissent savent que j'ai été piqué par le virus OGame depuis bientôt 2 ans. Depuis lors de nombreux groupes de scripteurs (Greasemonkey principalement) se sont formés pour essayer d'enrichir le jeu.

Certain de ces scripts ont étés abandonnées aussi vite qu'ils sont nés... d'autres sont toujours là; C'est le cas d'Ogame Skript qui vous l'aurez compris à ma préférence. Seul problème, à l'heure actuelle il n'existe qu'une version Allemande et une autre en Anglais. Pour ma part j'avais hacké le script dans mon coin histoire de pouvoir l'utiliser sur nos univers Français.

Depuis peu l'équipe Ogame Skript à mis en place un système de traduction de son script; alors il me semble qu'il est temps pour moi de contribuer à joli projet. Vous trouverez donc ici l'internationalisation fr pour OGame Skript. J'ai bien entendu proposé mes services directement à l'équipe en charge du projet... mais pour l'instant je n'ai pas eu de réponse.

La version actuelle n'est pas complètement traduite... mais bon elle vous donne déjà accès à la plupart des fonctionnalités.

[François Jehl] : Ouvrir SSAS 2005 sur l'extérieur en utilisant HTTP

Publié par Fabrice Michellonet sous le(s) label(s) le 26 juin 2008

François à publié un très bon billet (Ouvrir SSAS 2005 sur l'extérieur en utilisant HTTP) sur la façon d'implémenter une connectivité HTTP pour Analysis Services 2005.

Comme je lui faisais remarquer dans les commentaires, il est possible d'utiliser l'authentification intégrée de IIS afin que les crédentials du user soient automatiquement passés au serveur AS, ce qui permet de pouvoir facilement utiliser les rôles Olap. Cependant, il faut noter que sous Windows 2003 pour une raison qui m'est inconnue la délégation de compte pour les Administrateurs locaux de la machine ne fonctionne pas avec msmdpump.dll.

De plus, il est également possible d'effectuer la même manip sous Analysis Services 2000; Dans ce cas la Data Pump à placer dans le répertoire virtuel se nomme msxisapi.dll

Masquer la barre Blogger

Publié par Fabrice Michellonet sous le(s) label(s) le 24 juin 2008

J'ai vu pas mal de billets proposant des solutions permettant de retirer la barre Blogger qui est ajoutée automatiquement en en-tête des blogs. Certaines solutions sont basée sur des CSS, mais malheureusement celles que j'ai essayées ne fonctionnent pas, car la barre est en fait chargée dans un iframe

Reste alors la solution du javascript.

Voici donc une façon implémenter ça : Tout d'abord recherchez la balise body dans votre template html et ajoutez l'attribut onload comme suit.


<body onload='removeBloggerBar'>

puis dans un bloc script ajouter la fonction suivante :


function removeBloggerBar() {
var bloggerBar = document.getElementById("navbar-iframe");
bloggerBar.style.display = "none";
}

Enregistrez le tout et... voila, la barre n'est plus visible sur votre blog.

Comme d'habitude j'en profite pour faire un peu de pub à Dojo; Ci-dessous la même solution basée sur ce framework, vous verrez qu'il n'y à que très peu de choses qui changent.

Tout d'abord dans la section head :


<script language='javascript' type='text/javascript'>
dojo.require("dojo.parser");
// ...
dojo.addOnLoad(removeBloggerBar);
</script>

Puis il faut rajouter le code suivant soit dans un bloc script soit dans un fichier externe lié à votre page.


function removeBloggerBar() {
var bloggerBar = dojo.byId("navbar-iframe");
bloggerBar.style.display = "none";
}

Le résultat est identique, la barre Blogger disparait.

Enjoy

Overflow : l'attribut oublié.

Publié par Fabrice Michellonet sous le(s) label(s) le 20 juin 2008

Hier, Jérome Berthaud, me parlait d'une découverte qu'il avait faite lors de son escapade nocturne de la veille sur la toile. Il cherchait une solution au sempiternel problème soulevé par les éléments floatés à l'intérieur d'un autre élément de type bloc et surtout comment revenir dans le flux normal du positionnement. Voici un exemple de ce cas de figure :

<div id="outer">
<div id="inner"> <h2>A Column</h2> </div>
<h1>Main Content</h1>
<p>Lorem ipsum</p>
</div>

L'idée ici, est d'avoir une colonne (d'identifiant inner) ne prenant qu'une petite partie de l'espace d'affichage, par exemple une barre de navigation. Et bien sur le reste de l'écran réservé au contenu principal du site. Il nous est bien évidemment possible de définir la taille de cette colonne, mais de par sa nature d'élément de block, le contenu principal va de facto se retrouver repoussé en dessous d'elle, à moins de choisir de la floater.

Et voilà nous y sommes, si le contenu de la colonne se met a s'allonger et finalement dépasser la longueur du contenu principal, toute la mise en forme s'écroule comme un château de cartes. Alors comment s'assurer que le bloc principal s'ajustera toujours à la longueur de notre colonne?

Ayant moi même rencontré des dizaines de fois ce problème, je m'empresse de lui répondre qu'il faut rajouter à la fin du bloc (d'identifiant outer) un nouvel élément auquel on ajoutera la propriété css clear : both, mais que malheureusement cette solution salie le code html.

Effectivement, Jérôme convient qu'il s'agit d'une solution (d'ailleurs recommandée par le W3C), mais qu'une bien meilleure solution avait été apportée par Paul O’Brien. Celle-ci consiste à ajouter la propriété css overflow:auto sur le le bloc principal, et magie le bloc principal s'adapte a la hauteur de la colonne intérieur.


#inner
{
width:26%;
float:left;
}

#outer
{
background-color:#fff;
width:100%;
overflow:auto;
}

Cerise sur le gâteau, cela fonctionne sur tout les navigateurs excepté Netscpate 4...

C'est surement une des meilleure astuce css de ces derniers mois, merci Paul O’Brien pour l'avoir découverte et merci Jérôme de me l'avoir montrée.

Retour sur le Border Container

Publié par Fabrice Michellonet sous le(s) label(s) le 11 juin 2008

Je me suis peut-être un peu emballé sur le Border Container; je le pensais un peu plus flexible, mais finalement c'est moi qui ai sur-évaluer ses possibilités. Ce composant propose de séparer la zone d'affichage au maximum 4 parties distinctes :

  • une entête
  • une partie de gauche
  • une partie de centrale (obligatoire)
  • une partie de droite
  • un pied de page
border container

Partant de ce principe je divise donc ma zone d'affichage en 4, commence à styler le tout puis à mesure que je rajoute des billets la zone centrale grandit et je suis bientôt obligé d'ajouter un overflow dessus afin de pouvoir lire l'intégralité des posts. Arrgg, ce n'est pas ce que je souhaitais; j'aurais préféré que le scroll se fasse sur l'ensemble de la page et non pas uniquement sur la zone centrale ou une barre de scroll est du plus mauvais effet.

Alors bien évidement cela n'est pas incontournable, en sortant le ContentPane central en dehors du Border Container et de le positionner uniquement en CSS. Mais selon moi ce n'est pas une solution saine, car on se retrouve à devoir rajouter des div faisant office de clear ou de wrapper afin de faire tenir tout ce joli petit monde en place, avec une unique scrollbar sur le viewport.

En conclusion, le Border Container est vraiment génial lorsque l'on doit mettre en place un layout qui doit tenir totalement sur les dimensions du viewport sans scroll de page. Ainsi, pour ce blog j'ai finalement retiré ce widget et suis repassé sur un layout 100% CSS, car tant qu'a devoir "salir" le code html avec des balises de mise en page, je n'allais pas garder en plus des traitements javascript demandé par le composant

Dojo et Blogger, ça roule.

Publié par Fabrice Michellonet sous le(s) label(s) le 6 juin 2008

Comme vous pouvez le voir le templating du blog avance; Je me suis basé sur le template foliage, enfin surtout sur les artworks. Pour l'instant vous pouvez découvrir le layout global ainsi qu'une première version de la présentation des billets. A ce propos, je posterais bientôt un tutoriel "step by step" sur la mise en forme d'un widget, surement le widget Blog qui m'a valu de me faire quelques cheveux blancs.

Comme évoqué dans mon premier post Démarrage je me base sur le framework Dojo pour customiser ce blog. Ainsi la mise en forme 2 colonnes Header + Footer est réalisé avec le composant Border Container qui fonctionne de manière semblable à celle du BorderLayout de Java.

Pour utiliser Dojo j'avais la possibilité d'uploader la librairie sur une serveur ou bien d'utiliser la version "Online Cross Domain" hébergée par AOL.

Je ne pensais pas dire ça un jour, mais la version hostée par AOL fonctionne plutôt bien, les accès sont rapides etc... et surtout, pas besoin d'uploader ça quelque part. Comme quoi, y'a que les cons qui ne changent pas d'avis.

Bon aller sans plus attendre voici comment utiliser la version CDN de Dojo. Il suffit d'ajouter ces quelques déclarations dans la section head de votre page web.

<head>

/* ... */

/* utilisation de la version CDN de DOJO. */
<script djConfig="parseOnLoad: true, isDebug: false" src="http://o.aolcdn.com/dojo/1.1.1/dojo/dojo.xd.js" type="text/javascript"/>

<script language="javascript" type="text/javascript">
/* Déclaration des objets/widgets Dojo */
dojo.require("dojo.parser");
dojo.require("dojox.fx.easing");
dojo.require("dojox.fx.scroll");
</script>

/* ... */

</head>

Par la suite il vous suffit d'utiliser les nombreux widgets existants. En voici la liste complète.

Mais Dojo propose bien plus de chose que des widget, outre les facilités d'utilisations d'Ajax, aujourd'hui commune a beaucoup d'autres framework, Dojo embarque une grande quantité d'effets visuels. Pour en essayer un, essayez de cliquer sur le lien top qui se trouve dans le footer de ce blog.

Have fun.

Démarrage

Publié par Fabrice Michellonet sous le(s) label(s) le 1 juin 2008

Alors voila l'aventure recommence pour moi, je me suis laissé tenté une fois de plus par l'envie d'ouvrir un blog technique. Il faut dire que cette fois-ci c'est Aurélien qui m'a fait découvrir son blog ainsi que le système de template de Blogger. En réalité, c'est bien ce système customisable de template qui m'a donné envie de recommencer un blog.

Pour le contenu du blog vous y retrouverez mes découvertes aussi bien celles qui m'ont plus que celles qui m'ont déçues.

Bon, après ce petit billet d'introduction, je vous quitte afin de mettre au travail sur le template qui utilisera le framework Dojo; j'espère que vous apprécierez.