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

<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns="http://purl.org/rss/1.0/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:admin="http://webns.net/mvcb/"
>

<channel rdf:about="http://sartak.org">
<title>sartak</title>
<link>http://sartak.org</link>
<description></description>
<items>
 <rdf:Seq>
  <rdf:li rdf:resource="/talks/dcbpw-2013/git-flux/" />
  <rdf:li rdf:resource="http://sartak.org/2013/03/reinstating-class-mops-commit-history-in-moose.html" />
  <rdf:li rdf:resource="http://sartak.org/2013/03/marketing-101.html" />
  <rdf:li rdf:resource="http://www.perladvent.org/2012/2012-12-23.html" />
  <rdf:li rdf:resource="http://ox.iinteractive.com/advent/2012-12-21.html" />
  <rdf:li rdf:resource="http://ox.iinteractive.com/advent/2012-12-16.html" />
  <rdf:li rdf:resource="http://sartak.org/2012/08/moving-to-moose-hackathon.html" />
  <rdf:li rdf:resource="/talks/yapc-eu-2012/role-usage-patterns/" />
  <rdf:li rdf:resource="http://sartak.org/2012/08/why-dragon-quest-never-took-off-in-america.html" />
  <rdf:li rdf:resource="http://sartak.org/2012/07/my-study-calendar.html" />
 </rdf:Seq>
</items>
</channel>
<item rdf:about="/talks/dcbpw-2013/git-flux/">
<title>git flux</title>
<link>/talks/dcbpw-2013/git-flux/</link>
<description>&#x3C;p&#x3E;&#x3C;img src=&#x22;git-flux.png&#x22; /&#x3E;&#x3C;/p&#x3E;

&#x3C;p&#x3E;        There are a bazillion different ways to use git, which is of course a blessing and a curse. You can use it any way you like, but that puts the burden on you to figure out what&#x27;s best.&#x3C;/p&#x3E;

&#x3C;p&#x3E;    Well we&#x27;ve already done the hard work of figuring out what&#x27;s best. I&#x27;m here to explain how we use git at Infinity Interactive to ship great software to our clients.&#x3C;/p&#x3E;</description>
<dc:date>2013-04-20</dc:date>
</item>
<item rdf:about="http://sartak.org/2013/03/reinstating-class-mops-commit-history-in-moose.html">
<title>Reinstating Class::MOP&#x27;s Commit History in Moose</title>
<link>http://sartak.org/2013/03/reinstating-class-mops-commit-history-in-moose.html</link>
<description>
&#x3C;p&#x3E;Ever use &#x3C;code&#x3E;git blame&#x3C;/code&#x3E; or &#x3C;code&#x3E;git log&#x3C;/code&#x3E; in the Class::MOP parts of the Moose repository? If so you&#x27;ve probably seen Dave Rolsky&#x27;s mega commit &#x3C;code&#x3E;38bf2a25&#x3C;/code&#x3E;.
&#x3C;/p&#x3E;
&#x3C;pre class=&#x22;text code_snippet&#x22;&#x3E;$ git blame lib/Class/MOP/Package.pm

