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


<?xml-stylesheet href="http://d.hatena.ne.jp/nekokak/rssxsl" type="text/xsl" media="screen"?>


<rdf:RDF
xmlns="http://purl.org/rss/1.0/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xml:lang="ja">
<channel rdf:about="http://d.hatena.ne.jp/nekokak/rss">
<title>Hatena::Diary::Neko::kak 500 Internal Server Error</title>
<link>http://d.hatena.ne.jp/nekokak/</link>
<description>Hatena::Diary::Neko::kak 500 Internal Server Error</description>

<dc:creator>nekokak</dc:creator>
<dc:date>2011-01-12T12:01:35+09:00</dc:date>
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://d.hatena.ne.jp/nekokak/20110112"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/nekokak/20101015/1287106817"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/nekokak/20100421/1271814529"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/nekokak/20100420/1271751343"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/nekokak/20100420/1271732378"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/nekokak/20100413/1271139755"/>
</rdf:Seq>
</items>
</channel>



<item rdf:about="http://d.hatena.ne.jp/nekokak/20110112">
<title>2011-01-12</title>
<link>http://d.hatena.ne.jp/nekokak/20110112</link>
<description> MacBook Air 11インチ欲しい！ ください </description>

<content:encoded><![CDATA[
<div class="section">
<p><a class="keyword" href="http://d.hatena.ne.jp/keyword/MacBook%20Air%2011%A5%A4%A5%F3%A5%C1%CD%DF%A4%B7%A4%A4%A1%AA">MacBook Air 11インチ欲しい！</a></p>
<p>ください</p>
</div>
]]></content:encoded>
<dc:creator>nekokak</dc:creator>
<dc:date>2011-01-12</dc:date>
</item>
<item rdf:about="http://d.hatena.ne.jp/nekokak/20101015/1287106817">
<title>[perl]YAPC::Asia 2010</title>
<link>http://d.hatena.ne.jp/nekokak/20101015/1287106817</link>
<description> 自分のトークの宣伝 http://blog.nekokak.org/show?guid=YoQmCv3X3xGA7lhooKD0CA こっちをみてね。 </description>

<content:encoded><![CDATA[
<div class="section">
<p>自分のトークの宣伝</p>
<p><a href="http://blog.nekokak.org/show?guid=YoQmCv3X3xGA7lhooKD0CA" target="_blank">http://blog.nekokak.org/show?guid=YoQmCv3X3xGA7lhooKD0CA</a></p>
<p>こっちをみてね。</p>
</div>
]]></content:encoded>
<dc:creator>nekokak</dc:creator>
<dc:date>2010-10-15T10:40:17+09:00</dc:date>
<dc:subject>perl</dc:subject>
</item>
<item rdf:about="http://d.hatena.ne.jp/nekokak/20100421/1271814529">
<title>[life]blog</title>
<link>http://d.hatena.ne.jp/nekokak/20100421/1271814529</link>
<description> 最近はてながけっこう重いので http://blog.nekokak.org/ こっちをベースにしようかなと思ったり思わなかったり。 まぁここのサーバもVPSで重かったりするんですけど。 </description>

<content:encoded><![CDATA[
<div class="section">
<p>最近はてながけっこう重いので</p>
<p><a href="http://blog.nekokak.org/" target="_blank">http://blog.nekokak.org/</a></p>
<p>こっちをベースにしようかなと思ったり思わなかったり。</p>
<p>まぁここのサーバもVPSで重かったりするんですけど。</p>
</div>
]]></content:encoded>
<dc:creator>nekokak</dc:creator>
<dc:date>2010-04-21T10:48:49+09:00</dc:date>
<dc:subject>life</dc:subject>
</item>
<item rdf:about="http://d.hatena.ne.jp/nekokak/20100420/1271751343">
<title>[perl][dbix-skinny]DBIx::Skinny::Cache</title>
<link>http://d.hatena.ne.jp/nekokak/20100420/1271751343</link>
<description> というのをつくりました。 http://github.com/nekokak/p5-dbix-skinny-cache package Mock::Basic; use DBIx::Skinny setup =&#62; +{ dsn =&#62; ’dbi:SQLite:’, username =&#62; ’’, password =&#62; ’’, connect_options =&#62; { AutoCommit =&#62; 1 }, }; use DBIx::S</description>

<content:encoded><![CDATA[
<div class="section">
<p>というのをつくりました。</p>
<p><a href="http://github.com/nekokak/p5-dbix-skinny-cache" target="_blank">http://github.com/nekokak/p5-dbix-skinny-cache</a></p>
<pre class="syntax-highlight">
<span class="synStatement">package</span><span class="synType"> Mock::Basic;</span>
<span class="synStatement">use </span>DBIx::Skinny <span class="synConstant">setup </span>=&#62; +{
    <span class="synConstant">dsn </span>=&#62; <span class="synConstant">'dbi:SQLite:'</span>,
    <span class="synConstant">username </span>=&#62; <span class="synConstant">''</span>, 
    <span class="synConstant">password </span>=&#62; <span class="synConstant">''</span>, 
    <span class="synConstant">connect_options </span>=&#62; { <span class="synConstant">AutoCommit </span>=&#62; <span class="synConstant">1</span> },
};
<span class="synStatement">use </span>DBIx::Skinny::Mixin <span class="synConstant">modules </span>=&#62; [<span class="synConstant">'Cache::Memory'</span>];

<span class="synComment"># in your script:</span>
<span class="synStatement">use </span>Mock::Basic;
<span class="synComment"># set data</span>
Mock::Basic-&#62;memory_cache-&#62;param(<span class="synConstant">foo </span>=&#62; <span class="synConstant">'bar'</span>);
<span class="synComment"># get data</span>
Mock::Basic-&#62;memory_cache-&#62;param(<span class="synConstant">'foo'</span>); <span class="synComment"># get bar </span>
<span class="synComment"># delete data</span>
Mock::Basic-&#62;memory_cache-&#62;<span class="synStatement">delete</span>(<span class="synConstant">'foo'</span>);
<span class="synComment"># get_callback</span>
Mock::Basic-&#62;memory_cache-&#62;get_callback(
    <span class="synConstant">foo </span>=&#62;<span class="synIdentifier"> </span><span class="synStatement">sub</span><span class="synIdentifier"> </span>{
        <span class="synComment"># some process.....</span>
        <span class="synConstant">'return data for cache'</span>;
    }   
);
</pre>

