<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Olivier's Blog</title>
    <link>http://www.olivierhill.ca/</link>
    <description>Because they listen to me</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.2.1 - http://www.s9y.org/</generator>
    <ttl>60</ttl>

    <image>
        <url>http://www.olivierhill.ca/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Olivier's Blog - Because they listen to me</title>
        <link>http://www.olivierhill.ca/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Who am I?</title>
    <link>http://www.olivierhill.ca/archives/20-Who-am-I.html</link>
            <category>Personal</category>
    
    <comments>http://www.olivierhill.ca/archives/20-Who-am-I.html#comments</comments>
    <wfw:comment>http://www.olivierhill.ca/wfwcomment.php?cid=20</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.olivierhill.ca/rss.php?version=2.0&amp;type=comments&amp;cid=20</wfw:commentRss>
    

    <author>nospam@example.com (Olivier Hill)</author>
    <content:encoded>
    &lt;/p&gt;

&lt;div class=&quot;vcard&quot;&gt;&lt;p&gt;For those of you that ignore who I am, my name is &lt;span class=&quot;fn&quot;&gt;Olivier Hill&lt;/span&gt; and you are reading my &lt;a href=&quot;http://www.olivierhill.ca&quot; class=&quot;url&quot;&gt;webpage / blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;(I&#039;m the one on the right!):&lt;/p&gt;

&lt;a href=&quot;http://www.flickr.com/photos/talieu2/5325103130/&quot; title=&quot;Penn &amp;amp; Olivier by Talie, on Flickr&quot;&gt;&lt;img src=&quot;http://farm6.static.flickr.com/5201/5325103130_594e14549e.jpg&quot; width=&quot;450&quot; height=&quot;365&quot; alt=&quot;Penn &amp;amp; Olivier&quot; /&gt;&lt;/a&gt;

&lt;p&gt;If you are looking for facts, here they are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;White male, 5&#039;8&quot;&lt;/li&gt;
  &lt;li&gt;Living in &lt;span class=&quot;adr&quot;&gt;&lt;span class=&quot;locality&quot;&gt;Laval&lt;/span&gt;, &lt;span class=&quot;region&quot;&gt;QC&lt;/span&gt;, Canada&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;In a relationship with &lt;a href=&quot;http://www.talie.ca/&quot; rel=&quot;friend&quot;&gt;this girl&lt;/a&gt; (almost married now)&lt;/li&gt;
  &lt;li&gt;Speaks French and English&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am a young professionnal working in the computer industry. Couple of years ago, I graduated from the École Polytechnique de Montréal in Computer Engineering, earning my bachelor&#039;s degree with honors.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.olivierhill.ca/archives/20-Who-am-I.html#extended&quot;&gt;Continue reading &quot;Who am I?&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 31 Dec 1969 19:00:01 -0500</pubDate>
    <guid isPermaLink="false">http://www.olivierhill.ca/archives/20-guid.html</guid>
    
</item>
<item>
    <title>Update VMware tools before reboot</title>
    <link>http://www.olivierhill.ca/archives/62-Update-VMware-tools-before-reboot.html</link>
            <category>Computers</category>
    
    <comments>http://www.olivierhill.ca/archives/62-Update-VMware-tools-before-reboot.html#comments</comments>
    <wfw:comment>http://www.olivierhill.ca/wfwcomment.php?cid=62</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.olivierhill.ca/rss.php?version=2.0&amp;type=comments&amp;cid=62</wfw:commentRss>
    

    <author>nospam@example.com (Olivier Hill)</author>
    <content:encoded>
    I have searched the web and couldn&#039;t think of a simpler way to do this.&lt;br /&gt;
