<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>bokut.in</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/" />
    <link rel="self" type="application/atom+xml" href="http://bokut.in/mt/atom.xml" />
    <id>tag:bokut.in,2008-01-03:/mt//1</id>
    <updated>2009-11-25T08:36:19Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Publishing Platform 4.01</generator>

<entry>
    <title>Macbook Proが水没・・・復活</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2009/11/macbook-pro-submerged.html" />
    <id>tag:bokut.in,2009:/mt//1.122</id>

    <published>2009-11-25T03:08:10Z</published>
    <updated>2009-11-25T08:36:19Z</updated>

    <summary>うわーん、コーヒーをブチまけてしまいました・・・ こんなかんじ。 最初は問題なく...</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[うわーん、コーヒーをブチまけてしまいました・・・


<img src="http://bokut.in/mt/mbp-coffee-thumb-484x369.jpg" width="484" height="369" alt="mbp-coffee.jpg"  />

こんなかんじ。
最初は問題なく動いていたけれど、20秒ぐらいすると、プツプツ音がして電源が切れてしまいました。
Ω＼ζﾟ)ﾁｰﾝ

30分ぐらいドライヤーで乾かして放置したけれど、電源は入らず。
普段は緑の電源のランプがオレンジ点滅になったままです。



<a href="http://www.ifixit.com/Guide/Repair/Installing-MacBook-Pro-15-Inch-Core-2-Duo-Models-A1226-and-A1260-Logic-Board-Replacement/681/1">ifixit</a>を参考にマザボを取り外してチェックしました。乾いていたものの、一部に腐食して変に汚れてる箇所を発見しますた。

<img src="http://bokut.in/mt/mbp-logic-board-thumb-484x377.jpg" width="484" height="377" alt="mbp-logic-board.jpg" />

清掃後の写真です。この辺の汚れを取り除いたら、復活しました。うっほ、逞すぃ。]]>
        
    </content>
</entry>

<entry>
    <title>CoolBook、MacBook Pro Mid 2007 2.2GHzでもやってみた</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2009/08/coolbook-macbook-pro.html" />
    <id>tag:bokut.in,2009:/mt//1.121</id>

    <published>2009-08-12T07:30:13Z</published>
    <updated>2009-08-12T08:11:38Z</updated>

    <summary>前の続きです。 ずっと、2200MHz動作でした。にゃるほど、こういう違いなんで...</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[<a href="http://bokut.in/mt/2009/08/macbook-air-mid-2009-coolbook.html">前</a>の続きです。

<span class="mt-enclosure mt-enclosure-image"><a href="http://bokut.in/mt/2009/08/12/coolbook-pro1.html" onclick="window.open('http://bokut.in/mt/2009/08/12/coolbook-pro1.html','popup','width=481,height=736,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://bokut.in/mt/2009/08/12/coolbook-pro1-thumb-484x740.jpg" width="484" height="740" alt="coolbook-pro1.jpg" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

ずっと、2200MHz動作でした。にゃるほど、こういう違いなんでつね。]]>
        
    </content>
</entry>

<entry>
    <title>第3世代MacBook Air Mid 2009でCoolBook</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2009/08/macbook-air-mid-2009-coolbook.html" />
    <id>tag:bokut.in,2009:/mt//1.120</id>

    <published>2009-08-12T05:38:46Z</published>
    <updated>2009-08-12T08:18:46Z</updated>

    <summary>三代目MacBook Air Mid 2009でCoolBook</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
        <category term="Mac" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mac" label="Mac" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[夜はエアコン無しで涼みたいので、昼間は扇風機でガマンしてるbokutinです。

夏で暑くなってきたからか、<a href="http://www.google.com/search?q=kernel_task+熱" target="_blank">kernel_task</a>が暴れだすことが多くなってきました。

kernel_taskが動きだす理由はよく分からないのですが、何かの拍子にスイッチが入ったように動きだします。
そして強制的に冷却しても、なかなか止んでくれません。
瞬間のCPU温度でスイッチが入るような仕組みではなさそうです。
前数十秒間のCPU使用率、CPU freq、CPU温度、USBの消費電力量などから算出した値が使われてそうな気がしてます。
(試しにセルフパワーのUSBハブに替えたら頻度は減りました。)

<a href="http://www.coolbook.se/" target="_blank">CoolBook</a>をインストールし、3つの簡単なベンチマークを取ってみました。

ベンチマークとして、<a href="http://www.coolbook.se/CPUTest.html" target="_blank">CPUTest</a>のTest type - big、Instance - 2を使用しました。
全て56度スタートです。

1、CoolBookはオフ。coolbookのkextはロード (Informationを見るため)
<pre>foil bokutin % kextstat | grep -i coolbook
   75    0 0x29b33000 0x3000     0x2000     se.coolbook.driver2 (2.0.7) <12 5 4 2></pre>
03:01。温度は68〜73をふらつき、平均71。

[Adapter] (デフォルト値)
 798MHz - 0.9250V
1596MHz - 1.0000V
1862MHz - 1.0375V
2128MHz - 1.0750V

<span class="mt-enclosure mt-enclosure-image"><a href="http://bokut.in/mt/2009/08/12/coolbook1.html" onclick="window.open('http://bokut.in/mt/2009/08/12/coolbook1.html','popup','width=484,height=736,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://bokut.in/mt/2009/08/12/coolbook1-thumb-484x736.jpg" width="484" height="736" alt="coolbook1.jpg" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

2、CoolBookはオフ。coolbookのkextはロードせず。
CoolBookはアンインストールを行ないました。
CoolBookControllerのInformationが見れませんが、smcFanControlの温度表示では1と変わりはありませんでした。
02:59。1とほぼ同じです。

