<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>熱烈modperl!!!!!</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/" />
    <link rel="self" type="application/atom+xml" href="http://modperlis.bounceme.net/atom.xml" />
    <id>tag:modperlis.bounceme.net,2008-03-01://1</id>
    <updated>2009-03-07T09:57:51Z</updated>
    <subtitle>世間のperlへの認識をくつがえして、perlが優れていることを実証したい!!!!!</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.1</generator>

<entry>
    <title>MovableType4.1＆MySQLで、文字コードをlatin1からUTF-8に変更したい</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2009/03/movabletype41mysqllatin1utf8.html" />
    <id>tag:modperlis.bounceme.net,2009://1.112</id>

    <published>2009-03-07T09:27:47Z</published>
    <updated>2009-03-07T09:57:51Z</updated>

    <summary>よーは、適当にインストールしてしまった、MT＆MySQLだったので、 latin...</summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="mysql" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="other" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="movabletype" label="MovableType" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://modperlis.bounceme.net/">
        <![CDATA[<p>よーは、適当にインストールしてしまった、MT＆MySQLだったので、</p>
<p>latin1のままだったのですが、他のアプリから、デフォルトUTF-8で</p>
<p>接続したかったため、変更しましたよーってこと</p>
<p>まずは、MySQLの状態確認</p>
<p>&nbsp;</p><pre># mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.51a-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql&gt; STATUS;
--------------
mysql  Ver 14.12 Distrib 5.0.51a, for redhat-linux-gnu (i686) using  EditLine wrapper

Connection id:          1
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.0.51a-log Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            /tmp/mysql.sock
Uptime:                 4 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 12  Flush tables: 1  Open tables: 6  Queries per second avg: 1.000
--------------
</pre>
<p>&nbsp;</p>
<p>latin1のことを確認したら、バックアップを取りましょー</p>
<p>&nbsp;</p><pre># mysqldump -uroot -p modperl --default-character-set=latin1 &gt; modperl.latin1.db
</pre>
<p>&nbsp;</p>
<p>んで、もってUTF-8にテーブルを変える</p>
<p>&nbsp;</p><pre># sed -s 's/DEFAULT CHARSET=latin1/DEFAULT CHARSET=utf8/' modperl.latin1.db &gt; modperl.utf8.db
</pre>
<p>&nbsp;</p>
<p>んで、入れる</p>
<p>&nbsp;</p><pre>mysql -uroot -p modperl &lt; modperl.utf8.db
</pre>
<p>&nbsp;</p>
<p>んで、MySQLのmy.cnfに以下を追加してrestart</p>
<p>&nbsp;</p><pre>/etc/my.cnf
 [client]
 default-character-set = utf8
 [mysqld]
 default-character-set = utf8
 [mysql]
 default-character-set = utf8
</pre>
<p>&nbsp;</p>
<p>ほいで、状態を確認する</p>
<p>&nbsp;</p><pre># mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.51a-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql&gt; STATUS;
--------------
mysql  Ver 14.12 Distrib 5.0.51a, for redhat-linux-gnu (i686) using  EditLine wrapper

Connection id:          2
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.0.51a-log Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /tmp/mysql.sock
Uptime:                 25 sec

Threads: 1  Questions: 91  Slow queries: 0  Opens: 24  Flush tables: 1  Open tables: 18  Queries per second avg: 3.640
--------------
</pre>
<p>&nbsp;</p>
<p>パチパチ、めでたしめでたしって、思って</p>
<p>MTの管理画面をリロードしたら、文字化けしやがってる！！</p>
<p>&nbsp;</p>
<p>なんで？？</p>
<p>&nbsp;</p>]]>
        <![CDATA[<p>色々調べてみると・・・</p>
<p>&nbsp;</p><pre>skip-character-set-client-handshake
</pre>
<p>&nbsp;</p>
<p>をMySQLに設定するとかっていうのがあった</p>
<p>けど、これはまずいでしょ？？！！ってことでOUT</p>
<p>&nbsp;</p>
<p>さらに調べると、MTのmt-config.cgiに</p>
<p>&nbsp;</p><pre>PublishCharset UTF-8
</pre>
<p>&nbsp;</p>
<p>を追加するんだよ、みたいなとこがたくさん出てくる</p>
<p>&nbsp;</p>
<p>しかーーーーし、設定しても動かず・・・</p>
<p>&nbsp;</p>
<p>もーいーやってことで、MTの mt/lib/MT/ObjectDriver/Driver/DBD/mysql.pm をいぢる</p>
<p>&nbsp;</p><pre>sub _set_names {
    my $dbd = shift;
    my ($driver) = @_;
    my $dbh = $driver-&gt;rw_handle;

    my $cfg = MT-&gt;config;
    my $set_names = $cfg-&gt;SQLSetNames;
    return 1 if (defined $set_names) &amp;&amp; !$set_names;
</pre>
<p>&nbsp;</p>
<p>$cfg-&gt;SQLSetNames？？ってなんだ？</p>
<p>って、思って再度調べる</p>
<p>&nbsp;</p>
<p>マニュアルでは、PulishCharsetを有効にするには、SQLSetNamesも書かなきゃいかんと</p>
<p>えええーーまぢっすか？？！！</p>
<p>なので、mt-config.cgiに追加して、</p>
<p>&nbsp;</p><pre>PublishCharset UTF-8
SQLSetNames 1
</pre>
<p>&nbsp;</p>
<p>MT管理をリロードしたら、無事文字化けが直りましたとさｗｗ</p>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>MooseをCPANでインストールしようとしたら、エラーが出た</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2009/03/moosecpan.html" />
    <id>tag:modperlis.bounceme.net,2009://1.111</id>

    <published>2009-03-06T16:16:41Z</published>
    <updated>2009-03-06T16:35:38Z</updated>

    <summary>マシンは、CentOS release 5.2 (Final)　で、標準でインス...</summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="perl" 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://modperlis.bounceme.net/">
        <![CDATA[<p>マシンは、CentOS release 5.2 (Final)　で、標準でインストールされていたPerl</p>
<p>&nbsp;</p><pre># rpm -qa | grep -i perl
perl-IO-Zlib-1.04-4.2.1
perl-DBI-1.52-1.fc6
perl-HTML-Parser-3.55-1.fc6
perl-NKF-2.07-1.1.fc6
mod_perl-2.0.2-6.3.el5
ImageMagick-perl-6.2.8.0-4.el5_1.1
perl-Compress-Zlib-1.42-1.fc6
perl-Digest-SHA1-2.11-1.2.1
perl-Digest-HMAC-1.01-15
perl-Archive-Tar-1.30-1.fc6
perl-BSD-Resource-1.28-1.fc6.1
perl-Net-IP-1.25-2.fc6
perl-HTML-Tagset-3.10-2.1.1
perl-libwww-perl-5.805-1.1.1
perl-IO-Socket-INET6-2.51-2.fc6
perl-IO-Socket-SSL-1.01-1.fc6
perl-URI-1.35-3
perl-String-CRC32-1.4-2.fc6
perl-Net-DNS-0.59-3.el5
perl-Socket6-0.19-3.fc6
newt-perl-1.08-9.2.2
perl-Net-SSLeay-1.30-4.fc6
perl-5.8.8-15.el5_2.1
</pre>
<p>&nbsp;</p>
<p>こんな感じ</p>
<p>&nbsp;</p>
<p>で、Mooseをインストールしたくて、</p>
<p>&nbsp;</p><pre># perl -MCPAN -e shell

cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support enabled

cpan&gt; install Moose
</pre>
<p>&nbsp;</p>
<p>したら</p>
<p>&nbsp;</p><pre>    ERROR:

    A CPAN module critically requires a function
    (Scalar::Util::weaken) that should exist in your
    Scalar::Util module but doesn't.

    This probably happened because you are using a Perl
    provided by a binary package from a vendor, and this
    vendor has packaged Perl incorrectly.

    I have checked for a couple of potential workarounds
    but none of them appear to be usable in your
    situation.

    I will try a last-ditch option anyway, but the most
    likely result is a number of noisily failing tests

    If this happens, you will need to contact technical
    support for your vendor and report the broken Perl,
    so that they can repair it.

    Please refer them to the documentation for the
    'Task::Weaken' CPAN module, which explains the problem
    and how they can fix it.

    I'm going to wait for about a minute now so you have time
    to read this message
</pre>
<p>&nbsp;</p>
<p>が、出てきた</p>
<p>&nbsp;</p>]]>
        <![CDATA[<p>よーは、yumとかで入れたPerlのパッケージがおかしいよって言ってるみたい</p>
<p>Scalar::Utilというので、エラーになってるので、</p>
<p>これをCPANで入れるのか？</p>
<p>と、思って、CPAN install したら、同じエラー</p>
<p>&nbsp;</p>
<p>ちらっとググると、外人さんが、Scalar::Util はソースから入れるといい
<p>というのがあったので、さっそくやってみた
<p>&nbsp;</p><pre># wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/Scalar-List-Utils-1.19.tar.gz
--01:10:16--  http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/Scalar-List-Utils-1.19.tar.gz
search.cpan.org をDNSに問いあわせています... 207.115.101.144, 84.45.68.23
search.cpan.org|207.115.101.144|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://ftp.nara.wide.ad.jp/pub/CPAN/authors/id/G/GB/GBARR/Scalar-List-Utils-1.19.tar.gz [続く]
--01:10:17--  http://ftp.nara.wide.ad.jp/pub/CPAN/authors/id/G/GB/GBARR/Scalar-List-Utils-1.19.tar.gz
ftp.nara.wide.ad.jp をDNSに問いあわせています... 203.178.137.175, 2001:200:0:1::800:21
ftp.nara.wide.ad.jp|203.178.137.175|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 43620 (43K) [application/x-gzip]
Saving to: `Scalar-List-Utils-1.19.tar.gz'

100%[===============================================================================&gt;] 43,620      --.-K/s   in 0.1s

01:10:18 (348 KB/s) - `Scalar-List-Utils-1.19.tar.gz' を保存しました [43620/43620]
</pre>
<p>&nbsp;</p>
<p>で、インストール</p>
<p>&nbsp;</p><pre># tar zxvf Scalar-List-Utils-1.19.tar.gz
Scalar-List-Utils-1.19/
Scalar-List-Utils-1.19/t/
Scalar-List-Utils-1.19/t/refaddr.t
Scalar-List-Utils-1.19/t/p_tainted.t
Scalar-List-Utils-1.19/t/p_maxstr.t
Scalar-List-Utils-1.19/t/p_blessed.t
Scalar-List-Utils-1.19/t/tainted.t
Scalar-List-Utils-1.19/t/maxstr.t
Scalar-List-Utils-1.19/t/p_minstr.t
Scalar-List-Utils-1.19/t/p_readonly.t
Scalar-List-Utils-1.19/t/p_min.t
Scalar-List-Utils-1.19/t/p_refaddr.t
Scalar-List-Utils-1.19/t/reftype.t
Scalar-List-Utils-1.19/t/blessed.t
Scalar-List-Utils-1.19/t/lln.t
Scalar-List-Utils-1.19/t/proto.t
Scalar-List-Utils-1.19/t/p_first.t
Scalar-List-Utils-1.19/t/minstr.t
Scalar-List-Utils-1.19/t/first.t
Scalar-List-Utils-1.19/t/p_shuffle.t
Scalar-List-Utils-1.19/t/min.t
Scalar-List-Utils-1.19/t/reduce.t
Scalar-List-Utils-1.19/t/p_lln.t
Scalar-List-Utils-1.19/t/max.t
Scalar-List-Utils-1.19/t/p_openhan.t
Scalar-List-Utils-1.19/t/p_max.t
Scalar-List-Utils-1.19/t/openhan.t
Scalar-List-Utils-1.19/t/readonly.t
Scalar-List-Utils-1.19/t/isvstring.t
Scalar-List-Utils-1.19/t/p_sum.t
Scalar-List-Utils-1.19/t/p_reduce.t
Scalar-List-Utils-1.19/t/sum.t
Scalar-List-Utils-1.19/t/shuffle.t
Scalar-List-Utils-1.19/t/dualvar.t
Scalar-List-Utils-1.19/t/00version.t
Scalar-List-Utils-1.19/t/weak.t
Scalar-List-Utils-1.19/t/p_reftype.t
Scalar-List-Utils-1.19/inc/
Scalar-List-Utils-1.19/inc/Test/
Scalar-List-Utils-1.19/inc/Test/Builder.pm
Scalar-List-Utils-1.19/inc/Test/Builder/
Scalar-List-Utils-1.19/inc/Test/Builder/Module.pm
Scalar-List-Utils-1.19/inc/Test/More.pm
Scalar-List-Utils-1.19/inc/Module/
Scalar-List-Utils-1.19/inc/Module/Install.pm
Scalar-List-Utils-1.19/inc/Module/Install/
Scalar-List-Utils-1.19/inc/Module/Install/InstallDirs.pm
Scalar-List-Utils-1.19/inc/Module/Install/Include.pm
Scalar-List-Utils-1.19/inc/Module/Install/Makefile.pm
Scalar-List-Utils-1.19/inc/Module/Install/Metadata.pm
Scalar-List-Utils-1.19/inc/Module/Install/Win32.pm
Scalar-List-Utils-1.19/inc/Module/Install/Fetch.pm
Scalar-List-Utils-1.19/inc/Module/Install/Base.pm
Scalar-List-Utils-1.19/inc/Module/Install/Can.pm
Scalar-List-Utils-1.19/Changes
Scalar-List-Utils-1.19/lib/
Scalar-List-Utils-1.19/lib/List/
Scalar-List-Utils-1.19/lib/List/Util.pm
Scalar-List-Utils-1.19/lib/Scalar/
Scalar-List-Utils-1.19/lib/Scalar/Util.pm
Scalar-List-Utils-1.19/MANIFEST
Scalar-List-Utils-1.19/META.yml
Scalar-List-Utils-1.19/Util.xs
Scalar-List-Utils-1.19/mytypemap
Scalar-List-Utils-1.19/multicall.h
Scalar-List-Utils-1.19/Makefile.PL
Scalar-List-Utils-1.19/README
Scalar-List-Utils-1.19/SIGNATURE
# cd Scalar-List-Utils-1.19
# perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for List::Util
[root@localhost Scalar-List-Utils-1.19]# make
cp lib/List/Util.pm blib/lib/List/Util.pm
cp lib/Scalar/Util.pm blib/lib/Scalar/Util.pm
/usr/bin/perl "-Iinc" /usr/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap  Util.xs &gt; Util.xsc &amp;&amp; mv Util.xsc Util.c
gcc -c   -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables   -DVERSION=\"1.19\" -DXS_VERSION=\"1.19\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE"  -DPERL_EXT Util.c
Running Mkbootstrap for List::Util ()
chmod 644 Util.bs
rm -f blib/arch/auto/List/Util/Util.so
gcc  -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -L/usr/local/lib Util.o  -o blib/arch/auto/List/Util/Util.so      \
                \

chmod 755 blib/arch/auto/List/Util/Util.so
cp Util.bs blib/arch/auto/List/Util/Util.bs
chmod 644 blib/arch/auto/List/Util/Util.bs
Manifying blib/man3/List::Util.3pm
Manifying blib/man3/Scalar::Util.3pm
# make install
Installing /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/Util.so
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Writing /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/.packlist
Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
</pre>
<p>&nbsp;</p>
<p>普通に入る</p>
<p>&nbsp;</p>
<p>んで、肝心のMooseをCPAN経由で入れてみると・・・・</p>
<p>&nbsp;</p>
<p>入ったーーーーーーー</p>
<p>&nbsp;</p><pre>Installing /usr/share/man/man3/Moose::Cookbook::Extending::Recipe3.3pm
Writing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Moose/.packlist
Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
  /usr/bin/make install  -- OK
</pre>
<p>&nbsp;</p>
<p>一安心ですなｗ</p>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>UTF8以外の文字コードを使ったコンテンツで、IEからJSONPするときは文字コードに気をつけろ！！</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2009/02/ieutf8jsonp.html" />
    <id>tag:modperlis.bounceme.net,2009://1.110</id>

    <published>2009-02-09T14:03:23Z</published>
    <updated>2009-02-21T03:15:23Z</updated>

    <summary>ということで、IE7でしか確認してないんですけど・・・www Shift_JIS...</summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="other" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="json" label="JSON" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://modperlis.bounceme.net/">
        <![CDATA[<p>ということで、IE7でしか確認してないんですけど・・・www</p>
<p>Shift_JIS、EUC-JPなどでのページでは、Perlで言うと・・・</p>
<p>&nbsp;</p> 
<pre>print
    $q-&gt;header(-type =&gt; 'application/x-javascript; charset=UTF-8'),
    $q-&gt;param('callback'), '(', JSON::Syck::Dump($data), ');', "\n";
exit;
</pre>
<p>&nbsp;</p> 
<p>は、完全OUTです！！</p>
<p>さらに文字によっては、}がありません</p>
<p>とか寝ぼけたこといい出します</p>
<p>※JSONデータにマルチバイトがないっていう状態では、もちろん起こりませんけどｗ <br /></p><p><br /></p> 
<p>解決方法は・・・って、別にたいしたことじゃないけど</p>
<p>Shift_JISは、ヘッダをShift_JISへ、且つJSONデータもShift_JISへ変換</p>
<p>EUC-JPは、って言ってもShift_JISと同じで、文字コードを合わせるだけですw</p>
<p>&nbsp;</p> 
<p>ちなみに、このヘッダの文字コード変えるとかは、IE以外？は通用しないので</p>
<p>IEを判別する（UA？）とかで分岐してくださいね</p>
<p>&nbsp;</p> 
]]>
        
    </content>
</entry>

<entry>
    <title>MyBenchを使って、MySQLのベンチマークをとって、【ちゃんと】理解しましょー</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2009/02/mybench.html" />
    <id>tag:modperlis.bounceme.net,2009://1.108</id>

    <published>2009-02-04T15:53:38Z</published>
    <updated>2009-03-06T16:15:08Z</updated>

    <summary>MyBenchっていーのは、MySQLのベンチマークをとるものです サイトは、こ...</summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="mysql" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://modperlis.bounceme.net/">
        <![CDATA[<p>MyBenchっていーのは、MySQLのベンチマークをとるものです</p>
<p>サイトは、こちら</p>
<p><a href="http://jeremy.zawodny.com/mysql/mybench/">http://jeremy.zawodny.com/mysql/mybench/</a></p>
<p>&nbsp;</p>
<p>作者は、下↓の著者でもありますね</p>
<p>&nbsp;</p><iframe style="WIDTH: 120px; HEIGHT: 240px" marginwidth="0" marginheight="0" src="http://rcm-jp.amazon.co.jp/e/cm?t=tanuredirectm-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=4873112095&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr&amp;npa=1" frameborder="0" scrolling="no"></iframe>
<p>&nbsp;</p>
<p>ともかく、実際に起動してみましょー</p>
<p>&nbsp;</p>
<p>ダウンロードしたターボールを、tar zxvfして、展開</p>
<p>perl Maikfile.PL と make でインストール完了！！</p>
<p>&nbsp;</p>
<p>bench_exampleってのをちょこっとだけ変更するだけですな</p>
<p>&nbsp;</p>]]>
        <![CDATA[<p>変更したのは、こちら</p>
<p>（って言ってもユーザのとことかコメントアウトしてるから、ほぼサンプルのままですなw）</p>
<p>&nbsp;</p><pre>#!/usr/local/bin/perl -w

use strict;
use MyBench;
use Getopt::Std;
use Time::HiRes qw(gettimeofday tv_interval);
use DBI;

my %opt;
Getopt::Std::getopt('n:r:h:', \%opt);

my $num_kids  = $opt{n} || 10;
my $num_runs  = $opt{r} || 100;
my $db        = "xxx";
my $user      = "xxx";
my $pass      = "xxx";
my $port      = 3306;
my $host      = $opt{h} || "127.0.0.1";
my $dsn       = "DBI:mysql:$db:$host;port=$port";

my $callback = sub
{
    my $id  = shift;
    my $dbh = DBI-&gt;connect($dsn, $user, $pass, { RaiseError =&gt; 1 });
    my $sth = $dbh-&gt;prepare("SELECT * FROM mt_log WHERE log_id = ?");

    my $cnt = 0;
    my @times = ();

    ## wait for the parent to HUP me
    local $SIG{HUP} = sub { };
    sleep 600;

    while ($cnt &lt; $num_runs)
    {
        my $v = int(rand(100_000));
        ## time the query
        my $t0 = [gettimeofday];
        $sth-&gt;execute($v);
        my $t1 = tv_interval($t0, [gettimeofday]);
        push @times, $t1;
        $sth-&gt;finish();
        $cnt++;
    }

    ## cleanup
    $dbh-&gt;disconnect();
    my @r = ($id, scalar(@times), min(@times), max(@times), avg(@times), tot(@times));
    return @r;
};

my @results = MyBench::fork_and_work($num_kids, $callback);
MyBench::compute_results('test', @results);

exit;

__END__
</pre>
<p>&nbsp;</p>
<p>では、起動してみましょー</p>
<p>&nbsp;</p><pre>perl mybench.pl 
forking: ++++++++++
sleeping for 2 seconds while kids get ready
waiting: ----------
test: 1000 0.000371 0.327471 0.003567237 3.567237 2803.2900533382
  clients : 10
  queries : 1000
  fastest : 0.000371
  slowest : 0.327471
  average : 0.003567237
  serial  : 3.567237
  q/sec   : 2803.2900533382
</pre>
<p>&nbsp;</p>
<p>まぁ、ぱっと見てもらえればそのままなんですが、とりあえず解説をば</p>
<p>&nbsp;</p>
<p>clientsっていうのは、MyBenchの内部処理の話ですが、引数（値）で渡されたclient分</p>
<p>forkするわけですね、そーその子プロセス数を指定してあげていたのです</p>
<p>&nbsp;</p>
<p>queriesは、子プロセスが送信するクエリ数ですね</p>
<p>&nbsp;</p>
<p>fastestは、上の例で言えば、子プロセス×クエリ数で最速だった秒</p>
<p>&nbsp;</p>
<p>slowestは、fastestの逆で、一番遅かった秒</p>
<p>&nbsp;</p>
<p>averageは、全クエリの平均、１クエリでどれだけ平均かかってますか？ってこと</p>
<p>&nbsp;</p>
<p>んで、serialは、突然変な数値が出てくるんだけど、これは、上の例でいくと、</p>
<p>1子プロセスが1000クエリ投げて、かかった時間を子プロセス分、全部足した秒数です</p>
<p>なので、実際は3.5秒もかかってないやん！！</p>
<p>&nbsp;</p>
<p>と、言いたいところですが、10子プロセスが同時に行った時間の総計なので、</p>
<p>こんなふーに表示されちゃうんですね</p>
<p>ほいで、最後は、これはもー、単純にq/sec＝1秒間に送信できたクエリ数ですね</p>
<p>&nbsp;</p>
<p>はー、なんか久々にダラダラ書いた感じw</p>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>Hatena::QuestionのMySQLのレプリケーションで、マスターにだけ更新をかける方法に答える（２回目w）</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2009/02/hatenaquestionmysqlw.html" />
    <id>tag:modperlis.bounceme.net,2009://1.107</id>

    <published>2009-02-04T15:10:03Z</published>
    <updated>2009-02-04T15:32:04Z</updated>

    <summary>ということで、人力検索に答えようとしたら、一人１回のため、 こっちに書いてみます...</summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="mysql" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://modperlis.bounceme.net/">
        <![CDATA[<p>ということで、人力検索に答えようとしたら、一人１回のため、</p>
<p>こっちに書いてみますw</p>
<p>&nbsp;</p>
<p>元質問はこっちですよ</p>
<p><a href="http://q.hatena.ne.jp/1233674997">http://q.hatena.ne.jp/1233674997</a></p>
<p>&nbsp;</p>
<p>結局は、フルレプリケーションした場合は、どーしよーもない感じですが、</p>
<p>あるDBをスレーブしてるなどの負荷を分散する際は、こんなのが使えました</p>
<p>&nbsp;</p>
<p>マスターにて</p>
<p>&nbsp;</p>
<pre>mysql&gt;USE test;
mysql&gt;CREATE TABLE xxx ENGINE=MyISAM;
mysql&gt;USE mysql;
mysql&gt;ALTER TABLE test.xxx ENGINE=InnoDB;
</pre>
<p>&nbsp;</p>
<p>はてさて、同じことやってるみたい？</p>
<p>分かる人は分かったかな？</p>
<p>&nbsp;</p>
]]>
        <![CDATA[<p>実は、データベースを跨ぐUPDATEなどは、</p>
<p>フルレプリケーションじゃない、またはreplicate-wild-do-tableなどを指定している</p>
<p>場合などでは、データーベースを跨ぐUPDATEは行われません</p>
<p>&nbsp;</p>
<p>つまり、</p>
<p>&nbsp;</p>
<pre>
replicate-do-db=test
</pre>
<p>&nbsp;</p>
<p>なんかしてる場合は、マスタのxxxテーブルは、InnoDB</p>
<p>スレーブのxxxテーブルは、MyISAMとなるんですね</p>
<p>&nbsp;</p>
]]>
    </content>
</entry>

<entry>
    <title>公開サーバは、PasswordAuthenticationをNoにしましょうね</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2009/02/passwordauthenticationno.html" />
    <id>tag:modperlis.bounceme.net,2009://1.106</id>

    <published>2009-02-03T13:43:47Z</published>
    <updated>2009-02-03T15:21:48Z</updated>

    <summary><![CDATA[まずは、ログインしたいIDで下のコマンドを打ちます &nbsp; ssh-key...]]></summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="other" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ssh" label="ssh" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://modperlis.bounceme.net/">
        <![CDATA[<p>まずは、ログインしたいIDで下のコマンドを打ちます</p>
<p>&nbsp;</p>
<pre>ssh-keygen -t rsa</pre>
<p>&nbsp;</p>
<p>そーすると、パスフレーズとか聞かれるので、パスワードはながーく打ちますw</p>
<p>ちなみに自分は住所をもぢったものにしてみましたw</p>
<p>&nbsp;</p>
<p>さてはて、次にすることは</p>
<p>&nbsp;</p>
<pre>mv ~/.ssh/id_rsa.pub /.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
</pre>
<p>&nbsp;</p>
<p>そんで、id_rsaのファイルをログインしたいPCとかにコピっときます</p>
<p>&nbsp;</p>
<pre>cat ~/.ssh/id_rsa
</pre>
<p>&nbsp;</p>
<p>最後は、/etc/ssh/sshd_configのPasswordAuthenticationをnoにして</p>
<p>&nbsp;</p>
<pre>/etc/init.d/sshd restart</pre>
<p>&nbsp;</p>
<p>で、終了ーーー</p>
<p>&nbsp;</p>
<p>ターミナルからログインとかするときは、、、</p>
<p>&nbsp;</p>
<pre>ssh -i .ssh/id_rsa xxxx@xxxx.com
</pre>
<p>&nbsp;</p>
<p>とかすると、パスフレーズを聞かれるので、答えたらログインOKっす！！</p>
<p>&nbsp;</p>
]]>
        
    </content>
</entry>

<entry>
    <title>Hatena::Questionで、おしい合戦を解決してみるｗ</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2008/12/hatenaquestion-1.html" />
    <id>tag:modperlis.bounceme.net,2008://1.105</id>

    <published>2008-12-13T14:31:20Z</published>
    <updated>2008-12-13T14:56:19Z</updated>

    <summary><![CDATA[質問は、こんな感じ &nbsp;perlでPHPみたいにrtrimをしたいです。...]]></summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="perl" 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://modperlis.bounceme.net/">
        <![CDATA[<p>質問は、こんな感じ</p>
<p>&nbsp;</p><pre>perlでPHPみたいにrtrimをしたいです。
文字列の一番最後に全角スペースや半角スペースがあれば
削除するみたいな感じにしたいです。
全角が２つあってもそれも削除します。

どうすれば可能でしょうか？
</pre>
<p>&nbsp;</p>
<p>#2を回答した方が、#1の方を惜しいと言ってるんだけれども、</p>
<p>#2の方も惜しいｗｗ</p>
<p>&nbsp;</p>
<p>正規表現で、</p>
<p>&nbsp;</p><pre>$str =~ s/[\s　]+$//g;
</pre>
<p>&nbsp;</p>
<p>すると、半角スペース、または、UTF-8の全角スペース「E38080」が分解され、</p>
<p>「\xE3」または、「\x80」または、「\x80」を消すってなっちゃいます</p>
<p>&nbsp;</p>
<p>正解は、こんな感じ</p>
<p>&nbsp;</p>]]>
        <![CDATA[<p>&nbsp;</p><pre>#!/usr/bin/perl

use strict;
use warnings;

my $str1 = 'テスト ';           # 1byte space
my $str2 = 'テスト 　';         # 1byte spece and 3byte utf8 space
my $str3 = 'テスト　　';        # 3byte utf8 space and 3byte utf8 space

for my $w (($str1, $str2, $str3)) {
    $w =~ s/(\s|\xE3\x80\x80)+$//;
    print "&lt;$w&gt;\n";
}
exit;
</pre>
<p>&nbsp;</p>
<p>まー、「[]」じゃくて「()」で文字列としてしましょーってことね</p>
<p>&nbsp;</p>
<p>そいじゃ、またｗ</p>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>iframeやら何やらの中身を操作したくて、JSONPにてリクエストを受けて、JSON形式にて返却するcgiを作ってみた</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2008/12/iframejsonpjsoncgi.html" />
    <id>tag:modperlis.bounceme.net,2008://1.104</id>

    <published>2008-12-07T08:33:53Z</published>
    <updated>2008-12-10T18:02:07Z</updated>

    <summary>作ったのは、チョー簡単なcgiで、やってることはパラメータで受けたURLを pe...</summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="javascript" label="javascript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://modperlis.bounceme.net/">
        <![CDATA[<p>作ったのは、チョー簡単なcgiで、やってることはパラメータで受けたURLを</p>
<p>perlにてリクエストし、JSON形式で返すだけ</p>
<p>&nbsp;</p><pre>#!/usr/bin/perl

use strict;
use warnings;
use CGI;
use HTTP::Lite;
use JSON::Syck;
use Jcode;

my($data, %qq);
my $q    = CGI-&gt;new();
my $http = HTTP::Lite-&gt;new();
my $req  = $http-&gt;request($q-&gt;param('src')) or goto RET;
my $body = $http-&gt;body();

if ($q-&gt;param('headless')) {
    $body =~ s!^.*&lt;body[^&gt;]*&gt;(.*)&lt;/body&gt;.*$!$1!i;
}
my $char = getcode($body);
if ($char &amp;&amp; $char !~ /utf\-?8/i) {
    $body = jcode($body, $char)-&gt;utf8;
}
for ($q-&gt;param()) {
    $qq{$_} = $q-&gt;param($_);
}
$data = {%qq, content =&gt; $body};
RET:

print
    $q-&gt;header(-type =&gt; 'application/x-javascript; charset=UTF-8'),
    $q-&gt;param('callback'), '(', JSON::Syck::Dump($data), ');', "\n";
exit;
</body[^></pre>
<p>&nbsp;</p>
<p>まー、いたって簡単ですな</p>
<p>&nbsp;</p>
<p>これを使って、右サイドバーのamazon広告をonloadで変えてみます</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
        <![CDATA[<p>onloadでのjsは、こんな感じ</p>
<p>&nbsp;</p><pre>&lt;!-- amazon image change start --&gt;
    &lt;script type="text/javascript" src="/mt/mt-static/jquery-1.2.6.pack.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript"&gt;
        $(function(){
            var i;
            for (i=0;i&lt;=$(document.getElementsByTagName('iframe')).length;i++) {
                var fe = $(document.getElementsByTagName('iframe'))[i];
                if (!fe) continue;
                if (fe.src.match(/amazon.co.jp/)) {
                    var url  = 'http://modperlis.bounceme.net/jsonperl/amget.cgi';
                        url += '?headless=1';
                        url += '&amp;number='+i+'&amp;src='+escape(fe.src)+'&amp;callback=?';
                    $.getJSON(url,
                        function (data) {
                            if (!data) return false;
                            data.content = data.content.replace(/\._SL100_\.jpg/, '._SL200_.jpg');
                            var el           = document.createElement('div');
                                el.id        = 'amazon_' + data.number;
                                el.innerHTML = data.content;
                            var fe               = $(document.getElementsByTagName('iframe'))[data.number];
                                fe.style.display = 'none';
                                fe.parentNode.appendChild(el);

                            var content = $('#amazon_' + data.number+' div:first-child')[0];
                            content.style.backgroundColor = '#eeeeee';
                            content.style.whiteSpace      = 'nowrap';
                            content.style.fontSize        = '14px';
                            content.style.border          = 'solid 1px black';
                            content.style.padding         = '6px';
                            for (i=0;i&lt;=content.childNodes.length;i++) {
                                try{var tag=content.childNodes[i].tagName;}catch(e){;}
                                if (!tag) continue;

                                if (tag.match(/^form$/i)) {
                                    $(content.childNodes[i]).remove();

                                } else if (tag.match(/^p$/i)) {
                                    var id = $(content.childNodes[i])[0].id;
                                    if (!id) continue;
                                    if (id.match(/^privacy$/i)) {
                                        $(content.childNodes[i]).remove();
                                    }
                                }
                            }
                    });
                }
            }
        });
    &lt;/script&gt;
&lt;!-- amazon image change end --&gt;
</pre>
<p>&nbsp;</p>
<p>jQueryを使っていますが、まー、なんでもできます</p>
<p>&nbsp;</p>
<p>使いたい方は、コメントにでも書いてくださいなｗ</p>
<p>mod_perlなので、リクエスト数は問題ないと思いますが、</p>
<p>なにぶん自宅サーバなので、レスポンスなどは・・・・気にしない環境でww</p>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>perlのuseとrequireで、CGIの処理速度などを計測する場合</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2008/12/perluserequirecgi.html" />
    <id>tag:modperlis.bounceme.net,2008://1.103</id>

    <published>2008-12-03T16:14:47Z</published>
    <updated>2008-12-03T16:24:47Z</updated>

    <summary><![CDATA[たとえば、こんな感じのcgiを計測しようと思った時に &nbsp;#!/usr/...]]></summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="perl" 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://modperlis.bounceme.net/">
        <![CDATA[<p>たとえば、こんな感じのcgiを計測しようと思った時に</p>
<p>&nbsp;</p><pre>#!/usr/bin/perl

use strict;
use warnings;
use Time::HiRes qw(usleep ualarm gettimeofday tv_interval);

my $a = 'あいうえお';
my $t = [gettimeofday];

if (!$a) {
    use Jcode;
}

jcode($a, 'utf8')-&gt;sjis;
print "Content-type:text/html\n\n";
print tv_interval($t);
print "\n";
exit;
</pre>
<p>&nbsp;</p>
<p>と、</p>
<p>&nbsp;</p><pre>#!/usr/bin/perl

use strict;
use warnings;
use Time::HiRes qw(usleep ualarm gettimeofday tv_interval);

my $a = 'あいうえお';
my $t = [gettimeofday];

my $jcode;
# if (!$a) {
if ($a) {
    require "/usr/lib/perl5/site_perl/5.8.8/Jcode.pm";
    $jcode = Jcode-&gt;new();
}

$jcode-&gt;set($a, 'utf8')-&gt;sjis;
print "Content-type:text/html\n\n";
print tv_interval($t);
print "\n";
exit;
</pre>
<p>&nbsp;</p>
<p>は、全く結果が違っちゃいます</p>
<p>&nbsp;</p>]]>
        <![CDATA[<p>見てお分かりの通り、前者は、</p>
<p>&nbsp;</p><pre>if (!$a) {
    use Jcode;
}
</pre>
<p>&nbsp;</p>
<p>してるのに、jcode関数が使えちゃいます</p>
<p>&nbsp;</p>
<p>use は、コンパイル</p>
<p>require は、実行時に展開されるために差分が出てしまうのです</p>
<p>&nbsp;</p>
<p>つまり、あんま使わないから、if文の中でだけuseしとくか・・・・</p>
<p>&nbsp;</p>
<p>なーんてことはできないので、そーいうときは、requireにしましょー</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>Hatena::Questionに答える記事を書いてみた</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2008/11/hatenaquestion.html" />
    <id>tag:modperlis.bounceme.net,2008://1.102</id>

    <published>2008-11-19T15:39:06Z</published>
    <updated>2008-11-19T15:50:30Z</updated>

    <summary><![CDATA[質問は、こちら &nbsp; やったことは、まず３テーブル作る &nbsp;CR...]]></summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="mysql" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://modperlis.bounceme.net/">
        <![CDATA[<p>質問は、<a href="http://q.hatena.ne.jp/1226912936">こちら</a></p>
<p>&nbsp;</p>
<p>やったことは、まず３テーブル作る</p>
<p>&nbsp;</p><pre>CREATE TABLE tb1 (id INTEGER AUTO_INCREMENT, PRIMARY KEY(id));
CREATE TABLE tb2 (id INTEGER AUTO_INCREMENT, PRIMARY KEY(id));
CREATE TABLE tb3 (id INTEGER AUTO_INCREMENT, PRIMARY KEY(id));
</pre>
<p>&nbsp;</p>
<p>適当にデータを入れたところで、以下のクエリーでEXPLAINしてみる</p>
<p>&nbsp;</p><pre>EXPLAIN SELECT tb1.* FROM tb1 LEFT JOIN tb2 ON tb1.id = tb2.id LEFT JOIN tb3 ON tb1.id = tb3.id WHERE tb1.id = '6';
</pre>
<p>&nbsp;</p>
<p>結果は</p>
<p>&nbsp;</p><pre>+----+-------------+-------+-------+---------------+---------+---------+-------+------+----------------------+
| id | select_type | table | type  | possible_keys | key     | key_len | ref   | rows | Extra                |
+----+-------------+-------+-------+---------------+---------+---------+-------+------+----------------------+
|  1 | SIMPLE      | tb1   | const | PRIMARY       | PRIMARY | 4       | const |    1 | Using index          |
|  1 | SIMPLE      | tb2   | const | PRIMARY       | PRIMARY | 4       | const |    1 | Using index          |
|  1 | SIMPLE      | tb3   | const | PRIMARY       | PRIMARY | 4       | const |    0 | unique row not found |
+----+-------------+-------+-------+---------------+---------+---------+-------+------+----------------------+
3 rows in set (0.00 sec)
</pre>
<p>&nbsp;</p>
<p>うーん、問題なくINDEXを使ってるなー</p>
<p>&nbsp;</p>
<p>かなり負荷がかかるとは、どういうことなんでしょう・・・</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>sh（シェル）でファイルを一括置換したい</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2008/11/sh.html" />
    <id>tag:modperlis.bounceme.net,2008://1.101</id>

    <published>2008-11-18T15:33:59Z</published>
    <updated>2008-11-18T15:42:48Z</updated>

    <summary><![CDATA[&nbsp;bash-2.04$ for i in `ls -1 *.html`...]]></summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="other" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="sh" label="sh" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://modperlis.bounceme.net/">
        <![CDATA[<p>&nbsp;</p><pre>bash-2.04$ for i in `ls -1 *.html`
&gt; do
&gt; sed -e "s/test\//test2\//g" $i &gt; $i.sed
&gt; mv $i.sed $i
&gt; done
</pre>
<p>&nbsp;</p>
<p>すると、一発で置換できますね</p>
<p>&nbsp;</p>
<p>楽チン楽チン</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>perlで、undefとdeleteの違い</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2008/11/perlundefdelete.html" />
    <id>tag:modperlis.bounceme.net,2008://1.100</id>

    <published>2008-11-17T15:21:57Z</published>
    <updated>2008-11-17T15:26:05Z</updated>

    <summary><![CDATA[まー、そのまんまですけど &nbsp;#!/usr/bin/perl use s...]]></summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="perl" 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://modperlis.bounceme.net/">
        <![CDATA[<p>まー、そのまんまですけど</p>
<p>&nbsp;</p><pre>#!/usr/bin/perl

use strict;
use warnings;

my %a = (a =&gt; 100, b =&gt; 200);
delete $a{a};

print join(',', keys %a). "\n\n";
</pre>
<p>&nbsp;</p>
<p>と</p>
<p>&nbsp;</p><pre>#!/usr/bin/perl

use strict;
use warnings;

my %a = (a =&gt; 100, b =&gt; 200);
undef $a{a};

print join(',', keys %a). "\n\n";
</pre>
<p>&nbsp;</p>
<p>では、キーの出力が違いますね</p>
<p>&nbsp;</p>
<p>自分メモ</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>さっき、２個下の長ーーーーいタイトルの記事を保存して、再構築したら再構築後はダイジョブだったのに、他の記事を書いたら、途中できれてしまった・・・</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2008/10/post-12.html" />
    <id>tag:modperlis.bounceme.net,2008://1.99</id>

    <published>2008-10-08T14:52:25Z</published>
    <updated>2008-10-08T15:02:56Z</updated>

    <summary><![CDATA[原因を探しても、MT側で文字制限をしているところが見つからず・・・ &nbsp;...]]></summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
    <category term="movabletype" label="MovableType" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://modperlis.bounceme.net/">
        <![CDATA[<p>原因を探しても、MT側で文字制限をしているところが見つからず・・・</p>
<p>&nbsp;</p>
<p>あれ？？</p>
<p>&nbsp;</p>
<p>DB？？</p>
<p>&nbsp;</p>
<p>って、思ってみてみたら、やっぱりそうでしたｗｗｗ</p>
<p>&nbsp;</p>]]>
        <![CDATA[<p>&nbsp;なので、MySQLのカラムを変えちゃいます！！</p>
<p>&nbsp;</p><pre>mysql&gt; ALTER TABLE mt_entry MODIFY entry_title mediumtext DEFAULT NULL;
Query OK, 94 rows affected (0.22 sec)
Records: 94  Duplicates: 0  Warnings: 0
</pre>
<p>&nbsp;</p>
<p>ちなみに、新規書き込みしたときは、POSTデータからタイトルを生成しているので</p>
<p>&nbsp;</p>
<p>文字数に制限はないみたいですよｗ</p>
<p>&nbsp;</p>
<p>さらに、ちなみに、MEDIUTMTEXTは、</p>
<p>&nbsp;</p>
<p><a href="http://dev.mysql.com/doc/refman/4.1/ja/storage-requirements.html">6.2.6. 各カラム型に必要な記憶容量</a></p>
<p>&nbsp;</p>
<p>によると、ちとでかすぎる気がしますが、まーそんなカツカツなブログじゃないし～ｗｗ</p>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>MySQLで、MyISAMとInnoDBのINSERTとかの速度比較をしようと思ったら</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2008/10/mysqlmyisaminnodbinsert.html" />
    <id>tag:modperlis.bounceme.net,2008://1.98</id>

    <published>2008-10-08T14:20:57Z</published>
    <updated>2008-10-08T14:23:02Z</updated>

    <summary><![CDATA[こんな素敵なサイトを見つけましたｗｗ &nbsp; InnoDB vs MyIS...]]></summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="mysql" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://modperlis.bounceme.net/">
        <![CDATA[<p>こんな素敵なサイトを見つけましたｗｗ</p>
<p>&nbsp;</p>
<p><a title="InnoDB vs MyISAM パフォーマンス比較 DELETEとINSERT" href="http://www.inter-office.co.jp/contents/163/" rel="bookmark"><font color="#cc0000">InnoDB vs MyISAM パフォーマンス比較 DELETEとINSERT</font></a></p>
<p>&nbsp;</p>
<p>いやはや、ためになります</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>最近ニュースを見てると、景気が悪くなって一般家庭、自分のような平社員にまで影響が及ぶとかなんとか、脅迫めいたことを言っていますが、会社は大きくするために投資したり、借金したりするわけで、景気が悪くなると平社員とかまで影響があるのはわかります。けど、なんで景気がよくなっても平社員にまで還元されないのでしょうか？結局、会社は景気がよくなれば、会社を大きくすべく色んな投資したり、役員の報酬があがったりで、平社員にいいことってあるの？頭のいい人教えてｗｗ</title>
    <link rel="alternate" type="text/html" href="http://modperlis.bounceme.net/2008/10/post-11.html" />
    <id>tag:modperlis.bounceme.net,2008://1.97</id>

    <published>2008-10-08T13:34:10Z</published>
    <updated>2008-10-08T14:51:24Z</updated>

    <summary></summary>
    <author>
        <name>perler</name>
        <uri>http://modperlis.bounceme.net</uri>
    </author>
    
        <category term="talk to oneself" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://modperlis.bounceme.net/">
        
        
    </content>
</entry>

</feed>
