<!DOCTYPE html>
<html lang="fr-FR" prefix="og: http://ogp.me/ns#">
<head>
<meta charset="UTF-8" />
<title>Blog Opencomp - Carnet de développementBlog Opencomp | Carnet de développement</title>
<link rel="profile" href="http://gmpg.org/xfn/11" />
<link rel="stylesheet" type="text/css" media="all" href="https://blog.opencomp.fr/wp-content/themes/twentyten/style.css" />
<link rel="pingback" href="https://blog.opencomp.fr/xmlrpc.php" />

<!-- This site is optimized with the Yoast SEO plugin v5.3.2 - https://yoast.com/wordpress/plugins/seo/ -->
<meta name="description" content="Carnet de développement"/>
<link rel="canonical" href="https://blog.opencomp.fr/" />
<link rel="next" href="https://blog.opencomp.fr/page/2/" />
<meta property="og:locale" content="fr_FR" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Blog Opencomp - Carnet de développement" />
<meta property="og:description" content="Carnet de développement" />
<meta property="og:url" content="https://blog.opencomp.fr/" />
<meta property="og:site_name" content="Blog Opencomp" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:description" content="Carnet de développement" />
<meta name="twitter:title" content="Blog Opencomp - Carnet de développement" />
<script type='application/ld+json'>{"@context":"http:\/\/schema.org","@type":"WebSite","@id":"#website","url":"https:\/\/blog.opencomp.fr\/","name":"Opencomp.fr - Carnet de d\u00e9veloppement","potentialAction":{"@type":"SearchAction","target":"https:\/\/blog.opencomp.fr\/?s={search_term_string}","query-input":"required name=search_term_string"}}</script>
<script type='application/ld+json'>{"@context":"http:\/\/schema.org","@type":"Person","url":"https:\/\/blog.opencomp.fr\/","sameAs":[],"@id":"#person","name":"Jean Traull\u00e9"}</script>
<!-- / Yoast SEO plugin. -->