&lt;br /&gt;
When you upgrade your kernel, all modules that were installed by the VMware tools will be missing in the new &lt;code&gt;/lib/modules&lt;/code&gt; directory. To reinstall those, you need to reboot first and then re-run the VMware tools. Problems arise if you need the modules prior to the next reboot (ie: if you are doing weird pvscsi on root partition for example).&lt;br /&gt;
&lt;br /&gt;
Out of the box, the VMware tools cannot regenerate modules and initrd for a kernel different than the running one. If you are upgrading the same distribution to a different patch level (RHEL 5 system to a bugfix kernel), chances are that the same modules will work, you just have to install them at the new location.&lt;br /&gt;
&lt;br /&gt;
Tricking the VMware tools software into installing some place else works very well in that case.&lt;br /&gt;
&lt;br /&gt;
This snippet is very RedHat specific, but could be adjusted for any distro. Main points include the uname hack, running a depmod and rebuilding initrd image.&lt;br /&gt;
&lt;br /&gt;
It is important to note that the tools do run depmod, but not specifying a kernel version, hence defaulting to the running kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# Get latest kernel installed&lt;br /&gt;
VERSION=&quot;$(rpm -qa kernel | sort -r | head -n 1 | sed &#039;s/kernel-//&#039;)&quot;&lt;br /&gt;
&lt;br /&gt;
# uname hack (because VMware Tools are stupid)&lt;br /&gt;
mv /bin/uname{,.orig} &amp;amp;&amp;amp;&lt;br /&gt;
cat &gt; /bin/uname &amp;lt;&amp;lt; EOF &amp;amp;&amp;amp;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
exec /bin/uname.orig &quot;\$@&quot; | sed &#039;s/2.6.[^ ]*/${VERSION}/&#039;&lt;br /&gt;
EOF&lt;br /&gt;
chmod 0755 /bin/uname&lt;br /&gt;
&lt;br /&gt;
# Launch VMware Tools install&lt;br /&gt;
/usr/bin/vmware-config-tools.pl -d&lt;br /&gt;
&lt;br /&gt;
# Remove our uname hack&lt;br /&gt;
mv /bin/uname{.orig,}&lt;br /&gt;
&lt;br /&gt;
# Redo what VMware missed&lt;br /&gt;
depmod -a $VERSION&lt;br /&gt;
mkinitrd -f /boot/initrd-$VERSION.img $VERSION&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Tested on RHEL 5.4 upgrading to a security fix kernel, works like a charm. 
    </content:encoded>

    <pubDate>Fri, 14 May 2010 12:54:25 -0400</pubDate>
    <guid isPermaLink="false">http://www.olivierhill.ca/archives/62-guid.html</guid>
    
</item>
<item>
    <title>It's a GPS Christmas</title>
    <link>http://www.olivierhill.ca/archives/65-Its-a-GPS-Christmas.html</link>
            <category>Internet</category>
    
    <comments>http://www.olivierhill.ca/archives/65-Its-a-GPS-Christmas.html#comments</comments>
    <wfw:comment>http://www.olivierhill.ca/wfwcomment.php?cid=65</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.olivierhill.ca/rss.php?version=2.0&amp;type=comments&amp;cid=65</wfw:commentRss>
    

    <author>nospam@example.com (Olivier Hill)</author>
    <content:encoded>
    &lt;script src=&quot;http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;sensor=false&amp;amp;key=ABQIAAAA8lqqRGbN2NbM8rdtD0KUlRSIxyaL1R8Os519WJbE2gv7MMZ0XRR36frOVBfJMPjYcc-HNHSdAAw8kA&quot; type=&quot;text/javascript&quot;&gt;
  &lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function initialize65() {
      if (GBrowserIsCompatible()) {
        var map65 = new GMap2(document.getElementById(&quot;map_canvas65&quot;));

var sw = new GLatLng(45.53562287, -74.3734210);
var ne = new GLatLng(46.03050200, -73.6397400);
var bounds = new GLatLngBounds(sw, ne);
var mapZoomLevel = map65.getBoundsZoomLevel(bounds);
var mapCenter = new GLatLng(45.783062435, -74.0065805)
map65.addControl(new GSmallMapControl());
map65.setCenter(mapCenter, mapZoomLevel);

var polyline1_1 = new GPolyline.fromEncoded({
  color: &quot;#0000ff&quot;,
  weight: 4,
  opacity: 0.8,
  points: &quot;qwuwGp`}dMNEf@E`@m@`@gAb@_Bp@_BpCqEl@uBt@cDHQr@y@j@[nAwAnCoDnAmAZSfAiBlA_DjAmBf@q@pA{CbBwEn@_C|@uD|DcMTsAfAuEfAyCxAkC|BiCnAoAp@mAn@kBzBGt@GhA]fBcBPU`BeCp@eBp@_D|B_M`@mBpBwI~@sCNUnAuArDoCvAkAV_@|DqIzAyDlAoDLWz@iA~AiBd@m@\\kATaAnEwTr@aDnAyBpD{EdCwDhAkAnEmBdKuHxDqD`FaGhAkAnA_AtAo@xA]nFi@lCc@pDgAtP{I~@a@`C}@jBc@bGeAdK_BtC_@tCFzA^vC|AfEpCfC`AnCP~BY`CgApBsB|AsC`AgDd@sDJ_E?sNFyKTqEp@uDdAsCtAwBdAcAjAs@rAa@xBUxADxAZvAj@nDbBx@\\xAV`BA~@OxBoAjCkDlBoC|AwAhAi@lBi@`Bo@zAeAv@y@jAgBj@qAv@kCZcBPeBH{C]eUAqBLgDl@oEhAgEhBsD~IaNxHuLxAcCbA_Cl@iC`@wDByEYkGg@}IQwECaHFkLG_G[}FuBgRI}DZiFr@uDlAqF`B_JdAuJx@mKdAiG|AqFrBgEfCmDrDaDrQ}MfEmCnCk@nB@tCj@hB|@tEjCrK~FzKxFr@VHAHINg@nFg_@zAwI~BsI`KsX|A}DbB_F~@gFb@mGE{GsAuWAmHh@gHxA{IxNsy@f@yFt@_Zl@yJxAuLdBoJ|FsVvH{ZlE{QlCoK|AeEfDqGjUo`@lFiJdEkItA{EjAoHvAyKhAiJb@aGAaFIuBm@gHaAeFsBeGcJaR}AgD_AyCk@{DOyDIiGe@eFcAyFyDiRiAuGaD{Oe@mB]_COqBEkCR}En@sE~BwHp@aCr@kBvB_HfAqFj@cFRaGXcFjAmHxF{[dF}X~AkJt@kHVwHE}Hu@cXGqKZcI|Cgd@vA_QlA}HnBkH~@mCtHmRbPya@|Nw_@dAiCnBaE~BoD|DiErEyC`FiBhF{@bJc@~I}@zGmBlBy@tEkCbG_EzFyDxK{Hfb@gY|HiF|FsDjIiE``Awe@`I{EvFgFf\\_[tCkCxC_C~CmB|EoB~G}A`QgD~EsBfG_E~I{HjPgNnKcJjF_GdGwInSo]rIyMpKuNjl@uu@`CkDzC_GfHoOhDkFtCiCdD_BjDw@pDQjQGbWDjL?bIG`j@?fUJvt@@zKKfFy@`FgBrEyCrCmCrD_F|HwNxQk\\|n@shAbJuPnEcKp[gy@pFeMlFyJ|Vwc@vEaHdEyDxEeCdFsAjFi@nFF~IbA~In@jFSdFeAzEyBlEiDvDsElEqHdNeVpJgPrOeXhDmGle@wy@lHsLzQs[lFmJpD_H|Rm]xIiOnFsIpGgLzFsK~OaYnGmKh_@}j@tGkK|H}M~G_LrXmf@~LqUpBqDpp@ajAx\\oj@fIgN~CyFdDqFrNoUhHyKjE{GhLyRtKgQ|Q{Z|KuQ|BkD`DsEVWbCeA`IyAfCeAxBmATIxBDxAjAnBjCjH`MhDdGdC~C~BfBbDrA`Ex@lFv@rGzApFhB`FtBjErBzOrI~OdJ|IzFpGlFzLvK~AhB|ArDf@dD\\|CjAxCtAp@~AGvAkAn@qArNsa@xDuKzEaMxEeJrEuGpIqJrVsXnJaLhKoMfb@ie@pMkN`KiKld@gg@rLyM~K}LhFgFbHgHrRiSzCmCxAo@|BD|GjCpBvBTh@|JzX`HtSdEnLhVts@tCxJbBbItAlJr@~I`@pJV~K@lIH|GZfL\\pHp@rGnAhGvBtGdChFzAjClBfCNx@Sj@}@h@e@`@Gt@hDlKvBlGj@`EzBzRlAnJnA|Gn@xB^fAJRd@Ql@o@MmAY{@I}ATg@f@q@|@y@nBU@}@MwAW{@m@g@m@]e@@i@NaAn@aA^Mv@ZlB`@hBl@z@DtARtAPf@E`AIHc@T_@IO_@mB_JkAwIoDk[oAgEeCaHy@gCg@gBAMNo@`AeAZSHMB}@We@yAsBsB_DoBaEyBsGiA_Gs@}G_@cJi@qPCyN_@cM_AcOkAwJaByImCoJm\\iaAc@qAYm@oDiLyAmFgHeXeB{HkI_b@g`Ai|EkHi^qCkJeDwIeF_KaZwi@uRo^ad@oy@sMqVsEuKsDkLqA}EcGyVySo|@iCuJ_D{I}EgKmEgHcFmGmUyU{EuGoFsJiAeCgBkE}DiLmYc{@q]_dAaCyG]mAqHcU}EmNsCgGiEoH}EuGoFsF{CwB}gAar@im@s_@gQoKkB{@aFwAmMeCsKgBkDSy@AiQXcJb@aHpAyGdCqG~CqIpCmItBuKdCkHrAoFh@oHBqr@}@eSIyMCy@@{Kj@}iArIgZrBeEEo@IkCu@mDoBuCqC_CkD_B}Dw@_EKkB@_@d@kBPQbAGx@t@~BvFpB|FNt@Dj@E`@GLIHwFlBg@JcAYQq@aAyCg@q@KWe@qBq@sEiA_FgCiIeEeMe@cB]kBQwBOgDUo@Y?yAZMbAt@bP@~@&quot;,
  levels: &quot;P?BC?@BB??D@A@A@CAA?E?B?AA?CAF?CAD?AD?AEA@?BAE?AA@DA??C??E?@?EA@IBBDA?AEAB@BDA?G@A?EAD@AECBHCBEAB?BEBAHACAEAC??CBAFC@AC@?C@BI@B@DA?CAFBC@?CAGAC?@C@@DABFB?@B@BDBIBCDBGBD??@BA@J@@EB?@CFBCCBF?EBADAG@?BAFA?AEB@?HBC@EBC?BFB@BD?@@?@D@BHB?@@BDA@D@??BFABAEACBGAB?@C@BLCBEBADAF@A@@A?E?BE??CAFC@DBH??BFBADA@D@CBICBE@?@@A@AFBDBJB@@@EAAE@BHBDBFBADBFCBG?@?A@A@A?@A@B@@DAAD@BA?BDA??BA?B@?@B@?KBC@?CGAC?CBFB@ACAE@BAF@AEB@BEBJBC?ADBG?B@AC@A??E?@ADBKCAE@@BAGABD@A@ACAFBDB@EBC?BE?D@?CB@?GAD@ABD@CMA@C?E@B@FBBABA@DC?BG@C@D@@?E@B??BE??ADBFACAADCAGB??CA?F@ACBHBC??@FBD?@CAFBDBDBAF@A?@@?@DAKCBE?@FAC@I?BAECABD?CAFAA??FA@BH@BDBFBAE@CAGBCA@F@?CCBF?A?B@@C??DA@AG@CD?P&quot;,
  zoomFactor: 2, 
  numLevels: 18
});
map65.addOverlay(polyline1_1);

var polyline1_2 = new GPolyline.fromEncoded({
  color: &quot;#0000ff&quot;,
  weight: 4,
  opacity: 0.8,
  points: &quot;}`_vGnmn`MDfBE~@W^i@Bo@IMIq@q@WNgAzAENLp@v@zATdBCnGY~AiA|Bw@D{@y@g@BSd@y@pCgA~BsBhC[dANdAx@fDfAlGj@vDKTiGzBqFdCuDzC_C|CkJ`PeE~GgB~C}A`CaDpFeBbDqCzEwDhGeCrEu@lA_@lACp@HxCPrEl@hHrAbOnAdPbIjkAxAlKxB|JtCdJde@xhArHdRhEjKjFbMxGrOhi@zpAlFxM`KhVbJ~Slr@lbBfGjMxDrEpEzCbF`BjFf@lI^`c@zBpBLfDZvEvAlElCnD`EvC|EtK`Yx|@h{BrDdKzJn]hC|FfDbFbE`ElEvCz]~QjF|CpDjCdDtCdEpEbJ|KlLrNdLpNna@hg@|BpCnAhBb@p@t@rArAxCh@|AjA`EbAxE`@lCZxCxCr]^nFxAlWHjBF|GYdDkAvFg@bEq@lIs@`D{AvDgCtE_CbEoFvIiJzOeMhSoJdOaGtJe\\ri@aSb]oa@bq@wF|I}F|J_T`_@mUpa@}MhVgf@|z@eLtQ{JjOwJzNmJnOyRb]iFhJcFfJsSp^kJhP{E`IyDfGcYvf@iGdLaZrh@_MnSic@rv@}FpKoHxLoDxDaBlAsExByErA_D`@oEB}Hm@kGo@mGMaF^cFlAaFrBqEfDwDtEkEtH_NlVwLtT{EtK{JdXsDlJ{LlZ{DvIkMrUgP`YuJdQiZbi@oKpRiBzC}DdFgDfCcCxAgCdAyCl@cD^cFHiWLiKCaJKmJHiS?qMEiJMqLCiHR{ZBuJCwIBsNNmEv@cErBoDhDqAhBe@z@yFdMkGjM_CdDyj@ps@kK`NsH~KyS~]uFxIiFhGyElEw_@b\\mHpFsExBmGbBeN~BcG`ByFnC{DtCwI|HgIxHeL|KcGrF{E~CiJvE}NbHsGlDak@jYgG~DkShNut@zf@iGdDgF`BcFv@{Nr@aDXgDv@oDtAqBnAk@`@eCzByBjCeBjCgApBmBpEaHpQwNb_@kNx]_DxIsBdIeAxGu@~ImEdp@Y|IJ`Jr@fX?bIa@hIcAzHoRneAiBzIu@`C]x@gAfBkAxAsAlAo@\\}An@cB^q@FeBAs@GcBYq@Sq@Wo@]_e@cYuCwA{Cw@{CS_DJaDl@sEvBmEnDaBnB_BrB{AxBsAbCuFvKoA|BoArBsAbBoChB}Cr@gDDu@KqPcDyrAaWwCk@wDgA}BsAuCcD_BcDeAaEm@yEgA_[{@oGmAsDuCeEoCyBsEuCyCcCeCiDiBoEaEqLoByDe@u@aEmCs@WgDs@aF_AiFWmFViFlA}i@tQqEvB{DfDi@p@{C~EaCdGkAxEiA|HuE~`@mAzHq@pCoAnEuAdE{I|VcBfDsBpC_CtB}DnB_GxAmEnAcEtBuD~Ck@l@_DrEoHpMcD|E_FfFiCpB_HbEeCvByBlCiBdDsBzFcAhE_@nCUvCOlFFtFZpFtA`SNtFIrFa@bFy@tEoAbEaAxBsBfDwA~AoJbJuKpKiD`EwCxEiBtDcB~DuAhEyBjJsAbKm@hIMjDAhGJbGXdGh@hGfHho@p@lIJxFOvF[|CwAhHaBhEwBtDqCxC}E~CaMhHyEvCqEfDiHzGmIfJ{FfFwErCeFlBg^pIeF|AgDvAkGxDgEvDsFlFoE~CaDnAsB^sBPkFKoD[qDOkDVeD`AkEnCmD`EmCnFqAlEgAlHYnFApAJrFl@bIp@fKFxCEpHUtEu@lGcAfFiClLi@zCgCnSa@xBg@nB_BdFVb@PL~@fAt@nBH^TbBDnDQzFHjDVdEH~BEtBa@xAmAxBKX_@tAiBtTWxFg@tEg@`Do@|BILqAtB{AjCwAnDcAbDu@lCWjBMhBGtCBtAX~EFvABxA@tF@j@h@LxBYtJ_AbG]|Pa@jGg@tC{@rD}ApE_BvD_@xNB~FPhEv@lRpExBz@~AlBz@`DPfCElM@jBT`FbApGvE|TjAtElAlCfBxBxO|LhCjBdAj@nC`AvEnA~ElAtCjAxCrBtDpChC`AjARpAHnLVhAFdAN~@^nBpBj@jAl@tCRxC?t@SpJTbEv@|D`GtPhAzE\\hEDfHRhCx@lDxA~ClBjEhD~MrAtDfA|B`ChE`AhCjAhD|AxBx@f@tHjDXJxBr@~@E`DmAhAItBn@f@nAF^RxEI`F[bLWnH_@nENpBx@zARRz@p@|@fBDbFZ|N^bG?jAc@pCiAjE]fBw@~Eq@nCkBbGiBzCcAzC]dDEr@NhBd@j@HDPn@cAzBm@v@{AtAeB|Be@x@kAfCaAbDo@jDq@rCiBdFiAzDcAvEg@zAmAvCgA`CeBxBmAlCaAfCq@r@u@h@eAlA}@xA{@jAoAnA{@h@w@hAi@bDa@zAiCjEm@pAm@vBaA~BM@c@K&quot;,
  levels: &quot;P@BE@B?D@@EAADBEDBBD@ABBF@A?GAADBF??@@??@B?AH@@B??BDBJB@?C?@@@A@BHCBEA?A?FBCHC@DBBHBDA@C@FAA??B?A?HA?C@E?B?F@DAABALAB??C??AAA@D?@?@D@?AD@?@A@?B@@AA@AHADCAFB@CBFBDBH?@EB@AAE@A??CAJBAD@F?B@A@A@@BA??EDBIAD?@D@?DB@FACHBDBCBFAB?@EB@A@E??FBDBABEA?CAJ@AC?@CBGABEC@CBFB@EA@C@K@B@DA@F?@BAECAHBCE?@C??B@ECBG@?B@IBDBEBCBGCA@CEAB?FC@@HBEBFBC@LBDABAE@ABGADB?DBF@BAECABADAH@C@DB?ADABGABD@?CAF@ADBG@C@AE@CAFACBIBD@@BDACBFBBAEC@CBF@CA@DBFCBIBBE@B?ACAFB?@BC?AF@?CA?EAB@?AFAA?DAB@E?B?AC?AK@B@?A?CBG@BAAEA@CFAEABIBDA?ADACAGBA@EA?AD?BE@AA@DBHABD?BDBBDAAEB?BAG@B?BF@A?DABDCJ?C?@AECB?AE@A@FA@A@CBBE?CB?AHB@AB?DA@A@AC@?EB@C@A@?B@AD@C@B@C@P&quot;,
  zoomFactor: 2, 
  numLevels: 18
});
map65.addOverlay(polyline1_2);

  }
}

&lt;/script&gt;

What happens when you receive a good handheld GPS unit for Christmas and you have to travel a lot to see the family?&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;&lt;div id=&quot;map_canvas65&quot; style=&quot;width: 450px; height: 300px&quot;&gt;&lt;/div&gt;&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt;initialize65();&lt;/script&gt;

&lt;p&gt;Guess what... Google is not up to date about certain streets... And guess what... OpenStreetMap is :) 
    </content:encoded>

    <pubDate>Sun, 26 Dec 2010 11:57:09 -0500</pubDate>
    <guid isPermaLink="false">http://www.olivierhill.ca/archives/65-guid.html</guid>
    
