<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>岩家ぶろぐ</title>
	
	<link>http://blog.iwa-ya.net</link>
	<description>issmの公私混同的覚え書き．</description>
	<lastBuildDate>Sat, 24 Jul 2010 05:39:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/issm" /><feedburner:info uri="issm" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>FLOSS桜山 第40回勉強会でのLT発表資料</title>
		<link>http://feedproxy.google.com/~r/issm/~3/U2wCr4VixrE/140516</link>
		<comments>http://blog.iwa-ya.net/2010/07/24/140516#comments</comments>
		<pubDate>Sat, 24 Jul 2010 05:05:16 +0000</pubDate>
		<dc:creator>issm</dc:creator>
				<category><![CDATA[イベント]]></category>
		<category><![CDATA[flosss]]></category>
		<category><![CDATA[lt]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.iwa-ya.net/?p=2804</guid>
		<description><![CDATA[FLOSS桜山 第40回勉強会でLTをします（しました）．
以下，その資料を置いておきます．

発表資料


article h1 { font-size: 110%; }



  
    
   [...]]]></description>
			<content:encoded><![CDATA[<p>FLOSS桜山 第40回勉強会でLTをします（しました）．</p>
<p>以下，その資料を置いておきます．</p>
<p>
<h3>発表資料</h3>

<style>
article h1 { font-size: 110%; }
</style>

<article id="dqwm-presen">
  <header name="タイトル">
    <p>
      2010-07-24
      FLOSS桜山 第40回勉強会 LT

      WP-Syntax

      LLPメガネラボ
      岩田 享/issm
    </p>
  </header>


  <section name="アジェンダ">
    <h1>アジェンダ</h1>

    <ul>
      <li>自己紹介</li>
      <li>WP-自己紹介</li>
      <li>WP-Syntax</li>
      <li>＋α</li>
      <li>まとめ</li>
    </ul>
  </section>


  <section name="自己紹介">
    <h1>自己紹介</h1>

    <ul>
      <li>岩田 享/issm</li>
      <li>LLPメガネラボ</li>
      <li>とある伏見の駐車場（パーキング）</li>
      <li>
        <img src="http://farm5.static.flickr.com/4081/4788957094_c18fa13fe5_b.jpg"
             title="とある伏見の駐車場（パーキング）"
             width="400"
             />
      </li>
    </ul>

    <p>よろしくおねがいします</p>
  </section>



  <section name="WP-自己紹介">
    <h1>WP-自己紹介</h1>

    <ul>
      <li>岩家ぶろぐ</li>
      <li>http://blog.iwa-ya.net/</li>
      <li>on lighttpd from 2010-01</li>
      <li>テーマは自作</li>
    </ul>
    <ul pre="-">
      <li>header.php</li>
      <li>index.php</li>
      <li>sidebar.php</li>
      <li>footer.php</li>
    </ul>
  </section>



  <section name="WP-Syntax:概要">
    <h1>WP-Syntax:概要</h1>

    <ul>
      <li>WordPressプラグイン</li>
      <li>ソースコードをハイライト</li>
      <li>
        PHPライブラリ「GeSHi」を利用
        <ul pre=" →">
          <li>177種類の言語をサポート（ver.1.0.88）</li>
          <li>プラグインに同梱</li>
        </ul>
      </li>
    </ul>

    <p>詳しくは．．．</p>
    <ul>
      <li>http://wordpress.org/extend/plugins/wp-syntax/</li>
      <li>http://qbnz.com/highlighter/</li>
    </ul>
  </section>


  <section name="WP-Syntax:サンプル">
    <h1>WP-Syntax:基本書式</h1>

    <p>エントリ本文で．．．</p>

    <pre class="html">
      &lt;pre
      lang="{language}"
      line="{line}"&gt;
      ... ソースコード ...
      &lt;/pre&gt;
    </pre>

    <p>これだけでハイライトしてくれる</p>
    <p>※「ぶろぐでデモ</p>
  </section>



  <section name="＋α">
    <h1>＋α</h1>

    <p>行番号がある場合</p>
    <img src="http://farm5.static.flickr.com/4098/4822455109_334fcdd8d0_o.png"
         title="WP-Syntaxが出力するHTML（行番号あり）"
         />

    <p>行番号がない場合</p>
    <img src="http://farm5.static.flickr.com/4095/4822455201_4bd48fe903_o.png"
         title="WP-Syntaxが出力する（行番号なし）"
         />

    <p>このHTMLをごにょごにょするJavaScriptを書いてみた</p>
    <ul>
      <li>use jQuery;</li>
    </ul>
    <p>※「ぶろぐでデモ</p>
  </section>




  <section name="まとめ">
    <h1>まとめ</h1>

    <p>WP-Syntax</p>
    <ul>
      <li>ソースコードをいい感じでハイライト</li>
      <li>設定も直感的</li>
    </ul>

    <p>おまけ</p>
    <ul>
      <li>WP-Syntax後のソースコード領域をクリックすると，コピペのための選択をするJavaScript</li>
    </ul>
  </section>



  <footer name="おしまい">
    <p>
      ご清聴ありがとうございました！

      Enjoy code-highlighting!

      powered by:
      http://www.dqwm.net/
    </p>
  </footer>
</article>
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iwa-ya.net/2010/07/24/140516/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iwa-ya.net/2010/07/24/140516</feedburner:origLink></item>
		<item>
		<title>海の日なのでaquaさんで知多半島まで海を見に行ってきた</title>
		<link>http://feedproxy.google.com/~r/issm/~3/l5UxD4CaNbU/225520</link>
		<comments>http://blog.iwa-ya.net/2010/07/19/225520#comments</comments>
		<pubDate>Mon, 19 Jul 2010 13:55:20 +0000</pubDate>
		<dc:creator>issm</dc:creator>
				<category><![CDATA[自転車ライフ]]></category>
		<category><![CDATA[bicycle]]></category>
		<category><![CDATA[lifelog]]></category>

		<guid isPermaLink="false">http://blog.iwa-ya.net/?p=2795</guid>
		<description><![CDATA[


はじめに
2010年7月19日は海の日ですね．海の日といえば，例年，引きこもっているかお仕事していたか，な気がします．
そんなわけで，たまには海の日らしく，aquaさんに乗って，知多半島まで海を見に行ってきました． [...]]]></description>
			<content:encoded><![CDATA[<div class="flickr-photo">
<a href="http://www.flickr.com/photos/issm/4807451529/" title="IMGP2686 on Flickr"><img src="http://farm5.static.flickr.com/4138/4807451529_6de19e4e3f.jpg" alt="IMGP2686 on Flickr" title="IMGP2686 on Flickr" /></a>
</div>
<h3>はじめに</h3>
<p>2010年7月19日は海の日ですね．海の日といえば，例年，引きこもっているかお仕事していたか，な気がします．</p>
<p>そんなわけで，たまには海の日らしく，aquaさんに乗って，知多半島まで海を見に行ってきました．まぁ見るだけですｗ</p>
<h3>ルート</h3>
<p>今回のルートはこんな感じです．</p>
<p><!-- BEGIN INSTAMAPPER CODE --><br />
GPS tracking powered by <a href="http://www.instamapper.com">InstaMapper.com</a><br />
<iframe style="border:1px solid;" width="507" height="490" frameborder="0" scrolling="no" src="http://www.instamapper.com/trk?key=7551147036782877942&#038;width=480&#038;height=350&#038;type=roadmap"><br />
</iframe></p>
<p>うーん，後半，記録がぜんぜんできていませんねぇ．．．ここのサービス，使い勝手の面をはじめ，少しずつ不満がつのってきているので，そろそろ別のサービスでもさがそうかな．．．まぁタダで使わせていただいている身で言うのもなんですが＞＜</p>
<p>さて．．．</p>
<ul class="links">
<li><a href="http://www.pref.aichi.jp/kensetsu-somu/chita-kensetsu/cyclingroad/index.html" title="知多半島サイクリングロード：武豊大府自転車道線－ 愛知県知多建設事務所">知多半島サイクリングロード：武豊大府自転車道線－ 愛知県知多建設事務所</a></li>
</ul>
<p>この存在を前日知ったので，ぜひ利用してみよう！と思いながら走っていたのですが，結局入口を見つけられませんでした．で，その際に地図を確認したところ，三河湾側海岸線の方が近かったため，そちら走ることになりましたｗ</p>
<p>そうなれば，帰りは駿河湾側だよね，ということで，（ｒｙ</p>
<h3>統計（？）</h3>
<p>サイクルコンピュータ（<a href="http://www.amazon.co.jp/gp/product/B001QU9A4U?ie=UTF8&#038;tag=issm-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=B001QU9A4U">SC-FT50</a><img src="http://www.assoc-amazon.jp/e/ir?t=issm-22&#038;l=as2&#038;o=9&#038;a=B001QU9A4U" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />）の数字より．</p>
<dl>
<dt>走行距離</dt>
<dd>128.7km</dd>
<dt>実走時間</dt>
<dd>4時間36分33秒</dd>
<dt>実際の時間</dt>
<dd>8時間くらい（08:00〜16:00）</dd>
</dl>
<h3>行き</h3>
<p>行きは，特に何事もなくスムーズに．しかし，日差しがなかなか強くて体が熱せられる感じだったので，ペットボトルの水を頭からかぶったりして何度かやりすごしました．</p>
<div class="flickr-photo flickr-photo-m">
<a href="http://www.flickr.com/photos/issm/4808069520/" title="IMGP2658 on Flickr"><img src="http://farm5.static.flickr.com/4121/4808069520_f0b81f3d8f_m.jpg" alt="IMGP2658 on Flickr" title="IMGP2658 on Flickr" /></a>
</div>
<p>！？．．．鯛（ですよね？）を持っていることから，漁的な何かを意味するようにも思えますが．．．</p>
<div class="flickr-photo">
<a href="http://www.flickr.com/photos/issm/4808069834/" title="IMGP2660 on Flickr"><img src="http://farm5.static.flickr.com/4138/4808069834_43e9895c50.jpg" alt="IMGP2660 on Flickr" title="IMGP2660 on Flickr" /></a>
</div>
<p>半島を南下する途中にて．思ったより自動車の量が少なかったです．</p>
<h3>昼食＠まるは食堂</h3>
<p>半島の先端近くにある<a href="http://www.maruha-net.co.jp/toyohama/index.html">まるは食堂（豊浜本店）</a>にて，温泉に浸かり，昼食を摂りました．</p>
<div class="flickr-photo">
<a href="http://www.flickr.com/photos/issm/4808071322/" title="IMGP2679 on Flickr"><img src="http://farm5.static.flickr.com/4097/4808071322_49a09e5f09.jpg" alt="IMGP2679 on Flickr" title="IMGP2679 on Flickr" /></a>
</div>
<p>温泉．</p>
<div class="flickr-photo">
<a href="http://www.flickr.com/photos/issm/4808070810/" title="IMGP2670 on Flickr"><img src="http://farm5.static.flickr.com/4138/4808070810_74ac911e78.jpg" alt="IMGP2670 on Flickr" title="IMGP2670 on Flickr" /></a>
</div>
<p>刺身の盛り合わせ（並）．</p>
<div class="flickr-photo">
<a href="http://www.flickr.com/photos/issm/4807450429/" title="IMGP2675 on Flickr"><img src="http://farm5.static.flickr.com/4117/4807450429_0f8972de47.jpg" alt="IMGP2675 on Flickr" title="IMGP2675 on Flickr" /></a>
</div>
<p>エビフライ．あとはご飯とおみそ汁も．</p>
<p>エビフライは複数本の注文も可能ですが，1本でよかったですｗ おなかいっぱいになりました．</p>
<h3>帰り</h3>
<div class="flickr-photo flickr-photo-m">
<a href="http://www.flickr.com/photos/issm/4808071640/" title="IMGP2681 on Flickr"><img src="http://farm5.static.flickr.com/4073/4808071640_9c22838f49_m.jpg" alt="IMGP2681 on Flickr" title="IMGP2681 on Flickr" /></a>
</div>
<p>後ろの方にも何やら相似形なものがｗ</p>
<div class="flickr-photo flickr-photo-m">
<a href="http://www.flickr.com/photos/issm/4808072584/" title="IMGP2692 on Flickr"><img src="http://farm5.static.flickr.com/4135/4808072584_ece84cd7c1_m.jpg" alt="IMGP2692 on Flickr" title="IMGP2692 on Flickr" /></a>
</div>
<p>野間灯台．50mmレンズだと，下がっても下がっても全体が収まり切りませんでしたｗ</p>
<p>ここの休憩スペース（といっても日ざらしですが）でパンク修理をされていた方がみえました．かれこれ1時間ほどストップしてしまっているとのこと．ハンディポンプでの空気注入がしんどいとおっしゃっていたので，私の持っている，より少ない力で空気を入れられるという「2本筒タイプ」を差し出してみました．（現在までまだパンクがなく，実践での利用実績が皆無だったりしますｗ）</p>
<p>非常にスムーズに空気が入ったようで，その方もいたく感激されていました．おぉ，2本筒スゲー．</p>
<p>その後少しだけお話などして，行き先が反対方向なので（これから昼食とのことでした），私もその方も再度出発しました．</p>
<p>それからは，痛むひざをごまかしつつも（実際にはごまかせていないんですが＞＜），ひたすら名古屋へ向けて進み続けました．海水浴やボディボードな風景も横目です．まぁ海は常時眺めてました．</p>
<p>それにしても，多少風はあったものの，午後はさすがに暑いですね．熱中症対策に頭からかぶったり，痛むひざにかけたりと，水を使う頻度も格段に増しました．</p>
<p>そんなこんなで，名古屋，そして自宅まで戻ってこられました．</p>
<h3>おわりに</h3>
<p>以上，海の日なので，aquaさんに乗って，知多半島までは知って海を見てきましたよ，というエントリでした．</p>
<p>今後の課題としては，ひざが痛み出さないようなペダリング，の1点ですね．まぁそれ以外にもたくさんあるでしょうが，これだけはなんとかしないと，体がもちませんね＞＜</p>
<p>しまなみ海道のときは大丈夫だったので，それとの違いにヒントがあるのかもです．</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iwa-ya.net/2010/07/19/225520/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iwa-ya.net/2010/07/19/225520</feedburner:origLink></item>
		<item>
		<title>「名古屋でPerlをゆるく語る会」がありますよ</title>
		<link>http://feedproxy.google.com/~r/issm/~3/vOt38nbKlAM/235438</link>
		<comments>http://blog.iwa-ya.net/2010/07/18/235438#comments</comments>
		<pubDate>Sun, 18 Jul 2010 14:54:38 +0000</pubDate>
		<dc:creator>issm</dc:creator>
				<category><![CDATA[お知らせ]]></category>
		<category><![CDATA[announce]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://blog.iwa-ya.net/?p=2765</guid>
		<description><![CDATA[はじめに
今月末，trinity777さんの呼びかけで，Perlを肴に何かテキトーに話し合いましょう，的な集まり「名古屋でPerlをゆるく語る会」がありますよ．
概要

名称
名古屋でPerlをゆるく語る会
日時
201 [...]]]></description>
			<content:encoded><![CDATA[<h3>はじめに</h3>
<p>今月末，<a href="http://d.hatena.ne.jp/trinity777/">trinity777さん</a>の呼びかけで，Perlを肴に何かテキトーに話し合いましょう，的な集まり「<strong>名古屋でPerlをゆるく語る会</strong>」がありますよ．</p>
<h3>概要</h3>
<dl>
<dt>名称</dt>
<dd>名古屋でPerlをゆるく語る会</dd>
<dt>日時</dt>
<dd>2010年 7月31日（土） 11:00〜</dd>
<dt>会場</dt>
<dd>
    <a href="http://doerya-gens.jp/">Cafe どえりゃあ</a>
  </dd>
<dt>参加費</dt>
<dd>食事代のみ</dd>
</dl>
<blockquote cite="http://atnd.org/events/6593"><p>
名古屋でPerl好きが集まって　おいしいもの食べる会です</p>
<p>参加費: ご自分のお食事代だけ</p>
<p>　あることないこと　楽しく世間話しつつも</p>
<p>    　 しっかり　Perlの技術も学べるよ、という<br />
　<br />
             東海地方では他にない　おいしい会です</p>
<p>Perlと聞いて　何?それ、おいしいの? という人から　プログラム言語とわかる人まで大歓迎</p>
<p>宿題に泣いている　学生さん</p>
<p>なんかプログラムしたい　デザイナーさん</p>
<p>他言語も知りたい　プログラマさん</p>
<p>定年後の時間をもてあましている　中高年の方々</p>
<p>どんな人でも　ふらっと楽しく　お友達が作れます<br />
　　 女の子も安心して参加してね</p>
<p>みんなで学ぼう!!　Hello World<br />
<cite><a href="http://atnd.org/events/6593" title="名古屋でPerlをゆるく語る会 : ATND">名古屋でPerlをゆるく語る会 : ATND</a></cite>
</p></blockquote>
<p>ということで，Perlをやってる方，やってみようかなという方，プログラマさん，デザイナさん，学生さん．．．などなど，ごっちゃになってPerlがらみのお話をしましょう，そんな感じですね．</p>
<p>詳しくは，<a href="http://atnd.org/">ATND</a>の同イベントページへ．</p>
<ul class="links">
<li><a href="http://atnd.org/events/6593" title="名古屋でPerlをゆるく語る会 : ATND">名古屋でPerlをゆるく語る会 : ATND</a></li>
</ul>
<h3>参加表明は．．．</h3>
<p>上記ページにて参加登録も行えます．興味のある方はぜひ．</p>
<h3>おわりに</h3>
<p>そういえば，名古屋でPerlをテーマにしたイベントって参加するの初めてですな．というか，そもそもあったのかどうｋ（ｒｙ</p>
<p>とにかく，名古屋でのPerlの現状（？）や，みなさんのPerlライフを知ることができるよい機会になりそうです．</p>
<p>それでは，let&#8217;s enjoy Perl&#8217;s talk!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iwa-ya.net/2010/07/18/235438/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iwa-ya.net/2010/07/18/235438</feedburner:origLink></item>
		<item>
		<title>aquaさんの消耗部品交換いくつか</title>
		<link>http://feedproxy.google.com/~r/issm/~3/wXe9UKCWE-E/145747</link>
		<comments>http://blog.iwa-ya.net/2010/07/18/145747#comments</comments>
		<pubDate>Sun, 18 Jul 2010 05:57:47 +0000</pubDate>
		<dc:creator>issm</dc:creator>
				<category><![CDATA[自転車ライフ]]></category>
		<category><![CDATA[bicycle]]></category>
		<category><![CDATA[lifelog]]></category>

		<guid isPermaLink="false">http://blog.iwa-ya.net/?p=2764</guid>
		<description><![CDATA[


はじめに
$issm->age++; となった今日この頃です．
さて，昨日の夕方，消耗したり劣化したりした部分を交換するため，サイクルショップ カワタにおジャマしてきました．
今回は，次の4点について，カワタさんに [...]]]></description>
			<content:encoded><![CDATA[<div class="flickr-photo">
<a href="http://www.flickr.com/photos/issm/4801703797/" title="IMGP2652 on Flickr"><img src="http://farm5.static.flickr.com/4136/4801703797_13caf98d21.jpg" alt="IMGP2652 on Flickr" title="IMGP2652 on Flickr" /></a>
</div>
<h3>はじめに</h3>
<p><code>$issm->age++;</code> となった今日この頃です．</p>
<p>さて，昨日の夕方，消耗したり劣化したりした部分を交換するため，<a href="http://blogs.yahoo.co.jp/kawatacycle">サイクルショップ カワタ</a>におジャマしてきました．</p>
<p>今回は，次の4点について，カワタさんに交換していただいたり自宅でD.I.Y.したりしました．</p>
<ul>
<li>タイヤ</li>
<li>リアディレイラーのアウター調整ボルトあたりの部品</li>
<li>ブレーキシュー</li>
<li>ハンドルのバーテープ</li>
</ul>
<h3>交換していただいた</h3>
<h4>タイヤ</h4>
<p>Vittoria の「RUBINO PRO」ってタイヤにしてみました．白いです．写真はたぶん後日にでも．</p>
<ul class="links">
<li><a href="http://www.vittoriajapan.co.jp/syoukai/rubino_pro.html" title="::製品紹介::　競技用自転車タイヤ Vittoriaの日本代理店 Vittoria Japan(ヴィットリアジャパン)">::製品紹介::　競技用自転車タイヤ Vittoriaの日本代理店 Vittoria Japan(ヴィットリアジャパン)</a></li>
</ul>
<h4>リアディレイラーのアウター調整ボルトあたりの部品</h4>
<p>何て呼べばいいんでしょ？</p>
<div class="flickr-photo">
<a href="http://www.flickr.com/photos/issm/4801548839/" title="IMGP2621 on Flickr"><img src="http://farm5.static.flickr.com/4141/4801548839_6a5d6f0d2a.jpg" alt="IMGP2621 on Flickr" title="IMGP2621 on Flickr" /></a>
</div>
<p>もともとプラスティック製で，これが割れてしまっていました．</p>
<div class="flickr-photo">
<a href="http://www.flickr.com/photos/issm/4801551591/" title="IMGP2648 on Flickr"><img src="http://farm5.static.flickr.com/4115/4801551591_09d386693b.jpg" alt="IMGP2648 on Flickr" title="IMGP2648 on Flickr" /></a>
</div>
<p>これが，アルミ製のものになりました．</p>
<p>ちなみに，「アウター調整ボルト」という名称も知らなかったのですが，こちらを参考に．</p>
<ul class="links">
<li><a href="http://homepage1.nifty.com/kadooka/trouble-shooting/Rderailer/Rderailler.html" title="リアディレイラーの調整">リアディレイラーの調整</a></li>
</ul>
<h3>部品だけ購入してD.I.Y.で交換</h3>
<h4>ブレーキシュー</h4>
<div class="flickr-photo">
<a href="http://www.flickr.com/photos/issm/4801550275/" title="IMGP2635 on Flickr"><img src="http://farm5.static.flickr.com/4093/4801550275_f1fd751cb8.jpg" alt="IMGP2635 on Flickr" title="IMGP2635 on Flickr" /></a>
</div>
<p>初のDURA-ACEですｗ 値段も手頃なので，カワタさんも「掃除するくらいなら交換した方が早い」とのこと．</p>
<p>手は汚れますが，交換は簡単です．ただ，ボルトが少し固めなので，レンチやドライバは目がしっかり合うものを使うべきですね．</p>
<div class="flickr-photo">
<a href="http://www.flickr.com/photos/issm/4801550645/" title="IMGP2642 on Flickr"><img src="http://farm5.static.flickr.com/4076/4801550645_424ce270c5.jpg" alt="IMGP2642 on Flickr" title="IMGP2642 on Flickr" /></a>
</div>
<p>新品との比較．中央が新品，左がリア，右がフロントのものです．リアの方が減ってますね．こういうものでしょうか．</p>
<h4>ハンドルのバーテープ</h4>
<ul class="links">
<li><a href="http://www.cb-asahi.co.jp/html/size/bartape/index.html" title="サイクルベースあさひ">サイクルベースあさひ</a></li>
</ul>
<p>上記リンクや現状のバーテープの巻かれ方を参考に挑戦してみました．意外にスムーズにできたっぽいです．片方だけできたものが冒頭のような感じです．全景はそのうちタイヤと一緒にでも．</p>
<div class="flickr-photo">
<a href="http://www.flickr.com/photos/issm/4801810551/" title="IMGP2653 on Flickr"><img src="http://farm5.static.flickr.com/4096/4801810551_8dc02fb355.jpg" alt="IMGP2653 on Flickr" title="IMGP2653 on Flickr" /></a>
</div>
<p>今回，カットしたのはこれだけでしたｗ</p>
<h3>おわりに</h3>
<p>というわけで，aquaさんが「白/赤/黒」な感じから「白/青」な感じになりました．</p>
<p>梅雨も明けたようなので，天気のよい日の午前にでも，久しぶりに出かけてみたくなりました．</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iwa-ya.net/2010/07/18/145747/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iwa-ya.net/2010/07/18/145747</feedburner:origLink></item>
		<item>
		<title>エントリテスト from emacs with wp-emacs</title>
		<link>http://feedproxy.google.com/~r/issm/~3/GRJvC26bY_s/124000</link>
		<comments>http://blog.iwa-ya.net/2010/07/18/124000#comments</comments>
		<pubDate>Sun, 18 Jul 2010 03:40:00 +0000</pubDate>
		<dc:creator>issm</dc:creator>
				<category><![CDATA[生活日誌]]></category>

		<guid isPermaLink="false">http://blog.iwa-ya.net/2010/07/18/123914</guid>
		<description><![CDATA[テスト．
更新テスト．
更新テスト．
]]></description>
			<content:encoded><![CDATA[<p>テスト．</p>
<p>更新テスト．</p>
<p>更新テスト．</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iwa-ya.net/2010/07/18/124000/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iwa-ya.net/2010/07/18/124000</feedburner:origLink></item>
		<item>
		<title>WCAN 2010 SummerでのLT発表資料（おまけもあるよ）</title>
		<link>http://feedproxy.google.com/~r/issm/~3/qeSTBGf2Z-I/115654</link>
		<comments>http://blog.iwa-ya.net/2010/07/13/115654#comments</comments>
		<pubDate>Tue, 13 Jul 2010 02:56:54 +0000</pubDate>
		<dc:creator>issm</dc:creator>
				<category><![CDATA[イベント]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[lt]]></category>
		<category><![CDATA[presentation]]></category>

		<guid isPermaLink="false">http://blog.iwa-ya.net/?p=2743</guid>
		<description><![CDATA[


はじめに
先日行われたWCAN 2010 Summerにて，ライトニングトークさせていただいてきました．
以下，発表内容をHTMLとしておこしたものを載せておきますので，興味のある方はどうぞ．

発表内容

 [...]]]></description>
			<content:encoded><![CDATA[<div class="flickr-photo">
<a href="http://www.flickr.com/photos/issm/4781614369/" title="IMGP2600 on Flickr"><img src="http://farm5.static.flickr.com/4143/4781614369_38943e4881.jpg" alt="IMGP2600 on Flickr" title="IMGP2600 on Flickr" /></a>
</div>
<h3>はじめに</h3>
<p>先日行われた<a href="http://2010.wcan.jp/summer/">WCAN 2010 Summer</a>にて，ライトニングトークさせていただいてきました．</p>
<p>以下，発表内容をHTMLとしておこしたものを載せておきますので，興味のある方はどうぞ．</p>
<p>
<h3>発表内容</h3>

<style>
article h1 { font-size: 110%; }
</style>

<article id="dqwm-presen">
  <header name="タイトル">
    <p>
      2010-07-10
      WCAN 2010 Summer LT

      ニコニコ動画APIをさわってみよう（仮）

      LLPメガネラボ
      岩田 享/issm
    </p>
  </header>


  <section name="アジェンダ">
    <h1>アジェンダ</h1>

    <ul>
      <li>自己紹介</li>
      <li>ニコニコ動画API少々</li>
      <li>APIを使って作ってみた</li>
      <li>まとめ</li>
    </ul>
  </section>


  <section name="自己紹介">
    <h1>自己紹介</h1>

    <ul>
      <li>岩田 享/issm</li>
      <li>LLPメガネラボ</li>
      <li>とある伏見の駐車場（パーキング）</li>
      <li>
        <img src="http://farm5.static.flickr.com/4081/4788957094_c18fa13fe5_b.jpg"
             title="とある伏見の駐車場（パーキング）"
             width="400"
             />
      </li>
      <li>http://blog.iwa-ya.net/</li>
    </ul>

    <p>よろしくおねがいします</p>
  </section>


  <section name="ニコニコ動画API">
    <h1>ニコニコ動画API</h1>

    <p>ニコニコ動画の情報へ外部からアクセス可能</p>

    <ul>
      <li>特定のURLへリクエスト</li>
      <li>XMLによるレスポンス</li>
      <li>加工して利用</li>
    </ul>

    <ul pre="-">
      <li>getthumbinfo</li>
      <li>thumb</li>
      <li>getflv</li>
      <li>getmarquee</li>
      <li>getrelation</li>
      <li>msg</li>
      <li>rss</li>
    </ul>

    <p>詳しくは．．．</p>
    <p>http://dic.nicovideo.jp/a/ニコニコ動画api</p>
  </section>


  <section name="API:getthumbinfo">
    <h1>API:getthumbinfo</h1>

    <p>http://ext.nicovideo.jp/api/getthumbinfo/{動画ID}</p>
    <p>指定の動画に関する情報が得られる</p>
    <ul>
      <li>動画ID</li>
      <li>タイトル</li>
      <li>説明文</li>
      <li>サムネイル画像URL</li>
      <li>投稿日時</li>
      <li>長さ</li>
      <li>再生数，コメント数，マイリスト数</li>
      <li>タグ</li>
      <li>e.t.c...</li>
    </ul>

    <p>例えば．．．</p>
    <p>http://ext.nicovideo.jp/api/getthumbinfo/sm9201355</p>

    <pre class="html">
      &lt;nicovideo_thumb_response status="ok"&gt; 
        &lt;thumb&gt; 
          &lt;video_id&gt;sm9201355&lt;/video_id&gt; 
          &lt;title&gt;夕飯準備の飼い主さんに必死にすがる子猫たち&lt;/title&gt; 
          &lt;description&gt;既出だったらごめんなさい。Youtubeより転載です。......（ｒｙ
    </pre>
  </section>


  <section name="API:getrelation">
    <h1>API:getrelation</h1>

    <p>http://flapi.nicovideo.jp/api/getrelation?{動画IDとか並び順の種類とか}</p>
    <p>指定の動画に「関連する」動画のリストが得られる</p>

    <ul>
      <li>件数</li>
      <li>動画のリスト</li>
    </ul>

    <ul>
      <li>視聴URL</li>
      <li>タイトル</li>
      <li>サムネイルURL</li>
      <li>再生数，コメント数，マイリスト数</li>
      <li>e.t.c...</li>
    </ul>

    <p>getthumbinfoほど詳細ではない</p>

    <p>例えば．．．</p>
    <p>http://flapi.nicovideo.jp/api/getrelation?video=sm9201355</p>

    <pre class="html">
      &lt;related_video status="ok"&gt; 
	&lt;total_count&gt;70&lt;/total_count&gt; 
	&lt;page_count&gt;5&lt;/page_count&gt; 
	&lt;data_count&gt;15&lt;/data_count&gt; 
	&lt;video&gt; 
	  &lt;url&gt;http://www.nicovideo.jp/watch/sm8393544&lt;/url&gt; 
	  &lt;thumbnail&gt;http://tn-skr1.smilevideo.jp/smile?i=8393544&lt;/thumbnail&gt; 
	  &lt;title&gt;親猫の下敷きになる子猫&lt;/title&gt;......（ｒｙ
    </pre>
  </section>


  <section name="APIを使ってみる">
    <h1>APIを使ってみる</h1>

    <p>IDが「sm9201355」の動画について</p>

    <p>
      getthumbinfo
      http://ext.nicovideo.jp/api/getthumbinfo/sm9201355
    </p>

    <pre class="html">
      ......
      &lt;tags domain="jp"&gt; 
        &lt;tag category="1" lock="1"&gt;動物&lt;/tag&gt; 
        &lt;tag lock="1"&gt;ごまきなこあんこたれ&lt;/tag&gt; 
        &lt;tag lock="1"&gt;AV(アニマルビデオ)&lt;/tag&gt; 
        &lt;tag lock="1"&gt;ぬこぬこ動画&lt;/tag&gt; 
        &lt;tag lock="1"&gt;リア獣&lt;/tag&gt; 
        &lt;tag&gt;アイルーキッチン&lt;/tag&gt; 
        &lt;tag&gt;猫屋敷&lt;/tag&gt; 
        &lt;tag&gt;解せぬ&lt;/tag&gt; 
        &lt;tag&gt;いきなりミュート&lt;/tag&gt; 
      &lt;/tags&gt; 
      ......
    </pre>

    <p>実際の動画では．．．</p>
    <img src="http://farm5.static.flickr.com/4123/4788328929_7533852773_b.jpg"
         title="「〜〜動画」なタグの例"
         width="400"
         />
    <p>ここに着目してみた</p>
  </section>


  <section name="「にこのまとぴあ」">
    <h1>「にこのまとぴあ」</h1>

    <p>http://www.niconomatopoeia.jp/</p>

    <ul>
      <li>ニコニコ動画+オノマトピア（=擬声語）</li>
      <li>ニコニコ動画でつけられる無数のタグの中から，「〜〜動画」なものを見つけて羅列するだけのサイト</li>
      <li>
        20万件くらいの動画のタグを調査
        （2010-07-10 12:00時点）
      </li>
      <li>
        511件の「〜〜動画」タグ
        ひらがな：204
        カタカナ：261
        それ以外：46
        （2010-07-10 12:00時点）
      </li>
    </ul>

    <img src="http://farm5.static.flickr.com/4101/4788956882_5912ab8f28_b.jpg"
         title="誰得ｗ"
         width="400"
         />

    <p>．．．そんな誰得なサイトですｗ</p>
  </section>


  <section name="まとめ">
    <h1>まとめ</h1>

    <ul>
      <li>「ニコニコ動画API」で様々な動画の情報を取得可能</li>
      <li>組み合わせ次第でいろいろ遊べる</li>
      <li>誰得サイト「にこのまとぴあ」を作ってみた</li>
      <li>「情報を取得する」「情報を加工して表示する」を明示的に分離すると後々便利かも</li>
    </ul>
  </section>



  <footer name="おしまい">
    <p>
      ご清聴ありがとうございました！

      powered by:
      http://www.dqwm.net/
    </p>
  </footer>
</article>
</p>
<h3>おわりに</h3>
<p>ということで，スピーカの皆様，懇親会でこの酔っぱらいにおつきあいいただいた方々，そして主催であるアップルップルの皆様，ありがとうございました！</p>
<p>WCAN 2010 Autumnは，これまでとは違う形式の開催ということで，とても楽しみにしています．</p>
<h3>おまけ</h3>
<p>どこかにある「ぷろじぇくたーα」というどうぐを本エントリで使うと，何かあります．</p>
<ul class="links">
<li><a href="http://www.dqwm.net/" title="DQWindowManager - Webをドラゴンクエストっぽく遊ぼう！">DQWindowManager &#8211; Webをドラゴンクエストっぽく遊ぼう！</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.iwa-ya.net/2010/07/13/115654/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iwa-ya.net/2010/07/13/115654</feedburner:origLink></item>
		<item>
		<title>[perl][sql] カラム名をちょこっとだけ柔軟に生成できるスクリプト</title>
		<link>http://feedproxy.google.com/~r/issm/~3/9ekCqMPbZJU/222730</link>
		<comments>http://blog.iwa-ya.net/2010/07/07/222730#comments</comments>
		<pubDate>Wed, 07 Jul 2010 13:27:30 +0000</pubDate>
		<dc:creator>issm</dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://blog.iwa-ya.net/?p=2735</guid>
		<description><![CDATA[はじめに
DBIx::SkinnyでO/Rマッパの勉強な日々が続いています．
そんな中，カラム名の指定を行う機会が多々出てきますが，テーブル名のプリフィックス（「issm_user」というテーブルであれば「issm_」の [...]]]></description>
			<content:encoded><![CDATA[<h3>はじめに</h3>
<p><a href="http://search.cpan.org/dist/DBIx-Skinny/">DBIx::Skinny</a>でO/Rマッパの勉強な日々が続いています．</p>
<p>そんな中，カラム名の指定を行う機会が多々出てきますが，テーブル名のプリフィックス（「<code>issm_user</code>」というテーブルであれば「<code>issm_</code>」のような部分）を考慮したり，関数や制御文を挟んだり，テーブル名やカラム名のエイリアスを利用したりする際の扱いをまだよくわかっていません．</p>
<p>とりあえず，そのあたりを吸収するようなPerlスクリプトを書いてみました．</p>
<p>まぁ既出でしょうが，勉強の記録ということで＞＜</p>
<h3>吸収範囲</h3>
<p>たぶん次のあたりのものを吸収します．</p>
<ul>
<li>カラム名のみ</li>
<li>テーブルのプリフィックス + テーブル名 （基本的な部分のみ） + カラム名</li>
<li>上記のようなカラム名 + カラム名のエイリアス</li>
<li>テーブル名のエイリアス + カラム名 （+ カラム名のエイリアス）</li>
<li>そこそこ簡単な構造の関数や制御文 （+ カラム名のエイリアス）</li>
</ul>
<h3>実行例</h3>
<p>まず実行例から．（サブルーチン<code>p</code>は，<code>print</code>のショートカットのようなものです．）</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># TABLE_PREFIX: 'issm_'</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># issm_col1</span>
p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col1/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col1 - -/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># issm_user.col2</span>
p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col2 user/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># issm_item.col3 c3</span>
p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col3 item c3/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># i.col4 item_c4</span>
p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col4 -i item_c4/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$sha1_ize</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">sub</span> <span style="color: #009900;">&#123;</span> <span style="color: #ff0000;">&quot;SHA1($_[0])&quot;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># SHA1(issm_map.col5)</span>
p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col5 map -/</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$sha1_ize</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># SHA1(m.col6) sha1_c6</span>
p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col6 -m sha1_c6/</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$sha1_ize</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># IF( issm_item.col7 &gt;= 10, m.col8, DATE(u.col9) ) if_c789</span>
p column<span style="color: #009900;">&#40;</span>
    <span style="color: #009966; font-style: italic;">qw/col7 item if_c789/</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">sub</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c7</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c8</span> <span style="color: #339933;">=</span> column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col8 -m -/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c9</span> <span style="color: #339933;">=</span> column<span style="color: #009900;">&#40;</span>
            <span style="color: #009966; font-style: italic;">qw/col9 -u -/</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">sub</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'DATE(%s)'</span><span style="color: #339933;">,</span> <span style="color: #000066;">shift</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">return</span> <span style="color: #ff0000;">&quot;IF( $c7 &gt;= 10, $c8, $c9 )&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<h3>コード</h3>
<p>次のような感じです．</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">use</span> strict<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> warnings<span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">%CONFIG</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>
    TABLE_PREFIX <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'issm_'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> p <span style="color: #009900;">&#123;</span> <span style="color: #000066;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@_</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> column <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$col</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$table</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$alias</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$sub</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@_</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$col_name</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$col</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">defined</span> <span style="color: #0000ff;">$table</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #b1b100;">my</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$table_alias</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$table</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/^-(.*)$/</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$col_name</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;${table_alias}.${col}&quot;</span>
                <span style="color: #b1b100;">if</span> <span style="color: #0000ff;">$table_alias</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">''</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$col_name</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;${table}.${col}&quot;</span><span style="color: #339933;">;</span>
            <span style="color: #0000ff;">$col_name</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;$CONFIG{TABLE_PREFIX}${col_name}&quot;</span>
                <span style="color: #b1b100;">if</span> <span style="color: #000066;">defined</span> <span style="color: #0000ff;">$CONFIG</span><span style="color: #009900;">&#123;</span>TABLE_PREFIX<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">defined</span> <span style="color: #0000ff;">$sub</span>  <span style="color: #339933;">&amp;&amp;</span>  <span style="color: #000066;">ref</span> <span style="color: #0000ff;">$sub</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">'CODE'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$col_name</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$sub</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$col_name</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">defined</span> <span style="color: #0000ff;">$alias</span>  <span style="color: #339933;">&amp;&amp;</span>  <span style="color: #0000ff;">$alias</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">'-'</span><span style="color: #009900;">&#41;</span>
        <span style="color: #339933;">?</span> <span style="color: #ff0000;">&quot;$col_name $alias&quot;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">$col_name</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> main <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;"># issm_col1</span>
    p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col1/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col1 - -/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># issm_user.col2</span>
    p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col2 user/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># issm_item.col3 c3</span>
    p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col3 item c3/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># i.col4 item_c4</span>
    p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col4 -i item_c4/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$sha1_ize</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">sub</span> <span style="color: #009900;">&#123;</span> <span style="color: #ff0000;">&quot;SHA1($_[0])&quot;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># SHA1(issm_map.col5)</span>
    p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col5 map -/</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$sha1_ize</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># SHA1(m.col6) sha1_c6</span>
    p column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col6 -m sha1_c6/</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$sha1_ize</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># IF( issm_item.col7 &gt;= 10, m.col8, DATE(u.col9) ) if_c789</span>
    p column<span style="color: #009900;">&#40;</span>
        <span style="color: #009966; font-style: italic;">qw/col7 item if_c789/</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">sub</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c7</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c8</span> <span style="color: #339933;">=</span> column<span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">qw/col8 -m -/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c9</span> <span style="color: #339933;">=</span> column<span style="color: #009900;">&#40;</span>
                <span style="color: #009966; font-style: italic;">qw/col9 -u -/</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">sub</span> <span style="color: #009900;">&#123;</span>
                    <span style="color: #000066;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'DATE(%s)'</span><span style="color: #339933;">,</span> <span style="color: #000066;">shift</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
            <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066;">return</span> <span style="color: #ff0000;">&quot;IF( $c7 &gt;= 10, $c8, $c9 )&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">__END__</span></pre></div></div>

<h3>おわりに</h3>
<p>それでは，勉強に戻ります．</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iwa-ya.net/2010/07/07/222730/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iwa-ya.net/2010/07/07/222730</feedburner:origLink></item>
		<item>
		<title>[perl] DBIx::Skinnyにおけるinflateの動作確認メモ</title>
		<link>http://feedproxy.google.com/~r/issm/~3/QM_n6gsKBFw/073248</link>
		<comments>http://blog.iwa-ya.net/2010/07/04/073248#comments</comments>
		<pubDate>Sat, 03 Jul 2010 22:32:48 +0000</pubDate>
		<dc:creator>issm</dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://blog.iwa-ya.net/?p=2728</guid>
		<description><![CDATA[はじめに
ちょっとDBIx::Skinnyの勉強ちゅうです．
チュートリアルが詰まっているJPerl Advent Calendar 2009 の DBIx::Skinny trackに目を通して，「inflate」「d [...]]]></description>
			<content:encoded><![CDATA[<h3>はじめに</h3>
<p>ちょっと<a href="http://search.cpan.org/dist/DBIx-Skinny/">DBIx::Skinny</a>の勉強ちゅうです．</p>
<p>チュートリアルが詰まっている<a href="http://perl-users.jp/articles/advent-calendar/2009/dbix-skinny/">JPerl Advent Calendar 2009 の DBIx::Skinny track</a>に目を通して，「inflate」「deflate」なる概念を初めて知りました＞＜ というか，O/Rマッパを触るのが初めｔ（ｒｙ</p>
<p>ということで，以下，その動作確認のメモです．</p>
<h3>参考</h3>
<ul class="links">
<li><a href="http://perl-users.jp/articles/advent-calendar/2009/dbix-skinny/04.html" title="Schemaの設定について2 #04 - JPerl Advent Calendar 2009">Schemaの設定について2 #04 &#8211; JPerl Advent Calendar 2009</a></li>
<li><a href="http://perl-users.jp/articles/advent-calendar/2009/dbix-skinny/08.html" title="色々なデータの更新方法1 #08 - JPerl Advent Calendar 2009">色々なデータの更新方法1 #08 &#8211; JPerl Advent Calendar 2009</a></li>
</ul>
<h3>主要モジュールのバージョン</h3>
<dl>
<dt><code>DBIx::Skinny</code></dt>
<dd><a href="http://search.cpan.org/~nekokak/DBIx-Skinny-0.0712/">0.0712</a></dd>
<dt><code>DBIx::Skinny::Schema::Loader</code></dt>
<dd><a href="http://search.cpan.org/~nekoya/DBIx-Skinny-Schema-Loader-0.12/">0.12</a></dd>
</dl>
<h3>確認用コード</h3>
<p>UNIX時間が格納されているカラムを読み，<a href="http://search.cpan.org/dist/DateTime-Format-MySQL/"><code>DateTime::Format::MySQL</code></a>を使って<code>DateTime</code>オブジェクトとして取得することを考えてみます．</p>
<p>まず，モデルの定義．</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #000066;">package</span> Hoge<span style="color: #339933;">::</span><span style="color: #006600;">DB</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> DBIx<span style="color: #339933;">::</span><span style="color: #006600;">Skinny</span> setup <span style="color: #339933;">=&gt;</span> <span style="color: #339933;">+</span><span style="color: #009900;">&#123;</span>
    dsn      <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'dbi:mysql:hoge'</span><span style="color: #339933;">,</span>
    username <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'hoge'</span><span style="color: #339933;">,</span>
    password <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'hogehoge'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #000066;">package</span> Hoge<span style="color: #339933;">::</span><span style="color: #006600;">DB</span><span style="color: #339933;">::</span><span style="color: #006600;">Schema</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> base <span style="color: #009966; font-style: italic;">qw/DBIx::Skinny::Schema::Loader/</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> DBIx<span style="color: #339933;">::</span><span style="color: #006600;">Skinny</span><span style="color: #339933;">::</span><span style="color: #006600;">Schema</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> DateTime<span style="color: #339933;">::</span><span style="color: #006600;">Format</span><span style="color: #339933;">::</span><span style="color: #006600;">MySQL</span><span style="color: #339933;">;</span>
&nbsp;
install_inflate_rule <span style="color: #009966; font-style: italic;">qr/^t_add$/</span> <span style="color: #339933;">=&gt;</span> callback <span style="color: #009900;">&#123;</span>
    inflate <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$v</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">@t</span> <span style="color: #339933;">=</span> <span style="color: #000066;">reverse</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">localtime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$v</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>0<span style="color: #339933;">..</span>5<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #0000ff;">$t</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">1900</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$t</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">++;</span>
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$dt</span> <span style="color: #339933;">=</span> <span style="color: #000066;">sprintf</span><span style="color: #009900;">&#40;</span>
            <span style="color: #ff0000;">'%04d-%02d-%02d %02d:%02d:%02d'</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">@t</span><span style="color: #339933;">,</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">return</span> DateTime<span style="color: #339933;">::</span><span style="color: #006600;">Format</span><span style="color: #339933;">::</span><span style="color: #006600;">MySQL</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">parse_datetime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$dt</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
__PACKAGE__<span style="color: #339933;">-&gt;</span><span style="color: #006600;">load_schema</span><span style="color: #339933;">;</span>
<span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span></pre></div></div>

<p>モデルオブジェクトを生成してSELECTして「t_add」カラムを取得するコード．<code>DBIx::Skinny::Row</code>オブジェクトで指定のカラムを取得する方法が何とおりかあるようなので，とりあえず確認できた3パタンで確認しています．</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">use</span> Hoge<span style="color: #339933;">::</span><span style="color: #006600;">DB</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> Data<span style="color: #339933;">::</span><span style="color: #006600;">Dumper</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$model</span> <span style="color: #339933;">=</span> Hoge<span style="color: #339933;">::</span><span style="color: #006600;">DB</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$itr</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$model</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">search_by_sql</span><span style="color: #009900;">&#40;</span>
    <span style="color: #ff0000;">'SELECT t_add FROM table'</span><span style="color: #339933;">,</span>
    <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'table'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$row</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$itr</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">first</span><span style="color: #339933;">;</span>
<span style="color: #000066;">print</span> Dumper <span style="color: #009900;">&#91;</span>
    <span style="color: #0000ff;">$row</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get_columns</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>t_add<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">$row</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get_column</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'t_add'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">$row</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">t_add</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></pre></div></div>

<h3>出力結果</h3>
<p>次のように出ました．</p>

<div class="wp_syntax"><div class="code"><pre class="terminal" style="font-family:monospace;">$VAR1 = [
          '1278191892',
          '1278191892',
          bless( {
                   'local_rd_secs' =&gt; 22692,
                   'local_rd_days' =&gt; 39966,
                   'rd_nanosecs' =&gt; 0,
                   'locale' =&gt; bless( {
                                        'default_time_format_length' =&gt; 'medium',
                                        'native_territory' =&gt; 'United States',
                                        'native_language' =&gt; 'English',
                                        'native_complete_name' =&gt; 'English United States',
                                        'en_language' =&gt; 'English',
                                        'id' =&gt; 'en_US',
                                        'default_date_format_length' =&gt; 'medium',
                                        'en_complete_name' =&gt; 'English United States',
                                        'en_territory' =&gt; 'United States'
                                      }, 'DateTime::Locale::en_US' ),
                   'local_c' =&gt; {
                                  'hour' =&gt; 6,
                                  'second' =&gt; 12,
                                  'month' =&gt; 6,
                                  'quarter' =&gt; 2,
                                  'day_of_year' =&gt; 155,
                                  'day_of_quarter' =&gt; 65,
                                  'minute' =&gt; 18,
                                  'day' =&gt; 4,
                                  'day_of_week' =&gt; 3,
                                  'year' =&gt; 110
                                },
                   'utc_rd_secs' =&gt; 22692,
                   'formatter' =&gt; undef,
                   'tz' =&gt; bless( {
                                    'name' =&gt; 'floating',
                                    'offset' =&gt; 0
                                  }, 'DateTime::TimeZone::Floating' ),
                   'utc_year' =&gt; 111,
                   'utc_rd_days' =&gt; 39966,
                   'offset_modifier' =&gt; 0
                 }, 'DateTime' )
        ];</pre></div></div>

<h3>まとめ</h3>
<p>inflateされたものを取得するには，rowオブジェクトからカラム名なメソッドで呼び出す必要があるようです．</p>
<h3>ちょっと気になったところ</h3>
<p><code>inflate</code>/<code>deflate</code>の引数となるコードの中でエラーがあった場合，これを拾う方法はあるのかな．まぁ，値がinflateされずにそのまま得られるので，問題があることに気づくとは思いますが．</p>
<p>あと，この場合，<code>$model->schema->schema_info</code>の値が空なハッシュリファレンスになりますね．（あまり関係ない？）</p>
<h3>おわりに</h3>
<p>以上，初めてのO/Rマッパ（でもある）<code>DBIx::Skinny</code>の勉強の一環として，inflateの動作を確認してみました．</p>
<p>まだほんの少ししか触っていませんが，inflate/deflateは非常にありがたい機能ですね．しっかり使いこなせるよう精進します．</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iwa-ya.net/2010/07/04/073248/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.iwa-ya.net/2010/07/04/073248</feedburner:origLink></item>
		<item>
		<title>[perl] 色付き多重grepを少しだけ楽に行うためのPerlスクリプトを書いてみた</title>
		<link>http://feedproxy.google.com/~r/issm/~3/pDdfLEcQQhM/075329</link>
		<comments>http://blog.iwa-ya.net/2010/06/23/075329#comments</comments>
		<pubDate>Tue, 22 Jun 2010 22:53:29 +0000</pubDate>
		<dc:creator>issm</dc:creator>
				<category><![CDATA[小ネタ]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://blog.iwa-ya.net/?p=2716</guid>
		<description><![CDATA[


はじめに
コマンドラインで「色付き多重grep」を実行するのがメンドウに思えてきたので，そのあたりをラップして楽をできる（かもしれない）Perlスクリプトを書いてみました．
以下，その概要や使い方について淡々と．
 [...]]]></description>
			<content:encoded><![CDATA[<div class="flickr-photo-noresize">
<a href="http://www.flickr.com/photos/issm/4725628214/" title="ss-2010-06-23-01 on Flickr"><img src="http://farm2.static.flickr.com/1021/4725628214_fb007d7d12.jpg" alt="ss-2010-06-23-01 on Flickr" title="ss-2010-06-23-01 on Flickr" /></a>
</div>
<h3>はじめに</h3>
<p>コマンドラインで「色付き多重grep」を実行するのがメンドウに思えてきたので，そのあたりをラップして楽をできる（かもしれない）Perlスクリプトを書いてみました．</p>
<p>以下，その概要や使い方について淡々と．</p>
<h3>背景</h3>
<p>環境変数<code>GREP_COLOR</code>に特定の値を設定することで，<code>grep</code>した際の文字を色付きでハイライトすることができることを，最近知りました．</p>

<div class="wp_syntax"><div class="code"><pre class="terminal" style="font-family:monospace;">% grep --color=always hoge /somewhere/target.txt
(「hoge」が含まれる行のみ，かつ「hoge」が赤色でハイライトされた状態で内容が出力される)
&nbsp;
% env GREP_COLOR=&quot;1;32&quot; grep --color=always fuga /somewhere/target.txt
(「fuga」が含まれる行のみ，かつ「fuga」が緑色でハイライトされた状態で内容が出力される)</pre></div></div>

<p>パイプで<code>grep</code>を多重化，そして<code>grep</code>ごとに環境変数<code>GREP_COLOR</code>を別の値に設定することで，「色付き多重grep」が可能となります．</p>

<div class="wp_syntax"><div class="code"><pre class="terminal" style="font-family:monospace;">% env GREP_COLOR=&quot;1;33&quot; grep --color=always hoge /somewhere/target.txt \
  | env GREP_COLOR GREP_COLOR=&quot;1;34&quot; grep --color=always fuga</pre></div></div>

<p>上の例では，「hoge」「fuga」の両方が含まれる行のみ，かつ「hoge」が黄色，「fuga」が青色でそれぞれハイライトされた内容が表示されます．</p>
<p>そんな感じで，「色付き多重grep」は，テキストな文章やソースコード，ログファイルなどから，特定の内容を探すのに非常に便利なツールです．しかし，ちょこっと検索の書式を変更したり，さらに絞り込んだりしたりなどの際に，コマンドを修正するのがけっこうメンドイことは否めません．</p>
<h3>概要</h3>
<div class="flickr-photo-noresize">
<a href="http://www.flickr.com/photos/issm/4725628306/" title="ss-2010-06-23-02 on Flickr"><img src="http://farm2.static.flickr.com/1137/4725628306_e5e624b7f6.jpg" alt="ss-2010-06-23-02 on Flickr" title="ss-2010-06-23-02 on Flickr" /></a>
</div>
<p>そんなことから，その辺のメンドさを軽減できるようなPerlスクリプト（以下，<code>grep.pl</code>）を書いてみました．</p>
<p>基本的な使い方は次のとおりです．</p>

<div class="wp_syntax"><div class="code"><pre class="terminal" style="font-family:monospace;">% /path/to/script/grep.pl -{re1} -{re2} ... {file1} {file2} ...</pre></div></div>

<p>検索語（たぶん正規表現可）の頭に「-」をつけたものと，検索対象のファイルを，引数として与える形をとっています．それぞれ複数指定が可能です．</p>
<p>先の例を例にとると（？），次のような感じに置き換えられます．（現状では，色の設定はPerlスクリプトを直接修正する必要がありますが＞＜）</p>

<div class="wp_syntax"><div class="code"><pre class="terminal" style="font-family:monospace;">% /path/to/script/grep.pl -hoge -fuga /somewhere/target.txt</pre></div></div>

<p>また，<code>find</code>コマンドの結果をパイプで渡すような使い方もできます．</p>

<div class="wp_syntax"><div class="code"><pre class="terminal" style="font-family:monospace;">% find /somewhere/* -name '*.txt' \
    | /path/to/script/grep.pl -hoge -fuga</pre></div></div>

<h4>出力結果</h4>
<p>指定したファイル（群）のうち，指定した検索語すべてを含んでいる（マッチする）行が1つでもあればそのファイル名，そして該当するすべての行について行番号と内容（色によるハイライトあり）がそれぞれ表示されます．（冒頭の図のような感じです．）</p>
<p>この出力には，<code>grep -Hn</code>コマンドによる出力を利用しています．</p>
<h4>ほんの少しだけ正規表現の変換</h4>
<div class="flickr-photo-noresize">
<a href="http://www.flickr.com/photos/issm/4725628394/" title="ss-2010-06-23-03 on Flickr"><img src="http://farm2.static.flickr.com/1423/4725628394_4b1dd81974.jpg" alt="ss-2010-06-23-03 on Flickr" title="ss-2010-06-23-03 on Flickr" /></a>
</div>
<p><code>grep.pl</code>の内部では，引数として与えられた正規表現とともに<code>grep</code>コマンドを呼び出しています．Perlで使えるけど<code>grep</code>コマンドでは使えないものもあるため，<code>\d</code>を<code>[0-9]</code>に置き換える，といったような力技を，ごく一部の正規表現に対して行ったりしています．</p>
<h3>ソースコード</h3>
<p><code>grep.pl</code>のソースコードの現状はgithubに上がっていますので，よろしければお試しください．中身はキタナイですよｗ</p>
<ul class="links">
<li><a href="http://github.com/issm/tools/tree/master/grep/" title="grep at master from issm's tools - GitHub">grep at master from issm&#8217;s tools &#8211; GitHub</a></li>
</ul>
<p><code>grep</code>，<code>wc</code>の各コマンドを，スクリプト内部で呼び出しています．Mac OSX上のzshでしか確認していませんが，Linux系であればたぶん大丈夫でないかな，と思います．</p>
<h3>おわりに</h3>
<p>以上，便利だけど実行がメンドイ「色付き多重grep」を，少しだけ楽に行うためのPerlスクリプトを書き，簡単に紹介してみました．</p>
<p>今回のスクリプト書きをとおして，ターミナル上での色出力について少しだけ勉強になりました．しかし，出力がカラフルになるからといって調子に乗って多用すると，ソースコードとか後々カオスになりそうでコワイので，まぁほどほどにしておきます．</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iwa-ya.net/2010/06/23/075329/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iwa-ya.net/2010/06/23/075329</feedburner:origLink></item>
		<item>
		<title>[mac][emacs] 設定に1行加えたらcperl-modeでのレスポンスがよくなった気がする件</title>
		<link>http://feedproxy.google.com/~r/issm/~3/17RpI3uuz-U/211445</link>
		<comments>http://blog.iwa-ya.net/2010/06/15/211445#comments</comments>
		<pubDate>Tue, 15 Jun 2010 12:14:45 +0000</pubDate>
		<dc:creator>issm</dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://blog.iwa-ya.net/?p=2707</guid>
		<description><![CDATA[はじめに
まぎらわしいタイトルでスミマセン＞＜
単にアタリマエのことをしていなかっただけのことですが，知ることができたのでメモしておくとします．
これまで
現在のメイン機MacBookでPerlするときには，Emacs（ [...]]]></description>
			<content:encoded><![CDATA[<h3>はじめに</h3>
<p>まぎらわしいタイトルでスミマセン＞＜</p>
<p>単にアタリマエのことをしていなかっただけのことですが，知ることができたのでメモしておくとします．</p>
<h3>これまで</h3>
<p>現在のメイン機MacBookでPerlするときには，Emacs（Cocoa Emacs）の<a href="http://www.emacswiki.org/emacs/CPerlMode"><code>cperl-mode</code></a>を使っていますが，キー入力に対するレスポンスが非常に遅く，イライラさせられっぱなしでした．<code>cperl-mode</code>へ自動で切り替える設定は次のような感じです．</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> auto-mode-alist <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">append</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.psgi$&quot;</span> <span style="color: #66cc66;">.</span> cperl-mode<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> auto-mode-alist<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> auto-mode-alist <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">append</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.cgi$&quot;</span> <span style="color: #66cc66;">.</span> cperl-mode<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> auto-mode-alist<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> auto-mode-alist <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">append</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.pl$&quot;</span> <span style="color: #66cc66;">.</span> cperl-mode<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> auto-mode-alist<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> auto-mode-alist <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">append</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.pm$&quot;</span> <span style="color: #66cc66;">.</span> cperl-mode<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> auto-mode-alist<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> auto-mode-alist <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">append</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.t$&quot;</span> <span style="color: #66cc66;">.</span> cperl-mode<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> auto-mode-alist<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>しかもこの設定の場合，*.plなファイルを開いたときに，通常の<code>perl-mode</code>だったりすることがあるんですね．その辺の条件はよくわかりません．</p>
<h3>見つけた1行</h3>
<p>で，「emacs cperl-mode」とかでググってみると，次の1行をよく見かけました．</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>defalias 'perl-mode 'cperl-mode<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>これを追加してみたところ，モッサリしていたレスポンスが改善された感じです．</p>
<p>この1行，<code>perl-mode</code>を<code>cperl-mode</code>へ完全に置き換えてしまうような意味でしょうかね．ということは，これまでは，<code>perl-mode</code>と<code>cperl-mode</code>の両者が読み込まれていて，何か干渉とか競合とかしてた，ということにでもなりますか．う〜ん，サッパリです＞＜</p>
<p>先の検索について，参考までにリンクをいくつか．</p>
<ul class="links">
<li><a href="http://www5d.biglobe.ne.jp/~y0ka/2005-08-25-1.html" title="emacs-22 で cperl-mode を使うとき">emacs-22 で cperl-mode を使うとき</a></li>
<li><a href="http://d.hatena.ne.jp/CortYuming/20080214/p1" title="cperl-modeとperlplusを使うための設定メモ。 - 牌語備忘録">cperl-modeとperlplusを使うための設定メモ。 &#8211; 牌語備忘録</a></li>
<li><a href="http://ash.roova.jp/perl-to-the-people/emacs-cperl-mode.html" title="emacsのcperl-modeを設定する: ash">emacsのcperl-modeを設定する: ash</a></li>
</ul>
<h3>現在</h3>
<p>ということで，「<code>cperl-mode</code>で開いてね」な設定は次のようになりました．</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>defalias 'perl-mode 'cperl-mode<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> auto-mode-alist <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">append</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.psgi$&quot;</span> <span style="color: #66cc66;">.</span> cperl-mode<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> auto-mode-alist<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> auto-mode-alist <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">append</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.cgi$&quot;</span> <span style="color: #66cc66;">.</span> cperl-mode<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> auto-mode-alist<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">;(setq auto-mode-alist (append '((&quot;\\.pl$&quot; . cperl-mode)) auto-mode-alist))</span>
<span style="color: #808080; font-style: italic;">;(setq auto-mode-alist (append '((&quot;\\.pm$&quot; . cperl-mode)) auto-mode-alist))</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> auto-mode-alist <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">append</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.t$&quot;</span> <span style="color: #66cc66;">.</span> cperl-mode<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> auto-mode-alist<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p><code>*.pl</code>，<code>*.pm</code>なファイルは，デフォルトで<code>perl-mode</code>で開くようになっていたので，それが<code>defalias</code>によって<code>cperl-mode</code>に置き換わることから，同拡張子に関する設定は不要っぽいですね．ので，コメントアウト．</p>
<h3>おわりに</h3>
<p>以上，<code>cperl-mode</code>を使うにあたって必須ともいえる1行の記述がなかったために，勝手にイライラしていた人のメモでした．</p>
<p>これでPerlを書くモチベーションも上昇します．</p>
<h3>amazonさん</h3>
<p>そういえば，Emacsって，中身について全然考えたことなかったかもです．やっぱり少しは気にした方がいいのかなぁ．．．</p>
<ul class="amazlet">
<li>
<div class="amazlet-box">
<div class="amazlet-image"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/487311277X/issm-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/4191BPAGdkL._SL160_.jpg" alt="入門 GNU Emacs 第3版" /></a></div>
<div class="amazlet-info">
<div class="amazlet-name"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/487311277X/issm-22/ref=nosim/" name="amazletlink" target="_blank">入門 GNU Emacs 第3版</a>
<div class="amazlet-powered-date">posted with <a href="http://www.amazlet.com/browse/ASIN/487311277X/issm-22/ref=nosim/" title="入門 GNU Emacs 第3版" target="_blank">amazlet</a> at 10.06.15</div>
</div>
<div class="amazlet-detail">Debra Cameron James Elliott Marc Loy Eric Raymond Bill Rosenblatt <br />オライリー・ジャパン <br />売り上げランキング: 19487</div>
<div class="amazlet-link"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/487311277X/issm-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div>
</div>
<div class="amazlet-footer"></div>
</div>
</li>
<li>
<div class="amazlet-box">
<div class="amazlet-image"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4756118054/issm-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/21ab8bVOsAL._SL160_.jpg" alt="Emacs Lispプログラミング入門" /></a></div>
<div class="amazlet-info">
<div class="amazlet-name"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4756118054/issm-22/ref=nosim/" name="amazletlink" target="_blank">Emacs Lispプログラミング入門</a>
<div class="amazlet-powered-date">posted with <a href="http://www.amazlet.com/browse/ASIN/4756118054/issm-22/ref=nosim/" title="Emacs Lispプログラミング入門" target="_blank">amazlet</a> at 10.06.15</div>
</div>
<div class="amazlet-detail">Robert J.Chassell <br />アスキー <br />売り上げランキング: 192615</div>
<div class="amazlet-link"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4756118054/issm-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div>
</div>
<div class="amazlet-footer"></div>
</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.iwa-ya.net/2010/06/15/211445/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.iwa-ya.net/2010/06/15/211445</feedburner:origLink></item>
	</channel>
</rss>