<link rel='dns-prefetch' href='//s0.wp.com' />
<link rel='dns-prefetch' href='//secure.gravatar.com' />
<link rel='dns-prefetch' href='//s.w.org' />
<link rel="alternate" type="application/rss+xml" title="Blog Opencomp &raquo; Flux" href="https://blog.opencomp.fr/feed/" />
<link rel="alternate" type="application/rss+xml" title="Blog Opencomp &raquo; Flux des commentaires" href="https://blog.opencomp.fr/comments/feed/" />
		<script type="text/javascript">
			window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/blog.opencomp.fr\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.8.1"}};
			!function(a,b,c){function d(a){var b,c,d,e,f=String.fromCharCode;if(!k||!k.fillText)return!1;switch(k.clearRect(0,0,j.width,j.height),k.textBaseline="top",k.font="600 32px Arial",a){case"flag":return k.fillText(f(55356,56826,55356,56819),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,56826,8203,55356,56819),0,0),c=j.toDataURL(),b===c&&(k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447),0,0),c=j.toDataURL(),b!==c);case"emoji4":return k.fillText(f(55358,56794,8205,9794,65039),0,0),d=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55358,56794,8203,9794,65039),0,0),e=j.toDataURL(),d!==e}return!1}function e(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i,j=b.createElement("canvas"),k=j.getContext&&j.getContext("2d");for(i=Array("flag","emoji4"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
		</script>
		<style type="text/css">
img.wp-smiley,
img.emoji {
	display: inline !important;
	border: none !important;
	box-shadow: none !important;
	height: 1em !important;
	width: 1em !important;
	margin: 0 .07em !important;
	vertical-align: -0.1em !important;
	background: none !important;
	padding: 0 !important;
}
</style>
<link rel='stylesheet' id='simple-payments-css'  href='https://blog.opencomp.fr/wp-content/plugins/jetpack/modules/simple-payments/simple-payments.css?ver=4.8.1' type='text/css' media='all' />
<link rel='stylesheet' id='cookielawinfo-style-css'  href='https://blog.opencomp.fr/wp-content/plugins/cookie-law-info/css/cli-style.css?ver=1.5.3' type='text/css' media='all' />
<link rel='stylesheet' id='noticeboxesstyle-css'  href='https://blog.opencomp.fr/wp-content/plugins/notice-boxes-with-shortcodes/nboxesstyle.css?ver=20120208' type='text/css' media='all' />
<link rel='stylesheet' id='open-sans-css'  href='https://fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&#038;subset=latin%2Clatin-ext&#038;ver=4.8.1' type='text/css' media='all' />
<link rel='stylesheet' id='tablepress-default-css'  href='https://blog.opencomp.fr/wp-content/plugins/tablepress/css/default.min.css?ver=1.8' type='text/css' media='all' />
<link rel='stylesheet' id='prism-tomorrow-css'  href='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/themes/prism-tomorrow.css?ver=1.0.0' type='text/css' media='all' />
<link rel='stylesheet' id='prism-line-highlight-css'  href='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/plugins/line-highlight/prism-line-highlight.css?ver=1.0.0' type='text/css' media='all' />
<link rel='stylesheet' id='prism-line-numbers-css'  href='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/plugins/line-numbers/prism-line-numbers.css?ver=1.0.0' type='text/css' media='all' />
<link rel='stylesheet' id='jetpack_css-css'  href='https://blog.opencomp.fr/wp-content/plugins/jetpack/css/jetpack.css?ver=5.2.1' type='text/css' media='all' />
<script type='text/javascript' src='https://blog.opencomp.fr/wp-includes/js/jquery/jquery.js?ver=1.12.4'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/cookie-law-info/js/cookielawinfo.js?ver=1.5.3'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/jetpack/_inc/postmessage.js?ver=5.2.1'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/jetpack/_inc/jquery.jetpack-resize.js?ver=5.2.1'></script>
<link rel='https://api.w.org/' href='https://blog.opencomp.fr/wp-json/' />
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://blog.opencomp.fr/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://blog.opencomp.fr/wp-includes/wlwmanifest.xml" /> 
<meta name="generator" content="WordPress 4.8.1" />
<link rel='shortlink' href='https://wp.me/1wIqF' />

<link rel='dns-prefetch' href='//jetpack.wordpress.com'>
<link rel='dns-prefetch' href='//s0.wp.com'>
<link rel='dns-prefetch' href='//s1.wp.com'>
<link rel='dns-prefetch' href='//s2.wp.com'>
<link rel='dns-prefetch' href='//public-api.wordpress.com'>
<link rel='dns-prefetch' href='//0.gravatar.com'>
<link rel='dns-prefetch' href='//1.gravatar.com'>
<link rel='dns-prefetch' href='//2.gravatar.com'>
<link rel='dns-prefetch' href='//widgets.wp.com'>
<style type="text/css" id="custom-background-css">
body.custom-background { background-image: url("https://blog.opencomp.fr/wp-content/uploads/2015/02/swirl_pattern.png"); background-position: left top; background-size: auto; background-repeat: repeat; background-attachment: fixed; }
</style>
<!-- BEGIN GADWP v5.1.1.1 Universal Analytics - https://deconf.com/google-analytics-dashboard-wordpress/ -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
	(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
	m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  ga('create', 'UA-27159455-1', 'auto');
  ga('send', 'pageview');
</script>
<!-- END GADWP Universal Analytics -->
</head>

<body class="home blog custom-background">
<div id="wrapper" class="hfeed">
	<div id="header">
		<div id="masthead">
			<div id="branding" role="banner">
								<h1 id="site-title">
					<span>
						<a href="https://blog.opencomp.fr/" title="Blog Opencomp" rel="home">Blog Opencomp</a>
					</span>
				</h1>
				<div id="site-description">Carnet de développement</div>

										<img src="https://blog.opencomp.fr/wp-content/uploads/2012/07/path.jpg.png" width="940" height="130" alt="" />
								</div><!-- #branding -->

			<div id="access" role="navigation">
			  				<div class="skip-link screen-reader-text"><a href="#content" title="Aller au contenu">Aller au contenu</a></div>
								<div class="menu-header"><ul id="menu-menu-principal" class="menu"><li id="menu-item-225" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-225"><a href="http://blog.opencomp.fr">Accueil</a></li>
<li id="menu-item-584" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-584"><a href="https://blog.opencomp.fr/mentions-legales/">À propos</a>
<ul  class="sub-menu">
	<li id="menu-item-583" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-583"><a href="https://blog.opencomp.fr/opencomp-presentation-du-projet/">Présentation du projet</a></li>
	<li id="menu-item-224" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-224"><a href="https://blog.opencomp.fr/mentions-legales/">Mentions légales</a></li>
</ul>
</li>
<li id="menu-item-226" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-226"><a href="https://github.com/jtraulle/opencomp">Code source</a>
<ul  class="sub-menu">
	<li id="menu-item-240" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-240"><a href="https://www.ohloh.net/p/opencomp">Analyse du code</a></li>
	<li id="menu-item-377" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-377"><a href="https://blog.opencomp.fr/modele-conceptuel-des-donnees/">Modèle Conceptuel des Données</a></li>
	<li id="menu-item-376" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-376"><a href="https://blog.opencomp.fr/modele-logique-des-donnees/">Modèle Logique des Données</a></li>
	<li id="menu-item-238" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-238"><a href="https://github.com/jtraulle/opencomp">Le code sur Github</a></li>
</ul>
</li>
<li id="menu-item-239" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-239"><a href="http://projets.opencomp.fr/opencomp/issues/new">Vos demandes</a>
<ul  class="sub-menu">
	<li id="menu-item-360" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-360"><a href="http://projets.opencomp.fr/opencomp/issues/new">Soumettre une anomalie</a></li>
	<li id="menu-item-361" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-361"><a href="http://projets.opencomp.fr/opencomp/issues/new">Demander une fonctionnalité</a></li>
</ul>
</li>
<li id="menu-item-223" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-223"><a href="https://blog.opencomp.fr/nous-contacter/">Contact</a></li>
</ul></div>			</div><!-- #access -->
		</div><!-- #masthead -->
	</div><!-- #header -->

	<div id="main">

		<div id="container">
			<div id="content" role="main">

			
	<div id="nav-above" class="navigation">
		<div class="nav-previous"><a href="https://blog.opencomp.fr/page/2/" ><span class="meta-nav">&larr;</span> Articles plus anciens</a></div>
		<div class="nav-next"></div>
	</div><!-- #nav-above -->




			<div id="post-864" class="post-864 post type-post status-publish format-standard has-post-thumbnail hentry category-non-classe tag-automatisation tag-backup tag-gmail tag-google">
			<h2 class="entry-title"><a href="https://blog.opencomp.fr/2017/08/verifier-presence-dun-mail-gmail/" rel="bookmark">Vérifier la présence d&rsquo;un mail dans Gmail</a></h2>

			<div class="entry-meta">
				<span class="meta-prep meta-prep-author">Publié le</span> <a href="https://blog.opencomp.fr/2017/08/verifier-presence-dun-mail-gmail/" title="12 h 44 min" rel="bookmark"><span class="entry-date">17 août 2017</span></a> <span class="meta-sep">par</span> <span class="author vcard"><a class="url fn n" href="https://blog.opencomp.fr/author/jtraulle/" title="Afficher tous les articles par Jean Traullé">Jean Traullé</a></span>			</div><!-- .entry-meta -->

				<div class="entry-content">
				<p>Aujourd&rsquo;hui, un petit post rapide sur quelque chose de bien utile. Saviez-vous qu&rsquo;il était possible d&rsquo;automatiser la plupart des actions que vous effectuez manuellement dans Gmail ? Par exemple, vérifier la présence d&rsquo;un mail &#8230; Non ? Cet article est pour vous dans ce cas.</p>
<p> <a href="https://blog.opencomp.fr/2017/08/verifier-presence-dun-mail-gmail/#more-864" class="more-link">Continuer la lecture <span class="meta-nav">&rarr;</span></a></p>
							</div><!-- .entry-content -->
	
			<div class="entry-utility">
									<span class="cat-links">
						<span class="entry-utility-prep entry-utility-prep-cat-links">Publié dans</span> <a href="https://blog.opencomp.fr/category/non-classe/" rel="category tag">Non classé</a>					</span>
					<span class="meta-sep">|</span>
													<span class="tag-links">
						<span class="entry-utility-prep entry-utility-prep-tag-links">Marqué avec</span> <a href="https://blog.opencomp.fr/tag/automatisation/" rel="tag">automatisation</a>, <a href="https://blog.opencomp.fr/tag/backup/" rel="tag">backup</a>, <a href="https://blog.opencomp.fr/tag/gmail/" rel="tag">gmail</a>, <a href="https://blog.opencomp.fr/tag/google/" rel="tag">google</a>					</span>
					<span class="meta-sep">|</span>
								<span class="comments-link"><a href="https://blog.opencomp.fr/2017/08/verifier-presence-dun-mail-gmail/#respond">Laisser un commentaire</a></span>
							</div><!-- .entry-utility -->
		</div><!-- #post-## -->

		
	


			<div id="post-832" class="post-832 post type-post status-publish format-standard hentry category-non-classe tag-docker tag-docker-compose">
			<h2 class="entry-title"><a href="https://blog.opencomp.fr/2016/07/aide-memoire-docker-compose/" rel="bookmark">Aide mémoire docker-compose</a></h2>

			<div class="entry-meta">
				<span class="meta-prep meta-prep-author">Publié le</span> <a href="https://blog.opencomp.fr/2016/07/aide-memoire-docker-compose/" title="11 h 16 min" rel="bookmark"><span class="entry-date">3 juillet 2016</span></a> <span class="meta-sep">par</span> <span class="author vcard"><a class="url fn n" href="https://blog.opencomp.fr/author/jtraulle/" title="Afficher tous les articles par Jean Traullé">Jean Traullé</a></span>			</div><!-- .entry-meta -->

				<div class="entry-content">
				<p>Bonjour à tous,</p>
<p>Aujourd&rsquo;hui, je vous propose une petite sheet-cheat (aide mémoire) concernant docker-compose !</p>
<p> <a href="https://blog.opencomp.fr/2016/07/aide-memoire-docker-compose/#more-832" class="more-link">Continuer la lecture <span class="meta-nav">&rarr;</span></a></p>
							</div><!-- .entry-content -->
	
			<div class="entry-utility">
									<span class="cat-links">
						<span class="entry-utility-prep entry-utility-prep-cat-links">Publié dans</span> <a href="https://blog.opencomp.fr/category/non-classe/" rel="category tag">Non classé</a>					</span>
					<span class="meta-sep">|</span>
													<span class="tag-links">
						<span class="entry-utility-prep entry-utility-prep-tag-links">Marqué avec</span> <a href="https://blog.opencomp.fr/tag/docker/" rel="tag">docker</a>, <a href="https://blog.opencomp.fr/tag/docker-compose/" rel="tag">docker-compose</a>					</span>
					<span class="meta-sep">|</span>
								<span class="comments-link"><a href="https://blog.opencomp.fr/2016/07/aide-memoire-docker-compose/#respond">Laisser un commentaire</a></span>
							</div><!-- .entry-utility -->
		</div><!-- #post-## -->

		
	


			<div id="post-821" class="post-821 post type-post status-publish format-standard hentry category-non-classe tag-git tag-jar tag-java tag-versioning">
			<h2 class="entry-title"><a href="https://blog.opencomp.fr/2016/04/git-et-corruption-darchives-jar-la-solution/" rel="bookmark">Git et corruption d&rsquo;archives .jar, la solution</a></h2>

			<div class="entry-meta">
				<span class="meta-prep meta-prep-author">Publié le</span> <a href="https://blog.opencomp.fr/2016/04/git-et-corruption-darchives-jar-la-solution/" title="13 h 23 min" rel="bookmark"><span class="entry-date">17 avril 2016</span></a> <span class="meta-sep">par</span> <span class="author vcard"><a class="url fn n" href="https://blog.opencomp.fr/author/jtraulle/" title="Afficher tous les articles par Jean Traullé">Jean Traullé</a></span>			</div><!-- .entry-meta -->

				<div class="entry-content">
				<p>Vous est-il déjà arrivé de commiter des .jar dans votre dépôt <code>git</code> et ensuite, de ne pas être en mesure de démarrer correctement votre application <abbr title="Java Enterprise Edition">JavaEE</abbr> faisant appel à ces dépendances .jar ? Si tel est le cas, ce court article devrait vous intéresser.</p>
<p> <a href="https://blog.opencomp.fr/2016/04/git-et-corruption-darchives-jar-la-solution/#more-821" class="more-link">Continuer la lecture <span class="meta-nav">&rarr;</span></a></p>
							</div><!-- .entry-content -->
	
			<div class="entry-utility">
									<span class="cat-links">
						<span class="entry-utility-prep entry-utility-prep-cat-links">Publié dans</span> <a href="https://blog.opencomp.fr/category/non-classe/" rel="category tag">Non classé</a>					</span>
					<span class="meta-sep">|</span>
													<span class="tag-links">
						<span class="entry-utility-prep entry-utility-prep-tag-links">Marqué avec</span> <a href="https://blog.opencomp.fr/tag/git/" rel="tag">Git</a>, <a href="https://blog.opencomp.fr/tag/jar/" rel="tag">jar</a>, <a href="https://blog.opencomp.fr/tag/java/" rel="tag">java</a>, <a href="https://blog.opencomp.fr/tag/versioning/" rel="tag">versioning</a>					</span>
					<span class="meta-sep">|</span>
								<span class="comments-link"><a href="https://blog.opencomp.fr/2016/04/git-et-corruption-darchives-jar-la-solution/#respond">Laisser un commentaire</a></span>
							</div><!-- .entry-utility -->
		</div><!-- #post-## -->

		
	


			<div id="post-776" class="post-776 post type-post status-publish format-standard has-post-thumbnail hentry category-non-classe tag-backup tag-hyperviseur tag-kvm tag-nfs tag-openvz tag-ovh tag-proxmox-ve tag-sauvegarde tag-virtualisation tag-vzdump">
			<h2 class="entry-title"><a href="https://blog.opencomp.fr/2016/02/proxmox-ve-vzdump-sauvegarde-nfs-danger/" rel="bookmark">Attention, Proxmox VE / vzdump n&rsquo;aime pas les partages NFS pour la sauvegarde de vos machines virtuelles KVM !</a></h2>

			<div class="entry-meta">
				<span class="meta-prep meta-prep-author">Publié le</span> <a href="https://blog.opencomp.fr/2016/02/proxmox-ve-vzdump-sauvegarde-nfs-danger/" title="23 h 02 min" rel="bookmark"><span class="entry-date">16 février 2016</span></a> <span class="meta-sep">par</span> <span class="author vcard"><a class="url fn n" href="https://blog.opencomp.fr/author/jtraulle/" title="Afficher tous les articles par Jean Traullé">Jean Traullé</a></span>			</div><!-- .entry-meta -->

				<div class="entry-content">
				<p>Aujourd&rsquo;hui, je vais vous parler de Proxmox VE et de la gestion des sauvegardes des machines virtuelles d&rsquo;un cluster Proxmox VE.</p>
<p>Accrochez vos ceintures, c&rsquo;est parti pour un nouveau billet bien technique. <img style="margin-left: 3px; margin-right: 3px; vertical-align: middle; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none;" src="http://blog.opencomp.fr/wp-content/plugins/wp-emoji-one/icons/1F680.png" alt="" width="16" height="16" /></p>
<p> <a href="https://blog.opencomp.fr/2016/02/proxmox-ve-vzdump-sauvegarde-nfs-danger/#more-776" class="more-link">Continuer la lecture <span class="meta-nav">&rarr;</span></a></p>
							</div><!-- .entry-content -->
	
			<div class="entry-utility">
									<span class="cat-links">
						<span class="entry-utility-prep entry-utility-prep-cat-links">Publié dans</span> <a href="https://blog.opencomp.fr/category/non-classe/" rel="category tag">Non classé</a>					</span>
					<span class="meta-sep">|</span>
													<span class="tag-links">
						<span class="entry-utility-prep entry-utility-prep-tag-links">Marqué avec</span> <a href="https://blog.opencomp.fr/tag/backup/" rel="tag">backup</a>, <a href="https://blog.opencomp.fr/tag/hyperviseur/" rel="tag">hyperviseur</a>, <a href="https://blog.opencomp.fr/tag/kvm/" rel="tag">KVM</a>, <a href="https://blog.opencomp.fr/tag/nfs/" rel="tag">NFS</a>, <a href="https://blog.opencomp.fr/tag/openvz/" rel="tag">OpenVZ</a>, <a href="https://blog.opencomp.fr/tag/ovh/" rel="tag">OVH</a>, <a href="https://blog.opencomp.fr/tag/proxmox-ve/" rel="tag">Proxmox VE</a>, <a href="https://blog.opencomp.fr/tag/sauvegarde/" rel="tag">sauvegarde</a>, <a href="https://blog.opencomp.fr/tag/virtualisation/" rel="tag">virtualisation</a>, <a href="https://blog.opencomp.fr/tag/vzdump/" rel="tag">vzdump</a>					</span>
					<span class="meta-sep">|</span>
								<span class="comments-link"><a href="https://blog.opencomp.fr/2016/02/proxmox-ve-vzdump-sauvegarde-nfs-danger/#comments">2 commentaires</a></span>
							</div><!-- .entry-utility -->
		</div><!-- #post-## -->

		
	


			<div id="post-728" class="post-728 post type-post status-publish format-standard hentry category-non-classe tag-architecture tag-beanstalkd tag-file tag-performances tag-producteurconsommateur tag-scalabiliy tag-serveur tag-worker">
			<h2 class="entry-title"><a href="https://blog.opencomp.fr/2016/02/producteurs-consommateurs-optimisation/" rel="bookmark">Gestion des tâches et parallélisation : problème des producteurs et des consommateurs ou comment penser la scalabilité de son application</a></h2>

			<div class="entry-meta">
				<span class="meta-prep meta-prep-author">Publié le</span> <a href="https://blog.opencomp.fr/2016/02/producteurs-consommateurs-optimisation/" title="22 h 33 min" rel="bookmark"><span class="entry-date">10 février 2016</span></a> <span class="meta-sep">par</span> <span class="author vcard"><a class="url fn n" href="https://blog.opencomp.fr/author/jtraulle/" title="Afficher tous les articles par Jean Traullé">Jean Traullé</a></span>			</div><!-- .entry-meta -->

				<div class="entry-content">
				<p>Il y a maintenant fort longtemps, <a href="http://blog.opencomp.fr/2013/07/personnalisation-et-generation-des-bulletins-en-pdf/">j&rsquo;abordais rapidement</a> les background workers et leur utilisation pour optimiser et contenir la charge d&rsquo;une application web. Voici donc aujourd&rsquo;hui un petit focus sur ces problématiques de gestion de charge. Je prends ici pour exemple le modèle des producteurs/consommateurs.</p>
<p> <a href="https://blog.opencomp.fr/2016/02/producteurs-consommateurs-optimisation/#more-728" class="more-link">Continuer la lecture <span class="meta-nav">&rarr;</span></a></p>
							</div><!-- .entry-content -->
	
			<div class="entry-utility">
									<span class="cat-links">
						<span class="entry-utility-prep entry-utility-prep-cat-links">Publié dans</span> <a href="https://blog.opencomp.fr/category/non-classe/" rel="category tag">Non classé</a>					</span>
					<span class="meta-sep">|</span>
													<span class="tag-links">
						<span class="entry-utility-prep entry-utility-prep-tag-links">Marqué avec</span> <a href="https://blog.opencomp.fr/tag/architecture/" rel="tag">architecture</a>, <a href="https://blog.opencomp.fr/tag/beanstalkd/" rel="tag">beanstalkd</a>, <a href="https://blog.opencomp.fr/tag/file/" rel="tag">file</a>, <a href="https://blog.opencomp.fr/tag/performances/" rel="tag">Performances</a>, <a href="https://blog.opencomp.fr/tag/producteurconsommateur/" rel="tag">producteur/consommateur</a>, <a href="https://blog.opencomp.fr/tag/scalabiliy/" rel="tag">scalabiliy</a>, <a href="https://blog.opencomp.fr/tag/serveur/" rel="tag">serveur</a>, <a href="https://blog.opencomp.fr/tag/worker/" rel="tag">worker</a>					</span>
					<span class="meta-sep">|</span>
								<span class="comments-link"><a href="https://blog.opencomp.fr/2016/02/producteurs-consommateurs-optimisation/#respond">Laisser un commentaire</a></span>
							</div><!-- .entry-utility -->
		</div><!-- #post-## -->

		
	


			<div id="post-701" class="post-701 post type-post status-publish format-standard hentry category-non-classe tag-3-0 tag-associations tag-belongsto tag-cakephp tag-habtm tag-model">
			<h2 class="entry-title"><a href="https://blog.opencomp.fr/2015/05/cakephp-3-x-associations-belongsto-et-belongstomany/" rel="bookmark">[CakePHP 3.x] Associations belongsTo et belongsToMany</a></h2>

			<div class="entry-meta">
				<span class="meta-prep meta-prep-author">Publié le</span> <a href="https://blog.opencomp.fr/2015/05/cakephp-3-x-associations-belongsto-et-belongstomany/" title="16 h 08 min" rel="bookmark"><span class="entry-date">3 mai 2015</span></a> <span class="meta-sep">par</span> <span class="author vcard"><a class="url fn n" href="https://blog.opencomp.fr/author/jtraulle/" title="Afficher tous les articles par Jean Traullé">Jean Traullé</a></span>			</div><!-- .entry-meta -->

				<div class="entry-content">
				<p>Petit billet technique aujourd&rsquo;hui pour parler des associations dans CakePHP 3.x</p>
<p>Vous le savez sans doute, la meilleure façon de récupérer des données associées à vos tables en utilisant CakePHP est d&rsquo;utiliser les associations. <img style="margin-left: 3px; margin-right: 3px; vertical-align: middle; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none;" src="http://blog.opencomp.fr/wp-content/plugins/wp-emoji-one/icons/1F600.png" alt="" width="16" height="16" /> Il existe différent types d&rsquo;associations dans CakePHP et notamment les associations <strong>belongsTo</strong> et <strong>belongsToMany</strong>.</p>
<p> <a href="https://blog.opencomp.fr/2015/05/cakephp-3-x-associations-belongsto-et-belongstomany/#more-701" class="more-link">Continuer la lecture <span class="meta-nav">&rarr;</span></a></p>
							</div><!-- .entry-content -->
	
			<div class="entry-utility">
									<span class="cat-links">
						<span class="entry-utility-prep entry-utility-prep-cat-links">Publié dans</span> <a href="https://blog.opencomp.fr/category/non-classe/" rel="category tag">Non classé</a>					</span>
					<span class="meta-sep">|</span>
													<span class="tag-links">
						<span class="entry-utility-prep entry-utility-prep-tag-links">Marqué avec</span> <a href="https://blog.opencomp.fr/tag/3-0/" rel="tag">3.0</a>, <a href="https://blog.opencomp.fr/tag/associations/" rel="tag">associations</a>, <a href="https://blog.opencomp.fr/tag/belongsto/" rel="tag">belongsTo</a>, <a href="https://blog.opencomp.fr/tag/cakephp/" rel="tag">CakePHP</a>, <a href="https://blog.opencomp.fr/tag/habtm/" rel="tag">HABTM</a>, <a href="https://blog.opencomp.fr/tag/model/" rel="tag">model</a>					</span>
					<span class="meta-sep">|</span>
								<span class="comments-link"><a href="https://blog.opencomp.fr/2015/05/cakephp-3-x-associations-belongsto-et-belongstomany/#respond">Laisser un commentaire</a></span>
							</div><!-- .entry-utility -->
		</div><!-- #post-## -->

		
	


			<div id="post-640" class="post-640 post type-post status-publish format-standard hentry category-non-classe tag-cakephp tag-callback tag-fonctions-mysql tag-mptt tag-mysql tag-performances tag-representation-intervallaire">
			<h2 class="entry-title"><a href="https://blog.opencomp.fr/2015/02/representation-intervallaire/" rel="bookmark">Représentation intervallaire, performance, fonctions MySQL et fonctions de rappel CakePHP</a></h2>

			<div class="entry-meta">
				<span class="meta-prep meta-prep-author">Publié le</span> <a href="https://blog.opencomp.fr/2015/02/representation-intervallaire/" title="0 h 13 min" rel="bookmark"><span class="entry-date">6 février 2015</span></a> <span class="meta-sep">par</span> <span class="author vcard"><a class="url fn n" href="https://blog.opencomp.fr/author/jtraulle/" title="Afficher tous les articles par Jean Traullé">Jean Traullé</a></span>			</div><!-- .entry-meta -->

				<div class="entry-content">
				<p>Le billet que je vous propose aujourd&rsquo;hui fait parti de ceux dont j&rsquo;ai longtemps repoussé l&rsquo;écriture. Et pour cause, le sujet de la représentation intervallaire est intéressant mais très technique et pas particulièrement simple à expliquer.</p>
<p>Nous allons donc parler aujourd&rsquo;hui de hiérarchisation d&rsquo;informations et d&rsquo;arbres (non, ne partez pas <img style="margin-left: 3px; margin-right: 3px; vertical-align: middle; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none;" src="http://blog.opencomp.fr/wp-content/plugins/wp-emoji-one/icons/1F607.png" alt="" width="16" height="16" />) !</p>
<p> <a href="https://blog.opencomp.fr/2015/02/representation-intervallaire/#more-640" class="more-link">Continuer la lecture <span class="meta-nav">&rarr;</span></a></p>
							</div><!-- .entry-content -->
	
			<div class="entry-utility">
									<span class="cat-links">
						<span class="entry-utility-prep entry-utility-prep-cat-links">Publié dans</span> <a href="https://blog.opencomp.fr/category/non-classe/" rel="category tag">Non classé</a>					</span>
					<span class="meta-sep">|</span>
													<span class="tag-links">
						<span class="entry-utility-prep entry-utility-prep-tag-links">Marqué avec</span> <a href="https://blog.opencomp.fr/tag/cakephp/" rel="tag">CakePHP</a>, <a href="https://blog.opencomp.fr/tag/callback/" rel="tag">Callback</a>, <a href="https://blog.opencomp.fr/tag/fonctions-mysql/" rel="tag">Fonctions MySQL</a>, <a href="https://blog.opencomp.fr/tag/mptt/" rel="tag">MPTT</a>, <a href="https://blog.opencomp.fr/tag/mysql/" rel="tag">mysql</a>, <a href="https://blog.opencomp.fr/tag/performances/" rel="tag">Performances</a>, <a href="https://blog.opencomp.fr/tag/representation-intervallaire/" rel="tag">Représentation intervallaire</a>					</span>
					<span class="meta-sep">|</span>
								<span class="comments-link"><a href="https://blog.opencomp.fr/2015/02/representation-intervallaire/#respond">Laisser un commentaire</a></span>
							</div><!-- .entry-utility -->
		</div><!-- #post-## -->

		
	


			<div id="post-645" class="post-645 post type-post status-publish format-standard hentry category-non-classe tag-analyse tag-ci tag-qualite tag-revue-de-code">
			<h2 class="entry-title"><a href="https://blog.opencomp.fr/2015/01/codacy-code-climate-revue-code-qualite/" rel="bookmark">Codacy et Code Climate : nouveaux arrivants pour la revue de code automatisée en PHP !</a></h2>

			<div class="entry-meta">
				<span class="meta-prep meta-prep-author">Publié le</span> <a href="https://blog.opencomp.fr/2015/01/codacy-code-climate-revue-code-qualite/" title="18 h 50 min" rel="bookmark"><span class="entry-date">28 janvier 2015</span></a> <span class="meta-sep">par</span> <span class="author vcard"><a class="url fn n" href="https://blog.opencomp.fr/author/jtraulle/" title="Afficher tous les articles par Jean Traullé">Jean Traullé</a></span>			</div><!-- .entry-meta -->

				<div class="entry-content">
				<p>Je vous parlais il y a quelques temps de <a title="SensioLabs Insight et Scrutinizer : améliorons la qualité !" href="http://blog.opencomp.fr/2014/02/sensiolabs-insight-et-scrutinizer-ameliorons-la-qualite/">Scrutinizer et SensioLabs Insights</a> comme outils permettant d&rsquo;améliorer la qualité de vos sources par la revue de code automatisée.</p>
<p>Je suis toujours a l&rsquo;affut de ce genre d&rsquo;outils car, même s&rsquo;ils ne remplacent pas une bonne revue de code par nos pairs, ils ont au moins le mérite d&rsquo;automatiser un certain nombre de vérifications liées à la sécurité et aux bonnes pratiques de programmation.</p>
<p>L&rsquo;un des leader dans ce domaine (et premier arrivé sur le marché) a été <a href="https://codeclimate.com">Code Climate</a>. Mais à l&rsquo;origine, le service ne permettait d&rsquo;analyser que le code Ruby. Après une période de beta, il est maintenant possible d&rsquo;analyser les projets PHP.</p>
<p>J&rsquo;ai par ailleurs découvert hier Codacy qui permet d&rsquo;analyser les projets PHP, mais également Python et Scala ainsi que les langages Javascript et CSS pour le côté frontend.</p>
<p>Avec cet article, je vous propose un petit tour d&rsquo;horizon de ces deux outils gratuits pour les projets opensources.</p>
<p> <a href="https://blog.opencomp.fr/2015/01/codacy-code-climate-revue-code-qualite/#more-645" class="more-link">Continuer la lecture <span class="meta-nav">&rarr;</span></a></p>
							</div><!-- .entry-content -->
	
			<div class="entry-utility">
									<span class="cat-links">
						<span class="entry-utility-prep entry-utility-prep-cat-links">Publié dans</span> <a href="https://blog.opencomp.fr/category/non-classe/" rel="category tag">Non classé</a>					</span>
					<span class="meta-sep">|</span>
													<span class="tag-links">
						<span class="entry-utility-prep entry-utility-prep-tag-links">Marqué avec</span> <a href="https://blog.opencomp.fr/tag/analyse/" rel="tag">analyse</a>, <a href="https://blog.opencomp.fr/tag/ci/" rel="tag">CI</a>, <a href="https://blog.opencomp.fr/tag/qualite/" rel="tag">Qualité</a>, <a href="https://blog.opencomp.fr/tag/revue-de-code/" rel="tag">revue de code</a>					</span>
					<span class="meta-sep">|</span>
								<span class="comments-link"><a href="https://blog.opencomp.fr/2015/01/codacy-code-climate-revue-code-qualite/#respond">Laisser un commentaire</a></span>
							</div><!-- .entry-utility -->
		</div><!-- #post-## -->

		
	


			<div id="post-637" class="post-637 post type-post status-publish format-aside hentry category-non-classe post_format-post-format-aside">

					<div class="entry-content">
				<p>Pour faire suite à l&rsquo;article <a title="Ou l’on reparle de gestion de dépendances" href="http://blog.opencomp.fr/2013/12/ou-lon-reparle-de-gestion-de-dependances/">Ou l’on reparle de gestion de dépendances</a>, merci à <a href="http://blog.opencomp.fr/2013/12/ou-lon-reparle-de-gestion-de-dependances/#comment-1257">Phil</a> de m&rsquo;avoir indiqué que <a href="https://gemnasium.com/" target="_blank">Gemnasium</a> permet maintenant de suivre les dépendances des projets utilisant <a href="https://getcomposer.org/" target="_blank">Composer</a> et <a href="http://bower.io/" target="_blank">Bower</a>.</p>
<p>Le gros avantage de Gemnasium par rapport aux solutions que j&rsquo;ai présenté par le passé, c&rsquo;est que leur solution permet de monitorer au sein d&rsquo;un même projet aussi bien les dépendances de <a href="https://getcomposer.org/" target="_blank">Composer</a> et <a href="http://bower.io/" target="_blank">Bower</a> (avec un seul badge donc) !</p>
			</div><!-- .entry-content -->
		
			<div class="entry-utility">
				<span class="meta-prep meta-prep-author">Publié le</span> <a href="https://blog.opencomp.fr/2014/12/gemnasium/" title="15 h 15 min" rel="bookmark"><span class="entry-date">11 décembre 2014</span></a> <span class="meta-sep">par</span> <span class="author vcard"><a class="url fn n" href="https://blog.opencomp.fr/author/jtraulle/" title="Afficher tous les articles par Jean Traullé">Jean Traullé</a></span>				<span class="meta-sep">|</span>
				<span class="comments-link"><a href="https://blog.opencomp.fr/2014/12/gemnasium/#respond">Laisser un commentaire</a></span>
							</div><!-- .entry-utility -->
		</div><!-- #post-## -->


	


			<div id="post-632" class="post-632 post type-post status-publish format-standard hentry category-non-classe tag-git tag-gource">
			<h2 class="entry-title"><a href="https://blog.opencomp.fr/2014/12/evolution-du-code-source-dopencomp-4-ans/" rel="bookmark">Évolution du code source d&rsquo;Opencomp (4 ans)</a></h2>

			<div class="entry-meta">
				<span class="meta-prep meta-prep-author">Publié le</span> <a href="https://blog.opencomp.fr/2014/12/evolution-du-code-source-dopencomp-4-ans/" title="14 h 56 min" rel="bookmark"><span class="entry-date">11 décembre 2014</span></a> <span class="meta-sep">par</span> <span class="author vcard"><a class="url fn n" href="https://blog.opencomp.fr/author/jtraulle/" title="Afficher tous les articles par Jean Traullé">Jean Traullé</a></span>			</div><!-- .entry-meta -->

				<div class="entry-content">
				<p><span class="embed-youtube" style="text-align:center; display: block;"><iframe class='youtube-player' type='text/html' width='640' height='390' src='https://www.youtube.com/embed/S91AEZxSc6A?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' allowfullscreen='true' style='border:0;'></iframe></span></p>
<p> <a href="https://blog.opencomp.fr/2014/12/evolution-du-code-source-dopencomp-4-ans/#more-632" class="more-link">Continuer la lecture <span class="meta-nav">&rarr;</span></a></p>
							</div><!-- .entry-content -->
	
			<div class="entry-utility">
									<span class="cat-links">
						<span class="entry-utility-prep entry-utility-prep-cat-links">Publié dans</span> <a href="https://blog.opencomp.fr/category/non-classe/" rel="category tag">Non classé</a>					</span>
					<span class="meta-sep">|</span>
													<span class="tag-links">
						<span class="entry-utility-prep entry-utility-prep-tag-links">Marqué avec</span> <a href="https://blog.opencomp.fr/tag/git/" rel="tag">Git</a>, <a href="https://blog.opencomp.fr/tag/gource/" rel="tag">Gource</a>					</span>
					<span class="meta-sep">|</span>
								<span class="comments-link"><a href="https://blog.opencomp.fr/2014/12/evolution-du-code-source-dopencomp-4-ans/#respond">Laisser un commentaire</a></span>
							</div><!-- .entry-utility -->
		</div><!-- #post-## -->

		
	

				<div id="nav-below" class="navigation">
					<div class="nav-previous"><a href="https://blog.opencomp.fr/page/2/" ><span class="meta-nav">&larr;</span> Articles plus anciens</a></div>
					<div class="nav-next"></div>
				</div><!-- #nav-below -->
			</div><!-- #content -->
		</div><!-- #container -->


		<div id="primary" class="widget-area" role="complementary">
			<ul class="xoxo">

<li id="text-3" class="widget-container widget_text">			<div class="textwidget"><a href="https://github.com/jtraulle/opencomp"><img src="http://blog.opencomp.fr/wp-content/uploads/2011/07/freshgenerator.png" /></a></div>
		</li><li id="text-4" class="widget-container widget_text">			<div class="textwidget"><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>
  (adsbygoogle = window.adsbygoogle || []).push({
    google_ad_client: "ca-pub-1451878175219923",
    enable_page_level_ads: true
  });
</script>

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Colonne latérale -->
<ins class="adsbygoogle"
     style="display:inline-block;width:200px;height:200px"
     data-ad-client="ca-pub-1451878175219923"
     data-ad-slot="6868819798"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
		</li><li id="blog_subscription-3" class="widget-container jetpack_subscription_widget"><h3 class="widget-title">S&#039;abonner à ce blog</h3>
			<form action="#" method="post" accept-charset="utf-8" id="subscribe-blog-blog_subscription-3">
				<div id="subscribe-text"><p>Entrez votre adresse de courriel pour vous abonner à ce blog et recevoir une notification lorsque un nouveau message est posté.</p>
</div>					<p id="subscribe-email">
						<label id="jetpack-subscribe-label" for="subscribe-field-blog_subscription-3">
							Adresse e-mail						</label>
						<input type="email" name="email" required="required" class="required" value="" id="subscribe-field-blog_subscription-3" placeholder="Adresse e-mail" />
					</p>

					<p id="subscribe-submit">
						<input type="hidden" name="action" value="subscribe" />
						<input type="hidden" name="source" value="https://blog.opencomp.fr/" />
						<input type="hidden" name="sub-type" value="widget" />
						<input type="hidden" name="redirect_fragment" value="blog_subscription-3" />
												<input type="submit" value="S&#039;abonner" name="jetpack_subscriptions_widget" />
					</p>
							</form>

			<script>
			/*
			Custom functionality for safari and IE
			 */
			(function( d ) {
				// In case the placeholder functionality is available we remove labels
				if ( ( 'placeholder' in d.createElement( 'input' ) ) ) {
					var label = d.querySelector( 'label[for=subscribe-field-blog_subscription-3]' );
						label.style.clip 	 = 'rect(1px, 1px, 1px, 1px)';
						label.style.position = 'absolute';
						label.style.height   = '1px';
						label.style.width    = '1px';
						label.style.overflow = 'hidden';
				}

				// Make sure the email value is filled in before allowing submit
				var form = d.getElementById('subscribe-blog-blog_subscription-3'),
					input = d.getElementById('subscribe-field-blog_subscription-3'),
					handler = function( event ) {
						if ( '' === input.value ) {
							input.focus();

							if ( event.preventDefault ){
								event.preventDefault();
							}

							return false;
						}
					};

				if ( window.addEventListener ) {
					form.addEventListener( 'submit', handler, false );
				} else {
					form.attachEvent( 'onsubmit', handler );
				}
			})( document );
			</script>
				
</li><li id="archives-2" class="widget-container widget_archive"><h3 class="widget-title">Archives</h3>		<ul>
			<li><a href='https://blog.opencomp.fr/2017/08/'>août 2017</a></li>
	<li><a href='https://blog.opencomp.fr/2016/07/'>juillet 2016</a></li>
	<li><a href='https://blog.opencomp.fr/2016/04/'>avril 2016</a></li>
	<li><a href='https://blog.opencomp.fr/2016/02/'>février 2016</a></li>
	<li><a href='https://blog.opencomp.fr/2015/05/'>mai 2015</a></li>
	<li><a href='https://blog.opencomp.fr/2015/02/'>février 2015</a></li>
	<li><a href='https://blog.opencomp.fr/2015/01/'>janvier 2015</a></li>
	<li><a href='https://blog.opencomp.fr/2014/12/'>décembre 2014</a></li>
	<li><a href='https://blog.opencomp.fr/2014/02/'>février 2014</a></li>
	<li><a href='https://blog.opencomp.fr/2013/12/'>décembre 2013</a></li>
	<li><a href='https://blog.opencomp.fr/2013/11/'>novembre 2013</a></li>
	<li><a href='https://blog.opencomp.fr/2013/07/'>juillet 2013</a></li>
	<li><a href='https://blog.opencomp.fr/2013/04/'>avril 2013</a></li>
	<li><a href='https://blog.opencomp.fr/2013/03/'>mars 2013</a></li>
	<li><a href='https://blog.opencomp.fr/2012/12/'>décembre 2012</a></li>
	<li><a href='https://blog.opencomp.fr/2012/09/'>septembre 2012</a></li>
	<li><a href='https://blog.opencomp.fr/2012/08/'>août 2012</a></li>
	<li><a href='https://blog.opencomp.fr/2012/07/'>juillet 2012</a></li>
	<li><a href='https://blog.opencomp.fr/2011/12/'>décembre 2011</a></li>
	<li><a href='https://blog.opencomp.fr/2011/08/'>août 2011</a></li>
	<li><a href='https://blog.opencomp.fr/2011/07/'>juillet 2011</a></li>
	<li><a href='https://blog.opencomp.fr/2011/04/'>avril 2011</a></li>
	<li><a href='https://blog.opencomp.fr/2011/03/'>mars 2011</a></li>
	<li><a href='https://blog.opencomp.fr/2011/02/'>février 2011</a></li>
	<li><a href='https://blog.opencomp.fr/2011/01/'>janvier 2011</a></li>
		</ul>
		</li><li id="search-2" class="widget-container widget_search"><h3 class="widget-title">Rechercher dans ce blog</h3><form role="search" method="get" id="searchform" class="searchform" action="https://blog.opencomp.fr/">
				<div>
					<label class="screen-reader-text" for="s">Rechercher :</label>
					<input type="text" value="" name="s" id="s" />
					<input type="submit" id="searchsubmit" value="Rechercher" />
				</div>
			</form></li><li id="tag_cloud-3" class="widget-container widget_tag_cloud"><h3 class="widget-title">Nuage de tags</h3><div class="tagcloud"><a href="https://blog.opencomp.fr/tag/astuces/" class="tag-cloud-link tag-link-20 tag-link-position-1" style="font-size: 8pt;" aria-label="astuces (1 élément)">astuces</a>
<a href="https://blog.opencomp.fr/tag/backup/" class="tag-cloud-link tag-link-75 tag-link-position-2" style="font-size: 11.6pt;" aria-label="backup (2 éléments)">backup</a>
<a href="https://blog.opencomp.fr/tag/base-de-donnees/" class="tag-cloud-link tag-link-3 tag-link-position-3" style="font-size: 14pt;" aria-label="base de données (3 éléments)">base de données</a>
<a href="https://blog.opencomp.fr/tag/beforevalidate/" class="tag-cloud-link tag-link-29 tag-link-position-4" style="font-size: 8pt;" aria-label="beforeValidate (1 élément)">beforeValidate</a>
<a href="https://blog.opencomp.fr/tag/bower/" class="tag-cloud-link tag-link-40 tag-link-position-5" style="font-size: 8pt;" aria-label="bower (1 élément)">bower</a>
<a href="https://blog.opencomp.fr/tag/cakephp/" class="tag-cloud-link tag-link-4 tag-link-position-6" style="font-size: 22pt;" aria-label="CakePHP (9 éléments)">CakePHP</a>
<a href="https://blog.opencomp.fr/tag/callback/" class="tag-cloud-link tag-link-28 tag-link-position-7" style="font-size: 11.6pt;" aria-label="Callback (2 éléments)">Callback</a>
<a href="https://blog.opencomp.fr/tag/ci/" class="tag-cloud-link tag-link-48 tag-link-position-8" style="font-size: 11.6pt;" aria-label="CI (2 éléments)">CI</a>
<a href="https://blog.opencomp.fr/tag/composer/" class="tag-cloud-link tag-link-39 tag-link-position-9" style="font-size: 14pt;" aria-label="composer (3 éléments)">composer</a>
<a href="https://blog.opencomp.fr/tag/conception/" class="tag-cloud-link tag-link-5 tag-link-position-10" style="font-size: 17.6pt;" aria-label="conception (5 éléments)">conception</a>
<a href="https://blog.opencomp.fr/tag/contraintes/" class="tag-cloud-link tag-link-23 tag-link-position-11" style="font-size: 8pt;" aria-label="contraintes (1 élément)">contraintes</a>
<a href="https://blog.opencomp.fr/tag/controleurs/" class="tag-cloud-link tag-link-21 tag-link-position-12" style="font-size: 8pt;" aria-label="contrôleurs (1 élément)">contrôleurs</a>
<a href="https://blog.opencomp.fr/tag/conventions/" class="tag-cloud-link tag-link-6 tag-link-position-13" style="font-size: 11.6pt;" aria-label="conventions (2 éléments)">conventions</a>
<a href="https://blog.opencomp.fr/tag/depending-in/" class="tag-cloud-link tag-link-44 tag-link-position-14" style="font-size: 8pt;" aria-label="depending.in (1 élément)">depending.in</a>
<a href="https://blog.opencomp.fr/tag/dompdf/" class="tag-cloud-link tag-link-36 tag-link-position-15" style="font-size: 8pt;" aria-label="dompdf (1 élément)">dompdf</a>
<a href="https://blog.opencomp.fr/tag/dependances/" class="tag-cloud-link tag-link-42 tag-link-position-16" style="font-size: 11.6pt;" aria-label="dépendances (2 éléments)">dépendances</a>
<a href="https://blog.opencomp.fr/tag/git/" class="tag-cloud-link tag-link-7 tag-link-position-17" style="font-size: 19pt;" aria-label="Git (6 éléments)">Git</a>
<a href="https://blog.opencomp.fr/tag/github/" class="tag-cloud-link tag-link-8 tag-link-position-18" style="font-size: 11.6pt;" aria-label="Github (2 éléments)">Github</a>
<a href="https://blog.opencomp.fr/tag/git-submodule/" class="tag-cloud-link tag-link-30 tag-link-position-19" style="font-size: 11.6pt;" aria-label="git submodule (2 éléments)">git submodule</a>
<a href="https://blog.opencomp.fr/tag/gource/" class="tag-cloud-link tag-link-50 tag-link-position-20" style="font-size: 8pt;" aria-label="Gource (1 élément)">Gource</a>
<a href="https://blog.opencomp.fr/tag/habtm/" class="tag-cloud-link tag-link-16 tag-link-position-21" style="font-size: 14pt;" aria-label="HABTM (3 éléments)">HABTM</a>
<a href="https://blog.opencomp.fr/tag/jeton-dauthentification/" class="tag-cloud-link tag-link-32 tag-link-position-22" style="font-size: 8pt;" aria-label="jeton d&#039;authentification (1 élément)">jeton d&#039;authentification</a>
<a href="https://blog.opencomp.fr/tag/mcd/" class="tag-cloud-link tag-link-15 tag-link-position-23" style="font-size: 8pt;" aria-label="MCD (1 élément)">MCD</a>
<a href="https://blog.opencomp.fr/tag/mld/" class="tag-cloud-link tag-link-14 tag-link-position-24" style="font-size: 8pt;" aria-label="MLD (1 élément)">MLD</a>
<a href="https://blog.opencomp.fr/tag/model/" class="tag-cloud-link tag-link-38 tag-link-position-25" style="font-size: 11.6pt;" aria-label="model (2 éléments)">model</a>
<a href="https://blog.opencomp.fr/tag/modelisation/" class="tag-cloud-link tag-link-26 tag-link-position-26" style="font-size: 8pt;" aria-label="modélisation (1 élément)">modélisation</a>
<a href="https://blog.opencomp.fr/tag/mysql-workbench/" class="tag-cloud-link tag-link-9 tag-link-position-27" style="font-size: 11.6pt;" aria-label="mysql workbench (2 éléments)">mysql workbench</a>
<a href="https://blog.opencomp.fr/tag/notempty/" class="tag-cloud-link tag-link-27 tag-link-position-28" style="font-size: 8pt;" aria-label="notempty (1 élément)">notempty</a>
<a href="https://blog.opencomp.fr/tag/otp/" class="tag-cloud-link tag-link-34 tag-link-position-29" style="font-size: 8pt;" aria-label="otp (1 élément)">otp</a>
<a href="https://blog.opencomp.fr/tag/parcours/" class="tag-cloud-link tag-link-18 tag-link-position-30" style="font-size: 11.6pt;" aria-label="parcours (2 éléments)">parcours</a>
<a href="https://blog.opencomp.fr/tag/pdf/" class="tag-cloud-link tag-link-35 tag-link-position-31" style="font-size: 8pt;" aria-label="pdf (1 élément)">pdf</a>
<a href="https://blog.opencomp.fr/tag/performances/" class="tag-cloud-link tag-link-56 tag-link-position-32" style="font-size: 11.6pt;" aria-label="Performances (2 éléments)">Performances</a>
<a href="https://blog.opencomp.fr/tag/projet/" class="tag-cloud-link tag-link-19 tag-link-position-33" style="font-size: 16pt;" aria-label="projet (4 éléments)">projet</a>
<a href="https://blog.opencomp.fr/tag/qualite/" class="tag-cloud-link tag-link-49 tag-link-position-34" style="font-size: 11.6pt;" aria-label="Qualité (2 éléments)">Qualité</a>
<a href="https://blog.opencomp.fr/tag/scutinizer/" class="tag-cloud-link tag-link-47 tag-link-position-35" style="font-size: 8pt;" aria-label="Scutinizer (1 élément)">Scutinizer</a>
<a href="https://blog.opencomp.fr/tag/sensiolabs/" class="tag-cloud-link tag-link-46 tag-link-position-36" style="font-size: 8pt;" aria-label="SensioLabs (1 élément)">SensioLabs</a>
<a href="https://blog.opencomp.fr/tag/specifications-techniques/" class="tag-cloud-link tag-link-22 tag-link-position-37" style="font-size: 8pt;" aria-label="spécifications techniques (1 élément)">spécifications techniques</a>
<a href="https://blog.opencomp.fr/tag/sql/" class="tag-cloud-link tag-link-10 tag-link-position-38" style="font-size: 14pt;" aria-label="sql (3 éléments)">sql</a>
<a href="https://blog.opencomp.fr/tag/token/" class="tag-cloud-link tag-link-31 tag-link-position-39" style="font-size: 8pt;" aria-label="token (1 élément)">token</a>
<a href="https://blog.opencomp.fr/tag/validation/" class="tag-cloud-link tag-link-37 tag-link-position-40" style="font-size: 8pt;" aria-label="validation (1 élément)">validation</a>
<a href="https://blog.opencomp.fr/tag/versioneye/" class="tag-cloud-link tag-link-41 tag-link-position-41" style="font-size: 11.6pt;" aria-label="versioneye (2 éléments)">versioneye</a>
<a href="https://blog.opencomp.fr/tag/versioning/" class="tag-cloud-link tag-link-11 tag-link-position-42" style="font-size: 16pt;" aria-label="versioning (4 éléments)">versioning</a>
<a href="https://blog.opencomp.fr/tag/xampp/" class="tag-cloud-link tag-link-12 tag-link-position-43" style="font-size: 8pt;" aria-label="xampp (1 élément)">xampp</a>
<a href="https://blog.opencomp.fr/tag/yubikey/" class="tag-cloud-link tag-link-33 tag-link-position-44" style="font-size: 8pt;" aria-label="yubikey (1 élément)">yubikey</a>
<a href="https://blog.opencomp.fr/tag/evolution/" class="tag-cloud-link tag-link-17 tag-link-position-45" style="font-size: 14pt;" aria-label="évolution (3 éléments)">évolution</a></div>
</li><li id="meta-2" class="widget-container widget_meta"><h3 class="widget-title">Méta</h3>			<ul>
						<li><a rel="nofollow" href="https://blog.opencomp.fr/wp-login.php">Connexion</a></li>
			<li><a href="https://blog.opencomp.fr/feed/">Flux <abbr title="Really Simple Syndication">RSS</abbr> des articles</a></li>
			<li><a href="https://blog.opencomp.fr/comments/feed/"><abbr title="Really Simple Syndication">RSS</abbr> des commentaires</a></li>
			<li><a href="https://wpfr.net" title="Propulsé par WordPress, plate-forme de publication personnelle sémantique de pointe.">Site de WordPress-FR</a></li>			</ul>
			</li>			</ul>
		</div><!-- #primary .widget-area -->

	</div><!-- #main -->

	<div id="footer" role="contentinfo">
		<div id="colophon">



			<div id="site-info">
				<a href="https://blog.opencomp.fr/" title="Blog Opencomp" rel="home">
					Blog Opencomp				</a>
			</div><!-- #site-info -->

			<div id="site-generator">
								<a href="https://wordpress.org/" title="Plate-forme de publication personnelle à la pointe de la sémantique">Fièrement propulsé par WordPress</a>
			</div><!-- #site-generator -->

		</div><!-- #colophon -->
	</div><!-- #footer -->

</div><!-- #wrapper -->

<div id="cookie-law-info-bar"><span>Ce site utilise des cookies dans un but de mesure d'audience. Vous pouvez vous y opposer en suivant le lien ci-contre. <a href="#" id="cookie_action_close_header"  class="large cli-plugin-button cli-plugin-main-button" >Accepter</a> <a href="https://tools.google.com/dlpage/gaoptout?hl=fr" id="CONSTANT_OPEN_URL" target="_blank"  class="cli-plugin-main-link"  >Désactiver la collecte de statistiques</a></span></div>		
		<script type="text/javascript">
			//<![CDATA[
			jQuery(document).ready(function() {
				cli_show_cookiebar({
					settings: '{"animate_speed_hide":"500","animate_speed_show":"500","background":"#fff","border":"#444","border_on":true,"button_1_button_colour":"#000000","button_1_button_hover":"#000000","button_1_link_colour":"#fff","button_1_as_button":true,"button_2_button_colour":"#dd3333","button_2_button_hover":"#b12929","button_2_link_colour":"#000000","button_2_as_button":false,"font_family":"inherit","header_fix":false,"notify_animate_hide":true,"notify_animate_show":false,"notify_div_id":"#cookie-law-info-bar","notify_position_horizontal":"right","notify_position_vertical":"bottom","scroll_close":false,"scroll_close_reload":false,"showagain_tab":false,"showagain_background":"#fff","showagain_border":"#000","showagain_div_id":"#cookie-law-info-again","showagain_x_position":"100px","text":"#000","show_once_yn":false,"show_once":"10000"}'
				});
			});
			//]]>
		</script>
		
			<div style="display:none">
	</div>
<!--[if lte IE 8]>
<link rel='stylesheet' id='jetpack-carousel-ie8fix-css'  href='https://blog.opencomp.fr/wp-content/plugins/jetpack/modules/carousel/jetpack-carousel-ie8fix.css?ver=20121024' type='text/css' media='all' />
<![endif]-->
<script type='text/javascript' src='https://s0.wp.com/wp-content/js/devicepx-jetpack.js?ver=201734'></script>
<script type='text/javascript' src='https://secure.gravatar.com/js/gprofiles.js?ver=2017Augaa'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var WPGroHo = {"my_hash":""};
/* ]]> */
</script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/jetpack/modules/wpgroho.js?ver=4.8.1'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/jetpack/modules/likes/queuehandler.js?ver=5.2.1'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-core.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-clike.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-bash.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-c.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-javascript.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-coffeescript.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-cpp.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-csharp.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-css.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-gherkin.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-groovy.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-http.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-java.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-markup.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-php.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-php-extras.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-python.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-ruby.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-scss.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/components/prism-sql.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/plugins/line-highlight/prism-line-highlight.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/prism-wp/libs/prism/plugins/line-numbers/prism-line-numbers.min.js?ver=1.0.0'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-includes/js/wp-embed.min.js?ver=4.8.1'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/notice-boxes-with-shortcodes/collapsable.js?ver=4.8.1'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/jetpack/_inc/spin.js?ver=1.3'></script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/jetpack/_inc/jquery.spin.js?ver=1.3'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"fr","ajaxurl":"https:\/\/blog.opencomp.fr\/wp-admin\/admin-ajax.php","nonce":"6a828c9b9d","display_exif":"1","display_geo":"1","single_image_gallery":"1","single_image_gallery_media_file":"","background_color":"white","comment":"Commentaire","post_comment":"Laisser un commentaire","write_comment":"\u00c9crire un commentaire...","loading_comments":"Chargement des commentaires\u2026","download_original":"Afficher dans sa taille r\u00e9elle <span class=\"photo-size\">{0}<span class=\"photo-size-times\">\u00d7<\/span>{1}<\/span>.","no_comment_text":"Veuillez ajouter du contenu \u00e0 votre commentaire.","no_comment_email":"Merci de renseigner une adresse e-mail.","no_comment_author":"Merci de renseigner votre nom.","comment_post_error":"Une erreur s'est produite \u00e0 la publication de votre commentaire. Veuillez nous en excuser, et r\u00e9essayer dans quelques instants.","comment_approved":"Votre commentaire a \u00e9t\u00e9 approuv\u00e9.","comment_unapproved":"Votre commentaire est en attente de validation.","camera":"Appareil photo","aperture":"Ouverture","shutter_speed":"Vitesse d'obturation","focal_length":"Focale","copyright":"Copyright","comment_registration":"0","require_name_email":"1","login_url":"https:\/\/blog.opencomp.fr\/wp-login.php?redirect_to=https%3A%2F%2Fblog.opencomp.fr%2F2016%2F02%2Fproxmox-ve-vzdump-sauvegarde-nfs-danger%2F","blog_id":"1","meta_data":["camera","aperture","shutter_speed","focal_length","copyright"],"local_comments_commenting_as":"<fieldset><label for=\"email\">E-mail (Requis)<\/label> <input type=\"text\" name=\"email\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-email-field\" \/><\/fieldset><fieldset><label for=\"author\">Nom (Requis)<\/label> <input type=\"text\" name=\"author\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-author-field\" \/><\/fieldset><fieldset><label for=\"url\">Site web<\/label> <input type=\"text\" name=\"url\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-url-field\" \/><\/fieldset>"};
/* ]]> */
</script>
<script type='text/javascript' src='https://blog.opencomp.fr/wp-content/plugins/jetpack/modules/carousel/jetpack-carousel.js?ver=20170209'></script>
<script type='text/javascript' src='https://stats.wp.com/e-201734.js' async defer></script>
<script type='text/javascript'>
	_stq = window._stq || [];
	_stq.push([ 'view', {v:'ext',j:'1:5.2.1',blog:'22573621',post:'0',tz:'1',srv:'blog.opencomp.fr'} ]);
	_stq.push([ 'clickTrackerInit', '22573621', '0' ]);
</script>
</body>
</html>
