Twister's blog

Aller au contenu | Aller au menu | Aller à la recherche

jeudi, juillet 23 2009

Débugger du JavaScript sous IE...

Vous avez sûrement, comme moi tous pestés contre les messages d'erreurs JS d'Internet Explorer. Jamais capable de vous dire dans quel fichier l'erreur s'est produite... rien. Juste un message abscons avec un numéro de ligne et de caractère... Merci IE... Enfin, donc si comme moi vous en avez marre de galérer pour débugger du JS sous IE voici la solution simple et pratique : IE DebugBar

J'en profite pour vous donner le lien vers le non moins excellent IETester qui vous permet de tester (même sous Vista) vos site avec toutes les versions d'IE.

A vos souris :)

jeudi, juin 11 2009

Hadopi 'fini'

Et oui, le conseil constitutionnel à censuré la partie 'riposte automatique' de la loi. Ainsi si la haute autorité ne fera plus autorité. Donc Hadopi fini :)

Bon, ok j'en rajoute, la loi sur la "création & internet" n'est pas pour autant finie elle. Elle existe toujours et l'HADOPI aura toujours pour rôle de surveiller et d'envoyer des recommandés à qui mieux-mieux. Cependant la décision de couper la ligne ne pourra être prise que pas la justice (un juge quoi)... Résultat on va être assez tranquils. Les juges auront tellement de demandes à traiter qu'il ne s'en sortiront pas et que ça va finir par mourir de soit... Bon, les recommandés devraient avoir le pouvoir de décourager les jeunes pirates boutonneux qui téléchargent à longueur de journée :)

Allez savoir s'il y a un lien mais Amazon en a profité pour lancer son système de téléchargement de MP3 légal. J'ai bien dis MP3, donc sans DRMs de m*$*$* et donc compatibles avec TOUS les lecteurs! Allez y jeter un coup d'oeil, les prix écrasent toute conccurrence : http://mp3.amazon.fr

mercredi, juin 3 2009

Firefox + Applet Java + CSS Resize

Salut à tous, aujourd'hui un peu de technique. J'ai récemment eu à intégrer une applet Java dans une application Web. Le client voulait pouvoir passer l'applet en full screen avec un bouton.

J'ai été très surpris par le comportement de Firefox vis à vis de cela. En effet sous Internet Explorer pas de problèmes, on met l'applet dans un div avec des paramètres de tailles à 100% et lorsque l'on retaille le DIV l'applet suit les changements sans problèmes. Avec Firefox ca a été une autre paire de manches.

Ok l'applet était bien retaillée sous Firefox mais malheureusement celle ci était rechargée. En effet Firefox détruit et recréé une nouvelle instance de l'applet pour l'afficher à la nouvelle taille. Dans beacoup de cas cela ne sera pas un problème mais dans mon cas c'en était un gros. L'applet en question est JxCell qui est une applet (très bien faite d'ailleurs) permettant l'édition de fichier Excel en ligne. Résultat le retaillage du div provoquait le rechargement du fichier Excel et donc la perte des modifications effectuées avant le passage en full screen... ... ...

Bref il a fallut ruser un maximum. Ce qu'il faut savoir c'est qu'il ne faut surtout pas toucher au conteneur de l'applet alors que vous pouvez toucher à l'applet elle même.

Voici comment j'ai procédé : 1. Mettre l'applet au plus au niveau du HTML (directement dans le BODY) 2. Mettre un DIV à l'endroit où l'applet doit apparaître sous sa petite forme. Ce div doit avoir la taille que devra avoir l'applet. 3. Au chargement de la page déplacer l'applet par dessus le DIV afin de le recouvrir. 4. Pour passer en fullScreen il suffit de changer la taille de l'applet 5. Pour repasser en mode normal il suffit de rechanger la taille de l'applet pour recouvrir à nouveau le DIV.

Voici les bouts de codes nécessaires à la manip :

Dans le code le DIV de placement s'appelle appletDivPlace

JavaScript :

function getSize(objName) {
    var obj = document.getElementById(objName);
    return \[obj.offsetWidth, obj.offsetHeight\];
}

function getOffset(objName) {
    var obj = document.getElementById(objName);
    var curleft = 0;
    var curtop = 0;
    do {
	curleft += obj.offsetLeft;
	curtop += obj.offsetTop;
    } while (obj = obj.offsetParent);
    return \[curleft, curtop\];
}

function getWindowHeight()
{
    var myWidth = 0, myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' )
	{ //Non-IE
	    myHeight = window.innerHeight;
	}
    else
	{
	    if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
		{ //IE 6+ in 'standards compliant mode'
		    myHeight = document.documentElement.clientHeight;
		}
	    else
		{
		    if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
			{ //IE 4 compatible
			    myHeight = document.body.clientHeight;
			}
		}
	}
    return myHeight;
}