38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600   1)
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600   2) package Class::MOP::Package;
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600   3)
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600   4) use strict;
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600   5) use warnings;
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600   6)
0db1c8dc (Jesse Luehrs 2011-04-17 19:11:28 -0500   7) use Scalar::Util &#x27;blessed&#x27;, &#x27;reftype&#x27;, &#x27;weaken&#x27;;
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600   8) use Carp         &#x27;confess&#x27;;
0db1c8dc (Jesse Luehrs 2011-04-17 19:11:28 -0500   9) use Devel::GlobalDestruction &#x27;in_global_destruction&#x27;;
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600  10) use Package::Stash;
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600  11)
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600  12) use base &#x27;Class::MOP::Object&#x27;;
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600  13)
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600  14) # creation ...
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600  15)
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600  16) sub initialize {
38bf2a25 (Dave Rolsky  2010-12-27 08:48:08 -0600  17)     my ( $class, @args ) = @_;&#x3C;/pre&#x3E;
&#x3C;p&#x3E;This commit is a straight up copy of all the Class::MOP code into the Moose repository. Unfortunately it was committed as a single (gigantic) changeset.&#x3C;/p&#x3E;
&#x3C;pre class=&#x22;text code_snippet&#x22;&#x3E;commit 38bf2a2585e26a47c919fd4c286b7716acb51c00
Author: Dave Rolsky &#x26;lt;autarch@urth.org&#x26;gt;
Date:   Mon Dec 27 08:48:08 2010 -0600

    Merged CMOP into Moose

        ...&#x3C;/pre&#x3E;
&#x3C;p&#x3E;diffstat says this commit changed a solid fourteen thousand lines of code across 138 files. A most productive morning for Dave!&#x3C;/p&#x3E;
&#x3C;p&#x3E;This is problematic because there is a rich and quite important four years&#x27; worth of history before December 27th 2010, which is when Class::MOP was merged into the Moose repository. All of that is effectively lost because this commit is a copy instead of a more delicate merge. I don&#x27;t blame Dave one bit for this; I certainly did not object when this merger was going down, nor did I appreciate how valuable a clean commit history is.&#x3C;/p&#x3E;
&#x3C;p&#x3E;Why does this copy merge &#x3C;em&#x3E;really&#x3C;/em&#x3E; matter anyway? Well, for example, we needed to know exactly when Moose started forbidding bare references in attribute &#x3C;code&#x3E;default&#x3C;/code&#x3E; (to prove someone wrong on the Internet, that noblest of goals). I had to resort to clumsily bisecting Class::MOP releases on metacpan to find that the restriction was added in version 0.33 (August 19th 2006). I was sad that I was not able to use my usual &#x3C;code&#x3E;git blame&#x3C;/code&#x3E; or &#x3C;code&#x3E;git log&#x3C;/code&#x3E; tools because all Class::MOP history leads to &#x3C;code&#x3E;38bf2a25&#x3C;/code&#x3E;.
&#x3C;/p&#x3E;
&#x3C;p&#x3E;In an ideal world, we would be able to tweak &#x3C;code&#x3E;38bf2a25&#x3C;/code&#x3E;, two years later, to add a second parent commit (namely, the last commit in Class::MOP, &#x3C;code&#x3E;d004c8d5&#x3C;/code&#x3E;). This would turn it into a merge of two commits, which is how we could inject the entire Class::MOP commit history into Moose&#x27;s history. From then on git would inspect both histories to produce blame reports, commit logs, and so on. Just like any other merge commit.
&#x3C;/p&#x3E;
&#x3C;p&#x3E;Alas, we cannot just go ahead and change the public Moose repository to include the Class::MOP history like that. Adding a second parent to &#x3C;code&#x3E;38bf2a25&#x3C;/code&#x3E; would change that commit&#x27;s SHA. That would cause a cascade of changes to every subsequent commit (and their SHAs) in the two years&#x27; worth of commits since. This would in turn break everyone&#x27;s git clone of the Moose repository, as well as any external pointers to commits (such as RT tickets, email archives, etc), and the rest of the civilized world.
&#x3C;/p&#x3E;
&#x3C;p&#x3E;However! you, my friend, can fix it for your own checkout without screwing anybody up. git has a tool for rewiring parent commits. Two, in fact. The original tool was called &#x3C;code&#x3E;git graft&#x3C;/code&#x3E; but there is a slicker, more powerful replacement called, well, &#x3C;code&#x3E;git replace&#x3C;/code&#x3E;. These tools allow you to tweak individual commits in your local repository without disrupting other commits and their SHAs. This means you can still freely and painlessly share your branches and commits with GitHub, other developers, and yo momma.
&#x3C;/p&#x3E;
&#x3C;p&#x3E;To do this, start by cloning up a new copy of the Moose repository for playing around. Not strictly necessary, but caution is definitely warranted here. You want to make sure this procedure works before I, through you, potentially damage your working copy.&#x3C;/p&#x3E;
&#x3C;pre class=&#x22;sh code_snippet&#x22;&#x3E;git clone git://git.moose.perl.org/Moose.git
&#x3C;span class=&#x22;synStatement&#x22;&#x3E;cd&#x3C;/span&#x3E; Moose
&#x3C;/pre&#x3E;
&#x3C;p&#x3E;Next, fetch Class::MOP&#x27;s master so its commits also exist within the Moose repository.&#x3C;/p&#x3E;
&#x3C;pre class=&#x22;sh code_snippet&#x22;&#x3E;git remote add cmop git://git.moose.perl.org/Class-MOP.git
git fetch cmop master&#x3C;/pre&#x3E;
&#x3C;p&#x3E;Finally, fix the sledgehammer-merge commit &#x3C;code&#x3E;38bf2a25&#x3C;/code&#x3E; to include both its original parent commit &#x3C;strong&#x3E;and&#x3C;/strong&#x3E; the last Class::MOP commit. To do that we create an entirely new commit object that is exactly like &#x3C;code&#x3E;38bf2a25&#x3C;/code&#x3E; except it has that second parent commit, &#x3C;code&#x3E;d004c8d5&#x3C;/code&#x3E;. Then we use &#x3C;code&#x3E;git replace&#x3C;/code&#x3E; to tell git to use the new SHA (hint: it&#x27;s &#x3C;code&#x3E;f18fded8&#x3C;/code&#x3E;) in place of &#x3C;code&#x3E;38bf2a25&#x3C;/code&#x3E;.
&#x3C;/p&#x3E;
&#x3C;pre class=&#x22;sh code_snippet&#x22;&#x3E;&#x3C;span class=&#x22;synIdentifier&#x22;&#x3E;NEW_MERGE&#x3C;/span&#x3E;=&#x3C;span class=&#x22;synPreProc&#x22;&#x3E;$(&#x3C;/span&#x3E;
&#x3C;span class=&#x22;synSpecial&#x22;&#x3E;      git cat-file commit 38bf2a25&#x3C;/span&#x3E;
&#x3C;span class=&#x22;synSpecial&#x22;&#x3E;    &#x3C;/span&#x3E;&#x3C;span class=&#x22;synStatement&#x22;&#x3E;|&#x3C;/span&#x3E;&#x3C;span class=&#x22;synSpecial&#x22;&#x3E; perl -ple &#x3C;/span&#x3E;&#x3C;span class=&#x22;synStatement&#x22;&#x3E;&#x27;&#x3C;/span&#x3E;&#x3C;span class=&#x22;synConstant&#x22;&#x3E;/^parent / &#x26;amp;&#x26;amp; print &#x26;quot;parent d004c8d565f9b314da7652e9368aeb4587ffaa3d&#x26;quot;&#x3C;/span&#x3E;&#x3C;span class=&#x22;synStatement&#x22;&#x3E;&#x27;&#x3C;/span&#x3E;
&#x3C;span class=&#x22;synSpecial&#x22;&#x3E;    &#x3C;/span&#x3E;&#x3C;span class=&#x22;synStatement&#x22;&#x3E;|&#x3C;/span&#x3E;&#x3C;span class=&#x22;synSpecial&#x22;&#x3E; git &#x3C;/span&#x3E;&#x3C;span class=&#x22;synStatement&#x22;&#x3E;hash&#x3C;/span&#x3E;&#x3C;span class=&#x22;synSpecial&#x22;&#x3E;-object -t commit -w --stdin&#x3C;/span&#x3E;
&#x3C;span class=&#x22;synPreProc&#x22;&#x3E;)&#x3C;/span&#x3E;
git replace 38bf2a25 &#x3C;span class=&#x22;synPreProc&#x22;&#x3E;$NEW_MERGE&#x3C;/span&#x3E;
&#x3C;/pre&#x3E;
&#x3C;p&#x3E;All done. Enjoy your new (old) history!&#x3C;/p&#x3E;
&#x3C;pre class=&#x22;text code_snippet&#x22;&#x3E;$ git log --grep associated_metaclass --format=&#x27;format:%h %ad %an%n    %s&#x27; lib/Class/MOP

cc03c2b Sun Feb 19 12:51:48 2012 -0600 Dave Rolsky
    Weaken the associated_metaclass after cloning a method.
        -- post-merge commit
aa5bb36 Mon Apr 25 10:38:05 2011 -0500 Jesse Luehrs
    fix setting associated_metaclass and attribute on accessor objects
        -- post-merge commit
09ea7f8 Sun Aug 10 18:24:02 2008 +0000 Yuval Kogman
    package_name &#x26;gt;= associated_metaclass-&#x26;gt;name
        -- pre-merge commit!
5e60726 Sun Aug 10 17:42:29 2008 +0000 Yuval Kogman
    add associated_metaclass to Method
        -- pre-merge commit!&#x3C;/pre&#x3E;
&#x3C;pre class=&#x22;text code_snippet&#x22;&#x3E;$ git blame lib/Class/MOP/Package.pm

2243a22b (Stevan Little   2006-06-29 18:27:47 +0000   1)
2243a22b (Stevan Little   2006-06-29 18:27:47 +0000   2) package Class::MOP::Package;
2243a22b (Stevan Little   2006-06-29 18:27:47 +0000   3)
2243a22b (Stevan Little   2006-06-29 18:27:47 +0000   4) use strict;
2243a22b (Stevan Little   2006-06-29 18:27:47 +0000   5) use warnings;
2243a22b (Stevan Little   2006-06-29 18:27:47 +0000   6)
0db1c8dc (Jesse Luehrs    2011-04-17 19:11:28 -0500   7) use Scalar::Util &#x27;blessed&#x27;, &#x27;reftype&#x27;, &#x27;weaken&#x27;;
6d5355c3 (Stevan Little   2006-06-29 23:28:32 +0000   8) use Carp         &#x27;confess&#x27;;
0db1c8dc (Jesse Luehrs    2011-04-17 19:11:28 -0500   9) use Devel::GlobalDestruction &#x27;in_global_destruction&#x27;;
407a4276 (Jesse Luehrs    2010-05-10 23:20:29 -0500  10) use Package::Stash;
2243a22b (Stevan Little   2006-06-29 18:27:47 +0000  11)
f197afa6 (Jesse Luehrs    2010-05-10 21:13:19 -0500  12) use base &#x27;Class::MOP::Object&#x27;;
6e57504d (Stevan Little   2006-08-12 06:13:02 +0000  13)
6d5355c3 (Stevan Little   2006-06-29 23:28:32 +0000  14) # creation ...
6d5355c3 (Stevan Little   2006-06-29 23:28:32 +0000  15)
6d5355c3 (Stevan Little   2006-06-29 23:28:32 +0000  16) sub initialize {
3be6bc1c (Yuval Kogman    2008-08-14 18:21:45 +0000  17)     my ( $class, @args ) = @_;&#x3C;/pre&#x3E;
&#x3C;p&#x3E;In closing, to answer my original question using my normal means...&#x3C;/p&#x3E;
&#x3C;pre class=&#x22;text code_snippet&#x22;&#x3E;$ git log -p --reverse -S &#x27;References are not allowed as default&#x27;

commit 148b469742669e1a506538200f624dcdaeeb510a
Author: Stevan Little &#x26;lt;stevan.little@iinteractive.com&#x26;gt;
Date:   Wed Aug 16 21:32:05 2006 +0000

    no ref in the defaults

...

+    (Class::MOP::Attribute::is_default_a_coderef(\%options))
+        || confess(&#x26;quot;References are not allowed as default values, you must &#x26;quot;.
+                   &#x26;quot;wrap then in a CODE reference (ex: sub { [] } and not [])&#x26;quot;)
+            if exists $options{default} &#x26;amp;&#x26;amp; ref $options{default};&#x3C;/pre&#x3E;
&#x3C;p&#x3E;Sweet, sweet history.&#x3C;/p&#x3E;</description>
<dc:date>2013-03-18</dc:date>
</item>
<item rdf:about="http://sartak.org/2013/03/marketing-101.html">
<title>Marketing 101</title>
<link>http://sartak.org/2013/03/marketing-101.html</link>
<description>
&#x3C;p&#x3E;My girlfriend&#x27;s friend just sent her a message:&#x3C;/p&#x3E;
&#x3C;blockquote&#x3E;
 &#x3C;p&#x3E;I&#x27;m reading an interesting article about the founders of GitHub. I was wondering, &#x22;Where have I heard about this?&#x22;&#x3C;/p&#x3E;
 &#x3C;p&#x3E;It&#x27;s imprinted on my brain from all those hungover mornings drinking coffee out of that mug!&#x3C;/p&#x3E;
&#x3C;/blockquote&#x3E;
&#x3C;a href=&#x22;http://shop.github.com/products/octocat-mug&#x22;&#x3E;
 &#x3C;img width=&#x22;512px&#x22; height=&#x22;326px&#x22; src=&#x22;http://cdn.shopify.com/s/files/1/0051/4802/products/MG_0914_1024x1024.jpg?63&#x22; /&#x3E;
&#x3C;/a&#x3E;</description>
<dc:date>2013-03-16</dc:date>
</item>
<item rdf:about="http://www.perladvent.org/2012/2012-12-23.html">
<title>Give and Receive the Right Number of Gifts</title>
<link>http://www.perladvent.org/2012/2012-12-23.html</link>
<dc:date>2012-12-23</dc:date>
</item>
<item rdf:about="http://ox.iinteractive.com/advent/2012-12-21.html">
<title>OX off the Web</title>
<link>http://ox.iinteractive.com/advent/2012-12-21.html</link>
<dc:date>2012-12-21</dc:date>
</item>
<item rdf:about="http://ox.iinteractive.com/advent/2012-12-16.html">
<title>Configuration with OX</title>
<link>http://ox.iinteractive.com/advent/2012-12-16.html</link>
<dc:date>2012-12-16</dc:date>
</item>
<item rdf:about="http://sartak.org/2012/08/moving-to-moose-hackathon.html">
<title>Moose&#x3092;&#x5229;&#x7528;&#x3059;&#x308B;&#x306B;&#x5909;&#x3048;&#x308B;&#x30CF;&#x30C3;&#x30AB;&#x30BD;&#x30F3;</title>
<link>http://sartak.org/2012/08/moving-to-moose-hackathon.html</link>
<description>
&#x3C;p&#x3E;Oslo.pm&#x304C;&#x300C;&#x3C;a href=&#x22;http://act.yapc.eu/mtmh2012/&#x22;&#x3E;Moving to Moose Hackathon&#x3C;/a&#x3E;(Moose&#x3092;&#x5229;&#x7528;&#x3059;&#x308B;&#x306B;&#x5909;&#x3048;&#x308B;&#x30CF;&#x30C3;&#x30AB;&#x30BD;&#x30F3;)&#x300D;&#x3068;&#x3044;&#x3046;&#x4F1A;&#x8B70;&#x3092;&#x30CE;&#x30EB;&#x30A6;&#x30A7;&#x30FC;&#x306E;&#x30D7;&#x30EC;&#x30FC;&#x30B1;&#x30B9;&#x30C8;&#x30FC;&#x30EC;&#x30F3;&#x306B;&#x3042;&#x308B;&#x5C71;&#x5C0F;&#x5C4B;&#x3067;&#x958B;&#x50AC;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x79C1;&#x306F;&#x53C2;&#x52A0;&#x3057;&#x305F;&#x3044;&#x3067;&#x3057;&#x305F;&#x304C;&#x3001;&#x62DB;&#x5F85;&#x9802;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;Oslo.pm&#x3001;&#x3069;&#x3046;&#x3082;&#x3042;&#x308A;&#x304C;&#x3068;&#x3046;&#x3054;&#x3056;&#x3044;&#x307E;&#x3059;&#xFF01;
&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x4F1A;&#x8B70;&#x306E;&#x30C6;&#x30FC;&#x30DE;&#x306F;&#x4E8C;&#x3064;&#x3042;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;1&#x3064;&#x306F;&#x3C;a href=&#x22;http://act.yapc.eu/mtmh2012/sponsors.html#perlrdf&#x22;&#x3E;RDF&#x3C;/a&#x3E;&#x306B;&#x8208;&#x5473;&#x3042;&#x308B;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30C6;&#x30A3;&#x304C;&#x3001;Moose&#x3092;&#x5229;&#x7528;&#x3059;&#x308B;&#x306B;&#x30E2;&#x30B8;&#x30E5;&#x30FC;&#x30EB;&#x3092;&#x5909;&#x3048;&#x308B;&#x3064;&#x3082;&#x308A;&#x3067;&#x3057;&#x305F;&#x3002;&#x3042;&#x3068;1&#x3064;&#x306F;&#x3001;&#x3C;a href=&#x22;http://act.yapc.eu/mtmh2012/sponsors.html#p5mop&#x22;&#x3E;p5mop&#x3C;/a&#x3E;&#x3092;&#x5C48;&#x5F37;&#x5316;&#x3057;&#x3066;&#x3001;&#x3082;&#x3046;&#x5C11;&#x3057;perl&#x81EA;&#x4F53;&#x306B;&#x8FFD;&#x52A0;&#x3067;&#x304D;&#x308B;&#x72B6;&#x614B;&#x306B;&#x6E96;&#x5099;&#x3059;&#x308B;&#x4E88;&#x5B9A;&#x305F;&#x3061;&#x307E;&#x3057;&#x305F;&#x3002;
&#x3C;/p&#x3E;
&#x3C;h3&#x3E;Day -3 (YAPC::EU&#x306E;&#x65E5;)&#x3C;/h3&#x3E;
&#x3C;p&#x3E;&#x30C9;&#x30A4;&#x30C4;&#x306E;&#x30D5;&#x30E9;&#x30F3;&#x30AF;&#x30D5;&#x30EB;&#x30C8;&#x3067;&#x958B;&#x50AC;&#x3055;&#x308C;&#x305F;YAPC::EU&#x306B;&#x53C2;&#x52A0;&#x3067;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x521D;&#x3081;&#x3066;YAPC::EU&#x3060;&#x3063;&#x305F;&#x3057;&#x3001;&#x30A4;&#x30AE;&#x30EA;&#x30B9;&#x4EE5;&#x5916;&#x30E8;&#x30FC;&#x30ED;&#x30C3;&#x30D1;&#x306B;&#x884C;&#x3063;&#x305F;&#x3053;&#x3068;&#x304C;&#x306A;&#x304B;&#x3063;&#x305F;&#x304B;&#x3089;&#x3001;&#x3068;&#x3066;&#x3082;&#x5B09;&#x3057;&#x3044;&#x3067;&#x3057;&#x305F;&#x3002;YAPC&#x3067;&#x300C;&#x3C;a href=&#x22;http://sartak.org/talks/yapc-eu-2012/role-usage-patterns/&#x22;&#x3E;Moose&#x30ED;&#x30FC;&#x30EB;&#x5229;&#x7528;&#x30D1;&#x30BF;&#x30FC;&#x30F3;&#x3C;/a&#x3E;&#x300D;&#x3068;&#x3044;&#x3046;&#x30C8;&#x30FC;&#x30AF;&#x3092;&#x3084;&#x3063;&#x3066;&#x3044;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x4ECA;&#x56DE;&#x306E;&#x30C8;&#x30FC;&#x30AF;&#x306F;&#x3001;&#x5168;&#x3066;&#x306E;&#x524D;&#x56DE;&#x3088;&#x308A;&#x3088;&#x304F;&#x3067;&#x304D;&#x305F;&#x306A;&#xFF01;&#x3068;&#x79C1;&#x306F;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;&#x304D;&#x3063;&#x3068;&#x6765;&#x5E74;&#x306E;YAPC::Asia&#x306B;&#x884C;&#x304F;&#x3053;&#x3068;&#x304C;&#x3066;&#x304D;&#x308B;&#x306E;&#x3067;&#x3001;&#x305F;&#x3076;&#x3093;&#x65E5;&#x672C;&#x8A9E;&#x7248;&#x3092;&#x8A71;&#x305D;&#x3046;&#x3068;&#x3057;&#x307E;&#x3059;&#x3002;&#x4ECA;&#x5E74;&#x6765;&#x3089;&#x308C;&#x306A;&#x3044;&#x306E;&#x306F;&#x3059;&#x307F;&#x307E;&#x305B;&#x3093;&#xFF01;
&#x3C;/p&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7838221830&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/yapc-audience.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;h3&#x3E;Day 0 (&#x65C5;&#x306E;&#x65E5;)&#x3C;/h3&#x3E;
&#x3C;p&#x3E;&#x30D5;&#x30E9;&#x30F3;&#x30AF;&#x30D5;&#x30EB;&#x30C8;&#x304B;&#x3089;&#x30B9;&#x30BF;&#x30F4;&#x30A1;&#x30F3;&#x30B2;&#x30EB;&#x306B;&#x98DB;&#x3093;&#x3067;&#x884C;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x30DB;&#x30C6;&#x30EB;&#x304B;&#x3089;&#x30D5;&#x30E9;&#x30F3;&#x30AF;&#x30D5;&#x30EB;&#x30C8;&#x7A7A;&#x6E2F;&#x306B;&#x3001;&#x305D;&#x3057;&#x3066;&#x98DB;&#x884C;&#x6A5F;&#x306B;&#x901A;&#x3063;&#x305F;&#x9053;&#x304C;&#x5206;&#x304B;&#x308A;&#x306B;&#x304F;&#x3044;&#x3068;&#x601D;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;Hauptbahnhof(&#x4E2D;&#x592E;&#x3068;&#x3044;&#x3046;&#x304B;&#x99C5;)&#x3067;&#x4E57;&#x308A;&#x63DB;&#x3048;&#x306E;&#x6A19;&#x8B58;&#x304C;&#x3061;&#x3087;&#x3063;&#x3068;&#x8AAD;&#x3081;&#x307E;&#x305B;&#x3093;&#x3067;&#x3057;&#x305F;&#x3002;&#x30C9;&#x30A4;&#x30C4;&#x8A9E;&#x306F;&#x5168;&#x7136;&#x5206;&#x304B;&#x3089;&#x306A;&#x3044;&#x306E;&#x3067;&#x3057;&#x305F;&#x3002;&#x3057;&#x304B;&#x3082;&#x3001;&#x7A7A;&#x6E2F;&#x306E;&#x30B2;&#x30FC;&#x30C8;&#x3092;&#x8D8A;&#x3048;&#x305F;&#x5F8C;&#x3001;&#x30D0;&#x30B9;(!)&#x3067;&#x98DB;&#x884C;&#x6A5F;&#x306B;&#x904B;&#x3070;&#x3055;&#x308C;&#x307E;&#x3057;&#x3066;&#x3001;&#x9053;&#x8DEF;&#x304B;&#x3089;&#x968E;&#x6BB5;&#x3067;&#x76F4;&#x63A5;&#x306B;&#x4E57;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x30D3;&#x30C3;&#x30AF;&#x30EA;&#x3057;&#x305F;&#xFF01;&#x3C;/p&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880429950&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/flight-in.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880429316&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/oslo-bus.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;p&#x3E;&#x7D50;&#x5C40;&#x3001;&#x30D7;&#x30EC;&#x30FC;&#x30B1;&#x30B9;&#x30C8;&#x30FC;&#x30EC;&#x30F3;&#x306E;&#x5C71;&#x5C0F;&#x5C4B;&#x306B;&#x7121;&#x4E8B;&#x306B;&#x5230;&#x7740;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x3C;/p&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880431538&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/lodge-lake.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880431082&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/lodge-interior.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;p&#x3E;&#x53C2;&#x52A0;&#x8005;&#x306E;&#x7686;&#x3055;&#x3093;&#x304C;&#x3001;&#x81EA;&#x5DF1;&#x7D39;&#x4ECB;&#x3057;&#x305F;&#x308A;&#x3001;&#x558B;&#x3063;&#x305F;&#x308A;&#x3001;&#x4E00;&#x7DD2;&#x306B;&#x5915;&#x98DF;&#x3092;&#x98DF;&#x3079;&#x307E;&#x3057;&#x305F;&#x3002;p5mop&#x306B;&#x8208;&#x5473;&#x3042;&#x308B;&#x53C2;&#x52A0;&#x8005;&#x304C;&#x300C;&#x57FA;&#x672C;&#x7684;&#x306B;&#x3001;&#x3069;&#x3046;&#x3084;&#x3063;&#x3066;role&#x3068;&#x3044;&#x3046;&#x6982;&#x5FF5;&#x306F;p5mop&#x306E;&#x4ED5;&#x7D44;&#x307F;&#x306B;&#x5408;&#x3046;&#xFF1F;&#x300D;&#x3068;&#x3044;&#x3046;&#x3092;&#x591C;&#x4E2D;&#x3059;&#x304E;&#x307E;&#x3067;&#x8AD6;&#x3058;&#x307E;&#x3057;&#x305F;&#x3002;&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x3C;a href=&#x22;http://twitter.com/robinsmidsrod&#x22;&#x3E;@robinsmidsrod&#x3C;/a&#x3E;&#x3055;&#x3093;&#x304C;&#x300C;&#x65E5;&#x672C;&#x8A9E;&#x3067;&#x5165;&#x529B;&#x3059;&#x308B;&#x65B9;&#x6CD5;&#x3092;&#x8AAC;&#x660E;&#x3057;&#x307E;&#x305B;&#x3093;&#x304B;&#xFF1F;&#x300D;&#x3068;&#x805E;&#x3044;&#x3066;&#x3001;&#x79C1;&#x306F;&#x3082;&#x3061;&#x308D;&#x3093;&#x5B09;&#x3057;&#x304F;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F; ;) &#x305D;&#x306E;&#x5F8C;&#x3001;XPath&#x3068;&#x304B;&#x3C;a href=&#x22;http://p3rl.org/XML::Rabbit&#x22;&#x3E;XML::Rabbit&#x3C;/a&#x3E;&#x3068;&#x304B;&#x3C;a href=&#x22;http://ja.wikipedia.org/wiki/Common_Locale_Data_Repository&#x22;&#x3E;Unicode CLDR&#x3C;/a&#x3E;&#x3068;&#x304B;&#x3068;&#x304B;&#x306B;&#x3064;&#x3044;&#x3066;&#x558B;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;
&#x3C;/p&#x3E;
&#x3C;h3&#x3E;Day 1 (&#x767B;&#x5C71;&#x306E;&#x65E5;)&#x3C;/h3&#x3E;
&#x3C;p&#x3E;&#x65E9;&#x8D77;&#x304D;&#x3057;&#x3066;&#x3001;&#x30D7;&#x30EC;&#x30FC;&#x30B1;&#x30B9;&#x30C8;&#x30FC;&#x30EC;&#x30F3;&#x3068;&#x3044;&#x3046;&#x6709;&#x540D;&#x306A;&#x5D16;&#x306B;&#x30CF;&#x30A4;&#x30AD;&#x30F3;&#x30B0;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x773A;&#x3081;&#x306F;&#x3068;&#x3063;&#x3063;&#x3063;&#x3066;&#x3082;&#x304D;&#x308C;&#x3044;&#x3067;&#x3057;&#x305F;&#xFF01;&#xFF01;&#xFF01;&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x65C5;&#x7ACB;&#x3061;&#x306F;10&#x6642;&#x304B;&#x3089;16&#x6642;&#x307E;&#x3067;&#x304B;&#x304B;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x305F;&#x3044;&#x3078;&#x3093;&#x75B2;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;&#xFF08;&#x56DB;&#x65E5;&#x5F8C;&#x3067;&#x3082;&#x307E;&#x3060;&#x8DB3;&#x304C;&#x75DB;&#x3044;&#xFF01;&#xFF09;&#x3C;/p&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880432218&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/picnic.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880432884&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/rocky-forest.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880376022&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/wave-of-trees.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880377090&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/focused-cliff.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880435618&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/pulpit-rock.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880377758&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/topdown-cliff.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;p&#x3E;&#x305D;&#x306E;&#x5F8C;&#x3067;&#x3001;&#x3C;a href=&#x22;http://ja.wikipedia.org/wiki/&#x30D5;&#x30E9;&#x30C3;&#x30AF;&#x30B9;_(&#x30B2;&#x30FC;&#x30E0;)&#x22;&#x3E;Fluxx&#x3C;/a&#x3E;(zombie&#x7248;&#x3068;cthulhu&#x7248;&#x7D44;&#x307F;&#x5408;&#x308F;&#x305B;&#x3089;&#x308C;&#x305F;)&#x3068;&#x3044;&#x3046;&#x30AB;&#x30FC;&#x30C9;&#x30B2;&#x30FC;&#x30E0;&#x3092;&#x3084;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x8A08;&#x753B;&#x8005;&#x306F;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30DE;&#x30FC;&#x3067;&#x3059;&#x304B;&#x3089;&#x3001;&#x6CD5;&#x5247;&#x304C;&#x9762;&#x767D;&#x3044;&#x3002;&#x3057;&#x304B;&#x3082;&#x30EB;&#x30FC;&#x30EB;&#x304C;&#x9032;&#x5316;&#x3059;&#x308B;&#x3053;&#x3068;&#x307E;&#x3067;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;
&#x3C;/p&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880437426&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/stevan-peek.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880438210&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/fluxx-rules.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880438674&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/pro-perigrin.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;h3&#x3E;Day 2 (&#x30CF;&#x30C3;&#x30AB;&#x30BD;&#x30F3;&#x306E;&#x4E00;&#x65E5;&#x76EE;)&#x3C;/h3&#x3E;
&#x3C;p&#x3E;&#x671D;&#x98DF;&#x304B;&#x3089;&#x663C;&#x98DF;&#x307E;&#x3067;&#x79C1;&#x304C;&#x300C;Moose&#x30ED;&#x30FC;&#x30EB;&#x5229;&#x7528;&#x30D1;&#x30BF;&#x30FC;&#x30F3;&#x300D;&#x3068;&#x3044;&#x3046;&#x30C8;&#x30FC;&#x30AF;&#x62E1;&#x5F35;&#x7248;&#x3092;&#x8A71;&#x3057;&#x3066;&#x3042;&#x3052;&#x307E;&#x3057;&#x305F;&#x3002;&#x663C;&#x98DF;&#x306E;&#x5F8C;&#x3067;&#x3001;&#x3C;a href=&#x22;http://twitter.com/pmichaud&#x22;&#x3E;@pmichaud&#x3C;/a&#x3E;&#x3055;&#x3093;&#x304C;&#x3C;a href=&#x22;http://pmichaud.com/2012/pres/mtmh2012-nqp/slides/start.html&#x22;&#x3E;NQP&#x8A00;&#x8A9E;&#x3C;/a&#x3E;&#x306B;&#x3064;&#x3044;&#x3066;&#x89E3;&#x8AAC;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30DF;&#x30F3;&#x30B0;&#x8A00;&#x8A9E;&#x304C;&#x4F5C;&#x308A;&#x305F;&#x3044;&#x65B9;&#x306F;&#x3001;NQP&#x3092;&#x4F7F;&#x3046;&#x3053;&#x3068;&#x3067;&#x3001;&#x304D;&#x3063;&#x3068;&#x3068;&#x3066;&#x3082;&#x65E9;&#x304F;&#x8A08;&#x753B;&#x3067;&#x304D;&#x308B;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;
&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x3C;a href=&#x22;http://twitter.com/perlyarg&#x22;&#x3E;@perlyarg&#x3C;/a&#x3E;&#x3055;&#x3093;&#x3068;Moose&#x306E;&#x30ED;&#x30FC;&#x30EB;&#x30C6;&#x30B9;&#x30C8;&#x3092;p5mop&#x306B;&#x5909;&#x66F4;&#x3057;&#x3066;&#x59CB;&#x307E;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;p5mop&#x3067;&#x306F;&#x30ED;&#x30FC;&#x30EB;&#x5408;&#x6210;&#x306F;&#x4E0D;&#x5B8C;&#x5168;&#x3067;&#x3059;&#x304B;&#x3089;&#x3001;&#x305D;&#x306E;&#x30C6;&#x30B9;&#x30C8;&#x306F;&#x4FBF;&#x5229;&#x3060;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;
&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x6700;&#x521D;&#x306E;p5mop&#x306E;&#x62E1;&#x5F35;&#x3068;&#x3057;&#x3066;&#x3C;a href=&#x22;https://github.com/stevan/p5-mop/commit/04997c0c93c7&#x22;&#x3E;mopx::instance::tracking&#x3C;/a&#x3E;&#x306F;&#x3001;&#x79C1;&#x304C;&#x66F8;&#x3044;&#x305F;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;Moose&#x7248;&#x3088;&#x308A;&#x3082;&#x7C21;&#x5358;&#x3067;&#x3057;&#x305F;&#x3002;p5mop&#x306E;Class&#x3068;&#x3044;&#x3046;&#x30E1;&#x30BF;&#x30AF;&#x30E9;&#x30B9;&#x3092;&#x30B5;&#x30D6;&#x30AF;&#x30E9;&#x30B9;&#x3057;&#x3066;&#x3001;create_instance&#x3068;&#x3044;&#x3046;&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x306B;&#x30AA;&#x30D6;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x3092;&#x898B;&#x9003;&#x3055;&#x306A;&#x3044;&#x6319;&#x52D5;&#x3092;&#x8FFD;&#x52A0;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;
&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x5915;&#x98EF;&#x306E;&#x5F8C;&#x3067;&#x3001;&#x6628;&#x65E5;&#x306E;&#x65C5;&#x3060;&#x3057;&#x3001;&#x671D;&#x306E;&#x30C8;&#x30FC;&#x30AF;&#x3092;&#x3057;&#x305F;&#x304B;&#x3089;&#x3001;&#x305F;&#x3044;&#x3078;&#x3093;&#x75B2;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;&#x3067;&#x3001;&#x79C1;&#x304C;&#x3084;&#x3063;&#x305F;&#x3053;&#x3068;&#x306F;&#x3001;Fluxx&#x3060;&#x3051;&#x3067;&#x3057;&#x305F;&#x3002;&#x3C;/p&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880533504&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/artsy-stevan.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7879978022&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/perigrin-workstation.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;h3&#x3E;Day 3 (&#x30CF;&#x30C3;&#x30AB;&#x30BD;&#x30F3;&#x306E;&#x4E8C;&#x65E5;&#x76EE;)&#x3C;/h3&#x3E;
&#x3C;p&#x3E;&#x5148;&#x65E5;&#x66F8;&#x3044;&#x305F;DTrace&#x30D7;&#x30ED;&#x30FC;&#x30D6;&#x3092;Perl&#x306B;&#x8FFD;&#x52A0;&#x3059;&#x308B;&#x3C;a href=&#x22;https://rt.perl.org/rt3/Ticket/Display.html?id=114638&#x22;&#x3E;&#x30D1;&#x30C3;&#x30C1;&#x3C;/a&#x3E;&#x3092;&#x3084;&#x3063;&#x3068;&#x9001;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;p5p&#x304C;&#x53D7;&#x3051;&#x5165;&#x308C;&#x305F;&#x306E;&#x3067;&#x3001;5.18&#x304B;&#x3089;op-entry&#x3001;loading-file&#x3001;loaded-file&#x3068;&#x3044;&#x3046;&#x30D7;&#x30ED;&#x30FC;&#x30D6;&#x3092;&#x4F7F;&#x3046;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;
&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x3C;a href=&#x22;http://twitter.com/RubenVerborgh&#x22;&#x3E;@RubenVerborgh&#x3C;/a&#x3E;&#x3055;&#x3093;&#x304C;&#x300C;&#x6B63;&#x898F;&#x8868;&#x73FE;&#x3092;&#x4F7F;&#x3044;&#x3053;&#x306A;&#x3059;&#x6559;&#x5E2B;&#x3044;&#x307E;&#x3059;&#x304B;&#x30FC;&#xFF01;&#x300D;&#x3068;&#x805E;&#x3044;&#x3066;&#x3001;&#x300C;&#x79C1;&#x304C;&#x624B;&#x4F1D;&#x3063;&#x3066;&#x307F;&#x3066;&#x3042;&#x3052;&#x307E;&#x3057;&#x3087;&#x3046;&#x300D;&#x3068;&#x79C1;&#x306F;&#x7B54;&#x3048;&#x307E;&#x3057;&#x305F;&#x3002;&#x554F;&#x984C;&#x306F;&#x3001;&#x30C6;&#x30B9;&#x30C8;&#x304C;9&#x79D2;&#x4EE5;&#x4E0A;&#x3067;&#x5B9F;&#x884C;&#x3059;&#x308B;&#x306E;&#x3067;&#x3001;&#x3061;&#x3087;&#x3063;&#x3068;&#x9045;&#x3059;&#x304E;&#x307E;&#x3057;&#x305F;&#x3002;&#x5F79;800&#x56DE;&#x547C;&#x3073;&#x51FA;&#x3057;&#x305F;regcomp(&#x6B63;&#x898F;&#x8868;&#x73FE;&#x3092;&#x30B3;&#x30F3;&#x30D1;&#x30A4;&#x30EB;&#x3059;&#x308B;&#x95A2;&#x6570;)&#x3068;&#x3044;&#x3046;opcode&#x306B;2&#x79D2;&#x4EE5;&#x4E0A;&#x90E8;&#x5206;&#x304C;&#x3042;&#x308B;&#x3053;&#x3068;&#x3092;&#x3C;a href=&#x22;http://p3rl.org/Devel::NYTProf&#x22;&#x3E;Devel::NYTProf&#x3C;/a&#x3E;&#x3067;&#x898B;&#x3064;&#x3051;&#x307E;&#x3057;&#x305F;&#x3002;&#x3067;&#x3082;&#x3001;&#x3061;&#x3083;&#x3093;&#x3068;&#x3C;code&#x3E;qr//&#x3C;/code&#x3E;&#x3092;&#x4F7F;&#x3063;&#x305F;&#x306E;&#x3067;&#x3001;regcomp&#x304C;&#x307B;&#x3068;&#x3093;&#x3069;&#x547C;&#x3070;&#x306A;&#x3044;&#x306F;&#x305A;&#x3060;&#x3068;&#x601D;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;&#x6B8B;&#x5FF5;&#x3067;&#x3059;&#x304C;Devel::NYTProf&#x304C;opcode&#x5185;&#x306B;&#x898B;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x305B;&#x3093;&#x304C;&#x3001;DTrace&#x306F;&#x5404;C&#x95A2;&#x6570;&#x3067;&#x3082;&#x898B;&#x3089;&#x308C;&#x307E;&#x3059;&#x3002;&#x305D;&#x3057;&#x3066;&#x79C1;&#x304C;perl provider&#x306E;sub-entry&#x3068;sub-return&#x3068;&#x3044;&#x3046;&#x30D7;&#x30ED;&#x30FC;&#x30D6;&#x3092;&#x30C8;&#x30EC;&#x30FC;&#x30B9;&#x3057;&#x3066;&#x3001;pid provider&#x306E;C&#x95A2;&#x6570;&#x306E;entry&#x3068;return&#x3067;&#x3001;&#x9045;&#x3044;&#x30DE;&#x30C3;&#x30C1;&#x3060;&#x3051;&#x5185;regcomp&#x3092;&#x30C8;&#x30EC;&#x30FC;&#x30B9;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x767A;&#x898B;&#x3068;&#x3057;&#x3066;&#x3001;700&#x90E8;&#x5206;&#x306E;regcomp&#x306F;&#x901F;&#x3044;&#x3067;&#x3059;&#x3051;&#x3069;&#x3001;&#x3042;&#x3068;100&#x90E8;&#x5206;&#x306E;regcomp&#x306F;&#x305D;&#x306E;&#x901F;&#x3044;regcomp&#x3088;&#x308A;100x&#x4EE5;&#x4E0A;&#x9045;&#x3044;&#x3002;&#x306A;&#x306B;&#x3002;&#x3002;&#x3002;&#xFF1F;&#x5F8C;&#x7A0B;&#x3001;&#x9045;&#x3059;&#x304E;&#x305F;&#x6B63;&#x898F;&#x8868;&#x73FE;&#x306F;&#x8A18;&#x9332;&#x62EC;&#x5F27;&#x304C;&#x3042;&#x308A;&#x307E;&#x3057;&#x3066;&#x3001;&#x305D;&#x306E;&#x62EC;&#x5F27;&#x3092;&#x3C;code&#x3E;(?:...)&#x3C;/code&#x3E;&#x306B;&#x5909;&#x66F4;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x3068;&#x3066;&#x307F;&#x901F;&#x304F;&#x306A;&#x3063;&#x305F;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3057;&#x305F;&#xFF01;&#x5B9F;&#x884C;&#x306F;9&#x79D2;&#x304B;&#x3089;2&#x79D2;&#x307E;&#x3067;&#x6E1B;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;
&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x3082;&#x3046;&#x4E00;&#x3064;&#x554F;&#x984C;&#x306B;&#x624B;&#x4F1D;&#x3063;&#x3066;&#x3042;&#x3052;&#x307E;&#x3057;&#x305F;&#x3002;AUTOLOAD&#x3092;&#x4F7F;&#x3063;&#x3066;&#x3044;&#x308B;&#x30E2;&#x30B8;&#x30E5;&#x30FC;&#x30EB;&#x306B;&#x306F;&#x3001;&#x300C;URI::Namespace=HASH(0x7ff5fa032360) contains invalid characters for a type name. Names can contain alphanumeric character, &#x22;:&#x22;, and &#x22;.&#x22;&#x300D;&#x3068;&#x3044;&#x3046;&#x30A8;&#x30E9;&#x30FC;&#x304C;&#x767A;&#x751F;&#x3057;&#x3066;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;&#x7D50;&#x5C40;&#x3001;&#x539F;&#x56E0;&#x306F;&#x3C;code&#x3E;$obj-&#x26;gt;type&#x3C;/code&#x3E;&#x547C;&#x3073;&#x51FA;&#x3057;&#x3066;&#x3001;AUTOLOAD&#x3092;&#x5B9F;&#x884C;&#x3059;&#x308B;&#x306F;&#x305A;&#x304C;&#x3042;&#x308B;&#x3051;&#x3069;&#x3001;&#x5B9F;&#x306F;&#x540D;&#x524D;&#x3068;&#x3057;&#x3066;&#x3C;code&#x3E;$obj&#x3C;/code&#x3E;&#x3092;&#x6E21;&#x3057;&#x3066;&#x3001;&#x30BF;&#x30A4;&#x30D7;&#x3092;&#x5B9A;&#x7FA9;&#x3059;&#x308B;&#x3C;code&#x3E;Moose::Util::TypeConstraint::type($obj)&#x3C;/code&#x3E;&#x3092;&#x547C;&#x3073;&#x51FA;&#x3055;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;&#x3C;code&#x3E;no Moose::Util::TypeConstraint&#x3C;/code&#x3E;&#x3068;&#x304B;&#x3C;code&#x3E;use namespace::autoclean&#x3C;/code&#x3E;&#x3092;&#x8FFD;&#x52A0;&#x3059;&#x308B;&#x3068;&#x3001;type&#x3068;&#x3044;&#x3046;&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x306F;AUTOLOAD&#x3092;&#x5B9F;&#x884C;&#x3059;&#x308B;&#x306E;&#x3067;&#x3001;&#x3088;&#x304F;&#x89E3;&#x6C7A;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;
&#x3C;/p&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7880605988&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/doy-nothingmuch.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7886214546&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/reminiscing.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;h3&#x3E;Day 4 (&#x30CF;&#x30C3;&#x30AB;&#x30BD;&#x30F3;&#x306E;&#x4E09;&#x65E5;&#x76EE;)&#x3C;/h3&#x3E;
&#x3C;p&#x3E;p5mop&#x306F;&#x3C;code&#x3E;has $foo&#x3C;/code&#x3E;&#x5BA3;&#x8A00;&#x3067;&#x30A2;&#x30C8;&#x30EA;&#x30D3;&#x30E5;&#x30FC;&#x30C8;&#x5B9A;&#x7FA9;&#x3057;&#x307E;&#x3059;&#x3002;&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x3092;&#x5B9F;&#x884C;&#x3059;&#x308B;&#x6642;&#x306B;&#x3001;PadWalker&#x3067;&#x30AA;&#x30D6;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x306E;&#x5024;&#x3092;&#x305D;&#x306E;&#x5909;&#x6570;&#x306B;&#x4EE3;&#x5165;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x5185;&#x306B;&#x306F;&#x3001;&#x6B63;&#x3057;&#x304F;&#x5909;&#x6570;&#x3092;&#x4F7F;&#x3046;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x3067;&#x3082;&#x3001;&#x3C;a href=&#x22;http://twitter.com/doyster&#x22;&#x3E;@doyster&#x3C;/a&#x3E;&#x3055;&#x3093;&#x305F;&#x3061;&#x304C;bootstrap&#x3092;&#x66F8;&#x304D;&#x306A;&#x304A;&#x3057;&#x305F;&#x5F8C;&#x3067;&#x3001;$self(PadWalker&#x3067;&#x4EE3;&#x5165;&#x3055;&#x308C;&#x305F;&#x5909;&#x6570;)&#x306F;&#x6642;&#x3005;&#x9593;&#x9055;&#x3046;&#x30AA;&#x30D6;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x306B;&#x3042;&#x308B;&#x304C;$::SELF(local&#x3067;&#x4EE3;&#x5165;&#x3055;&#x308C;&#x305F;&#x5909;&#x6570;)&#x306F;&#x6B63;&#x3057;&#x3044;&#x30AA;&#x30D6;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x306B;&#x3042;&#x308B;&#x3053;&#x3068;&#x306B;&#x306A;&#x3063;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;@doyster&#x3068;&#x3C;a href=&#x22;http://twitter.com/stevanlittle&#x22;&#x3E;@stevanlittle&#x3C;/a&#x3E;&#x3068;&#x3C;a href=&#x22;http://twitter.com/nothingmuch&#x22;&#x3E;@nothingmuch&#x3C;/a&#x3E;&#x3068;&#x79C1;&#x3068;&#x30C7;&#x30D0;&#x30C3;&#x30B0;&#x3057;&#x3088;&#x3046;&#x3068;&#x3057;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;&#x7D50;&#x5C40;&#x539F;&#x56E0;&#x3092;&#x898B;&#x3064;&#x304B;&#x308C;&#x307E;&#x305B;&#x3093;&#x3067;&#x3057;&#x305F;&#x3002;
&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x3057;&#x304B;&#x3057;&#x3001;&#x3C;a href=&#x22;http://twitter.com/perldition&#x22;&#x3E;@perldition&#x3C;/a&#x3E;&#x3055;&#x3093;&#x304C;&#x66F8;&#x3044;&#x3066;&#x3044;&#x308B;&#x65B0;&#x3057;&#x3044;&#x30E2;&#x30B8;&#x30E5;&#x30FC;&#x30EB;&#x306B;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x89E3;&#x6C7A;&#x3067;&#x304D;&#x308B;&#x306F;&#x305A;&#x3067;&#x3059;&#x3002;&#x305D;&#x306E;&#x30E2;&#x30B8;&#x30E5;&#x30FC;&#x30EB;&#x306F;lexical pad&#x3067;&#x624B;&#x52D5;&#x7684;&#x306B;&#x7BA1;&#x7406;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x5177;&#x4F53;&#x7684;&#x306B;&#x3001;&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x5B9F;&#x884C;&#x6642;&#x306B;&#x3001;&#x30AB;&#x30B9;&#x30BF;&#x30E0;pad&#x3092;&#x30B9;&#x30BF;&#x30C3;&#x30AF;&#x306B;&#x30D7;&#x30C3;&#x30B7;&#x30E5;&#x3055;&#x308C;&#x3001;&#x305D;&#x306E;&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x304C;&#x30AA;&#x30D6;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x306E;&#x5024;&#x3092;&#x4F7F;&#x3048;&#x308B;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x304C;&#x8FD4;&#x3059;&#x6642;&#x306B;&#x3001;&#x30AB;&#x30B9;&#x30BF;&#x30E0;pad&#x3092;&#x30DD;&#x30C3;&#x30D7;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x30E2;&#x30B8;&#x30E5;&#x30FC;&#x30EB;&#x3067;&#x306F;&#x3001;&#x5909;&#x6570;&#x6C5A;&#x67D3;&#x304C;&#x629C;&#x3051;&#x3089;&#x308C;&#x308B;&#x306F;&#x305A;&#x3067;&#x3059;&#x3002;
&#x3C;/p&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7886214156&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/roof-lawn.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;h3&#x3E;Day 5 (&#x5E30;&#x5B85;&#x306E;&#x65E5;)&#x3C;/h3&#x3E;
&#x3C;p&#x3E;&#x7A7A;&#x6E2F;&#x307E;&#x3067;&#x7121;&#x4E8B;&#x306B;&#x7740;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x3067;&#x3082;&#x3001;&#x30C1;&#x30A7;&#x30C3;&#x30AF;&#x30A4;&#x30F3;&#x3057;&#x3088;&#x3046;&#x3068;&#x3057;&#x305F;&#x3089;&#x3001;&#x300C;&#x76EE;&#x7684;&#x5730;&#xFF1A;London/Gatwick&#x300D;&#x3068;&#x8868;&#x793A;&#x3055;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;&#x30AF;&#x30BD;&#x30A9;&#x30A9;&#xFF01;&#xFF01;&#x3068;&#x601D;&#x3063;&#x3066;&#x3001;&#x4E0D;&#x5B89;&#x611F;&#x3058;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;London/&#x3C;em&#x3E;Heathrow&#x3C;/em&#x3E;&#x304B;&#x3089;&#x30DC;&#x30B9;&#x30C8;&#x30F3;&#x307E;&#x3067;&#x98DB;&#x3076;&#x98DB;&#x884C;&#x306B;&#x4E57;&#x308A;&#x63DB;&#x3048;&#x308B;&#x4E88;&#x5B9A;&#x305F;&#x3063;&#x305F;&#x306E;&#x3067;&#x3059;&#x3002;Heathrow&#x306E;&#x30BF;&#x30FC;&#x30DF;&#x30CA;&#x30EB;5&#x306B;&#x4E57;&#x308A;&#x63DB;&#x3048;&#x308B;&#x306E;&#x306F;&#x3001;&#x4E8C;&#x6642;&#x9593;&#x3067;&#x3082;&#x3061;&#x3087;&#x3063;&#x3068;&#x8DB3;&#x308A;&#x306A;&#x3044;&#x306E;&#x3067;&#x3059;&#x306D;&#x3002;Gatwick&#x304B;&#x3089;Heathrow&#x307E;&#x3067;&#x4E57;&#x308A;&#x63DB;&#x3048;&#x308B;&#x306E;&#x306F;&#x7D76;&#x5BFE;&#x7121;&#x7406;&#x3067;&#x3059;&#xFF01;&#x539F;&#x56E0;&#x306F;&#x3001;&#x4E88;&#x7D04;&#x306B;&#x306F;&#x300C;London&#x300D;&#x3060;&#x3051;&#x793A;&#x3057;&#x3066;&#x3001;&#x30ED;&#x30F3;&#x30C9;&#x30F3;&#x306F;&#x822A;&#x7A7A;5&#x3064;&#x307E;&#x3067;&#x3042;&#x308B;&#x3068;&#x3001;&#x5168;&#x7136;&#x8003;&#x3048;&#x306A;&#x304B;&#x3063;&#x305F;&#x306E;&#x3067;&#x3059;&#x3002;
&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x3068;&#x306B;&#x304B;&#x304F;&#x3001;&#x30AB;&#x30B9;&#x30BF;&#x30DE;&#x30FC;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x306B;&#x300C;&#x98DB;&#x884C;&#x6A5F;&#x306E;&#x4E88;&#x7D04;&#x3092;&#x5909;&#x66F4;&#x3057;&#x3066;&#x304F;&#x308C;&#x306A;&#x3044;&#x304B;&#xFF1F;&#x300D;&#x3068;&#x805E;&#x3044;&#x3066;&#x3001;&#x300C;&#x65B0;&#x3057;&#x3044;&#x4E88;&#x7D04;&#x3092;&#x53D6;&#x308B;&#x3057;&#x304B;&#x3067;&#x304D;&#x307E;&#x305B;&#x3093;&#x300D;&#x3068;&#x7B54;&#x3048;&#x307E;&#x3057;&#x305F;&#x3002;&#x3067;&#x3001;&#x65B0;&#x3057;&#x304F;&#x3066;&#x9AD8;&#x3044;&#x4E88;&#x7D04;&#x3092;&#x53D6;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x30D5;&#x30E9;&#x30F3;&#x30AF;&#x30D5;&#x30EB;&#x30C8;&#x306E;&#x4EE3;&#x308F;&#x308A;&#x306B;&#x3001;&#x30AA;&#x30B9;&#x30ED;&#x3067;&#x4E57;&#x308A;&#x63DB;&#x3048;&#x307E;&#x3057;&#x3066;&#x3001;&#x76EE;&#x7684;&#x5730;&#x306F;Heathrow&#x306B;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x6012;&#x308A;&#x3092;&#x6E1B;&#x308B;&#x305F;&#x3081;&#x306B;&#x3001;Heathrow&#x3067;&#x30D3;&#x30FC;&#x30EB;&#x3068;&#x4E8C;&#x756A;&#x597D;&#x304D;&#x306A;&#x30C1;&#x30AD;&#x30F3;&#x30AB;&#x30C4;&#x30AB;&#x30EC;&#x30FC;&#x3092;&#x98DF;&#x3079;&#x307E;&#x3057;&#x305F;&#x3002;&#x7D50;&#x5C40;&#x3001;&#x5B9A;&#x523B;&#x901A;&#x308A;&#x306B;&#x5BB6;&#x306B;&#x5E30;&#x3063;&#x305F;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x3C;/p&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7902234762/&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/tau-rainbow.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7902236444/&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/outbound-ferry.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7902233400/&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/comfort-food.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7902238394/&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/moving-to-moose-hackathon/high-life.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;</description>
<dc:date>2012-08-31</dc:date>
</item>
<item rdf:about="/talks/yapc-eu-2012/role-usage-patterns/">
<title>Moose Role Usage Patterns</title>
<link>/talks/yapc-eu-2012/role-usage-patterns/</link>
<description>&#x3C;p&#x3E;Roles are one of the most exciting and powerful features provided by Moose, but also one of the most misunderstood. This talk will explore, in depth, some common usage patterns (and antipatterns) for roles and how best to use them in the design of your classes. I will also talk about the philosophy of roles and how they fit in with the larger OO toolset.&#x3C;/p&#x3E;</description>
<dc:date>2012-08-22</dc:date>
</item>
<item rdf:about="http://sartak.org/2012/08/why-dragon-quest-never-took-off-in-america.html">
<title>Why Dragon Quest Never Took Off in America</title>
<link>http://sartak.org/2012/08/why-dragon-quest-never-took-off-in-america.html</link>
<description>
&#x3C;p&#x3E;This is the &#x3C;em&#x3E;first&#x3C;/em&#x3E; dungeon.
&#x3C;/p&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/7713651052/&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/why-dragon-quest-never-took-off-in-america/maze-1.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;p&#x3E;Most other games&#x27; dungeons are a joke. But Dragon Quest I made me bust out the graph paper immediately.&#x3C;/p&#x3E;
&#x3C;p&#x3E;I think I&#x27;m going to love this game.&#x3C;/p&#x3E;</description>
<dc:date>2012-08-04</dc:date>
</item>
<item rdf:about="http://sartak.org/2012/07/my-study-calendar.html">
<title>My Study Calendar</title>
<link>http://sartak.org/2012/07/my-study-calendar.html</link>
<description>
&#x3C;p&#x3E;I&#x27;ve been studying Japanese for three years now. There are four tools that I have found to be invaluable in making me productive with the language. (I&#x27;m still trying to figure out how to be modest about it.)&#x3C;/p&#x3E;
&#x3C;p&#x3E;The first is &#x3C;a href=&#x22;http://ankisrs.net&#x22;&#x3E;&#x3C;strong&#x3E;Anki&#x3C;/strong&#x3E;&#x3C;/a&#x3E;, which I&#x27;ve discussed at length in some &#x3C;a href=&#x22;/2010/01/on-learning.html&#x22;&#x3E;old&#x3C;/a&#x3E; &#x3C;a href=&#x22;/2010/04/learning-japanese-with-sentences.html&#x22;&#x3E;blog&#x3C;/a&#x3E; &#x3C;a href=&#x22;/2012/02/how-many-sentences-teaches-a-word.html&#x22;&#x3E;posts&#x3C;/a&#x3E;. Anki is the lynchpin of my study. In the right hands, it offers more than its primary focus of maintaining knowledge efficiently. It &#x3C;a href=&#x22;/2012/03/near-miss-words.html&#x22;&#x3E;secretly&#x3C;/a&#x3E; &#x3C;a href=&#x22;/2012/02/how-many-sentences-teaches-a-word.html&#x22;&#x3E;doubles&#x3C;/a&#x3E; as an external, &#x3C;em&#x3E;queryable&#x3C;/em&#x3E; database that represents exactly the Japanese that I understand right now (with enough historical information that I can fudge in order to make progress charts). Anki is the &#x3C;i&#x3E;i&#x3C;/i&#x3E; in the &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Input_Hypothesis#Input_hypothesis&#x22;&#x3E;&#x3C;i&#x3E;i+1&#x3C;/i&#x3E; input hypothesis&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;
&#x3C;p&#x3E;The second tool is the &#x3C;em&#x3E;&#x3C;a href=&#x22;http://www.amazon.com/gp/product/0824835921/ref=as_li_ss_tl?ie=UTF8&#x26;amp;camp=1789&#x26;amp;creative=390957&#x26;amp;creativeASIN=0824835921&#x26;amp;linkCode=as2&#x26;amp;tag=sartak-20&#x22;&#x3E;&#x3C;strong&#x3E;Remembering the Kanji&#x3C;/strong&#x3E;&#x3C;/a&#x3E;&#x3C;/em&#x3E; system for learning kanji and its community-created companion website &#x3C;a href=&#x22;http://kanji.koohii.com&#x22;&#x3E;Reviewing the Kanji&#x3C;/a&#x3E;. Last weekend I finished the &#x3C;a href=&#x22;http://www.amazon.com/gp/product/0824831675/ref=as_li_ss_tl?ie=UTF8&#x26;amp;camp=1789&#x26;amp;creative=390957&#x26;amp;creativeASIN=0824831675&#x26;amp;linkCode=as2&#x26;amp;tag=sartak-20&#x22;&#x3E;third book&#x3C;/a&#x3E; in the series which covers characters 2049(&#x6B64;) through 3030(&#x9B31;). This is essentially college-level proficiency. So by completing RTK3 I&#x27;ve finished systematically studying and learning the kanji themselves. What&#x27;s left is acquiring vocabulary, and lots of it. Happily, the fruits of all the Heisig study is that kanji helps &#x3C;em&#x3E;massively&#x3C;/em&#x3E; rather than hinders.
&#x3C;/p&#x3E;
&#x3C;p&#x3E;The &#x3C;em&#x3E;fourth&#x3C;/em&#x3E; is my own &#x3C;strong&#x3E;sentence corpus&#x3C;/strong&#x3E; system, which I still have not devoted the appropriate amount of time to explain. Some day, but not today!
&#x3C;/p&#x3E;
&#x3C;h2&#x3E;A Calendar&#x3C;/h2&#x3E;
&#x3C;p&#x3E;The third tool is the focus of this article. It&#x27;s important to expose oneself to a variety of media. There&#x27;s no substitute for immersion in acquiring a second language. I need to make sure that I&#x27;m regularly reading articles and novels, practicing writing, watching movies, learning song lyrics (for &#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/4628540837/&#x22;&#x3E;karaoke&#x3C;/a&#x3E; purposes), playing video games, and everything else I enjoy doing. Just... in Japanese.
&#x3C;/p&#x3E;
&#x3C;p&#x3E;To track my progress, to keep me honest about my immersion, and to decide what kinds of study I should do today, I maintain a &#x3C;strong&#x3E;study calendar&#x3C;/strong&#x3E;. It used to take the form of a cheap whiteboard, inspired directly by &#x3C;a href=&#x22;http://gilesbowkett.blogspot.com/2011/01/my-habit-calendar-system-levelling-up.html&#x22;&#x3E;Giles&#x3C;/a&#x3E; &#x3C;a href=&#x22;http://gilesbowkett.blogspot.com/2010/02/calendar-win-rapid-course-correction.html&#x22;&#x3E;Bowkett&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;
&#x3C;a href=&#x22;http://www.flickr.com/photos/sartak/5998087904/in/photostream&#x22;&#x3E;
 &#x3C;img src=&#x22;/img/blog/my-study-calendar/whiteboard.jpg&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;/a&#x3E;
&#x3C;p&#x3E;The whiteboard calendar served me well for over a year. But it had many glaring problems:&#x3C;/p&#x3E;
&#x3C;ul&#x3E;
 &#x3C;li&#x3E;As you can see, it was messy. It would only support about a dozen goals before it became a wreck. Actually, more like five goals.&#x3C;/li&#x3E;
 &#x3C;li&#x3E;I could look at it and update it only when I was home. This meant that when I traveled my study went to shit.&#x3C;/li&#x3E;
 &#x3C;li&#x3E;It didn&#x27;t support metadata very well, though I certainly tried! Those numbers on each day represent the number of sentence cards I added to Anki (red), the number of words I learned (blue), and the number of kanji I learned (green).&#x3C;/li&#x3E;
 &#x3C;li&#x3E;It supported daily (horizontal) and weekly (vertical) goals well, but any other schedule was a pain to manage.&#x3C;/li&#x3E;
 &#x3C;li&#x3E;It wasn&#x27;t computerized so I couldn&#x27;t extract any statistics. Not even streaks. Of course I also threw away all my data every month, which led to weird mental side effects depending on how far into the month it was.&#x3C;/li&#x3E;
 &#x3C;li&#x3E;It was... accident-prone.&#x3C;/li&#x3E;
&#x3C;/ul&#x3E;
&#x3C;p&#x3E;I&#x27;d been trying to get away from the physical whiteboard calendar because I&#x27;m whatever the opposite of a Luddite is. I&#x27;ve collected quite a few crummy habit-building iPhone calendar apps.&#x3C;/p&#x3E;
&#x3C;h2&#x3E;&#x3C;a href=&#x22;http://tdp.me&#x22;&#x3E;The Daily Practice&#x3C;/a&#x3E;
&#x3C;/h2&#x3E;
&#x3C;p&#x3E;Thankfully (and finally!), a worthy replacement has come out, and I&#x27;ve been on it exclusively for six months now. I even threw away the whiteboard in a symbolic gesture of victory. The new system is called &#x3C;a href=&#x22;http://tdp.me&#x22;&#x3E;The Daily Practice&#x3C;/a&#x3E; and it looks like this (plus purple translations I added in post):
&#x3C;/p&#x3E;
&#x3C;img src=&#x22;/img/blog/my-study-calendar/full.png&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;p&#x3E;As you can see it solves the issues I had with my whiteboard. The quotation icons indicate notes, so I can track what I&#x27;m actually reading, watching, writing, etc. I can consult this calendar and update it from anywhere I have an internet connection, including from my phone. The lightly-shaded blocks are &#x22;free&#x22; days based on the independent schedule each goal has.&#x3C;/p&#x3E;
&#x3C;p&#x3E;This is the current set of commitments I demand of myself. I wrote them in Japanese because that is most definitely how I roll.&#x3C;/p&#x3E;
&#x3C;dl&#x3E;
 &#x3C;dt&#x3E;2ch&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Read &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/2channel&#x22;&#x3E;2chan&#x3C;/a&#x3E; every day. &#x22;&#x3C;em&#x3E;It has gained significant influence in Japanese society, comparable to that of traditional mass media such as television, radio, and magazines&#x3C;/em&#x3E;&#x22;. I&#x27;d be robbing myself of important arguing and trolling tactics if I ignored this!
 &#x3C;/dd&#x3E;
 &#x3C;dt&#x3E;&#x8A18;&#x4E8B; (article)&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Read an article-length document every day. This usually comes in the form of a &#x3C;a href=&#x22;http://ja.wikipedia.org/wiki/&#x30E1;&#x30A4;&#x30F3;&#x30DA;&#x30FC;&#x30B8;&#x22;&#x3E;Japanese Wikipedia&#x3C;/a&#x3E; article or a blog post.
 &#x3C;/dd&#x3E;
 &#x3C;dt&#x3E;&#x66F8;&#x304F; (write)&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Write every day. Sorry about &#x3C;a href=&#x22;http://twitter.com/search/from%3Asartak%20lang%3Aja&#x22;&#x3E;all the Japanese tweets&#x3C;/a&#x3E;. :) (not really sorry)
 &#x3C;/dd&#x3E;
 &#x3C;dt&#x3E;&#x30A2;&#x30F3;&#x30AD;&#x306E;&#x52C9;&#x5F37; (anki)&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Do my Anki reviews every day. I have an unbroken streak of 164 days, which is how long I&#x27;ve been using The Daily Practice. It&#x27;s also the &#x3C;a href=&#x22;http://twitter.com/jshirley/status/228887804485197824&#x22;&#x3E;longest streak on the site&#x3C;/a&#x3E;!
 &#x3C;/dd&#x3E;
 &#x3C;dt&#x3E;&#x6F22;&#x5B57; (kanji)&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Learn at least one kanji every day. This uses the Heisig system I described above as tool number two. It has a recycling widget because I&#x27;m done! Once my last checkmark falls off the weekly calendar, so too will the goal itself. But the data is still there. That&#x27;s a great bit of design.&#x3C;/dd&#x3E;
 &#x3C;dt&#x3E;&#x30AB;&#x30FC;&#x30C9;&#x3092;&#x52A0;&#x3048;&#x308B; (cards)&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Add sentence cards to Anki every day.&#x3C;/dd&#x3E;
 &#x3C;dt&#x3E;&#x5358;&#x8A9E; (vocabulary)&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Learn at least one word every day. I keep track of my active vocabulary &#x3C;a href=&#x22;https://github.com/sartak/vocabulary/commits&#x22;&#x3E;on github&#x3C;/a&#x3E;.
 &#x3C;/dd&#x3E;
 &#x3C;dt&#x3E;&#x30B2;&#x30FC;&#x30E0; (game)&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Play a video game every &#x3C;em&#x3E;other&#x3C;/em&#x3E; day. Currently playing Final Fantasy VII on my newly-imported PlayStation 2.
 &#x3C;/dd&#x3E;
 &#x3C;dt&#x3E;&#x8AAD;&#x3080; (read book)&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Read part of a book or manga every &#x3C;em&#x3E;other&#x3C;/em&#x3E; day. &#x3C;a href=&#x22;http://www.goodreads.com/user/show/5099248-shawn-moore&#x22;&#x3E;Currently reading&#x3C;/a&#x3E; Dune and Harry Potter and the Goblet of Fire.
 &#x3C;/dd&#x3E;
 &#x3C;dt&#x3E;&#x6620;&#x753B;&#x3092;&#x89B3;&#x308B; (movie)&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Watch a movie or television every &#x3C;em&#x3E;fourth&#x3C;/em&#x3E; day. Mostly I watch American movies that I already like dubbed into Japanese. But I&#x27;ve noticed I can follow along with new content too, watching Miyazaki and Kurosawa.
 &#x3C;/dd&#x3E;
 &#x3C;dt&#x3E;&#x6B4C;&#x8A5E; (lyrics)&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Learn part of a song every &#x3C;em&#x3E;week&#x3C;/em&#x3E;.
 &#x3C;/dd&#x3E;
 &#x3C;dt&#x3E;&#x6F22;&#x691C; (kanken test)&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Take the &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Kanji_kentei&#x22;&#x3E;kanji aptitude test&#x3C;/a&#x3E; every &#x3C;em&#x3E;week&#x3C;/em&#x3E;. I have a &#x3C;a href=&#x22;http://traveljapanblog.com/wordpress/2009/04/kanken-ds-3-deluxe/&#x22;&#x3E;kanken DS game&#x3C;/a&#x3E; and I&#x27;m currently struggling with &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Kanji_kentei#Level_7&#x22;&#x3E;level 7&#x3C;/a&#x3E;.
 &#x3C;/dd&#x3E;
 &#x3C;dt&#x3E;&#x8CC7;&#x6599;&#x3092;&#x96C6;&#x3081;&#x308B; (content)&#x3C;/dt&#x3E;
 &#x3C;dd&#x3E;Acquire new Japanese content every &#x3C;em&#x3E;week&#x3C;/em&#x3E;. This includes books, movies, music, games. I&#x27;ve got to keep topping up my Japanese gas tank to keep studying.
 &#x3C;/dd&#x3E;
&#x3C;/dl&#x3E;
&#x3C;p&#x3E;The numbers on the far right are streak counts. You&#x27;ll notice that most of the daily goals have a streak of around 30, the every-other-day goals around 20, and the less frequent goals around 10. This is because about a month ago I noticed my study calendar looked like this:&#x3C;/p&#x3E;
&#x3C;img src=&#x22;/img/blog/my-study-calendar/barren.png&#x22; alt=&#x22;&#x22; /&#x3E;
&#x3C;p&#x3E;As you can see, this time period is barren. There are multiple days where I did only the bare essentials: my Anki reviews and learning a couple kanji. It was depressing to look at.&#x3C;/p&#x3E;
&#x3C;p&#x3E;So &#x3C;a href=&#x22;http://twitter.com/sartak/status/220287719706853376&#x22;&#x3E;I fixed it&#x3C;/a&#x3E;! And now a month later I still haven&#x27;t broken the chains in my study calendar. My appetite for study waxes and wanes, but externalizing what I have &#x3C;em&#x3E;actually&#x3C;/em&#x3E; done encourages honesty and leads me to course-correct in this way. The Daily Practice answers the question &#x22;What should I do today?&#x22; for me. Without it, the answer is usually &#x22;goof around on the internet&#x22;.
&#x3C;/p&#x3E;</description>
<dc:date>2012-07-28</dc:date>
</item>
</rdf:RDF>