</item>
<item>
    <title>Snowshoeing</title>
    <link>http://www.olivierhill.ca/archives/66-Snowshoeing.html</link>
            <category>Personal</category>
    
    <comments>http://www.olivierhill.ca/archives/66-Snowshoeing.html#comments</comments>
    <wfw:comment>http://www.olivierhill.ca/wfwcomment.php?cid=66</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.olivierhill.ca/rss.php?version=2.0&amp;type=comments&amp;cid=66</wfw:commentRss>
    

    <author>nospam@example.com (Olivier Hill)</author>
    <content:encoded>
    &lt;script src=&quot;http://maps.google.com/maps/api/js?sensor=false&amp;amp;libraries=geometry&quot; type=&quot;text/javascript&quot;&gt;
  &lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function initialize66() {
    var mapCenter = new google.maps.LatLng(45.6212635, -73.791298);
    var myOptions = {
      zoom: 14,
      center: mapCenter,
      mapTypeId: google.maps.MapTypeId.HYBRID
    };
    var map66 = new google.maps.Map(document.getElementById(&quot;map_canvas66&quot;),
        myOptions);

var sw = new google.maps.LatLng(45.613853, -73.797394);
var ne = new google.maps.LatLng(45.628674, -73.785202);
var bounds = new google.maps.LatLngBounds(sw, ne);
//map66.fitBounds(bounds);

var polyline66_1 = google.maps.geometry.encoding.decodePath(&quot;{jluGpsjaMDODWIw@IWMEQDWPIBa@GK@i@Vy@ZOBGI[iASE[PSASWOa@MSM[GWO[USaA_@_@YKMO]QEIBKA[B[XMVOx@ITIJCTEr@Op@If@MtAKhB?ZJlB\\zBNzAC|@DNHHPJJL`Al@LPAA?@I^Bv@G`A_@nCMd@SjBSxAI`ECPEn@e@`AU|@@FOTK?_@Ky@WWEk@LSC_@Qc@MiAo@_Bw@[K_Ao@mBcAQKg@SOMg@Qu@g@_Aa@UESF[Pe@HQCYQ_A}@UIOOOGSS}@S[K{@o@SC[?a@BKAOKG?_@]a@KS?MCa@J_@GUQMWQSg@a@QSOKSFAJBREx@r@j@^t@DVBb@Db@C~@AvAJRHXTxAE|@BbASdBNpBGtD@PCFAKABHHVf@NFJ?NOh@}@LODALYN}@z@m@NEP?JCJ[LKNeANUJ[@e@EKHm@NSr@SHGBO?OIy@DaBD_@Ao@NeAPQ^?p@ZnAlAPHd@Gl@]`@Db@XHBPNVHnAt@LL`@LhCxAf@RLLfAf@PNbBx@h@P^TR@PCX@pATTDR?NQBQCYFOHQ^c@NWD_@?U?_@Gy@Ao@BuA`@cCv@{FFs@?q@BYVED?^ZdBjBPJTXd@z@f@Td@p@BJHHPITq@D[H[p@_CVs@BWz@{B`AkDNUFWLW^uAFO@YEOAQBIUYIc@Fc@H?LIb@c@FMC?EU@HHFBICkAGe@?i@jAm@XWd@WVIFI?SFQHKRI^a@TCp@WLK?E&quot;);

var path66 = new google.maps.Polyline({
    path: polyline66_1,
    strokeColor: &quot;#FF0000&quot;,
    strokeOpacity: 0.8,
    strokeWeight: 3
  });

path66.setMap(map66);

}

&lt;/script&gt;

It&#039;s snowing, the river is frozen, time to go snowshoeing:&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;&lt;div id=&quot;map_canvas66&quot; style=&quot;width: 450px; height: 300px&quot;&gt;&lt;/div&gt;&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt;initialize66();&lt;/script&gt;
&lt;p&gt; 
    </content:encoded>

    <pubDate>Sun, 13 Feb 2011 15:31:29 -0500</pubDate>
    <guid isPermaLink="false">http://www.olivierhill.ca/archives/66-guid.html</guid>
    
</item>
<item>
    <title>Dell LCD Display</title>
    <link>http://www.olivierhill.ca/archives/64-Dell-LCD-Display.html</link>
            <category>Computers</category>
    
    <comments>http://www.olivierhill.ca/archives/64-Dell-LCD-Display.html#comments</comments>
    <wfw:comment>http://www.olivierhill.ca/wfwcomment.php?cid=64</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.olivierhill.ca/rss.php?version=2.0&amp;type=comments&amp;cid=64</wfw:commentRss>
    

    <author>nospam@example.com (Olivier Hill)</author>
    <content:encoded>
    Dell LCD Display control from shell.

&lt;/p&gt;&lt;pre&gt;
#!/bin/bash

# Max length the LCD can accept. Typically 62
MAXLENGTH=62

# Read from first argument if present, else take first line of stdin
if [ $# -lt 1 ]; then
	read INPUT
	INPUT=$(echo $INPUT | tr -d [:cntrl:])
else
	INPUT=$(echo $1 | tr -d [:cntrl:])
fi

# Check if we respected the max length after removing control chars
if [ ${#INPUT} -gt $MAXLENGTH ]; then
	echo &quot;Cannot use more than $MAXLENGTH characters&quot;
	exit 1
fi

# Split by bytes and encode them as hex strings (0xff)
BYTES=$(echo -n $INPUT | od --width=1 -v -t x1 | grep &quot; &quot; |
	awk &#039;{print $2}&#039; | awk &#039;{print &quot;0x&quot;$1}&#039;)

# Encode length of string as hex digit also
LENGTH=$(printf &quot;0x%x&quot; ${#INPUT})

# Go through all bytes, grouping them by chunk of 16 bytes
i=3
CMD=&quot;0x0 0x0 $LENGTH&quot;
LINES=()
for BYTE in $BYTES; do
	# Chunk ready, append it to array and reset counters
	if [ $i -gt 16 ]; then
		LINES[${#LINES[*]}]=&quot;$CMD&quot;
		CMD=$(printf &quot;0x%x&quot; ${#LINES[*]})
		i=1
	fi

	# Push byte on accumulator
	CMD=&quot;$CMD $BYTE&quot;
	let i+=1
done

# Put last chunk into array
LINES[${#LINES[*]}]=&quot;$CMD&quot;

# Tell BMC text to print on LCD, chunk by chunk
for i in &quot;${LINES[@]}&quot;; do
	/usr/bin/ipmitool raw 0x6 0x58 0xc1 $i &gt; /dev/null
done

# Tell BMC to output our User String on LCD
/usr/bin/ipmitool raw 0x6 0x58 0xc2 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 &gt; /dev/null

&lt;/pre&gt;&lt;p&gt; 
    </content:encoded>

    <pubDate>Fri, 04 Jun 2010 14:26:01 -0400</pubDate>
    <guid isPermaLink="false">http://www.olivierhill.ca/archives/64-guid.html</guid>
    
</item>
<item>
    <title>BART cushioned seats</title>
    <link>http://www.olivierhill.ca/archives/68-BART-cushioned-seats.html</link>
            <category>Photography</category>
    
    <comments>http://www.olivierhill.ca/archives/68-BART-cushioned-seats.html#comments</comments>
    <wfw:comment>http://www.olivierhill.ca/wfwcomment.php?cid=68</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.olivierhill.ca/rss.php?version=2.0&amp;type=comments&amp;cid=68</wfw:commentRss>
    

    <author>nospam@example.com (Olivier Hill)</author>
    <content:encoded>
    Interesting use of one of my Flickr photo in a quite disgusting article: &lt;a href=&quot;http://secondavenuesagas.com/2011/03/08/in-praise-of-hard-plastic-seats/&quot;&gt;2nd Avenue Sagas: In praise of hard plastic seats&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/ohill/4792950499/&quot; title=&quot;BART seats by Olivier Hill, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4100/4792950499_82b32d60c1.jpg&quot; width=&quot;500&quot; height=&quot;333&quot; alt=&quot;BART seats&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You should go read the article, as it points out why plastic seats are indeed the way to go in subways. I&#039;m wondering if the seats in the AMT trains suffer from the same contamination. 
    </content:encoded>

    <pubDate>Sat, 19 Mar 2011 14:39:17 -0400</pubDate>
    <guid isPermaLink="false">http://www.olivierhill.ca/archives/68-guid.html</guid>
    
</item>

</channel>
</rss>
