<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>BooK</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/book1/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.perl.org/users/book1/atom.xml" />
    <id>tag:blogs.perl.org,2009-11-03:/users/book1//208</id>
    <updated>2013-01-17T15:44:22Z</updated>
    <subtitle>A blog about the Perl programming language</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.38</generator>

<entry>
    <title>Once a week, every week</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/book1/2013/01/once-a-week-every-week.html" />
    <id>tag:blogs.perl.org,2013:/users/book1//208.4210</id>

    <published>2013-01-10T13:28:20Z</published>
    <updated>2013-01-17T15:44:22Z</updated>

    <summary>CPAN modules A year ago, Mark Fowler resolved to release a Perl distribution each and every week and invited other Perl hackers to do so....</summary>
    <author>
        <name>BooK</name>
        <uri>http://www.bruhat.net/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/book1/">
        <![CDATA[<h2>CPAN modules</h2>

<p>A year ago, Mark Fowler 
<a href="http://blog.twoshortplanks.com/2011/12/31/once-a-week-every-week/">resolved to release a Perl distribution each and every week</a>
and invited other Perl hackers to do so.</p>]]>
        <![CDATA[<p>This led Christopher Madsen to start <a href="http://onceaweek.cjmweb.net/" title="CPAN once a week">a leaderboard for the contest</a>.</p>

<p>I immediately wanted to play, and I think I held for about two weeks
before giving up. Then in May, I tried again, starting with the release
of <a href="http://metacpan.org/module/Acme::MetaSyntactic/">Acme-MetaSyntactic</a> 1.000, and that time held until the end of the
year: I'm at 37 weeks in a row now, and the chain is still being built
as I write this. I'm at rank number 8. <code>:-)</code></p>

<p><small>
Interestingly, when looking at the <a href="http://onceaweek.cjmweb.net/historical">historical results</a>
for the CPAN contest, I'm ranking number two of all times, with a chain
of 98 consecutive weeks. I owe this again to <a href="http://metacpan.org/module/Acme::MetaSyntactic/">Acme-MetaSyntactic</a>.
At least this time, the module is <em>only</em> responsible for the first
30 weeks of my current run...
</small></p>

<h2>Blog posts</h2>

<p>For years, I wanted to have a blog. Not that I think I have a lot of
interesting opinions to share. Or that random people would be interested
to read my thoughts. I think of it more as an exercise in writing, to
build up my writing skills. A (private) family blog is also something
I want to do, because the days go by, and we tend to forget the daily
treasures.  So I think it would be nice to pick up and store some
memories before the kids have grown up too much (they have already,
but they are still so interesting to watch and so lovable).</p>

<p>So, this post is the first post of my "once a week, every week" attempt
at keeping a blog. I actually start writing entries without a blog being
set up. Writing the blog engine is going to be part of the experiment.</p>

<h2>The rules</h2>

<p>Here are the rules:</p>

<ul>
<li>publish a blog entry, in any one of my blogs, at least once every week</li>
<li>the limit of a week is the midnight between Saturday night
and Sunday morning UTC (same as the CPAN-once-a-week contest)</li>
<li>until I have a working blog engine, the commit date is considered the
best approximation for the publication date</li>
</ul>

<p>We'll see how that works out. Wish me luck!</p>

<p>(Ultimately, the Perl-related posts will be cross-posted here from my personal blog. Publishing stuff here is just a way of shaming me into actually doing what I resolved to.)</p>]]>
    </content>
</entry>

