<?xml
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>Tech de Gamuza</title>
	<link>https://tech.gamuza.fr/</link>
	
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://tech.gamuza.fr/spip.php?id_auteur=2&amp;page=backend" rel="self" type="application/rss+xml" />




<pre>Erreur d’exécution plugins/spipr-dist/inclure/rss-item.html</pre>
<pre>Erreur d’exécution plugins/spipr-dist/inclure/rss-item.html</pre>
<pre>Erreur d’exécution plugins/spipr-dist/inclure/rss-item.html</pre>
<pre>Erreur d’exécution plugins/spipr-dist/inclure/rss-item.html</pre>
<item xml:lang="fr">
		<title>liste_ransomware</title>
		<link>https://tech.gamuza.fr/liste_ransomware.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/liste_ransomware.html</guid>
		<dc:date>2022-04-26T07:41:12Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>



		<description>
&lt;p&gt;liste_des_ransomwares \.zcrypt$ \.R5A$ \.ecc$ \.ezz$ \.crypt$ \.encrypted$ \.encrypted$ \.crinf$ \.frtrss$ \.crjocker$ \.ecc$ \.CTBL$ \.CTBL2$ \.locked$ \.HA3$ \.0x0$ \.bleep$ \.1999$ \.bleep$ \.locked$ \.hydracrypt_ID_*$ \.keybtc@inbox_com$ \.locky$ \.magic$ \.LOL !$ \.ENC$ \.POSHKODER$ \.rdm$ \.rrk$ \.vscrypt$ \.infected$ \.korrektor$ \.bloc$ \.sanctioned$ \.pzdc$ \.good$ \.supercrypt$ \.ecc$ \.ezz$ \.exx$ \.xyz$ \.zzz$ \.aaa$ \.abc$ \.ccc$ \.vvv$ \.xxx$ \.ttt$ \.micro$ \.unbrecrypt_ID_*$ (&#8230;)&lt;/p&gt;


-
&lt;a href="https://tech.gamuza.fr/-scripts-et-commandes-sh-.html" rel="directory"&gt;Scripts sh&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;liste_des_ransomwares&lt;br class='autobr' /&gt;
\.zcrypt$&lt;br class='autobr' /&gt;
\.R5A$&lt;br class='autobr' /&gt;
\.ecc$&lt;br class='autobr' /&gt;
\.ezz$&lt;br class='autobr' /&gt;
\.crypt$&lt;br class='autobr' /&gt;
\.encrypted$&lt;br class='autobr' /&gt;
\.encrypted$&lt;br class='autobr' /&gt;
\.crinf$&lt;br class='autobr' /&gt;
\.frtrss$&lt;br class='autobr' /&gt;
\.crjocker$&lt;br class='autobr' /&gt;
\.ecc$&lt;br class='autobr' /&gt;
\.CTBL$&lt;br class='autobr' /&gt;
\.CTBL2$&lt;br class='autobr' /&gt;
\.locked$&lt;br class='autobr' /&gt;
\.HA3$&lt;br class='autobr' /&gt;
\.0x0$&lt;br class='autobr' /&gt;
\.bleep$&lt;br class='autobr' /&gt;
\.1999$&lt;br class='autobr' /&gt;
\.bleep$&lt;br class='autobr' /&gt;
\.locked$&lt;br class='autobr' /&gt;
\.hydracrypt_ID_*$&lt;br class='autobr' /&gt;
\.keybtc@inbox_com$&lt;br class='autobr' /&gt;
\.locky$&lt;br class='autobr' /&gt;
\.magic$&lt;br class='autobr' /&gt;
\.LOL !$&lt;br class='autobr' /&gt;
\.ENC$&lt;br class='autobr' /&gt;
\.POSHKODER$&lt;br class='autobr' /&gt;
\.rdm$&lt;br class='autobr' /&gt;
\.rrk$&lt;br class='autobr' /&gt;
\.vscrypt$&lt;br class='autobr' /&gt;
\.infected$&lt;br class='autobr' /&gt;
\.korrektor$&lt;br class='autobr' /&gt;
\.bloc$&lt;br class='autobr' /&gt;
\.sanctioned$&lt;br class='autobr' /&gt;
\.pzdc$&lt;br class='autobr' /&gt;
\.good$&lt;br class='autobr' /&gt;
\.supercrypt$&lt;br class='autobr' /&gt;
\.ecc$&lt;br class='autobr' /&gt;
\.ezz$&lt;br class='autobr' /&gt;
\.exx$&lt;br class='autobr' /&gt;
\.xyz$&lt;br class='autobr' /&gt;
\.zzz$&lt;br class='autobr' /&gt;
\.aaa$&lt;br class='autobr' /&gt;
\.abc$&lt;br class='autobr' /&gt;
\.ccc$&lt;br class='autobr' /&gt;
\.vvv$&lt;br class='autobr' /&gt;
\.xxx$&lt;br class='autobr' /&gt;
\.ttt$&lt;br class='autobr' /&gt;
\.micro$&lt;br class='autobr' /&gt;
\.unbrecrypt_ID_*$&lt;br class='autobr' /&gt;
\.R16M01D05$&lt;br class='autobr' /&gt;
\.xrtn$&lt;br class='autobr' /&gt;
\.encrypt$&lt;br class='autobr' /&gt;
HELP_TO_SAVE_FILES.txt&lt;br class='autobr' /&gt;
BitCryptorFileList.txt&lt;br class='autobr' /&gt;
BUYUNLOCKCODE&lt;br class='autobr' /&gt;
YOUR_FILES_ARE_ENCRYPTED.HTML&lt;br class='autobr' /&gt;
Coin.Locker.txt&lt;br class='autobr' /&gt;
DECRYPT_INSTRUCTIONS.HTML&lt;br class='autobr' /&gt;
ReadDecryptFilesHere.txt&lt;br class='autobr' /&gt;
HOW_DECRYPT.TXT&lt;br class='autobr' /&gt;
READ IF YOU WANT YOUR FILES BACK.HTML&lt;br class='autobr' /&gt;
GetYouFiles.txt&lt;br class='autobr' /&gt;
HOW TO DECRYPT FILES.HTML&lt;br class='autobr' /&gt;
DECRYPT_INSTRUCTION.TXT&lt;br class='autobr' /&gt;
HELP_DECRYPT.TXT&lt;br class='autobr' /&gt;
HELP_YOURFILES.HTML&lt;br class='autobr' /&gt;
HowDecrypt.gif&lt;br class='autobr' /&gt;
Decrypt All Files *.bmp&lt;br class='autobr' /&gt;
cryptinfo.txt&lt;br class='autobr' /&gt;
DECRYPT_Readme.TXT.ReadMe&lt;br class='autobr' /&gt;
qwer.html&lt;br class='autobr' /&gt;
qwer2.html&lt;br class='autobr' /&gt;
Hellothere.txt&lt;br class='autobr' /&gt;
FILESAREGONE.TXT&lt;br class='autobr' /&gt;
HOW TO DECRYPT FILES.TXT&lt;br class='autobr' /&gt;
DECRYPT_Readme.TXT.ReadMe&lt;br class='autobr' /&gt;
README_DECRYPT_HYDRA_ID_*.txt&lt;br class='autobr' /&gt;
DECRYPT_YOUR_FILES.HTML&lt;br class='autobr' /&gt;
KryptoLocker_README.txt&lt;br class='autobr' /&gt;
_Locky_recover_instructions.txt&lt;br class='autobr' /&gt;
DECRYPT_Readme.TXT.ReadMe&lt;br class='autobr' /&gt;
ATTENTION.RTF&lt;br class='autobr' /&gt;
how to get data.txt&lt;br class='autobr' /&gt;
IMPORTANT READ ME.txt&lt;br class='autobr' /&gt;
UnblockFiles.vbs&lt;br class='autobr' /&gt;
YOUR_FILES.url&lt;br class='autobr' /&gt;
exit.hhr.obleep&lt;br class='autobr' /&gt;
HOW_TO_DECRYPT.HTML&lt;br class='autobr' /&gt;
HOW-TO-DECRYPT-FILES.HTML&lt;br class='autobr' /&gt;
HELP_TO_SAVE_FILES.txt&lt;br class='autobr' /&gt;
HELP_TO_SAVE_FILES.txt&lt;br class='autobr' /&gt;
HELP_TO_SAVE_FILES.txt&lt;br class='autobr' /&gt;
_H_e_l_p_RECOVER_INSTRUCTIONS+*.txt&lt;br class='autobr' /&gt;
DECRYPT_INSTRUCTIONS.HTML&lt;br class='autobr' /&gt;
README_DECRYPT_UMBRE_ID_*.txt&lt;br class='autobr' /&gt;
Help_Decrypt.txt&lt;br class='autobr' /&gt;
CryptLogFile.txt&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>OSM AND+ ajouter carte IGN</title>
		<link>https://tech.gamuza.fr/OSM-AND-ajouter-carte-IGN.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/OSM-AND-ajouter-carte-IGN.html</guid>
		<dc:date>2021-11-09T07:53:06Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>


		<dc:subject>tutoriel</dc:subject>
		<dc:subject>IGN</dc:subject>
		<dc:subject>Cartographie</dc:subject>
		<dc:subject>smartphone</dc:subject>

		<description>
&lt;p&gt;Ajouter les fonds de carte IGN TOP25 sur l'appli mobile OSM and + &lt;br class='autobr' /&gt;
Installer OSM AND + https://osmand.net/ sur Fdroid : https://f-droid.org/fr/packages/net.osmand.plus/ &lt;br class='autobr' /&gt;
Geoportail Cr&#233;er un compte sur : https://geoservices.ign.fr/ Cr&#233;er un cl&#233; de services web MON ESPACE &gt; Mes cl&#233;s de services web Cr&#233;er une cl&#233; Usage gratuites des SCAN 25/100/OACI Copier sa cl&#233; ! &lt;br class='autobr' /&gt;
Cr&#233;ation de l'URL Remplacer MaCleWebIGN par la cl&#233; copi&#233; pr&#233;c&#233;demment (&#8230;)&lt;/p&gt;


-
&lt;a href="https://tech.gamuza.fr/-Outils-logiciels-.html" rel="directory"&gt;Outils et logiciels&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-tutoriel-+.html" rel="tag"&gt;tutoriel&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-IGN-+.html" rel="tag"&gt;IGN&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-Cartographie-+.html" rel="tag"&gt;Cartographie&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-smartphone-+.html" rel="tag"&gt;smartphone&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Ajouter les fonds de carte IGN TOP25 sur l'appli mobile OSM and +&lt;/h2&gt;&lt;h2 class=&#034;spip&#034;&gt;Installer OSM AND +&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href=&#034;https://osmand.net/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://osmand.net/&lt;/a&gt;&lt;/li&gt;&lt;li&gt; sur Fdroid : &lt;a href=&#034;https://f-droid.org/fr/packages/net.osmand.plus/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://f-droid.org/fr/packages/net.osmand.plus/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Geoportail&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Cr&#233;er un compte sur : &lt;a href=&#034;https://geoservices.ign.fr/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://geoservices.ign.fr/&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Cr&#233;er un cl&#233; de services web
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; MON ESPACE &gt; Mes cl&#233;s de services web&lt;/li&gt;&lt;li&gt; Cr&#233;er une cl&#233;&lt;/li&gt;&lt;li&gt; Usage gratuites des SCAN 25/100/OACI&lt;/li&gt;&lt;li&gt; Copier sa cl&#233; !&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Cr&#233;ation de l'URL &lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Remplacer MaCleWebIGN par la cl&#233; copi&#233; pr&#233;c&#233;demment &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;https://wxs.ign.fr/MaCleWebIGN/geoportail/wmts?layer=GEOGRAPHICALGRIDSYSTEMS.MAPS&amp;style=normal&amp;tilematrixset=PM&amp;Service=WMTS&amp;Request=GetTile&amp;Version=1.0.0&amp;Format=image%2Fjpeg&amp;TileMatrix={0}&amp;TileCol={1}&amp;TileRow={2}&lt;/textarea&gt;&lt;/li&gt;&lt;li&gt; Pour tester votre cl&#233;, pour pouvez afficher l'url ci dessous dans votre navigateur, apr&#232;s avoir de nouveau remplac&#233; votre cl&#233; &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;https://wxs.ign.fr/MaCleWebIGN/geoportail/wmts?Layer=GEOGRAPHICALGRIDSYSTEMS.MAPS&amp;Style=normal&amp;TileMatrixSet=PM&amp;SERVICE=WMTS&amp;REQUEST=GetTile&amp;VERSION=1.0.0&amp;FORMAT=image/jpeg&amp;TileMatrix=15&amp;TileCol=16810&amp;TileRow=11700&lt;/textarea&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Configuration de OSM AND&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; menu &gt; Param&#233;trer la carte &gt; Carte en ligne &gt; Ajouter
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Nom : celui que vous voulez, ex IGN&lt;/li&gt;&lt;li&gt; Lien : le premier lien cr&#233;&#233; ci dessus&lt;/li&gt;&lt;li&gt; stockage : SQLiteDB&lt;/li&gt;&lt;li&gt; Les autres champs : laisser par d&#233;faut.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;T&#233;l&#233;charger un fond de carte IGN pour un usage hors-ligne&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; S&#233;lectionner la carte en ligne &#224; t&#233;l&#233;charger
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; volet &gt; Param&#233;trer la carte &gt; Carte en ligne&#8230;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; Zoomer/d&#233;zoomer pour n'afficher que la portion de carte &#224; t&#233;l&#233;charger ;&lt;/li&gt;&lt;li&gt; Faire un appui long sur la carte avec votre doigt ;&lt;/li&gt;&lt;li&gt; Sur le menu qui appara&#238;t en bas de l'&#233;cran, s&#233;lectionner &#8220;Actions&#8221; ;&lt;/li&gt;&lt;li&gt; T&#233;l&#233;charger une carte&lt;/li&gt;&lt;li&gt; S&#233;lectionner le niveau de zoom maximal &#224; pr&#233;charger ;&lt;/li&gt;&lt;li&gt; T&#233;l&#233;charger&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Liens trouv&#233; apr&#232;s la r&#233;daction d'une grande partie de cette article :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.randonner-leger.org/wiki/doku.php?id=osmand&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.randonner-leger.org/wiki/doku.php?id=osmand&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>SCSS - creer les m&#233;dia queries avec la bonne largeur background-image()</title>
		<link>https://tech.gamuza.fr/SCSS-creer-les-media-queries-avec-la-bonne-largeur-background-image.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/SCSS-creer-les-media-queries-avec-la-bonne-largeur-background-image.html</guid>
		<dc:date>2019-11-25T10:44:30Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>



		<description>
&lt;p&gt;Quand on veut s&#233;lectionner une image background pour chaque breakpoint, on peut utiliser tout le potentiel de SCSS $image_bg : 480, 576, 768, 992, 1200 ; @each $bp in $image_bg @media screen and (min-width : #$bppx) .maDiv background-image : url('img/bg_#$bp.jpg') ; &lt;br class='autobr' /&gt; Si on veut utiliser des variables de breakpoint : $tiny : 480px !default ; // or 'em' if you prefer, of course $smal : 576px !default ; $medium : 768px !default ; $large : 992px !default ; $extra-large : 1200px (&#8230;)&lt;/p&gt;


-
&lt;a href="https://tech.gamuza.fr/-formations-.html" rel="directory"&gt;D&#233;veloppement web&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Quand on veut s&#233;lectionner une image background pour chaque breakpoint, on peut utiliser tout le potentiel de SCSS&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='css spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$image_bg: 480, 576, 768, 992, 1200; @each $bp in $image_bg { @media screen and (min-width: #{$bp}px) { .maDiv { background-image: url('img/bg_#{$bp}.jpg'); } } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;Si on veut utiliser des variables de breakpoint :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='css spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$tiny: 480px !default; // or 'em' if you prefer, of course $smal: 576px !default; $medium: 768px !default; $large: 992px !default; $extra-large: 1200px !default; $list: $tiny, $small, $medium, $large, $extra-large; // fonction qui supprime les unit&#233;s sans connaitre &#224; l'avance l'unit&#233; @function supprimer_uniter($nbr) { @if type-of($nbr) == 'nbr' and not unitless($nbr) { @return $nbr / ($nbr * 0 + 1); } @return $nbr; } @each $l in $list { /* Si on connait &#224; l'avance l'unit&#233;*/ $bp: $l / 1px; /* Si on ne connait pas &#224; l'avance l'unit&#233;*/ $bp: supprimer_uniter($l); @media screen and (min-width: #{$bp}px) { .maDiv { background-image: url('img/bg_#{$bp}.jpg'); } } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le code g&#233;n&#233;r&#233; sera :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='css spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;@media screen and (min-width: 480px) { .maDiv { background-image: url(&#034;img/bg_480.jpg&#034;); } } @media screen and (min-width: 576px) { .maDiv { background-image: url(&#034;img/bg_576.jpg&#034;); } } @media screen and (min-width: 768px) { .maDiv { background-image: url(&#034;img/bg_768.jpg&#034;); } } @media screen and (min-width: 992px) { .maDiv { background-image: url(&#034;img/bg_992.jpg&#034;); } } @media screen and (min-width: 1200px) { .maDiv { background-image: url(&#034;img/bg_1200.jpg&#034;); } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="https://tech.gamuza.fr/IMG/css/mon_site.css" length="765" type="text/css" />
		
		<enclosure url="https://tech.gamuza.fr/IMG/zip/mon_site.scss.zip" length="465" type="application/zip" />
		

	</item>
<item xml:lang="fr">
		<title>Cahier des charges : PHP - Mysql</title>
		<link>https://tech.gamuza.fr/cahier-des-charges-php-mysql.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/cahier-des-charges-php-mysql.html</guid>
		<dc:date>2019-05-30T11:50:54Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>



		<description>&lt;p&gt;R&#233;aliser une liste de courses&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-formations-.html" rel="directory"&gt;D&#233;veloppement web&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Objectif : R&#233;aliser une liste de courses&lt;/h2&gt;&lt;h2 class=&#034;spip&#034;&gt;Pr&#233;sentation :&lt;/h2&gt;
&lt;p&gt;Vous devez r&#233;aliser une application web &lt;strong&gt;monopage&lt;/strong&gt; permettant la cr&#233;ation et l'utilisation d'une &lt;strong&gt;liste de courses&lt;/strong&gt;. &lt;br class='manualbr' /&gt;Cette page devra avoir un header, une barrenav, un content, (aside si besoin) et un footer. Vous pouvez utiliser un framework css. Attention, cette page devra &#234;tre responsive.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Fonctionnalit&#233;s attendues :&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Etape 1 : affichage&lt;/strong&gt;&lt;br class='autobr' /&gt;
Le tableau d'affichage doit comporter :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; l'affichage de la quantit&#233; et du nom du produit&lt;/li&gt;&lt;li&gt; Un bouton pour &lt;strong&gt;cocher&lt;/strong&gt; une ligne (fait)&lt;/li&gt;&lt;li&gt; Un bouton pour &lt;strong&gt;supprimer&lt;/strong&gt; une ligne&lt;/li&gt;&lt;li&gt; Afficher le nombre total de produits&lt;/li&gt;&lt;li&gt; Afficher le nombre total de produits non coch&#233;s&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Etape 2 : insertion&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Cr&#233;er un formulaire pour &lt;strong&gt;ajouter&lt;/strong&gt; une ligne : Nom du produit et Quantit&#233;&lt;/li&gt;&lt;li&gt; V&#233;rifier que le nom du produit ait plus de 3 caract&#232;res&lt;/li&gt;&lt;li&gt; V&#233;rifier que la quantit&#233; soit un entier&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Etape 3 : modification&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Ajouter deux boutons pour &lt;strong&gt;modifier&lt;/strong&gt; la quantit&#233; (bouton + / -).&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Etape 4 : trier&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Ajouter deux boutons de tri du tableau (Attention : ces boutons doivent modifier la requ&#234;te mysql de s&#233;lection) : par Nom et par Quantit&#233;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Etape 5 : ajax&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Transformer toutes les actions en bdd en &lt;strong&gt;AJAX&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Bonus 1 : autocompl&#233;tion&lt;/strong&gt;&lt;br class='autobr' /&gt;
Ajouter l'autocompl&#233;tion sur le nom du produit dans le formulaire de cr&#233;ation. &lt;br class='autobr' /&gt;
Pour cela, vous devez utiliser une bdd.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bonus 2 : mode hors ligne&lt;/strong&gt;&lt;br class='autobr' /&gt;
Vous devez pouvoir utiliser sur votre t&#233;l&#233;phone votre liste de course &lt;strong&gt;sans connexion internet&lt;/strong&gt;. Il faut que le bouton : &lt;strong&gt;cocher&lt;/strong&gt; fonctionne (enregistre) pour pouvoir synchroniser &#224; votre retour chez vous.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bonus 3 : enregistrer ses listes&lt;/strong&gt;&lt;br class='autobr' /&gt;
Pouvoir enregistrer ses listes (avec un nom) et pouvoir les recharger.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bonus 4 : libre !! &lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Le B.A. BA de la POO en PHP</title>
		<link>https://tech.gamuza.fr/le-b-a-ba-de-la-poo-en-php.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/le-b-a-ba-de-la-poo-en-php.html</guid>
		<dc:date>2019-05-30T11:50:33Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>



		<description>
&lt;p&gt;D&#233;finitions : ============== &lt;br class='autobr' /&gt;
## **Un objet :** &gt; Un &#171; objet &#187; est une repr&#233;sentation d'une chose mat&#233;rielle ou immat&#233;rielle du r&#233;el &#224; laquelle on associe des propri&#233;t&#233;s et des actions. &gt; exemple : **un v&#233;hicule** , une personne, un animal, un compte bancaire, ... &lt;br class='autobr' /&gt;
## **Une Classe :** &gt; contient la d&#233;finition de l'objet que l'on va creer = c'est le plan de fabrication d'un objet php class Vehicule // Pr&#233;sence du mot-cl&#233; class suivi du nom de la classe.
&lt;br class='autobr' /&gt; // D&#233;claration des attributs et (&#8230;)&lt;/p&gt;


-
&lt;a href="https://tech.gamuza.fr/-formations-.html" rel="directory"&gt;D&#233;veloppement web&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;md&gt;&lt;br class='autobr' /&gt;
D&#233;finitions :&lt;br class='autobr' /&gt;
==============&lt;/p&gt;
&lt;p&gt;## **Un objet :**&lt;br class='autobr' /&gt;
&gt; Un &#171; objet &#187; est une repr&#233;sentation d'une chose mat&#233;rielle ou immat&#233;rielle du r&#233;el &#224; laquelle on associe des propri&#233;t&#233;s et des actions.&lt;br class='autobr' /&gt;
&gt; exemple : **un v&#233;hicule** , une personne, un animal, un compte bancaire, ...&lt;/p&gt;
&lt;p&gt;## **Une Classe :**&lt;br class='autobr' /&gt;
&gt; contient la d&#233;finition de l'objet que l'on va creer = c'est le plan de fabrication d'un objet&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;class Vehicule // Pr&#233;sence du mot-cl&#233; class suivi du nom de la classe.
{ // D&#233;claration des attributs et m&#233;thodes ici.
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;## **Les Attributs (variables) :**&lt;br class='autobr' /&gt;
&gt; caract&#233;ristiques propres &#224; un objet.&lt;br class='autobr' /&gt;
&gt; exemple : nom, pr&#233;nom, couleur, ...&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;class Vehicule
{ private $nombre_roues = 4; // nombre de roues du v&#233;hicule, par d&#233;faut = 4 private $couleur = 'vert'; // couleur du v&#233;hicule; private $nom;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;## **Les Methodes (fonctions) :**&lt;br class='autobr' /&gt;
&gt; Des actions que l'on peut appliquer &#224; un objet&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;class Vehicule
{ private $nombre_roues = 4; // nombre de roues du v&#233;hicule, par d&#233;faut = 4 private $couleur = 'vert'; // couleur du v&#233;hicule; private $nom; private $niveau_carburant = 100 public fonction klaxonner() // une m&#233;thode pour faire du bruit { echo &#034;tut tut&#034;; }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;## **Instance de classe = r&#233;sultat d'une instanciation = cr&#233;ation d'un objet**&lt;br class='autobr' /&gt;
&gt; exemple : un tricyle est cr&#233;e &#224; partir de l'objet **v&#233;hicule**&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$tricyle = new Vehicule(); // initialisation des variables
$tricyle-&gt;nombre_roues = 3;
$tricyle-&gt;couleur = 'rouge';
$tricyle-&gt;nom = 'velo_toto'; // execution d'une fonction
$tricyle-&gt;klaxonner(); // faire du bruit
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;## **function __construct()**&lt;br class='autobr' /&gt;
&gt; Permet de sauvegarder les variables pass&#233;es en argument lors de l'instanciation&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;class Vehicule { public nom; public function __construct($recup_nom = 'pas encore de nom'){ $this-&gt;nom = $recup_nom; }
} $tricyle = new Vehicule(&#034;Mon_Super_Tricycle&#034;);
echo &#034;le nom de mon tricyle = &#034;.$tricycle-&gt;$nom; // donnera la valeur : Mon_Super_Tricycle;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;## **Visibilite public / private / protected**&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; **public**, permet d'indiquer que la propri&#233;t&#233; ou la m&#233;thode sera accessible &#224; l'int&#233;rieur mais aussi &#224; l'ext&#233;rieur de la classe
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; **private**, permet d'indiquer que la propri&#233;t&#233; ou la m&#233;thode sera accessible &#224; l'int&#233;rieur de la classe seulement
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; **protected**, permet d'indiquer que la propri&#233;t&#233; ou la m&#233;thode sera accessible &#224; l'int&#233;rieur de la classe et des classes h&#233;rit&#233;es&lt;/p&gt;
&lt;p&gt;Quelques petites pr&#233;cisions :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Si une propri&#233;t&#233; est d&#233;clar&#233;e en utilisant le mot clef **var**, elle sera d&#233;finie comme publique
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Si une m&#233;thode est d&#233;clar&#233;e sans visibilit&#233;e, elle sera d&#233;finie comme publique&lt;/p&gt;
&lt;p&gt;## **Acc&#233;der &#224; un attribut : l'accesseur ou getter**&lt;br class='autobr' /&gt;
&gt; cr&#233;ation de methodes qui ont comme seul role d'afficher un attribut private&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;class Vehicule { private nom; public function __construct($recup_nom = 'pas encore de nom'){ $this-&gt;nom = $recup_nom; } public fonction getNom(){ return $this-&gt;nom; }
} $tricyle = new Vehicule(&#034;Mon_Super_Tricycle&#034;);
echo $tricycle-&gt;nom; // Error, $nom =&gt; private
echo $tricylce-&gt;getNom(); // affiche : Mon_Super_Tricycle; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;## **Modifier un attribut : mutateur ou setter**&lt;br class='autobr' /&gt;
&gt; cr&#233;ation de methode qui ont comme seul role de modifier un attribut private d'un objet&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;class Vehicule { private nom; private roues = 4; public function __construct($recup_nom = 'pas encore de nom'){ $this-&gt;nom = $recup_nom; } public fonction getRoues(){ return $this-&gt;roues; } public function setRoues($nombre_roues){ if(is_int($nombre_roues) &amp;&amp; $nombre_roues &gt; 0 &amp;&amp; $nombre_roues &lt; 10){ $this-&gt;roues = $nombre_roues; } else { trigger_error('Le nombre de roue est invalide', E_USER_WARNING); } }
} $tricycle = new Vehicule(&#034;Mon_Super_Tricycle&#034;);
$tricycle-&gt;setRoues(3);
echo $tricycle-&gt;getRoues; // affiche 3 $tricycle-&gt;setRoues(11);
echo $tricycle-&gt;getRoues; // Warning : le nombre de roues est invalide &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;## **Exemple complet**&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://tech.gamuza.fr/IMG/zip/vehicule_4.php.zip' class=&#034;spip_in&#034; type='application/zip'&gt;fichier Class&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href='https://tech.gamuza.fr/Apache-failed-at-step-NAMESPACE-Stack-Overflow.html' class=&#034;spip_in&#034;&gt;Fichier PHP &#224; executer&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/md&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="https://tech.gamuza.fr/IMG/zip/vehicule_4.php.zip" length="508" type="application/zip" />
		
		<enclosure url="https://tech.gamuza.fr/IMG/zip/objet_4.php.zip" length="432" type="application/zip" />
		

	</item>
<item xml:lang="fr">
		<title>Cahier des charges : Git</title>
		<link>https://tech.gamuza.fr/cahier-des-charges-git.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/cahier-des-charges-git.html</guid>
		<dc:date>2018-12-03T08:28:31Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>



		<description>&lt;p&gt;Etapes &#224; r&#233;aliser pour une prise en main de Git&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-formations-.html" rel="directory"&gt;D&#233;veloppement web&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;&lt;a href=&#034;https://tech.gamuza.fr/utiliser-git-les-bases-168&#034;&gt;I. Pr&#233;sentation&lt;/a&gt; &lt;/h2&gt;&lt;h2 class=&#034;spip&#034;&gt;II. Github / Gitlab&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. Cr&#233;er son compte sur :&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href=&#034;https://github.com/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Github&lt;/a&gt; &lt;br class='autobr' /&gt;
ou&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://gitlab.com/explore&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Gitlab&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Creer son premier Repository (d&#233;pot)&lt;/strong&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;III. Installer un client&lt;/h2&gt;
&lt;p&gt;Voici &lt;a href=&#034;https://git-scm.com/downloads/guis&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;une liste&lt;/a&gt;sur la doc officielle&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;IV. Liste des commandes &#224; tester&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Niveau 1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1. Cloner son d&#233;pot :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;git clone &lt;url&gt;&lt;/textarea&gt;
&lt;p&gt;2. Modifier le fichier Readme.md&lt;/p&gt;
&lt;p&gt;3. Ajouter les modifications &#224; l'index de Git :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;git add Readme.md&lt;/textarea&gt;
&lt;p&gt;4. Commiter :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;git commit -m &#034;premi&#232;re modif&#034;&lt;/textarea&gt;
&lt;p&gt;5. Envoyer ce commit sur GitHub :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;git push&lt;/textarea&gt;
&lt;p&gt;6. Lister toutes les branches&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;git branch -a&lt;/textarea&gt;
&lt;p&gt;7. Cr&#233;er une branche&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;git branch ma_nouvelle_branche&lt;/textarea&gt;
&lt;p&gt;7 bis. Lister de nouveau toutes les branches&lt;/p&gt;
&lt;p&gt;8. basculer sur cette branche&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;git checkout ma_nouvelle_branche&lt;/textarea&gt;
&lt;p&gt;8 bis. Lister de nouveau toutes les branches&lt;/p&gt;
&lt;p&gt;9. Conna&#238;tre l'&#233;tat des modifications &lt;strong&gt;locales&lt;/strong&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;git status&lt;/textarea&gt;
&lt;p&gt; &lt;strong&gt;Niveau 2 : Merge&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1. Creer une branche : tester_merge&lt;/p&gt;
&lt;p&gt;2. Travailler sur cette nouvelle branche (plusieurs commits)&lt;/p&gt;
&lt;p&gt;3. &lt;strong&gt;Merge&lt;/strong&gt; cette branche&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;Niveau 3 : Rebase &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1. Creer une nouvelle branche : tester_rebase&lt;/p&gt;
&lt;p&gt;2. Travailler sur cette nouvelle branche (plusieurs commits)&lt;/p&gt;
&lt;p&gt;3. &lt;strong&gt;Rebase&lt;/strong&gt; cette branche&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Niveau 4 : Cherry Pick&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1. Creer une nouvelle branche : tester_cherry_pick&lt;/p&gt;
&lt;p&gt;2. Travailler sur cette nouvelle branche (plusieurs commits)&lt;/p&gt;
&lt;p&gt;3. Sur la branche master, r&#233;cup&#233;rer le dernier commit de la branche tester_cherry_pick&lt;/p&gt;
&lt;p&gt;4. Sur la branche master, r&#233;cup&#233;rer un commit de votre choix de la branche tester_cherry_pick&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Niveau 5 : expert&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Le remisage : &lt;a href=&#034;https://git-scm.com/book/fr/v2/Utilitaires-Git-Remisage-et-nettoyage&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://git-scm.com/book/fr/v2/Utilitaires-Git-Remisage-et-nettoyage&lt;/a&gt;&lt;/li&gt;&lt;li&gt; L'historique : &lt;a href=&#034;https://git-scm.com/book/fr/v2/Les-bases-de-Git-Visualiser-l%E2%80%99historique-des-validations&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://git-scm.com/book/fr/v2/Les-bases-de-Git-Visualiser-l%E2%80%99historique-des-validations&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Annuler : &lt;a href=&#034;https://git-scm.com/book/fr/v2/Les-bases-de-Git-Annuler-des-actions&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://git-scm.com/book/fr/v2/Les-bases-de-Git-Annuler-des-actions&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Reset : &lt;a href=&#034;https://git-scm.com/book/fr/v2/Utilitaires-Git-Reset-d%C3%A9mystifi%C3%A9&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://git-scm.com/book/fr/v2/Utilitaires-Git-Reset-d%C3%A9mystifi%C3%A9&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Deboguer avec Git : &lt;a href=&#034;https://git-scm.com/book/fr/v2/Utilitaires-Git-D%C3%A9boguer-avec-Git&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://git-scm.com/book/fr/v2/Utilitaires-Git-D%C3%A9boguer-avec-Git&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;R&#233;f&#233;rences&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;Bases :&lt;/strong&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; un cours en &#034;pas &#224; pas&#034; : &lt;a href=&#034;https://openclassrooms.com/courses/gerez-vos-codes-source-avec-git&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://openclassrooms.com/courses/gerez-vos-codes-source-avec-git&lt;/a&gt;&lt;/li&gt;&lt;li&gt; pr&#233;sentation &#171; avanc&#233;e &#187; des commandes de git : &lt;a href=&#034;https://www.miximum.fr/blog/enfin-comprendre-git/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.miximum.fr/blog/enfin-comprendre-git/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Doc de r&#233;f&#233;rence :&lt;/strong&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Git scm : &lt;a href=&#034;https://git-scm.com/docs&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://git-scm.com/docs&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Git book : &lt;a href=&#034;https://git-scm.com/book/fr/v2/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://git-scm.com/book/fr/v2/&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://tech.gamuza.fr/sites/tech.gamuza.fr/IMG/pdf/progit.fr.pdf&#034;&gt;git book version papier&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Pour aller plus loin :&lt;/strong&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Le work flow : &lt;a href=&#034;http://www.nicoespeon.com/fr/2013/08/quel-git-workflow-pour-mon-projet/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.nicoespeon.com/fr/2013/08/quel-git-workflow-pour-mon-projet/&lt;/a&gt;&lt;/li&gt;&lt;li&gt; rebase vs merge : &lt;a href=&#034;https://delicious-insights.com/fr/articles/bien-utiliser-git-merge-et-rebase&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://delicious-insights.com/fr/articles/bien-utiliser-git-merge-et-rebase&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
