<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:atom="http://www.w3.org/2005/Atom" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/" 
	xmlns:dc="http://purl.org/dc/elements/1.1/" 
	xmlns:icbm="http://postneo.com/icbm" 
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/" 
	xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" 
	xmlns:wfw="http://wellformedweb.org/CommentAPI/" >

<channel>
	<title>Cybermedium</title>
	<link>http://www.cybermedium.info/</link>
	<atom:link href="http://www.cybermedium.info/feeds/articles"  rel="self" type="application/rss+xml" />
	<description>Développement et suivi de projets web par un webmaster indépendant. Expert-intégrateur avec le CMS Yacs. Programmation PHP et javascript. Webdesign.</description>
	<language>fr</language>
	<managingEditor>rair@cybermedium.info</managingEditor>
	<webMaster>rair@cybermedium.info</webMaster>
	<icbm:latitude>47.75709</icbm:latitude>
	<icbm:longitude>7.33179</icbm:longitude>
	<lastBuildDate>Sun, 05 Feb 2012 02:02:53 GMT</lastBuildDate>
	<generator>yacs</generator>
	<docs>http://blogs.law.harvard.edu/tech/rss</docs>
	<ttl>70</ttl>

 <item>
		<title>Site Internet pour un événement estudiantin</title>
		<link>http://www.cybermedium.info/article-78-site-internet-pour-un-evenement-estudiantin</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-78-site-internet-pour-un-evenement-estudiantin</guid>
		<description>Destination Ingénieur-e est une manifestation proposée chaque année aux élèves des classes scientifiques des lycées limousins pour promouvoir le métier d'ingénieur-e 
 Design coloré pour faire écho au dynamisme des lycéens, la fusée décolle ! 
 Ce site permet aux lycéens de s'inscrire à la manifestation, et aux organisateurs d'obtenir des statistiques sur les inscriptions (nombre de garçons/filles, nombre par lycée, accompagnants, etc.). 
 Sous le capot du site, toujours le moteur YACS que j'affectionne, boosté − c'est nouveau − à l'HTML5, JQUERY et CSS3, le trio gagnant des technologies du web. 
 Le site est simple : tout sur la page d'accueil, organisée &quot;en accordéon&quot;. Un formulaire, qui mène à une page proposant de relayer le site vers les réseaux sociaux. 
 Les administrateurs ont un accès privé pour consulter les inscriptions, exporter la liste en fichier MS-Excel, et envoyer une newsletter aux inscrits. 