<entry>
    <title>Sorry I can&apos;t dance, I&apos;m holding on to my friend&apos;s purse</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/book1/2012/09/sorry-i-cant-dance-im-holding-on-to-my-friends-purse.html" />
    <id>tag:blogs.perl.org,2012:/users/book1//208.3794</id>

    <published>2012-09-07T17:00:00Z</published>
    <updated>2012-09-07T20:50:56Z</updated>

    <summary>Don&apos;t you love static web sites? So easy to deploy, so intrinsically safe... On the other hand, writing all your HTML by hand, like in 1994 (before server-side includes, for example) is rather painful. Of course there are tools like...</summary>
    <author>
        <name>BooK</name>
        <uri>http://www.bruhat.net/</uri>
    </author>
    
    <category term="plackwallflower" label="plack wallflower" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/book1/">
        <![CDATA[<p>Don't you love static web sites? So easy to deploy, so intrinsically safe... On the other hand, writing all your HTML by hand, like in 1994 (before server-side includes, for example) is rather painful.</p>

<p>Of course there are tools like <a href="http://jekyllrb.com/">Jekyll</a>, but they kind of force you to adopt <em>their</em> conventions when you write <em>your</em> site.</p>

<p>What I'd really love to do, is to write my web site using one of those nice web frameworks we have now, update the data in there using all the nice tools they provide, and then generate the static version of the site to deploy. Most the fancy "dynamic" stuff can be handled with JavaScript on the browser.</p>

<p>This is what <a href="http://metacpan.org/module/wallflower/">wallflower</a> does.
Given a list of URL and a <a href="http://metacpan.org/module/Plack/">Plack</a> application, it will save all those URL into a set of files, ready to be uploaded.</p>

<p>Some advantages to this approach:</p>

<ul>
<li>works with <em>any</em> Plack application</li>
<li>all the data entry can be done offline, running <code>plackup myapp.psgi</code> (or whatever your web framework offers) on your laptop</li>
<li>no need to setup a web server to generate the data</li>
<li>no network involved: it's faster than <code>wget -m</code></li>
<li>publishing is as easy as <code>./generate_urls | wallflower -a myapp.psgi -d output &amp;&amp; git commit -m "Site update" &amp;&amp; git push</code></li>
</ul>

<p></p>

<p>The next step is to pick all the local links from the pages, to crawl the whole website from a limited set of starting points. This is on my TODO list.</p>

<p><a href="https://metacpan.org/release/App-Wallflower">Try</a><a href="http://search.cpan.org/dist/App-Wallflower/"> it!</a></p>
]]>
        <![CDATA[<h2>History and naming</h2>

<p>Back in October 2010, at <a href="http://act.osdc.fr/osdc2010fr">OSDC.fr </a> I saw sukria's talk about <a href="http://metacpan.org/module/Dancer">Dancer</a>. Of course I loved it. However I'm a rather shy person in regards to web sites.</p>

<p>I find that static web sites have a lot of advantages:</p>

<ul>
<li>they are easy to setup anywhere (just upload the files)</li>
<li>they have no security issues themselves (of course the webserver may have some)</li></li>
<li>they don't need maintenance</li>
</ul>

<p></p>

<p>A discussion started, with (as far as I remember) <a href="https://metacpan.org/author/MARCC">Marc Chantreux</a>, <a href="https://metacpan.org/author/SUKRIA">Alexis Sukrieh</a> and <a href="https://metacpan.org/author/FRANCKC">Franck Cuny</a> (the great thing about Dancer devs, is that they attend conferences in France!).</p>

<p>We were saying:</p>

<ul>
<li>Wouldn't it be great to be able to have say, a blog, written in Dancer, but entirely static?"</li>
<li>We could always deal with the comments at an external site, with clever use of JavaScript...</li>
<li>Hey, That's another great project!</li>
<li>Too bad we have so little time...</li>
</ul>

<p>(We later found out about <a href="http://disqus.com/">DISQUS</a>)</p>

<p>A tool for making a static web site out of any Dancer application, that would be neat. After Alexis' talk, made with <a href="https://github.com/sukria/Broadway">Broadway</a>, and Franck talking about <a href="http://lumberjaph.net/jitterbug/">jitterbug</a>, it was obvious we needed to make a dance-related pun.</p>

<p>And in fact,I knew exactly how to describe it. It was like the people at a party that do <em>not</em> dance, and always have a perfectly good excuse, like "Sorry I can't dance, I'm holding on to my friend's purse".</p>

<p>Lacking the English name for those, we still didn't have a name for the project, until  Alexis popped up on the IRC channel a few days later with a link to <a href="http://www.urbandictionary.com/define.php?term=wallflower">the urban dictionary definition of wallflower</a>. After a little time spent search on YouTube, I found the perfect example of a <a href="http://www.youtube.com/watch?v=asghWbE60Rg">wallflower dance</a>.</p>

<p>Because a good pun should never be wasted, a first version of the
program has been included in Dancer since version 1.3000_01.
Very early on, <a href="https://metacpan.org/author/VPIT">Vincent Pit</a> remarked that (besides the name) it really had nothing to do with Dancer, and was all about Plack. This has been on the back of my mind ever since.</p>

<p>The <a href="https://metacpan.org/module/App::Wallflower">App::Wallflower</a> module is the proper, Plack-aware, version of the original program. As said in the documentation:</p>

<blockquote>
  <p>wallflower treats all Plack applications equally, even if the first version of the program was targetting Dancer only.</p>
</blockquote>

<p>Thanks Plack, for helping us to be so inclusive.</p>
]]>
    </content>
