<?xml version="1.0" encoding="iso-8859-1"?><?xml-stylesheet type="text/xsl" href="janeirostudio.xsl"?>




<rss version="2.0">
  <channel>
    <title>Janeiro Studio - Infos</title>
    <link>http://www.janeirostudio.com/</link>
    <description>Articles et journaux</description>
    <language>fr</language>

    <item>
      <title> Bon anniversaire en PHP/Mysql</title>
      <author>null@janeirostudio.com</author>
      <pubDate>Sun, 22 Jul 2007 00:00:00 +0200</pubDate>
      <link>http://www.janeirostudio.com/?articles=66</link>
      <guid>http://www.janeirostudio.com/?articles=66</guid>
      <description><![CDATA[
	  <p>
<img src="images/anniv.png" alt="intro"  class="imgD" style="border: 1px solid rgb(216, 216, 216);" />L'utilisation du langage PHP couplé au système de gestion de bases de données Mysql est aujourd'hui un moyen simple, rapide, et efficace de créer des sites Web dynamiques. </p>
<p>Nous allons décrire comment créer un script simple permettant de déterminer les dates anniversaires, les ages, ainsi que les prochains anniversaires d'une liste de personnes pour lesquelles on dispose de la date de naissance stockée dans une base de données.</p>
<p>Ceci nous permettra de décrire les fonctions de bases de l'intéraction entre php et mysql, ainsi que certaines fonctions de date SQL ou PHP. </p>

<p> </p>
<div class="DefaultFrame">
<p>Note : pour utiliser PHP/Mysql en local, les utilisateurs Windows pourront se tourner vers des produits tels que <a href="http://www.easyphp.org/">EasyPhp</a> ou <a href="http://www.wampserver.com/">Wamp</a>. <br />
  Sous Mac, <a href="http://www.mamp.info/en/index.php">Mamp</a> peut etre une solution intéressante.<br />

  Les Linuxiens utiliseront les sources ou leur gestionnaire de package préféré pour installer Apache, php et Mysql </p>
</div>

<h2>Description du projet </h2>

<p><span class="Lettrine">C</span>'est en réalisant un site Web familial que l'idée m'est venu d'intégrer un petit script permettant aux membres de la famille d'avoir en ligne la liste des anniversaires à souhaiter ainsi que la date des prochains anniversaires.</p>

<p>Le site étant en PHP/Mysql, le choix de la technogie pour réaliser cette fonction était tout trouvé.</p>

<h2>La base de données</h2>

<p><span class="Lettrine">N</span>ous avons besoin de stocker les noms, les prénoms ainsi que les dates de naissance des membres de la famille dans une base de données (appelons la <strong>anniversaire</strong>). </p>

<p>Pour cela, nous allons créer une table membres, possédant 4 champs.</p>
<p>Un champ <strong>id</strong>, identifiera les membres de manière unique en associant une personne de la liste à un numéro unique. Ce champ sera un nombre entier positif auto-increment (dont la valeur augmente au fur et à mesure que des enregistrements sont saisis dans la table). Il fera office de <a href="http://fr.wikipedia.org/wiki/Cl%C3%A9_primaire">clé primaire</a> permettant ainsi de faire référence à un membre à partir d'une autre table (via <a href="http://fr.wikipedia.org/wiki/Cl%C3%A9_%C3%A9trang%C3%A8re">une clé étrangère</a>). </p>

<p>Un champ <strong>nom</strong> et un champ <strong>prenom</strong>, de type chaine de caractères de longueur variable (VARCHAR) sera utilisé pour stocker les informations nominatives des membres.</p>
<p>Enfin, la date de naissance sera enregistrée dans la table sous la forme d'un champ <strong>date_naissance</strong>. Il existe plusieurs types mysql possible pour stocker ce type d'informations (<a href="http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-types.html">http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-types.html</a>). Le type date semble le plus approprié. Il permet d'enregistrer les données sous un format ANNEE-MOIS-JOUR.</p>

<div class="DefaultFrame">
  <p>Note : Si vous souhaitez stocker l'heure de naissance en plus de la date, vous pouvez utiliser le type <a href="http://dev.mysql.com/doc/refman/5.0/fr/datetime.html">DATETIME</a> </p>
  </div>

<p>Voici la requete SQL permettant de créer la structure de la table membres:</p>
<pre class="sql"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #ff0000;">`membres`</span> <span style="color: #66cc66;">(</span>

  <span style="color: #ff0000;">`id`</span> INT<span style="color: #66cc66;">(</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">)</span> <span style="color: #993333; font-weight: bold;">UNSIGNED</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span>, 
  <span style="color: #ff0000;">`nom`</span> VARCHAR<span style="color: #66cc66;">(</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">)</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>, 
  <span style="color: #ff0000;">`prenom`</span> VARCHAR<span style="color: #66cc66;">(</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">)</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>, 
  <span style="color: #ff0000;">`date_naissance`</span> DATE <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>,
  <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">(</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">)</span>

<span style="color: #66cc66;">)</span>;
 </pre><div class="DefaultFrame">
<p>Pour les utilisateurs du logiciel <a href="http://www.phpmyadmin.net/home_page/index.php">phpMyAdmin</a>, vous pouvez directement copier-coller cette requete SQL dans le champ Exécuter une requete, de l'onglet SQL. </p>
</div>

<h2>Les enregistrements</h2>
<p><span class="Lettrine">S</span>aisissons quelques membres dans la liste afin de procéder à des test de requête SQL. L'identifiant étant de type auto-increment, il est inutile de le saisir, à chaque enregistrement, sa valeur va augmenter automatiquement.</p>

<pre class="sql"> 
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #ff0000;">`membres`</span>  <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">(</span><span style="color: #ff0000;">''</span>, <span style="color: #ff0000;">'Némar'</span>, <span style="color: #ff0000;">'Jean'</span>, <span style="color: #ff0000;">'1975-05-02'</span><span style="color: #66cc66;">)</span>;

<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #ff0000;">`membres`</span>  <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">(</span><span style="color: #ff0000;">''</span>, <span style="color: #ff0000;">'Touille'</span>, <span style="color: #ff0000;">'Sacha'</span>, <span style="color: #ff0000;">'1982-07-20'</span><span style="color: #66cc66;">)</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #ff0000;">`membres`</span>  <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">(</span><span style="color: #ff0000;">''</span>, <span style="color: #ff0000;">'Choupovert'</span>, <span style="color: #ff0000;">'Michel'</span>, <span style="color: #ff0000;">'1948-02-08'</span><span style="color: #66cc66;">)</span>;

<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #ff0000;">`membres`</span>  <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">(</span><span style="color: #ff0000;">''</span>, <span style="color: #ff0000;">'Proviste'</span>, <span style="color: #ff0000;">'Alain'</span>, <span style="color: #ff0000;">'1976-12-25'</span><span style="color: #66cc66;">)</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #ff0000;">`membres`</span>  <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">(</span><span style="color: #ff0000;">''</span>, <span style="color: #ff0000;">'Ochon'</span>, <span style="color: #ff0000;">'Paul'</span>, <span style="color: #ff0000;">'1952-04-01'</span><span style="color: #66cc66;">)</span>;

 </pre>
<p> </p>
<p> </p>
<h2>Afficher les enregistrements dans une page Web </h2>
<p><span class="Lettrine">N</span>otre base contient désormais des données. Nous allons voir comment récupérer ces données en PHP afin de les afficher dans une page Web.</p>
<p>Voici les différentes étapes et les fonctions PHP d'accès à Mysql que nous utilisons.</p>

<ol>
	<li>
	<strong>Connection au système de gestion de base de données Mysql</strong>
		<p>
		La fonction <a href="http://fr3.php.net/mysql_connect">mysql_connect()</a> permet d'établir une relation entre PHP et le serveur Mysql.
		Nous allons l'utiliser avec 3 arguments: l'adresse du serveur Mysql, le nom d'utilisateur de la base pour notre table, le mot de passe associé.
	 </p>

	</li>

	<li>
	<strong>Sélection de la table</strong>
		<p>
		<a href="http://fr3.php.net/mysql_select_db">mysql_select_db()</a> est la fonction utilisée pour sélectionner la base de données sur laquelle nous allons travailler.
		</p>

	</li>

	<li>
	<strong>Ecriture de la requete</strong>
 		<p>Pour des raisons de clarté, nous allons stocker notre requete SQL dans la variable $requete. Le langage SQL est un langage utilisé pour administer, interroger une base de données. <br />
 		  Nous devons afficher le nom, le prénom et la date de naissance de notre table membres. La requete auront donc cette forme:<br />

 		 
		<pre class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span> nom, prenom, date_naissance <span style="color: #993333; font-weight: bold;">FROM</span> membres;</pre>
	    </li>
	<li>	
		<strong>Exécution de la requete </strong>
  		<p>La fonction permettant d'envoyer une requete SQL sur une base mysql est <a href="http://fr3.php.net/mysql_query">mysql_query()</a></p>

	</li>

	<li>
	<strong>Récupération des informations de notre requete</strong><br />
	<p>Nous allons récupérer les informations issues de notre requete grace à la fonction <a href="http://fr3.php.net/mysql_fetch_array">mysql_fetch_array()</a> qui permet de retourner une ligne de résultat sous la forme d'un tableau associatif (ou indicé). <br />

	  Nous allons englober cette fonction dans une boucle while afin de récupérer à chaque tour de boucle, tous les enregistrements.</p>
	 <div class="DefaultFrame">
       <p>Notons qu'il existe d'autres fonctions possibles telles que <a href="http://fr3.php.net/mysql_fetch_row">mysql_fetch_row()</a>, <a href="http://fr3.php.net/manual/fr/function.mysql-fetch-assoc.php">mysql_fecth_assoc</a>.</p>
	   </div>

	 
	</li>
    <li>
	  <p><strong>Affichage des résultats</strong><br />
	    Pour des raisons pratique, nous stockerons les informations du tableau associatif dans des variables, puis nous affichons ces variables grace à la fonction <a href="http://fr3.php.net/manual/fr/function.print.php">print</a> (ou la structure <a href="http://fr3.php.net/manual/fr/function.echo.php">echo</a>). </p>
		<br /><br /><br /> 
           
    </li>
    </ol>


<p>Voici donc le script permettant d'afficher les membres:</p>
<pre class="php"><span style="color: #000000; font-weight: bold;"><?php</span> 
<span style="color: #0000ff;">$connect</span>=<a href="http://www.php.net/mysql_connect"><span style="color: #000066;">mysql_connect</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">"localhost"</span>,<span style="color: #ff0000;">"user"</span>,<span style="color: #ff0000;">"pass"</span><span style="color: #66cc66;">)</span>;

<a href="http://www.php.net/mysql_select_db"><span style="color: #000066;">mysql_select_db</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">"anniversaire"</span>,<span style="color: #0000ff;">$connect</span><span style="color: #66cc66;">)</span>;
 
<span style="color: #0000ff;">$requete</span>=<span style="color: #ff0000;">"SELECT nom, prenom, date_naissance FROM membres"</span>;
 
<span style="color: #0000ff;">$query</span>=<a href="http://www.php.net/mysql_query"><span style="color: #000066;">mysql_query</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$requete</span>, <span style="color: #0000ff;">$connect</span><span style="color: #66cc66;">)</span>;

<span style="color: #b1b100;">while</span><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$row</span>=<a href="http://www.php.net/mysql_fetch_array"><span style="color: #000066;">mysql_fetch_array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$query</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
 
<span style="color: #0000ff;">$nom</span>=<span style="color: #0000ff;">$row</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'nom'</span><span style="color: #66cc66;">]</span>;
<span style="color: #0000ff;">$prenom</span>=<span style="color: #0000ff;">$row</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'prenom'</span><span style="color: #66cc66;">]</span>;

<span style="color: #0000ff;">$date</span>=<span style="color: #0000ff;">$row</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'date_naissance'</span><span style="color: #66cc66;">]</span>;
 
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">"$nom $prenom $date<br />"</span><span style="color: #66cc66;">)</span>;
 
