<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LoïcG &#187; mysql</title>
	<atom:link href="http://blog.loicg.net/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.loicg.net</link>
	<description>Carnet d&#039;un développeur web</description>
	<lastBuildDate>Sat, 04 Feb 2012 17:31:19 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Projet NAS homemade, installation et configuration</title>
		<link>http://blog.loicg.net/tech/projet-nas-maison-installation-configuration/</link>
		<comments>http://blog.loicg.net/tech/projet-nas-maison-installation-configuration/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 13:49:30 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.loicg.net/?p=1316</guid>
		<description><![CDATA[Il est maintenant tant de te présenter la configuration logicielle de ce petit NAS&#8230; Et tu vas voir, il n&#8217;a de NAS que le nom car il va gérer : Serveur Samba (pour assurer le partage en réseau, la fonction primaire du NAS) Serveur Apache/PHP/MySQL (certains NAS le font) Serveur SVN (aucun NAS ne le [...]]]></description>
			<content:encoded><![CDATA[<p>Il est maintenant tant de te présenter la configuration logicielle de ce petit NAS&#8230;</p>
<p><a href="http://www.flickr.com/photos/kevindean/3727399788/"><img class="alignright size-full wp-image-1361" title="Stockage" src="http://blog.loicg.net/wp-content/uploads/2011/02/3727399788_4e0a8331c5_m.jpg" alt="" width="240" height="240" /></a></p>
<h2><span style="font-weight: normal; font-size: 13px;">Et tu vas voir, il n&#8217;a de NAS que le nom car il va gérer :</span></h2>
<ul>
<li>Serveur Samba (pour assurer le partage en réseau, la fonction primaire du NAS)</li>
<li>Serveur Apache/PHP/MySQL (certains NAS le font)</li>
<li>Serveur SVN (aucun NAS ne le fait, ça devient intéressant)</li>
<li>Serveur UPNP Av (pour regarder mes films de vacances sur la Freebox HD)</li>
</ul>
<p><span id="more-1316"></span></p>
<h2>Système d&#8217;exploitation :</h2>
<p>Je suis &laquo;&nbsp;fan&nbsp;&raquo; (j&#8217;apprécie, disons&#8230;) Ubuntu, et ce depuis la version 6.10.<br />
Ainsi, c&#8217;est cette distro que j&#8217;ai choisis, enfin la version 10.10, en Desktop car cette machine peut être amenée à me servir de MediaCenter.<br />
L&#8217;installation est &laquo;&nbsp;normale&nbsp;&raquo;, j&#8217;ai simplement ajouté htop et bloqué les processus dont je n&#8217;ai pas besoin (bluetooth, accessibilité, etc &#8230;) qui sont activés par défaut et se lancent au démarrage.</p>
<h2>Le partage Samba :</h2>
<p>Attention ! Là, c&#8217;est MEGA-technique !<br />
Le paquet est déjà dispo sur Ubuntu Desktop, reste juste à aller partager le(s) dossier(s) souhaités <img src='http://blog.loicg.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>Ok pour les puristes de la console, j&#8217;aurai pu montrer comment tout ceci se configure dans le smb.conf, mais non !</em></p>
<p><em><br />
</em></p>
<h2>Serveur LAMP :</h2>
<p>Comme je n&#8217;ai pas besoin de m&#8217;embêter à configurer un serveur web aux p&#8217;tits oignons, je suis directement passé par le paquet magique disponible depuis quelques versions d&#8217;Ubuntu.</p>
<p>Ce serveur me permettra d&#8217;utiliser diverses applications codées en PHP (donc USVN), mais également à tester certaines applications web que je développe.</p>
<pre class="brush: bash; title: ; notranslate">sudo apt-get install lamp-server^</pre>
<p>J&#8217;en avais parlé il y a peu&#8230; Mais si, lecteur, <a href="http://blog.loicg.net/how-to/installation-lamp-ubuntu-maverick-meerkat/">souviens-toi</a> <img src='http://blog.loicg.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h2>Serveur SVN :</h2>
<p>J&#8217;ai besoin d&#8217;un serveur SVN pour m&#8217;assurer de la sauvegarde régulière de mes différents développement.<br />
Je ne partage que peut de ressources que j&#8217;y entrepose, mais la possibilité d&#8217;ouvrir certains accès risque de me servir (ne serait-ce que pour partager certaines librairies avec des amis ou collègues).</p>
<p>J&#8217;ai rédigé un tuto récemment pour <a href="http://blog.loicg.net/how-to/installation-usvn-version-1/">installer SVN couplé à USVN</a> (une interface web qui permet de gérer ses dépôts, ses utilisateurs et leurs groupes).</p>
<h2>Serveur UPNP A/V et DLNA :</h2>
<p>Pour me permettre de visualiser mes films de vacances (ahem) sur ma Freebox HD, j&#8217;ai configuré un serveur UPNP nommé uShare.<br />
uShare est un serveur multimedia qui permet de diffuser ses vidéos sur un réseau local. Ainsi, des appareils tels que la FreeboxHD, la PS3 ou la Xbox 360 pourront accéder à tout le contenu.</p>
<p>Sur Ubuntu, il existe un paquet uShare, pour l&#8217;installer il suffit donc de saisir :</p>
<pre class="brush: bash; title: ; notranslate">sudo apt-get install ushare</pre>
<p>Ensuite, il faut modifier le fichier de config pour :</p>
<pre class="brush: bash; title: ; notranslate">sudo nano /etc/ushare.conf</pre>
<p>Tu y inscris :</p>
<ol>
<li>Le nom à donner à ton serveur (USHARE_NAME)</li>
<li>Le ou les dossiers à partager (USHARE_DIR)</li>
<li>&#8230;.</li>
<li>Profit !</li>
</ol>
<p>Ensuite, on lance le serveur uShare :</p>
<pre class="brush: bash; title: ; notranslate">sudo /etc/init.d/ushare start</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.loicg.net/tech/projet-nas-maison-installation-configuration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La veille du week-end (sixième)</title>
		<link>http://blog.loicg.net/autour-dun-cafe/la-veille-du-week-end-sixieme/</link>
		<comments>http://blog.loicg.net/autour-dun-cafe/la-veille-du-week-end-sixieme/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 08:01:31 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[Au comptoir]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[veille]]></category>

		<guid isPermaLink="false">http://blog.loicg.net/?p=1141</guid>
		<description><![CDATA[Bienvenue dans cette sixième édition de la veille du week-end. Une semaine bien riche en lecture avec notamment beaucoup de SEO, avec quelques études et astuces pour Google Instant, des outils et techniques pour prévoir et suivre ses actions d&#8217;optimisation. J&#8217;ai également sélectionné des articles portant sur l&#8217;intégration, le HTML5 et les plateformes mobiles (principalement [...]]]></description>
			<content:encoded><![CDATA[<p>Bienvenue dans cette sixième édition de la veille du week-end. Une semaine bien riche en lecture avec notamment beaucoup de SEO, avec quelques études et astuces pour Google Instant, des outils et techniques pour prévoir et suivre ses actions d&#8217;optimisation.</p>
<p>J&#8217;ai également sélectionné des articles portant sur l&#8217;intégration, le HTML5 et les plateformes mobiles (principalement comment adapter simplement un site existant aux plateformes mobiles tactiles).<span id="more-1141"></span></p>
<h2>SEO :</h2>
<ul>
<li><a href="http://www.location3.com/local-search-tips">Un excellent livre blanc sur la recherche locale</a>: via <a href="http://twitter.com/randfish">@randfish</a></li>
<li><a href="http://www.toprankblog.com/2010/10/5-social-media-seo-analytics-tools/">5 outils SEO et d&#8217;analyse des social media</a> : via <a href="http://twitter.com/LaFermeDuWeb">@LaFermeDuWeb</a></li>
<li><a href="http://lemusclereferencement.com/2010/11/16/les-4-piliers-du-referencement/">Les 4 piliers du referencement</a> selon <a href="http://twitter.com/seomuscle">@seomuscle</a></li>
<li><a href="http://www.cafe-referencement.com/actu-seo/google-instant-preview-changements-a-prevoir-353">Google Instant Preview : tour d’horizon des changements à prévoir</a> : via <a href="http://twitter.com/largow">@largow</a></li>
<li><a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;answer=35304">Supprimer le snippet &amp; l&#8217;instant Preview de Google</a> : via <a href="http://twitter.com/Sventovit">@Sventovit</a></li>
<li><a href="http://css4design.com/composes-html-logo-baseline-potentiel-seo">8 composés HTML pour le logo et la « baseline » et leur potentiel SEO</a> (avec du <a href="http://twitter.com/dsampaolo">@dsampaolo</a> dedans) : via <a href="http://twitter.com/br1o">@br1o</a></li>
<li><a href="http://www.seochat.com/c/a/Search-Engine-Optimization-Help/Website-Content-Planning-Techniques-for-Search-Engine-Optimization/">Website Content Planning Techniques for Search Engine Optimization </a>: via <a href="http://twitter.com/VeilleSEO">@VeilleSEO</a></li>
<li><a href="http://www.ludovicpassamonti.com/archive/2010/10/17/comment-reperer-les-voleurs-de-contenu-fairshare.html">Fairshare, l&#8217;outil gratuit qui détecte les copieurs de contenu</a> : via <a href="http://twitter.com/largow">@largow</a></li>
</ul>
<h2>Intégration et expérience utilisateur :</h2>
<ul>
<li><a href="http://woorkup.com/2010/08/25/10-useful-frameworks-to-develop-html-based-webapps-for-touch-devices/">10 frameworks pour développer des applications Web en HTML adaptées aux technologies tactiles</a> : via <a href="http://twitter.com/arnaudGuillaume">@arnaudGuillaume</a></li>
<li><a href="http://twitter.com/arnaudGuillaume"></a><a href="http://www.cxpartners.co.uk/rants/html5_seven_predictions_and_tips_for_a_better_ux.htm">HTML5: 7 astuces et conseils</a> pour en tirer le meilleur en matière d&#8217;UX (en Anglais): via <a href="http://twitter.com/smashingmag">@smashingmag</a></li>
<li><a href="http://twitter.com/smashingmag"></a><a href="http://uxmovement.com/design-articles/white-space-over-vertical-bars-for-a-minimalist-navigation">Séparations invisibles ou visibles pour les menus horizontaux ?</a>: via <a href="http://twitter.com/analyse_web">@analyse_web</a></li>
<li><a href="http://twitter.com/analyse_web"></a><a href="http://sahillavingia.com/blog/2010/11/13/optimize-a-website-for-iphone-in-10-minutes/">Optimiser son site pour iPhone en 10min</a> (pour mes outils du lab ou pour murl) : via <a href="http://twitter.com/LegZ">@LegZ</a></li>
<li><a href="http://twitter.com/LegZ"></a><a href="http://www.davidrcole.com/2010/11/make-your-website-mobile-friendly-in-one-night/">Adapter son site aux mobiles en une nuit</a> : via <a href="http://twitter.com/smashingmag">@smashingmag</a></li>
<li><a href="http://twitter.com/smashingmag"></a><a href="http://flowingdata.com/2010/11/16/visualize-this-winning-wikipedia-fundraiser-banners/">Quel slogan marche le mieux pour que Wikipedia récolte des fonds ?</a> (la puissance des mots) : via <a href="http://twitter.com/AbriCoCotier">@AbriCoCotier</a></li>
</ul>
<h2>Développement et technique :</h2>
<ul>
<li><a href="http://jqapi.ru/">Cheat Sheet pour </a><a href="http://jqapi.ru/">jQuery 1.4.4 API </a>: via <a href="http://twitter.com/JavascriptNews">@JavascriptNews</a></li>
<li><a href="http://devcheatsheet.com/">Des Cheat Sheets pour les languages, framework, API, applications&#8230;</a> (tricher saymal, mais c&#8217;est rudement pratique ^^) : via <a href="http://twitter.com/LegZ">@LegZ</a></li>
<li><a href="http://www.mysqlperformanceblog.com/2010/11/16/percona-white-paper-forecasting-mysql-scalability/">Percona publie un petit livre blanc sur la &laquo;&nbsp;scalabilité&nbsp;&raquo; d&#8217;un serveur MySQL </a>: via <a href="http://twitter.com/w_a_s_t_e">@w_a_s_t_e</a></li>
<li><a href="http://sixrevisions.com/wordpress/beginning-wordpress-development-a-look-at-common-functions/">Guide du développeur WordPress (pour le débutants)</a> (Un petit retour aux bases ne me fera pas de mal) : via <a href="http://twitter.com/sixrevisions">@sixrevisions</a></li>
<li><a href="http://minime.elseif.eu/8gq">Démystification de Node.js</a> (je voulais y jeter un oeil, ça tombe bien ^^) : via <a href="http://twitter.com/twevelopers">@twevelopers</a></li>
<li><a href="http://lu.cx/uBli0D">Un patch (pour le kernel Linux) de 200 ligne qui améliore la gestion des tâches lourdes</a></li>
</ul>
<h2>Confort et télétravail :</h2>
<ul>
<li><a href="http://www.youtube.com/watch?v=lxWKD2KtTwc">Le guide du Réveil Ultra Matinal en vidéo !</a>: via <a href="http://twitter.com/fenice">@fenice</a></li>
<li><a href="http://www.commentcamarche.net/news/5853472-le-teletravail-augmenterait-la-productivite-des-employes-de-27">Le télétravail augmenterait la productivité des employés de 27% </a>: via <a href="http://twitter.com/isabellemathieu">@isabellemathieu</a></li>
<li><a href="http://www.lafermeduweb.net/billet/opentok-vos-conversations-videos-directement-sur-votre-site-980.html">OpenTok &#8211; Une librairie / API pour créer facilement des applications vidéos/webcam &#8211; </a>: via <a href="http://twitter.com/LaFermeDuWeb">@LaFermeDuWeb</a></li>
</ul>
<h2>Et pour finir, un peu de détente :</h2>
<ul>
<li><a href="http://www.filmsfix.com/2010/11/15/beyond-black-mesa-bande-annonce-court-metrage-inspire-dhalf-life/">Beyond Black Mesa, le court métrage inspiré de Half Life </a>: via <a href="http://twitter.com/tuxboard">@tuxboard</a></li>
<li><a href="http://www.presse-citron.net/limili-un-shazam-avec-lien-direct-vers-spotify-et-grooveshark?utm_source=feedburner&amp;utm_medium=twitter&amp;utm_campaign=Feed%3A+Pressecitron+%28Presse-citron+-+Le+blog%29">Limili, un Shazam avec lien direct vers Spotify et Grooveshark </a>(malheureusement, il n&#8217;est que sur iOS pour l&#8217;instant &#8230;) : via <a href="http://twitter.com/pressecitron">@pressecitron</a></li>
</ul>
<p>Pour le reste de ma sélection, c&#8217;est <a href="http://lab.loicg.net/twitter_favs/chibani/7/2010-11-12">par ici</a>.</p>
<p>Cet article t&#8217;as plus ? Retrouve chaque semaine la veille du week-end ainsi que mes autres articles grâce à ce <a href="http://feeds.feedburner.com/loicg">fabuleux flux RSS</a> (gratuit et en plus, tu donnes pas ton nom ^^)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loicg.net/autour-dun-cafe/la-veille-du-week-end-sixieme/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La veille du week-end (cinquième)</title>
		<link>http://blog.loicg.net/autour-dun-cafe/la-veille-du-week-end-cinquieme/</link>
		<comments>http://blog.loicg.net/autour-dun-cafe/la-veille-du-week-end-cinquieme/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 12:29:54 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[Au comptoir]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://blog.loicg.net/?p=1122</guid>
		<description><![CDATA[Ce week-end , ma lecture va être laaaargement orientée SEO, ainsi qu&#8217;expérience utilisateur. Au programme, du web design qui prend encore un peu plus d&#8217;ampleur depuis que Google a mis en place les &#171;&#160;previews&#160;&#187;. Du SEO (comme d&#8217;hab) avec des articles tournant autour de l&#8217;audit et la rédaction. Et jQuery qui nous gratifie d&#8217;une nouvelle [...]]]></description>
			<content:encoded><![CDATA[<p>Ce week-end , ma lecture va être laaaargement orientée SEO, ainsi qu&#8217;expérience utilisateur.</p>
<p>Au programme, du web design qui prend encore un peu plus d&#8217;ampleur depuis que Google a mis en place les &laquo;&nbsp;previews&nbsp;&raquo;. Du SEO (comme d&#8217;hab) avec des articles tournant autour de l&#8217;audit et la rédaction.<br />
Et jQuery qui nous gratifie d&#8217;une nouvelle release (peu de temps après la 1.4.3) et la version Mobile du script qui passe en Alpha 2.</p>
<p>Pour finir, quelques applications pour les téléphones Android et une belle extension sociale pour Firefox.</p>
<p><span id="more-1122"></span></p>
<h2>Web-design, expérience utilisateur :</h2>
<ul>
<li><a href="http://css4design.com/apercu-instantane-google-webdesign-referencement-naturel">Le design, c&#8217;est important *aussi* pour le référencement naturel ! </a>: via <a href="http://twitter.com/br1o">@br1o</a></li>
<li><a href="http://www.2803.fr/internet/wtf-the-semantic-web-11334/?utm_source=feedburner&amp;utm_medium=twitter&amp;utm_campaign=Feed%3A+2803+%282803%2C+le+blog%29">#2803 WTF is the semantic web? </a>: via <a href="http://twitter.com/henrilabarre">@henrilabarre</a></li>
<li><a href="http://uxmovement.com/design-articles/why-left-search-buttons-are-faster-for-users?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+uxmovement+%28UXMovement%29&amp;utm_content=Google+Reader">Mettre le bouton de recherche à gauche du champ serait plus rapide pour l&#8217;utilisateur</a>: via <a href="http://twitter.com/analyse_web">@analyse_web</a></li>
<li><a href="http://www.secrets2moteurs.com/10-regles-ergonomie-web.html">10 règles/astuces d’ergonomie de site web </a>: via <a href="http://twitter.com/VeilleSEO">@VeilleSEO</a></li>
<li><a href="http://www.ergonomie-iphone.com/experience-utilisateur-de-liphone-13-etudes-gratuites/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+ergonomie-iphone+%28Ergonomie+iPhone%29&amp;utm_content=Google+Reader">Expérience utilisateur de l’iPhone : 13 études gratuites &#8211; Ergonomie iPhone </a>: via <a href="http://twitter.com/analyse_web">@analyse_web</a></li>
<li><a href="http://www.abtests.com/test/181001/landing-for-soocial">augmenter le taux de conversion d&#8217;un signup avec 2 mots &#8230; : </a>: via <a href="http://twitter.com/theystolemynick">@theystolemynick</a></li>
</ul>
<p><a href="http://twitter.com/henrilabarre"></a></p>
<h2>Javascript (et jQuery) :</h2>
<ul>
<li><a href="http://www.steamdev.com/imgr/">IMGr &#8211; Un plugin jQuery pour arrondir les angles (Compatible IE6+) </a>: via <a href="http://twitter.com/LaFermeDuWeb">@LaFermeDuWeb</a></li>
<li><a href="http://blog.jquery.com/2010/11/11/jquery-1-4-4-release-notes/">jQuery 1.4.4 Released: </a>: via <a href="http://twitter.com/jeresig">@jeresig</a></li>
<li><a href="http://jquerymobile.com/2010/11/jquery-mobile-alpha-2-released/">jQuery Mobile 1.0 Alpha 2 Released: </a>: via <a href="http://twitter.com/jeresig">@jeresig</a></li>
</ul>
<h2>Technique et développement :</h2>
<ul>
<li><a href="http://www.mysqlperformanceblog.com/2010/11/08/implementing-parallel-replication-in-mysql/">Percona développe la réplication MySQL parallèle (le simple thread actuel est une limitation importante) </a>: via <a href="http://twitter.com/w_a_s_t_e">@w_a_s_t_e</a></li>
<li><a href="http://www.slideshare.net/ubermuda/m-5725576">Présentation sur git</a>, présentée au Forum PHP : via <a href="http://twitter.com/ubermuda">@ubermuda</a></li>
</ul>
<h2>SEO :</h2>
<ul>
<li><a href="http://searchengineland.com/25-super-common-seo-mistakes-51888">25 erreurs courantes en SEO: (en)</a> : via <a href="http://twitter.com/LaFermeDuWeb">@LaFermeDuWeb</a></li>
<li><a href="http://i.imgur.com/0uHvw.gif">Twitter pretty clearly influencing rankings &#8211; - 0 links so far, but 100s of tweets</a> : via <a href="http://twitter.com/randfish">@randfish</a></li>
<li>Google tente d&#8217;améliorer <a href="http://googlewebmastercentral.blogspot.com/2010/11/what-feeling-even-better-indexing-of.html">l&#8217;indexation de Flash</a>: via <a href="http://twitter.com/GoogleWebmaster">@GoogleWebmaster</a></li>
<li><a href="http://www.wikio.fr/info?id=227723987">Le SEO pour les développeurs (Référencement, design et Cie) </a>: via <a href="http://twitter.com/VeilleSEO">@VeilleSEO</a></li>
<li><a href="http://www.jambonbuzz.com/audit-seo-de-site">Audit SEO de site </a>: via <a href="http://twitter.com/Sventovit">@Sventovit</a></li>
<li><a href="http://www.secrets2moteurs.com/decouvrez-chaque-semaine-un-nouveau-fond-decran-seo.html">Découvrez chaque semaine un nouveau fond d’écran SEO </a>: via <a href="http://twitter.com/VeilleSEO">@VeilleSEO</a></li>
<li><a href="http://oseox.fr/blog/index.php/897-processus-test-optimisation">Comment mener un processus de test d&#8217;optimisation comme un pro ! </a>: via <a href="http://twitter.com/oseox">@oseox</a></li>
<li><a href="http://dotpress.fr/ecrire-un-communique-de-presse">Comment écrire un communiqué de presse efficace </a>: via <a href="http://twitter.com/br1o">@br1o</a></li>
<li><a href="http://www.kubx.fr/seo-booster-son-site-grace-a-ses-membres-584/"> Booster son site grace à ses membres </a>: via <a href="http://twitter.com/EdouardPoirson">@EdouardPoirson</a></li>
<li><a href="http://www.seochat.com/c/a/Search-Engine-Spiders-Help/Search-Engine-Spiders-Why-Dont-They-Crawl-My-Site/">Search Engine Spiders: Why Don`t They Crawl My Site? </a>: via <a href="http://twitter.com/VeilleSEO">@VeilleSEO</a></li>
</ul>
<h2>Android :</h2>
<ul>
<li><a href="http://lu.cx/yghi0D"> Une sélection de 30 applications pour Android</a> (don plein d&#8217;utilitaires) : via <a href="http://twitter.com/chibani">@chibani</a></li>
</ul>
<h2>A essayer :</h2>
<ul>
<li><a href="http://www.presse-citron.net/partagez-des-liens-sur-facebook-twitter-et-gmail-facilement-avec-lextension-f1-pour-firefox?utm_source=feedburner&amp;utm_medium=twitter&amp;utm_campaign=Feed%3A+Pressecitron+%28Presse-citron+-+Le+blog%29">L&#8217;extension F1 pour Firefox </a> pour partager facilement des liens et des infos sur les réseaux sociaux: via <a href="http://twitter.com/pressecitron">@pressecitron</a></li>
</ul>
<p>Et comme d&#8217;habitude cher lecteur, tu peux retrouver tous mes <a href="http://lab.loicg.net/twitter_favs/chibani/7/2010-11-06">favoris Twitter de la semaine</a>.</p>
<p>Tu peux également retrouver chaque semaine la veille du week-end ainsi que mes autres articles grâce à ce <a href="http://feeds.feedburner.com/loicg">fabuleux flux RSS</a> (Chuck Norris lui-même le lit &#8230; si si &#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loicg.net/autour-dun-cafe/la-veille-du-week-end-cinquieme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installer rapidement un serveur LAMP sur Ubuntu 10.10</title>
		<link>http://blog.loicg.net/how-to/installation-lamp-ubuntu-maverick-meerkat/</link>
		<comments>http://blog.loicg.net/how-to/installation-lamp-ubuntu-maverick-meerkat/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 14:43:44 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.loicg.net/?p=1082</guid>
		<description><![CDATA[Il est indispensable pour un développeur Web (et PHP) d&#8217;avoir un serveur LAMP de développement (le serveur étant bien souvent la machine du développeur ^^). Pour se configurer rapidement un serveur LAMP sur Ubuntu 10.10 (alias Maverick Meerkat), on peut saisir la ligne de commande suivante : (Attention, l&#8217;accent circonflexe en fin de ligne n&#8217;est [...]]]></description>
			<content:encoded><![CDATA[<p>Il est indispensable pour un développeur Web (et PHP) d&#8217;avoir un serveur LAMP de développement (le serveur étant bien souvent la machine du développeur ^^).</p>
<p>Pour se configurer rapidement un serveur LAMP sur Ubuntu 10.10 (alias <a title="Découvrez Ubuntu 10.10 (Maverick Meerkat)" href="http://www.tux-planet.fr/ubuntu-10-10-maverick-meerkat/">Maverick Meerkat</a>), on peut saisir la ligne de commande suivante :</p>
<pre class="brush: bash; title: ; notranslate">sudo apt-get install lamp-server^</pre>
<p><span id="more-1082"></span></p>
<p>(Attention, l&#8217;accent circonflexe en fin de ligne n&#8217;est pas une erreur, il fait bien partie du nom du paquet)</p>
<p>Ainsi, on se retrouve avec Apache 2, PHP 5.3, MySQL 5.1 ainsi que SQLite et PERL.</p>
<p>Il ne reste plus qu&#8217;à installer PHPMyAdmin et l&#8217;installation sera complète :</p>
<pre class="brush: bash; title: ; notranslate">sudo apt-get install phpmyadmin</pre>
<p>NB : le paquet &laquo;&nbsp;lamp-server^&nbsp;&raquo; est disponible depuis <a href="http://blog.loicg.net/how-to/installation-lamp-ubuntu-lucid-lynx/">Ubuntu 10.04</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loicg.net/how-to/installation-lamp-ubuntu-maverick-meerkat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Négocier avec une grosse jointure MySQL</title>
		<link>http://blog.loicg.net/webdev/optimisation-jointure-lef-mysql/</link>
		<comments>http://blog.loicg.net/webdev/optimisation-jointure-lef-mysql/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 14:05:20 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[murl]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://blog.loicg.net/?p=1072</guid>
		<description><![CDATA[Récemment, j&#8217;ai ajouté un antispam sur murl.fr. Celui-ci est assez rudimentaire et se base sur un blacklistage de domaines (ou sous-domaines). Ainsi, je peux filtrer les urls à leur création, ainsi qu&#8217;à leur affichage. Sur murl, il existe une page qui liste les derniers liens créés et le &#171;&#160;top 10&#8243; (de clics) de la journée. [...]]]></description>
			<content:encoded><![CDATA[<p>Récemment, j&#8217;ai ajouté un <a href="http://blog.loicg.net/murl/blacklist-mur/">antispam sur murl.fr</a>. Celui-ci est assez rudimentaire et se base sur un blacklistage de domaines (ou sous-domaines).<br />
Ainsi, je peux filtrer les urls à leur création, ainsi qu&#8217;à leur affichage.</p>
<p>Sur <a href="http://murl.fr/" target="_blank">murl</a>, il existe une page qui liste les derniers liens créés et le &laquo;&nbsp;top 10&#8243; (de clics) de la journée. Les requêtes qui chargent les liens sur cette pages ont donc été modifiées pour intégrer la blacklist.<span id="more-1072"></span></p>
<p>Voici une de ces requêtes :</p>
<pre class="brush: sql; title: ; notranslate">SELECT lu.id, SUM( ls.clics ) AS cliclic
    FROM lil_stats ls
    INNER JOIN lil_urls lu
        ON ls.id = lu.id
    LEFT JOIN lil_domain_blacklist ldb1
        ON (ldb1.domain = lu.domain OR ldb1.domain = lu.subdomain)
        AND ldb1.b_display =1
WHERE ls.date=&quot;2010-10-31&quot;
    AND ldb1.id IS NULL
GROUP BY lu.id
ORDER BY cliclic DESC
LIMIT 0 , 10</pre>
<p>Cette requête fonctionnait très bien quand la table lil_domain_blacklist était petite (au début, elle faisait moins de 100 lignes&#8230;)</p>
<p>Puis, j&#8217;ai importé un énorme fichier de domaines reconnus comme spammeurs. Ce fichier comportait environ 150000 entrées, et là, ma requête ne passait plus et finissait par bloquer le serveur.</p>
<p>En faisant un explain de cette requête, on remarque que la table lil_domain_blacklist est analysée en entier, et qu&#8217;elle ne fait appel à aucun index&#8230;</p>
<p><a href="http://blog.loicg.net/wp-content/uploads/2010/10/murl_1288531203376.png"><img class="aligncenter size-medium wp-image-1074" title="Ancienne requête MySQL" src="http://blog.loicg.net/wp-content/uploads/2010/10/murl_1288531203376-300x29.png" alt="" width="300" height="29" /></a></p>
<p>J&#8217;ai donc décidé de changer les choses (en même temps, je n&#8217;avais pas trop le choix&#8230;), en séparant la jointure sur la table incriminée en deux jointures.</p>
<p>Voici la nouvelle requête :</p>
<pre class="brush: sql; title: ; notranslate">SELECT lu.id, SUM( ls.clics ) AS cliclic
    FROM lil_stats ls
    INNER JOIN lil_urls lu
        ON ls.id = lu.id
    LEFT JOIN lil_domain_blacklist ldb1
        ON ldb1.domain = lu.domain
        AND ldb1.b_display =1
    LEFT JOIN lil_domain_blacklist ldb2
        ON ldb2.domain = lu.subdomain
        AND ldb2.b_display =1
WHERE ls.date=&quot;2010-10-31&quot;
    AND ldb1.id IS NULL
    AND ldb2.id IS NULL
GROUP BY lu.id
ORDER BY cliclic DESC
LIMIT 0 , 10
</pre>
<p>Cette nouvelle version de la requête s&#8217;exécute en environ 0.025 secondes, ce qui est tout à fait correct.</p>
<p>En observant un explain de celle-ci, on constate que les 2 jointures sur la table lil_domain_blacklist utilisent correctement les index et retournent un nombre limité de lignes.</p>
<p><a href="http://blog.loicg.net/wp-content/uploads/2010/10/murl_1288531203375.png"><img class="aligncenter size-medium wp-image-1073" title="Nouvelle requête MySQL" src="http://blog.loicg.net/wp-content/uploads/2010/10/murl_1288531203375-300x40.png" alt="" width="300" height="40" /></a></p>
<p>Ainsi, je sais désormais qu&#8217;il vaut mieux, parfois, faire 2 jointures sur une même table qu&#8217;une seule jointure sur cette même table.</p>
<p>Et toi, ami lecteur, as-tu déjà fait face à ce cas de figure ?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loicg.net/webdev/optimisation-jointure-lef-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La veille du week-end (troisième)</title>
		<link>http://blog.loicg.net/autour-dun-cafe/la-veille-du-week-end-troisieme/</link>
		<comments>http://blog.loicg.net/autour-dun-cafe/la-veille-du-week-end-troisieme/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 17:17:59 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[Au comptoir]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://blog.loicg.net/?p=1051</guid>
		<description><![CDATA[Bonjour ami lecteur, voici à nouveau un peu de lecture pour le week-end ! Au menu, du référencement naturel (et l&#8217;exploitation des stats qui vont avec)., du web-design. Une touche de bricolage, avec un article bien complet pour monter un hackintosh avec du matos récent et puissant. Un peu d&#8217;administration système pour suivre l&#8217;activité de [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour ami lecteur, voici à nouveau un peu de lecture pour le week-end !</p>
<p>Au menu, du référencement naturel (et l&#8217;exploitation des stats qui vont avec)., du web-design.<br />
Une touche de bricolage, avec un article bien complet pour monter un hackintosh avec du matos récent et puissant.<br />
Un peu d&#8217;administration système pour suivre l&#8217;activité de son serveur Apache en temps réel (par contre, je ne connais pas encore l&#8217;impact sur les performances&#8230;).<br />
Et pour les développeurs web, un décorticage du cache des requêtes (query cache) de MySQL.</p>
<p><span id="more-1051"></span></p>
<h2>Du SEO et des stats :</h2>
<p><a href="http://www.webrankinfo.com/dossiers/google-analytics/tracking-url">Faire du tracking grâce à Google Analytics</a> : via <a href="http://twitter.com/VeilleSEO" title="Compte Twitter de VeilleSEO">@VeilleSEO</a></p>
<p>Créer et utiliser un <a href="http://www.wolf-howl.com/seo/seo-editorial-calendar/">calendrier éditorial pour son SEO</a> : via <a href="http://twitter.com/largow" title="Compte Twitter de largow">@largow</a></p>
<h2>Du web-design :</h2>
<p><a href="http://css4design.com/framework-css-format-a4">Les frameworks CSS, le nouveau format A4</a> : via <a href="http://twitter.com/br1o" title="Compte Twitter de br1o">@br1o</a></p>
<p><a href="http://www.presse-citron.net/optimiser-son-site-pour-google-tv">Optimiser son site pour Google TV</a> (ok, elle est pas encore dispo en France, mais ça ne fait pas de mal de se préparer ^^)</p>
<h2>Un peu de sysadmin et de technique :</h2>
<p><a href="http://lifehacker.com/5672051/how-to-build-a-hackintosh-mac-and-install-os-x-in-eight-easy-steps">Assembler son propre Hackintosh</a> : via <a href="http://twitter.com/gonzague" title="Compte Twitter de gonzague">@gonzague</a></p>
<p>Suivre l&#8217;activité de son serveur Apache en temps réel grâce à <a href="http://www.tux-planet.fr/statistiques-apache-en-live-avec-apachetop/">ApacheTop </a>et/ou <a href="http://www.tux-planet.fr/statistiques-apache-en-live-avec-goaccess/">GoAccess</a> : chez <a href="http://twitter.com/tuxplanet" title="Compte Twitter de tuxplanet">@tuxplanet</a></p>
<p>Un grand plongeon dans le <a href="http://rackerhacker.com/2007/08/08/mysqls-query-cache-explained/">cache des requêtes de MySQL</a> : via <a href="http://twitter.com/Skreo" title="Compte Twitter de Skreo">@Skreo</a></p>
<p>Et vous ? Avez-vous des lectures à me suggérer pour ce week-end ?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loicg.net/autour-dun-cafe/la-veille-du-week-end-troisieme/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP : db_2_classes</title>
		<link>http://blog.loicg.net/webdev/classe-php-db_2_classes/</link>
		<comments>http://blog.loicg.net/webdev/classe-php-db_2_classes/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 22:08:05 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[WebDev]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[objet]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.loicg.net/?p=819</guid>
		<description><![CDATA[Je viens d&#8217;attaquer un projet perso, et me suis lancé dans un petit framework maison (from scratch). Ce framework est en MVC et repose sur des classes. Dans mon esprit, chaque classe doit comporter ses propres variables, ainsi qu&#8217;un moyen de la situer par rapport aux autres classes. Il existe des solutions pour définir les [...]]]></description>
			<content:encoded><![CDATA[<p>Je viens d&#8217;attaquer un projet perso, et me suis lancé dans un petit framework maison (from scratch). Ce framework est en MVC et repose sur des classes. Dans mon esprit, chaque classe doit comporter ses propres variables, ainsi qu&#8217;un moyen de la situer par rapport aux autres classes.</p>
<p>Il existe des solutions pour définir les jointures entre les classes. Par exemple dans <a href="http://www.symfony-project.org/">Symfony</a>, il existe des fichiers de configuration (en yml). On définit son modèle, on lance un p&#8217;tit script et &laquo;&nbsp;HOP !&nbsp;&raquo;, voici de belles classes de bases prêtes à être héritées.<br />
Autrement, il existe la solution de <a title="Kohana Framework" href="http://kohanaphp.fr/">Kohana</a>, qui consiste à indiquer les relations dans chaque classe, manuellement.<span id="more-819"></span></p>
<p>Bref, les solutions existent, toutefois le truc que je trouve lourdingue, c&#8217;est de faire coller en permanence les  classes avec les tables en bases de données. En cours de développement,  mes tables et leurs champs bougent beaucoup. Du coup, il faut  systématiquement que je reporte chaque modification dans la classe qui  va bien&#8230;</p>
<p>Partant du principe que la base de données comporte déjà toutes les infos nécessaires. Je me suis dit qu&#8217;il serait possible d&#8217;extraire les informations inclues dans chaque tables, et de reporter ces infos dans des classes en PHP. C&#8217;est déjà un premier pas : lister les champs de la table&#8230; En fouillant un peu, je détermine les champs primaires, et je peux même typer mes variables (en quelque sorte &#8230;).</p>
<p>Tout ça c&#8217;est bien, mais en m&#8217;imposant une convention de nommage, j&#8217;arriverai même à esquisser des jointures et des tables pivots détectables facilement depuis un script.<br />
Par exemple :</p>
<pre>p_table1_table2 est la table pivot entre table1 et table2.</pre>
<p>Le résultat, c&#8217;est une petite classe, composée de quelques méthodes statiques qui :</p>
<ul>
<li>Analyse une base de données, donnée</li>
<li>Détermine les relations entre les tables</li>
<li>Génère un script PHP par table (hors pivots)</li>
</ul>
<p>Désormais, quand je développe :</p>
<ol>
<li>Modifs dans la base de données</li>
<li>Exécution de mon script</li>
<li>Mes classes sont à jours ^^</li>
</ol>
<p>J&#8217;offre ce code à qui en a besoin. Le tout est livré sous licence <a href="http://fr.wikipedia.org/wiki/Beerware">BeerWare</a>, car si mon code vous plait et qu&#8217;on se croise, libre à vous de me payer un boc <img src='http://blog.loicg.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Le zip ci-joint contient la classe, ainsi qu&#8217;un petit exemple et ma méthode d&#8217;écriture des scripts PHP (libre à vous de la changer ^^).</p>
<p><a href="http://blog.loicg.net/wp-content/uploads/2010/03/db_2_classes.zip">db_2_classes.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loicg.net/webdev/classe-php-db_2_classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snow Leopard : mise en route d&#8217;Apache, PHP et MySQL</title>
		<link>http://blog.loicg.net/webdev/snow-leopard-apache-php-mysql/</link>
		<comments>http://blog.loicg.net/webdev/snow-leopard-apache-php-mysql/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 18:18:24 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.loicg.net/?p=697</guid>
		<description><![CDATA[OsX est livré en standard avec les différents composants nécessaires pour faire tourner un serveur web. D&#8217;ailleurs, dans les préférences systèmes, on peut trouver le &#171;&#160;Partage Web&#160;&#187;, qui n&#8217;est autre qu&#8217;un serveur Apache(2, pour être précis ^^). Activer Apache2 : Apache2 est prêt à l&#8217;emploi, toutefois, il est nécessaire de modifier certains paramètres dans /etc/apache2/httpd.conf [...]]]></description>
			<content:encoded><![CDATA[<p>OsX est livré en standard avec les différents composants nécessaires pour faire tourner un serveur web. D&#8217;ailleurs, dans les préférences systèmes, on peut trouver le &laquo;&nbsp;Partage Web&nbsp;&raquo;, qui n&#8217;est autre qu&#8217;un serveur Apache(2, pour être précis ^^).</p>
<p><span id="more-697"></span><strong>Activer Apache2 :</strong><br />
Apache2 est prêt à l&#8217;emploi, toutefois, il est nécessaire de modifier certains paramètres dans /etc/apache2/httpd.conf :</p>
<p>Modifiez le dossier pointé par Apache pour pouvoir utiliser directement le dossier Sites de votre compte utilisateur :</p>
<pre>DocumentRoot "/Users/mon-nom/Sites"</pre>
<p>ainsi que la ligne :</p>
<pre>&lt;Directory "/Users/mon-nom/Sites"&gt;</pre>
<p>(en prenant soin de remplacer &laquo;&nbsp;mon-nom&nbsp;&raquo; par le votre &#8230;)</p>
<p><strong>Pour activer PHP5</strong> (version 5.3 dans Snow Leopard, c&#8217;est plutôt cool) , décommentez la ligne :</p>
<pre>LoadModule php5_module        libexec/apache2/libphp5.so</pre>
<p><strong>Ensuite, il faut <a title="MySQL pour OsX" href="http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg">télécharger MySQL</a></strong> (prendre la version Mac OS X 10.5 (x86_64)), puis installer dans l&#8217;ordre :</p>
<ol>
<li>mysql</li>
<li>startup item</li>
<li>preference pane</li>
</ol>
<p>Démarrez ensuite MySQL depuis le panneau de préférences.</p>
<p>Maintenant, il faut modifier la configuration de PHP pour qu&#8217;il tape sur le bon socket MySQL.</p>
<p>Si /etc/php.ini n&#8217;existe pas, copiez le depuis le fichier de config par défaut : cp /etc/php.ini.default /etc/php.ini</p>
<p>Replacez dans php.ini toutes les occurrences de</p>
<pre><code>/var/mysql/mysql.sock</code></pre>
<p><code>par</code></p>
<pre><code>/tmp/mysql.sock
</code></pre>
<p><code>Profitez-en également pour régler votre fuseau horaire (selon votre situation géographique ...) :</code></p>
<pre>
<pre>date.timezone = Europe/Paris</pre>
</pre>
<p>Il est désormais temps de relancer Apache et de voir tout ce petit monde s&#8217;animer :</p>
<pre>sudo apachectl restart</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.loicg.net/webdev/snow-leopard-apache-php-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached (Feed is rejected)
Page Caching using memcached (User agent is rejected)
Database Caching 14/47 queries in 0.036 seconds using memcached

Served from: blog.loicg.net @ 2012-02-05 10:50:36 -->