<span class="mt-enclosure mt-enclosure-image"><a href="http://bokut.in/mt/2009/08/12/coolbook2.html" onclick="window.open('http://bokut.in/mt/2009/08/12/coolbook2.html','popup','width=482,height=374,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://bokut.in/mt/2009/08/12/coolbook2-thumb-484x375.jpg" width="484" height="375" alt="coolbook2.jpg" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

3、CoolBookはオン。
Voltageは数回試して見付けた最適値に設定してあります。
02:26。誤差の範囲でないくらい速くなりました。
平均の温度は71。1と違い、ほぼふらつきませんでした。

[Adapter] (カスタム値) (個体差もあります)
 798MHz - 0.9250V
1596MHz - 0.9250V
1862MHz - 0.9500V
2128MHz - 0.9750V

[Battery]
 798MHz - 0.9250V
1596MHz - 0.9250V

<span class="mt-enclosure mt-enclosure-image"><a href="http://bokut.in/mt/2009/08/12/coolbook3.html" onclick="window.open('http://bokut.in/mt/2009/08/12/coolbook3.html','popup','width=481,height=733,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://bokut.in/mt/2009/08/12/coolbook3-thumb-484x737.jpg" width="484" height="737" alt="coolbook3.jpg" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

MacBook Airだとエンコードが遅い理由がハッキリしました。
MacBook AirはCPUが可変で動いています。
1の状態では798MHzと1596MHzを交互に切り替えていて
大体、798MHzを3/4秒、1596MHzを1/10秒、798MHzを3/4秒・・・ループ
といった感じでした。
2.13GHzの6M L2なのに、何でこんなに遅いんだろう、というナゾは解けました。
3では798MHz、1596MHz、1862lMHzの間で切り替わってました。

このことから、ベンチマークは室温によって、かなり変わってくるかもしれません。

3では1と同条件にするためTemp limitを70にしましたが、これをOffにすると、ずっと2128MHzで動作します。
凄く速いのですが、あっというまに80を超えたので、直にベンチを止めました。
扇風機をガン当てして、再度試しましたが、また直に80を超えました。
仮に冷せれるか、熱くなるのを覚悟して計れば、かなりのベンチマーク結果になるはずです。

隣のMacBook Proは普通に70を超えているので、
MacBook AirのTemp limitは低めに設定されているのだろうと思います。]]>
        
    </content>
</entry>

<entry>
    <title>TortoiseGitのmsysgitにPerlが入っとる</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2009/07/tortoisegit-msysgit-perl.html" />
    <id>tag:bokut.in,2009:/mt//1.119</id>

    <published>2009-07-19T13:20:15Z</published>
    <updated>2009-07-19T14:35:02Z</updated>

    <summary>まだsvkつこてます。なにげにsvk branchが便利です。 Windows版...</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Windows" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="perl" label="Perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[まだsvkつこてます。なにげにsvk branchが便利です。

Windows版の<a href="http://code.google.com/p/msysgit/">Git</a>にもPerlが入ってるんですね。やっぱり！

<a href="http://search.cpan.org/perldoc?local::lib">local::lib</a>をつかったりしてextlibを集めれば、Perlのプログラムが動かせる！
StrawberryPerlやStraweberryPerl Portableを入れなくても、PARを使わなくても！
PDF Readerを入れればAIR環境が！ とまではいかねいか・・・

<span class="mt-enclosure mt-enclosure-image"><img alt="tortoisegit-msysgit-perl.png" src="http://bokut.in/mt/2009/07/19/tortoisegit-msysgit-perl.png" width="507" height="250" style="margin: 0 20px 20px 0;"/></span>
]]>
        
    </content>
</entry>

<entry>
    <title>Macbook AirにオススメなUSBハブ</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2009/07/macbook-air-usb-hub.html" />
    <id>tag:bokut.in,2009:/mt//1.118</id>

    <published>2009-07-07T00:38:02Z</published>
    <updated>2009-07-07T00:48:15Z</updated>

    <summary>お供に欲すぃ   Amazon.co.jp ウィジェット   Amazon.co...</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[お供に欲すぃ

<SCRIPT charset="utf-8" type="text/javascript" src="http://ws.amazon.co.jp/widgets/q?ServiceVersion=20070822&MarketPlace=JP&ID=V20070822/JP/bokutin-22/8001/a8c9d091-2221-45be-a486-20ca65fb0cb7"> </SCRIPT> <NOSCRIPT><A HREF="http://ws.amazon.co.jp/widgets/q?ServiceVersion=20070822&MarketPlace=JP&ID=V20070822%2FJP%2Fbokutin-22%2F8001%2Fa8c9d091-2221-45be-a486-20ca65fb0cb7&Operation=NoScript">Amazon.co.jp ウィジェット</A></NOSCRIPT>

<SCRIPT charset="utf-8" type="text/javascript" src="http://ws.amazon.co.jp/widgets/q?ServiceVersion=20070822&MarketPlace=JP&ID=V20070822/JP/bokutin-22/8001/ac556a0b-fead-459b-b65f-859f48dce76b"> </SCRIPT> <NOSCRIPT><A HREF="http://ws.amazon.co.jp/widgets/q?ServiceVersion=20070822&MarketPlace=JP&ID=V20070822%2FJP%2Fbokutin-22%2F8001%2Fac556a0b-fead-459b-b65f-859f48dce76b&Operation=NoScript">Amazon.co.jp ウィジェット</A></NOSCRIPT>]]>
        
    </content>
</entry>

<entry>
    <title>WxPerl で XRC で Subclassing って</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2009/07/wxperl-xrc-subclassing.html" />
    <id>tag:bokut.in,2009:/mt//1.117</id>

    <published>2009-07-01T06:34:12Z</published>
    <updated>2009-07-02T12:45:07Z</updated>

    <summary> こうやってたんだけど、なんか違うのかにゃー。 WxTohoho.pl - ソー...</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    <category term="perl" label="Perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[<p>
