<?xml version="1.0" encoding="UTF-8" ?>
<rss
    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/"
    version="2.0">
    <channel>
        <title>The Stochastic Game</title>
        <description></description>
        <link>https://ludovic.chabant.com/devblog</link>
        <lastBuildDate>Tue, 01 May 2018 20:43:38 PDT</lastBuildDate>
        <generator>PieCrust</generator>
        <sy:updatePeriod>hourly</sy:updatePeriod>
        <sy:updateFrequency>1</sy:updateFrequency>
        
         
        <item>
            <title>Effects of CPU Caches</title>
            <link>https://ludovic.chabant.com/devblog/2018/04/30/effects-of-cpu-caches/</link>
            <comments>https://ludovic.chabant.com/devblog/2018/04/30/effects-of-cpu-caches/#disqus_thread</comments>
            <pubDate>Mon, 30 Apr 2018 20:07:35 PDT</pubDate>
            <dc:creator>ludovic</dc:creator>

            
            <category>programming</category>
            

            <description />

            <content:encoded><![CDATA[
                <p>I recently read <a href="https://medium.com/@minimarcel/effect-of-cpu-caches-57db81490a7f">this post</a> by Nicolas Douillet about CPU caches and
performance. I recommend it! Apart from being a nice, fairly easily digestable
recap of how CPUs work when it comes to memory, it also taught me the existence
of something I totally didn&rsquo;t know about until now: the <a href="https://en.wikipedia.org/wiki/Translation_lookaside_buffer"><em>Translation Lookaside
Buffer</em></a>.</p>
<p>It&rsquo;s used to cache recently used mappings between physical and
virtual memory. I had no idea that this stuff was cached, and that it therefore
could have some important effect on performance.</p>

                
            ]]></content:encoded>
        </item>
         
        <item>
            <title></title>
            <link>https://ludovic.chabant.com/devblog/2018/04/20/230220/</link>
            <comments>https://ludovic.chabant.com/devblog/2018/04/20/230220/#disqus_thread</comments>
            <pubDate>Fri, 20 Apr 2018 23:02:20 PDT</pubDate>
            <dc:creator>ludovic</dc:creator>

            
            <category>micro</category>
            

            <description />

            <content:encoded><![CDATA[
                <p>Iron Maiden singer: “CAN I PLAY WITH MADNESS”</p>
<p>My kid: “Yes you can play with magnets. It’s pretty fun.”</p>

                
            ]]></content:encoded>
        </item>
         
        <item>
            <title>Gutentags Gets A Job</title>
            <link>https://ludovic.chabant.com/devblog/2018/04/01/gutentags-gets-a-job/</link>
            <comments>https://ludovic.chabant.com/devblog/2018/04/01/gutentags-gets-a-job/#disqus_thread</comments>
            <pubDate>Sun, 01 Apr 2018 21:07:04 PDT</pubDate>
            <dc:creator>ludovic</dc:creator>

            
            <category>vim</category>
            
            <category>gutentags</category>
            

            <description />

            <content:encoded><![CDATA[
                <p>So event though I spent most of my long Easter week-end doing <a href="https://ludovic.chabant.com/devblog/2018/04/01/203321/">random cool
stuff</a>, I still got to do some nerdy stuff &ndash; namely catching up with bugs
and feature requests for <a href="https://bolt80.com/gutentags/">Gutentags</a>, which is my most popular open-source
project to date.</p>
<p><a href="https://www.flickr.com/photos/snebtorlife/201645392/"><img alt="Ceci n'est pas un tag" src="https://ludovic.chabant.com/devblog/2018/04/01/gutentags-gets-a-job//tag.jpg" /></a></p>
<p>The main new thing is that Gutentags is now using Vim 8&rsquo;s job API (<code>job_start()</code>
and the like), with a compatibility layer for Neovim&rsquo;s own, sadly different (but
older), job API. This doesn&rsquo;t make Gutentags any more asynchronous than it was
before, since I jumped through hoops to make it work correctly even before, but
it does clean up the code in a few places:</p>
<ol>
<li>
<p>No more need for a <code>.lock</code> file that indicates if the background job is
   running. This means less chance of Gutentags getting &ldquo;stuck&rdquo; because the lock
   file was somehow left behind incorrectly by a previous crash.</p>
</li>
<li>
<p>No more need for polling the aforementioned lock file&hellip; we can just wait for
   a job to finish.</p>
</li>
<li>
<p>As a corollary of the previous point, it&rsquo;s now easy to force-refresh Vim&rsquo;s
   status line and get real-time, correct indication of whether Gutentags is
   running in the background or not. See <code>:help gutentags-status-line</code> for more
   information on this.</p>
</li>
</ol>
<p>Because I don&rsquo;t want to support 2 code paths in the same file, the requirements
for Gutentags have been bumped to versions of Vim/Neovim that have the
<code>job</code>/<code>*jobwait</code> features&hellip; if you need to use Gutentags with Vim 7 for some
reason, you can stay on the <code>vim7</code> branch, which may or may not receive some bug
fixes in the future.</p>
<p>You can pull the latest changes from <a href="https://bitbucket.org/ludovicchabant/vim-gutentags">BitBucket</a> or <a href="https://github.com/ludovicchabant/vim-gutentags">Github</a> depending
on which DVCS you prefer. Have fun!</p>

                
            ]]></content:encoded>
        </item>
         
        <item>
            <title></title>
            <link>https://ludovic.chabant.com/devblog/2018/04/01/203321/</link>
            <comments>https://ludovic.chabant.com/devblog/2018/04/01/203321/#disqus_thread</comments>
            <pubDate>Sun, 01 Apr 2018 20:33:21 PDT</pubDate>
            <dc:creator>ludovic</dc:creator>

            
            <category>micro</category>
            

            <description />

            <content:encoded><![CDATA[
                <p>Easter long weekend was pretty good 😊 </p>
<p><a href="https://ludovic.chabant.com/devblog/2018/04/01/203321//95de4a0a362611e8a28af23c91aea81f_image_jpg"><img src="https://ludovic.chabant.com/devblog/2018/04/01/203321//95de4a0a362611e8a28af23c91aea81f_image_jpg_thumb.jpg" alt="95de4a0a362611e8a28af23c91aea81f_image_jpg_thumb"/></a></p>
<p><a href="https://ludovic.chabant.com/devblog/2018/04/01/203321//967de362362611e884a8f23c91aea81f_image_jpg"><img src="https://ludovic.chabant.com/devblog/2018/04/01/203321//967de362362611e884a8f23c91aea81f_image_jpg_thumb.jpg" alt="967de362362611e884a8f23c91aea81f_image_jpg_thumb"/></a></p>
<p><a href="https://ludovic.chabant.com/devblog/2018/04/01/203321//97001652362611e8a28af23c91aea81f_image_jpg"><img src="https://ludovic.chabant.com/devblog/2018/04/01/203321//97001652362611e8a28af23c91aea81f_image_jpg_thumb.jpg" alt="97001652362611e8a28af23c91aea81f_image_jpg_thumb"/></a></p>
<p><a href="https://ludovic.chabant.com/devblog/2018/04/01/203321//974a48bc362611e884a8f23c91aea81f_image_jpg"><img src="https://ludovic.chabant.com/devblog/2018/04/01/203321//974a48bc362611e884a8f23c91aea81f_image_jpg_thumb.jpg" alt="974a48bc362611e884a8f23c91aea81f_image_jpg_thumb"/></a></p>

                
            ]]></content:encoded>
        </item>
         
        <item>
            <title>GDC 2018 Recap</title>
            <link>https://ludovic.chabant.com/devblog/2018/03/31/gdc-2018-recap/</link>
            <comments>https://ludovic.chabant.com/devblog/2018/03/31/gdc-2018-recap/#disqus_thread</comments>
            <pubDate>Sat, 31 Mar 2018 22:06:02 PDT</pubDate>
            <dc:creator>ludovic</dc:creator>

            
            <category>gamedev</category>
            
            <category>gdc</category>
            
            <category>programming</category>
            

            <description />

            <content:encoded><![CDATA[
                <p>So that happened &ndash; I went to my second GDC and this time I <a href="https://ludovic.chabant.com/devblog/2018/03/19/190641/">presented something</a>. Look at how shiny my forehead is!</p>
<p><img alt="shiny forehead" src="https://ludovic.chabant.com/devblog/2018/03/31/gdc-2018-recap//shiny.png" /></p>
<p>Big thanks to the <a href="http://thetoolsmiths.org/">Toolsmiths</a> guys (<a href="https://twitter.com/gorlak">Geoff</a> and <a href="https://twitter.com/davidlightbown">David</a>) for
organizing a full day summit dedicated to tools programming &ndash; a topic that
I always thought was lacking a proper worldwide community the same way, say,
graphics rendering or animation have. Not only did I have the chance to present
my talk as part of that &ldquo;<em>Tools Tutorial Day</em>&rdquo;, but I had the honours of being
the inaugural talk!</p>
<p>The room was packed the whole day, so you can bet there will be more tools
programming shenanigans next year. </p>
<p>Oh, and my talk is now <a href="https://gdcvault.com/play/1025284/Tools-Tutorial-Day-A-Tale">available on the GDC Vault</a> if you have access.</p>
<p>Here are some notable things that happened this year:</p>
<ol>
<li>
<p>These conferences are always a good opportunity to catch up with friends and
  acquaintances, but this year I got to meet a bunch of really cool new people
through all the tools programming talks and roundtables. I&rsquo;m hoping to run into
them again in the future, which means I&rsquo;m looking forward to next year!</p>
</li>
<li>
<p>Speaking of roundtables, I went to more of them this year, instead of going to
  talks.  I was just lurking for most of them, however, being somewhat paralyzed by social anxiety and the difficulty of talking about stuff that I didn&rsquo;t directly work on myself. I&rsquo;ll have to speak up more next year.</p>
</li>
<li>
<p><a href="https://twitter.com/sehurlburt">Stephanie Hurlburt</a> inspired a bunch of <a href="https://twitter.com/ludovicchabant/status/967238494002192384">older devs like me</a> to
  allocate some time to meet with newbies who might have questions or just want
to get to know people in the games industry. I met with 5 people through that
Twitter thread and I hope I had some interesting or useful things to say to
them. I still have some follow-up to do with a few of them next week.</p>
</li>
<li>
<p>When you&rsquo;re a presenter, you&rsquo;re invited to a <em>lot</em> more parties. I went to
  more parties in a week than I did in my entire high-school years. I&rsquo;ll
probably go to less parties next time, since I didn&rsquo;t care for half of them&hellip;
just like back in high-school, I guess.</p>
</li>
<li>
<p>There&rsquo;s always one last edit you can do to your presentation before the big
  day. I think I got off lucky to have mine on the very first day, on the very
first time slot!</p>
</li>
<li>
<p>I went to a couple events and talks about &ldquo;<em>black people in gaming</em>&rdquo;, but
   I kinda felt out of place &ndash; first, I&rsquo;m only half-black, and second a lot of
those things are really about being black <em>in the United States</em>, which is
a whole different level from being black in Canada or in France (where the
racism and xenophobia is primarily aimed at other groups). Still, I got a hug
from <a href="https://twitter.com/cypheroftyr">Tanya</a> so that was cool.</p>
</li>
<li>
<p>I got to see <a href="https://en.wikipedia.org/wiki/Lord_British">Lord British</a> and <a href="https://en.wikipedia.org/wiki/Starr_Long">Blackthorne</a> for real. Their Ultima
  Online post-mortem was brilliant.</p>
</li>
<li>
<p>I also got to see a talk about interactive music in games which ended with the
  presenter picking up a guitar and harmonica to perform one of the songs from
his game. I guess I&rsquo;ll have to find some really awesome gimmick for my next
talk.</p>
</li>
<li>
<p>I went to a talk about the &ldquo;depiction of war in games&rdquo; which was pretty
   interesting. Rolling Stone later picked up one of the presenter&rsquo;s quotes to
make a <a href="https://twitter.com/Zachuhtak/status/976538175828094976">clickbaity title that got some backlash on Twitter</a>. You should still
<a href="https://gdcvault.com/play/1025102/Depiction-of-War-in-Games">watch the talk</a> if you can, though, since it made a couple good points about
the role of media and entertainment in society.</p>
</li>
<li>
<p>Speaking of depressing subjects, the amount of human misery you see around
   San Francisco is staggering. I live in Vancouver, though, where we have the
Downtown Eastside which also has a pretty shocking amount of homeless people.</p>
</li>
<li>
<p>Some people are <a href="https://twitter.com/Emre_C_Deniz/status/978763109685841920">calling for GDC to be hosted outside of the US</a>, which I would really welcome.</p>
</li>
<li>
<p>When walking around the conference, the social etiquette is to not make eye
  contact with someone that might be trying to read your name tag &ndash; they will
catch you catching them, and then quickly run away, probably scarred for life.</p>
</li>
<li>
<p>The dress code, however, is pretty convoluted &ndash; one thing is certain,
  however: if you want to spend some time near the indie gaming booths, you need
some cool outfit and blue hair.  </p>
</li>
</ol>
<p>And that&rsquo;s it! I took a few days around the long Easter week-end to rest from
the trip&hellip; </p>
<p><img alt="resting" src="https://ludovic.chabant.com/devblog/2018/03/31/gdc-2018-recap//pie.jpg" /></p>
<p>I hope you&rsquo;re all doing fine too!</p>

                
            ]]></content:encoded>
        </item>
         
        <item>
            <title></title>
            <link>https://ludovic.chabant.com/devblog/2018/03/19/190641/</link>
            <comments>https://ludovic.chabant.com/devblog/2018/03/19/190641/#disqus_thread</comments>
            <pubDate>Mon, 19 Mar 2018 19:06:41 PDT</pubDate>
            <dc:creator>ludovic</dc:creator>

            
            <category>micro</category>
            

            <description />

            <content:encoded><![CDATA[
                <p>And I’m done with my talk, yay! #gdc </p>
<p><a href="https://ludovic.chabant.com/devblog/2018/03/19/190641//54883b9e2be311e897e2f23c91aea81f_image_jpg"><img src="https://ludovic.chabant.com/devblog/2018/03/19/190641//54883b9e2be311e897e2f23c91aea81f_image_jpg_thumb.jpg" alt="54883b9e2be311e897e2f23c91aea81f_image_jpg_thumb"/></a></p>

                
            ]]></content:encoded>
        </item>
         
        <item>
            <title></title>
            <link>https://ludovic.chabant.com/devblog/2018/03/19/081552/</link>
            <comments>https://ludovic.chabant.com/devblog/2018/03/19/081552/#disqus_thread</comments>
            <pubDate>Mon, 19 Mar 2018 08:15:52 PDT</pubDate>
            <dc:creator>ludovic</dc:creator>

            
            <category>micro</category>
            

            <description />

            <content:encoded><![CDATA[
                <p>Well, this is it! #gdc</p>
<p><a href="https://ludovic.chabant.com/devblog/2018/03/19/081552//69904c442b8811e8a4a6f23c91aea81f_image_jpg"><img src="https://ludovic.chabant.com/devblog/2018/03/19/081552//69904c442b8811e8a4a6f23c91aea81f_image_jpg_thumb.jpg" alt="69904c442b8811e8a4a6f23c91aea81f_image_jpg_thumb"/></a></p>

                
            ]]></content:encoded>
        </item>
         
        <item>
            <title>A Tale of Three Data Schemas</title>
            <link>https://ludovic.chabant.com/devblog/2018/03/15/a-tale-of-three-data-schemas/</link>
            <comments>https://ludovic.chabant.com/devblog/2018/03/15/a-tale-of-three-data-schemas/#disqus_thread</comments>
            <pubDate>Thu, 15 Mar 2018 00:00:00 PDT</pubDate>
            <dc:creator>ludovic</dc:creator>

            
            <category>gamedev</category>
            
            <category>announcement</category>
            

            <description />

            <content:encoded><![CDATA[
                <p>Next week I&rsquo;ll be at the <a href="http://www.gdconf.com/">Game Developers&rsquo; Conference</a>, along with a lot of people from the video game industry, and I&rsquo;ll be giving my first presentation there, &ldquo;<a href="http://schedule.gdconf.com/session/tools-tutorial-day-a-tale-of-three-data-schemas/855679">A Tale of Three Data Schemas</a>&rdquo;.</p>
<p><img alt="A Tale of Three Data Schemas" src="https://ludovic.chabant.com/devblog/2018/03/15/a-tale-of-three-data-schemas//taleofthreedataschemas.png" /></p>
<p>I&rsquo;m starting small for my first GDC contribution by presenting during the &ldquo;pre-conference&rdquo; days that half of the attendees skip. This year should be super interesting however since it will be a full day dedicated to the <a href="http://www.gdconf.com/conference/tools-tutorial-day.html">fine art of making game creation tools</a>, courtesy of the fine folks at <a href="http://thetoolsmiths.org/">The Toolsmiths</a>.</p>
<p>The good thing for my nerves is that my presentation ended up being the very first presentation of the very first day &ndash; surely when half the audience is low on caffeine and completely jet-lagged, nobody will notice whether I know what I&rsquo;m talking about or not&hellip; and then I&rsquo;m done for the rest of the week! Yay!</p>

                
            ]]></content:encoded>
        </item>
         
        <item>
            <title>PieCrust 3.0</title>
            <link>https://ludovic.chabant.com/devblog/2018/02/27/piecrust-3.0/</link>
            <comments>https://ludovic.chabant.com/devblog/2018/02/27/piecrust-3.0/#disqus_thread</comments>
            <pubDate>Tue, 27 Feb 2018 22:00:35 PST</pubDate>
            <dc:creator>ludovic</dc:creator>

            
            <category>piecrust</category>
            

            <description />

            <content:encoded><![CDATA[
                <p>Last year <a href="https://ludovic.chabant.com/devblog/2017/04/28/piecrust-2.0-and-beyond/">I announced PieCrust 2.0</a> without much fanfare and, guess what,
here comes <a href="https://bolt80.com/piecrust/">PieCrust 3.0</a> now!</p>
<p>The funny thing is that I didn&rsquo;t post much about PieCrust during that whole
time&hellip; the joke about blog engines is that the more you work on them, the less
you actually use them.</p>
<p><img alt="Pie" src="https://ludovic.chabant.com/devblog/2018/02/27/piecrust-3.0//pie.jpg" /></p>
<p>So as is tradition, I released the new version of PieCrust on the <a href="https://pypi.python.org/pypi/PieCrust">Python
package server</a> and immediately found a bunch of new bugs, which
I proceeded to fix (we&rsquo;re now at PieCrust 3.1.1)&hellip; I&rsquo;m not very good at this
whole thing, even after several years.</p>
<p>But either way, it&rsquo;s out! You can run <code>pip install piecrust -U</code> and read the rest of
this post if you want to know what&rsquo;s new.</p>
<p><strong>This release has breaking changes</strong> so make sure you read the <a href="https://bolt80.com/piecrust/en/latest/support/">upgrade
notes</a> this time around.</p>


                
                <p><a href="https://ludovic.chabant.com/devblog/2018/02/27/piecrust-3.0/">Read more...</a></p>
                
            ]]></content:encoded>
        </item>
         
        <item>
            <title></title>
            <link>https://ludovic.chabant.com/devblog/2018/02/24/152114/</link>
            <comments>https://ludovic.chabant.com/devblog/2018/02/24/152114/#disqus_thread</comments>
            <pubDate>Sat, 24 Feb 2018 15:21:14 PST</pubDate>
            <dc:creator>ludovic</dc:creator>

            
            <category>micro</category>
            

            <description />

            <content:encoded><![CDATA[
                <p>Got my Doublesix dice to play some GURPS with style! </p>
<p><a href="https://ludovic.chabant.com/devblog/2018/02/24/152114//683daa5219b911e8af40f23c91aea81f_image_jpg"><img src="https://ludovic.chabant.com/devblog/2018/02/24/152114//683daa5219b911e8af40f23c91aea81f_image_jpg_thumb.jpg" alt="683daa5219b911e8af40f23c91aea81f_image_jpg_thumb"/></a></p>

                
            ]]></content:encoded>
        </item>
        
        
    </channel>
</rss>