function fullScreen(editable) {
    var applet = document.Applet;
    var appletDivPlace = window.document.getElementById("appletDivPlace");

    var height = getWindowHeight() - 50 + "px";
    var width = document.body.parentNode.scrollWidth - 50 + "px"; 

    applet.width = width;
    applet.height = height;
    applet.style.top = "20px";
    applet.style.left = "0px";
}

function initApplet() {
    // move the applet over the div representing the position of the applet
    var applet = document.Applet
    var offset = getOffset("appletDivPlace");
    var size = getSize("appletDivPlace");

    applet.style.left = offset[0];
    applet.style.top = offset[1] + 20;
    applet.width = size[0];
    applet.height = size[1];
}

HTML:

<HTML>
<HEAD><TITLE>Applet</TITLE></HEAD>
<BODY onLoad="javascript:initApplet">
<APPLET id="applet" name="applet" .... />
...
...
           <DIV id="appletDivPlace" style="width:200px; height:200px"></DIV>
           <A HREF="#" onClick="javascript:fullScreen();">Fullscreen</a>
...
...
</BODY>
</HTML>

jeudi, mars 12 2009

Microsoft

Houlà, ça fait un moment que je n'ai rien posté. Il n'y a pas à dire, mon blog tombe en ruine :)

Bon, une fois n'est pas coutume, je fais faire de la propagande Microsoftienne !!! Et oui, je ne râle pas toujours contre eux!

J'ai passé pas mal de temps ces derniers jours à mettre en place un joli domaine à Concept sous Windows Serveur 2008 et je dois dire que j'ai été assez sidéré des progrès effectués par Microsoft depuis Serveur 2003!

En effet l'installation de 2008 se passe simplement, l'ajout des rôles du serveur pareil. C'est tout juste si l'on se rend compte de la création de l'arbre active directory lorsque l'on crée le domaine. Bref tout se configure simplement et en quelques cliques. Et pour une fois ça marche vraiment. Les actions sont bien prises en compte sans erreurs cachées à droite et à gauche, sans avoir 15 manipes à faire sous le manteau pour que ça passe.

La gestion du serveur est vraiment devenue simplissime, tout est intégré dans une console de gestion unique (DNS, DHCP, AD, Policies, ...). Le seul truc non intégré est la console de Exchange qui reste encore à part. Normal dira-t-on, Exchange 2007 est sorti avant Serveur 2008. Les fonctions de 2008 sont vraiment complète, les GPOs permettent une administration des droits utilisateurs de manière globale ou finement (groupes, domaines, ...). Le roaming est ENFIN pratique à utiliser et configurable de manière logique. C'est à dire que l'on est pas obligé le de roamer le dossier photo de tous les utilisateurs ou bien le dossier Téléchargement. On décide vraiment le QUOI et le OU du roaming, ça fait plaisir. Seul petit point noir, pour vraiment tirer parti de tout ça il faut avoir un Vista ou un 7... Résultat je me retrouve finalement avec un Vista 64Bits SP1 sur mon portable :/.