こうやってたんだけど、なんか違うのかにゃー。
</p>

<span class="mt-enclosure mt-enclosure-image"><a href="http://bokut.in/mt/2009/07/01/WxTohoho-shot.html" onclick="window.open('http://bokut.in/mt/2009/07/01/WxTohoho-shot.html','popup','width=583,height=370,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://bokut.in/mt/2009/07/01/WxTohoho-shot-thumb-350x222.png" width="350" height="222" alt="WxTohoho-shot.png" class="mt-image-left" style="margin: 0 20px 20px 0;" /></a></span>

<p style="clear: both;">

<span class="mt-enclosure mt-enclosure-file"><a href="http://bokut.in/mt/2009/07/01/WxTohoho.pl">WxTohoho.pl - ソース</a></span>

<br/>

<span class="mt-enclosure mt-enclosure-file"><a href="http://bokut.in/mt/2009/07/01/WxTohoho.xrc.txt">WxTohoho.xrc - XMLリソースファイル</a></span>

<br/>

<span class="mt-enclosure mt-enclosure-file"><a href="http://bokut.in/mt/2009/07/01/WxTohoho.zip">WxTohoho.zip - XRCなど</a></span>

</p>

<p>
おまけ

<br/>

<span class="mt-enclosure mt-enclosure-file"><a href="http://bokut.in/mt/2009/07/01/WxTohoho.exe">WxTohoho.exe - PARで固めたもの</a></span>

</p>

<p>

XRCエディタは<a href="http://wxformbuilder.org/">wxFormBuilder</a>がおすすめでつ。

</p>]]>
        
    </content>
</entry>

<entry>
    <title>Live</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2009/05/bleach-live.html" />
    <id>tag:bokut.in,2009:/mt//1.116</id>

    <published>2009-05-23T21:01:57Z</published>
    <updated>2009-05-23T22:00:23Z</updated>

    <summary> Bleachライブ見てきたー。 極端変身する様がステキだったお。...</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[<span class="mt-enclosure mt-enclosure-image"><img alt="" src="http://bokut.in/mt/2009/05/24/bleach-sign.jpg/CIMG1430.jpg" width="210" height="118" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;"/></span>
<a href="http://www.highwave.co.jp/bleach/index.html">Bleach</a>ライブ見てきたー。<br/>
極端変身する様がステキだったお。]]>
        
    </content>
</entry>

<entry>
    <title>地方公共団体コードCSV</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2009/04/local-authority-code.html" />
    <id>tag:bokut.in,2009:/mt//1.115</id>

    <published>2009-04-25T08:51:49Z</published>
    <updated>2009-04-26T03:25:59Z</updated>

    <summary>纏まっているものって、ないのね。 郵便番号データCSVにも、政令指定都市は載って...</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[纏まっているものって、ないのね。
郵便番号データCSVにも、政令指定都市は載ってねい。

例によってスクレイピング書き。
ここからスクレイプするよ。おじゃまするでつ。
<a href="http://www.lasdec.nippon-net.ne.jp/cms/1,0,14.html">http://www.lasdec.nippon-net.ne.jp/cms/1,0,14.html</a>

<span class="mt-enclosure mt-enclosure-file"><a href="http://bokut.in/mt/2009/04/25/scrape_and_save_local_authority_code_csv.txt">scrape_and_save_local_authority_code_csv.pl</a></span>


<span class="mt-enclosure mt-enclosure-file"><a href="http://bokut.in/mt/2009/04/25/local_authority.csv">local_authority.csv</a></span>]]>
        
    </content>
</entry>

<entry>
    <title>proveでutf8してい</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2008/08/post-12.html" />
    <id>tag:bokut.in,2008:/mt//1.113</id>

    <published>2008-08-01T08:06:47Z</published>
    <updated>2008-08-01T08:24:24Z</updated>

    <summary>prove (Test-Harness-3.13) ってUTF8が文字化けしねい...</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[<a href="http://search.cpan.org/~andya/Test-Harness-3.13/bin/prove">prove (Test-Harness-3.13)</a>
ってUTF8が文字化けしねい?

<font color="#ffff00">1 </font>mbp root # diff -rd lib/ /opt/local/lib/perl5/5.10.0/&nbsp;&nbsp;| less | grep -v '^Only '<br> 
<font color="#ffff00">2 </font>diff -rd lib/TAP/Formatter/Console.pm /opt/local/lib/perl5/5.10.0/TAP/Formatter/Console.pm<br> 
<font color="#ffff00">3 </font>386a387,388<br> 
<font color="#ffff00">4 </font>&gt;&nbsp;&nbsp;&nbsp;&nbsp; use Encode;<br> 
<font color="#ffff00">5 </font>&gt;&nbsp;&nbsp;&nbsp;&nbsp; @_ = map { decode_utf8($_) } @_;<br> 
<font color="#ffff00">6 </font>diff -rd lib/TAP/Parser/Iterator/Process.pm /opt/local/lib/perl5/5.10.0/TAP/Parser/Iterator/Process.pm<br> 
<font color="#ffff00">7 </font>248a249<br> 
<font color="#ffff00">8 </font>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chunk = decode_utf8($chunk) if _get_unicode();<br> 
</font>

<span class="mt-enclosure mt-enclosure-file"><a href="http://bokut.in/mt/prove_utf8.diff.txt">prove_utf8.diff.txt</a></span>

GTDをprove+YAML+GraphVizでやってみるテスト]]>
        
    </content>
</entry>

<entry>
    <title>Strawberry Perl 5.8.8.1 &amp; WxPerl</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2008/06/strawberry-perl-5881-wxperl.html" />
    <id>tag:bokut.in,2008:/mt//1.112</id>

    <published>2008-06-18T23:43:32Z</published>
    <updated>2008-10-09T11:18:34Z</updated>

    <summary>WxPerlのインストール