<span style="color: #66cc66;">}</span>
<span style="color: #000000; font-weight: bold;">?></span>
 </pre>
<p> </p><p> </p>
<p>Améliorions l'affichage en placant nos données dans un tableau HTML (ce sont des données tabulaire).</p>

<p> </p>

<div>
<pre class="php"> 
<table border=<span style="color: #ff0000;">"1"</span>>
<tr><th>Nom</th><th>Pr&eacute;nom</th><th>N&eacute; le</th></tr>

<span style="color: #000000; font-weight: bold;"><?php</span> 
<span style="color: #0000ff;">$connect</span>=<a href="http://www.php.net/mysql_connect"><span style="color: #000066;">mysql_connect</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">"localhost"</span>,<span style="color: #ff0000;">"user"</span>,<span style="color: #ff0000;">"pass"</span><span style="color: #66cc66;">)</span>;
<a href="http://www.php.net/mysql_select_db"><span style="color: #000066;">mysql_select_db</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">"anniversaire"</span>,<span style="color: #0000ff;">$connect</span><span style="color: #66cc66;">)</span>;
 

<span style="color: #0000ff;">$requete</span>=<span style="color: #ff0000;">"SELECT nom, prenom, date_naissance FROM membres"</span>;
 
<span style="color: #0000ff;">$query</span>=<a href="http://www.php.net/mysql_query"><span style="color: #000066;">mysql_query</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$requete</span>, <span style="color: #0000ff;">$connect</span><span style="color: #66cc66;">)</span>;
<span style="color: #b1b100;">while</span><span ]]>
	  </description>
    </item>
		
    <item>
      <title>De Windows &#224; Mac OS X</title>
      <author>null@janeirostudio.com</author>
      <pubDate>Wed, 14 Mar 2007 00:00:00 +0100</pubDate>
      <link>http://www.janeirostudio.com/?articles=65</link>
      <guid>http://www.janeirostudio.com/?articles=65</guid>
      <description><![CDATA[
	  <p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/intro.jpg" alt="intro" class="imgD" style="border: 1px solid rgb(216, 216, 216);" /><span class="Lettrine">L</span>orsqu&rsquo;on  passe d'un ordinateur Windows à Macintosh, la phase d&rsquo;adaptation à ce nouvel environnement n&rsquo;est pas toujours évidente et peut même s&rsquo;avérer longue et ardue. A mes débuts sur Macintosh, il m'a fallu du temps pour comprendre comment faire toutes les choses que j&rsquo;effectuais naturellement sur mon PC.</p>
<p>Cet article a pour objectif de vous faciliter cette démarche afin que vous vous sentiez très vite à l'aise sur ce nouveau système d'exploitation. Ce qui suit est une présentation des concepts de base Mac OS X qui met  l'accent sur les différences par rapport à Windows XP.</p>
<div class="DefaultFrame">
<p>Vous noterez que, dans les images illustrant l'article, je n'utilise pas le jeu d'icônes fourni par Apple. La forme et la signalétique étant pratiquement identiques, vous ne devriez pas éprouver de difficulté à les reconnaître. Vous pouvez télécharger le jeu d'icônes  <strong>Agua</strong> sur <a href="http://iconfactory.com/freeware/preview/agua"><strong>Iconfactory</strong></a>.</p>
</div>
<h2>Mac OS X</h2>
<p><span class="Lettrine">L</span>e <a href="http://fr.wikipedia.org/wiki/Système_d'exploitation">système d'exploitation</a> (ou OS pour Opérating System en anglais) gérant votre nouvelle machine est <a href="http://fr.wikipedia.org/wiki/Mac_OS">Mac OS</a> 10.4 <a href="http://www.apple.com/fr/macosx/tiger/"><strong>Tiger</strong></a>. Depuis la version <a href="http://fr.wikipedia.org/wiki/Mac_OS_X">10 (X)</a>, Mac OS fait partie de la famille des systèmes <a href="http://fr.wikipedia.org/wiki/UNIX">UNIX</a> (<a href="http://fr.wikipedia.org/wiki/Berkeley_software_distribution" title="Berkeley Software Distribution">BSD</a>). Cette particularité lui apporte une stabilité et une sécurité accrue, mais aussi certaines différences par rapport à Windows. </p>
<div class="DefaultFrame">
<h3>Différentes versions de Mac OS X </h3>
<p><strong>10.0</strong> (Cheetah), <strong>10.1</strong> (Puma), <strong>10.2</strong> (Jaguar), <strong>10.3</strong> (Panther), <strong>10.4 </strong>(Tiger), et enfin Mac OS <strong>10.5</strong> <a href="http://www.apple.com/fr/macosx/leopard/"><strong>Leopard</strong></a> (attendu au cours de l'année 2007).</p>
</div>
<h2>Le gestionnaire de fichiers </h2>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/disques_sur_le_bureau.jpg" alt="Disques montés sur le Bureau de Mac OS X" class="imgD" style="border: 1px solid rgb(216, 216, 216);" /><span class="Lettrine">A</span>u premier démarrage de votre système, vous remarquerez qu'il n'y a pas de<strong> poste de travail</strong>. La quasi totalité des actions commence et se termine sur le bureau. C'est à partir de cet espace de travail que vous accédez aux disques durs, CD-ROM ou tout autre périphérique de stockage.</p>
<p> </p>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/finder.jpg" alt="Finder, explorateur de fichier de Mac OS X" class="imgG" style="border: 1px solid rgb(216, 216, 216);" />L'accès aux fichiers se fait par le <a href="http://fr.wikipedia.org/wiki/Finder"><strong>Finder</strong></a> qui est l'équivalent de l'<a href="http://fr.wikipedia.org/wiki/Explorateur_Windows"><strong>explorateur de Windows</strong></a>. Tout comme son homologue, arrêter l'exécution du Finder empêche la navigation dans l'architecture des répertoires de votre ordinateur.</p>
<p> </p>
<p>La fenêtre du Finder est composée sur la gauche d'une partie représentant des raccourcis vers les disques et les dossiers les plus utilisés (Maison, Applications, Documents, Images, Musique, ...). Vous pouvez placer d'autres raccourcis vers vos répertoires ou documents préférés en faisant glisser ceux-ci dans cette zone. Pour supprimer un raccourci, il suffit de le glisser hors de la zone. L'animation (nuage de fumée) confirme la suppression.</p>
<br />
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/fenetre_du_finder.jpg" alt="Fenêtre du Finder" style="border: 1px solid rgb(216, 216, 216);" /></p>
<strong><br /> </strong>
<p><strong>L'interaction avec les dossiers et les fichiers se fait comme sur Windows avec quelques petites particularités :</strong></p>
<p class="ListGrey"><span class="HightLight">Le mode de présentation "colonnes"</span>, inexistant sur Windows, qui vous permet de naviguer dans l'architecture sans vous perdre.</p>
<p class="ListGrey"><span class="HightLight">Le mode de présentation "Liste"</span>  différent de celui qui existe sur Windows. Ce mode s'apparente plus à l'architecture "en escalier" de l'explorateur Windows.  </p>
<p class="ListGrey"><span class="HightLight">Pour renommer</span> un fichier ou un répertoire, il faut le sélectionner et taper sur la touche <strong>Entrée</strong> (retour chariot). Oubliez la méthode clic droit, renommer.</p>
<p class="ListGrey"><span class="HightLight">La modification manuelle de la taille des fenêtres </span> ne peut se faire que par le coin inférieur droit.</p>
<p class="ListGrey"><span class="HightLight">Sur Mac OS X la fonction "<strong>couper/coller</strong>"</span>  de Windows est remplacée par la fonction <strong>"glisser/déposer"</strong>. Elle vous permet de  déplacer un fichier d'un répertoire à un autre. Néanmoins, cette fonction <strong>"couper/coller"</strong> telle qu'elle existe sur Windows est disponible dans le cas de la manipulation de texte.</p>
<p class="ListGrey"><span class="HightLight">Si vous écrasez un dossier</span> (placer un dossier identique de même nom dans un même répertoire), contrairement à Windows qui fusionne les contenus de 2 dossiers (sauf dans le cas de noms de fichiers identiques dans les dossiers de même nom), le Finder <strong>va supprimer l'ancien dossier pour le remplacer</strong> par le nouveau. Attention donc à la perte de données à cause de cette action.</p>
<div class="DefaultFrame">
<p>Pour modifier les options de la barre d'outils du Finder, faites un clic droit (ctrl+clic) sur celle-ci et choisissez <strong>Personnaliser la barre d'outils</strong>. </p>
</div>
<h2>Comportement des fenêtres</h2>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/controles_des_fenetres.jpg" class="imgD" alt="Contrôles des fenêtres" style="border: 1px solid rgb(216, 216, 216);" /><span class="Lettrine">C</span>omme sur Windows il est possible d'agir sur le comportement (agrandir, réduire, ...) des fenêtres. Sur Mac OS X les boutons sont situés en haut à gauche. Le bouton rouge ferme la fenêtre (pas l'application : voir chapitre sur le Dock), l'orange la réduit dans le Dock, et enfin, le vert l<strong>'agrandit dans la limite du contenu</strong>. Le mode plein écran étant généralement réservé à la vidéo.</p>
<br />
<p>Pour finir, le mode<strong> Exposé</strong> permet de faire le tri et de naviguer parmi les fenêtres ouvertes à l'aide d'un raccourci clavier. En appuyant sur la touche <span class="Invert">F9</span>, Exposé vous affichera les vignettes de toutes les fenêtres ouvertes, la touche <span class="Invert">F10</span>, celles de l'application en cours d'utilisation, et enfin, la touche <span class="Invert">F11</span> masquera sur les bords de l'écran toutes les fenêtres pour vous permettre d'accéder au bureau.</p>
<br />
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/expose.jpg" alt="Exposé" style="border: 1px solid rgb(216, 216, 216);" /></p>
<p>Depuis Mac OS 10.4 Tiger, la touche <span class="Invert">F12</span> est dédiée à <strong><a href="http://fr.wikipedia.org/wiki/Dashboard">Dashboard</a></strong>. Quand vous appuyez sur cette touche (ou sur l'icône dans le Dock), une couche translucide s'affiche au dessus de votre bureau, vous donnant accès à des applications appelées <a href="http://fr.wikipedia.org/wiki/Widget"><strong>Widgets</strong></a> (Post-it, calendrier, météo, ...). Cliquez sur le signe <strong>"+"</strong> sur le coin inférieur gauche pour ajouter des nouveaux Widgets et sur le petit <strong>"i"</strong> pour le réglage des options d'un Widget.</p>
<h2>La barre des menus</h2>
<p><span class="Lettrine">C</span>e qui déstabilise au début l'utilisateur Windows est que <strong>Mac OS dissocie les menus d'une application des fenêtres de celle-ci</strong>. Sur Mac OS X vous ne trouverez pas les menus Fichier, Édition, ... sur les fenêtres, mais sur l'unique barre des menus en haut de l'écran. Les menus changent en fonction de l'application en cours d'utilisation. La barre des menus commence toujours par le menu <strong>Pomme</strong> (options du système), suivi du <strong>nom de l'application</strong> (options de l'application) et enfin par les <strong>éléments communs</strong> (Fichier, Édition, ...).</p>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/barre_des_menus.jpg" alt="Barre des menus" style="border: 1px solid rgb(216, 216, 216);" /></p>
<h2>Le Dock</h2>
<p><span class="Lettrine">L</span>e Dock peut être considéré comme <strong>la barre de tâches de Windows</strong> (la barre où s'ouvrent les fenêtres des programmes en bas de l'écran). Le Dock permet de placer aussi des alias (raccourcis) vers vos applications préférées. En fait, seules les 2 icônes (le Finder et la Corbeille) situés aux extrémités du Dock ne sont pas de simples raccourcis. Pour placer un raccourci vers une application, il suffit de faire glisser l'icône correspondant à celle-ci  vers le Dock. Pour la supprimer, il suffit de la faire glisser en dehors du Dock. L'animation (nuage de fumée) confirme la suppression du raccourci du Dock.</p>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/dock.jpg" alt="Le Dock" style="border: 1px solid rgb(216, 216, 216);" /></p>
<p>À chaque fois que vous ouvrez une application, son icône apparaît dans le Dock, quand vous la quittez l'icône disparaît. Faire glisser l'icône d'une application à l'intérieur du Dock, quand elle est en cours d'exécution, conservera l'icône qui, alors, deviendra un raccourci.</p>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/encours.jpg" class="imgG" alt="Application en cours d'exécution" style="border: 1px solid rgb(216, 216, 216);" />Une des particularités de Mac OS est  que,  <strong>lorsqu&rsquo;on clique sur le bouton rouge pour fermer une fenêtre, celà n'arrête pas l'exécution du programme</strong>, mais ferme uniquement la fenêtre. Les applications en cours d'exécution sont matérialisées dans le Dock par <strong>un triangle noir sous l'icône</strong> de l'application. On arrête l'exécution d'une application par le menu <strong>Nom de l'application &rarr; Quitter</strong>, par le raccourci clavier <span class="Invert">Pomme</span><span class="Invert">Q</span>, ou encore en faisant un clic droit (ctrl+clic ou clic gauche prolongé) sur l'icône dans le Dock pour faire apparaître un menu contextuel et choisir <strong>Quitter</strong>.</p>
<h2>Architecture des répertoires</h2>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/home.jpg" class="imgD" alt="Dossier Utilisateur (Maison)" style="border: 1px solid rgb(216, 216, 216);" /><span class="Lettrine">C</span>omme sur les systèmes UNIX, les fichiers de l'utilisateur sont placés dans un répertoire <strong>Maison</strong> (qui porte votre nom de connexion) séparant ainsi les fichiers systèmes importants de vos documents et réglages personnalisés. Sauf si vous êtes un utilisateur averti, vous ne devez donc pas toucher aux fichiers qui ne se trouvent pas dans votre dossier <strong>utilisateur</strong> (maison).</p>
<p>L'utilisation de ce concept (isolement du répertoire de l'utilisateur) est un avantage pour la sauvegarde de vos données, mais aussi pour la sécurité. Dans votre dossier <strong>utilisateur </strong>(maison), vous remarquerez qu'il y a des répertoires prédéfinis qui n'ont pas d'importance particulière (à l'exception du dossier Bibliothèque) et contribuent simplement à l'organisation de vos documents.</p>
<p>Il est important de <strong>ne pas renommer les répertoires prédéfinis</strong> de votre répertoire <strong>utilisateur</strong> (maison). Mac OS X étant multilingue, il traduira dynamiquement <strong>Library</strong> par <strong>Bibliothèque</strong>, <strong>Pictures</strong> par <strong>Images</strong>, etc. Si vous renommez <strong>Bibliothèque </strong>en <strong>Réglages</strong>, par exemple, cela entraînera une confusion du système.</p>
<h3>Particularité du dossier "Bibliothèque" (Library) dans votre répertoire utilisateur</h3>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/library.jpg" class="imgG" alt="Dossier Bibliothèque" style="border: 1px solid rgb(216, 216, 216);" />C'est dans ce répertoire que sont placés les <strong>fichiers de configuration de l'utilisateur</strong>. Ce dossier correspond au répertoire <strong>Documents and setting</strong> sur Windows. Même si vous ne risquez pas de détruire le système, il est important de bien réfléchir avant de manipuler les fichiers à l'intérieur de ce dossier pour ne pas avoir à reconfigurer certaines fonctions ou perdre des données telles que vos emails, vos mots de passe, vos favoris, etc. </p>
<p>Dans les cas extrêmes, vous pouvez supprimer votre dossier utilisateur   en passant par la gestion des comptes dans les <strong>Préférences Système</strong>. Créez ensuite un nouveau compte (donc un nouveau répertoire <strong>Maison</strong>). Avant de supprimer votre compte utilisateur, n'oubliez pas de faire une sauvegarde de vos documents.</p>
<h3>Particularité du dossier "Sites" dans votre répertoire utilisateur</h3>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/sites.jpg" class="imgG" alt="Dossier Sites" style="border: 1px solid rgb(216, 216, 216);" />Ici, vous pourrez stocker vos fichiers HTML (ou autre) si vous souhaitez héberger un site internet sur votre ordinateur. Mac OS X est fourni avec le <strong><a href="http://fr.wikipedia.org/wiki/Apache_HTTP_Server">serveur Web Apache</a></strong>. Pour utiliser le serveur Web, vous devez activer l'option "Partage Web personnel" dans les préférences systèmes (icône partage).</p>
<h3>Particularité du dossier "Musique" dans votre répertoire utilisateur</h3>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/music.jpg" class="imgG" alt="Dossier Musique" style="border: 1px solid rgb(216, 216, 216);" />Ce répertoire n'a pas d'importance particulière sauf si vous utilisez le logiciel <strong><a href="http://www.apple.com/fr/itunes/">iTunes</a></strong> (fourni avec votre Mac) pour gérer votre musique. iTunes est un logiciel puissant capable de gérer une grande quantité de musique et de ce fait, il peut déstabiliser l'utilisateur et iTunes lui-même dès qu'on essaye de modifier les dossiers prédéfinis.</p>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/DeWindowsAMacOSX/itunes.jpg" class="imgD" alt="iTunes" style="border: 1px solid rgb(216, 216, 216);" /><strong>Si vous supprimez (ou renommez) le dossier iTu ]]>
	  </description>
    </item>
		
    <item>
      <title>L&#38;#039;exposition : un peu de lumi&#232;re calcul&#233;e</title>
      <author>null@janeirostudio.com</author>
      <pubDate>Sat, 20 Jan 2007 00:00:00 +0100</pubDate>
      <link>http://www.janeirostudio.com/?articles=64</link>
      <guid>http://www.janeirostudio.com/?articles=64</guid>
      <description><![CDATA[
	  <p><img style="border: 1px solid rgb(216, 216, 216);" class="imgD" alt="intro" src="http://www.janeirostudio.com/ressources/Image/Articles/ExpositionPhoto/intro.jpg" /><span class="Lettrine">E</span>n matière de photographie, vous avez sans doute déjà entendu parler de lumière et d'exposition. Tous ces clichés de vacances trop sombres ou trop éclairées, toutes ces photos d'anniversaires où l'on ne distingue pas grand-chose. Mais qu'est-ce qui ne va pas ? Nous laissons par facilité ou ignorance la gestion de l'exposition à l'appareil photo. Généralement, il ne s'en sort pas trop mal selon la situation et le type de boîtier que vous avez acheté, mais le résultat n'est pas toujours idéal.</p>
<p>Nous verrons dans cet article comment maîtriser l'éclairage naturel de vos cliché .</p>
<p> </p>
<div class="DefaultFrame">
<p>Note : dans le cadre de cet article, nous avons utilisé un appareil Canon EOS 300D muni d'un objectif 28-55mm.</p>
</div>
<h2>Réaliser une photographie correctement exposée</h2>
<h3 style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">La théorie</h3>
<p>L'exposition en photographie est la combinaison de l'ouverture du diaphragme et de la vitesse d'obturation. Ce résultat donne une quantité de lumière qui parvient au capteur de l&rsquo;appareil photo. On parle de résultat, car différents facteurs influencent ce processus. Bien coordonner tous ces paramètres vous permettra d&rsquo;avoir une photo correctement éclairée, donc de meilleurs atouts pour réussir vos clichés.</p>
<h3 style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">La pratique</h3>
<p>Comme nous l'avons précisé en introduction, le but est de réaliser une photographie correctement exposée, nous allons donc repérer les bonnes valeurs d'exposition par la prise d'un cliché en mode auto.</p>
<p style="margin-left: 30px;"><span class="HighLightPink">1. </span>Choisissez un sujet d&rsquo;essai fixe avec une luminosité globale uniforme,</p>
<p style="margin-left: 30px;"><span class="HighLightPink">2. </span>faites une photo en mode auto et repérez les valeurs de vitesse et d'ouverture (exemple : f 5,6 et 1/100s),</p>
<p style="margin-left: 30px;"><span class="HighLightPink">3. </span>positionnez votre appareil en mode manuel, puis rentrez les valeurs retenues précédemment.</p>
<p style="margin-left: 30px;"><span class="HighLightPink">4. </span>Une fois ces valeurs définies, vous ne manipulerez que le réglage de la <a href="http://fr.wikipedia.org/wiki/Vitesse_d'obturation">vitesse d'obturation</a>.</p>
<h2>Trois types d'expositions </h2>
<p><img style="border: 1px solid rgb(216, 216, 216);" class="imgD" alt="figure 1" src="http://www.janeirostudio.com/ressources/Image/Articles/ExpositionPhoto/fig1.jpg" /><span class="HightLight">Sous-exposition (1/200s) :</span> pour avoir une photographie sous-exposée il suffit d&rsquo;augmenter la vitesse d&rsquo;obturation, c'est à dire passer de 1/100s à 1/200s, la quantité de lumière suffisante n&rsquo;aura pas le temps d&rsquo;arriver au capteur, ce qui donnera une image trop sombre.</p>
<p> </p>
<p><img style="border: 1px solid rgb(216, 216, 216);" class="imgD" alt="figure 2" src="http://www.janeirostudio.com/ressources/Image/Articles/ExpositionPhoto/fig2.jpg" /><span class="HightLight">Surexposition (1/13s) : </span>pour avoir une photographie surexposée, il suffit de faire l&rsquo;inverse, c'est-à-dire diminuer la vitesse d&rsquo;obturation (de 1/100s vers 1/13s) et la quantité de lumière arrivera en excès au capteur, ce qui donnera une image trop éclairée.</p>
<p> </p>
<p><img style="border: 1px solid rgb(216, 216, 216);" class="imgD" alt="figure 3" src="http://www.janeirostudio.com/ressources/Image/Articles/ExpositionPhoto/fig3.jpg" /><span class="HightLight">Exposition idéale (1/100s) :</span> pour avoir une exposition idéale, il faut calculer la quantité de lumière nécessaire au capteur pour qu&rsquo;il soit éclairé correctement. Cela peut être fait en manuel (ex : mettre la vitesse sur 1/100s) mais en général c&rsquo;est le boîtier qui s&rsquo;en charge dans des situations normales d&rsquo;éclairage. </p>
<p> </p>
<p>Ne vous inquiétez pas si les premiers clichés ne sont pas réussis, c'est avec de la persévérance que l'on maîtrise son sujet. En effet, chaque sujet possède une intensité lumineuse différente qu'il faudra maîtriser à l'aide de votre boîtier. </p>
<h2>Cas d'un éclairage complexe</h2>
<h3 style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">La théorie </h3>
<p>Maintenant étudions le cas d'une scène à photographier où l&rsquo;éclairage est complexe, car comportant des zones très sombres et d'autres très claires. En effet, si celle-ci comporte un fort contraste cela pose problème au boîtier, le mécanisme n&rsquo;arrive à évaluer correctement ces zones ou ne possèdent pas les moyens de le faire tout simplement (composants électroniques bas de gamme).</p>
<p><img style="border: 1px solid rgb(216, 216, 216);" class="imgD" alt="figure 4" src="http://www.janeirostudio.com/ressources/Image/Articles/ExpositionPhoto/fig4.jpg" />Sur la photo à droite, on constate que le ciel est <strong>surexposé</strong> et que le feuillage garde ses couleurs. Tout le travail réside maintenant dans l&rsquo;évaluation des zones de lumières par le photographe qui doit prendre les bonnes décisions, changer de point de vue ou alors faire l&rsquo;impasse sur certains détails qui seront trop sombres. On peut également faire un compromis des deux plus fortes valeurs.</p>
<p>On préférera toujours une photo sous-exposée (mais pas trop)  à une photo surexposée, car les zones brûlées (blanches) ne peuvent pas être rattrapées par un logiciel de traitement d&rsquo;image. Cela dit, certains boîtiers haut de gamme permettent de différencier plus facilement les forts contrastes de lumière par de multiples points de calcul <a href="http://fr.wikipedia.org/wiki/Through_the_lens">TTL</a> (through the lens). Les surexpositions et sous-expositions sont alors régulées facilitant de ce fait le travail du photographe.</p>
<h3 style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">La pratique</h3>
<p>Nous allons donc essayer de prendre un cliché d'une scène comportant un fort contraste de lumière, mais d'abord localisons ces fameux capteurs <a href="http://fr.wikipedia.org/wiki/Through_the_lens">TTL</a>.</p>
<img style="border: 1px solid rgb(216, 216, 216);" class="imgD" alt="figure 5" src="http://www.janeirostudio.com/ressources/Image/Articles/ExpositionPhoto/fig5.jpg" />
<p style="margin-left: 30px;"><span class="HighLightPink">1. </span>Mettez-vous en <strong>mode auto</strong> <strong>(A)</strong>,</p>
<p style="margin-left: 30px;"><span class="HighLightPink">2. </span>Pressez le déclencheur à mi-course vous constaterez qu'un ou plusieurs points lumineux <a href="http://fr.wikipedia.org/wiki/Through_the_lens">TTL</a> s&rsquo;allument dans le viseur aux endroits définis par calcul automatique (ici, une mesure 4 points <a href="http://fr.wikipedia.org/wiki/Through_the_lens">TTL</a>)</p>
<p style="margin-left: 30px;"><span class="HighLightPink">3. </span>Relâchez le déclencheur.</p>
<p style="margin-left: 30px;"> </p>
<div class="FloatTrick"> </div>
<p>Pour prendre ce cliché, nous allons placer l'appareil en mode <strong>Programme (P)</strong> puis,</p>
<img style="border: 1px solid rgb(216, 216, 216);" class="imgD" alt="figure 6" src="http://www.janeirostudio.com/ressources/Image/Articles/ExpositionPhoto/fig6.jpg" />
<p style="margin-left: 30px;"><span class="HighLightPink">1. </span>Choisissez le collimateur Auto-focus central fixe</p>
<p style="margin-left: 30px;"><span class="HighLightPink">2. </span>Cadrez et pressez le déclencheur à mi-course </p>
<div class="FloatTrick"> </div>
<p>Vous constaterez que la netteté et l&rsquo;exposition se feront grâce au point central de l&rsquo;image. Si celui-ci est à la bonne luminosité par rapport à l&rsquo;image entière vous aurez une photo correctement exposée dans l&rsquo;ensemble. Si ce n&rsquo;est pas le cas, vous aurez trop de zones sous-exposées ou surexposées.</p>
<h3 style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">La solution</h3>
<p>Lorsqu'une scène comporte des particularités au niveau de la luminosité, il faut décider de la zone de lumière à prendre en compte :</p>
<img style="border: 1px solid rgb(216, 216, 216);" class="imgD" alt="figure 7" src="http://www.janeirostudio.com/ressources/Image/Articles/ExpositionPhoto/fig7.jpg" />
<p style="margin-left: 30px;"><span class="HighLightPink">1. </span>Visez la zone la plus éclairée du viseur    </p>
<p style="margin-left: 30px;"><span class="HighLightPink">2. </span>Appuyez sur le déclencheur à mi-course</p>
<p style="margin-left: 30px;"><span class="HighLightPink">3. </span>Recadrez à votre convenance sans lâcher le bouton</p>
<p style="margin-left: 30px;"><span class="HighLightPink">4. </span>Pressez le déclencheur complètement.</p>
<div class="FloatTrick"> </div>
<p>    Vous n&rsquo;aurez aucune zone surexposée, mais sûrement des zones sous-exposées (voir ci-dessus). Ici on constate que le ciel très lumineux est correctement exposé, par contre le feuillage lui est trop <strong>sombre</strong> et <strong>flou</strong>, car la mise au point s&rsquo;est fait sur le ciel (<a href="http://fr.wikipedia.org/wiki/Profondeur_de_champ">profondeur de champ</a>).</p>
<h2>Conclusion</h2>
<p>Ces photos n&rsquo;ont aucun intérêt artistique, mais illustrent très bien la différence de calcul de la luminosité.</p>
<p>Par contre, si vous souhaitez obtenir un juste milieu, vous pouvez mettre le boîtier en <strong>mode manuel (M)</strong> et agir directement sur les paramètres d'ouverture et de vitesse pour obtenir un résultat homogène sans avoir à recadrer. Vous pourrez ensuite, faire le rattrapage lumineux et colorimétrique avec un logiciel dédié.</p>
<p>Et si ce n&rsquo;était qu&rsquo;une histoire de lumière? L&rsquo;affaire ne serait pas aussi dure à négocier. À cela s&rsquo;ajoute la gestion de la profondeur de champ (netteté), le type de sujet et bien d&rsquo;autres paramètres encore. Dans cet exemple, il aurait fallu associer la profondeur de champ et l&rsquo;exposition pour réussir la prise de vue.</p>
<p> À vous de jouer maintenant, en n'oubliant pas que de multiples clichés sont nécessaires afin d'obtenir le meilleur résultat possible.</p> ]]>
	  </description>
    </item>
		
    <item>
      <title>CSSEdit 2.0 : CSS avec classe !</title>
      <author>null@janeirostudio.com</author>
      <pubDate>Tue, 14 Nov 2006 00:00:00 +0100</pubDate>
      <link>http://www.janeirostudio.com/?articles=61</link>
      <guid>http://www.janeirostudio.com/?articles=61</guid>
      <description><![CDATA[
	  <p><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/intro.jpg" alt="intro" class="imgD" style="border: 1px solid rgb(216, 216, 216);" /><span class="Lettrine">À</span> l'occasion de la sortie de la nouvelle version de <a href="http://macrabbit.com/cssedit/">CSSEdit</a>, je me suis décidé à écrire un article pour présenter ce logiciel de création de feuille de style. Ce logiciel est en partie responsable de mon passage de la plate-forme Windows à celle d'Apple, je me devais donc de faire une présentation de cette petite merveille. CSSEdit 1x était déjà sans aucun doute le meilleur éditeur <abbr title="Cascading Style Sheet">CSS</abbr> du marché, car il savait allier puissance, convivialité et productivité. La version 2.0 nous offre un logiciel encore plus puissant et intuitif qui permet à quiconque de créer, analyser, déboguer des feuilles de styles avancées en très peu de temps.</p>
<div class="DefaultFrame">
<p>Note : <a href="http://macrabbit.com/cssedit/">CSSEdit</a>, ne vous exempte pas de l'apprentissage du code <abbr title="Cascading Style Sheet">CSS</abbr>, même s'il contribue beaucoup à la compréhension du résultat d'un style appliqué à un élément. C'est un outil pour vous permettre d'améliorer votre productivité en vous évitant de taper des centaines de lignes de code ou d'utiliser plusieurs outils moins ergonomiques. La compréhension du code vous permettra de détecter d'éventuels <a href="http://fr.wikipedia.org/wiki/Bogue_(informatique)">bogues</a> de l'application ou d'insérer des fonctions avancées qui ne peuvent se faire via l'interface graphique.</p>
</div>
<h2>Présentation de l'interface</h2>
<p><span class="Lettrine">C</span>omme vous pouvez le voir <span class="Figure">(figure 1)</span>, l'interface du logiciel est très simple. Elle peut être encore simplifiée en choisissant de ne pas afficher le code source. Dans l'exemple ci-dessous, <span class="Figure">(figure 1)</span> j'ai choisi de vous présenter l'interface la plus complète (avec le code source) qui se présente en 3 panneaux (de gauche à droite) : <strong>1</strong> - l'organisation des styles, <strong>2</strong> - l'éditeur de code source et enfin <strong>3</strong> - l'éditeur graphique pour créer vos styles sans écrire la moindre ligne de code.</p>
<p style="text-align: center;"><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/fig1.jpg" title="Présentation" alt="Présentation" style="border: 1px solid rgb(216, 216, 216);" /></p>
<p>La barre d'outils contient les icônes pour accéder aux actions principales  :</p>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/icon-newstyle.jpg" title="Nouveau style" alt="Nouveau style" style="border: 1px solid rgb(216, 216, 216);" class="imgG" /> Cette icône vous permert créer un nouveau style qui peut être associé à une classe (.), un identifiant unique (#) ou une balise HTML (p, img, ul, ...)</p>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/icon-newgroup.jpg" title="Nouveau dossier" alt="Nouveau dossier" style="border: 1px solid rgb(216, 216, 216);" class="imgG" />Ce bouton permet d'organiser les styles visuellement pour retrouver plus facilement un style lors d'une édition future de la feuille de style.</p>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/icon-newcomment.jpg" title="Nouveau commentaire" alt="Nouveau commentaire" style="border: 1px solid rgb(216, 216, 216);" class="imgG" />Grâce à ce bouton vous pouvez créer des commentaires. Ils sont utiles pour comprendre rapidement un code lorsqu'on édite celui-ci dans le futur.  </p>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/icon-export.jpg" title="Exporter le style" alt="Exporter le style" style="border: 1px solid rgb(216, 216, 216);" class="imgG" />Cette action permet d'exporter la feuille de style entière ou uniquement une déclaration dans les entêtes des pages HTML.</p>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/icon-preview.jpg" title="Ouvrir l'aperçu" alt="Ouvrir l'aperçu" style="border: 1px solid rgb(216, 216, 216);" class="imgG" />En cliquant sur cette icône on accède à l'aperçu pour se rendre compte des effets de la feuille de style (nous reviendrons plus tard sur cet outil).</p>
<p> <img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/icon-milestones.jpg" title="Gérer les différentes versions" alt="Gérer les différentes versions" style="border: 1px solid rgb(216, 216, 216);" class="imgG" />L'icône "Milestones" (bornes) permet de créer et gérer les différentes versions de votre feuille de style. cet outil permet de revenir à des versions antérieures pour une plus grande souplesse dans le processus de développement.</p>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/icon-validate.jpg" title="Valider le code" alt="Valider le code" style="border: 1px solid rgb(216, 216, 216);" class="imgG" />En cliquant sur cette icône, vous soumettez votre feuille de style au valideur CSS du W3C. En cas d'erreur, il suffit de cliquer sur celle-ci pour accéder directement à l'erreur dans votre code pour le corriger.</p>
<p>Vous avez enfin deux outils qui n'agissent pas vraiment dans le processus de création mais dans le domaine du confort. Il s'agit du moteur de recherche (à critères multiples) et la sélection du mode de présentation. Le groupe "Editors" vous permet de passer un mode d'édition graphique, en mode d'édition graphique et code source et enfin en mode d'édition code source uniquement.</p>
<h2>Panneau de gestion des styles</h2>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/fig2.jpg" alt="Gestion des styles" title="Gestion des styles" class="imgD" style="border: 1px solid rgb(216, 216, 216);" /><span class="Lettrine">C</span>ette partie du logiciel <span class="Figure">(figure 2)</span> vous montre les styles créés en vous proposant un aperçu du style (taille de police, couleur d'arrière-plan, texte souligné ou pas, ...) et permet aussi de gérer ceux-ci en les incluant dans des groupes (dossiers) afin d'obtenir une meilleure lisibilité de votre feuille de style. Quoi de plus agréable que de comprendre rapidement la structure d'un code quand on doit l'éditer plusieurs mois après sa création ? Les groupes peuvent contenir eux aussi d'autres groupes ce qui donne à <a href="http://macrabbit.com/cssedit/">CSSEdit</a> une ergonomie hors pair. </p>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/fig3.jpg" alt="Déplacement" title="Déplacement" class="imgG" style="border: 1px solid rgb(216, 216, 216);" />Dans le panneau des styles vous pouvez également réorganiser les différents éléments (styles, groupes, commentaires) manuellement <span class="Figure">(figure 3)</span> par glisser/déposer et le code généré se modifie instantanément. </p>
<h2>L'éditeur de code source </h2>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/fig4.jpg" alt="code source" title="code source" class="imgD" style="border: 1px solid rgb(216, 216, 216);" /> <span class="Lettrine">À</span> chaque fois que vous créez un style dans le panneau des styles, le code CSS correspondant est automatiquement généré. Si vous êtes un puriste du code fait à la main ou tout simplement pour y rajouter rapidement des petites corrections à votre code, vous pouvez travailler directement dans le panneau du code source. Là aussi <a href="http://macrabbit.com/cssedit/">CSSEdit</a> intègre des fonctions pour améliorer votre productivité par exemple le remplissage automatique des déclarations dès les premières lettres tapées <span class="Figure">(figure 4)</span> ou encore la numérotation des lignes de code pour mieux se repérer. Il est même capable de corriger vos erreurs d'inattention en rajoutant automatiquement les points-virgules (<strong><span class="Figure">;</span></strong>) après chaque déclaration et l'accolade (<strong><span class="Figure">}</span></strong>) de fermeture de la définition d'un style. Ce n'est pas parce que ce logiciel est axé sur la création de feuille de style de manière visuelle que son module code source n'est qu'un simple éditeur de texte.</p>
<h2>L'éditeur graphique</h2>
<p><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/fig5.jpg" alt="Editeur graphique" title="Editeur graphique" class="imgD" style="border: 1px solid rgb(216, 216, 216);" /><span class="Lettrine">L</span>e gros avantage de CSSEdit vient de son module de création de feuille de style graphique. Il est même possible de ne taper aucun code et de faire du CSS avancé. Ce module est présenté avec les différentes catégories principales des définitions des feuilles de style <span class="Figure">(figure 5)</span>.</p>
<p>Une description détaillée des options disponibles sur l'éditeur graphique serait trop longue à faire dans un seul article. Pour faire court, on peut dire que la réalisation de feuilles de style par l'interface graphique, se fait simplement en renseignant des champs. Chaque option est décrite par un petit schéma qui rend le processus intuitif. Sachez tout de même que dans les options d'arrière-plan, il est possible de voir l'aperçu d'une image depuis l'éditeur sans avoir à parcourir l'architecture de votre site pour l'ouvrir. Pour cela, cliquez sur le bouton avec la petite roue dentée pour ouvrir l'inspecteur d'image.</p>
<h2>Remarques</h2>
<p><span class="Lettrine">I</span>l est important de comprendre quelques définitions de bases HTML et CSS avant d'aborder le positionnement des éléments. La méconnaissance du comportement de certaines déclarations mène souvent le débutant à renoncer à l'utilisation du CSS et à rester sur le modèle des tables. Je n'ai pas l'intention de rentrer dans une description détaillée, mais juste présenter quelques notions afin de comprendre le comportement des éléments auxquels vous souhaitez appliquer un style de position.</p>
<p style="margin-left: 30px;"><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/defcss-blocktype.jpg" alt="Type bloc" title="type bloc" class="imgD" style="border: 1px solid rgb(216, 216, 216);" /><span class="HightLight">Éléments de type bloc :</span>     Dans le langage HTML il existe des balises de type blocs. Elles s'affichent sur toute la largeur de l'élément qui les contient et font passer le contenu suivant à la ligne. C'est le cas par exemple, des balises <span class="EmphaseCode">p</span> (paragraphe) ou <span class="EmphaseCode">div</span> (divider). Pour information la balise <span class="EmphaseCode">div</span> est un élément bloc neutre, il sera représenté sur tous les navigateurs avec des marges (externes et internes) nulles.</p>
<p style="margin-left: 30px;"><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/defcss-inlinetype.jpg" alt="Eléments en ligne" title="Eléments en ligne" class="imgD" style="border: 1px solid rgb(216, 216, 216);" /><span class="HightLight">Éléments de type ligne :</span>     Comme pour les éléments de type bloc, il existe des balises HTML dites "en ligne" qui n'interfèrent pas avec le contenu du document. Les balises en lignes n'influencent que le contenu à l'intérieur de la balise, il n'y a pas de passage à la ligne du contenu suivant. La balise <span class="EmphaseCode">span</span> est un élément en ligne neutre qui sera représenté sur tous les navigateurs avec des marges (internes et externes) nulles.</p>
<p style="margin-left: 30px;"><span class="HightLight">Propriétés CSS "block/inline" :</span>     Ces propriétés permettent de forcer le comportement inverse d'un élément bloc ou en ligne. Si vous appliquez le style, <span class="EmphaseCode">display: block;</span> à une balise HTML <span class="EmphaseCode">span</span> (élément en ligne) elle se comportera comme un élément bloc. De la même façon si vous appliquez un style <span class="EmphaseCode">display: inline;</span> à une balise <span class="EmphaseCode">div</span> (élément bloc) elle se comportera comme un élément en ligne.</p>
<p style="margin-left: 30px;"><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/defcss-float.jpg" alt="Flottement à gauche" title="Flottement à gauche" class="imgD" style="border: 1px solid rgb(216, 216, 216);" /><span class="HightLight">Propriété CSS "float" :</span>     Cette propriété permet de retirer un élément du flux du document, il ne tient plus compte des interlignes et espacements. Les valeurs <span class="EmphaseCode">float: left;</span> (à gauche) et <span class="EmphaseCode">float: right;</span> (à droite) permettent de placer cet élément hors du flux en le positionnant à gauche ou à droite du contenu. On appliquera un style <span class="EmphaseCode">float: left;</span> à une image pour laquelle on veut que le texte l'enveloppe par la droite.</p>
<p style="margin-left: 30px;"><img src="http://www.janeirostudio.com/ressources/Image/Articles/CSSEdit/defcss-clear.jpg" alt="Clear" title="Clear" class="imgD" style="border: 1px solid rgb(216, 216, 216);" /><span class="HightLight">Propriété CSS "Clear" :</span>     Nous avons vu que le style <span class="EmphaseCode">float: left;</span> sur une image fait le contenu envelopper l'image par la droite. Dans le cas ou nous ne le voudrions pas, le style appliqué à notre image devient <span class="EmphaseCode">float:left; clear: right;</span>. La propriété <span class="EmphaseCode">clear</span> (effacer) empêche le contenu d'enrouler l'élément qui subit un style <span class="EmphaseCode">float</span>. Les valeurs de <span class="EmphaseCode">clear</span> sont <span class="EmphaseCode">right</span> (effacer à droite), <span class="EmphaseCode">left</span> (effacer à gauche) et <span class="EmphaseCode">both</span> (effacer à droite et à gauche).</p>
<p style="margin-left: 30px;"><span class="HightLight">Propriété CSS "Position" :</span>     Elle permet de positionner (avec une unité) un élément de manière <span class="EmphaseCode">relative</span> (par rapport au flux courant), <span class="EmphaseCode">absolue</span> (par rapport à l'élément parent qui le contient), <span class="EmphaseCode">statique</span> (dans le flux normal du document) et <span class="EmphaseCode">fixe</span> (fixe par rapport à l'écran)</p>
<p style="margin-left: 30px;"><span class="HightLight">Propriété CSS "Visibility" :   </span>   La propriété visibilité (visibility) permet de cacher ou d'afficher un élément. Les valeurs de cette propriété sont <span class="EmphaseCode">visible</span> pour afficher un élément, <span class="EmphaseCode">hidden</span> (caché) pour cacher un élément et enfin <span class="EmphaseCode">collaspe</span> (chute) pour cacher les éléments qui ne sont ni des lignes et des colonnes.</p>
<p style="margin-left: 30px;"><span class="HightLight">Propriété CSS "Overflow" :   </span>  Avec cette propriété vous pouvez recadrer le contenu d'un élément de type bloc quand celui-ci déborde de l'élément parent. Les valeurs appliquées à <span class="EmphaseCode">Overflow</span> (débordement) sont <span class="EmphaseCode">visible</span> pour permettre le débordement de contenu de l'élément parent, <span class="EmphaseCode">auto</span> pour recadrer le contenu avec des barres de défilement en fonction de la taille de ce contenu, <span cl ]]>
	  </description>
    </item>
		
    <item>
      <title> Un jeu de taquin en PHP / Ajax</title>
      <author>null@janeirostudio.com</author>
      <pubDate>Wed, 25 Oct 2006 00:00:00 +0200</pubDate>
      <link>http://www.janeirostudio.com/?articles=60</link>
      <guid>http://www.janeirostudio.com/?articles=60</guid>
      <description><![CDATA[
	  <p><img style="border: 1px solid rgb(216, 216, 216);" class="imgD" alt="intro" src="http://www.janeirostudio.com/ressources/Image/Articles/taquin/intro.jpg" />Parfois   appelé pousse-pousse ou puzzle, le jeu de taquin est un jeu solitaire   inventé par <a href="http://fr.wikipedia.org/wiki/Sam_Loyd">Sam Loyd</a> en   1870. Il s'agit d'un puzzle constitué de 15 carrés qui peuvent   coulisser sur une case vide et dont le but est d'ordonner une série   de chiffres ou de reconstituer une image. </p>
<p>Nous allons voir comment nous pouvons assez facilement reproduire ce jeu en   utilisant la bibliothèque AJAX <a href="http://openrico.org/">OpenRico</a> et   quelques commandes PHP. </p>
<p> </p>
<div class="DefaultFrame">
<p>Note : des notions simples de javascript et de PHP sont nécessaires   pour comprendre l'exemple. Quelques références aux CSS seront utilisées. </p>
</div>
<h2>Ajax et la bibliothèque Rico </h2>
<p><span class="Lettrine">A</span>jax (<strong>A</strong>synchronous <strong>JA</strong>vaScript   and <strong>X</strong>ML) est certainement le terme le plus à la mode en     ce moment    en ce qui concerne l'évolution du Web <a href="http://fr.wikipedia.org/wiki/Web_2.0">(voir Web 2.0)</a>. Il s'agit d'une méthode   de développement nouvelle utilisant des technologies courantes tel que le <a href="http://fr.wikipedia.org/wiki/Html">HTML</a>/<a href="http://fr.wikipedia.org/wiki/XHtml">XHTML</a>, <a href="http://fr.wikipedia.org/wiki/Css">les CSS</a>, <a href="http://fr.wikipedia.org/wiki/Document_Object_Model">DOM</a> et <a href="http://fr.wikipedia.org/wiki/Javascript">Javascript</a>, <a title="XMLHttpRequest" href="http://fr.wikipedia.org/wiki/XMLHttpRequest">XMLHttpRequest</a> et <a href="http://fr.wikipedia.org/wiki/Xml">XML</a>. Le but est de créer des applications Web plus riches et plus légères.  </p>
<p> Avec le succès   récent   des technologies AJAX est apparu un certain nombre de bibliothèques   proposant des fonctionnalités       originales. Parmi elles, plusieurs s'appuient sur l'excellent cadre d'application   (<a href="http://fr.wikipedia.org/wiki/Framework">framework</a>) <a href="http://prototype.conio.net/">prototype</a>.       C'est le cas de <a href="http://openrico.org/">OpenRico</a> qui va nous       servir de support pour notre jeu de taquin.     <br />  </p>
<h2>Analyse du jeu de taquin </h2>
<p><span class="Lettrine">P</span>our simplifier l'explication, nous allons   nous baser sur un carré de 9 cases (dont une vide). Le puzzle est constitué   d'une image découpée en 8 carrés. Les différentes   parties de l'image sont positionnées   aléatoirement et les carrés contigus à la case vide peuvent   se déplacer lorsqu'on   clique dessus pour échanger leur place afin de reconstituer l'image   originale.</p>
<h2>Positionnement des images </h2>
<p><span class="Lettrine">I</span>l vous faut dans un premier temps disposer   d'une image   carrée (par exemple de 300 pixels par 300 pixels) que vous découperez   avec votre logiciel préféré (<a href="http://www.adobe.com/fr/products/photoshop/">photoshop</a>, <a href="http://www.gimp.org/">gimp</a>,...)   en 9 images de 100 pixels par 100 pixels (dont une ne sera pas utilisée) .   Nous nommerons ces images img1, img2, ..., img8 <span class="Figure">(figure 1 et 2)</span>. </p>
<p style="text-align: center;"> <img style="border: 1px solid rgb(216, 216, 216);" alt="intro" src="http://www.janeirostudio.com/ressources/Image/Articles/taquin/fig1-2.jpg" /> </p>
<p>Nous allons positionner ces images dans un document HTML tous les 100 pixels   de manière à former un carré. Cet à dire que la   première   image sera placée aux coordonnées (left:100,top:100), la suivante   (200, 100), la dernière   de la première rangée (300,100), puis pour la rangée suivante   (100,200) etc.  Nous avons également besoin d'un bloc vide que nous   positionnons à (300,300).</p>
<p>    Nous utilisons des blocs div auquel on attribut les propriétés     CSS suivante :</p>
<ul>
    <li><strong>position:absolute &rarr; </strong>le bloc est positionné   de manière absolue dans son bloc parent </li>
    <li><strong>left:100px &rarr; </strong>on place le bloc à 100 pixels   de la gauche du bloc parent positionné</li>
    <li><strong>top:100px &rarr; </strong>on place le bloc à 100 pixels   du haut du bloc parent positionné</li>
</ul>
<p> </p>
<div class="Code">
<p> <div id="img1" style="position:absolute;left: 100px;     top: 100px;"><br />     <img src="images/img1.jpg" style="border:none" alt="image     1 " /><br />     </div><br />  </p>
<p><div id="img2" style="position:absolute;left: 200px; top:     100px;"><br /> <img src="images/img1.jpg" style="border:none" alt="image   1 " /><br /> </div></p>
<p>etc...<br />   <div id="vide" style="position:absolute; left:     300px; top: 300px;"></div></p>
</div>
<p style="text-align: center;"> <a onclick="window.open(this.href,'Resultat','scrollbars=1,menubar=1,toolbar=0,resizable=1,width=480,height=480');return false;" href="http://www.janeirostudio.com/articles/taquin/exemple1.html">Voir le résultat n°1</a> (pensez à regarder le code source) </p>
<div class="DefaultFrame">
<p>Note : Nous verrons que nous pouvez considérablement réduire le nombre     de lignes en utilsant une boucle PHP.</p>
<p>A vous de mélanger les images comme bon vous semble.</p>
</div>
<p>  </p>
<h2>Déplacement d'image avec OpenRico </h2>
<p><span class="Lettrine">U</span>ne des fonctionnalités de base de la bibliothèque Rico et de pouvoir créer   un déplacement de bloc. Vous pouvez trouver une démo de cet effet (et bien   d'autres) sur le site de <a href="http://openrico.org/rico/demos.page?demo=rico_effect_position">OpenRico</a>. Voyons comment cela fonctionne.</p>
<p>Une fois les bibliothèque <a href="http://www.janeirostudio.com/js/prototype.js">prototype.js</a> et <a href="http://www.janeirostudio.com/js/rico.js">rico.js</a> chargées dans   l'entête de   la page HTML grâce aux instructions :</p>
<div class="Code"> <script src="js/prototype.js" type="text/javascript"></script><br />   <script src="js/rico.js" type="text/javascript"></script></div>
<p>Il est très facile d'obtenir le mouvement d'un bloc en instanciant   la classe:</p>
<div class="Code"> new Rico.Effect.Position(element, x, y, duration,     steps, options);</div>
<p>Avec :</p>
<ul>
    <li><strong>&rarr; element :</strong>    l'id  du bloc à déplacer</li>
    <li><strong>&rarr; x :</strong>               l'abscisse   de destination du bloc</li>
    <li><strong>&rarr; y :</strong>               l'ordonnée de destination du bloc </li>
    <li><strong>&rarr; duration :</strong>   la durée de déplacement du bloc   (en ms) </li>
    <li><strong>&rarr; steps :</strong>         le nombre de pas du déplacement </li>
    <li><strong>&rarr; options :</strong>     des options complémentaires   éventuelles </li>
</ul>
<p> </p>
<p>Par exemple, soit une image que l'on souhaite bouger de 220 pixels à droite   et 136 pixels vers le bas. Nous devons créer une fonction javascript   appelé   par un clic sur cette image, qui lance l'instanciation de la classe Rico.Effect.Position.</p>
<p>Voilà, ce que cela donne sur la <span class="Figure">figure 3</span> : </p>
<script type="text/javascript">
function BougeLogo() { new Rico.Effect.Position('logo', 220,  136,  10,  1);  }
function revenir() { new Rico.Effect.Position('logo', 5,  5,  10,  1);  }
</script>
<div style="border: 1px solid rgb(216, 216, 216); margin: auto; position: relative; width: 295px; height: 210px;" id="exemple">
<div style="border: 5px solid rgb(255, 255, 255); margin: 0px; padding: 0px; background: transparent url(http://www.janeirostudio.com/ressources/Image/Articles/taquin/fig3Bg.jpg) no-repeat scroll 0% 50%; position: relative; width: 285px; height: 200px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" id="exempleb">
<div style="position: absolute; left: 5px; top: 5px;" id="logo"><a href="javascript:BougeLogo();"><img border="0" alt="Logo qui bouge" src="http://www.janeirostudio.com/ressources/Image/Articles/taquin/fig3-object.jpg" /></a> </div>
</div>
</div>
<p align="center"><a href="javascript:revenir();">Recommencer</a></p>
<p>Voici le code associé à cet effet:</p>
<div class="Code">
<p><script type="text/javascript"><br /> function BougeLogo() { new Rico.Effect.Position('logo', 220, 136, 10, 1); }<br /> </script><br /> <br /> <div id="logo" style="position:absolute; left: 5px; top: 5px;"><br /> <a   href="javascript:BougeLogo();"><br />   <img src="images/fig3Bg.jpg" border="0" alt="Logo   qui bouge" /><br />   </a><br /> </div><br />   </p>
</div>
<p style="text-align: center;"> <a onclick="window.open(this.href,'Resultat','scrollbars=1,menubar=1,toolbar=0,resizable=1,width=310,height=230');return false;" href="http://www.janeirostudio.com/articles/taquin/exemple2.html">Voir le résultat n°2</a> (pensez à regarder le code source)</p>
<p>La fonction javascript BougeLogo() est exécuté via le lien sur   l'image et consiste simplement en l'instanciation de la classe Rico.Effect.Position   avec les arguments de notre choix (id du bloc à bouger, position finale   du bloc, vitesse et nombre de pas)</p>
<p> </p>
<h2>Application au jeu de Taquin</h2>
<p>Quels sont les difficultés pour transposer cet effet à notre jeu.</p>
<ul>
    <li><strong>&rarr;</strong> En premier lieu, nous devons faire bouger 8 images différentes (plus le bloc   vide)</li>
    <li><strong>&rarr;</strong> Nous ne connaissons pas les coordonnées de la position finale</li>
    <li><strong>&rarr;</strong> Tous les blocs n'ont pas le droit de bouger (seul ceux contigus au bloc vide)</li>
</ul>
<p> </p>
<h3>Bouger des images différentes</h3>
<p>En partant du <a onclick="window.open(this.href,'Resultat','scrollbars=1,menubar=1,toolbar=0,resizable=1,width=480,height=480');return false;" href="http://www.janeirostudio.com/articles/taquin/exemple1.html">résultat n°1</a>, nous pouvons ajouter un lien sur chaque image   pointant vers une fonction javascript Bouge(). Nous allons simplement passer   l'identifiant du bloc en argument, par exemple: Bouge('img1') </p>
<div class="Code">
<p> <div id="img1" style="position:absolute;     left: 100px; top: 100px;"><br />     <a      href="javascript:Bouge('img1')"><br />      <img src="images/img1.jpg" style="border:none" alt="image      1" /><br />      </a><br />     </div><br /> </p>
</div>
<p>Notre fonction javascript va devoir récupérer le nom de l'argument   afin de reprendre le nom de l'id dans l'instanciation de la classe.</p>
<div class="Code">function Bouge(<strong>idbloc</strong>) {<br />   new Rico.Effect.Position( <strong>idbloc</strong>, abscisse_arrivee,ordonne_arrivee,   800, 10);   </div>
<p> </p>
<h3>Gérer les positions des blocs</h3>
<p>Nous devons à présent déterminer quels sont les coordonnées des objets à déplacer.   En fait, dans ce jeu, il ne s'agit que de permuter 2 blocs: le bloc image   sur lequel on clique doit prendre la position du bloc vide et inversement.</p>
<p>La position d'un bloc peut être récupéré grâce aux  propriétés javascript   offsetLeft et offsetTop</p>
<p>Par exemple :</p>
<div class="Code"> Position_image_X= $(idbloc).offsetLeft;<br />   Position_image_Y   = $(idbloc).offsetTop; </div>
<p>Il nous suffit donc de stocker les coordonnées de l'image cliquée   ainsi que celles de l'élément vide et d'inverser leur position.   Notre fonction prend alors cette forme : </p>
<p>  </p>
<div class="Code">
<p>function Bouge(idbloc) {<br />     Pos_image_X= $(idbloc).offsetLeft;<br />     Pos_image_Y = $(idbloc).offsetTop;<br />     <br />     Pos_blocvide_X=$('vide').offsetLeft;<br />     Pos_blocvide_Y=$('vide').offsetTop;    <br />     <br />       new Rico.Effect.Position( <font style="color: rgb(255, 51, 102);">idbloc</font>, <strong>Pos_blocvide_X</strong>,       <strong>Pos_blocvide_Y</strong>, 800, 10);<br />     new Rico.Effect.Position( <font style="color: rgb(255, 51, 102);">'vide'</font>, <strong>Pos_image_X</strong>, <strong>Pos_image_Y</strong>,     800, 10);     <br />     } </p>
</div>
<p> </p>
<h3>Ne déplacer que les blocs contigus au bloc vide </h3>
<p>La dernière difficulté réside dans le fait que nous n'avons pas le droit de   déplacer un bloc qui ne "touche" pas le bloc vide. Examinons quelles conditions   permettent à un bloc d'être déplacé :</p>
<p>Le bloc doit posséder la même abscisse que le bloc vide (ils   sont alors sur la même ligne) <br />   ou<br />   le bloc doit posséder la même ordonnée que le bloc vide (ils sont sur la même   colonne) </p>
<p>dans tous les cas, le bloc vide et le bloc "image" ne doivent pas être à plus   d'une largeur d'un bloc (100 px) l'un de l'autre.</p>
<p>Traduisons cela avec une condition javascript :</p>
<div class="Code">  if((<strong>Pos_image_X</strong>==<strong>Pos_blocvide_X</strong> && Math.abs(<strong>Pos_image_Y</strong>-<strong>Pos_blocvide_Y</strong>)<=100)   || (<strong>Pos_image_Y</strong>==<strong>Pos_blocvide_Y</strong> && Math.abs(<strong>Pos_image_X</strong>-<strong>Pos_blocvide_X</strong>)<=100))</div>
<p>L'abscisse de l'image doit être égale à l'abscisse du   bloc vide mais la différence   entre l'ordonnée de l'image et du bloc vide ne doivent pas dépasser   la largeur d'un bloc (100px). La fonction javascript Math.abs permet de prendre   la valeur absolue de la différence des 2 ordonnées. Le principe   est le même pour les   ordonnées de l'image et du bloc. </p>
<p>Notre Taquin est désormais fonctionnel. Vous pouvez voir le résultat et télécharger   le code ci-dessous. </p>
<p style="text-align: center;"><strong>&rarr;</strong> <a onclick="window.open(this.href,'Resultat','scrollbars=1,menubar=1,toolbar=0,resizable=1,width=640,height=480');return false;" href="http://www.janeirostudio.com/articles/taquin/exemple3.html">Voir le résultat n°3</a> (pensez à regarder le code source)</p>
<p> </p>
<h3>Version PHP </h3>
<p>Afin de réduire le code HTML,   nous pouvons associer le langage PHP à ce jeu. Il s'agit principalement   de réduire le code HTML redondant qui est chargé du placement   des images. Il existe de nombreuses façons de réaliser cela,   nous vous en proposons une permettant d'avoir un placement aléatoire   des images.</p>
<p>Nous allons utiliser plusieurs tableaux PHP. Le premier va contenir le nom   des images ou leur numéro si elle ne diffère que par celui-ci.   La fonction <a href="http://fr.php.net/shuffle">shuffle()</a>  appliqué à ce   tableau permet de le mélanger. Il sera alors possible   de récupérer séquentiellement le contenu du tableau dans   la boucle et ainsi de positionner un nom d'image aléatoirement.</p>
<div class="Code">
<p>$photo=array(1,2,3,4,5,6,7,8); // ou le nom de l'image </p>
<p> shuffle($photo); //on mélange le tableau<br />     <br />     </p>
</div>
<div class="DefaultFrame">
<p>Note : En toute rigueur, nous devrions prendre en compte le fait que     toutes les positions de départ ne permettent pas d'arriver à une reconstitution     de l'image. <br /><br />   Voir à ce sujet, par exemple: <a href="http://etu.ensimag.fr/perso/Remi.Zara/taquin/legalite.html">http://etu.ensimag.fr/perso/Remi.Zara/taquin/legalite.html</a></p>
</div>
<p>Deux autres tableaux ($x et $y) vont contenir les coordonnées des abscisses   et ]]>
	  </description>
    </item>
			
		
		
    <item>
      <title>Adobe Photoshop CS3 &amp;#946;</title>
      <author>null@janeirostudio.com</author>
      <pubDate>Wed, 27 Dec 2006 00:00:00 +0100</pubDate>
      <link>http://www.janeirostudio.com/?journal=14</link>
      <guid>http://www.janeirostudio.com/journal=14</guid>
      <description><![CDATA[
	  <p><img src="http://www.janeirostudio.com/ressources/Image/Journal/BetaPhotoshopCS3/intro.jpg" alt="intro" class="imgD" style="border: 1px solid rgb(216, 216, 216);" /><span class="Lettrine">D</span>epuis le 15 décembre dernier Adobe propose au téléchargement la version &beta; de Photoshop CS3 son logiciel de traitement d'image. Cette nouvelle version était très attendue dans le monde des créatifs surtout depuis la transition des machines Apple sur l'architecture Intel. En effet, cette version est Universal Binary (fonctionne sur les Macintosh munis de processeurs Intel ou PowerPC) ce qui garantit des performances optimales sur les 2 architectures.</p>
<h2>Evaluer Adobe Photoshop CS3 &beta;</h2>
<p><a href="http://labs.adobe.com/"><img border="0" style="border: 1px solid rgb(216, 216, 216);" class="imgD" alt="Adobe Photoshop CS3" src="http://www.janeirostudio.com/ressources/Image/Journal/BetaPhotoshopCS3/EvalPhotoshopCS3.jpg" /></a><span class="Lettrine">L</span>e logiciel est disponible au téléchargement pour Windows XP, Windows Vista et Mac OS 10.4.8 en anglais. Cette version &beta; est limitée aux détenteurs d'une licence Adobe Creative Suite 2 ou tout simplement de Photoshop CS2 (quelle que soit la langue). Pour télécharger Adobe Photoshop CS3 &beta; il faut vous rendre sur <a href="http://labs.adobe.com/">http://labs.adobe.com/</a> , ouvrir un compte (si vous n&rsquo;en avez pas) et télécharger l'application selon votre système d'exploitation. Après l'installation, il vous sera demandé d'insérer un numéro de série sans lequel vous pourrez évaluer le logiciel que pendant 2 jours. Pour obtenir un numéro de série pour cette version &beta;, il vous faut retourner sur le site d'<a href="https://www.adobe.com/cfusion/entitlement/index.cfm?e=labs_photoshop_sn">Adobe</a>  et saisir le numéro de série de votre ancienne version de Photoshop CS2 ou de la Suite CS2.</p>
<h2>Performances</h2>
<p><span class="Lettrine">A</span>vant de passer aux nouveautés, j'aimerai préciser que cette nouvelle version (qui n'est pas une version finale) est très véloce. D'après les tests que l'on trouve sur le web, elle serait 20% plus rapide sur les plates-formes Windows et Macintosh (PowerPC) et 30 à 40% sur les Macintosh Intel. Bien sur, cette grande différence vient du fait que Photoshop CS2 tournait sur les Macintosh Intel grâce un émulateur (<a href="http://fr.wikipedia.org/wiki/Rosetta_(informatique)">Rosetta</a>) ce qui réduisait ses performances.</p>
<h2>Nouveautés de Photoshop CS3</h2>
<p><span class="Lettrine">P</span>our vous faire rapidement une idée sur les nouveautés, il suffit d'éditer les menus de Photoshop CS3 en passant par le menu <strong>Edit &rarr; Menu</strong>. Sur la nouvelle boite de dialogue qui apparaît dans le menu déroulant <strong>"Set"</strong> choisissez <strong>"What's New - CS3"</strong> et validez. Cette action provoquera la colorisation de toutes les nouveautés dans les différents menus de l'application.</p>
<div class="DefaultFrame">
<h3>Principales nouveautés : </h3>
<p>une nouvelle interface (plus de palettes volantes, mais comme dit Adobe des <strong>"docks"</strong>), </p>
<p>un nouveau mode de présentation qui permet d'avoir un plan de travail homogène (les palettes ne couvrent jamais l'illustration ou la photo sur laquelle vous travaillez), </p>
<p>une refonte complète de Bridge (le gestionnaire d'images), </p>
<p>un nouvel outil de sélection intelligent (quick selection tool), </p>
<p>l'amélioration de l'outil contraste/lumière, </p>
<p>une nouvelle commande pour transformer les images en noir et blanc, </p>
<p>l'alignement et la fusion automatique des calques, </p>
<p>une nouvelle version de Vanishing Point,</p>
<p>les filtres non destructifs. </p>
</div>
<p><span class="HightLight">Filtres non destructifs</span> : avant Adobe Photoshop CS3 l'application d'un filtre "détruisait" l'original, la seule façon de revenir à l'original était de revenir dans l'historique ou d'annuler simplement la dernière action. Cette nouvelle version propose de convertir votre photo originale pour accepter les filtres intelligents (Smart Filters) en passant par la menu <strong>Filter &rarr; Convert for Smart Filters</strong>. Une fois votre photo convertie, les filtres s'appliquent sur les calques comme les effets dynamiques (ombre, bevel, ...) avec la possibilité de les masquer ou de les éditer.</p>
<p>Plutôt que de rentrer dans les détails des nouveautés de la nouvelle version d'Adobe Photoshop, je vous conseille de visionner ces <a href="http://movielibrary.lynda.com/html/modPage.asp?ID=327">19 vidéos</a> (en anglais) faites par l'excellent Deke McClelland. Non seulement vous allez avoir un aperçu détaillé des nouveautés, mais également des exemples pratiques des nouvelles fonctions. Il suffit de regarder et de se laisser guider !</p>
<p>Si l'anglais vous gêne vraiment, vous pouvez visionner ces <a href="http://www.emob.fr/dotclear/index.php?2006/12/16/773-tutoriaux-photoshop-cs3-decouvrez-les-nouveautes-en-video">vidéos</a> (en français) qui font une présentation globale des nouveautés.</p>
<h2>Icônes de la nouvelle version</h2>
<p><span class="Lettrine">S</span>i comme moi, après l'installation de la version &beta; de Photoshop CS3 vous vous êtes dit "ce n'est qu'une version &beta;, les nouvelles icônes viendront avec la version finale", sachez qu'il s'agit en faite des icônes qui seront livrées avec toutes les suites Adobe (même celles des anciennes applications Macromedia rachetées par Adobe).</p>
<img src="http://www.janeirostudio.com/ressources/Image/Journal/BetaPhotoshopCS3/AdobeIcons.jpg" alt="icônes" style="border: 1px solid rgb(216, 216, 216);" />
<p>Comme vous pouvez le voir sur l'image ci-dessus, il semblerait qu'Adobe ait choisi de représenter ses différentes applications dans un style minimaliste avec 2 lettres et une couleur caractérisant chaque logiciel. </p>
<p>Je ne trouve pas ce choix judicieux, car même si les anciennes icônes n'avaient rien a voir avec les applications en elles-mêmes (la plume pour Photoshop, la fleur pour Illustrator, le coquillage pour Bridge,...) elle avait le mérite de remplir leur rôle d'icône en terme d'ergonomie, c'est-à-dire repérer un logiciel par la forme sans avoir à lire son nom. De plus, les illustrations des anciennes icônes donnaient une touche artistique qui collait bien avec une suite dite "Créative". </p>
<p>Si Adobe livre vraiment ses nouvelles applications avec ce type d'icônes (je dit "si", car beaucoup de blogueurs et des designers reconnus critiques ces icônes) il va falloir apprendre que <strong>"Ps"</strong> veut dire Photoshop, <strong>"Ai"</strong> Illustrator, <strong>"Dw"</strong> Dreamweaver, .... ce qui est plutôt moyen dans un flux de travail professionnel.</p>]]>
	  </description>
    </item>
	
		
    <item>
      <title>Internet Explorer 7</title>
      <author>null@janeirostudio.com</author>
      <pubDate>Fri, 20 Oct 2006 00:00:00 +0200</pubDate>
      <link>http://www.janeirostudio.com/?journal=12</link>
      <guid>http://www.janeirostudio.com/journal=12</guid>
      <description><![CDATA[
	  <p><img width="74" height="74" src="/ressources/Image/Journal/InternetExplorer7/intro.jpg" class="imgD" style="border: 1px solid rgb(216, 216, 216);" alt="Internet Explorer" />Comme prévu Microsoft a rendu disponible au téléchargement la nouvelle version d'<a href="http://www.microsoft.com/windows/ie/downloads/default.mspx">Internet Explorer 7</a>. Cinq ans après Internet Explorer 6, la nouvelle version apporte des améliorations autant sur le plan de l'ergonomie, la sécurité et enfin un meilleur respect des normes <a href="http://fr.wikipedia.org/wiki/W3C">W3C</a>. Avec cette version Internet Explorer, Microsoft devrait remettre son navigateur dans la course face<a href="http://www.mozilla-europe.org/fr/products/firefox/"> Mozilla Firefox</a>, mais aussi faciliter la vie des développeurs.</p>
<h2>Ergonomie, Convivialité</h2>
<p><span class="Lettrine">B</span>ien que les nouvelles avancées dans ce domaine ne font que reprendre une grande partie de ce qui existe déjà chez la concurrence, celles-ci sont les bienvenues au regard de la part de marché de ce butineur. <a href="http://www.microsoft.com/windows/ie/downloads/default.mspx">Internet Explorer 7</a> propose :</p>
<div class="DefaultFrame">
<p>Une nouvelle interface épurée, où les boutons visibles mènent aux fonctions principales.</p>
<p>Le support des flux <a title="Really Simple Syndication" href="http://fr.wikipedia.org/wiki/Really_Simple_Syndication">RSS</a></p>
<p>Une gestion des <a title="Marque page" href="http://fr.wikipedia.org/wiki/Marque-page_(informatique)">favoris</a> améliorée</p>
<p>Un moteur de recherche intégré au navigateur</p>
<p>La gestion des <a href="http://fr.wikipedia.org/wiki/Onglet_(informatique)">onglets </a>(ouverture de plusieurs pages dans une fenêtre unique) avec la possibilité de les grouper ou d'afficher des vignettes des pages ouvertes.</p>
<p>Une fonction zoom permettant d'agrandir la page visitée</p>
<p>Des options avancées d'impression</p>
</div>
<h2>Sécurité et vie privée</h2>
<p><span class="Lettrine">L</span>es faiblesses d'Internet Explorer 6 dans ce domaine était bien connues, notamment à cause des ActiveX et surtout au manque de mises à jour. Dans le domaine de la sécurité, <a href="http://www.microsoft.com/windows/ie/downloads/default.mspx">Internet Explorer 7</a> propose les améliorations suivantes :</p>
<div class="DefaultFrame">
<p>Un filtre de protection contre le "<a href="http://fr.wikipedia.org/wiki/Phishing">Phishing</a>" qui permet d'identifier les sites frauduleux. Le "phishing" permet aux pirates informatiques de faire croire à l'internaute qu'il est sur un site de confiance (banque, administration, ...) pour lui soutirer des informations confidentielles (numéro de carte de crédit, mot de passe, ...).</p>
<p>L'activation ou non des contrôles "<a href="http://fr.wikipedia.org/wiki/ActiveX">ActiveX</a>", ils ne sont pas activés par défaut. Les contrôles "ActiveX" sont une technologie de Microsoft pour permettre le langage entre les programmes.</p>
<p>Une protection contre le "<a href="http://fr.wikipedia.org/wiki/Spoofing">Spoofing</a>". Le "Spoofing" est une technique de piratage consistant à voler l'adresse IP (numéro d'une machine sur internet) d'un ordinateur pour usurper l'identité de celle-ci. Grâce à cette technique, on se fait passer pour quelqu'un autre pour accéder à des informations confidentielles.</p>
<p>Une fonction pour bloquer l'exécution de scripts entre plusieurs domaines.</p>
</div>
<h2>Standards</h2>
<p><span class="Lettrine">D</span>ans ce domaine aussi Internet Explorer rattrape son retard avec cette nouvelle version, même s'il ne fait pas aussi bien que la concurrence.</p>
<div class="DefaultFrame">
<p>Un support amélioré des standards dans les domaines du <a title="Hypertext Markup Language" href="http://fr.wikipedia.org/wiki/HTML">HTML</a>, mais aussi des <a title="Feuilles de style en cascade" href="http://fr.wikipedia.org/wiki/Feuilles_de_style_en_cascade">CSS</a></p>
<p>Le support de <a href="http://www.janeirostudio.com/?articles=57">la transparence</a> progressive (<a href="http://fr.wikipedia.org/wiki/Image_numérique#Images_avec_gestion_de_la_translucidit.C3.A9">Canal Alpha</a>) des images <a href="http://fr.wikipedia.org/wiki/Portable_Network_Graphics">PNG</a>.</p>
</div>
<h2>Conclusion</h2>
<p><span class="Lettrine">L</span>a nouvelle mouture d'Internet Explorer est dans l'ensemble une bonne nouvelle, autant pour les internautes pour les fonctions de sécurité et d'ergonomie, mais aussi par un support amélioré des standards pour faciliter la tâche aux développeurs web. Bien qu'il soit loin de <a href="http://www.mozilla-europe.org/fr/products/firefox/">Mozilla Firefox</a> ou <a href="http://www.apple.com/fr/macosx/features/safari/">Safari </a>dans ce domaine, Internet Explorer 7 permet de réaliser des feuilles de style simple sans avoir recours à l'écriture d'une autre feuille de style spécifique.</p>
<p>À l'heure actuelle <a href="http://www.microsoft.com/windows/ie/downloads/default.mspx">Internet Explorer 7</a> est disponible qu'en version anglaise et ne peux s'installer que sur Windows XP avec le service pack 2 (SP2). La version française sera disponible à partir du 1er novembre. La version livrée avec le prochain système d'exploitation de Microsoft "Vista" intégrera en plus un mode de navigation sécuritaire et une option de contrôle parental.</p>]]>
	  </description>
    </item>
	
		
    <item>
      <title>Organic, thème de bureau.</title>
      <author>null@janeirostudio.com</author>
      <pubDate>Tue, 10 Oct 2006 00:00:00 +0200</pubDate>
      <link>http://www.janeirostudio.com/?journal=11</link>
      <guid>http://www.janeirostudio.com/journal=11</guid>
      <description><![CDATA[
	  <p><a href="http://www.janeirostudio.com/index.php?journal=11"><img style="border: 1px solid rgb(216, 216, 216);" class="imgD" alt="intro" src="http://www.janeirostudio.com/ressources/Image/Journal/Organic/intro.jpg" /></a>Le thème de bureau "Organic" contient une série d'images haute définition dans un style minimaliste et élégant. Chaque image de bureau vous procurera un environnement de travail clair sans vous distraire de vos tâches. Le thème est disponible en 4 couleurs "aqua", "tangerine", "lemon" et "graphite".</p>
<p>Vous pouvez télécharger le set complet en cliquant sur l'image ci-dessous ou choisir directement la couleur de votre choix en cliquant sur les vignettes. N'hésitez pas à nous laisser une appréciation par le biais des commentaires.</p>
<p><a href="http://www.janeirostudio.com/ressources/File/Journal/Organic/OrganicSet.zip"><img style="border: 1px solid rgb(216, 216, 216);" title="télécharger  Organic" alt="Organic" src="http://www.janeirostudio.com/ressources/Image/Journal/Organic/organic.jpg" /></a></p>
<p> <a href="http://www.janeirostudio.com/ressources/Image/Journal/Organic/OrganicAqua.jpg"><img style="border: 1px solid rgb(216, 216, 216);" title="télécharger  Organic "aqua"" alt="Organic "aqua"" src="http://www.janeirostudio.com/ressources/Image/Journal/Organic/AquaSmall.jpg" /></a>  <a href="http://www.janeirostudio.com/ressources/Image/Journal/Organic/OrganicTangerine.jpg"><img style="border: 1px solid rgb(216, 216, 216);" title="télécharger  Organic "tangerine"" alt="Organic "tangerine"" src="http://www.janeirostudio.com/ressources/Image/Journal/Organic/TangerineSmall.jpg" /></a>  <a href="http://www.janeirostudio.com/ressources/Image/Journal/Organic/OrganicLemon.jpg"><img style="border: 1px solid rgb(216, 216, 216);" title="télécharger  Organic "lemon"" alt="Organic "lemon"" src="http://www.janeirostudio.com/ressources/Image/Journal/Organic/LemonSmall.jpg" /></a>  <a href="http://www.janeirostudio.com/ressources/Image/Journal/Organic/OrganicGraphite.jpg"><img style="border: 1px solid rgb(216, 216, 216);" title="télécharger  Organic "graphite"" alt="Organic "graphite"" src="http://www.janeirostudio.com/ressources/Image/Journal/Organic/GraphiteSmall.jpg" /></a></p>]]>
	  </description>
    </item>
	
		
    <item>
      <title>Mise en ligne de la nouvelle version du site</title>
      <author>null@janeirostudio.com</author>
      <pubDate>Sat, 7 Oct 2006 00:00:00 +0200</pubDate>
      <link>http://www.janeirostudio.com/?journal=9</link>
      <guid>http://www.janeirostudio.com/journal=9</guid>
      <description><![CDATA[
	  <p><a href="http://www.janeirostudio.com/index.php?journal=9"><img width="74" height="74" style="border: 1px solid rgb(216, 216, 216);" class="imgD" src="/ressources/Image/Journal/SiteOpening/intro.jpg" alt="" /></a>Après quelques mois de travail acharné, la nouvelle version du site de Janeiro Studio arrive au terme de son développement. Il y a plus d&rsquo;un an Janeiro Studio évoluait en devenant une entité à part entière et il était devenu nécessaire de faire évoluer le site internet. Aujourd&rsquo;hui nous sommes heureux de vous présenter le résultat. La charte graphique minimaliste, la signalétique, le contraste, et enfin les techniques utilisées ont été pensées dans le but unique de servir l&rsquo;internaute.</p>
<p>Bien que nous soyons une entreprise commerciale, nous avons voulu faire de ce site web un espace où l&rsquo;on partage la connaissance. Nous sommes avant tout des passionnés même si nous vivons de notre passion</p>
<p> </p>
<h2> Architecture</h2>
<p><span class="Lettrine">L</span>e site est articulé autour de deux espaces. À gauche sont présentés les éléments communs à toutes les rubriques : un moteur de recherche instantané, un menu contextuel, un résumé des cinq derniers articles et les liens annexes. À droite vous trouverez simplement la présentation du contenu en fonction de la rubrique choisie.</p>
<div class="DefaultFrame">
<p><strong>Accueil :</strong> Nous présentons brièvement Janeiro Studio, mais aussi les résumés des dernières entrées du journal.</p>
<p>  <strong>Journal : </strong>Cette rubrique présente notre point de vue sur divers sujets de l&rsquo;actualité. Elle sert aussi à présenter une information qui n&rsquo;entre pas dans le cadre des articles. L&rsquo;internaute à la possibilité de lancer le débat avec Janeiro Studio à travers les commentaires.</p>
<p><strong>Articles : </strong>Ici, nous présentons divers articles et tutoriels dans plusieurs domaines informatiques (Design, HTML/CSS, PHP, Systèmes, Réseaux, Technologies Web). Actuellement nous vous proposons deux articles (<a href="http://www.janeirostudio.com/?articles=57">Transparence des images PNG</a> et <a href="http://www.janeirostudio.com/?articles=57">Les CAPTCHA</a>). N&rsquo;hésitez à revenir sur cette rubrique pour consulter les nouveaux articles que nous mettrons à votre disposition.</p>
<p><strong>Services :</strong> À travers cette rubrique, nous présentons nos produits et services (Internet, intranet, applications de gestion, communication PAO/PRINT). Nous expliquons succinctement notre méthode de travail pour garantir à nos clients un produit adapté de qualité.</p>
<p><strong>Portfolio :</strong> Nos références clients, les démarches artistiques et techniques de chaque projet sont présentées dans cette rubrique. Vous avez également la possibilité de filtrer nos références clients par type de projet.</p>
<p><strong>Contact :</strong> Vous trouverez ici toutes les informations pour prendre contact avec nous.</p>
</div>
<p>Nous vous souhaitons une bonne lecture.</p>
<p>L'équipe de Janeiro Studio.</p>]]>
	  </description>
    </item>
	
		
    <item>
      <title>Nouvelle version de GuyaWeb</title>
      <author>null@janeirostudio.com</author>
      <pubDate>Mon, 25 Sep 2006 00:00:00 +0200</pubDate>
      <link>http://www.janeirostudio.com/?journal=10</link>
      <guid>http://www.janeirostudio.com/journal=10</guid>
      <description><![CDATA[
	  <p><a href="http://www.janeirostudio.com/index.php?journal=10"><img width="74" height="74" alt="" style="border: 1px solid rgb(216, 216, 216);" class="imgD" src="/ressources/Image/Journal/Guyawebv2/intro.jpg" /></a>Depuis le 25 septembre dernier <a href="http://www.janeirostudio.com/index.php?portfolio=36">GuyaWeb</a> a présenté à ses clients une nouvelle version de son site de petites annonces en ligne. La réussite économique d'un site internet passe par la satisfaction des utilisateurs, ce qui génère une augmentation de trafic et de popularité.</p>
<p>Pour sa deuxième version <a href="http://www.janeirostudio.com/index.php?portfolio=36">GuyaWeb</a> a souhaité mettre l&rsquo;accent sur une ergonomie accrue et un « relifting » du design. Nous avons pris en compte les demandes de notre client, mais avons profité pour y intégrer des fonctionnalités utilisant la technologie <a href="http://fr.wikipedia.org/wiki/Asynchronous_JavaScript_And_XML" title="Asynchronous JavaScript And XML (XML et Javascript asynchrones)">AJAX</a> permettant de maximiser l&rsquo;ergonomie. Grâce à cette technologie, la consultation d&rsquo;annonces se fait quasi instantanément sans que l&rsquo;internaute ait à changer de page pour afficher le détail d&rsquo;une annonce.</p>]]>
	  </description>
    </item>
	
					
		
		
		
</channel>
</rss>