</entry>

<entry>
    <title>Acme::MetaSyntactic is back!</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/book1/2012/05/acmemetasyntactic-is-back.html" />
    <id>tag:blogs.perl.org,2012:/users/book1//208.3208</id>

    <published>2012-05-07T12:15:00Z</published>
    <updated>2012-05-08T00:31:21Z</updated>

    <summary>After a hiatus of five and a half years, Acme::MetaSyntactic is finally back! For this version, I have split the distribution in two: the &quot;core&quot; modules, available in the Acme-MetaSyntactic distribution, the historical themes (with a few additions), available in...</summary>
    <author>
        <name>BooK</name>
        <uri>http://www.bruhat.net/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/book1/">
        <![CDATA[<p>After a hiatus of five and a half years, <a href="https://metacpan.org/module/Acme::MetaSyntactic">Acme::MetaSyntactic</a> is finally back!</p>

<p>For this version, I have split the distribution in two:<br />
<ul><br />
	<li>the "core" modules, available in the <a href="https://metacpan.org/release/Acme-MetaSyntactic">Acme-MetaSyntactic</a> distribution,</li><br />
	<li>the historical themes (with a few additions), available in the <a href="https://metacpan.org/release/Acme-MetaSyntactic-Themes">Acme-MetaSyntactic-themes</a> distribution. I will slowly update it (weekly?) with the themes I received in 2005-2006 and didn't include at the time.</li><br />
</ul></p>

<p>The main change is the creation of the <a href="https://metacpan.org/module/Test::MetaSyntactic">Test::MetaSyntactic</a> test module, that makes it much easier for theme authors to create their own theme distributions, and check that they follow the rules for Acme::MetaSyntactic themes.</p>

<p>Anyone willing to create new Acme::MetaSyntactic themes is invited to simply create<br />
their own distribution (no need to send me patches any more!), and stick in a t/metasyntactic.t test file with the following content:</p>

<p><code><br />
use Test::MetaSyntactic;<br />
all_themes_ok();<br />
</code></p>

<p>Simply email me so that I can update the  <a href="https://metacpan.org/module/Bundle::MetaSyntactic">MetaSyntactic bundle</a>.</p>

<p><small>(In other news, <a href="https://metacpan.org/module/BOOK/Acme-MetaSyntactic-Themes-1.000/lib/Acme/MetaSyntactic/french_presidents.pm">France has a new president</a>.)</small></p>]]>
        
    </content>
</entry>