Accueil avec premier soufflet déplié 
Soufflets repliés    
Formulaire d'inscription 
Plan d'accès Google Map</description>
		<content:encoded><![CDATA[ <div class="introduction">Destination Ingénieur-e est une manifestation proposée chaque année aux élèves des classes scientifiques des lycées limousins pour promouvoir le métier d'ingénieur-e</div>
<p>Design color&eacute; pour faire &eacute;cho au dynamisme des lyc&eacute;ens, la fus&eacute;e d&eacute;colle !</p>
<p>Ce site permet aux lyc&eacute;ens de s'inscrire &agrave; la manifestation, et aux organisateurs d'obtenir des statistiques sur les inscriptions (nombre de gar&ccedil;ons/filles, nombre par lyc&eacute;e, accompagnants, etc.).</p>
<p>Sous le capot du site, toujours le moteur <a href="http://www.cybermedium.info/article-20-yacs">YACS</a> que j'affectionne, boost&eacute;&nbsp;&minus; c'est nouveau &minus; &agrave; l'HTML5, JQUERY et CSS3, le trio gagnant des technologies du web.</p>
<p>Le site est simple : tout sur la page d'accueil, organis&eacute;e "en accord&eacute;on". Un formulaire, qui m&egrave;ne &agrave; une page proposant de relayer le site vers les r&eacute;seaux sociaux.</p>
<p>Les administrateurs ont un acc&egrave;s priv&eacute; pour consulter les inscriptions, exporter la liste en fichier MS-Excel, et envoyer une newsletter aux inscrits.</p><br />
<br />
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/78/destination-ingenieur-e-accueil2.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/78/thumbs/destination-ingenieur-e-accueil2.jpg" alt="Accueil avec premier soufflet déplié"  title="Accueil avec premier soufflet déplié" /></span></a><span class="image_caption">Accueil avec premier soufflet déplié</span></span> 
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/78/destination-ingenieur-e-folded.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/78/thumbs/destination-ingenieur-e-folded.jpg" alt="Soufflets repliés"  title="Soufflets repliés" /></span></a><span class="image_caption">Soufflets repliés</span></span>  <br style="clear: both;" />  
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/78/destination-ingenieur-e-form.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/78/thumbs/destination-ingenieur-e-form.jpg" alt="Formulaire d'inscription"  title="Formulaire d'inscription" /></span></a><span class="image_caption">Formulaire d'inscription</span></span> 
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/78/destination-ingenieur-e-access.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/78/thumbs/destination-ingenieur-e-access.jpg" alt="Plan d'accès Google Map"  title="Plan d'accès Google Map" /></span></a><span class="image_caption">Plan d'accès Google Map</span></span> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Portfolio web</category>
		<pubDate>Mon, 24 Oct 2011 12:55:37 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-11-portfolio-web#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/78</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/78</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A78</trackback:ping>
	</item>

 <item>
		<title>Prestations de création de sites Internet, webmastering et développement web</title>
		<link>http://www.cybermedium.info/article-73-prestations-de-creation-de-sites-internet--webmastering-et-developpement-web</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-73-prestations-de-creation-de-sites-internet--webmastering-et-developpement-web</guid>
		<description>Cette page présente les différentes prestations web proposées par Cybermedium. 
 Combien ça coûte un site Internet ? Cela dépend évidemment de la complexité du contenu présenté, des interactions spécifiques souhaitées avec les visiteurs, et de la qualité apportée au design. Ces variables d'ajustement peuvent faire varier le prix du simple au double. 
 Mais ce qu'il ne faut pas perdre de vue, c'est qu'un site Internet ne fonctionne pas tout seul une fois mis en ligne. Il faut l'ajuster après analyses régulières des statistiques de fréquentation et du positionnement en recherche des mots-clés. 
 Il ne suffit plus de mettre un site en ligne et d'attendre les visiteurs : la présence sur Internet demande d'alimenter régulièrement le contenu et souvent d'investir également les réseaux sociaux. 
 Je vous propose des sites propulsés par un logiciel de type *CMS* — en français &quot;gestion de contenu&quot; — qui permet de déployer rapidement un site puissant aux fonctions multiples et très abouties, et notamment de réaliser vous-même de l'ajout de contenu. 
 Tarifs 
 Je base mes tarifs sur un taux horaire de 60 € TTC, ceci pouvant être négocié pour des projets volumineux (+ 70 heures). 
 Création de sites Internet 
 Indicatif des tarifs généralement négociés : 
 
 Site vitrine, galerie : 900 € à 1500 € ;
 
 Site d'actualités, événements, blog : 1300 € à 2500 € ;
 
 Site Intranet ou communautaire : 1500 € à 3000 € ;
 
 Site e-commerce : 2000 € à 3500 €. 
 
 Il faut ajouter à cela vos besoins en formation. 
 Suivi de site Internet (Webmastering) 
 Lorsque je réalise un site j'assure un accompagnement les 6 premiers mois suivant la mise en ligne. Ensuite je propose différents forfaits suivant la disponibilité demandée : 
 
 Résolutions de petits soucis à distance : 200 €/an ;
 
 Mise en ligne des contenus, rapport régulier d'analyse : 120 €/mois ;
 
 Idem avec travail du référencement : 300 €/mois. 
 
 Développement web 
 Je suis en mesure de réaliser les développements spécifiques nécessaires pour mettre en oeuvre les fonctionnalités particulières de votre projet web. 
 Je vous propose un devis pour une prestation au forfait, le devis est payant s'il demande une profonde analyse, et un cahier des charges est bienvenu. 
 Devis 
 N'hésitez pas à mon contacter pour obtenir un devis ! 
 Tel : 03.89.06.42.49

Mobile : 06.41.69.71.01

Mail :    rair@cybermedium.info

Localisation : Mulhouse, sud    Alsace </description>
		<content:encoded><![CDATA[ <div class="introduction">Cette page présente les différentes prestations web proposées par Cybermedium.</div>
<p>Combien &ccedil;a co&ucirc;te un site Internet ? Cela d&eacute;pend &eacute;videmment de la <strong>complexit&eacute;</strong> du contenu pr&eacute;sent&eacute;, des <strong>interactions sp&eacute;cifiques</strong> souhait&eacute;es avec les visiteurs, et de la <strong>qualit&eacute;</strong> apport&eacute;e au design. Ces variables d'ajustement peuvent faire varier le prix du simple au double.</p>
<p>Mais ce qu'il ne faut pas perdre de vue, c'est qu'un site Internet ne fonctionne pas tout seul une fois mis en ligne. Il faut <strong>l'ajuster apr&egrave;s analyses r&eacute;guli&egrave;res</strong> des statistiques de fr&eacute;quentation et du positionnement en recherche des mots-cl&eacute;s.</p>
<p>Il ne suffit plus de mettre un site en ligne et d'attendre les visiteurs : la <strong>pr&eacute;sence sur Internet</strong> demande d'alimenter r&eacute;guli&egrave;rement le contenu et souvent d'investir &eacute;galement les r&eacute;seaux sociaux.</p>
<p>Je vous propose des sites propuls&eacute;s par un logiciel de type <a href="http://www.cybermedium.info/article-10-cms">*CMS*</a> &mdash; en fran&ccedil;ais "gestion de contenu" &mdash; qui permet de d&eacute;ployer rapidement un <strong>site puissant</strong> aux fonctions multiples et tr&egrave;s abouties, et notamment de r&eacute;aliser vous-m&ecirc;me de l'ajout de contenu.</p>
<h2>Tarifs</h2>
<p>Je base mes tarifs sur un <strong>taux horaire de 60 &euro; TTC</strong>, ceci pouvant &ecirc;tre n&eacute;goci&eacute; pour des projets volumineux (+ 70 heures).</p>
<h3><a name="crea"></a>Cr&eacute;ation de sites Internet</h3>
<p>Indicatif des tarifs g&eacute;n&eacute;ralement n&eacute;goci&eacute;s :</p>
<ul>
<li>Site vitrine, galerie : <strong>900 &euro; &agrave; 1500 &euro;</strong> ;<br /></li>
<li>Site d'actualit&eacute;s, &eacute;v&eacute;nements, blog : <strong>1300 &euro; &agrave; 2500 &euro;</strong> ;<br /></li>
<li>Site Intranet ou communautaire : <strong>1500 &euro; &agrave; 3000 &euro;</strong> ;<br /></li>
<li>Site e-commerce : <strong>2000 &euro; &agrave; 3500 &euro;</strong>.</li>
</ul>
<p>Il faut ajouter &agrave; cela vos besoins en formation.</p>
<h3><a name="webmast"></a>Suivi de site Internet (Webmastering)</h3>
<p>Lorsque je r&eacute;alise un site j'assure un accompagnement les 6 premiers mois suivant la mise en ligne. Ensuite je propose diff&eacute;rents forfaits suivant la disponibilit&eacute; demand&eacute;e :</p>
<ul>
<li>R&eacute;solutions de petits soucis &agrave; distance : <strong>200 &euro;/an</strong> ;<br /></li>
<li>Mise en ligne des contenus, rapport r&eacute;gulier d'analyse :<strong> 120 &euro;/mois</strong> ;<br /></li>
<li>Idem avec travail du r&eacute;f&eacute;rencement : <strong>300 &euro;/mois</strong>.</li>
</ul>
<h3><a name="dev"></a>D&eacute;veloppement web</h3>
<p>Je suis en mesure de r&eacute;aliser les d&eacute;veloppements sp&eacute;cifiques n&eacute;cessaires pour mettre en oeuvre les fonctionnalit&eacute;s particuli&egrave;res de votre projet web.</p>
<p>Je vous propose un devis pour une prestation <strong>au forfait</strong>, le devis est payant s'il demande une profonde analyse, et un cahier des charges est bienvenu.</p>
<h2>Devis</h2>
<p>N'h&eacute;sitez pas &agrave; mon contacter pour obtenir un devis !</p>
<div class="note"><img src="http://www.cybermedium.info/skins/_reference/codes/note.gif" width="10" height="10" alt="*" /> Tel : 03.89.06.42.49<br />
Mobile : 06.41.69.71.01<br />
Mail :    <a href="mailto:rair@cybermedium.info">rair@cybermedium.info</a><br />
Localisation : Mulhouse, sud    Alsace</div> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Pages globales</category>
		<pubDate>Thu, 06 Oct 2011 08:23:11 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-5-pages-globales#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/73</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/73</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A73</trackback:ping>
	</item>

 <item>
		<title>Création de sites Internet Clé en main</title>
		<link>http://www.cybermedium.info/article-75-creation-de-sites-internet-cle-en-main</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-75-creation-de-sites-internet-cle-en-main</guid>
		<description> 
 réalisation ou refonte de site de type vitrine, galerie, catalogues e-commerce, ou des sites plus particuliers tel blog, agenda, forum ou intranet/extranet. 
 formation des usagers 
 
</description>
		<content:encoded><![CDATA[ <ul>
<li><strong>r&eacute;alisation</strong> ou <strong>refonte</strong> de site de type <em>vitrine</em>, <em>galerie</em>, <em>catalogues e-commerce</em>, ou des sites plus particuliers tel <em>blog</em>, <em>agenda</em>, <em>forum</em> ou <em>intranet/extranet</em>.</li>
<li>formation des usagers</li>
</ul>
<span class="center_image"><a href="article-73-prestations-de-creation-de-sites-internet--webmastering-et-developpement-web#crea"><span><img src="http://www.cybermedium.info/images/article/75/earth-hand-internet-share.png" alt="earth-hand-internet-share.png"  title="" /></span></a></span> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Boîtes gadget</category>
		<pubDate>Thu, 06 Oct 2011 08:15:16 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-4-boites-gadget#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/75</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/75</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A75</trackback:ping>
	</item>

 <item>
		<title>Développements web</title>
		<link>http://www.cybermedium.info/article-76-developpements-web</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-76-developpements-web</guid>
		<description> 
 Adaptations et intégration de modules logiciels 
 Développement d'applicatifs métiers 
 Interfaçage avec vos systèmes de données existants 
 
</description>
		<content:encoded><![CDATA[ <ul>
<li>Adaptations et int&eacute;gration de modules logiciels</li>
<li>D&eacute;veloppement d'applicatifs m&eacute;tiers</li>
<li>Interfa&ccedil;age avec vos syst&egrave;mes de donn&eacute;es existants</li>
</ul>
<span class="center_image"><a href="article-73-prestations-de-creation-de-sites-internet--webmastering-et-developpement-web#dev"><span><img src="http://www.cybermedium.info/images/article/76/gear3D.png" alt="gear3D.png"  title="" /></span></a></span> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Boîtes gadget</category>
		<pubDate>Thu, 06 Oct 2011 08:12:24 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-4-boites-gadget#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/76</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/76</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A76</trackback:ping>
	</item>

 <item>
		<title>Suivi de site web  </title>
		<link>http://www.cybermedium.info/article-77-suivi-de-site-web--webmastering</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-77-suivi-de-site-web--webmastering</guid>
		<description> 
 Assistance à la gestion du contenu 
 Référencement basique, SEO 
 Stratégie de présence 
 Performances d'affichage 
 Télémaintenance 
 
</description>
		<content:encoded><![CDATA[ <ul>
<li>Assistance &agrave; la gestion du contenu</li>
<li>R&eacute;f&eacute;rencement basique, <acronym title="Search Engine Optimisation">SEO</acronym></li>
<li>Strat&eacute;gie de pr&eacute;sence</li>
<li>Performances d'affichage</li>
<li>T&eacute;l&eacute;maintenance</li>
</ul>
<span class="center_image"><a href="article-73-prestations-de-creation-de-sites-internet--webmastering-et-developpement-web#webmast"><span><img src="http://www.cybermedium.info/images/article/77/binoculars.png" alt="binoculars.png"  title="" /></span></a></span> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Boîtes gadget</category>
		<pubDate>Thu, 06 Oct 2011 08:14:15 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-4-boites-gadget#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/77</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/77</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A77</trackback:ping>
	</item>

 <item>
		<title>Alexis Raimbault</title>
		<link>http://www.cybermedium.info/article-74-alexis-raimbault</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-74-alexis-raimbault</guid>
		<description> Les pieds sur terre, la tête dans les étoiles, je suis autant à l'aise dans les rouages de la programmation que la composition graphique.  Je suis expert-intégrateur avec le CMS Y.A.C.S et membre associé du comité de pilotage de ce logiciel libre </description>
		<content:encoded><![CDATA[ <p>Les pieds sur terre, la t&ecirc;te dans les &eacute;toiles, je suis autant &agrave; l'aise dans les rouages de la <strong>programmation</strong> que la <strong>composition graphique</strong>.</p><p>Je suis<strong> </strong>expert-int&eacute;grateur avec le <strong>CMS Y.A.C.S</strong> et membre associ&eacute; du comit&eacute; de pilotage de ce <strong>logiciel libre</strong></p> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Boîtes extra</category>
		<pubDate>Mon, 26 Sep 2011 12:06:40 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-3-boites-extra#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/74</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/74</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A74</trackback:ping>
	</item>

 <item>
		<title>Site Internet pour un animateur nature/environnement</title>
		<link>http://www.cybermedium.info/article-72-site-internet-pour-un-animateur-nature-environnement</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-72-site-internet-pour-un-animateur-nature-environnement</guid>
		<description>Nature Buissonnière propose des activités de découverte/sensibilisation à la nature. Le site présente les activités ainsi qu'un journal des saisons. 
 Le site, initialement constitué de pages statiques, est refondu avec le CMS Yacs. Ce qui permet de : 
 
 faciliter la maintenance et l'ajout de contenu ;
 
 faciliter la mise en ligne de galeries de photos ;
 
 augmenter le nombre de pages et la mise en avant de contenus pour le référencement. 
 
 Le nouveau design est basé sur une photo en fond d'écran qui changera au fil des saisons. 



Accueil de nature-buissonniere.com</description>
		<content:encoded><![CDATA[ <div class="introduction">Nature Buissonnière propose des activités de découverte/sensibilisation à la nature. Le site présente les activités ainsi qu'un journal des saisons.</div>
<p>Le site, initialement constitu&eacute; de pages statiques, est refondu avec le CMS Yacs. Ce qui permet de :</p>
<ul>
<li>faciliter la maintenance et l'ajout de contenu ;<br /></li>
<li>faciliter la mise en ligne de galeries de photos ;<br /></li>
<li>augmenter le nombre de pages et la mise en avant de contenus pour le r&eacute;f&eacute;rencement.</li>
</ul>
<p>Le nouveau design est bas&eacute; sur une photo en fond d'&eacute;cran qui changera au fil des saisons.</p><br />
<br />
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/72/natbuiss.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/72/thumbs/natbuiss.jpg" alt="accueil de nature-buissonniere.com"  title="accueil de nature-buissonniere.com" /></span></a><span class="image_caption">Accueil de nature-buissonniere.com</span></span> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Portfolio web</category>
		<pubDate>Thu, 15 Sep 2011 12:09:11 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-11-portfolio-web#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/72</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/72</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A72</trackback:ping>
	</item>

 <item>
		<title>Cybermedium reloaded</title>
		<link>http://www.cybermedium.info/article-71-cybermedium-reloaded</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-71-cybermedium-reloaded</guid>
		<description>Nouveau look pour cybermedium.info avec diaporama en fond d'écran. 
 
 Ce n'est pas parce qu'on baigne dans l'informatique que l'on n'apprécie pas la nature. Au contraire, le vert est souvent salutaire ! 
 Donc, profitant de mes derniers travaux sur le CMS YACS, et le thème Fullscreen, je vous ferai dorénavant profiter ici de belles photos en fond d'écran. 
 On commence par une série taïwano-nippone — réalisée par ma compagne Laurence Mellinger si ce n'est moi-même — durant un voyage en 2004. 
 youpi   </description>
		<content:encoded><![CDATA[ <div class="introduction">Nouveau look pour cybermedium.info avec diaporama en fond d'écran.</div>
<p>
<span class="left_image"><span><img src="http://www.cybermedium.info/images/article/71/cybreloadthumb2.jpg" alt="cybreloadthumb2.jpg"  title="" /></span></span> Ce n'est pas parce qu'on baigne dans l'informatique que l'on n'appr&eacute;cie pas la nature. Au contraire, le vert est souvent salutaire !</p>
<p>Donc, profitant de mes derniers travaux sur le <a href="http://www.cybermedium.info/article-20-yacs">CMS YACS</a>, et le th&egrave;me <a href="http://www.cybermedium.info/article-51-fullscreen---vos-images-de-fond-en-plein-ecran">Fullscreen</a>, je vous ferai dor&eacute;navant profiter ici de belles photos en fond d'&eacute;cran.</p>
<p>On commence par une s&eacute;rie ta&iuml;wano-nippone &mdash; r&eacute;alis&eacute;e par ma compagne <a href="http://laurence.mellinger.free.fr">Laurence Mellinger</a> si ce n'est moi-m&ecirc;me &mdash; durant un voyage en 2004.</p>
<p>youpi <img src="http://www.cybermedium.info/skins/_reference/smileys/bounce.gif" alt="bounce" /> </p> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>News</category>
		<pubDate>Tue, 29 Nov 2011 08:03:09 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-2-news#comments</comments>
		<slash:comments>5</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/71</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/71</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A71</trackback:ping>
	</item>

 <item>
		<title>Vous aimez ?</title>
		<link>http://www.cybermedium.info/article-69-vous-aimez</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-69-vous-aimez</guid>
		<description>
 </description>
		<content:encoded><![CDATA[ <g:plusone size="medium"></g:plusone>
<div id="fb-root"></div><script src="http://connect.facebook.net/fr_FR/all.js#appId=242750469082774&amp;xfbml=1"></script><fb:like href="" send="false" layout="button_count" width="155" show_faces="false" font=""></fb:like> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Boîtes de navigation</category>
		<pubDate>Wed, 20 Jul 2011 11:59:32 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-6-boites-de-navigation#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/69</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/69</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A69</trackback:ping>
	</item>

 <item>
		<title>Code HTML/CSS pour afficher une image de fond proportionnée</title>
		<link>http://www.cybermedium.info/article-68-code-html-css-pour-afficher-une-image-de-fond-proportionnee</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-68-code-html-css-pour-afficher-une-image-de-fond-proportionnee</guid>
		<description>Voici comment j'ai mis en place l'image de fond dans mon thème Fullscreen pour le CMS Yacs. 
 J'ai trouvé cette solution sur   css-tricks.com, qui propose d'ailleurs maintenant une solution toute simple en CSS3 (mais qui ne me permettrait pas de faire les transitions en mode diaporama). 
 Partie HTML, à mettre en fin de page, deux balises div et une table unicellulaire contenant l'image : 
 &amp;lt;div id=&quot;bg&quot;&amp;gt;
 &amp;lt;div&amp;gt;
  &amp;lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&amp;gt;
   &amp;lt;tbody&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;
    &amp;lt;img alt=&quot;&quot; src=&quot;votreimage&quot;http://www.cybermedium.info/&amp;gt;
   &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/tbody&amp;gt;
  &amp;lt;/table&amp;gt;
 &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt; 
 Partie CSS (pour une image centrée) : 
 html,body {
    width:100%;height:100%;
    margin:0px;padding:0px;
}
#bg, #bg table, #bg td {
    height:100%;width:100%;
    overflow:hidden;
}
#bg {position: absolute;} /* or fixed */
#bg div {
    position:absolute;
    top:-50%;left:-50%;height:200%;width:200%;
}
#bg td {text-align:center;vertical-align:middle;}
#bg img {min-height:50%;min-width:50%;} 
 Il faut ensuite positionner le contenu de votre site en absolu par dessus la balise #bg, avec un z-index supérieur. 
 Notez qu'en utilisant YACS et le thème Fullscreen, vous aurez beaucoup d'autres fonctionnalités comme : 
 
 attribuer un fond différent à une page du site ;
 
 attribuer un fond différent à une branche du site ;
 
 aligner les images au centre ou suivant une bordure ;
 
 attribuer une légende aux images ;
 
 faire défiler une série d'images en diaporama. 
 </description>
		<content:encoded><![CDATA[ <div class="introduction">Voici comment j'ai mis en place l'image de fond dans mon thème Fullscreen pour le CMS Yacs.</div>
<p>J'ai trouv&eacute; cette solution sur  <img src="http://www.cybermedium.info/skins/_reference/flags/gb.gif" alt="" /> <a href="http://css-tricks.com/3458-perfect-full-page-background-image">css-tricks.com</a>, qui propose d'ailleurs maintenant une solution toute simple en CSS3 (mais qui ne me permettrait pas de faire les transitions en mode diaporama).</p>
<p>Partie HTML, &agrave; mettre en fin de page, deux balises div et une table unicellulaire contenant l'image :</p>
<pre>&lt;div id="bg"&gt;<br/>&nbsp;&lt;div&gt;<br/>&nbsp; &lt;table cellpadding="0" cellspacing="0"&gt;<br/>&nbsp;&nbsp; &lt;tbody&gt;&lt;tr&gt;&lt;td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;img alt="" src="votreimage"http://www.cybermedium.info/&gt;<br/>&nbsp;&nbsp; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;<br/>&nbsp; &lt;/table&gt;<br/>&nbsp;&lt;/div&gt;<br/>&lt;/div&gt;</pre>
<p>Partie CSS (pour une image centr&eacute;e) :</p>
<pre>html,body {<br/>&nbsp;&nbsp;&nbsp; width:100%;height:100%;<br/>&nbsp;&nbsp;&nbsp; margin:0px;padding:0px;<br/>}<br/>#bg, #bg table, #bg td {<br/>&nbsp;&nbsp;&nbsp; height:100%;width:100%;<br/>&nbsp;&nbsp;&nbsp; overflow:hidden;<br/>}<br/>#bg {position: absolute;} /* or fixed */<br/>#bg div {<br/>&nbsp;&nbsp;&nbsp; position:absolute;<br/>&nbsp;&nbsp;&nbsp; top:-50%;left:-50%;height:200%;width:200%;<br/>}<br/>#bg td {text-align:center;vertical-align:middle;}<br/>#bg img {min-height:50%;min-width:50%;}</pre>
<p>Il faut ensuite positionner le contenu de votre site en absolu par dessus la balise #bg, avec un z-index sup&eacute;rieur.</p>
<p>Notez qu'en utilisant <a href="http://www.cybermedium.info/article-20-yacs">YACS</a> et le th&egrave;me <a href="http://www.cybermedium.info/article-51-fullscreen---vos-images-de-fond-en-plein-ecran">Fullscreen</a>, vous aurez <strong>beaucoup d'autres fonctionnalit&eacute;s</strong> comme :</p>
<ul>
<li>attribuer un fond diff&eacute;rent &agrave; une page du site ;<br /></li>
<li>attribuer un fond diff&eacute;rent &agrave; une branche du site ;<br /></li>
<li>aligner les images au centre ou suivant une bordure ;<br /></li>
<li>attribuer une l&eacute;gende aux images ;<br /></li>
<li>faire d&eacute;filer une s&eacute;rie d'images en diaporama.</li>
</ul> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Téléchargez</category>
		<pubDate>Wed, 20 Jul 2011 07:37:24 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-13-telechargez#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/68</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/68</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A68</trackback:ping>
	</item>

 <item>
		<title>Webmastering</title>
		<link>http://www.cybermedium.info/article-25-webmastering</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-25-webmastering</guid>
		<description> 
 Conduite et réalisation de projets web
 
 Expert Intégrateur YACS 
 Intégrateur pour d'autres CMS (Joomla, phpBB3) 
 Webdesign intégration XHTML et CSS 
 Développement PHP et JavaScript 
 Respect des normes W3C  
 Optimisation pour le référencement 
 Hébergement et administration de sites 
 
   </description>
		<content:encoded><![CDATA[ <ul>
<li>Conduite et r&eacute;alisation de projets <strong>web</strong><br /></li>
<li><strong>Expert</strong> Int&eacute;grateur YACS</li>
<li><strong>Int&eacute;grateur</strong> pour d'autres CMS (Joomla, phpBB3)</li>
<li><strong>Webdesign</strong> int&eacute;gration XHTML et CSS</li>
<li><strong>D&eacute;veloppement</strong> PHP et JavaScript</li>
<li>Respect des normes W3C </li>
<li>Optimisation pour le <strong>r&eacute;f&eacute;rencement</strong></li>
<li><strong>H&eacute;bergement</strong> et administration de sites</li>
</ul>
<p>&nbsp;</p> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Pages globales</category>
		<pubDate>Mon, 18 Jul 2011 09:41:19 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-5-pages-globales#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/25</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/25</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A25</trackback:ping>
	</item>

 <item>
		<title>Site Internet pour une artiste plasticienne</title>
		<link>http://www.cybermedium.info/article-56-site-internet-pour-une-artiste-plasticienne</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-56-site-internet-pour-une-artiste-plasticienne</guid>
		<description>Laurence utilise de nombreuses facettes d'expression artistique et l'on ne peut associer son travail à une seule spécialité. 
 Aussi afin de pouvoir ranger facilement ses différentes activités dans son site Internet, nous avons opté pour la souplesse d'un classement transversal par étiquettes (ou &quot;tags&quot;) et la navigation via un nuage de mots-clés. 
 Parallèlement au classement thématique les articles sont positionnés chronologiquement, et Laurence peut aussi créer des dossiers sur un sujet précis. 

La gestion de contenu lui permet bien sûr d'alimenter facilement le site et d'avoir tantôt des pages de photos en galerie, tantôt des textes illustrés.

Le thème graphique affiche différentes images de fond en plein écran, suivant les pages consultées, L'alignement des paragraphes à la droite et la mise en valeur des lignes de texte contribuent à une présentation originale. 



Page d'accueil 
Agenda 
Galerie</description>
		<content:encoded><![CDATA[ <div class="introduction">Laurence utilise de nombreuses facettes d'expression artistique et l'on ne peut associer son travail à une seule spécialité.</div>
<p>Aussi afin de pouvoir ranger facilement ses diff&eacute;rentes activit&eacute;s dans son site Internet, nous avons opt&eacute; pour la souplesse d'un classement transversal par &eacute;tiquettes (ou "tags") et la navigation via un nuage de mots-cl&eacute;s.</p>
<p>Parall&egrave;lement au classement th&eacute;matique les articles sont positionn&eacute;s chronologiquement, et Laurence peut aussi cr&eacute;er des dossiers sur un sujet pr&eacute;cis. <br /><br />La gestion de contenu lui permet bien s&ucirc;r d'alimenter facilement le site et d'avoir tant&ocirc;t des pages de photos en galerie, tant&ocirc;t des textes illustr&eacute;s.<br /><br />Le th&egrave;me graphique affiche diff&eacute;rentes images de fond en plein &eacute;cran, suivant les pages consult&eacute;es, L'alignement des paragraphes &agrave; la droite et la mise en valeur des lignes de texte contribuent &agrave; une pr&eacute;sentation originale.</p><br />
<br />
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/56/lm-accueil.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/56/thumbs/lm-accueil.jpg" alt="Page d'accueil"  title="Page d'accueil" /></span></a><span class="image_caption">Page d'accueil</span></span> 
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/56/lm-agenda.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/56/thumbs/lm-agenda.jpg" alt="Agenda"  title="Agenda" /></span></a><span class="image_caption">Agenda</span></span> 
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/56/lm-galerie.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/56/thumbs/lm-galerie.jpg" alt="galerie"  title="galerie" /></span></a><span class="image_caption">Galerie</span></span> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Portfolio web</category>
		<pubDate>Sun, 29 May 2011 16:45:49 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-11-portfolio-web#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/56</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/56</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A56</trackback:ping>
	</item>

 <item>
		<title>Associé au projet YACS</title>
		<link>http://www.cybermedium.info/article-55-associe-au-projet-yacs</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-55-associe-au-projet-yacs</guid>
		<description>Membre du comité de gestion de YACS depuis janvier 2010, ce fut pour moi une première année de contribution très active : 
 
 création d'un nouveau logo pour représenter le logiciel et sa communauté ; 
 relooking du site yacs.fr, en accord avec le nouveau logo, et en intégrant des remarques de la communauté sur l'ergonomie ; 
 extension du script PHP générant les onglets de navigation, pour construire dynamiquement un menu horizontal déroulant ; 
 fer de lance dans la nouvelle politique de gestion des sources employant le combiné git + github ;
 
 support régulier des usagers de la communauté. 
 
 C'est cependant une contribution mesurée, en adoptant un rythme d'endurance. Ma motivation principale est de faire évoluer mon outil de production tout en ramifiant mon réseau. Il s'agit de trouver un équilibre entre les développements dont j'ai besoin pour mes clients, les développements populaires à la communauté, les actions qui améliorent l'image du logiciel, et le temps de réalisation que toutes ces contributions demandent ! 
 Néanmoins l'aventure du logiciel libre en vaut la chandelle : pour peu que l'on soit un contributeur régulier et de qualité — avec une pointe d'originalité — on ne tarde pas à se faire remarquer. 



Logo officiel de YACS
 Le 17 et 18 février se tenait à Paris/La Cantine un séminaire pour  YACS. À cette occasion j'ai présenté un atelier sur la gestion des  sources avec GIT. 

Maintenant que j'ai rencontré en chair et en os les autres fers de lance de la communauté, j'ai officiellement accepté de devenir le cinquième associé de yacs.fr. </description>
		<content:encoded><![CDATA[ <div class="introduction">Membre du comité de gestion de <a href="http://www.cybermedium.info/article-20-yacs">YACS</a> depuis janvier 2010, ce fut pour moi une première année de contribution très active :</div>
<ul>
<li>cr&eacute;ation d'un <strong>nouveau logo</strong> pour repr&eacute;senter le logiciel et sa communaut&eacute;&nbsp;;</li>
<li><strong>relooking du site</strong> <a href="http://yacs.fr">yacs.fr</a>, en accord avec le nouveau logo, et en int&eacute;grant des remarques de la communaut&eacute; sur l'ergonomie ;</li>
<li>extension du script PHP g&eacute;n&eacute;rant les onglets de navigation, pour construire dynamiquement un <strong>menu horizontal d&eacute;roulant</strong> ;</li>
<li>fer de lance dans la nouvelle politique de gestion des sources employant le combin&eacute; <strong>git + github</strong> ;<br /></li>
<li><strong>support</strong> r&eacute;gulier des usagers de la communaut&eacute;.</li>
</ul>
<p>C'est cependant une contribution mesur&eacute;e, en adoptant un rythme d'<strong>endurance</strong>. Ma motivation principale est de faire &eacute;voluer mon outil de production tout en ramifiant mon r&eacute;seau. Il s'agit de trouver un <strong>&eacute;quilibre</strong> entre les d&eacute;veloppements dont j'ai besoin pour mes clients, les d&eacute;veloppements populaires &agrave; la communaut&eacute;, les actions qui am&eacute;liorent l'image du logiciel, et le temps de r&eacute;alisation que toutes ces contributions demandent !</p>
<p>N&eacute;anmoins l'aventure du<strong> logiciel libre</strong> en vaut la chandelle : pour peu que l'on soit un contributeur r&eacute;gulier et de qualit&eacute; &mdash; avec une pointe d'originalit&eacute; &mdash; on ne tarde pas &agrave; se faire remarquer.</p><br />
<br />
<span class="center_image"><span class="large"><span><img src="http://www.cybermedium.info/images/article/55/yacshead4.png" alt="logo officiel de YACS"  title="logo officiel de YACS" class="aucune" /></span><span class="image_caption">Logo officiel de YACS</span></span></span>
<p>Le 17 et 18 f&eacute;vrier se tenait &agrave; Paris/La Cantine un s&eacute;minaire pour  YACS. &Agrave; cette occasion j'ai pr&eacute;sent&eacute; un atelier sur la gestion des  sources avec GIT. <br /><br />Maintenant que j'ai rencontr&eacute; en chair et en os les autres fers de lance de la communaut&eacute;, j'ai officiellement accept&eacute; de <strong>devenir le cinqui&egrave;me associ&eacute;</strong> de yacs.fr.</p> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>News</category>
		<pubDate>Tue, 19 Jul 2011 15:59:18 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-2-news#comments</comments>
		<slash:comments>1</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/55</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/55</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A55</trackback:ping>
	</item>

 <item>
		<title>Site Internet d'expéditions polaires</title>
		<link>http://www.cybermedium.info/article-54-site-internet-d-expeditions-polaires</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-54-site-internet-d-expeditions-polaires</guid>
		<description>Chiens de traîneau, grand Nord, raids, kayak, croisières d'exploration. 
 Gilles Elkaim, explorateur émérite, c'est installé au nord de la Finlande où il élève des races primitives de chiens de traineau, et propose aux aventuriers le goût du grand Nord. 
 Ce site est une refonte qui mise sur les photos exceptionnelles de Gilles. Le thème affiche en arrière-plan des images plein écran qui plongent le surfeur dans l'ambiance de la nature sauvage, ce, grâce au thème fullscreen que j'ai réalisé pour le CMS Yacs. 
 La navigation et les galeries photos sont plus accessibles qu'auparavant, et les pages bénéficient des dernières technologies d'optimisation de l'indexation pour le référencement. 



Accueil 
Une rubrique 
Galerie 
Diaporama</description>
		<content:encoded><![CDATA[ <div class="introduction">Chiens de traîneau, grand Nord, raids, kayak, croisières d'exploration.</div>
<p>Gilles Elkaim, explorateur &eacute;m&eacute;rite, c'est install&eacute; au nord de la Finlande o&ugrave; il &eacute;l&egrave;ve des races primitives de chiens de traineau, et propose aux aventuriers le go&ucirc;t du grand Nord.</p>
<p>Ce site est une refonte qui mise sur les photos exceptionnelles de Gilles. Le th&egrave;me affiche en arri&egrave;re-plan des images plein &eacute;cran qui plongent le surfeur dans l'ambiance de la nature sauvage, ce, gr&acirc;ce au th&egrave;me fullscreen que j'ai r&eacute;alis&eacute; pour le CMS Yacs.</p>
<p>La navigation et les galeries photos sont plus accessibles qu'auparavant, et les pages b&eacute;n&eacute;ficient des derni&egrave;res technologies d'optimisation de l'indexation pour le r&eacute;f&eacute;rencement.</p><br />
<br />
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/54/Arktika1.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/54/thumbs/Arktika1.jpg" alt="Accueil"  title="Accueil" /></span></a><span class="image_caption">Accueil</span></span> 
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/54/Arktika2.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/54/thumbs/Arktika2.jpg" alt="une rubrique"  title="une rubrique" /></span></a><span class="image_caption">Une rubrique</span></span> 
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/54/Arktika3.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/54/thumbs/Arktika3.jpg" alt="galerie"  title="galerie" /></span></a><span class="image_caption">Galerie</span></span> 
<span class="center_image"><a href="http://www.cybermedium.info/images/article/54/Arktika4.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/54/thumbs/Arktika4.jpg" alt="diaporama"  title="diaporama" /></span></a><span class="image_caption">Diaporama</span></span> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Portfolio web</category>
		<pubDate>Fri, 24 Dec 2010 12:25:56 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-11-portfolio-web#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/54</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/54</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A54</trackback:ping>
	</item>

 <item>
		<title>Profession : graphiste indépendant</title>
		<link>http://www.cybermedium.info/article-52-profession---graphiste-independant</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-52-profession---graphiste-independant</guid>
		<description>Un excellent ouvrage sur le métier de graphiste indépendant, transposable aux autres activités online et plus généralement au statut du free-lance. 
 
 Que vous soyez débutant, ou que vous ayez besoin de révisions, un ensemble d'informations que l'on &quot;connaît déjà&quot; mais que paradoxalement on ne met pas forcément en application !

Bref un coup de fouet pour votre activité, détaillé et agréable à lire, qui aide à relever la tête du guidon. 
   </description>
		<content:encoded><![CDATA[ <div class="introduction">Un excellent ouvrage sur le métier de graphiste indépendant, transposable aux autres activités online et plus généralement au statut du free-lance.</div>
<p>
<span class="left_image"><a href="http://www.profession-graphiste-independant.com/" onclick="window.open(this.href); return false;"><span><img src="http://www.cybermedium.info/images/article/52/pdi.gif" alt="pdi.gif"  title="" /></span></a></span> Que vous soyez d&eacute;butant, ou que vous ayez besoin de r&eacute;visions, un ensemble d'informations que l'on "conna&icirc;t d&eacute;j&agrave;" mais que paradoxalement on ne met pas forc&eacute;ment en application !<br /><br />Bref un coup de fouet pour votre activit&eacute;, d&eacute;taill&eacute; et agr&eacute;able &agrave; lire, qui aide &agrave; relever la t&ecirc;te du guidon.</p>
<p>&nbsp;</p> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>News</category>
		<pubDate>Wed, 16 Feb 2011 07:03:50 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-2-news#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/52</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/52</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A52</trackback:ping>
	</item>

 <item>
		<title>Fullscreen : vos images de fond en plein écran</title>
		<link>http://www.cybermedium.info/article-51-fullscreen---vos-images-de-fond-en-plein-ecran</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-51-fullscreen---vos-images-de-fond-en-plein-ecran</guid>
		<description>Un thème original pour YACS 
photo du fond: Hong Kong sky lights, Laurence Mellinger, 2004.



 Suivez ce lien si vous cherchez seulement l'astuce css/html pour afficher l'image de fond C'est à partir d'un tutoriel donné par le concepteur web Guillaume Normand, dans le hors-serie n°5 de la revue Webdesign, que j'ai intégré ce thème pour YACS, en l'enrichissant davantage et surtout en utilisant la puissance d'un CMS pour mettre en œuvre une utilisation intéressante d'images de fond.



C'est là le principal objet de ce thème : pouvoir afficher une image de fond, ajustée en plein écran.
En second objet, comme tous les blocs sont positionnés en absolu, il n'y a pas de défilement de la page. (C'est le main_panel seulement qui fait défiler son contenu.) En conséquence les menus et les outils sont visibles et accessibles en permanence.





Menu d'interactions
DépliéAfin d'optimiser davantage la place, et ne pas masquer l'image de fond, la colonne extra est affichée de manière innovante à l'horizontale en haut de page, et se déplie au survol de la souris.



  Bien sûr ces positionnements ont une limite de place disponible, surtout en petite résolution, et ne conviendront pas sur un site qui demande d'afficher beaucoup d'informations (boîtes de navigation, etc.).



Pour une consultation depuis un mobile, Yacs utilise un autre canevas. 
Positionnement intelligent L'affichage de l'image de fond n'est pas qu'une simple déformation de l'image aux dimensions de la fenêtre du navigateur. Les proportions de l'image sont préservées tandis que l'image est centrée. Selon le différentiel entre les proportions de l'image et de la fenêtre du navigateur, l'image est rognée verticalement ou horizontalement. Le rendu est obtenu par les balises HTML et les règles CSS.
Fonds multiples L'image de fond par défaut est images/background.jpg dans le répertoire du thème. 
Là ou cela devient intéressant c'est que le thème permet d'utiliser très facilement des backgrounds différents pour chaque page, attribués en cascade sur l'arborescence, et sans intervenir dans le code PHP !
Deux méthodes sont disponibles simultanément :
  méthode 1 : définir au niveau d'une section une option de variante de thème. Par exemple &quot;variant_montheme&quot;. 

Uploadez ensuite par FTP une image nommée background_montheme dans le répertoire /images du thème. 

Le thème va afficher automatiquement l'image en fond pour la section et tous ces descendants.   méthode 2 : fournir au niveau d'une page une &quot;image de page&quot;.L'image de page sera utilisée pour le fond, en priorité d'après la méthode 1. 

Dans le cadre d'une section le fond est cascadé sur un niveau inférieur seulement.    
 Notez que la méthode 1 affiche le fond lors de l'édition des pages, ce qui n'est pas le cas de la méthode 2 (le fond par défaut est utilisé à la place, ou une variante définie aux niveaux supérieurs de la page).  Pour la méthode 2, attention au redimensionnement des images par YACS. Voici la procédure la plus rapide pour attribuer un fond sur un serveur YACS Martin :
  allez sur la page concernée, cliquez sur &quot;modifier la page&quot; dans outils (en haut) ;  cliquez sur l'onglet &quot;média&quot; ;  cliquez sur le bouton &quot;ajouter&quot; pour la ligne &quot;image de page&quot; ;  donnez votre fichier, l'image est chargée, mais à cet instant elle est retaillée aux dimensions d'une vignette !  cliquez sur le lien &quot;ajouter une autre image&quot; en dessous du message de notification ;  redonnez le même fichier ;  dans les options, si vous êtes de niveau d'accès associé, cochez &quot;ne pas redimensionner l'image&quot;. Si vous êtes simple membre, vous tombez sous le coup des limites pour grandes images, paramètres du serveur ;  l'image de page est maintenant aux bonnes dimensions, retournez à la page principale pour voir le résultat.    Concernant la méthode 1 avec variantes de thème, il faut savoir que YACS génère déjà des marquages de variantes selon les pages affichées. Par exemple &quot;users&quot;, &quot;categories, &quot;control&quot;, &quot;sections&quot;, &quot;articles&quot;, etc. 

En fournissant par exemple une image &quot;background_users.jpg&quot;, celle-ci s'affichera automatiquement pour l'index des utilisateurs, les profils, la page d'authentification.



Consultez dans le source HTML l'identifiant de la &quot;balise body&quot; pour connaître la variante de la page. Menu en boutons 3D Menu en boutonsLes règles de style transforment les liens de la colonne latérale en joli menu à boutons (pour les navigateurs compatibles CSS3). Vous pouvez facilement changer les couleurs via la feuille de style.



Les boutons dans le corps de page (barre de commande, boutons à la demande) auront le même rendu.
Feuille de style CSS3 Titre et fil d'Ariane 
Onglets, en-têtes et menu Les effets de style sont obtenus par CSS3 et donc non implémentés par tous les navigateurs. Cependant c'est une solution d'avenir, qui simplifie fortement l'intégration.



@font-face, box-shadow, text-shadow, border-radius.
Personnaliser et dériver ce thème  Le CSS est organisé de manière à isoler ce qui relève de la décoration ou du positionnement délicat des blocs.



Le thème est livré ici avec une ambiance quelque peu technoïde, mais vous pouvez rapidement changer ses couleurs en éditant la première partie du CSS. 



Les scripts sont entièrement commentés.



Idées d'utilisation  À partir de ce thème, vous pouvez élaborer une galerie d'images en plein écran. De nouvelles interactions pourront aussi être mises en oeuvre après l'intégration de jQuery.
Spécifications   En-tête, colonne latérale, corps de page, pied de page, barre d'interactions  Positionnement absolu, blocs toujours visibles  2 colonnes + une barre d'interactions dépliable au survol  Menu en boutons 3D  Onglets de navigation  Fil d'Ariane  Validité XHTML 1.1  Feuille de style CSS3  Police embarquée  Rendu maximum avec le navigateur Firefox 3.5+  Scripts très commentés, basés sur le thème Mu  </description>
		<content:encoded><![CDATA[ <div class="introduction">Un thème original pour YACS</div>
<span class="center_image"><span class="large"><span><img src="http://www.cybermedium.info/images/article/51/accueilmedium.jpg" alt="accueilmedium.jpg"  title="" class="aucune" /></span></span></span><span class="small">photo du fond: <i>Hong Kong sky lights</i>, Laurence Mellinger, 2004.</span><br />
<br />
<div class="note"><img src="http://www.cybermedium.info/skins/_reference/codes/note.gif" width="10" height="10" alt="*" /> Suivez ce lien si vous cherchez seulement <a href="http://www.cybermedium.info/article-68-code-html-css-pour-afficher-une-image-de-fond-proportionnee">l'astuce css/html pour afficher l'image de fond</a></div>C'est à partir d'un tutoriel donné par le <b>concepteur web</b> Guillaume Normand, dans le hors-serie n°5 de la revue <b><i>Webdesign</i></b>, que j'ai intégré ce thème pour <b>YACS</b>, en l'enrichissant davantage et surtout en utilisant la puissance d'un <b>CMS</b> pour mettre en œuvre une utilisation intéressante d'images de fond.<br />
<br />
C'est là le principal objet de ce thème : pouvoir afficher une <b>image de fond, ajustée en plein écran</b>.
En second objet, comme tous les blocs sont positionnés en absolu, il n'y a pas de défilement de la page. (C'est le main_panel seulement qui fait défiler son contenu.) En conséquence les <b>menus et les outils sont visibles et accessibles en permanence</b>.<br />
<br />
<br />
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/51/interact1.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/51/thumbs/interact1.jpg" alt="menu d'interactions"  title="menu d'interactions" /></span></a><span class="image_caption">Menu d'interactions</span></span>
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/51/interact2.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/51/thumbs/interact2.jpg" alt="déplié"  title="déplié" /></span></a><span class="image_caption">Déplié</span></span>Afin d'optimiser davantage la place, et ne pas masquer l'image de fond, la colonne extra est affichée de manière innovante à l'horizontale en haut de page, et se déplie au survol de la souris.<br />
<br />
 <br style="clear: both;" /> Bien sûr ces positionnements ont une limite de place disponible, surtout en petite résolution, et ne conviendront pas sur un site qui demande d'afficher beaucoup d'informations (boîtes de navigation, etc.).<br />
<br />
<div class="center"><span class="small">Pour une consultation depuis un mobile, Yacs utilise un autre canevas.</span></div>
<h2 id="title_1" ><span>Positionnement intelligent</span></h2>L'affichage de l'image de fond n'est pas qu'une simple déformation de l'image aux dimensions de la fenêtre du navigateur. Les <b>proportions</b> de l'image sont <b>préservées</b> tandis que l'image est centrée. Selon le différentiel entre les proportions de l'image et de la fenêtre du navigateur, l'image est rognée verticalement ou horizontalement. Le rendu est obtenu par les balises HTML et les règles CSS.
<h2 id="title_2" ><span>Fonds multiples</span></h2>L'image de fond par défaut est images/background.jpg dans le répertoire du thème. 
Là ou cela devient intéressant c'est que le thème permet d'utiliser très facilement des <b>backgrounds différents pour chaque page</b>, attribués <b>en cascade</b> sur l'arborescence, et <b>sans intervenir dans le code PHP</b> !
Deux méthodes sont disponibles simultanément :
<ul><li><b>méthode 1</b> : définir au niveau d'une section une option de <b>variante de thème</b>. <div class="indent">Par exemple "variant_montheme". <br />
Uploadez ensuite par FTP une image nommée background_montheme dans le répertoire /images du thème. <br />
Le thème va afficher automatiquement l'image en fond pour la section et tous ces descendants.</div></li><li><b>méthode 2</b> : fournir au niveau d'une page une "<b>image de page</b>".<div class="indent">L'image de page sera utilisée pour le fond, en priorité d'après la méthode 1. <br />
Dans le cadre d'une section le fond est cascadé sur un niveau inférieur seulement.</div> </li></ul>
<div class="note"><img src="http://www.cybermedium.info/skins/_reference/codes/note.gif" width="10" height="10" alt="*" /> Notez que la <b>méthode 1</b> affiche le fond lors de <b>l'édition des pages</b>, ce qui n'est pas le cas de la méthode 2 (le fond par défaut est utilisé à la place, ou une variante définie aux niveaux supérieurs de la page).</div><div class="note"><img src="http://www.cybermedium.info/skins/_reference/codes/note.gif" width="10" height="10" alt="*" /> Pour la <b>méthode 2</b>, attention au redimensionnement des images par YACS. Voici la procédure la plus rapide pour attribuer un fond sur un serveur YACS Martin :
<ul><li>allez sur la page concernée, cliquez sur "modifier la page" dans outils (en haut) ;</li><li>cliquez sur l'onglet "média" ;</li><li>cliquez sur le bouton "ajouter" pour la ligne "image de page" ;</li><li>donnez votre fichier, l'image est chargée, mais à cet instant elle est retaillée aux dimensions d'une vignette !</li><li>cliquez sur le lien "ajouter une autre image" en dessous du message de notification ;</li><li>redonnez le même fichier ;</li><li>dans les options, si vous êtes de niveau d'accès associé, cochez "ne pas redimensionner l'image". Si vous êtes simple membre, vous tombez sous le coup des limites pour grandes images, paramètres du serveur ;</li><li>l'image de page est maintenant aux bonnes dimensions, retournez à la page principale pour voir le résultat.</li></ul></div><div class="note"><img src="http://www.cybermedium.info/skins/_reference/codes/note.gif" width="10" height="10" alt="*" /> Concernant la <b>méthode 1</b> avec variantes de thème, il faut savoir que YACS génère déjà des marquages de variantes selon les pages affichées. Par exemple "users", "categories, "control", "sections", "articles", etc. <br />
En fournissant par exemple une image "background_users.jpg", celle-ci s'affichera automatiquement pour l'index des utilisateurs, les profils, la page d'authentification.<br />
<br />
Consultez dans le source HTML l'identifiant de la "balise body" pour connaître la variante de la page.</div><h2 id="title_3" ><span>Menu en boutons 3D</span></h2><span class="left_image"><a href="http://www.cybermedium.info/images/article/51/buttons.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/51/thumbs/buttons.jpg" alt="Menu en boutons"  title="Menu en boutons" /></span></a><span class="image_caption">Menu en boutons</span></span>Les règles de style transforment les liens de la colonne latérale en <b>joli menu à boutons</b> (pour les navigateurs compatibles CSS3). Vous pouvez facilement changer les couleurs via la feuille de style.<br />
<br />
Les boutons dans le corps de page (barre de commande, boutons à la demande) auront le même rendu.
<h2 id="title_4" ><span>Feuille de style CSS3</span></h2><span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/51/titleandcrumbs.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/51/thumbs/titleandcrumbs.jpg" alt="Titre et fil d'Ariane"  title="Titre et fil d'Ariane" /></span></a><span class="image_caption">Titre et fil d'Ariane</span></span> 
<span class="thumbnail_image"><a href="http://www.cybermedium.info/images/article/51/tabsheadermenu.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/51/thumbs/tabsheadermenu.jpg" alt="Onglets, en-têtes et menu"  title="Onglets, en-têtes et menu" /></span></a><span class="image_caption">Onglets, en-têtes et menu</span></span> Les effets de style sont obtenus par CSS3 et donc non implémentés par tous les navigateurs. Cependant c'est une solution d'avenir, qui simplifie fortement l'intégration.<br />
<br />
@font-face, box-shadow, text-shadow, border-radius.
<h2 id="title_5" ><span>Personnaliser et dériver ce thème</span></h2><span class="left_image"><span><img src="http://www.cybermedium.info/images/article/51/1279458520-gt2-recycle-empty-green.png" alt="1279458520-gt2-recycle-empty-green.png"  title="" /></span></span> Le CSS est organisé de <b>manière à isoler</b> ce qui relève de la <b>décoration</b> ou du <b>positionnement</b> délicat des blocs.<br />
<br />
Le thème est livré ici avec une ambiance quelque peu technoïde, mais vous pouvez rapidement changer ses couleurs en éditant la première partie du CSS. <br />
<br />
Les scripts sont <b>entièrement commentés</b>.<br />
<br />
<h2 id="title_6" ><span>Idées d'utilisation</span></h2><img src="http://www.cybermedium.info/skins/_reference/codes/answer.gif" width="23" height="30" alt="!!" /> À partir de ce thème, vous pouvez élaborer une galerie d'images en plein écran. De nouvelles interactions pourront aussi être mises en oeuvre après l'intégration de jQuery.
<h2 id="title_7" ><span>Spécifications</span></h2><ul><li>En-tête, colonne latérale, corps de page, pied de page, barre d'interactions</li><li>Positionnement absolu, blocs toujours visibles</li><li>2 colonnes + une barre d'interactions dépliable au survol</li><li>Menu en boutons 3D</li><li>Onglets de navigation</li><li>Fil d'Ariane</li><li>Validité XHTML 1.1</li><li>Feuille de style CSS3</li><li>Police embarquée</li><li>Rendu maximum avec le navigateur Firefox 3.5+</li><li>Scripts très commentés, basés sur le thème Mu</li></ul> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Téléchargez</category>
		<pubDate>Mon, 18 Jul 2011 12:32:17 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-13-telechargez#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/51</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/51</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A51</trackback:ping>
	</item>

 <item>
		<title>Mu : un thème minimaliste pour YACS</title>
		<link>http://www.cybermedium.info/article-50-mu---un-theme-minimaliste-pour-yacs</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-50-mu---un-theme-minimaliste-pour-yacs</guid>
		<description>Thème très léger ! 
 
Mu theme for yacs Thème graphique MU 

 Mu est le symbole du vide dans la philosphie zen... mais le vide est &quot;plein&quot;, et engendre la création ! 
 Plus concrètement j'avais un besoin personnel d'avoir un thème épuré, notamment des nombreuses règles de mise en page des feuilles de style CSS, très fournies dans les thèmes de référence. 
 Un thème qui ne présente quasiment pas de parti pris, qui permette de bien visualiser les blocs HTML produits par le moteur YACS et aussi les choix induits par la feuille de style interne yacs.css. 
 C'est donc moins un thème graphique destiné à l'utilisation en production, que pour en démarrer un nouveau, ou bien pour développer de nouvelles fonctionnalités au niveau des scripts du noyau, et ce, sans rencontrer d'interférence relative à des choix spécifiques de mise en page. J'ai renforcé les explications dans les commentaires du code. 
   Ce que comporte ce thème : 
 
 une feuille de style minimaliste de 2 ko, juste pour positionner et identifier les blocs ;
 
 un affichage sur 3 colonnes + en-tête et pied de page ;
 
 la gestion des onglets de Yacs (remaniée) ;
 
 le fil d'Ariane ;
 
 un favicon alternatif ;
 
 la mise en page spécifique pour l'impression ;
 
 la validité XHTML 1.1. 
 



</description>
		<content:encoded><![CDATA[ <div class="introduction">Thème très léger !</div>
<p>
<span class="left_image"><span><img src="http://www.cybermedium.info/images/article/50/preview.jpg" alt="Mu theme for yacs"  title="Mu theme for yacs" /></span><span class="image_caption">Mu theme for yacs</span></span> <a href="http://www.cybermedium.info/file-fetch/9-mu.zip">Thème graphique MU</a> <br />
 Mu est le symbole du vide dans la philosphie zen... mais le vide est "plein", et engendre la <strong>cr&eacute;ation</strong> !</p>
<p>Plus concr&egrave;tement j'avais un besoin personnel d'avoir un <strong>th&egrave;me &eacute;pur&eacute;</strong>, notamment des nombreuses r&egrave;gles de mise en page des feuilles de style CSS, tr&egrave;s fournies dans les th&egrave;mes de r&eacute;f&eacute;rence.</p>
<p>Un th&egrave;me qui ne pr&eacute;sente quasiment pas de parti pris, qui permette de <strong>bien visualiser les blocs HTML</strong> produits par le moteur YACS et aussi les choix induits par la feuille de style interne yacs.css.</p>
<p>C'est donc moins un th&egrave;me graphique destin&eacute; &agrave; l'utilisation en production, que pour en <strong>d&eacute;marrer</strong> un nouveau, ou bien pour <strong>d&eacute;velopper</strong> de nouvelles fonctionnalit&eacute;s au niveau des scripts du noyau, et ce, sans rencontrer d'interf&eacute;rence relative &agrave; des choix sp&eacute;cifiques de mise en page. J'ai renforc&eacute; les <strong>explications</strong> dans les commentaires du code.</p>
<p> <br style="clear: both;" /> Ce que comporte ce th&egrave;me :</p>
<ul>
<li>une feuille de style minimaliste de 2 ko, juste pour positionner et identifier les blocs ;<br /></li>
<li>un affichage sur 3 colonnes + en-t&ecirc;te et pied de page ;<br /></li>
<li>la gestion des onglets de Yacs (remani&eacute;e) ;<br /></li>
<li>le fil d'Ariane ;<br /></li>
<li>un favicon alternatif ;<br /></li>
<li>la mise en page sp&eacute;cifique pour l'impression ;<br /></li>
<li>la validit&eacute; XHTML 1.1.</li>
</ul><br />
<br />
<span class="center_image"><a href="http://www.cybermedium.info/images/article/50/Capture.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/50/thumbs/Capture.jpg" alt="Capture.jpg"  title="" /></span></a></span> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Téléchargez</category>
		<pubDate>Mon, 13 Sep 2010 19:29:51 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-13-telechargez#comments</comments>
		<slash:comments>2</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/50</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/50</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A50</trackback:ping>
	</item>

 <item>
		<title>Réalité augmentée ou imagination diminuée ?</title>
		<link>http://www.cybermedium.info/article-49-realite-augmentee-ou-imagination-diminuee</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-49-realite-augmentee-ou-imagination-diminuee</guid>
		<description> Il y a quelque temps déjà je tombais sur un billet traitant de &quot;réalité augmentée&quot; (augmented reality), sujet à la mode.  Le principe est généralement le suivant : des informations &quot;virtuelles&quot; se superposent à ce que nous voyons dans notre environnement, au moyen le plus souvent de lunettes semi-transparentes qui servent d'écran et dans lesquelles &quot;flotte&quot; l'information par-dessus nos objets du quotidien.  Cela donne une &quot;réalité augmentée&quot; dans le sens où l'on peut recevoir des informations complémentaires, invisibles normalement, et tout cela en temps réel.  ===la RA pour jouer=== 
Projet SCOPE Ce qui m'a frappé dans cet article c'est le sujet en exemple : des enfants qui jouent, plus précisément, deux garçons qui s'inventent une bataille avec leurs legos et autres jouets. Les lunettes les assistent dans leurs jeux pour calculer la trajectoire des tirs, compter les points, etc. (Détails dans projet SCOPE par Frantz Lasorne.) Je m'étonne : comme si des enfants avaient besoin d'un système pour créer leur univers ! Voilà, je trouve un champ d'application mal choisi.     ===Virtual Earth=== Une autre application de &quot;réalité augmentée&quot;, un système à la &quot;google earth&quot; (  Virtual Earth, Microsoft), propose une superposition inversée : le &quot;réel&quot; dans le &quot;cyber&quot;. Ainsi le système affiche en incrustation sur la représentation 3D des images ou vidéos, provenant de réseaux sociaux (Flickr...) ou même en temps réel (exemples en seconde partie de vidéo).   








   Sous-titres disponibles mais pas en français   Mais il y a un danger : le système n'affichera que les données provenant d'institutions partenaires, ayant conclu un accord commercial. Il faudra faire attention de ne pas déduire que &quot;si une chose n'est pas dans la cyber-planète, c'est qu'elle n'existe pas !&quot;.   ===Réalité biaisée ?=== Finalement, c'est le terme &quot;réalité augmentée&quot; en lui-même qui me gêne. Comment peut-on &quot;augmenter&quot; la réalité alors que toute une partie nous échappe encore ? Et n'existe-t-il pas plutôt une &quot;réalité biaisée&quot; si tout le monde voit la réalité &quot;augmentée&quot; de la même façon ? C'est comme les médias, mais en plus puissant car cela peut potentiellement imprégner nos moindres gestes.  Imaginons que l'on se balade dans la rue ou dans la nature. Via un système optique, la réalité augmentée nous informerait sur ce que nous regardons : 



 &quot;Restaurant *sélection Guide du routard* à 100 m, tournez à droite.  &quot;

 &quot;Ceci est un érable à sucre (Acer saccharum), on peut en faire du sirop.  &quot;

 &quot;Alice a tagué votre mur ! &quot;

 &quot;Vous ne pouvez pas manger ce champignon&quot;

  &quot; &quot;

 &quot;Le feu est rouge, attendez.&quot;

     ===Pensons-y=== Plus l'homme s'entoure d'objets-béquilles, plus ses capacités propres diminuent peu à peu. S'il est alors projeté dans un environnement sans support externe, il est perdu. Par exemple sans GPS, on perd du temps. Avec un GPS, on perd le sens de l'orientation. A méditer. </description>
		<content:encoded><![CDATA[ <p>Il y a quelque temps d&eacute;j&agrave; je tombais sur un billet traitant de "r&eacute;alit&eacute; augment&eacute;e" (augmented reality), sujet &agrave; la mode.  Le principe est g&eacute;n&eacute;ralement le suivant : des informations "virtuelles" se superposent &agrave; ce que nous voyons dans notre environnement, au moyen le plus souvent de lunettes semi-transparentes qui servent d'&eacute;cran et dans lesquelles "flotte" l'information par-dessus nos objets du quotidien.  Cela donne une "r&eacute;alit&eacute; augment&eacute;e" dans le sens o&ugrave; l'on peut recevoir des informations compl&eacute;mentaires, invisibles normalement, et tout cela en temps r&eacute;el.  ===la RA pour jouer=== 
<span class="left_image"><a href="http://www.cybermedium.info/images/article/49/argumented-1.jpg" class="image_show"><span><img src="http://www.cybermedium.info/images/article/49/thumbs/argumented-1.jpg" alt="projet SCOPE"  title="projet SCOPE" /></span></a><span class="image_caption">Projet SCOPE</span></span> Ce qui m'a frapp&eacute; dans <a href="http://www.yankodesign.com/2009/03/16/surreal-becomes-real-with-toys-and-ar/">cet article</a> c'est le sujet en exemple : des enfants qui jouent, plus pr&eacute;cis&eacute;ment, deux gar&ccedil;ons qui s'inventent une bataille avec leurs legos et autres jouets. Les lunettes les assistent dans leurs jeux pour calculer la trajectoire des tirs, compter les points, etc. (D&eacute;tails dans <a href="http://turing.lecolededesign.com/flasorne/portfolio/index.php?2009/01/25/30-real-virtual-playground">projet SCOPE par Frantz Lasorne</a>.) Je m'&eacute;tonne : comme si des enfants avaient besoin d'un syst&egrave;me pour cr&eacute;er leur univers ! Voil&agrave;, je trouve un champ d'application mal choisi.   <br style="clear: both;" />  ===Virtual Earth=== Une autre application de "r&eacute;alit&eacute; augment&eacute;e", un syst&egrave;me &agrave; la "google earth" ( <img src="http://www.cybermedium.info/skins/_reference/flags/gb.gif" alt="" /> <a href="http://en.wikipedia.org/wiki/Virtual_Earth">Virtual Earth</a>, Microsoft), propose une superposition invers&eacute;e : le "r&eacute;el" dans le "cyber". Ainsi le syst&egrave;me affiche en incrustation sur la repr&eacute;sentation 3D des images ou vid&eacute;os, provenant de r&eacute;seaux sociaux (Flickr...) ou m&ecirc;me en temps r&eacute;el (exemples en seconde partie de vid&eacute;o).   <div class="center"><object width="446" height="326" type="application/x-shockwave-flash" data="http://video.ted.com/assets/player/swf/EmbedPlayer.swf">
<param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" />
<param name="allowFullScreen" value="true" />
<param name="wmode" value="transparent" />
<param name="bgColor" value="#ffffff" />
<param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/BlaiseAguerayArcas_2010-medium.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BlaiseAgueraYArcas-2010.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=766&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=blaise_aguera;year=2010;theme=a_taste_of_ted2010;theme=the_creative_spark;event=TED2010;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" />
</object>
<br />
 <span class="small"> <img src="http://www.cybermedium.info/skins/_reference/flags/gb.gif" alt="" /> Sous-titres disponibles mais pas en fran&ccedil;ais</span></div>  Mais il y a un danger : le syst&egrave;me n'affichera que les donn&eacute;es provenant d'institutions partenaires, ayant conclu un accord commercial. Il faudra faire attention de <b>ne pas</b> d&eacute;duire que <i>"si une chose n'est pas dans la cyber-plan&egrave;te, c'est qu'elle n'existe pas !"</i>.   ===R&eacute;alit&eacute; biais&eacute;e ?=== Finalement, c'est le terme "r&eacute;alit&eacute; augment&eacute;e" en lui-m&ecirc;me qui me g&ecirc;ne. Comment peut-on "augmenter" la r&eacute;alit&eacute; alors que toute une partie <b>nous &eacute;chappe encore</b> ? Et n'existe-t-il pas plut&ocirc;t une "r&eacute;alit&eacute; biais&eacute;e" si tout le monde voit la r&eacute;alit&eacute; "augment&eacute;e" de la m&ecirc;me fa&ccedil;on ? C'est comme les m&eacute;dias, mais en plus puissant car cela peut potentiellement impr&eacute;gner nos moindres gestes.  Imaginons que l'on se balade dans la rue ou dans la nature. Via un syst&egrave;me optique, la r&eacute;alit&eacute; augment&eacute;e nous informerait sur ce que nous regardons : <br />
<br />
 "Restaurant *s&eacute;lection Guide du routard* &agrave; 100 m, tournez &agrave; droite.[<span style="text-decoration: underline">menu du jour</span>][<span style="text-decoration: underline">r&eacute;server</span>]"<br />
 "Ceci est un &eacute;rable &agrave; sucre <span class="small">(Acer saccharum)</span>, on peut en faire du sirop.[<span style="text-decoration: underline">recette</span>][<span style="text-decoration: underline">commandez pr&egrave;s de chez vous</span>]"<br />
 "Alice a tagu&eacute; votre mur ![<span style="text-decoration: underline">voir</span>]"<br />
 "Vous ne pouvez pas manger ce champignon"<br />
  "[publicit&eacute;]"<br />
 "Le feu est rouge, attendez."<br />
  <img src="http://www.cybermedium.info/skins/_reference/smileys/bionic.gif" alt="bionic" />   ===Pensons-y=== Plus l'homme s'entoure d'objets-b&eacute;quilles, plus ses capacit&eacute;s propres diminuent peu &agrave; peu. S'il est alors projet&eacute; dans un environnement sans support externe, il est perdu. Par exemple sans GPS, on perd du temps. Avec un GPS, on perd le sens de l'orientation. A m&eacute;diter.</p> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>News</category>
		<pubDate>Fri, 03 Sep 2010 08:37:10 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-2-news#comments</comments>
		<slash:comments>5</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/49</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/49</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A49</trackback:ping>
	</item>

 <item>
		<title>Utilisez GIT pour maintenir vos scripts YACS</title>
		<link>http://www.cybermedium.info/article-48-utilisez-git-pour-maintenir-vos-scripts-yacs</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-48-utilisez-git-pour-maintenir-vos-scripts-yacs</guid>
		<description> Ce tutoriel a pour vocation de montrer les premières bases de GIT - sans cependant refaire la même chose que les tutoriels existants sur le web - et susciter l'intérêt de son usage pour YACS.

 
Le premier intérêt de GIT, c'est d'abord un moyen de maîtriser le versioning chez soi.
Pour les intégrateurs yacsiens, GIT permet ainsi de maintenir facilement des &quot;forks&quot; de Yacs, en production chez vos clients.

 En effet un upgrade de Yacs écrase les modifications sur les sources. Nous verrons comment avec GIT reporter automatiquement nos modifications dans une nouvelle version des scripts de Yacs.



 GIT se prononce &quot;guitte&quot;. Wikipédia : 
 &quot; Le magazine PC World nous apprend que « quand on lui a demandé pourquoi il avait appelé son logiciel &quot;git&quot;, qui est à peu près l'équivalent de « connard » en argot anglais, Linus Torvalds a répondu « Je ne suis qu'un égocentrique, donc j'appelle tous mes projets d'après ma propre personne. D'abord Linux, puis Git. » &quot; &quot; 



Pré-requis 



Il faut bien sûr avoir GIT installé sur votre machine. J'ai réalisé ce tutoriel sous Linux Mint ; GIT fait partie des dépôts classiques. Sous Linux, GIT se pilote principalement en ligne de commande.



Il faut configurer quelques options générales pour GIT, en commençant par   vous identifier. Ceci ajoutera votre nom à chaque commit, et sera bien utile dans le cas de développement à plusieurs.



Il existe bien   d'autres configurations, je conseille la coloration (en ajoutant  --global  pour ne pas le refaire dans chaque répertoire de travail).



GIT bases 
Initializing working directory 
GIT se déclenche au niveau d'un répertoire, pour tous les sous répertoires et fichiers contenus.
C'est archi-simple : créer ou aller dans un répertoire de travail, ouvrir un terminal dedans et faire :
$ git init
Réponse :
Initialized empty Git repository in /home/.../yourfolder/.git/
GIT a créé un répertoire caché .git à la racine du répertoire de travail, et stockera ses données dedans. Aucun autre fichier n'est placé ailleurs.
Adding Files 
Si votre répertoire est vide, il faut créer ou copier des fichiers dedans. Faites cela avec votre moyen préféré. Pour l'exemple, j'ajoute ici un fichier testgit.html : 
 testgit.html   &amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;Test pour GIT&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;/(bb|[^b]{2})/&amp;lt;/h1&amp;gt;
        &amp;lt;div&amp;gt;
        &amp;lt;span&amp;gt;.-&quot;&quot;&quot;-.&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;/ _  _ \&amp;lt;/span&amp;gt;
        &amp;lt;span&amp;gt;??  ](_' `_)[  ??&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;`-. N ,-'&amp;lt;/span&amp;gt;
        &amp;lt;span&amp;gt;|===|&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;`---'&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&amp;lt;
     
page de test html testgit.html

Maintenant, toujours dans notre terminal, faisons juste pour voir : 
$ git status
Réponse :
# On branch master

#

# Initial commit

#

# Untracked files:

#   (use &quot;git add filename...&quot; to include in what will be committed)

#

#	testgit.html

nothing added to commit but untracked files present (use &quot;git add&quot; to track)



Git nous dit qu'un fichier est présent mais non indexé.
$ git add testgit.html

$ git status
le nouveau fichier est maintenant suivi. il ne reste qu'a commiter. On peut ajouter tous les fichiers du répertoire avec &quot;git add *&quot;
Commit Changes 
$ git commit -m &quot;ajout fichier testgit.html&quot;
tout commit doit être accompagné d'un message. l'option -m permet de fournir le message en ligne de commande. Sinon GIT ouvre un éditeur pour faire cette saisie (vim).
Vous trouverez un   tuturiel vidéo plus détaillé pour cette partie.
Branching 
Maintenant nous allons faire de nouvelles modifications, mais dans une branche. Il est extrêmement facile avec GIT de créer une branche, puis de fusionner ses développements plus tard avec une autre branche. Aussi il ne faut pas hésiter à créer de multiples branches pour vos développements.
On crée une branche ainsi :
$ git branch experience
avec ici &quot;experience&quot;, le nom de la branche.
Vous pouvez visualiser les branches existantes ainsi :
$ git branch
La branche avec une étoile est la branche active. La branche créée par défaut s'appelle master.
On change de branche active ainsi :
$ git checkout experience
Refaire git branch pour voir. Au niveau des fichiers, rien ne s'est encore passé.



Maintenant, faisons de nouvelles modifications, et même, ajoutons un fichier.
 modifs sur testgit.html et ajout style.css   &amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;Test pour GIT&amp;lt;/title&amp;gt;
    &amp;lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;style.css&quot; media=&quot;all&quot; /&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;/(bb|[^b]{2})/&amp;lt;/h1&amp;gt;
    &amp;lt;div&amp;gt;
        &amp;lt;span&amp;gt;.-&quot;&quot;&quot;-.&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;/ _  _ \&amp;lt;/span&amp;gt;
        &amp;lt;span&amp;gt;??  ](_' `_)[  ??&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;`-. N ,-'&amp;lt;/span&amp;gt;
        &amp;lt;span&amp;gt;|===|&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;`---'&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
  



  h1 {
    text-align : center;
    color : firebrick;
}

div {
    margin : 40px
}

div span {
    display : block;
    text-align : center;
    font-family : monospace;
}
  feuille de style style.css   
Un petit commit :
$ git add style.css

$ git commit -a -m &quot;adding a style sheet&quot;
Un git status doit donner &quot;working directory clean&quot;.

* Visualiser votre page dans un navigateur et
retournons sur la branche master :
$ git checkout master

* Recharger la page dans votre navigateur... Surprise ?



* Regardez vos fichiers : le nouveau fichier a disparu, et le contenu de l'autre est revenu à l'état initial.

* Retournez sur la branche experience (git branch experience) : les modifications réapparaissent.



 En fonction de la branche active, GIT change dynamiquement le contenu de votre répertoire de travail.  
Merging 
Faisons d'abord des nouvelles modifications sur la branche master 
$ git checkout master
 modifs sur test.html 
  &amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
    &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&amp;gt;
&amp;lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;fr&quot; lang=&quot;fr&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&amp;gt;    
    &amp;lt;title&amp;gt;Test pour GIT&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;/(bb|[^b]{2})/&amp;lt;/h1&amp;gt;
    &amp;lt;div&amp;gt;
        &amp;lt;span&amp;gt;.-&quot;&quot;&quot;-.&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;/ _  _ \&amp;lt;/span&amp;gt;
        &amp;lt;span&amp;gt;??  ](_' `_)[  ??&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;`-. N ,-'&amp;lt;/span&amp;gt;
        &amp;lt;span&amp;gt;|===|&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;`---'&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
     
et commitez-les :
git commit -a -m &quot;doctype declarations&quot;)



Chaque branche contient maintenant des modifications uniques.



* Fusionnons experience dans master :
$ git merge experience

* Contrôlez le résultat en rechargeant la page.

* Dans le terminal, tapez &quot;gitk&quot; pour avoir un aperçu graphique de vos opérations.



Merging conflict 
Bien sûr parfois GIT ne peut se dépatouiller tout seul avec des modifications contradictoires. Dans ce cas il signale un conflit et place un marquage spécial à l'intérieur du fichier. A vous de résoudre le conflit en éditant le fichier. Plusieurs commandes peuvent vous aider à visualiser les différences entre les versions.
Voici un tutoriel   branching &amp; merging pour plus de détails (vidéo en fin de page)



Voir aussi plus bas pour la résolution d'un conflit.



Upgrading a fork 
Dans le cadre de cet exemple, supposons un projet démarré en Yacs, sur lequels vous avez dû effectuer quelques modifications dans les sources pour répondre à votre client.
Une nouvelle version de yacs est sortie et vous souhaitez migrer. La mise à jour du serveur entraîne l'écrasement des fichiers et donc la perte de vos modifications. Il faut donc avoir consciencieusement noté chaque modification, et les reporter à la main dans les nouvelles versions des scripts, puis les uploader sur votre serveur après sa mise à jour. Cela peut être fastidieux...



La méthode ci-dessous permet d'automatiser l'intégration de vos modifications dans les nouveaux scripts de Yacs.
Indexing a Yacs serveur 
Dans un répertoire, placer les scripts d'un serveur Yacs. Pour cet exemple je me limite à quelques fichiers. C'est du vécu : ajouter aux catégories l'option de listage des utilisateurs par ordre alphabétique. Je pars d'une 9.11. On va migrer ensuite vers 10.5. Je donne les fichiers de chaque version en zip ici pour refaire les tests chez vous.

* categories/view.php

* shared/members.php


Fichiers provennant de yacs9.11

indexez les fichiers
$ git add *
puis commitez
$ git commit
Vous pouvez étiqueter cet état de la branche avec le numéro de version
$ git tag v9.11



Branching to customize 

* Créer une nouvelle branche pour votre projet spécifique
$ git branch MyClient

$ git checkout MyClient

* Modifiez les fichiers pour appliquer vos modifications (en un ou plusieurs commits)
en l'occurence : 
dans shared/members.php, insertion d'une nouvelle fonction après la fonction list_users_by_post_for_anchor (L994)
 listage des utilisateurs par nom   /**
     * list alphabetically users assigned to an anchor
     *
     * Only users matching following criteria are returned:
     * - user is visible (active='Y')
     * - user is restricted (active='R'), but surfer is a logged user
     * - user is restricted (active='N'), but surfer is an associate
     *
     * @param the target anchor
     * @param int the offset from the start of the list; usually, 0 or 1
     * @param int the number of items to display
     * @param string the list variant, if any
     * @param string an id to avoid, if any
     * @return NULL on error, else an ordered array with $url =&amp;gt; ($prefix, $label, $suffix, $icon)
     *
     * @see categories/view.php
     */
    function &amp;amp;list_users_by_names_for_anchor($anchor, $offset=0, $count=10, $variant=NULL, $to_avoid=NULL) {
        global $context;

        // locate where we are
        if(!$variant)
            $variant = $anchor;

        // limit the scope of the request
        $where = &quot;users.active='Y'&quot;;
        if(Surfer::is_logged())
            $where .= &quot; OR users.active='R'&quot;;
        if(Surfer::is_associate())
            $where .= &quot; OR users.active='N'&quot;;
        $where = '('.$where.')';

        // avoid this one
        if($to_avoid)
            $where .= &quot; AND (users.id != '&quot;.SQL::escape($to_avoid).&quot;')&quot;;

        // the list of users
        $query = &quot;SELECT users.*    FROM &quot;.SQL::table_name('members').&quot; AS members&quot;
            .&quot;, &quot;.SQL::table_name('users').&quot; AS users&quot;
            .&quot; WHERE (members.anchor LIKE '&quot;.SQL::escape($anchor).&quot;')&quot;
            .&quot;    AND (members.member_type LIKE 'user')&quot;
            .&quot;    AND (users.id = members.member_id)&quot;
            .&quot;    AND &quot;.$where
            .&quot; ORDER BY users.full_name, users.nick_name LIMIT &quot;.$offset.','.$count;

        // use existing listing facility
        $output =&amp;amp; Users::list_selected(SQL::query($query), $variant);
        return $output;
    }
  
   

* Dans categorie/view.php, à la L789, changer :
 implémentation option users_by_name   // list items by date (default) or by title (option 'users_by_title')
        $offset = ($zoom_index - 1) * USERS_LIST_SIZE;
        $items =&amp;amp; Members::list_users_by_posts_for_anchor('category:'.$item['id'], $offset, USERS_LIST_SIZE, 'watch');
  
par :
  // list items by date (default) or by name (option 'users_by_name')
        $offset = ($zoom_index - 1) * USERS_LIST_SIZE;
        if(preg_match('/\busers_by_name\b/i', $item['options']))
            $items =&amp;amp; Members::list_users_by_names_for_anchor('category:'.$item['id'], $offset, USERS_LIST_SIZE, 'watch');
        else
            $items =&amp;amp; Members::list_users_by_posts_for_anchor('category:'.$item['id'], $offset, USERS_LIST_SIZE, 'watch');
     

* Commitez :
git commit -a -m &quot;added alpha order option for listing users on catergories&quot;



Vous avez donc : 

* une branche master, qui contient les scripts originaux de yacs.

* une branche MyClient, avec vos modifications spécifiques.



Vous pouvez créer autant de branches &quot;client&quot; à partir de master, et les compléter à mesure des évolutions de chaque projet, en activant la branche appropriée. Un seul répertoire contient tous vos serveurs !
 Vous pouvez copier votre répertoire de travail, toutes les informations de GIT seront également dupliquées puisqu'elles sont dans le répertoire .git, et pourront êtres manipulées de manière distincte de l'original.  Un intérêt est de placer votre répertoire de travail pour le faire également tourner sous XAMPP par exemple. Dans ce cas vous pouvez avoir besoin d'éliminer certains fichiers de l'indexation GIT, moyennant la déclaration d'un fichier .gitignore.  
Rebasing to upgrade 
Une nouvelle version de Yacs est dispo !

* Commençons par mettre à jour la branche master :
fichiers de 10.5
fichiers provenant de yacs 10.5
$ git checkout master
supprimez tout le contenu, puis copiez dedans l'intégralité de la nouvelle archive. Commitez... votre branche master est à jour ; une mise à jour par écrasement ne permet pas de supprimer les fichiers obsolètes - pas dans cet exemple bien sûr.



* Maintenant il faut upgrader la branche MyClient. Nous voulons en fait reporter les modifications spécifiques sur les nouveaux scripts. C'est exactement ce que fait la commande &quot;rebase&quot; : elle initialise la branche selon la branche modèle, et applique les modifications dessus comme si c'était des patchs. C'est différent du merge, pas du point de vue du résultat produit sur le code, mais plutôt dans l'ordre dans lesquels les commits sont archivés.



$ git checkout MyClient

$ git rebase master



Tout se passe bien pour shared/members.php, mais nous avons un conflit sur categories/view.php.



First, rewinding head to replay your work on top of it...

Applying: added alpha order option for listing users on catergories

error: patch failed: categories/view.php:786

error: categories/view.php: patch does not apply

Using index info to reconstruct a base tree...

Falling back to patching base and 3-way merge...

Auto-merging categories/view.php

CONFLICT (content): Merge conflict in categories/view.php

Auto-merging shared/members.php

Failed to merge in the changes.

Patch failed at 0001 added alpha order option for listing users on categories



When you have resolved this problem run &quot;git rebase --continue&quot;.

If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.

To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.





* Éditez le fichier en conflit. Rechercher &quot;=====&quot; pour tomber sur les marqueurs spéciaux de ligne en conflit. Nous voyons ceci :
 conflict in view.php   &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD:categories/view.php
        $items =&amp;amp; Members::list_users_by_posts_for_anchor('category:'.$item['id'], $offset, USERS_LIST_SIZE, $layout);===         if(preg_match('/\busers_by_name\b/i', $item['options']))
            $items =&amp;amp; Members::list_users_by_names_for_anchor('category:'.$item['id'], $offset, USERS_LIST_SIZE, 'watch');
        else
            $items =&amp;amp; Members::list_users_by_posts_for_anchor('category:'.$item['id'], $offset, USERS_LIST_SIZE, 'watch');
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; added alpha order option for listing users on catergories:categories/view.php
     
d'abord GIT affiche la version d'origine, ici celle de la branche master, et sous les ==== le patch qu'il tentait d'appliquer (avec à la fin l'intitulé du message qui accompagnait le commit en question. Cela n'a pas marché car entre 9.11 et 10.5, les catégories ont gagné la capacité d'offrir le choix du layout utilisateur : au lieu d'imposer un layout en dur (watch), cela passe par une variable $layout. Il faut donc remplacer nos 'watch' par $layout. On efface ensuite ce qui est inutile (l'ancienne version, et les marqueurs)



* Maintenant pousuivons :
$ git add categories/view.php

$ git rebase --continue



Une fois cette opération terminée, la branche MyClient contient vos modifications appliquées sur la nouvelle version de Yacs. Vous pouvez mettre à jour votre serveur distant avec l'archive standard puis uploader les fichiers modifiés depuis votre répertoire de travail.



une solution encore plus propre serait de construire une archive de mise à jour spécifique à partir du script build.php de Yacs, mais cela c'est un autre tutoriel !



Conclusion 



GIT rend déjà beaucoup de services &quot;à la maison&quot; avec un système de versioning très puissant et pourtant simple d'apparence. Ce tutoriel en donne un aperçu. Bien sûr il y aurait des cas particuliers. Que se passe-t-il par exemple si on ne souhaite plus reporter une modification ? Afin de pouvoir isoler vos modifications, il est plus sage de les indexer via des commits distincts. GIT permet ensuite d'annuler un commit précis.



Autres tutos :

  Git dans une coquille de noix

  git ready



comparaison GIT avec d'autres subversion systems

  Why git is better than X
</description>
		<content:encoded><![CDATA[ <span class="left_image"><span><img src="http://www.cybermedium.info/images/article/48/yacsgogit.jpg" alt="yacsgogit.jpg"  title="" /></span></span> Ce tutoriel a pour vocation de montrer les premières bases de GIT - sans cependant refaire la même chose que les tutoriels existants sur le web - et susciter l'intérêt de son usage pour YACS.<br />
 
Le premier intérêt de GIT, c'est d'abord un moyen de maîtriser le versioning chez soi.
Pour les intégrateurs yacsiens, GIT permet ainsi de maintenir facilement des "forks" de Yacs, en production chez vos clients.<br />
 En effet un upgrade de Yacs écrase les modifications sur les sources. Nous verrons comment avec GIT reporter automatiquement nos modifications dans une nouvelle version des scripts de Yacs.<br />
<br />
<div class="note"><img src="http://www.cybermedium.info/skins/_reference/codes/note.gif" width="10" height="10" alt="*" /> GIT se prononce "guitte".</div>Wikipédia : 
<blockquote><span class="quote_prefix"> &quot; </span>Le magazine PC World nous apprend que « quand on lui a demandé pourquoi il avait appelé son logiciel "git", qui est à peu près l'équivalent de « connard » en argot anglais, Linus Torvalds a répondu « Je ne suis qu'un égocentrique, donc j'appelle tous mes projets d'après ma propre personne. D'abord Linux, puis Git. » "<span class="quote_suffix"> &quot; </span></blockquote><br />
<br />
<h2 id="title_17" ><span>Pré-requis</span></h2><br />
<br />
Il faut bien sûr avoir <a href="http://fr.wikipedia.org/wiki/Git">GIT</a> installé sur votre machine. J'ai réalisé ce tutoriel sous Linux Mint ; GIT fait partie des dépôts classiques. Sous Linux, GIT se pilote principalement en ligne de commande.<br />
<br />
Il faut configurer quelques options générales pour GIT, en commençant par  <img src="http://www.cybermedium.info/skins/_reference/flags/gb.gif" alt="" /> <a href="http://book.git-scm.com/2_setup_and_initialization.html">vous identifier</a>. Ceci ajoutera votre nom à chaque commit, et sera bien utile dans le cas de développement à plusieurs.<br />
<br />
Il existe bien  <img src="http://www.cybermedium.info/skins/_reference/flags/gb.gif" alt="" /> <a href="http://book.git-scm.com/5_customizing_git.html">d'autres configurations</a>, je conseille la coloration (en ajoutant <code>--global</code> pour ne pas le refaire dans chaque répertoire de travail).<br />
<br />
<h2 id="title_18" ><span>GIT bases</span></h2>
<h3 id="title_8" ><span>Initializing working directory</span></h3>
GIT se déclenche au niveau d'un répertoire, pour tous les sous répertoires et fichiers contenus.
C'est archi-simple : créer ou aller dans un répertoire de travail, ouvrir un terminal dedans et faire :
<span class="terminal">$ git init</span>
Réponse :
<span class="terminal">Initialized empty Git repository in /home/.../yourfolder/.git/</span>
GIT a créé un répertoire caché <i>.git</i> à la racine du répertoire de travail, et stockera ses données dedans. Aucun autre fichier n'est placé ailleurs.
<h3 id="title_9" ><span>Adding Files</span></h3>
Si votre répertoire est vide, il faut créer ou copier des fichiers dedans. Faites cela avec votre moyen préféré. Pour l'exemple, j'ajoute ici un fichier testgit.html : 
<div class="folder_box"><a href="#" class="folder_header" onclick="javascript:Yacs.toggle_folder(this, 'http://www.cybermedium.info/skins/_reference/layouts/folder_plus.gif', 'http://www.cybermedium.info/skins/_reference/layouts/folder_minus.gif'); return false;"><img src="http://www.cybermedium.info/skins/_reference/layouts/folder_plus.gif" alt="Click to slide" title="Click to slide" /> testgit.html</a><div class="folder_body" style="display: none"><div><pre><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #007700">&lt;</span><span style="color: #0000BB">html</span><span style="color: #007700">&gt;<br />&lt;</span><span style="color: #0000BB">head</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">title</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">Test&nbsp;pour&nbsp;GIT</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">title</span><span style="color: #007700">&gt;<br />&lt;/</span><span style="color: #0000BB">head</span><span style="color: #007700">&gt;<br />&lt;</span><span style="color: #0000BB">body</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">h1</span><span style="color: #007700">&gt;/(</span><span style="color: #0000BB">bb</span><span style="color: #007700">|[^</span><span style="color: #0000BB">b</span><span style="color: #007700">]{</span><span style="color: #0000BB">2</span><span style="color: #007700">})/&lt;/</span><span style="color: #0000BB">h1</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">div</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">span</span><span style="color: #007700">&gt;.-</span><span style="color: #DD0000">"""-.&lt;/span&gt;&lt;span&gt;/&nbsp;_&nbsp;&nbsp;_&nbsp;\&lt;/span&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&gt;??&nbsp;&nbsp;](_'&nbsp;`_)[&nbsp;&nbsp;??&lt;/span&gt;&lt;span&gt;`-.&nbsp;N&nbsp;,-'&lt;/span&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&gt;|===|&lt;/span&gt;&lt;span&gt;`---'&lt;/span&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;&lt;<br /></span></span></code></pre></div></div></div>
<a href="http://www.cybermedium.info/file-fetch/7-testgit-html.zip">page de test html testgit.html</a><br />
Maintenant, toujours dans notre terminal, faisons juste pour voir : 
<span class="terminal">$ git status</span>
Réponse :
<span class="terminal"># On branch master<br />
#<br />
# Initial commit<br />
#<br />
# Untracked files:<br />
#   (use "git add filename..." to include in what will be committed)<br />
#<br />
#	testgit.html<br />
nothing added to commit but untracked files present (use "git add" to track)</span><br />
<br />
Git nous dit qu'un fichier est présent mais non indexé.
<span class="terminal">$ git add testgit.html<br />
$ git status</span>
le nouveau fichier est maintenant suivi. il ne reste qu'a commiter. On peut ajouter tous les fichiers du répertoire avec "git add *"
<h3 id="title_10" ><span>Commit Changes</span></h3>
<span class="terminal">$ git commit -m "ajout fichier testgit.html"</span>
tout commit doit être accompagné d'un message. l'option -m permet de fournir le message en ligne de commande. Sinon GIT ouvre un éditeur pour faire cette saisie (vim).
Vous trouverez un  <img src="http://www.cybermedium.info/skins/_reference/flags/gb.gif" alt="" /> <a href="http://book.git-scm.com/3_normal_workflow.html">tuturiel vidéo plus détaillé</a> pour cette partie.
<h3 id="title_11" ><span>Branching</span></h3>
Maintenant nous allons faire de nouvelles modifications, mais dans une branche. Il est extrêmement facile avec GIT de créer une branche, puis de fusionner ses développements plus tard avec une autre branche. Aussi il ne faut pas hésiter à créer de multiples branches pour vos développements.
On crée une branche ainsi :
<span class="terminal">$ git branch experience</span>
avec ici "experience", le nom de la branche.
Vous pouvez visualiser les branches existantes ainsi :
<span class="terminal">$ git branch</span>
La branche avec une étoile est la branche active. La branche créée par défaut s'appelle master.
On change de branche active ainsi :
<span class="terminal">$ git checkout experience</span>
Refaire <i>git branch</i> pour voir. Au niveau des fichiers, rien ne s'est encore passé.<br />
<br />
Maintenant, faisons de nouvelles modifications, et même, ajoutons un fichier.
<div class="folder_box"><a href="#" class="folder_header" onclick="javascript:Yacs.toggle_folder(this, 'http://www.cybermedium.info/skins/_reference/layouts/folder_plus.gif', 'http://www.cybermedium.info/skins/_reference/layouts/folder_minus.gif'); return false;"><img src="http://www.cybermedium.info/skins/_reference/layouts/folder_plus.gif" alt="Click to slide" title="Click to slide" /> modifs sur testgit.html et ajout style.css</a><div class="folder_body" style="display: none"><div><pre><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #007700">&lt;</span><span style="color: #0000BB">html</span><span style="color: #007700">&gt;<br />&lt;</span><span style="color: #0000BB">head</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">title</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">Test&nbsp;pour&nbsp;GIT</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">title</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">link&nbsp;rel</span><span style="color: #007700">=</span><span style="color: #DD0000">"stylesheet"&nbsp;</span><span style="color: #0000BB">type</span><span style="color: #007700">=</span><span style="color: #DD0000">"text/css"&nbsp;</span><span style="color: #0000BB">href</span><span style="color: #007700">=</span><span style="color: #DD0000">"style.css"&nbsp;</span><span style="color: #0000BB">media</span><span style="color: #007700">=</span><span style="color: #DD0000">"all"&nbsp;</span><span style="color: #007700">/&gt;<br />&lt;/</span><span style="color: #0000BB">head</span><span style="color: #007700">&gt;<br />&lt;</span><span style="color: #0000BB">body</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">h1</span><span style="color: #007700">&gt;/(</span><span style="color: #0000BB">bb</span><span style="color: #007700">|[^</span><span style="color: #0000BB">b</span><span style="color: #007700">]{</span><span style="color: #0000BB">2</span><span style="color: #007700">})/&lt;/</span><span style="color: #0000BB">h1</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">div</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">span</span><span style="color: #007700">&gt;.-</span><span style="color: #DD0000">"""-.&lt;/span&gt;&lt;span&gt;/&nbsp;_&nbsp;&nbsp;_&nbsp;\&lt;/span&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&gt;??&nbsp;&nbsp;](_'&nbsp;`_)[&nbsp;&nbsp;??&lt;/span&gt;&lt;span&gt;`-.&nbsp;N&nbsp;,-'&lt;/span&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&gt;|===|&lt;/span&gt;&lt;span&gt;`---'&lt;/span&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br /></span></span></code></pre><br />
<br />
<pre><code><span style="color: #000000"><span style="color: #0000BB">h1&nbsp;</span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">text</span><span style="color: #007700">-</span><span style="color: #0000BB">align&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">center</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">color&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">firebrick</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">div&nbsp;</span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">margin&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">40px<br /></span><span style="color: #007700">}<br /><br /></span><span style="color: #0000BB">div&nbsp;span&nbsp;</span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">display&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">block</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">text</span><span style="color: #007700">-</span><span style="color: #0000BB">align&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">center</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">font</span><span style="color: #007700">-</span><span style="color: #0000BB">family&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">monospace</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB"></span></span></code></pre><a href="http://www.cybermedium.info/file-fetch/6-style-css.zip">feuille de style style.css</a></div></div></div>
Un petit commit :
<span class="terminal">$ git add style.css<br />
$ git commit -a -m "adding a style sheet"</span>
Un <i>git status</i> doit donner "working directory clean".<br />
*&nbsp;Visualiser votre page dans un navigateur et
retournons sur la branche master :
<span class="terminal">$ git checkout master</span><br />
*&nbsp;Recharger la page dans votre navigateur... Surprise ?<br />
<br />
*&nbsp;Regardez vos fichiers : le nouveau fichier a disparu, et le contenu de l'autre est revenu à l'état initial.<br />
*&nbsp;Retournez sur la branche experience (git branch experience) : les modifications réapparaissent.<br />
<br />
<div class="note"><img src="http://www.cybermedium.info/skins/_reference/codes/note.gif" width="10" height="10" alt="*" /> En fonction de la branche active, GIT change dynamiquement le contenu de votre répertoire de travail.</div>&nbsp;
<h3 id="title_12" ><span>Merging</span></h3>
Faisons d'abord des nouvelles modifications sur la branche master 
<span class="terminal">$ git checkout master</span>
<div class="folder_box"><a href="#" class="folder_header" onclick="javascript:Yacs.toggle_folder(this, 'http://www.cybermedium.info/skins/_reference/layouts/folder_plus.gif', 'http://www.cybermedium.info/skins/_reference/layouts/folder_minus.gif'); return false;"><img src="http://www.cybermedium.info/skins/_reference/layouts/folder_plus.gif" alt="Click to slide" title="Click to slide" /> modifs sur test.html</a><div class="folder_body" style="display: none"><div>
<pre><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #007700">&lt;!</span><span style="color: #0000BB">DOCTYPE&nbsp;html&nbsp;</span><span style="color: #007700">PUBLIC&nbsp;</span><span style="color: #DD0000">"-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Strict//EN"<br />&nbsp;&nbsp;&nbsp;&nbsp;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"</span><span style="color: #007700">&gt;<br />&lt;</span><span style="color: #0000BB">html&nbsp;xmlns</span><span style="color: #007700">=</span><span style="color: #DD0000">"http://www.w3.org/1999/xhtml"&nbsp;</span><span style="color: #0000BB">xml</span><span style="color: #007700">:</span><span style="color: #0000BB">lang</span><span style="color: #007700">=</span><span style="color: #DD0000">"fr"&nbsp;</span><span style="color: #0000BB">lang</span><span style="color: #007700">=</span><span style="color: #DD0000">"fr"</span><span style="color: #007700">&gt;<br />&lt;</span><span style="color: #0000BB">head</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">meta&nbsp;http</span><span style="color: #007700">-</span><span style="color: #0000BB">equiv</span><span style="color: #007700">=</span><span style="color: #DD0000">"Content-Type"&nbsp;</span><span style="color: #0000BB">content</span><span style="color: #007700">=</span><span style="color: #DD0000">"text/html;&nbsp;charset=utf-8"&nbsp;</span><span style="color: #007700">/&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">title</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">Test&nbsp;pour&nbsp;GIT</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">title</span><span style="color: #007700">&gt;<br />&lt;/</span><span style="color: #0000BB">head</span><span style="color: #007700">&gt;<br />&lt;</span><span style="color: #0000BB">body</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">h1</span><span style="color: #007700">&gt;/(</span><span style="color: #0000BB">bb</span><span style="color: #007700">|[^</span><span style="color: #0000BB">b</span><span style="color: #007700">]{</span><span style="color: #0000BB">2</span><span style="color: #007700">})/&lt;/</span><span style="color: #0000BB">h1</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">div</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">span</span><span style="color: #007700">&gt;.-</span><span style="color: #DD0000">"""-.&lt;/span&gt;&lt;span&gt;/&nbsp;_&nbsp;&nbsp;_&nbsp;\&lt;/span&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&gt;??&nbsp;&nbsp;](_'&nbsp;`_)[&nbsp;&nbsp;??&lt;/span&gt;&lt;span&gt;`-.&nbsp;N&nbsp;,-'&lt;/span&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&gt;|===|&lt;/span&gt;&lt;span&gt;`---'&lt;/span&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br /></span></span></code></pre></div></div></div>
et commitez-les :
<span class="terminal">git commit -a -m "doctype declarations")</span><br />
<br />
Chaque branche contient maintenant des modifications uniques.<br />
<br />
*&nbsp;Fusionnons experience dans master :
<span class="terminal">$ git merge experience</span><br />
*&nbsp;Contrôlez le résultat en rechargeant la page.<br />
*&nbsp;Dans le terminal, tapez "gitk" pour avoir un aperçu graphique de vos opérations.<br />
<br />
<h3 id="title_13" ><span>Merging conflict</span></h3>
Bien sûr parfois GIT ne peut se dépatouiller tout seul avec des modifications contradictoires. Dans ce cas il signale un conflit et place un marquage spécial à l'intérieur du fichier. A vous de résoudre le conflit en éditant le fichier. Plusieurs commandes peuvent vous aider à visualiser les différences entre les versions.
Voici un tutoriel  <img src="http://www.cybermedium.info/skins/_reference/flags/gb.gif" alt="" /> <a href="http://book.git-scm.com/3_basic_branching_and_merging.html">branching & merging</a> pour plus de détails (vidéo en fin de page)<br />
<br />
Voir aussi plus bas pour la résolution d'un conflit.<br />
<br />
<h2 id="title_19" ><span>Upgrading a fork</span></h2>
Dans le cadre de cet exemple, supposons un projet démarré en Yacs, sur lequels vous avez dû effectuer quelques modifications dans les sources pour répondre à votre client.
Une nouvelle version de yacs est sortie et vous souhaitez migrer. La mise à jour du serveur entraîne l'écrasement des fichiers et donc la perte de vos modifications. Il faut donc avoir consciencieusement noté chaque modification, et les reporter à la main dans les nouvelles versions des scripts, puis les uploader sur votre serveur après sa mise à jour. Cela peut être fastidieux...<br />
<br />
La méthode ci-dessous permet d'automatiser l'intégration de vos modifications dans les nouveaux scripts de Yacs.
<h3 id="title_14" ><span>Indexing a Yacs serveur</span></h3>
Dans un répertoire, placer les scripts d'un serveur Yacs. Pour cet exemple je me limite à quelques fichiers. C'est du vécu : ajouter aux catégories l'option de listage des utilisateurs par ordre alphabétique. Je pars d'une 9.11. On va migrer ensuite vers 10.5. Je donne les fichiers de chaque version en zip ici pour refaire les tests chez vous.<br />
*&nbsp;categories/view.php<br />
*&nbsp;shared/members.php
<br />
<a href="http://www.cybermedium.info/file-fetch/5-v9-11.zip">Fichiers provennant de yacs9.11</a><br />
indexez les fichiers
<span class="terminal">$ git add *</span>
puis commitez
<span class="terminal">$ git commit</span>
Vous pouvez étiqueter cet état de la branche avec le numéro de version
<span class="terminal">$ git tag v9.11</span><br />
<br />
<h3 id="title_15" ><span>Branching to customize</span></h3><br />
*&nbsp;Créer une nouvelle branche pour votre projet spécifique
<span class="terminal">$ git branch MyClient<br />
$ git checkout MyClient</span><br />
*&nbsp;Modifiez les fichiers pour appliquer vos modifications (en un ou plusieurs commits)
en l'occurence : 
dans shared/members.php, insertion d'une nouvelle fonction après la fonction list_users_by_post_for_anchor (L994)
<div class="folder_box"><a href="#" class="folder_header" onclick="javascript:Yacs.toggle_folder(this, 'http://www.cybermedium.info/skins/_reference/layouts/folder_plus.gif', 'http://www.cybermedium.info/skins/_reference/layouts/folder_minus.gif'); return false;"><img src="http://www.cybermedium.info/skins/_reference/layouts/folder_plus.gif" alt="Click to slide" title="Click to slide" /> listage des utilisateurs par nom</a><div class="folder_body" style="display: none"><div><pre><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #FF8000">/**<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;list&nbsp;alphabetically&nbsp;users&nbsp;assigned&nbsp;to&nbsp;an&nbsp;anchor<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Only&nbsp;users&nbsp;matching&nbsp;following&nbsp;criteria&nbsp;are&nbsp;returned:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;-&nbsp;user&nbsp;is&nbsp;visible&nbsp;(active='Y')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;-&nbsp;user&nbsp;is&nbsp;restricted&nbsp;(active='R'),&nbsp;but&nbsp;surfer&nbsp;is&nbsp;a&nbsp;logged&nbsp;user<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;-&nbsp;user&nbsp;is&nbsp;restricted&nbsp;(active='N'),&nbsp;but&nbsp;surfer&nbsp;is&nbsp;an&nbsp;associate<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;the&nbsp;target&nbsp;anchor<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;int&nbsp;the&nbsp;offset&nbsp;from&nbsp;the&nbsp;start&nbsp;of&nbsp;the&nbsp;list;&nbsp;usually,&nbsp;0&nbsp;or&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;int&nbsp;the&nbsp;number&nbsp;of&nbsp;items&nbsp;to&nbsp;display<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;the&nbsp;list&nbsp;variant,&nbsp;if&nbsp;any<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;an&nbsp;id&nbsp;to&nbsp;avoid,&nbsp;if&nbsp;any<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;NULL&nbsp;on&nbsp;error,&nbsp;else&nbsp;an&nbsp;ordered&nbsp;array&nbsp;with&nbsp;$url&nbsp;=&gt;&nbsp;($prefix,&nbsp;$label,&nbsp;$suffix,&nbsp;$icon)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@see&nbsp;categories/view.php<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;&amp;</span><span style="color: #0000BB">list_users_by_names_for_anchor</span><span style="color: #007700">(</span><span style="color: #0000BB">$anchor</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">=</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$count</span><span style="color: #007700">=</span><span style="color: #0000BB">10</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$variant</span><span style="color: #007700">=</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$to_avoid</span><span style="color: #007700">=</span><span style="color: #0000BB">NULL</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;</span><span style="color: #0000BB">$context</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;locate&nbsp;where&nbsp;we&nbsp;are<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(!</span><span style="color: #0000BB">$variant</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$variant&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$anchor</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;limit&nbsp;the&nbsp;scope&nbsp;of&nbsp;the&nbsp;request<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$where&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"users.active='Y'"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">Surfer</span><span style="color: #007700">::</span><span style="color: #0000BB">is_logged</span><span style="color: #007700">())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$where&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"&nbsp;OR&nbsp;users.active='R'"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">Surfer</span><span style="color: #007700">::</span><span style="color: #0000BB">is_associate</span><span style="color: #007700">())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$where&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"&nbsp;OR&nbsp;users.active='N'"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$where&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'('</span><span style="color: #007700">.</span><span style="color: #0000BB">$where</span><span style="color: #007700">.</span><span style="color: #DD0000">')'</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;avoid&nbsp;this&nbsp;one<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">$to_avoid</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$where&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"&nbsp;AND&nbsp;(users.id&nbsp;!=&nbsp;'"</span><span style="color: #007700">.</span><span style="color: #0000BB">SQL</span><span style="color: #007700">::</span><span style="color: #0000BB">escape</span><span style="color: #007700">(</span><span style="color: #0000BB">$to_avoid</span><span style="color: #007700">).</span><span style="color: #DD0000">"')"</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;the&nbsp;list&nbsp;of&nbsp;users<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$query&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"SELECT&nbsp;users.*&nbsp;&nbsp;&nbsp;&nbsp;FROM&nbsp;"</span><span style="color: #007700">.</span><span style="color: #0000BB">SQL</span><span style="color: #007700">::</span><span style="color: #0000BB">table_name</span><span style="color: #007700">(</span><span style="color: #DD0000">'members'</span><span style="color: #007700">).</span><span style="color: #DD0000">"&nbsp;AS&nbsp;members"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.</span><span style="color: #DD0000">",&nbsp;"</span><span style="color: #007700">.</span><span style="color: #0000BB">SQL</span><span style="color: #007700">::</span><span style="color: #0000BB">table_name</span><span style="color: #007700">(</span><span style="color: #DD0000">'users'</span><span style="color: #007700">).</span><span style="color: #DD0000">"&nbsp;AS&nbsp;users"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.</span><span style="color: #DD0000">"&nbsp;WHERE&nbsp;(members.anchor&nbsp;LIKE&nbsp;'"</span><span style="color: #007700">.</span><span style="color: #0000BB">SQL</span><span style="color: #007700">::</span><span style="color: #0000BB">escape</span><span style="color: #007700">(</span><span style="color: #0000BB">$anchor</span><span style="color: #007700">).</span><span style="color: #DD0000">"')"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.</span><span style="color: #DD0000">"&nbsp;&nbsp;&nbsp;&nbsp;AND&nbsp;(members.member_type&nbsp;LIKE&nbsp;'user')"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.</span><span style="color: #DD0000">"&nbsp;&nbsp;&nbsp;&nbsp;AND&nbsp;(users.id&nbsp;=&nbsp;members.member_id)"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.</span><span style="color: #DD0000">"&nbsp;&nbsp;&nbsp;&nbsp;AND&nbsp;"</span><span style="color: #007700">.</span><span style="color: #0000BB">$where<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.</span><span style="color: #DD0000">"&nbsp;ORDER&nbsp;BY&nbsp;users.full_name,&nbsp;users.nick_name&nbsp;LIMIT&nbsp;"</span><span style="color: #007700">.</span><span style="color: #0000BB">$offset</span><span style="color: #007700">.</span><span style="color: #DD0000">','</span><span style="color: #007700">.</span><span style="color: #0000BB">$count</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;use&nbsp;existing&nbsp;listing&nbsp;facility<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$output&nbsp;</span><span style="color: #007700">=&amp;&nbsp;</span><span style="color: #0000BB">Users</span><span style="color: #007700">::</span><span style="color: #0000BB">list_selected</span><span style="color: #007700">(</span><span style="color: #0000BB">SQL</span><span style="color: #007700">::</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">$variant</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$output</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #0000BB"></span></span></code></pre>
</div></div></div><br />
*&nbsp;Dans categorie/view.php, à la L789, changer :
<div class="folder_box"><a href="#" class="folder_header" onclick="javascript:Yacs.toggle_folder(this, 'http://www.cybermedium.info/skins/_reference/layouts/folder_plus.gif', 'http://www.cybermedium.info/skins/_reference/layouts/folder_minus.gif'); return false;"><img src="http://www.cybermedium.info/skins/_reference/layouts/folder_plus.gif" alt="Click to slide" title="Click to slide" /> implémentation option users_by_name</a><div class="folder_body" style="display: none"><div><pre><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #FF8000">//&nbsp;list&nbsp;items&nbsp;by&nbsp;date&nbsp;(default)&nbsp;or&nbsp;by&nbsp;title&nbsp;(option&nbsp;'users_by_title')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$offset&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">$zoom_index&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;*&nbsp;</span><span style="color: #0000BB">USERS_LIST_SIZE</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$items&nbsp;</span><span style="color: #007700">=&amp;&nbsp;</span><span style="color: #0000BB">Members</span><span style="color: #007700">::</span><span style="color: #0000BB">list_users_by_posts_for_anchor</span><span style="color: #007700">(</span><span style="color: #DD0000">'category:'</span><span style="color: #007700">.</span><span style="color: #0000BB">$item</span><span style="color: #007700">[</span><span style="color: #DD0000">'id'</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">USERS_LIST_SIZE</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'watch'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"></span></span></code></pre>
par :
<pre><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #FF8000">//&nbsp;list&nbsp;items&nbsp;by&nbsp;date&nbsp;(default)&nbsp;or&nbsp;by&nbsp;name&nbsp;(option&nbsp;'users_by_name')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$offset&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">$zoom_index&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;*&nbsp;</span><span style="color: #0000BB">USERS_LIST_SIZE</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #DD0000">'/\busers_by_name\b/i'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$item</span><span style="color: #007700">[</span><span style="color: #DD0000">'options'</span><span style="color: #007700">]))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$items&nbsp;</span><span style="color: #007700">=&amp;&nbsp;</span><span style="color: #0000BB">Members</span><span style="color: #007700">::</span><span style="color: #0000BB">list_users_by_names_for_anchor</span><span style="color: #007700">(</span><span style="color: #DD0000">'category:'</span><span style="color: #007700">.</span><span style="color: #0000BB">$item</span><span style="color: #007700">[</span><span style="color: #DD0000">'id'</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">USERS_LIST_SIZE</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'watch'</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$items&nbsp;</span><span style="color: #007700">=&amp;&nbsp;</span><span style="color: #0000BB">Members</span><span style="color: #007700">::</span><span style="color: #0000BB">list_users_by_posts_for_anchor</span><span style="color: #007700">(</span><span style="color: #DD0000">'category:'</span><span style="color: #007700">.</span><span style="color: #0000BB">$item</span><span style="color: #007700">[</span><span style="color: #DD0000">'id'</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">USERS_LIST_SIZE</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'watch'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"></span></span></code></pre></div></div></div><br />
*&nbsp;Commitez :
<span class="terminal">git commit -a -m "added alpha order option for listing users on catergories"</span><br />
<br />
Vous avez donc : <br />
*&nbsp;une branche master, qui contient les scripts originaux de yacs.<br />
*&nbsp;une branche MyClient, avec vos modifications spécifiques.<br />
<br />
Vous pouvez créer autant de branches "client" à partir de master, et les compléter à mesure des évolutions de chaque projet, en activant la branche appropriée. Un seul répertoire contient tous vos serveurs !
<div class="note"><img src="http://www.cybermedium.info/skins/_reference/codes/note.gif" width="10" height="10" alt="*" /> Vous pouvez copier votre répertoire de travail, toutes les informations de GIT seront également dupliquées puisqu'elles sont dans le répertoire .git, et pourront êtres manipulées de manière distincte de l'original.</div><div class="note"><img src="http://www.cybermedium.info/skins/_reference/codes/note.gif" width="10" height="10" alt="*" /> Un intérêt est de placer votre répertoire de travail pour le faire également tourner sous XAMPP par exemple. Dans ce cas vous pouvez avoir besoin d'éliminer certains fichiers de l'indexation GIT, moyennant la déclaration d'un fichier <i>.gitignore</i>.</div>&nbsp;
<h3 id="title_16" ><span>Rebasing to upgrade</span></h3>
Une nouvelle version de Yacs est dispo !<br />
*&nbsp;Commençons par mettre à jour la branche master :
fichiers de 10.5
<a href="http://www.cybermedium.info/file-fetch/4-v10-5.zip">fichiers provenant de yacs 10.5</a>
<span class="terminal">$ git checkout master</span>
supprimez tout le contenu, puis copiez dedans l'intégralité de la nouvelle archive. Commitez... votre branche master est à jour ; une mise à jour par écrasement ne permet pas de supprimer les fichiers obsolètes - pas dans cet exemple bien sûr.<br />
<br />
*&nbsp;Maintenant il faut upgrader la branche MyClient. Nous voulons en fait reporter les modifications spécifiques sur les nouveaux scripts. C'est exactement ce que fait la commande "rebase" : elle initialise la branche selon la branche modèle, et applique les modifications dessus comme si c'était des patchs. C'est différent du merge, pas du point de vue du résultat produit sur le code, mais plutôt dans l'ordre dans lesquels les commits sont archivés.<br />
<br />
<span class="terminal">$ git checkout MyClient<br />
$ git rebase master</span><br />
<br />
Tout se passe bien pour shared/members.php, mais nous avons un conflit sur categories/view.php.<br />
<br />
<span class="terminal">First, rewinding head to replay your work on top of it...<br />
Applying: added alpha order option for listing users on catergories<br />
error: patch failed: categories/view.php:786<br />
error: categories/view.php: patch does not apply<br />
Using index info to reconstruct a base tree...<br />
Falling back to patching base and 3-way merge...<br />
Auto-merging categories/view.php<br />
CONFLICT (content): Merge conflict in categories/view.php<br />
Auto-merging shared/members.php<br />
Failed to merge in the changes.<br />
Patch failed at 0001 added alpha order option for listing users on categories<br />
<br />
When you have resolved this problem run "git rebase --continue".<br />
If you would prefer to skip this patch, instead run "git rebase --skip".<br />
To restore the original branch and stop rebasing run "git rebase --abort".<br />
</span><br />
<br />
*&nbsp;Éditez le fichier en conflit. Rechercher "=====" pour tomber sur les marqueurs spéciaux de ligne en conflit. Nous voyons ceci :
<div class="folder_box"><a href="#" class="folder_header" onclick="javascript:Yacs.toggle_folder(this, 'http://www.cybermedium.info/skins/_reference/layouts/folder_plus.gif', 'http://www.cybermedium.info/skins/_reference/layouts/folder_minus.gif'); return false;"><img src="http://www.cybermedium.info/skins/_reference/layouts/folder_plus.gif" alt="Click to slide" title="Click to slide" /> conflict in view.php</a><div class="folder_body" style="display: none"><div><pre><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #007700">&lt;&lt;&lt;&lt;&lt;&lt;&lt;&nbsp;</span><span style="color: #0000BB">HEAD</span><span style="color: #007700">:</span><span style="color: #0000BB">categories</span><span style="color: #007700">/</span><span style="color: #0000BB">view</span><span style="color: #007700">.</span><span style="color: #0000BB">php<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$items&nbsp;</span><span style="color: #007700">=&amp;&nbsp;</span><span style="color: #0000BB">Members</span><span style="color: #007700">::</span><span style="color: #0000BB">list_users_by_posts_for_anchor</span><span style="color: #007700">(</span><span style="color: #DD0000">'category:'</span><span style="color: #007700">.</span><span style="color: #0000BB">$item</span><span style="color: #007700">[</span><span style="color: #DD0000">'id'</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">USERS_LIST_SIZE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$layout</span><span style="color: #007700">);<h2 id="title_21" ><span>===</span></h2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #DD0000">'/\busers_by_name\b/i'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$item</span><span style="color: #007700">[</span><span style="color: #DD0000">'options'</span><span style="color: #007700">]))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$items&nbsp;</span><span style="color: #007700">=&amp;&nbsp;</span><span style="color: #0000BB">Members</span><span style="color: #007700">::</span><span style="color: #0000BB">list_users_by_names_for_anchor</span><span style="color: #007700">(</span><span style="color: #DD0000">'category:'</span><span style="color: #007700">.</span><span style="color: #0000BB">$item</span><span style="color: #007700">[</span><span style="color: #DD0000">'id'</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">USERS_LIST_SIZE</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'watch'</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$items&nbsp;</span><span style="color: #007700">=&amp;&nbsp;</span><span style="color: #0000BB">Members</span><span style="color: #007700">::</span><span style="color: #0000BB">list_users_by_posts_for_anchor</span><span style="color: #007700">(</span><span style="color: #DD0000">'category:'</span><span style="color: #007700">.</span><span style="color: #0000BB">$item</span><span style="color: #007700">[</span><span style="color: #DD0000">'id'</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">USERS_LIST_SIZE</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'watch'</span><span style="color: #007700">);<br />&gt;&gt;&gt;&gt;&gt;&gt;&gt;&nbsp;</span><span style="color: #0000BB">added&nbsp;alpha&nbsp;order&nbsp;option&nbsp;</span><span style="color: #007700">for&nbsp;</span><span style="color: #0000BB">listing&nbsp;users&nbsp;on&nbsp;catergories</span><span style="color: #007700">:</span><span style="color: #0000BB">categories</span><span style="color: #007700">/</span><span style="color: #0000BB">view</span><span style="color: #007700">.</span><span style="color: #0000BB">php<br /></span></span></code></pre></div></div></div>
d'abord GIT affiche la version d'origine, ici celle de la branche master, et sous les ==== le patch qu'il tentait d'appliquer (avec à la fin l'intitulé du message qui accompagnait le commit en question. Cela n'a pas marché car entre 9.11 et 10.5, les catégories ont gagné la capacité d'offrir le choix du layout utilisateur : au lieu d'imposer un layout en dur (watch), cela passe par une variable $layout. Il faut donc remplacer nos 'watch' par $layout. On efface ensuite ce qui est inutile (l'ancienne version, et les marqueurs)<br />
<br />
*&nbsp;Maintenant pousuivons :
<span class="terminal">$ git add categories/view.php<br />
$ git rebase --continue</span><br />
<br />
Une fois cette opération terminée, la branche MyClient contient vos modifications appliquées sur la nouvelle version de Yacs. Vous pouvez mettre à jour votre serveur distant avec l'archive standard puis uploader les fichiers modifiés depuis votre répertoire de travail.<br />
<br />
une solution encore plus propre serait de construire une archive de mise à jour spécifique à partir du script build.php de Yacs, mais cela c'est un autre tutoriel !<br />
<br />
<h2 id="title_20" ><span>Conclusion</span></h2><br />
<br />
GIT rend déjà beaucoup de services "à la maison" avec un système de versioning très puissant et pourtant simple d'apparence. Ce tutoriel en donne un aperçu. Bien sûr il y aurait des cas particuliers. Que se passe-t-il par exemple si on ne souhaite plus reporter une modification ? Afin de pouvoir isoler vos modifications, il est plus sage de les indexer via des commits distincts. GIT permet ensuite d'annuler un commit précis.<br />
<br />
Autres tutos :<br />
 <img src="http://www.cybermedium.info/skins/_reference/flags/fr.gif" alt="" /> <a href="http://www.pierreschambacher.com/blog/git-in-a-nutshell/">Git dans une coquille de noix</a><br />
 <img src="http://www.cybermedium.info/skins/_reference/flags/gb.gif" alt="" /> <a href="http://www.gitready.com/">git ready</a><br />
<br />
comparaison GIT avec d'autres <i>subversion systems</i><br />
 <img src="http://www.cybermedium.info/skins/_reference/flags/gb.gif" alt="" /> <a href="http://whygitisbetterthanx.com/#easy-to-learn">Why git is better than X</a><br /> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Téléchargez</category>
		<pubDate>Mon, 26 Jul 2010 16:32:34 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-13-telechargez#comments</comments>
		<slash:comments>1</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/48</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/48</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A48</trackback:ping>
	</item>

 <item>
		<title>Référencement</title>
		<link>http://www.cybermedium.info/article-47-referencement</link>
		<guid isPermaLink="true">http://www.cybermedium.info/article-47-referencement</guid>
		<description>Référencé sur...</description>
		<content:encoded><![CDATA[ <a href="http://www.cybermedium.info/article-46-reference-sur-.">Référencé sur...</a> ]]></content:encoded>
		<dc:creator>Alexis Raimbault</dc:creator>
		<category>Boîtes extra</category>
		<pubDate>Wed, 26 May 2010 12:30:56 GMT</pubDate>
		<comments>http://www.cybermedium.info/section-3-boites-extra#comments</comments>
		<slash:comments>0</slash:comments>
		<wfw:comment>http://www.cybermedium.info/comments/post.php/article/47</wfw:comment>
		<wfw:commentRss>http://www.cybermedium.info/comments/feed.php/article/47</wfw:commentRss>
		<trackback:ping>http://www.cybermedium.info/links/trackback.php?anchor=article%3A47</trackback:ping>
	</item>

</channel>
</rss>