<p>こんな感じで使います。</p>
<br>

<p>Skinnyはnewしてインスタンスを生成しなくても</p>
<p>直接クラスからメソッド呼び出しできるので、</p>
<p>インスタンスからのメソッド呼び出しなのか</p>
<p>クラスからのメソッド呼び出しなのかを</p>
<p>意識することなくデータをmemoryにキャッシュさせることがこれでできるようになります。</p>
<br>

<p>Cache::MemoryとしているのはCache::Memcachedとかを作ってもいいかなと思ったからですね。</p>
<p>作りたい人いませんかね？</p>
</div>
]]></content:encoded>
<dc:creator>nekokak</dc:creator>
<dc:date>2010-04-20T17:15:43+09:00</dc:date>
<dc:subject>perl</dc:subject>
<dc:subject>dbix-skinny</dc:subject>
</item>
<item rdf:about="http://d.hatena.ne.jp/nekokak/20100420/1271732378">
<title>[perl][dbix-skinny]Re:DBIx::Skinnyのrowオブジェクトをnfeezeしようとすると死ぬ</title>
<link>http://d.hatena.ne.jp/nekokak/20100420/1271732378</link>
<description> http://d.hatena.ne.jp/hirafoo/20100418/1271572008 こちらに DBIx::Skinnyのrowオブジェクトをnfeezeしようとすると死ぬ という項目があるんですが。まぁ死にます。 死ぬ理由はnfreezeするオブジェクト内にcoderefがあるからです。 STORABLE_freezeとかを使ってfreezeする</description>

<content:encoded><![CDATA[
<div class="section">
<p><a href="http://d.hatena.ne.jp/hirafoo/20100418/1271572008" target="_blank">http://d.hatena.ne.jp/hirafoo/20100418/1271572008</a></p>
<p>こちらに</p>
<p>DBIx::Skinnyのrowオブジェクトをnfeezeしようとすると死ぬ</p>
<p>という項目があるんですが。まぁ死にます。</p>
<p>死ぬ理由はnfreezeするオブジェクト内にcoderefがあるからです。</p>
<br>

<p>STORABLE_freezeとかを使ってfreezeすると気にHookして云々とかはできるんですが</p>
<p>（DBICではそういうcomponentがあります）</p>
<p>そもそもStorable使うときってキャッシュするときかなと思い、</p>
<p>キャッシュするデータは必要最低限にするべきかなと思っています。</p>
<br>

<p>なので<a href="http://d.hatena.ne.jp/nekokak/20090918/1253257691" target="_blank">http://d.hatena.ne.jp/nekokak/20090918/1253257691</a></p>
<p>ここでやってるようにrowのデータだけキャッシュするのがよいかと思っています。</p>
<br>

<p>まぁMixinでSTORABLE_freezeするやつをつくって云々はありだとは思います。</p>
</div>
]]></content:encoded>
<dc:creator>nekokak</dc:creator>
<dc:date>2010-04-20T11:59:38+09:00</dc:date>
<dc:subject>perl</dc:subject>
<dc:subject>dbix-skinny</dc:subject>
</item>
<item rdf:about="http://d.hatena.ne.jp/nekokak/20100413/1271139755">
<title>[perl]Perlbal::Plugin::UrlGroupリリース</title>
<link>http://d.hatena.ne.jp/nekokak/20100413/1271139755</link>
<description> 数年前に必要にかられて作って以来ずっとつかってきた Perlbal::Plugin::UrlGroupを先程CPANにupしました。 そもそもPoundのurl_groupの機能をPerlbalで使いたいところから始まって、 リクエストuriをみてどのバックエンドにreverse_proxyするかを 設定でかけるようになって</description>

<content:encoded><![CDATA[
<div class="section">
<p>数年前に必要にかられて作って以来ずっとつかってきた</p>
<p>Perlbal::Plugin::UrlGroupを先程CPANにupしました。</p>
<p>そもそもPoundのurl_groupの機能をPerlbalで使いたいところから始まって、</p>
<p>リクエストuriをみてどのバックエンドにreverse_proxyするかを</p>
<p>設定でかけるようになっています。</p>
<p>まぁ最近だとnginxとかが流行ってるので、</p>
<p>今更Perlbalを使う人って少ないんでしょうね。</p>
<p>個人的には</p>
<p>nginxがreproxy-cacheを扱ってくれればPerlbalを使わない選択肢が出てくる気がしています。</p>
</div>
]]></content:encoded>
<dc:creator>nekokak</dc:creator>
<dc:date>2010-04-13T15:22:35+09:00</dc:date>
<dc:subject>perl</dc:subject>
</item>
</rdf:RDF>
