<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Harz62 &#38; Pho3nix Blog</title>
	<atom:link href="http://harz62.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://harz62.wordpress.com</link>
	<description>Hardware, Développement Web, applicatif et plus encore...</description>
	<lastBuildDate>Sat, 06 Feb 2010 17:07:33 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='harz62.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Harz62 &#38; Pho3nix Blog</title>
		<link>http://harz62.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://harz62.wordpress.com/osd.xml" title="Harz62 &#38; Pho3nix Blog" />
	<atom:link rel='hub' href='http://harz62.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Propriété text-shadow</title>
		<link>http://harz62.wordpress.com/2010/02/06/propriete-text-shadow/</link>
		<comments>http://harz62.wordpress.com/2010/02/06/propriete-text-shadow/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 17:05:13 +0000</pubDate>
		<dc:creator>harz62</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Développement Web]]></category>

		<guid isPermaLink="false">http://harz62.wordpress.com/?p=244</guid>
		<description><![CDATA[Alors en validant le style de ma page via le le validateur CSS W3C (c&#8217;est mieux quand c&#8217;est compatible quand même ), j&#8217;ai obtenu une erreur de syntaxe concernant la propriété text-shadow. Je rappelle que la propriété text-shadow sert à appliquer un effet sur du texte (ombre, effet glow&#8230;) à l&#8217;aide d&#8217;une ou plusieurs couleurs ainsi que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harz62.wordpress.com&amp;blog=9899300&amp;post=244&amp;subd=harz62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Alors en validant le style de ma page via le le validateur CSS W3C (c&#8217;est mieux quand c&#8217;est compatible quand même <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ), j&#8217;ai obtenu une erreur de syntaxe concernant la propriété <strong><em>text-shadow. </em></strong></p>
<p>Je rappelle que la propriété <strong><em>text-<strong><em>shadow </em></strong></em></strong>sert à appliquer un effet sur du texte (ombre, effet glow&#8230;) à l&#8217;aide d&#8217;une ou plusieurs couleurs ainsi que le décalage de l&#8217;effet para rapport au texte . Il se trouve que cette propriété est compatible avec la plupart des navigateurs (Internet Explorer comme par hasard ne fait pas partie du lot&#8230;) et mais les autres c&#8217;est à dire Firefox, Safari, Opera et Chrome réagissent tous de la même manière (preuve tout de même qu&#8217;ils suivent le standard W3C).</p>
<p>L&#8217;erreur affichée par le validateur W3C est la suivante:</p>
<blockquote><p><em>La propriété text-shadow n&#8217;existe pas en CSS niveau 2.1. mais existe en : gray 0 2px gray 0 2px</em></p></blockquote>
<p>Ici j&#8217;avais réglé la propriété à <em><strong>text-shadow : gray 0 2px</strong>. </em>L&#8217;erreur a l&#8217;air de m&#8217;indiquer que la syntaxe est fausse (sauf erreur de ma part), syntaxe je tiens à le signaler que j&#8217;ai trouvé sur le centre de développement Mozilla (appelé aussi MDC pour Mozilla Developer Center). Je change donc la valeur de ma propriété précédente par celle-ci <em> <strong>gray 0 2px gray 0 2px </strong><span style="font-style:normal;">à la place de</span></em><em> <em><strong>gray 0 2px</strong>.</em></em></p>
<p><em><em><span style="font-style:normal;">Après nouvelle vérification à l&#8217;aide du validateur, celui me renvoie encore la même erreur mais cette fois ci en m&#8217;aiguillant sur une nouvelle valeur: </span><strong>gray 0 2px gray 0 2px gray 0 2px gray 0 2px</strong>. </em><span style="font-style:normal;">Vous l&#8217;aurez probablement compris à chaque fois, il rajoute un élément gray 0 2px ça tourne en rond et l&#8217;erreur est toujours la.</span></em></p>
<p>Après moultes recherches au sujet de la propriété, je suis tombé sur un blog qui affirmait que la propriété ne faisait pas partie de la spécification CSS 2.1 de W3C (la version 2.1 est celle qui est utilisée par défaut pour la validation) et j&#8217;ai constaté par moi même qu&#8217;aucune référence vers <strong><em>text-shadow</em></strong> n&#8217;est présente dans  le document.</p>
<p>La particularité étant que la propriété <strong><em>text-shadow</em></strong><strong> </strong>existe en en CSS 2.0 et 3.0 et disparue entre temps avec la version 2.1 oO.</p>
<p>Donc si vous tombez sur une erreur à cause de ça n&#8217;oubliez pas de changer le type de profil dans les options supplémentaires du validateur pour éviter de mauvaises surprises&#8230;</p>
<p>Bon codage à tous ^^</p>
<br />Filed under: <a href='http://harz62.wordpress.com/category/informatique/developpement/developpement-web/css/'>CSS</a>, <a href='http://harz62.wordpress.com/category/informatique/developpement/developpement-web/'>Développement Web</a> Tagged: <a href='http://harz62.wordpress.com/tag/css/'>CSS</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harz62.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harz62.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harz62.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harz62.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harz62.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harz62.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harz62.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harz62.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harz62.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harz62.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harz62.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harz62.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harz62.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harz62.wordpress.com/244/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harz62.wordpress.com&amp;blog=9899300&amp;post=244&amp;subd=harz62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harz62.wordpress.com/2010/02/06/propriete-text-shadow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0c1b56a9097328ad1612358817ea2ac?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">harz62</media:title>
		</media:content>
	</item>
		<item>
		<title>LightBox</title>
		<link>http://harz62.wordpress.com/2009/11/30/lightbox/</link>
		<comments>http://harz62.wordpress.com/2009/11/30/lightbox/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 11:34:14 +0000</pubDate>
		<dc:creator>harz62</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Informatique]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://harz62.wordpress.com/?p=128</guid>
		<description><![CDATA[Introduction Aujourd&#8217;hui j&#8217;ai choisi de réaliser un tutorial dont le but est de créer une simple LightBox. LightBox est une fonctionnalité que beaucoup de personnes ont déjà rencontré lorsqu&#8217;elles naviguent sur des sites modernes sans vraiment en connaître le nom. Si on traduit le terme &#8216;LightBox &#8216;en français, cela  nous donnerait &#8216;boîte lumineuse&#8217; (ce qui [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harz62.wordpress.com&amp;blog=9899300&amp;post=128&amp;subd=harz62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>Aujourd&#8217;hui j&#8217;ai choisi de réaliser un tutorial dont le but est de créer une simple <strong>LightBox</strong>. <strong>LightBox</strong> est une fonctionnalité que beaucoup de personnes ont déjà rencontré lorsqu&#8217;elles naviguent sur des sites modernes sans vraiment en connaître le nom. Si on traduit le terme<strong> &#8216;LightBox</strong> &#8216;en français, cela  nous donnerait &#8216;boîte lumineuse&#8217; (ce qui ne représente rien de spécial dans la sémantique du web). Il s&#8217;agit en fait d&#8217;un formulaire/fenêtre mis(e) en avant avec un filtre transparent d&#8217;une couleur particulière dont le but est d&#8217;obliger l&#8217;utilisateur à se concentrer sur  un élément en particulier.</p>
<p>En fait, on place un filtre devant notre page (elle est cependant  toujours assez visible) et on place un formulaire/ fenêtre devant le filtre. Les éléments de la page en fond n&#8217;étant plus accessible, l&#8217;utilisateur n&#8217;a alors d&#8217;autre choix que de manipuler ce qui est affiché au premier plan ou bien de fermer la <strong>LightBox</strong> pour avoir à nouveau le contrôle sur la page.</p>
<p>Si vous ne voyez pas toujours pas et si vous avez déjà utilisé Windows XP, vous vous souviendrais peut être de l&#8217;effet de fondu mis en place lorsque l&#8217;on souhaite éteindre sa machine par l&#8217;intermédiaire démarrer -&gt; arrêter. on peut apercevoir une fenêtre offrant le choix pour mettre en veille, éteindre ou redémarrer la machine tandis que  le fond change de couleur progressivement pour virer au noir et blanc. L&#8217;utilisateur n&#8217;a plus alors le contrôle sur ce qui se passe derrière hormis cette fenêtre au premier plan. La <strong>LightBox</strong> reprend ce principe sauf que l&#8217;animation de fondu est optionnelle.</p>
<p>Généralement, on utilise <strong>LightBox</strong> pour gérer une connexion à un compte, afficher un diaporama (que l&#8217;on appelle en anglais plus communément un slideshow) ou encore de plus en plus pour créer des publicités (comme l&#8217;utilisateur ne peut manipuler le fond de la page il est presque obligé d&#8217;attendre que la publicité passe pour avoir le contrôle sur la page qu&#8217;il vient de charger, c&#8217;est une manière de capter son attention durant quelques secondes).</p>
<p>Il est possible de la programmer uniquement en s&#8217;appuyant sur le JavaScript (des connaissances en style CSS sont toutefois nécessaires). PHP et l&#8217;ASP ne conviennent pas étant donné que ce sont des langages exécutés coté serveur qui n&#8217;interviennent qu&#8217;au chargement de la page. La page serait donc réactualisée ce qui ne présente donc aucun intérêt d&#8217;en griser le fond&#8230; Le JavaScript lui intervient à n&#8217;importe quel moment rendant une page dynamique et interactive. Seulement il possède néanmoins des inconvénients qui doivent être pris en compte pour la réalisation de sites internet.</p>
<p>Voici une exemple d&#8217;image d&#8217;une <strong>LightBox</strong> (formulaire d&#8217;insertion d&#8217;image sous WordPress avec un filtre de couleur noire et niveau de transparence à 75% (la valeur 100 représentant un fond entièrement opaque)):</p>
<p><a href="http://harz62.files.wordpress.com/2009/11/lightbox2.png"><img class="aligncenter size-medium wp-image-136" title="LightBox" src="http://harz62.files.wordpress.com/2009/11/lightbox2.png?w=300&#038;h=161" alt="" width="300" height="161" /></a></p>
<h2>Mise en pratique</h2>
<p>On va associer à notre <strong>LightBox </strong>des fonctionnalités comme le changement de couleur, l&#8217;ajout de transparence au fond de la page ou la possibilité d&#8217;afficher une image en fond avec possibilité d&#8217;y appliquer de la transparence bien sûr.  Voici la représentation graphique de notre classe <strong>LightBox</strong>:</p>
<p><a style="border-style:none;"><img class="aligncenter size-medium wp-image-151" title="Schéma représentatif du composant LightBox" src="http://harz62.files.wordpress.com/2009/12/lightboxclass.png?w=282&#038;h=355" alt="" width="282" height="355" /></a></p>
<p>D&#8217;après le schéma, on s&#8217;aperçoit que la classe comporte 5 champs privés:</p>
<ul style="list-style-type:square;">
<li>box: représente la boîte qui s&#8217;affichera au dessus du filtre.</li>
<li>color: représente la couleur du filtre en arrière plan</li>
<li>filter: représente le filtre. Il s&#8217;agit d&#8217;un élément qui prend toute la page et sensé &#8216;griser&#8217; le fond de celle ci en appliquant une couleur ou une image avec un niveau de transparence défini</li>
<li>filterImage: représente le lien de l&#8217;image affichée en arrière plan</li>
<li>opacity: représente la valeur de la transparence du filtre</li>
</ul>
<p>Elle comprend également un certain nombre de méthodes offrant la possibilité de paramétrer notre composant  en changeant la couleur du filtre ou son niveau de transparence et appliquer les changements pour qu&#8217;ils soient visibles graphiquement.</p>
<p>Avant de commencer voici le code complet de la classe: <a href="http://spidergames.free.fr/blog/LightBox.js">LightBox.js</a></p>
<p>Maintenant commençons par créer la fonction <em>init </em>étant donné que c&#8217;est la première méthode à appeler lorsque l&#8217;on souhaite créer la <strong>LightBox</strong>. La fonction <em>init </em>permet elle d&#8217;initialiser le composant, elle va créer les composants HTML nécessaires pour réaliser le filtre:</p>
<pre style="overflow:auto;font-family:courier new;font-size:11px;color:black;width:100%;"><span style="color:teal;">  1</span> <span style="color:blue;">this</span>.init = <span style="color:blue;">function</span>(Opacity, Color) {
<span style="color:teal;">  2</span>     <span style="color:blue;">if</span>(filter == <span style="color:blue;">null</span>) {
<span style="color:teal;">  3</span>         <span style="color:green;">// On créé le filtre avec la fonction DOM createElement</span>
<span style="color:teal;">  4</span>         filter = document.createElement(<span style="color:maroon;">"div"</span>);
<span style="color:teal;">  5</span>         <span style="color:green;">// On lui donne un identifiant pour le reconnaître plus facilement</span>
<span style="color:teal;">  6</span>         filter.id = <span style="color:maroon;">"lightBox"</span>;
<span style="color:teal;">  7</span>         <span style="color:green;">// On met le filtre au dessus de la page </span>
<span style="color:teal;">  8</span>         filter.style.zIndex = <span style="color:maroon;">"9001"</span>;
<span style="color:teal;">  9</span>         <span style="color:green;">// On change sa mise en page</span>
<span style="color:teal;"> 10</span>         <span style="color:green;">// Sa position sera déterminée en fonction des valeurs de CSS</span>
<span style="color:teal;"> 11</span>         filter.style.position = <span style="color:maroon;">"absolute"</span>;
<span style="color:teal;"> 12</span>         <span style="color:green;">// La position verticale du filtre est définie au bord supérieur gauche de la page</span>
<span style="color:teal;"> 13</span>         filter.style.top = <span style="color:maroon;">"0px"</span>;
<span style="color:teal;"> 14</span>         <span style="color:green;">// La position horizontale du filtre est définie au bord supérieur gauche de la page</span>
<span style="color:teal;"> 15</span>         filter.style.left = <span style="color:maroon;">"0px"</span>;
<span style="color:teal;"> 16</span>         <span style="color:green;">// On défini la taille du filtre en l'occurence celle de la page entière</span>
<span style="color:teal;"> 17</span>         <span style="color:green;">// On teste si le navigateur que l'on utilise est Internet Explorer</span>
<span style="color:teal;"> 18</span>         <span style="color:blue;">if</span>(navigator.appName === <span style="color:maroon;">"Microsoft Internet Explorer"</span>) {
<span style="color:teal;"> 19</span>             <span style="color:blue;">if</span>(document.body.scrollHeight &lt; document.body.clientHeight)
<span style="color:teal;"> 20</span>                 filter.style.height = document.body.clientHeight;
<span style="color:teal;"> 21</span>             <span style="color:blue;">else</span>
<span style="color:teal;"> 22</span>                 filter.style.height = document.body.scrollHeight;
<span style="color:teal;"> 23</span>
<span style="color:teal;"> 24</span>             <span style="color:blue;">if</span>(document.body.scrollWidth &lt; document.body.clientWidth)
<span style="color:teal;"> 25</span>                 filter.style.width = document.body.clientWidth;
<span style="color:teal;"> 26</span>             <span style="color:blue;">else</span>
<span style="color:teal;"> 27</span>                 filter.style.width = document.body.scrollWidth;
<span style="color:teal;"> 28</span>         }
<span style="color:teal;"> 29</span>         <span style="color:green;">// Lorsque l'on utilise Firefox, Safari, Chrome, Opera</span>
<span style="color:teal;"> 30</span>         <span style="color:blue;">else</span> {
<span style="color:teal;"> 31</span>             filter.style.width = document.body.scrollWidth;
<span style="color:teal;"> 32</span>             filter.style.height = document.body.scrollHeight;
<span style="color:teal;"> 33</span>         }
<span style="color:teal;"> 34</span>         <span style="color:green;">// On change le curseur de la souris</span>
<span style="color:teal;"> 35</span>         filter.style.cursor = <span style="color:maroon;">"pointer"</span>;
<span style="color:teal;"> 36</span>         <span style="color:green;">// La couleur de fond du filtre sera celle fournie en argument </span>
<span style="color:teal;"> 37</span>         changeColor(Color);
<span style="color:teal;"> 38</span>         <span style="color:green;">// On change la valeur de la transparence du filtre </span>
<span style="color:teal;"> 39</span>         changeOpacity(Opacity);
<span style="color:teal;"> 40</span>         <span style="color:green;">// Ici on s'abonne à l'événement Click sur notre filtre</span>
<span style="color:teal;"> 41</span>         <span style="color:blue;">if</span>(filter.addEventListener)
<span style="color:teal;"> 42</span>             filter.addEventListener(<span style="color:maroon;">"click"</span>, <span style="color:blue;">this</span>.destroy, <span style="color:blue;">false</span>);
<span style="color:teal;"> 43</span>         <span style="color:blue;">else</span> <span style="color:blue;">if</span>(filter.attachEvent)
<span style="color:teal;"> 44</span>             filter.attachEvent(<span style="color:maroon;">"onclick"</span>,<span style="color:blue;">this</span>.destroy);
<span style="color:teal;"> 45</span> }</pre>
<p style="margin-top:20px;">La fonction <strong>init </strong>possède deux paramètres: Opacity et Color offrant la possibilité de définir ces 2 paramètres au moment de la création de notre <strong>LightBox. </strong>Le changement de couleur du filtre et sa transparence sont délégués aux méthodes <em>changeColor </em>et <em>changeOpacity </em>qui sont privées donc accessibles uniquement dans la classe <strong>LightBox</strong>.</p>
<p>Dans le code on peut voir que l&#8217;on teste la nature du navigateur employé. La raison tient du fait que le code qui est exécuté dans le branchement conditionnel <em>else </em>marche sous Firefox, Opera, Chrome, Safari mais&#8230; pas Internet Explorer !<br />
En effet Internet Explorer n&#8217;interprète pas de la même manière la valeur des propriétés <em>scrollWidth </em>et <em>scrollHeight</em>, il faut donc s&#8217;appuyer sur d&#8217;autres propriétés et réaliser des calculs pour obtenir un résultat sensiblement identique aux autres navigateurs du marché.</p>
<p>On peut aussi apercevoir que l&#8217;on s&#8217;abonne à l&#8217;événement Click sur le filtre. Ici encore une fois les conditions sont là de manière à faire en sorte que  le code fonctionne aussi bien sur Internet Explorer qu&#8217;avec les autres navigateurs étant donné que la fonction <em>addEventListener </em>n&#8217;existe pas sous Internet Explorer et utilise lui <em>attachEvent</em> à la place&#8230;<br />
La fonction <em>destroy </em>est attachée à l&#8217;événement Click qui interviendra lorsque l&#8217;utilisateur presse le bouton de sa souris dans la zone du filtre. Cela permet d&#8217;éviter de bloquer toute la page lorsque l&#8217;on souhaite reprendre le contrôle des éléments de la page précédemment &#8216;désactivés&#8217; par l&#8217;apparition du filtre et de la boîte.</p>
<p>Maintenant faisons un petit tour d&#8217;horizon des méthodes <em>changeColor</em> et <em>changeOpacity. </em>Voici le code:</p>
<pre style="overflow:auto;color:black;width:100%;font-size:11px;font-family:courier new;"><span style="color:teal;">  1</span> <span style="color:green;">// Change la couleur du filtre</span>
<span style="color:teal;">  2</span> <span style="color:blue;">function</span> changeColor(newColor) {
<span style="color:teal;">  3</span>     <span style="color:green;">// On teste le type de l'argument</span>
<span style="color:teal;">  4</span>     <span style="color:blue;">if</span>(!(<span style="color:blue;">typeof</span> newColor == <span style="color:maroon;">'string'</span>))
<span style="color:teal;">  5</span>         <span style="color:blue;">throw</span> <span style="color:maroon;">"newColor argument must be a String object"</span>;
<span style="color:teal;">  6</span>
<span style="color:teal;">  7</span>     <span style="color:blue;">if</span>(filter) {
<span style="color:teal;">  8</span>         filter.style.backgroundColor = newColor;
<span style="color:teal;">  9</span>     }
<span style="color:teal;"> 10</span> }
<span style="color:teal;"> 11</span>
<span style="color:teal;"> 12</span> <span style="color:green;">// Change la transparence du filtre</span>
<span style="color:teal;"> 13</span> <span style="color:blue;">function</span> changeOpacity(newOpacity) {
<span style="color:teal;"> 14</span>     <span style="color:green;">// On teste le type de l'argument</span>
<span style="color:teal;"> 15</span>     <span style="color:blue;">if</span>(!(<span style="color:blue;">typeof</span> newOpacity == <span style="color:maroon;">'number'</span>)) {
<span style="color:teal;"> 16</span>         <span style="color:blue;">throw</span> <span style="color:maroon;">"newOpacity argument must be Number object"</span>;
<span style="color:teal;"> 17</span>     }
<span style="color:teal;"> 18</span>
<span style="color:teal;"> 19</span>     <span style="color:green;">// On convertit en entier si c'est un réel qui est passé en argument</span>
<span style="color:teal;"> 20</span>     <span style="color:blue;">var</span> opacityInteger = parseInt(newOpacity);
<span style="color:teal;"> 21</span>
<span style="color:teal;"> 22</span>    <span style="color:green;">// On vérifie si la valeur est comprise entre 0 et 100</span>
<span style="color:teal;"> 23</span>    <span style="color:green;">// La valeur du filtre à 0 le rendant entièrement transparent</span>
<span style="color:teal;"> 24</span>    <span style="color:green;">// La valeur du filtre à 100 le rendant entièrement opaque</span>
<span style="color:teal;"> 25</span>    <span style="color:blue;">if</span>(opacityInteger &lt; <span style="color:maroon;">0</span> &amp;&amp; opacityInteger &gt; <span style="color:maroon;">100</span>)
<span style="color:teal;"> 26</span>        <span style="color:blue;">throw</span> <span style="color:maroon;">"opacity invalid value"</span>;
<span style="color:teal;"> 27</span>
<span style="color:teal;"> 28</span>    <span style="color:blue;">if</span>(filter) {
<span style="color:teal;"> 29</span>    <span style="color:green;">// On convertit la valeur en réel pour qu'elle soit exploitable</span>
<span style="color:teal;"> 30</span>    <span style="color:green;">// par la propriété CSS opacity                 </span>
<span style="color:teal;"> 31</span>    opacity = newOpacity / <span style="color:maroon;">100</span>;
<span style="color:teal;"> 32</span>
<span style="color:teal;"> 33</span>    <span style="color:blue;">var</span> appName = navigator.appName;
<span style="color:teal;"> 34</span>    <span style="color:green;">// On teste le type du navigateur</span>
<span style="color:teal;"> 35</span>    <span style="color:blue;">if</span>(appName === <span style="color:maroon;">"Netscape"</span> || appName === <span style="color:maroon;">"Opera"</span>) {
<span style="color:teal;"> 36</span>        filter.style.opacity = opacity;
<span style="color:teal;"> 37</span>    }
<span style="color:teal;"> 38</span>    <span style="color:blue;">else</span>
<span style="color:teal;"> 39</span>        filter.style.filter = <span style="color:maroon;">"progid:DXImageTransform.Microsoft.Alpha(opacity="</span> + newOpacity  + <span style="color:maroon;">")"</span>;
<span style="color:teal;"> 40</span>    }
<span style="color:teal;"> 41</span> }</pre>
<p style="margin-top:20px;">Ici également on s&#8217;aperçoit que l&#8217;on teste le navigateur avant de réaliser le traitement. Cette fois ci il ne s&#8217;agit d&#8217;une propriété interprétée différemment selon le navigateur mais une syntaxe totalement différente.</p>
<p>Une nouvelle fois, le problème vient d&#8217;Internet Explorer qui n&#8217;implémente pas la propriété opacity faisant partie des spécifications de HTML mais propose une propriété qui lui est propre et qui exploite DirectX pour faire des transformations. L&#8217;avantage tout de même c&#8217;est que la propriété <em>filter</em> permet de réaliser plusieurs effets autre que la transparence.</p>
<p>Par exemple un effet de flou ou des transformations comme des rotations ou translations (sous Mozilla Firefox, ces transformations ne sont disponibles qu&#8217;à partir de Gecko 1.9.1 utilisé par la version 3.5 du navigateur minimum). La propriété filter est quand à elle supportée depuis la version 5.5 du navigateur de Microsoft.</p>
<p>Voyons maintenant le code des accesseurs de la classe <strong>LightBox</strong>:</p>
<pre style="overflow:auto;color:black;width:100%;font-size:11px;font-family:courier new;"><span style="color:teal;">  1</span> <span style="color:green;">// On obtient la couleur courante du filtre</span>
<span style="color:teal;">  2</span> <span style="color:blue;">this</span>.getColor = <span style="color:blue;">function</span>() {
<span style="color:teal;">  3</span>     <span style="color:blue;">return</span> color;
<span style="color:teal;">  4</span> }
<span style="color:teal;">  5</span>
<span style="color:teal;">  6</span> <span style="color:green;">// On obtient l'url de l'image en fond du filtre</span>
<span style="color:teal;">  7</span> <span style="color:blue;">this</span>.getImageUrl = <span style="color:blue;">function</span>() {
<span style="color:teal;">  8</span>     <span style="color:blue;">return</span> filterImage;
<span style="color:teal;">  9</span> }
<span style="color:teal;"> 10</span>
<span style="color:teal;"> 11</span> <span style="color:green;">// On obtient le niveau de transparence du filtre</span>
<span style="color:teal;"> 12</span> <span style="color:green;">// Retourne une valeur comprise entre 0 et 100</span>
<span style="color:teal;"> 13</span> <span style="color:blue;">this</span>.getOpacity = <span style="color:blue;">function</span>() {
<span style="color:teal;"> 14</span>     <span style="color:blue;">return</span> opacity * <span style="color:maroon;">100</span>;
<span style="color:teal;"> 15</span> }
<span style="color:teal;"> 16</span>
<span style="color:teal;"> 17</span> <span style="color:green;">// On change la couleur du filtre</span>
<span style="color:teal;"> 18</span> <span style="color:blue;">this</span>.setColor = <span style="color:blue;">function</span>(newColor) {
<span style="color:teal;"> 19</span>     changeColor(newColor);
<span style="color:teal;"> 20</span> }
<span style="color:teal;"> 21</span>
<span style="color:teal;"> 22</span> <span style="color:green;">// On change l'image de fond du filtre</span>
<span style="color:teal;"> 23</span> <span style="color:blue;">this</span>.setImageUrl = <span style="color:blue;">function</span>(imageUrl) {
<span style="color:teal;"> 24</span>    <span style="color:green;">// On teste le type</span>
<span style="color:teal;"> 25</span>    <span style="color:blue;">if</span>(!(<span style="color:blue;">typeof</span> imageUrl == <span style="color:maroon;">'string'</span>)) {
<span style="color:teal;"> 26</span>        <span style="color:blue;">throw</span> <span style="color:maroon;">"image argument is not a string objet"</span>;
<span style="color:teal;"> 27</span>    }
<span style="color:teal;"> 28</span>    <span style="color:blue;">if</span>(filter) {
<span style="color:teal;"> 29</span>        filterImage = imageUrl;
<span style="color:teal;"> 30</span>        filter.style.backgroundImage = <span style="color:maroon;">"url("</span> + imageUrl + <span style="color:maroon;">")"</span>;
<span style="color:teal;"> 31</span>        filter.style.backgroundColor = <span style="color:blue;">null</span>;
<span style="color:teal;"> 32</span>    }
<span style="color:teal;"> 33</span> }
<span style="color:teal;"> 34</span>
<span style="color:teal;"> 35</span> <span style="color:green;">// On change la transparence du filtre </span>
<span style="color:teal;"> 36</span> <span style="color:blue;">this</span>.setOpacity = <span style="color:blue;">function</span>(newOpacity) {
<span style="color:teal;"> 37</span>        changeOpacity(newOpacity);
<span style="color:teal;"> 38</span> }</pre>
<p style="margin-top:20px;">Ce que j&#8217;appelle <em>accesseur </em>est en fait un terme appartenant au concept objet qui permet entre autre d&#8217;avoir accès en lecture ou en écriture aux éléments privés d&#8217;une classe. Les fonctions avec le préfixe <strong>get</strong> permettent d&#8217;accéder à des informations relatives à l&#8217;objet. En revanche les fonctions avec <strong>set</strong> comme préfixe permettent de modifier les paramètres de notre <strong>LightBox</strong> mettant ainsi à jour graphiquement le composant.</p>
<p>Voyons maintenant la manière dont est affiché notre composant à l&#8217;écran:</p>
<pre style="overflow:auto;color:black;width:100%;font-size:11px;font-family:courier new;"><span style="color:teal;">  1</span> <span style="color:green;">// Affiche le filtre et la boîte</span>
<span style="color:teal;">  2</span> <span style="color:blue;">this</span>.show = <span style="color:blue;">function</span>(id, x, y) {
<span style="color:teal;">  3</span>     <span style="color:blue;">if</span>(id == <span style="color:blue;">null</span>)
<span style="color:teal;">  4</span>         <span style="color:blue;">throw</span> <span style="color:maroon;">"id argument can't be null value"</span>;
<span style="color:teal;">  5</span>     <span style="color:blue;">if</span>(box == <span style="color:blue;">null</span>)
<span style="color:teal;">  6</span>         box = document.getElementById(id);
<span style="color:teal;">  7</span>
<span style="color:teal;">  8</span>     <span style="color:blue;">if</span>(filter != <span style="color:blue;">null</span> &amp;&amp; box != <span style="color:blue;">null</span>) {
<span style="color:teal;">  9</span>         document.body.appendChild(filter);
<span style="color:teal;"> 10</span>         box.style.position = <span style="color:maroon;">"absolute"</span>;
<span style="color:teal;"> 11</span>         <span style="color:green;">// Change la position x de la fenêtre flottante</span>
<span style="color:teal;"> 12</span>         <span style="color:green;">// On assigne une valeur par défaut à x si son type n'est pas bon</span>
<span style="color:teal;"> 13</span>         <span style="color:green;">// ou si la valeur de l'argument est nulle</span>
<span style="color:teal;"> 14</span>         <span style="color:blue;">if</span>(x == <span style="color:blue;">null</span> || !(<span style="color:blue;">typeof</span> x == <span style="color:maroon;">'number'</span>))
<span style="color:teal;"> 15</span>             box.style.left = <span style="color:maroon;">"0px"</span>;
<span style="color:teal;"> 16</span>         <span style="color:blue;">else</span>
<span style="color:teal;"> 17</span>             box.style.left = x + <span style="color:maroon;">"px"</span>;
<span style="color:teal;"> 18</span>
<span style="color:teal;"> 19</span>         <span style="color:green;">// Change la position y de la fenêtre flottante</span>
<span style="color:teal;"> 20</span>         <span style="color:green;">// On assigne une valeur par défaut à y si son type n'est pas bon</span>
<span style="color:teal;"> 21</span>         <span style="color:green;">// ou si la valeur de l'argument est nulle</span>
<span style="color:teal;"> 22</span>         <span style="color:blue;">if</span>(y == <span style="color:blue;">null</span> || !(<span style="color:blue;">typeof</span> y == <span style="color:maroon;">'number'</span>))
<span style="color:teal;"> 23</span>             box.style.top = <span style="color:maroon;">"0px"</span>;
<span style="color:teal;"> 24</span>         <span style="color:blue;">else</span>
<span style="color:teal;"> 25</span>             box.style.top = y + <span style="color:maroon;">"px"</span>;
<span style="color:teal;"> 26</span>
<span style="color:teal;"> 27</span>         box.style.zIndex = <span style="color:maroon;">"9999"</span>;
<span style="color:teal;"> 28</span>         box.style.visibility = <span style="color:maroon;">"visible"</span>;
<span style="color:teal;"> 29</span>     }
<span style="color:teal;"> 30</span> }</pre>
<p style="margin-top:20px;">La fonction <em>show </em>prend en paramètre un identifiant (qui correspond au formulaire/élément qui sera placé devant le filtre) et des positions x et y qui représenteront les coordonnées du formulaire/élément. On change également certaines de ses propriétés CSS pour qu&#8217;il s&#8217;affiche en temps de fenêtre flottante en changeant sa position et en changeant également son niveau de visibilité.<br />
Comme on a déjà créé notre filtre avec la fonction <em>init</em>, il ne reste plus qu&#8217;à l&#8217;ajouter à notre document courant. Le filtre et la boîte seront alors tous deux affichés.</p>
<p>Pour finir, il faut détruire notre filtre lorsque l&#8217;on a plus besoin. Ce travail est réalisé par la fonction <em>destroy</em> (publique). Le rôle cette fonction<em> </em>étant de supprimer le filtre et de masquer la boîte  dont on a donné l&#8217;identifiant lors de l&#8217;appel de la fonction <em>show</em>:</p>
<pre style="overflow:auto;color:black;width:100%;font-size:11px;font-family:courier new;"><span style="color:teal;">  1</span> <span style="color:green;">// Détruit le filtre et masque la boîte</span>
<span style="color:teal;">  2</span> <span style="color:blue;">this</span>.destroy = <span style="color:blue;">function</span>() {
<span style="color:teal;">  3</span>     <span style="color:blue;">if</span>(filter) {
<span style="color:teal;">  4</span>         <span style="color:blue;">if</span>(filter.removeEventListener)
<span style="color:teal;">  5</span>             filter.removeEventListener(<span style="color:maroon;">"click"</span>, <span style="color:blue;">this</span>.destroy, <span style="color:blue;">false</span>);
<span style="color:teal;">  6</span>         <span style="color:blue;">else</span> <span style="color:blue;">if</span>
<span style="color:teal;">  7</span>             filter.detachEvent(<span style="color:maroon;">"onclick"</span>, <span style="color:blue;">this</span>.destroy);
<span style="color:teal;">  8</span>
<span style="color:teal;">  9</span>         document.body.removeChild(filter);
<span style="color:teal;"> 10</span>     }
<span style="color:teal;"> 11</span>     <span style="color:blue;">if</span>(box)
<span style="color:teal;"> 12</span>         box.style.visibility = <span style="color:maroon;">"hidden"</span>;
<span style="color:teal;"> 13</span>
<span style="color:teal;"> 14</span>     box = <span style="color:blue;">null</span>;
<span style="color:teal;"> 15</span>     color = <span style="color:blue;">null</span>;
<span style="color:teal;"> 16</span>     filter = <span style="color:blue;">null</span>;
<span style="color:teal;"> 17</span>     filterImage = <span style="color:blue;">null</span>;
<span style="color:teal;"> 18</span> }</pre>
<p>Il sera nécessaire ensuite de rappeler la fonction <em>init </em>pour rendre la classe <strong>LightBox </strong>à nouveau opérationnelle.</p>
<h2>Exemple</h2>
<p>Voici un exemple pour montrer que le fonctionnement de la classe. Cette classe et opérationnelle sous Internet Explorer, Firefox, Safari, Chrome et Opera (Les autres navigateurs n&#8217;ayant pas été testé, je ne peux garantir le bon fonctionnement de celle ci en totalité).</p>
<p><a href="http://spidergames.free.fr/blog/exemple.html">Exemple</a></p>
<p>La page contient le code de la classe <strong>LightBox</strong>, un formulaire de connexion (il s&#8217;agit d&#8217;un test donc non fonctionnel)  qui s&#8217;affichera au dessus du filtre et un bouton pour manipuler la classe:</p>
<h2>Améliorations</h2>
<p>Il s&#8217;agit d&#8217;un exemple destiné  montrer le fonctionnement d&#8217;une <strong>LightBox </strong>telle qu&#8217;on peut la trouver sur des grands sites.</p>
<p>Le code que j&#8217;ai présenté n&#8217;est pas optimisé pour fonctionner de manière optimale sur les différents navigateurs.<br />
Pour améliorer les performances (surtout sous Internet Explorer 6, navigateur dépassé mais cependant toujours utilisé), il faut prendre en compte que la simple modification du éléments de style (par exemple pour la couleur de fond)  par l&#8217;intermédiaire de la syntaxe <em>element.style </em>peut amener le navigateur à repeindre ou à recalculer la mise en page d&#8217;un élément HTML.</p>
<p>On peut exploiter la fonction <em>createDocumentFragment </em>pour éviter au maximum que le navigateur en vienne à recalculer les éléments modifiés après leur création.</p>
<p>La classe manque également de sécurisation quand à la validité des informations pour le paramétrage de la classe. Je pense notamment à la fonction <em>show </em>où on peut vérifier que les positions fournies rendent la boîte visible dans son intégralité à l&#8217;écran.</p>
<p>On peut la faire évoluer en ajoutant d&#8217;autres fonctionnalités comme la mise en place d&#8217;animation pour l&#8217;affichage de filtre (un effet fondu par exemple), ou implémenter des fonctions de mise à jour du composants et événements&#8230;</p>
<p>En terme de performance, Je n&#8217;ai cependant pas testé la vitesse d&#8217;exécution de mon code mais une fois que l&#8217;utilisateur ne ressent pas une gêne pour ce qui est de l&#8217;attente ce n&#8217;est toutefois pas nécessaire :=)</p>
<p>En espérant que ce tutorial vous aidera en quoi que ce soit, sur ce bon codage à tous <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br />Publié dans Développement, Développement Web, Informatique, JavaScript Tagged: JavaScript <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harz62.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harz62.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harz62.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harz62.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harz62.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harz62.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harz62.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harz62.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harz62.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harz62.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harz62.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harz62.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harz62.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harz62.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harz62.wordpress.com&amp;blog=9899300&amp;post=128&amp;subd=harz62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harz62.wordpress.com/2009/11/30/lightbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0c1b56a9097328ad1612358817ea2ac?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">harz62</media:title>
		</media:content>

		<media:content url="http://harz62.files.wordpress.com/2009/11/lightbox2.png?w=300" medium="image">
			<media:title type="html">LightBox</media:title>
		</media:content>

		<media:content url="http://harz62.files.wordpress.com/2009/12/lightboxclass.png" medium="image">
			<media:title type="html">Schéma représentatif du composant LightBox</media:title>
		</media:content>
	</item>
		<item>
		<title>Les nouveaux jouets d&#8217;Apple (MacBook, iMac, Mac mini Server, Magic Mouse et Apple Remote)</title>
		<link>http://harz62.wordpress.com/2009/10/21/les-nouveaux-jouets-dapple-macbook-imac-mac-mini-server-magic-mouse-et-apple-remote/</link>
		<comments>http://harz62.wordpress.com/2009/10/21/les-nouveaux-jouets-dapple-macbook-imac-mac-mini-server-magic-mouse-et-apple-remote/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 11:31:33 +0000</pubDate>
		<dc:creator>pho3nix84</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Informatique]]></category>
		<category><![CDATA[Matériel]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://harz62.wordpress.com/?p=78</guid>
		<description><![CDATA[Beaucoup de rumeurs circulaient depuis un bon moment sur le net, certaines parlaient de leurs sorties pour le 15 octobre, d'autres des futurs configurations systèmes ou encore de nouveaux produits.

Commençons tout d'abord par le Mac mini, la plus petite machine d'Apple équipé de Mac Os X, ayant était redessiné il y a peu, a maintenant le droit à une toute nouvelle déclinaison. En effet, le Dual 500 Go, qui en a peut-être surpris ou alors ravit plus d'un en devenant ni plus ni moins un serveur. Il disposera comme système d'exploitation de Snow leopard Server, doté d'un Intel Core 2 Duo 2.53 Ghz, 4Go de ram, d'un processeur graphique NVIDIA Geforce 9400M et le SuperDrive (toujours disponible mais en externe cette fois pour 89.00€) a tout simplement laissé sa place à 2 disques de 500Go.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harz62.wordpress.com&amp;blog=9899300&amp;post=78&amp;subd=harz62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Beaucoup de rumeurs circulaient depuis un bon moment sur le net, certaines parlaient de leurs sorties pour le 15 octobre, d&#8217;autres des futurs configurations système ou encore de nouveaux produits.</p>
<p>Commençons tout d&#8217;abord avec le<strong> Mac mini</strong>, la plus petite machine d&#8217;Apple équipée de Mac Os X, redessiné il y a peu, a maintenant le droit à une toute nouvelle déclinaison. En effet,  le <strong>Dual 500 Go</strong>, qui en a peut-être surpris ou alors ravit plus d&#8217;un en devenant ni plus ni moins un serveur. Il disposera de <strong>Snow leopard Server</strong> comme système d&#8217;exploitation, doté d&#8217;un Intel Core 2 Duo 2.53 Ghz, 4Go de ram, d&#8217;un processeur graphique NVIDIA Geforce 9400M et le SuperDrive (toujours disponible mais en externe cette fois pour 89.00€) a tout simplement laissé sa place à 2 disques de 500Go.</p>
<p>Ce tout nouveau &#8216;mini&#8217; server a été conçu pour vous aider à communiquer, collaborer ainsi qu&#8217;à partager toutes vos informations. Vous pourrez dorénavant l&#8217;utiliser comme votre propre serveur pour gérer votre courrier électronique, partager vos calendriers et contacts tout simplement en synchronisant et partageant vos différentes machines (Mac, PC et iPhone). Vous pourrez également partager tous vos fichiers en  toute sécurité et ce à grande vitesse.</p>
<p>Pour finir le prix de ce tout nouveau Mac mini Server : 949.00€</p>
<div id="attachment_79" class="wp-caption aligncenter" style="width: 356px"><img class="size-full wp-image-79" title="mac_mini_server_09" src="http://harz62.files.wordpress.com/2009/10/mac_mini_server_09.png" alt="mac_mini_server_09" width="346" height="183" /><p class="wp-caption-text">Mac mini Server 09</p></div>
<p>Pour ce qui est des 2 autres Mac mini mais cette fois-ci version non serveur, une petite mise à jour des composants a été faite.</p>
<p>- Intel Core 2 Duo de 2,26 GHz (modèle haut de gamme précédent),  2 Go de RAM, HDD de 160 Go. Son prix 549.00 €. (contre 2,0 GHz, 1 Go de RAM, et 120 Go à 599.00 €).</p>
<p>- Intel Core 2 Duo de 2,53 GHz, 4 Go de RAM, HDD de 320 Go. Son prix 749.00€ (contre 2,0 GHz, 2 Go de RAM, et HDD de 320 Go à 799.00 €).</p>
<p>Ces 3 modèles de Mac mini, seront équipés d&#8217;une connectivité WiFi Airport Extreme 802.11n et Bluetooth 2.1 + EDR (Enhanced Data Rate).</p>
<p>Maintenant, allons voir le nouveau MacBook 2009 (entrée de gamme) , qui a finalement adopté une nouvelle robe en polycarbonate Unibody enclosure. Ce tout nouveau modèle est équipé d&#8217;un Intel Core 2 Duo de 2.26Ghz (contre 2.13 Ghz précédemment), il garde ses 2 Go de ram et passe maintenant à la DDR3 de 1066 Mhz (anciennement de la DDR2) et dispose d&#8217;un disque dur de 250 Go (contre 160 Go précédemment), doté également d&#8217;un écran LED de 13.3&#8243; et d&#8217;un trackpad multitouch en verre. Il garde néanmoins son processeur graphique NVIDIA Geforce 9400M, sa batterie est maintenant fixe est passe à 7 Heures d&#8217;autonomie et son port Firewire a été retiré ainsi que son port infra-rouge (fini donc d&#8217;utiliser l&#8217;Apple Remote). Il intègre également comme les mac mini, une connectivité WiFi Airport Extreme 802.11n et Bluetooth 2.1 + EDR (Enhanced Data Rate).</p>
<p>Son prix : 899€</p>
<div id="attachment_80" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-80" title="macbook_09" src="http://harz62.files.wordpress.com/2009/10/macbook_09.png" alt="macbook_09" width="500" height="345" /><p class="wp-caption-text">MacBook 09</p></div>
<p>Et pour finir le tout nouveau <strong>iMac 09, </strong>avec sa nouvelle souris, la <strong>Magic Mouse</strong> et sa nouvelle télécommande Apple Remote 09. Commençons par l&#8217;iMac, décliné avec un <strong>écran LED Full HD de 21.5&#8243;</strong> (1920&#215;1080) ou alors avec un<strong> écran LED de 27&#8243;</strong> (2560 x 1440). Les 2 premièrs modèles ont un écran de 21.5&#8243; et les 2 suivants un 27&#8243; mais seul le dernier disposera d&#8217;un <strong>Intel Core i5  de 2.66 Ghz</strong> (ou<strong> Intel Core i7 de 2.8Ghz</strong> selon l&#8217;option)  comparé aux 3 autres, encore sous Intel Core 2 Duo de 3.06 Ghz. A noter également, que les écrans ont un format 16/9ème cela plaira à certains et à d&#8217;autres non ainsi que l&#8217;ajout d&#8217;un port SD et d&#8217;un port Mini Dislpay Port pour le relier à son Mac mini, MacBook, &#8230; Tout comme les Mac mini et MacBook ils seront équipés d&#8217;une connectivité WiFi Airport Extreme 802.11n et Bluetooth 2.1 + EDR (Enhanced Data Rate).</p>
<div id="attachment_86" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-86" title="imac_09" src="http://harz62.files.wordpress.com/2009/10/imac_09.png" alt="imac_09" width="500" height="224" /><p class="wp-caption-text">iMac 09 21.5&quot; et iMac 09 27&quot;</p></div>
<p style="text-align:center;">
<p><strong>Ecran 21.5&#8243;</strong></p>
<p>- Intel Core 2 Duo 3.06 Ghz 4 Go de ram, HDD de 500 Go et une NVIDIA 9400M. Son prix : 1099.00€</p>
<p>- Intel Core 2 Duo 3.06 Ghz 4 Go de ram, HDD de 1 To et une ATI Radeon HD 4670 de 256 Mo. Son prix : 1349.00€</p>
<p><strong>Ecran 27&#8243;</strong></p>
<p>- Intel Core 2 Duo 3.06 Ghz 4 Go de ram, HDD de 1 To et une ATI Radeon HD 4670 de 256 Mo. Son prix : 1499.00 €</p>
<p>- Intel Core i5 2.66 Ghz 4 Go de ram, HDD de 1 To et et une ATI Radeon HD 4850 de 512 Mo. Son prix : 1799.00€</p>
<p>Ensuite la <strong>Magic Mouse</strong>, la nouvelle souris d&#8217;Apple, elle est sans fil, Bluethooth et équipée du Multi-Touch. Fini le temps de la molette ou la petite bille maintenant tout ce fait avec les doigts. Elle sera compatible uniquement Mac OS X 10.5.8 et version ultérieure. Son prix : 69.00€</p>
<div id="attachment_82" class="wp-caption aligncenter" style="width: 340px"><img class="size-full wp-image-82" title="magic_mouse_09" src="http://harz62.files.wordpress.com/2009/10/magic_mouse_09.png" alt="Magic Mouse 09" width="330" height="115" /><p class="wp-caption-text">Magic Mouse 09</p></div>
<div id="attachment_90" class="wp-caption aligncenter" style="width: 502px"><img class="size-full wp-image-90" title="magic_mouse_09b" src="http://harz62.files.wordpress.com/2009/10/magic_mouse_09b.png" alt="Les différents mouvement de la Magic Mouse 09" width="492" height="213" /><p class="wp-caption-text">Les différents mouvement de la Magic Mouse 09</p></div>
<p>Et enfin l&#8217;<strong>Apple Remote</strong> 09, changement de look pour être plus en harmonie avec le reste des ordinateurs d&#8217;Apple (sauf le MacBook), en adoptant l&#8217;aluminium. Son prix : 19.00€</p>
<div id="attachment_81" class="wp-caption aligncenter" style="width: 207px"><img class="size-full wp-image-81" title="apple_remote_09" src="http://harz62.files.wordpress.com/2009/10/apple_remote_09.png" alt="apple_remote_09" width="197" height="304" /><p class="wp-caption-text">Apple Remote 09</p></div>
<p>Source: <a title="Site officiel d'Apple" href="http://www.apple.com/fr" target="_blank">Apple</a></p>
<br />Publié dans Apple, Informatique, Matériel Tagged: Apple, Mac <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harz62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harz62.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harz62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harz62.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harz62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harz62.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harz62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harz62.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harz62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harz62.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harz62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harz62.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harz62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harz62.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harz62.wordpress.com&amp;blog=9899300&amp;post=78&amp;subd=harz62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harz62.wordpress.com/2009/10/21/les-nouveaux-jouets-dapple-macbook-imac-mac-mini-server-magic-mouse-et-apple-remote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f48248b0a926d5b211ac6c089801573?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">pho3nix84</media:title>
		</media:content>

		<media:content url="http://harz62.files.wordpress.com/2009/10/mac_mini_server_09.png" medium="image">
			<media:title type="html">mac_mini_server_09</media:title>
		</media:content>

		<media:content url="http://harz62.files.wordpress.com/2009/10/macbook_09.png" medium="image">
			<media:title type="html">macbook_09</media:title>
		</media:content>

		<media:content url="http://harz62.files.wordpress.com/2009/10/imac_09.png" medium="image">
			<media:title type="html">imac_09</media:title>
		</media:content>

		<media:content url="http://harz62.files.wordpress.com/2009/10/magic_mouse_09.png" medium="image">
			<media:title type="html">magic_mouse_09</media:title>
		</media:content>

		<media:content url="http://harz62.files.wordpress.com/2009/10/magic_mouse_09b.png" medium="image">
			<media:title type="html">magic_mouse_09b</media:title>
		</media:content>

		<media:content url="http://harz62.files.wordpress.com/2009/10/apple_remote_09.png" medium="image">
			<media:title type="html">apple_remote_09</media:title>
		</media:content>
	</item>
		<item>
		<title>Phishing</title>
		<link>http://harz62.wordpress.com/2009/10/12/phishing/</link>
		<comments>http://harz62.wordpress.com/2009/10/12/phishing/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 15:50:17 +0000</pubDate>
		<dc:creator>harz62</dc:creator>
				<category><![CDATA[Sécurité]]></category>

		<guid isPermaLink="false">http://harz62.wordpress.com/?p=7</guid>
		<description><![CDATA[Cet après-midi je consultais les news de clubic quand je suis tombé sur un article qui fait l&#8217;état d&#8217;arrestations de plusieurs personnes (53 au total) pour avoir pratiqué le &#8216;phishing&#8217; aux Etats-Unis. Pour ceux qui ne connaissent pas le phishing, il s&#8217;agit d&#8217;un site factice (qui ressemble aux véritables sites) prétendant appartenir à une entreprise [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harz62.wordpress.com&amp;blog=9899300&amp;post=7&amp;subd=harz62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Cet après-midi je consultais les news de clubic quand je suis tombé sur un article qui fait l&#8217;état d&#8217;arrestations de plusieurs personnes (53 au total) pour avoir pratiqué le &#8216;phishing&#8217; aux Etats-Unis.</p>
<p>Pour ceux qui ne connaissent pas le phishing, il s&#8217;agit d&#8217;un site factice (qui ressemble aux véritables sites) prétendant appartenir à une entreprise sérieuse comme une banque (dans le cas présent) et qui a pour but de récupérer des informations personnelles comme des mots de passe, des numéros de cartes de crédits&#8230; pour évidemment les utiliser à des fins personnelles.</p>
<p>Pourquoi je m&#8217;arrête justement sur cet élément d&#8217;actualité ? Tout simplement parce que le phishing peut toucher n&#8217;importe qui vu que cette méthode est exploitée uniquement grâce au réseau internet. Je considère d&#8217;ailleurs qu&#8217;il ne s&#8217;agit pas d&#8217;un problème anodin puisque le phishing se répand de plus et qu&#8217;un rappel à la vigilance n&#8217;est pas de trop.</p>
<h3><em>Alors comment savoir si un site est factice ou non ?</em></h3>
<p>Mozilla et Microsoft qui développent les navigateurs les plus utilisés dans le monde (Firefox, Internet Explorer) ont déjà intégré des solutions pour lutter contre la pratique du phishing. Sous Internet Explorer, il est possible d&#8217;activer un filtre d&#8217;anti-hameçonnage (&#8216;hameçonnage&#8217; étant la traduction littérale de &#8216;phishing&#8217;). Cette fonctionnalité consiste en somme à informer l&#8217;utilisateur que le site sur lequel il essaye de naviguer est soupçonné de pratiquer l&#8217;anti-hameçonnage. En revanche si ce site est classifié en tant que site factice connu il vous sera impossible de le consulter.</p>
<h3><em>Le filtre anti-hameçonnage comment ça fonctionne ?</em></h3>
<p>Le navigateur va comparer l&#8217;URL du site que l&#8217;on tente de visiter avec ceux contenues dans une base de données spécialement conçue pour recenser les sites soupçonnés de pratiquer le phishing.</p>
<p>Si cette URL est bien présente dans la base de données, le navigateur réagira en informant l&#8217;utilisateur de la nature du site et/ou en bloquant l&#8217;accès.</p>
<p>Le recensement de tels sites sont le plus souvent réalisé par les utilisateurs qui se sont aperçus de la fraude et qui ont transmis les informations relatives à ces sites par l&#8217;intermédiaire du navigateur. Évidemment, les informations fournies sont vérifiées sinon n&#8217;importe qui pourrait prétendre que votre site exploite le phishing.</p>
<p>Le filtre d&#8217;anti-hameçonnage est disponible à partir d&#8217;Internet Explorer 7 et celui de Firefox est lui disponible depuis la version 2.0</p>
<p>On pourrait alors se demander : comment on peut reconnaître un site factice ?</p>
<p>Le site authentique d&#8217;une banque par exemple exploite une connexion sécurisée qui exploite le protocole HTTPS mais un site factice non.</p>
<p>L&#8217;exploitation d&#8217;une connexion sécurisée est matérialisée sous Internet Explorer par un cadenas en bas à droite (dans la barre d&#8217;état) de la fenêtre du navigateur. En cliquant sur le cadenas, il est possible de vérifier si le certificat utilisé par le site est authentique.</p>
<p>Les véritables sites possèdent un certificat vérifié par une entreprise spécialisée comme Verisign ou Thawte. Ces organismes aussi appelés CA (pour Certificate Authority) garantissent la validité du certificat fourni par le site authentique et tend donc à prouver sa nature de site non factice.</p>
<p>Le phishing est de plus en plus répandu sur le web alors restez vigilant !<a href="http://www.microsoft.com/france/protect/products/yourself/phishingfilter.mspx" target="_blank"></a></p>
<p><a href="http://www.microsoft.com/france/protect/products/yourself/phishingfilter.mspx" target="_blank"><br />
Pour plus d&#8217;informations concernant le filtre hameçonnage d&#8217;Internet Explorer. </a></p>
<br />Publié dans Sécurité Tagged: Sécurité <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harz62.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harz62.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harz62.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harz62.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harz62.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harz62.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harz62.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harz62.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harz62.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harz62.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harz62.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harz62.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harz62.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harz62.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harz62.wordpress.com&amp;blog=9899300&amp;post=7&amp;subd=harz62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harz62.wordpress.com/2009/10/12/phishing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0c1b56a9097328ad1612358817ea2ac?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">harz62</media:title>
		</media:content>
	</item>
		<item>
		<title>Bienvenue sur notre blog !</title>
		<link>http://harz62.wordpress.com/2009/10/12/hello-world/</link>
		<comments>http://harz62.wordpress.com/2009/10/12/hello-world/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 11:11:48 +0000</pubDate>
		<dc:creator>harz62</dc:creator>
				<category><![CDATA[Accueil]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[C'est premier billet de mon blog donc je souhaite la bienvenue pour ceux qui le lisent ^^. Etant passionné par les nouvelles technologies, il est fort probable qu'une assez grande partie des articles qui seront présents concernent l'informatique et plus particulièrement le développement d'applications.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harz62.wordpress.com&amp;blog=9899300&amp;post=1&amp;subd=harz62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bonjour,</p>
<p>C&#8217;est le premier billet de notre blog donc ont nous vous souhaitons la bienvenue pour ceux qui le lise ^^. Ce blog est tenu par deux passionnés d&#8217;informatique du monde Apple et Microsoft, Web. Une grande partie des billets à venir sera tourné vers le développement d&#8217;applications web et bureautiques,  matériel (processeurs, mémoire&#8230;) ou présentation de logiciels comme des navigateurs.</p>
<p>L&#8217;objectif de ce blog est de faire partager mes réflexions, mes découvertes,  mes connaissances et conseils en matière de développement logiciel ou sécurité à tout le monde.</p>
<p>Sur ce, nous vous souhaitons une agréable visite sur notre blog ^^</p>
<br />Publié dans Accueil  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harz62.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harz62.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harz62.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harz62.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harz62.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harz62.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harz62.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harz62.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harz62.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harz62.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harz62.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harz62.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harz62.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harz62.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harz62.wordpress.com&amp;blog=9899300&amp;post=1&amp;subd=harz62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harz62.wordpress.com/2009/10/12/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0c1b56a9097328ad1612358817ea2ac?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">harz62</media:title>
		</media:content>
	</item>
	</channel>
</rss>