Donc voilà, pour une fois, bravo Microsoft, vous avez fait un bel OS là. A quelques bugs chiants prêts (comme être obligé d'avoir l'IPv6 d'activée pour pouvoir installer Exchange sans crash... pffff)

Pour les lecteurs, je vous tiendrai au courant de mes futurs déboires avec ce serveur. Car je suis certain qu'il y en aura. Faut pas rêver (et pas être trop gentil avec Krosoft ;)).

mardi, septembre 16 2008

Google Chrome II

Bon, comme certains me l'ont justement fait remarqué je n'ai pas donné de suite au billet sur Google Chrome. Il y a une raison à cela : j'ai été réellement déçu. En effet sur 2 de mes machines il est d'une lenteur incommensurable et sur l'autre il crash régulièrement. La lenteur est due au fait qu'il mette 15 à 30 secondes à commencer à charger la moindre page, il reste bloqué sur la résolution DNS. J'ai tout d'abord mis en cause mes serveurs DNS mais je l'ai testé sur 3 réseaux différents et donc 3 serveurs DNS différents, le problème a été le même à chaque fois. Finalement j'ai trouvé : il faut que je désactive tous les services annexes que j'ai sur mes cartes réseaux (VPN, cryptage et autre)... Ceci n'était pas envisageable puisque ces services me servent tous les jours pour le travail... Ensuite les crashs sont (comme pour firefox) dûs à l'utilisation de contenus embarqués (vidéos, pdf, ...)... Résultat j'ai tout désinstallé et je continue sur Firefox... Pour le moment...

mardi, septembre 2 2008

Google Chrome

Oui, je sais, cela fait des mois que je n'ai rien posté... et alors, en y'a qui ont un métier :p.

Bon je voulais juste vous prévenir de la sortie imminente de Google Chrome (dans la journée normalement). En attendant, au lieu que je vous fasse un gros discours dessus allez plutôt lire la BD que Google a réalisé à son propos : ICI

Bon allez, à plus tard (dès que j'aurais récupéré une version de Google Chrome :-) )

lundi, juin 2 2008

iMac Part II

Bon, voici 7 jours que j'ai mon iMac, alors petit point.

Franchement c'est une belle machine, je ne regrette pas. Le temps de copier les données de mon PC j'avais les deux côte à côte et le PC n'a pas tenu la comparaison...

Premièrement niveau bruit. Même avec le minimum vital mon PC fait 100 fois plus de bruit que l'iMac pour une puissance moindre, bon ok mon PC n'était pas équipé de tout ce qu'il faut pour faire moins de bruit. Cela dit c'est justement l'interêt de l'iMac, ne pas se prendre la tête. Il ne fait pas de bruit d'usine.

Deuxièmement, niveau utilisation. C'est quand même un OS assez agréable à utiliser une fois que l'on a compris deux ou trois principes. Ce que j'adore par dessus tout c'est la mise en veille et le réveille en 2 secondes, ça fait plaisir. Ensuite l'OS regorge de petits outils qu'il me manquait cruellement sous windows. J'étais obligé de passé ma vie connecté en PuTTY à un de mes Linux. Je parle de tout ce qui est outils ip/dns/... tout ce qui fait que windows est un OS BUREAUTIQUE et JEUX et les unix des OS professionnels. De plus Léopard vient avec une peuplade d'outils plutôt orienté 'for dummies' qui font que son utilisation d'usine est quand même très complète. Je pense nottament à tous les logiciels de la gamme iLife, la gestion des photos, des films et tout le tintouin devient vraiment facile.

Dernièrement, le rangement. Avant j'avais un bureau surpeuplé de bordel, des câbles partout qui retenaient la poussières. Des disques dur qui regorgeaient de drivers dont je ne savais plus quelle était la dernière version à force... Maintenant j'ai un bureau avec un clavier, une souris et un écran, des disques durs avec de VRAIES données utilisateurs, et non systèmes... Bref de l'ordre...

Je pourrais en rajouter des tonnes mais je pense que je vais en rester là pour ce soir :)

J'oubliais la preuve en image : Nouveau bureau

mercredi, mai 28 2008

Ca y est!

Ca y est, j'ai franchi le cap. Je viens de vendre mon PC et suis passé à la Pomme!

Lire la suite...

vendredi, février 29 2008

Informatique + 29/09

Putain d'après midi de merde!

15h50 : Coup de fil de 3 utilisateurs : Plus rien ne marche, les images ne se chargent pas. on ne comprends pas. Je leur répond qu'il doit y avoir un problème de serveur FTP, je regarde, pas de problèmes avec Filezilla.

16h10 : Après quelques test avec la librairie FTP que j'utilise (apache.commons.net.ftp) je me rends compte que mes listes de fichiers contiennent des null, null, null, null à la place de certaines entrées.

16h20 : J'appele les services infos pour savoir qu'elle connerie ils ont encore fait pour que ca arrete de fonctionner d'une seconde à l'autre. Évidemment un vendredi soir à 16h20 un we de départs en vacances plus personne n'est là...

16h40 : Je fini par avoir un gars plein de bonne volonté à l'autre bout de la France qui se connecte sur le serveur à Nanterre (logique de mon client : services infos dans le doux, serveurs à nanterre, cherchez pas à comprendre)...

/var plein, on vide... pas mieux...

17h : Finalement ca n'a pas l'air d'être le serveur, fillezilla et autre n'ont pas vraiment de problèmes, juste mon application qui n'est plus capable de récupérer les fichier envoyés dans la journée. Je teste sur notre serveur de développement, même problèmes. Serveur blanchi.

17h10 : J'avais remarqué des bizarreries sur les dates et que notement mon appli n'était pas capable d'afficher uniquement les fichiers qui étaient nouveaux. Tout à coup... TILT... 29/02/2008, année bisextile... TILT... Je recule la date du serveur de test d'un jour... pof, tout remarche... CHOUUUUUEEETTTE ! Je vais sur le site d'apache, je regarde le bug tracking et je trouve :

http://issues.apache.org/jira/browse/NET-190

J'adore les bugs qui se corrigent d'eux même, il suffit d'attendre le lendemain...

Avis à tous ceux qui utilisent Commons.net.ftp : bug tous les 4 ans à prévoir :p

mardi, décembre 18 2007

Castor, le mapping JAVA-XML

Bon, en attendant de finir la série des articles sur GoogleMap en voici un petit sur le JAVA et le XML.

Lire la suite...

- page 1 de 5