<entry>
    <title>Organizing the Perl QA Hackathon 2011</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/book1/2011/04/organizing-the-perl-qa-hackathon-2011.html" />
    <id>tag:blogs.perl.org,2011:/users/book1//208.1690</id>

    <published>2011-04-25T08:00:00Z</published>
    <updated>2011-12-06T10:50:44Z</updated>

    <summary>It&apos;s been almost a week since the Perl QA Hackathon 2011 in Amsterdam is over. As usual since 2008, the main topics were the Test and CPAN toolchains. Other people will talk a lot better than me about the work...</summary>
    <author>
        <name>BooK</name>
        <uri>http://www.bruhat.net/</uri>
    </author>
    
    <category term="perlqahackathonamsterdambudget" label="perl qa hackathon amsterdam budget" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/book1/">
        <![CDATA[<p>It's been almost a week since the Perl QA Hackathon 2011 in Amsterdam is over. As usual since 2008,
the main topics were the Test and CPAN toolchains. Other people will talk
a lot better than me about the work they achieved during these three days.</p>

<p>In this post, I'd like to give some information about the organization.</p>
]]>
        <![CDATA[<h1>Some history</h1>

<p>The idea of doing a QA Hackathon in Amsterdam actually dates back to the
2009 hackathon in Bimingham. At the time, Abigail and I both talked with
Barbie about doing it in Amsterdam, already counting on our employer to
sponsor it. Then we went back to work, and time slipped.</p>

<p>Lars (daxim) and the Vienna.pm team announced the 2010 QA Hackathon in
Vienna at the time we were actually starting to think about doing it
in Amsterdam (i.e. it was much too late for us to actually organize anything).
At the end of the QA Hackathon in Vienna, I was a little more explicit
about doing it in Amsterdam.</p>

<p>In December 2010, after almost abandoning the idea of doing a QA Hackathon
in Amsterdam, I finally went to our IT Director to talk about it, and he really liked
the idea. Booking.com instantly became a sponsor and a supporter.</p>

<h1>Budget</h1>

<p>Booking.com not only sponsored the Hackathon with money, but also with
the venue and network, with all the lunches and some employee time
(Erica and myself).</p>

<p>The Perl QA Hackathon is also a community event, and no less than four
Perl organizations (Vienna.pm, the YAPC Europe Foundation, the Enlightened
Perl Organization and the French Perl Mongers) have supported us with money.</p>

<p>This hackathon was also special because contrary to the previous two,
there was official organization directly organizing it (Birmingham.pm
in 2009, and Vienna.pm in 2010). Which means there was no bank account
for the event.</p>

<p>Luckily, the YAPC Europe Foundation was able to support the Hackathon
with its bank account: it accepted all the donations on behalf of the
organizers, and donated money back from that budget to cover the expenses
incured by the event: 11 people received a donation to cover their travel
expenses, I arranged payment for the accomodation and what was left to
pay for the dinners and will also receive a donation to cover that.</p>

<p>Here is a summary of the Hackathon budget:</p>

<table border="1" style="padding: 1ex">
<tr><th>Income</th><th align="right">9740.00</th><th>Expenses</th><th align="right">8678.69</th></tr>
<tr><td>Booking.com</td><td align="right">5000.00</td><td>Accomodation</td><td align="right">4336.13</td></tr>
<tr><td>Vienna.pm</td><td align="right">3440.00</td><td>Travel</td><td align="right">3915.00</td></tr>
<tr><td>EPO</td><td align="right">500.00</td> <td>Dinners</td><td align="right">331.12</td></tr>
<tr><td>YEF</td><td align="right">500.00</td> <td>Bank fees</td><td align="right">96.44</td></tr>
<tr><td>Mongueurs de Perl</td><td align="right">300.00</td><td></td><td></td></tr>
</table>

<p>Don't forget the very generous sponsorship that are the venue and lunches:
a hackathon having to pay for those definitely needs to include them
in their previsions...</p>

<p>So, after taking the bank fees into account, this hackathon made a profit of 1061.31 €. This is a final budget. (This post was updated (twice) with the bank fees to make the budget  final.)</p>

<p>All the surplus money from this QA Hackathon will integraly be given to
the organizing body of the next QA Hackathon, as a kickstart donation.</p>

<h1>The dinners</h1>

<p>I wasn't really sure if the dinners should have been paid by the
Hackathon or not. At first, none would have been paid, because
the budget could only cover travel and accommodation. But then
Alias' flight was covered by his work, so the budget suddenly
had a surplus instead of a loss.</p>

<p>Having a surplus felt great, and given I expect there will be another
QA Hackathon next year, it would be very nice to start a tradition of
sponsoring the next event with the surplus of the previous one, like
YAPC Europe conferences do.  This is especially relevant this year,
because there was no non-profit organization holding the "organizer" 
role. We started with an empty bank account, and YEF can't and shouldn't
keep the surplus for itself.</p>

<p>Still, some of the attendees were students, and didn't have a
lot of money (and remember the attendees are giving their
time and work to help improve the toolchain), so it would harsh
to ask them to pay for a restaurant that they didn't choose
and that didn't match their budget.</p>

<p>In the end, I settled on the following slogan for the dinners:</p>

<blockquote>If you pay for yourself, it will be appreciated,<br/>
if you don't, it will be taken care of.
</blockquote>

<p>The total dinner bill for Sunday evening was about 1050 €.
The organization only had to pay around 280 €. Which means the attendees
basically sponsored 770 € to next year's budget simply by paying for
their evening meals that night.</p>
]]>
    </content>
</entry>

</feed>
