<?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>Misadventures of a Celtic Geek</title>
	<atom:link href="http://blog.guesny.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.guesny.net</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Sun, 03 Jun 2012 19:25:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Profiling and debugging, when they mix</title>
		<link>http://blog.guesny.net/2012/06/03/profiling-and-debugging-when-they-mix/</link>
		<comments>http://blog.guesny.net/2012/06/03/profiling-and-debugging-when-they-mix/#comments</comments>
		<pubDate>Sun, 03 Jun 2012 19:25:07 +0000</pubDate>
		<dc:creator>welsh_dwarf</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[kcachegrind]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[profiling]]></category>

		<guid isPermaLink="false">http://blog.guesny.net/?p=230</guid>
		<description><![CDATA[Normally, you debug, and when that&#8217;s done, you profile to speed things up. That said, today I was confronted by a problem where profiling actually helpped the debugging. A page, that should be working 100% from memcache was hitting mysql, &#8230; <a href="http://blog.guesny.net/2012/06/03/profiling-and-debugging-when-they-mix/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img title="PicsPlay_1338750751929.jpg" class="alignnone" alt="image" src="http://blog.guesny.net/wp-content/uploads/2012/06/wpid-PicsPlay_1338750751929.jpg" /></p>
<p>Normally, you debug, and when that&#8217;s done, you profile to speed things up.</p>
<p>That said, today I was confronted by a problem where profiling actually helpped the debugging.</p>
<p>A page, that should be working 100% from memcache was hitting mysql, 2 million times a day. </p>
<p>This page was on a serveur that couldn&#8217;t be debugged remotly. Two options were available, I could either put &#8220;print&#8221;s everywhere, and hoped to get lucky, or I could run the pager through xdebug&#8217;s profiler.</p>
<p>Loading the resulting profile into KCacheGrind, I had a detailled run down of every code path taken available to me. All that was rest was to lookup all mysql calls and work back up from caller to caller to identify the bug.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.guesny.net/2012/06/03/profiling-and-debugging-when-they-mix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx and disk starvation</title>
		<link>http://blog.guesny.net/2012/05/31/nginx-and-disk-starvation/</link>
		<comments>http://blog.guesny.net/2012/05/31/nginx-and-disk-starvation/#comments</comments>
		<pubDate>Thu, 31 May 2012 17:33:36 +0000</pubDate>
		<dc:creator>welsh_dwarf</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[io]]></category>
		<category><![CDATA[iotop]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[worker_processes]]></category>

		<guid isPermaLink="false">http://blog.guesny.net/?p=227</guid>
		<description><![CDATA[A quick note that will help someone I hope. If you have a high bandwidth site, and are seeing high load, lots of time waiting for io and nginx processes in the D state a lot, here&#8217;s something you could &#8230; <a href="http://blog.guesny.net/2012/05/31/nginx-and-disk-starvation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A quick note that will help someone I hope.</p>
<p>If you have a high bandwidth site, and are seeing high load, lots of time waiting for io and nginx processes in the D state a lot, here&#8217;s something you could try:</p>
<p>First of all, install <strong>iotop</strong> and make sure nginx is the culprit (lots of IO for nginx, not much for the rest)</p>
<p>Then, go and have a look at your NGinx configuration, (nginx.conf), especially the <strong>worker_processes</strong></p>
<p>You can try pushing the value up to (and maybe even over) the number of cores you have in your system. This spreads the load more evenly, and allows you to dramatically increase disk throughput (doubling isn&#8217;t uncommon).</p>
<p>This worked for me (going from 3Mb/s to 7Mb/s peak). That said, YMMV. </p>
<p>Feel free to leave a comment to say if/how this was (un)helpful <img src='http://blog.guesny.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.guesny.net/2012/05/31/nginx-and-disk-starvation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Troisième coup gagnant</title>
		<link>http://blog.guesny.net/2012/05/31/troisieme-coup-gagnant/</link>
		<comments>http://blog.guesny.net/2012/05/31/troisieme-coup-gagnant/#comments</comments>
		<pubDate>Thu, 31 May 2012 00:25:44 +0000</pubDate>
		<dc:creator>welsh_dwarf</dc:creator>
				<category><![CDATA[français]]></category>
		<category><![CDATA[personnel]]></category>

		<guid isPermaLink="false">http://blog.guesny.net/?p=210</guid>
		<description><![CDATA[Septembre 2010&#8230;.. Ça en fait du temps. Depuis, on a démenagé dans le sud, j&#8217;ai lancé 2 sociétés (ok, 1 et demie, c&#8217;est presque pareille), et globalement plus rien n&#8217;est pareille. Durant ces 18 mois j&#8217;ai également progréssé de point &#8230; <a href="http://blog.guesny.net/2012/05/31/troisieme-coup-gagnant/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Septembre 2010&#8230;..</p>
<p>Ça en fait du temps. Depuis, on a démenagé dans le sud, j&#8217;ai lancé 2 sociétés (ok, 1 et demie, c&#8217;est presque pareille), et globalement plus rien n&#8217;est pareille.</p>
<p>Durant ces 18 mois j&#8217;ai également progréssé de point de vue technique, et c&#8217;est pour ça que je compte raviver ce blog.</p>
<p>Il y aura des articles en anglais et en français, et je veux tenter de tenir le rythme d&#8217;un par jour.</p>
<p>Et c&#8217;est partie&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.guesny.net/2012/05/31/troisieme-coup-gagnant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anti-spam take 2</title>
		<link>http://blog.guesny.net/2010/09/03/anti-spam-take-2/</link>
		<comments>http://blog.guesny.net/2010/09/03/anti-spam-take-2/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 11:50:15 +0000</pubDate>
		<dc:creator>welsh_dwarf</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.guesny.net/?p=133</guid>
		<description><![CDATA[Since the last system was marginally effective, I&#8217;ve just upgrade to a) (re)capture b) Askimet Hoping that this can keep the blog clean]]></description>
			<content:encoded><![CDATA[<p>Since the last system was marginally effective, I&#8217;ve just upgrade to<br />
a) (re)capture<br />
b) Askimet</p>
<p>Hoping that this can keep the blog clean</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.guesny.net/2010/09/03/anti-spam-take-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE session bug</title>
		<link>http://blog.guesny.net/2010/08/11/ie-session-bug-2/</link>
		<comments>http://blog.guesny.net/2010/08/11/ie-session-bug-2/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 07:43:10 +0000</pubDate>
		<dc:creator>welsh_dwarf</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[sessions]]></category>

		<guid isPermaLink="false">http://blog.guesny.net/?p=139</guid>
		<description><![CDATA[I&#8217;m just reposting this here so that it can help someone else. Internet Explorer doesn&#8217;t honor php sessions if the domaine name isn&#8217;t valid (hint: _ isn&#8217;t a valid caracter in domaine names). This can explain some hard to find &#8230; <a href="http://blog.guesny.net/2010/08/11/ie-session-bug-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m just reposting this here so that it can help someone else.<br />
Internet Explorer doesn&#8217;t honor php sessions if the domaine name isn&#8217;t valid (hint: _ isn&#8217;t a valid caracter in domaine names).<br />
This can explain some hard to find bugs where your session works fine on FF, chrome or Safari, but not in Internet Explorer.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.guesny.net/2010/08/11/ie-session-bug-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changes and uptime</title>
		<link>http://blog.guesny.net/2010/07/26/changes-and-uptime/</link>
		<comments>http://blog.guesny.net/2010/07/26/changes-and-uptime/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 20:11:46 +0000</pubDate>
		<dc:creator>welsh_dwarf</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.guesny.net/?p=3</guid>
		<description><![CDATA[Will be back soon, upgrading to wordpress 3.0 and changing hosting at the same time&#8230; Stay tuned]]></description>
			<content:encoded><![CDATA[<p>Will be back soon, upgrading to wordpress 3.0 and changing hosting at the same time&#8230;</p>
<p>Stay tuned</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.guesny.net/2010/07/26/changes-and-uptime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Quick Note to the link spammers</title>
		<link>http://blog.guesny.net/2010/04/11/a-quick-note-to-the-link-spammers/</link>
		<comments>http://blog.guesny.net/2010/04/11/a-quick-note-to-the-link-spammers/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 07:43:17 +0000</pubDate>
		<dc:creator>welsh_dwarf</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[personnel]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://blog.guesny.net/?p=119</guid>
		<description><![CDATA[I don&#8217;t have much google cred, so I can&#8217;t really understand why you are so insistant. That said, you&#8217;re ruining the fun for everyone else, so please go play on someone elses lawn. It doesn&#8217;t cost me much to spam &#8230; <a href="http://blog.guesny.net/2010/04/11/a-quick-note-to-the-link-spammers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t have much google cred, so I can&#8217;t really understand why you are so insistant.</p>
<p>That said, you&#8217;re ruining the fun for everyone else, so please go play on someone elses lawn.</p>
<p>It doesn&#8217;t cost me much to spam your comments, and to change the challenge response, so don&#8217;t think I&#8217;ll just give up.</p>
<p>Regards</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.guesny.net/2010/04/11/a-quick-note-to-the-link-spammers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DynDNS and uptime</title>
		<link>http://blog.guesny.net/2010/03/27/dyndns-and-uptime/</link>
		<comments>http://blog.guesny.net/2010/03/27/dyndns-and-uptime/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 15:52:07 +0000</pubDate>
		<dc:creator>welsh_dwarf</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[personnel]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[dynamic dns]]></category>
		<category><![CDATA[dyndns]]></category>
		<category><![CDATA[ovh]]></category>

		<guid isPermaLink="false">http://blog.guesny.net/?p=109</guid>
		<description><![CDATA[Anyone who has tried to get into touch with me or read this blog these last few days can atest to the fact that I haven&#8217;t been reachable. My deepest apologies . To understand what happened, here&#8217;s a quick lowdown &#8230; <a href="http://blog.guesny.net/2010/03/27/dyndns-and-uptime/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Anyone who has tried to get into touch with me or read this blog these last few days can atest to the fact that I haven&#8217;t been reachable.</p>
<p>My deepest apologies <img src='http://blog.guesny.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
<p>To understand what happened, here&#8217;s a quick lowdown on how my setup works:</p>
<p>I&#8217;m self hosting this blog as well as my mail on a converted EasyGate that I got as a beta tester. The machine is connected onto my internet router (a Trio 3D antique) and then onto the internet. My ISP provides a temporary IP address, and as such, I need to use a dynamic DNS record to be able to keep things updated.</p>
<p>Now, the Trio 3D (as with most of it&#8217;s features) has a half assed (excuse my French)  DynDNS system built in. I say half assed because it doesn&#8217;t accept any provider except the historic DynDNS and because it quite often forgets to update. Last week it completely stopped updating, and as an added bonus, I couldn&#8217;t get back into DynDNS to do things manually.</p>
<p>As a work around, I set up OVH (who are my registrar) to route my DNSes manually until I got a permanent fix. That worked until the IP changed Tuesday or Wednesday.</p>
<p>Now things are sorted out. I&#8217;m using OVH&#8217;s own DynDNS servers (much simpler) and am using a home built client to avoid all the dependancies other clients bought in.</p>
<p>The client is written in bash and depends on bash, sed and wget to work. It&#8217;s best used in a cron job, but can also be run on interface specific events if need be.</p>
<p>It uses a web based IP fetcher to work out your IP adresse, and if it&#8217;s changed since you last run the script, it updates your DynDNS records for you.</p>
<p>Without further ado, here&#8217;s the code:</p>
<pre lang="bash">#/bin/bash

USERNAME='myusername'
PASSWORD='mypassword'
HOSTS=('first_url.test.com' 'second_url.test.com')
SERVER="www.ovh.com"

#
#
#

CURRENT_IP=`wget -O - 'http://checkip.dyndns.org/' 2&gt;/dev/null | sed -e 's/.*Address: \([^&lt;]*\).*/\1/'` if [ -f /tmp/my_ip ]; then 	OLD_IP=`cat /tmp/my_ip`; fi # # Don't update unless ip has changed # if [ "x"$CURRENT_IP == "x"$OLD_IP ]; then 	exit; fi; echo "IP changed from " $OLD_IP " to " $CURRENT_IP echo "Saving new IP" echo $CURRENT_IP &gt; /tmp/my_ip

for HOST in ${HOSTS[@]};
do
	echo "Updating " $HOST " to " $CURRENT_IP
	wget -O - "http://${USERNAME}:${PASSWORD}@${SERVER}/nic/update?system=dyndns&amp;hostname=${HOST}&amp;myip=${CURRENT_IP}&amp;wildcard=NOCHG&amp;mx=NOCHG&amp;backmx=NOCHG" 2&gt;/dev/null
	echo ""
done</pre>
<p>Et voila, I hope this helps someone out there</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.guesny.net/2010/03/27/dyndns-and-uptime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Histoire de nous veillir tous un peu&#8230;</title>
		<link>http://blog.guesny.net/2010/01/29/histoire-de-nous-veillir-tous-un-peu/</link>
		<comments>http://blog.guesny.net/2010/01/29/histoire-de-nous-veillir-tous-un-peu/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 08:02:55 +0000</pubDate>
		<dc:creator>welsh_dwarf</dc:creator>
				<category><![CDATA[français]]></category>
		<category><![CDATA[personnel]]></category>
		<category><![CDATA[école]]></category>
		<category><![CDATA[yakalelo]]></category>

		<guid isPermaLink="false">http://blog.guesny.net/?p=103</guid>
		<description><![CDATA[Je ne pense pas être le seul pour qui ce genre de chanson rappelle des souvenirs&#8230;.]]></description>
			<content:encoded><![CDATA[<p>Je ne pense pas être le seul pour qui ce genre de chanson rappelle des souvenirs&#8230;.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/8ga2-CXYeNU&amp;hl=fr_FR&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/8ga2-CXYeNU&amp;hl=fr_FR&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.guesny.net/2010/01/29/histoire-de-nous-veillir-tous-un-peu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nouvelle an</title>
		<link>http://blog.guesny.net/2010/01/14/nouvelle-an/</link>
		<comments>http://blog.guesny.net/2010/01/14/nouvelle-an/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 08:04:05 +0000</pubDate>
		<dc:creator>welsh_dwarf</dc:creator>
				<category><![CDATA[français]]></category>
		<category><![CDATA[personnel]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[nouvelle an]]></category>
		<category><![CDATA[projets]]></category>

		<guid isPermaLink="false">http://blog.guesny.net/?p=101</guid>
		<description><![CDATA[2010 est avec nous, la dernière année de la première décenie du deuxième millinaire (vas tenter de dire ça trois fois de suite&#8230;). Comme chaque année, il est traditionel de faire de bonnes résolutions, je vais mettre les miennes ici &#8230; <a href="http://blog.guesny.net/2010/01/14/nouvelle-an/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>2010 est avec nous, la dernière année de la première décenie du deuxième millinaire (vas tenter de dire ça trois fois de suite&#8230;).</p>
<p>Comme chaque année, il est traditionel de faire de bonnes résolutions, je vais mettre les miennes ici histoire qu&#8217;on m&#8217;en teinnent rigueur si je ne les respect pas.</p>
<p>Bon, sans plus attendre:</p>
<p>En 2010, je m&#8217;engage à:</p>
<ol>
<li>Faire plus de sport (traditionel celle là <img src='http://blog.guesny.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> , et non, les Fest-noz ne comptent pas <img src='http://blog.guesny.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </li>
<li>Me mettre à la cuisine (Merci Mateo)</li>
<li>Devenir entrepreneur (plus d&#8217;infos vers le mois de mars sans doute).</li>
<li>Écrire plus souvent dans mon blog</li>
</ol>
<p>Voila</p>
<p>Bonne année 2010 à tous, et que tous vos voeux se réalisent</p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.guesny.net/2010/01/14/nouvelle-an/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