PerlでGUI</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    <category term="perl" label="Perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wxperl" label="WxPerl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[WindowsでPerlでGUIしよう。
インスコするたびに　--help とかやってしまうので、チラシの裏。

1. <a href="http://strawberryperl.com/">http://strawberryperl.com/</a> からインスコ。
2. Win Key+R, cpan
3. install Module::Pluggable
4. look Alien::wxWidgets
5. perl Build.PL --unicode=1 --mslu=0
6. perl Build
7. perl Build test
8. perl Build install
9. exit
10. look Wx
11. set WXDIR=C:\strawberry\cpan\build\Alien-wxWidgets-0.36-XXXXXX\wxWidgets-2.8.7
12. perl Makefile.PL
13. dmake
14. dmake test
15. dmake install
16. exit
17. exit]]>
        
    </content>
</entry>

<entry>
    <title>perl の open、&quot;in memory&quot; で</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2008/05/perl-openin-memory.html" />
    <id>tag:bokut.in,2008:/mt//1.111</id>

    <published>2008-05-12T03:00:25Z</published>
    <updated>2008-05-12T03:03:32Z</updated>

    <summary><![CDATA[ うーむ &nbsp;1 use strict; &nbsp;2 use war...]]></summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[<p>
うーむ
</p>

<font color="#804040">&nbsp;1 </font><font color="#804040"><b>use strict</b></font>;<br>
<font color="#804040">&nbsp;2 </font><font color="#804040"><b>use warnings</b></font>;<br>
<font color="#804040">&nbsp;3 </font><br>
<font color="#804040">&nbsp;4 </font><font color="#804040"><b>use </b></font>Test::More <span style="background-color: #f2f2f2"><font color="#ff00ff">tests </font></span>=&gt; <span style="background-color: #f2f2f2"><font color="#ff00ff">3</font></span>;<br>
<font color="#804040">&nbsp;5 </font><font color="#804040"><b>use </b></font>Test::Exception;<br>
<font color="#804040">&nbsp;6 </font><font color="#804040"><b>use </b></font>Data::Dumper;<br>
<font color="#804040">&nbsp;7 </font><br>
<font color="#804040">&nbsp;8 </font>lives_ok { <font color="#804040"><b>open</b></font>( <font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$fh</font>, <span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&lt;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>,&nbsp;&nbsp;&nbsp;&nbsp; \<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">ABCD</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>) <font color="#804040"><b>or</b></font>&nbsp;<font color="#804040"><b>die</b></font>&nbsp;<font color="#008080">$!</font>; } <span style="background-color: #f2f2f2"><font color="#ff00ff">'</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">test1</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">'</font></span>;<br>
<font color="#804040">&nbsp;9 </font>lives_ok { <font color="#804040"><b>open</b></font>( <font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$fh</font>, <span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&lt;:raw</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>, \<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">ABCD</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>) <font color="#804040"><b>or</b></font>&nbsp;<font color="#804040"><b>die</b></font>&nbsp;<font color="#008080">$!</font>; } <span style="background-color: #f2f2f2"><font color="#ff00ff">'</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">test2</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">'</font></span>;<br>
<font color="#804040">10 </font>lives_ok { <font color="#804040"><b>open</b></font>( <font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$fh</font>, <span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&lt;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>,&nbsp;&nbsp;&nbsp;&nbsp; \<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">ABCD</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>) <font color="#804040"><b>or</b></font>&nbsp;<font color="#804040"><b>die</b></font>&nbsp;<font color="#008080">$!</font>; <font color="#804040"><b>binmode</b></font>&nbsp;<font color="#008080">$fh</font>; } <span style="background-color: #f2f2f2"><font color="#ff00ff">'</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">test2</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">'</font></span>;<br>
<font color="#804040">11 </font><br>
<font color="#804040">12 </font>{<br>
<font color="#804040">13 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>open</b></font>( <font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$fh</font>, <span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&lt;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>, \<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">ABCD</font></span><span style="background-color: #f2f2f2"><font color="#6a5acd">\015\012</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>) <font color="#804040"><b>or</b></font>&nbsp;<font color="#804040"><b>die</b></font>&nbsp;<font color="#008080">$!</font>;<br>
<font color="#804040">14 </font>&nbsp;&nbsp;&nbsp;&nbsp;diag Dumper [PerlIO::get_layers(<font color="#008080">$fh</font>)];<br>
<font color="#804040">15 </font>&nbsp;&nbsp;&nbsp;&nbsp;diag <font color="#804040"><b>length</b></font>( <font color="#804040"><b>do</b></font>&nbsp;{ <font color="#804040"><b>local</b></font>&nbsp;<font color="#008080">$/</font>; <font color="#804040"><b>readline</b></font>&nbsp;<font color="#008080">$fh</font>; } );<br>
<font color="#804040">16 </font>}<br>
<font color="#804040">17 </font><br>
<font color="#804040">18 </font>{<br>
<font color="#804040">19 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>open</b></font>( <font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$fh</font>, <span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&lt;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>, \<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">ABCD</font></span><span style="background-color: #f2f2f2"><font color="#6a5acd">\015\012</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>) <font color="#804040"><b>or</b></font>&nbsp;<font color="#804040"><b>die</b></font>&nbsp;<font color="#008080">$!</font>;<br>
<font color="#804040">20 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>binmode</b></font>&nbsp;<font color="#008080">$fh</font>;<br>
<font color="#804040">21 </font>&nbsp;&nbsp;&nbsp;&nbsp;diag Dumper [PerlIO::get_layers(<font color="#008080">$fh</font>)];<br>
<font color="#804040">22 </font>&nbsp;&nbsp;&nbsp;&nbsp;diag <font color="#804040"><b>length</b></font>( <font color="#804040"><b>do</b></font>&nbsp;{ <font color="#804040"><b>local</b></font>&nbsp;<font color="#008080">$/</font>; <font color="#804040"><b>readline</b></font>&nbsp;<font color="#008080">$fh</font>; } );<br>
<font color="#804040">23 </font>}<br>
<font color="#804040">24 </font><br>
<font color="#804040">25 </font>{<br>
<font color="#804040">26 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>open</b></font>( <font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$fh</font>, <span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&lt;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>, \<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">ABCD</font></span><span style="background-color: #f2f2f2"><font color="#6a5acd">\015\012</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>) <font color="#804040"><b>or</b></font>&nbsp;<font color="#804040"><b>die</b></font>&nbsp;<font color="#008080">$!</font>;<br>
<font color="#804040">27 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>binmode</b></font>&nbsp;<font color="#008080">$fh</font>, <span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">:crlf</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>;<br>
<font color="#804040">28 </font>&nbsp;&nbsp;&nbsp;&nbsp;diag Dumper [PerlIO::get_layers(<font color="#008080">$fh</font>)];<br>
<font color="#804040">29 </font>&nbsp;&nbsp;&nbsp;&nbsp;diag <font color="#804040"><b>length</b></font>( <font color="#804040"><b>do</b></font>&nbsp;{ <font color="#804040"><b>local</b></font>&nbsp;<font color="#008080">$/</font>; <font color="#804040"><b>readline</b></font>&nbsp;<font color="#008080">$fh</font>; } );<br>
<font color="#804040">30 </font>}<br>
<font color="#804040">31 </font><br>
<font color="#804040">32 </font><font color="#0000ff">__END__</font><br>
<font color="#804040">33 </font><font color="#0000ff">$ prove.bat -I extlib -v b.pl</font><br>
<font color="#804040">34 </font><font color="#0000ff">b.......</font><br>
<font color="#804040">35 </font><font color="#0000ff">1..3</font><br>
<font color="#804040">36 </font><font color="#0000ff">ok 1 - test1</font><br>
<font color="#804040">37 </font><br>
<font color="#804040">38 </font><font color="#0000ff">#&nbsp;&nbsp; Failed test 'test2'</font><br>
<font color="#804040">39 </font><font color="#0000ff">#&nbsp;&nbsp; at b.pl line 9.</font><br>
<font color="#804040">40 </font><font color="#0000ff"># died: No such file or directory at b.pl line 9.</font><br>
<font color="#804040">41 </font><font color="#0000ff"># $VAR1 = [</font><br>
<font color="#804040">42 </font><font color="#0000ff">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'scalar'</font><br>
<font color="#804040">43 </font><font color="#0000ff">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ];</font><br>
<font color="#804040">44 </font><font color="#0000ff"># 6</font><br>
<font color="#804040">45 </font><font color="#0000ff"># $VAR1 = [</font><br>
<font color="#804040">46 </font><font color="#0000ff">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'scalar'</font><br>
<font color="#804040">47 </font><font color="#0000ff">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ];</font><br>
<font color="#804040">48 </font><font color="#0000ff"># 6</font><br>
<font color="#804040">49 </font><font color="#0000ff"># $VAR1 = [</font><br>
<font color="#804040">50 </font><font color="#0000ff">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'scalar',</font><br>
<font color="#804040">51 </font><font color="#0000ff">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'crlf'</font><br>
<font color="#804040">52 </font><font color="#0000ff">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ];</font><br>
<font color="#804040">53 </font><font color="#0000ff"># 5</font><br>
<font color="#804040">54 </font><font color="#0000ff"># Looks like you failed 1 test of 3.</font><br>
<font color="#804040">55 </font><font color="#0000ff">not ok 2 - test2</font><br>
<font color="#804040">56 </font><font color="#0000ff">ok 3 - test2</font><br>
<font color="#804040">57 </font><font color="#0000ff">&nbsp;Dubious, test returned 1 (wstat 256, 0x100)</font><br>
<font color="#804040">58 </font><font color="#0000ff">&nbsp;Failed 1/3 subtests </font><br>
<font color="#804040">59 </font><br>
<font color="#804040">60 </font><font color="#0000ff">Test Summary Report</font><br>
<font color="#804040">61 </font><font color="#0000ff">-------------------</font><br>
<font color="#804040">62 </font><font color="#0000ff">b.pl (Wstat: 256 Tests: 3 Failed: 1)</font><br>
<font color="#804040">63 </font><font color="#0000ff">&nbsp;&nbsp;Failed test number(s):&nbsp;&nbsp;2</font><br>
<font color="#804040">64 </font><font color="#0000ff">&nbsp;&nbsp;Non-zero exit status: 1</font><br>
<font color="#804040">65 </font><font color="#0000ff">Files=1, Tests=3,&nbsp;&nbsp;0 wallclock secs ( 0.01 usr +&nbsp;&nbsp;0.02 sys =&nbsp;&nbsp;0.03 CPU)</font><br>
<font color="#804040">66 </font><font color="#0000ff">Result: FAIL</font><br>
</font>]]>
        
    </content>
</entry>

<entry>
    <title>「Perl, Python, Ruby の比較」の</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2008/05/perl-python-ruby.html" />
    <id>tag:bokut.in,2008:/mt//1.110</id>

    <published>2008-05-10T19:08:49Z</published>
    <updated>2008-05-10T20:11:07Z</updated>

    <summary> Perl, Python, Ruby の比較にあるPerlのバージョンのを 弄...</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[<p>
<a href="http://www.shido.info/py/python1.html">Perl, Python, Ruby の比較</a>にあるPerlのバージョンのを
弄ってみたよ。みかけてついいぢってしまった。あんまテストしてねい。
</p>
    <font face="monospace">
<font color="#804040">&nbsp;1 </font><font color="#a020f0">#!/usr/bin/env perl</font><br>
<font color="#804040">&nbsp;2 </font><br>
<font color="#804040">&nbsp;3 </font><font color="#804040"><b>use strict</b></font>;<br>
<font color="#804040">&nbsp;4 </font><font color="#804040"><b>use warnings</b></font>;<br>
<font color="#804040">&nbsp;5 </font><font color="#804040"><b>use </b></font>File::Compare;<br>
<font color="#804040">&nbsp;6 </font><font color="#804040"><b>use </b></font>File::Copy;<br>
<font color="#804040">&nbsp;7 </font><font color="#804040"><b>use </b></font>IO::All;<br>
<font color="#804040">&nbsp;8 </font><font color="#804040"><b>use </b></font>List::Util <span style="background-color: #f2f2f2"><font color="#ff00ff">qw(</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">max</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">)</font></span>;<br>
<font color="#804040">&nbsp;9 </font><font color="#804040"><b>use </b></font>POSIX <span style="background-color: #f2f2f2"><font color="#ff00ff">qw(</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">strftime</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">)</font></span>;<br>
<font color="#804040">10 </font><br>
<font color="#804040">11 </font><font color="#0000ff"># Pythonのに無いため</font><br>
<font color="#804040">12 </font><font color="#0000ff">#&nbsp;&nbsp; カレントディレクトリの操作</font><br>
<font color="#804040">13 </font><font color="#0000ff">#&nbsp;&nbsp; 例外処理の一部</font><br>
<font color="#804040">14 </font><font color="#0000ff">#&nbsp;&nbsp; linarの起動</font><br>
<font color="#804040">15 </font><font color="#0000ff"># は省きました。</font><br>
<font color="#804040">16 </font><font color="#0000ff">#</font><br>
<font color="#804040">17 </font><font color="#0000ff"># ハッシュは作っていません。</font><br>
<font color="#804040">18 </font><br>
<font color="#804040">19 </font><font color="#804040"><b>sub</b></font><font color="#008080">&nbsp;</font><font color="#008080">next_photo_dir</font><font color="#008080">&nbsp;</font>{<br>
<font color="#804040">20 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$path</font>&nbsp;= <font color="#804040"><b>shift</b></font>;<br>
<font color="#804040">21 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$max</font>&nbsp;= max ( <font color="#804040"><b>map</b></font>&nbsp;{ <font color="#804040"><b>m/</b></font><span style="background-color: #f2f2f2"><font color="#6a5acd">(</font></span><span style="background-color: #f2f2f2"><font color="#6a5acd">\d</font></span><span style="background-color: #f2f2f2"><font color="#6a5acd">+)</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">$</font></span><font color="#804040"><b>/</b></font>&nbsp;} (<font color="#804040"><b>glob</b></font>(<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><font color="#008080">$path</font><span style="background-color: #f2f2f2"><font color="#ff00ff">/photo[0-9][0-9]</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>), <span style="background-color: #f2f2f2"><font color="#ff00ff">0</font></span>) );<br>
<font color="#804040">22 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>sprintf</b></font>(<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">photo%02d</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>, ++<font color="#008080">$max</font>);<br>
<font color="#804040">23 </font>}<br>
<font color="#804040">24 </font><br>
<font color="#804040">25 </font><font color="#804040"><b>sub</b></font><font color="#008080">&nbsp;</font><font color="#008080">move_photos</font><font color="#008080">&nbsp;</font>{<br>
<font color="#804040">26 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>my</b></font>&nbsp;(<font color="#008080">$media</font>, <font color="#008080">$disk</font>) = <font color="#804040"><b>map</b></font>&nbsp;{ io-&gt;dir(<font color="#008080">$_</font>) } <font color="#008080">@_</font>;<br>
<font color="#804040">27 </font><br>
<font color="#804040">28 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$ym</font>&nbsp;= strftime(<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">%y-%m</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>, <font color="#804040"><b>localtime</b></font>);<br>
<font color="#804040">29 </font><br>
<font color="#804040">30 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>for</b></font>&nbsp;<font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$from_dir</font>&nbsp;(<font color="#008080">$media</font>, <font color="#008080">$media</font>-&gt;All_Dirs) {<br>
<font color="#804040">31 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">@files</font>&nbsp;= <font color="#008080">$from_dir</font>-&gt;all_files;<br>
<font color="#804040">32 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>next</b></font>&nbsp;<font color="#804040"><b>unless</b></font>&nbsp;<font color="#008080">@files</font>;<br>
<font color="#804040">33 </font><br>
<font color="#804040">34 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$to_dir</font>&nbsp;= io-&gt;catdir(<font color="#008080">$disk</font>, <font color="#008080">$ym</font>, next_photo_dir(<font color="#008080">$disk</font>));<br>
<font color="#804040">35 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">$to_dir</font>-&gt;mkpath;<br>
<font color="#804040">36 </font><br>
<font color="#804040">37 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>print</b></font>&nbsp;<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><font color="#008080">$from_dir</font><span style="background-color: #f2f2f2"><font color="#ff00ff">&nbsp;==&gt; </font></span><font color="#008080">$to_dir</font><span style="background-color: #f2f2f2"><font color="#6a5acd">\n</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>;<br>
<font color="#804040">38 </font><br>
<font color="#804040">39 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$file_num</font>&nbsp;= <span style="background-color: #f2f2f2"><font color="#ff00ff">0</font></span>;<br>
<font color="#804040">40 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>for</b></font>&nbsp;<font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$from</font>&nbsp;(<font color="#008080">@files</font>) {<br>
<font color="#804040">41 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$to</font>&nbsp;= io-&gt;catfile(<font color="#008080">$to_dir</font>, <font color="#008080">$from</font>-&gt;filename);<br>
<font color="#804040">42 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;copy(<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><font color="#008080">$from</font><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>, <span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><font color="#008080">$to</font><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>) <font color="#804040"><b>or</b></font>&nbsp;<font color="#804040"><b>die</b></font>&nbsp;<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">cannot make a copy for $from: </font></span><font color="#008080">$!</font><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>;<br>
<font color="#804040">43 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>if</b></font>&nbsp;(<span style="background-color: #f2f2f2"><font color="#ff00ff">0</font></span>&nbsp;== compare(<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><font color="#008080">$from</font><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>, <span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><font color="#008080">$to</font><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>)) {<br>
<font color="#804040">44 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">$from</font>-&gt;<font color="#804040"><b>unlink</b></font>;<br>
<font color="#804040">45 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>printf</b></font>(<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#6a5acd">\t</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">%s/%s</font></span><span style="background-color: #f2f2f2"><font color="#6a5acd">\n</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>, ++<font color="#008080">$file_num</font>, <span style="background-color: #f2f2f2"><font color="#ff00ff">0</font></span>+<font color="#008080">@files</font>);<br>
<font color="#804040">46 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
<font color="#804040">47 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>else</b></font>&nbsp;{<br>
<font color="#804040">48 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#804040"><b>die</b></font>&nbsp;<span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">an error occurs during coping </font></span><font color="#008080">$from</font><span style="background-color: #f2f2f2"><font color="#ff00ff">&quot;</font></span>;<br>
<font color="#804040">49 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
<font color="#804040">50 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
<font color="#804040">51 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br>
<font color="#804040">52 </font>}<br>
<font color="#804040">53 </font><br>
<font color="#804040">54 </font><font color="#0000ff">#main</font><br>
<font color="#804040">55 </font><font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$media</font>&nbsp;= <span style="background-color: #f2f2f2"><font color="#ff00ff">'</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">c:/_/media</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">'</font></span>;<br>
<font color="#804040">56 </font><font color="#804040"><b>my</b></font>&nbsp;<font color="#008080">$disk</font>&nbsp;&nbsp;= <span style="background-color: #f2f2f2"><font color="#ff00ff">'</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">c:/_/disk</font></span><span style="background-color: #f2f2f2"><font color="#ff00ff">'</font></span>;<br>
<font color="#804040">57 </font>move_photos(<font color="#008080">$media</font>, <font color="#008080">$disk</font>);<br>
</font>

]]>
        
    </content>
</entry>

<entry>
    <title>Perl, デコードされた文字列の文字幅の取得</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2008/04/visual-width.html" />
    <id>tag:bokut.in,2008:/mt//1.109</id>

    <published>2008-04-09T18:47:36Z</published>
    <updated>2008-04-09T20:04:19Z</updated>

    <summary> Text::CharWidthはStrawberryPerlではmakeが通ら...</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[<p>
Text::CharWidthはStrawberryPerlではmakeが通らなかった。
</p>

<pre>
$ perl benchmark/visual_width.pl
                     Rate unicode_japanese encode_cp932 east_asian_width visual_width
unicode_japanese   9246/s               --         -63%             -75%         -92%
encode_cp932      24900/s             169%           --             -34%         -78%
east_asian_width  37693/s             308%          51%               --         -66%
visual_width     112233/s            1114%         351%             198%           --
</pre>

<p>
ソース <a href="http://d.hatena.ne.jp/tokuhirom/20070514/1179108961">参考にさせていただきました</a>
</p>

<pre><span class="synStatement">use strict</span>;
<span class="synStatement">use warnings</span>;
<span class="synStatement">use utf8</span>;

<span class="synStatement">use </span>Benchmark <span class="synConstant">qw(:all)</span>;
<span class="synStatement">use </span>Encode;
<span class="synStatement">use </span>Unicode::EastAsianWidth;
<span class="synStatement">use </span>Text::VisualWidth::UTF8;
<span class="synStatement">use </span>Unicode::Japanese <span class="synConstant">qw(unijp)</span>;

<span class="synStatement">sub</span><span class="synIdentifier"> east_asian_width </span>{
    <span class="synStatement">local</span> <span class="synIdentifier">$_</span> = <span class="synStatement">shift</span>;
    <span class="synStatement">my</span> <span class="synIdentifier">$ret</span> = <span class="synConstant">0</span>;
    <span class="synStatement">while</span> (<span class="synStatement">/</span><span class="synSpecial">(?:(\p</span><span class="synConstant">{InFullwidth}</span><span class="synSpecial">+)</span><span class="synConstant">|</span><span class="synSpecial">(\p</span><span class="synConstant">{InHalfwidth}</span><span class="synSpecial">+))</span><span class="synStatement">/go</span>) { <span class="synIdentifier">$ret</span> += (<span class="synIdentifier">$1</span> ? <span class="synStatement">length</span>(<span class="synIdentifier">$1</span>)*<span class="synConstant">2</span> : <span class="synStatement">length</span>(<span class="synIdentifier">$2</span>)) }
    <span class="synIdentifier">$ret</span>;
}

<span class="synStatement">sub</span><span class="synIdentifier"> visual_width </span>{
    <span class="synStatement">local</span> <span class="synIdentifier">$_</span> = <span class="synStatement">shift</span>;
    Text::VisualWidth::UTF8::width(<span class="synIdentifier">$_</span>);
}

<span class="synStatement">sub</span><span class="synIdentifier"> unicode_japanese </span>{
    <span class="synStatement">local</span> <span class="synIdentifier">$_</span> = <span class="synStatement">shift</span>;
    unijp(<span class="synIdentifier">$_</span>)-&gt;strlen;
}

<span class="synStatement">sub</span><span class="synIdentifier"> encode_cp932 </span>{
    <span class="synStatement">local</span> <span class="synIdentifier">$_</span> = <span class="synStatement">shift</span>;
    <span class="synStatement">length</span>(encode(<span class="synConstant">&quot;cp932&quot;</span>, <span class="synIdentifier">$_</span>));
}

<span class="synStatement">my</span> <span class="synIdentifier">@words</span> = (
    [<span class="synConstant">&quot;hogehoge&quot;</span>   , <span class="synConstant">8</span>]  , 
    [<span class="synConstant">&quot;あいうえ&quot;</span>   , <span class="synConstant">8</span>]  , 
    [<span class="synConstant">&quot;あ1い2うえ&quot;</span> , <span class="synConstant">10</span>] , 
    [<span class="synConstant">&quot;0&quot;</span>          , <span class="synConstant">1</span>]  , 
);

<span class="synStatement">my</span> <span class="synIdentifier">$count</span> = <span class="synConstant">100000</span>;
cmpthese(<span class="synIdentifier">$count</span>, {
    <span class="synConstant">'east_asian_width'</span> =&gt;<span class="synIdentifier"> </span><span class="synStatement">sub</span><span class="synIdentifier"> </span>{ <span class="synStatement">map</span> { east_asian_width(<span class="synIdentifier">$_</span>-&gt;[<span class="synConstant">0</span>]) } <span class="synIdentifier">@words</span> },
    <span class="synConstant">'visual_width'</span>     =&gt;<span class="synIdentifier"> </span><span class="synStatement">sub</span><span class="synIdentifier"> </span>{ <span class="synStatement">map</span> { visual_width(<span class="synIdentifier">$_</span>-&gt;[<span class="synConstant">0</span>])     } <span class="synIdentifier">@words</span> },
    <span class="synConstant">'unicode_japanese'</span> =&gt;<span class="synIdentifier"> </span><span class="synStatement">sub</span><span class="synIdentifier"> </span>{ <span class="synStatement">map</span> { unicode_japanese(<span class="synIdentifier">$_</span>-&gt;[<span class="synConstant">0</span>]) } <span class="synIdentifier">@words</span> },
    <span class="synConstant">'encode_cp932'</span>     =&gt;<span class="synIdentifier"> </span><span class="synStatement">sub</span><span class="synIdentifier"> </span>{ <span class="synStatement">map</span> { encode_cp932(<span class="synIdentifier">$_</span>-&gt;[<span class="synConstant">0</span>])     } <span class="synIdentifier">@words</span> },
});

<span class="synComment">#my @filters = qw/east_asian_width visual_width unicode_japanese encode_cp932/;</span>
<span class="synComment">#</span>
<span class="synComment">#use Test::More;</span>
<span class="synComment">#plan tests =&gt; @words*@filters;</span>
<span class="synComment">#</span>
<span class="synComment">#for my $filter (@filters) {</span>
<span class="synComment">#    for my $test (@words) {</span>
<span class="synComment">#        my $string = $test-&gt;[0];</span>
<span class="synComment">#        my $length = $test-&gt;[1];</span>
<span class="synComment">#        no strict 'refs';</span>
<span class="synComment">#        is( *{$filter}-&gt;($string), $length, &quot;$filter&quot; );</span>
<span class="synComment">#    }</span>
<span class="synComment">#}</span>

</pre>]]>
        
    </content>
</entry>

<entry>
    <title>VIM. カーソル下のキーワードでAck</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2008/04/vim-ack.html" />
    <id>tag:bokut.in,2008:/mt//1.108</id>

    <published>2008-04-06T01:45:41Z</published>
    <updated>2008-04-06T01:54:23Z</updated>

    <summary>ectagsやtaglist.vimを使っててもPerlbuzzのAckが手放せ...</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    <category term="vim" label="vim" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        <![CDATA[<a href="http://ctags.sourceforge.net/">ectags</a>や<a href="http://www.vim.org/scripts/script.php?script_id=273">taglist.vim</a>を使ってても<a href="http://perlbuzz.com/">Perlbuzz</a>の<a href="http://search.cpan.org/~petdance/ack-1.80/">Ack</a>が手放せないわけですが。

vimで*みたいに<a href="http://blog.ant0ine.com/2007/03/ack_and_vim_integration.html">Ack.vimで</a>きたらと。

<pre class="code"><span class="str">&quot; カーソル下のワードで、新しいウィンドウでAck
map &lt;C-W&gt;a :let a=expand(&quot;</span>&lt;cword&gt;<span class="str">&quot;)&lt;CR&gt;:tabnew&lt;CR&gt;:Ack &lt;C-R&gt;=expand(a)&lt;CR&gt; lib&lt;CR&gt;
map &lt;C-W&gt;A :let a=expand(&quot;</span>&lt;cword&gt;<span class="str">&quot;)&lt;CR&gt;:tabnew&lt;CR&gt;:Ack &lt;C-R&gt;=expand(a)&lt;CR&gt; ./</span></pre>]]>
        
    </content>
</entry>

<entry>
    <title>Mac LeopardでJPEGをロスレス回転</title>
    <link rel="alternate" type="text/html" href="http://bokut.in/mt/2008/04/mac-leopard-jpeg-lossless-rotate.html" />
    <id>tag:bokut.in,2008:/mt//1.107</id>

    <published>2008-04-02T05:49:14Z</published>
    <updated>2008-04-02T05:51:13Z</updated>

    <summary>このフリーソフトで出来た。 Phoenix Slides http://blyt...</summary>
    <author>
        <name>ぼくちん</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://bokut.in/mt/">
        このフリーソフトで出来た。

Phoenix Slides
http://blyt.net/phxslides/

        
    </content>
</entry>

</feed>
