<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>DQNEO起業日記</title>
        <link>http://dqn.sakusakutto.jp/</link>
        <description>ど素人プログラマの挑戦。</description>
        <language>ja</language>
        <copyright>Copyright 2010</copyright>
        <lastBuildDate>Mon, 14 Jun 2010 01:21:06 +0900</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>Movable Type 4.0から5.02にアップグレードしました。</title>
            <description><![CDATA[2007年夏にMT4.0を導入してから、一度もアップグレートしていなかった（怖くていじれなかった）のですが、ついにバージョン５(5.02)にアップグレードしました。

<h4>バージョン４→５への移行について</h4>

公式サイトの手順どおりにやったら、わりとすんなりアップグレードできました。


<h4>バージョン５を使ってみての感想</h4>

まだほんの少ししか触っていませんが、管理画面がすっきりして使い勝手がよくなった気がします。

バージョン４の場合だと、ログインしてからブログ記事を作成するまでに、下記のように５ステップ必要でした。

ログイン　→　ブログ一覧　→　目的のブログを選択　→　記事の新規作成

これがバージョン５だと、

ログイン　→　ブログタブをクリック　→　記事の新規作成

と３工程にまで減りました。

また、管理画面のレイアウトで、メニューバーが従来は画面上部にプルダウン式だったのが、３カラム方式の左サイドに変わっています。

噂ではバージョン３のスタイルに戻したそうですが、少し使いやすくなった気がします。

インストールしてすぐ感じたのは以上です。
もっと使い込んだらいろいろ感想が出てくると思いますので、このブログで報告します。]]></description>
            <link>http://dqn.sakusakutto.jp/2010/06/movable_type_40502.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/06/movable_type_40502.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">MovableType</category>
            
            
            <pubDate>Mon, 14 Jun 2010 01:21:06 +0900</pubDate>
        </item>
        
        <item>
            <title>たった５行のコードでWebページ取得・解析をするJavaScriptプログラム</title>
            <description><![CDATA[<h4>５行のコードで、Yahoo!のトピックス一覧を抽出する！使うのは「メモ帳」だけ！</h4>
Windowsユーザのみなさん、社会人・学生のみなさん、こんにちわ。<br/>
プログラマではないあなたのために、プログラムの面白さを伝えるためにこの記事を書きました。<br />
<br />
これから、たった５行のコードでYahoo!のトピックス一覧を抽出してみます。<br />
このプログラムのすごいところは、何もインストールしなくてよいことです。<br />
Windowsとメモ帳だけあれば動きます。<br />
<br />
下記のコードをメモ帳に貼り付けて、デスクトップに保存してください。<br />
(IE6,7で動作確認済みです。たぶんIE8でも動きます。）<br />
<br />
ファイル名： yahoo.jse
<pre><code>
var IE = new ActiveXObject('InternetExplorer.Application');
IE.navigate('http://yahoo.co.jp');
while (IE.busy);
while (IE.document.readyState != "complete");
WSH.Echo(IE.document.getElementById('topicsfb').innerText);

</code></pre>
<br style="clear:both;" />
ファイル名が　" yahoo.jse.txt "　にならないように気をつけてくださいね<br />
<br />
<img src="http://dqn.sakusakutto.jp/2010/06/08/01-thumb-426x270.jpg" width="426" height="270" alt="jscript01.JPG" />
<br style="clear:both;" />
<br />
保存したら、ダブルクリックします。<br />
<br />
<img src="http://dqn.sakusakutto.jp/2010/06/08/02.jpg" width="147" height="121" alt="02.jpg" />
<br style="clear:both;" />
<br />
すると、、、ほら！！<br style="clear:both;" />
<br />
<img alt="03.jpg" src="http://dqn.sakusakutto.jp/2010/06/08/03.jpg" width="634" height="166" style="display: block; "/>
<br style="clear:both;" />
ね、すごいでしょ？<br />
<br />
<h4>応用例</h4>

<h5>株価を取得する</h5>
トヨタ自動車の株価をチェックしてみたりとか。<br />
<br />
<pre><code>
var IE = new ActiveXObject('InternetExplorer.Application');
IE.navigate('http://profile.yahoo.co.jp/fundamental/7203');
while (IE.busy);
while (IE.document.readyState != "complete");
WSH.Echo(IE.document.getElementById('left_col').innerText);

</code></pre>

<img alt="04.jpg" src="http://dqn.sakusakutto.jp/2010/06/08/04.jpg" width="176" height="226" /><br />
<br />
<h5>気象庁の天気予報を取得する</h5>
明日のデートにそなえたりとか。<br />
<br />
<pre><code>
var IE = new ActiveXObject('InternetExplorer.Application');
IE.navigate('http://tenki.jp/');
while (IE.busy);
while (IE.document.readyState != "complete");
WSH.Echo(IE.document.getElementById('descriptionEntries').innerText);

</code></pre>
<br />
<img alt="05.jpg" src="http://dqn.sakusakutto.jp/2010/06/08/05.jpg" width="640" height="118"  style="display: block;"/>
<br />
どうですか、簡単でしょう？<br />
<br />
<h4>まとめ</h4>
JavaScript(厳密に言うとJScript)で遊んでみました。<br />
Windowsには、このようにメモ帳だけでプログラムを実行できる素晴らしい環境があります。<br />
特別なソフトを入れずとも、すぐプログラムが書けるのです。<br />
<br />
これでプログラミングの楽しさを知っていただけたら幸いです。<br />
<br />
（くれぐれも悪用しないでくださいね！！）<br />]]></description>
            <link>http://dqn.sakusakutto.jp/2010/06/webjavascript.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/06/webjavascript.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">JavaScript</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">JScript</category>
            
            <pubDate>Tue, 08 Jun 2010 02:57:02 +0900</pubDate>
        </item>
        
        <item>
            <title>簡単！たった１行のコードでWebページを取得するPerlスクリプト</title>
            <description><![CDATA[<h4>コマンド１発で、ヤフーのトップページを取得する！</h4>
Perlを使うと、たった１行のコード（というかコマンド）でウェブページのHTMLを取得できます。<br />
<br />
しかも、LinuxでもWIndowsでも全く同じコマンドで動作します。<br />

<pre><code>
Linux系の場合
$ perl -MLWP::Simple -e  " print get 'http://yahoo.co.jp' "


Windowsの場合（コマンドプロンプトで下記を入力)
> perl -MLWP::Simple -e  " print get 'http://yahoo.co.jp' "

</code></pre>
<br />
<strong>実行結果</strong><br />
<pre><code>Wide character in print at -e line 1.
&lt;!DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;&quot;-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;
Transitional//EN&quot;&nbsp;&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta&nbsp;http-equiv=&quot;content-type&quot;&nbsp;content=&quot;text/html;&nbsp;charset=utf-8&quot;&gt;
&lt;meta&nbsp;http-equiv=&quot;content-style-type&quot;&nbsp;content=&quot;text/css&quot;&gt;
&lt;meta&nbsp;http-equiv=&quot;content-script-type&quot;&nbsp;content=&quot;text/javascript&quot;&gt;
&lt;meta&nbsp;name=&quot;description&quot;&nbsp;content=&quot;日本最大級のポータルサイト。
検索、オークション、ニュース、メール、コミュニティ、ショッピング、など80以上のサービスを展開。
あなたの生活をより豊かにする「ライフ・エンジン」を目指していきます。&quot;&gt;
&lt;title&gt;Yahoo!&nbsp;JAPAN&lt;/title&gt;
&lt;base&nbsp;href=&quot;http://www.yahoo.co.jp/_ylh=X3oDMTB2OHNyYWxqBF9TAzIwNzkxODE5OTkEdGlkA
zEzBHRtcGwDdGFibGU-/&quot;&gt;
&lt;style&nbsp;type=&quot;text/css&quot;&gt;
(以下省略)
</code></pre>

<br />
取得したHTMLをファイルとして保存したい場合は、下記のようにします。<br />
こうすると、結果を画面に表示する代わりにファイルに保存できます。<br />
<br />
<pre><code>
perl -MLWP::Simple -e  " print get 'http://yahoo.co.jp'" > yahoo.html
</code></pre>

ちなみに">"記号のことを「リダイレクト」といいます。<br />
<br />
Perlって素晴らしい！！<br />
<br />
<br />
<br />
【補足１】<br />
LWP::Simpleモジュールが必要です。<br />
上記のget関数は、Perlの標準関数ではなくてLWP::Simpleというモジュールが提供する関数です。<br />
インストール方法は割愛しますが、よく使われるモジュールなのでレンタルサーバなどでは初めから入ってることが多いです。<br />
（Xreaにはインストール済みでした。）<br />
<br />
【補足２】<br />
出力結果の１行目に警告が出ちゃってますが、多めに見てあげてください。。。
]]></description>
            <link>http://dqn.sakusakutto.jp/2010/06/webperl.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/06/webperl.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Perl</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">LWP</category>
            
            <pubDate>Mon, 07 Jun 2010 03:21:50 +0900</pubDate>
        </item>
        
        <item>
            <title>Smarty 半角数字を全角数字に変換するプラグイン</title>
            <description><![CDATA[<pre><code>
/**
 * 半角数字→全角数字に置き換えるmodifier
 *
 * @see
 * http://pentan.info/php/smarty/mod_hkana.html
 *
 */
function smarty_modifier_numeric_hantozen($string, $encoding = 'UTF-8')
{
    return mb_convert_kana($string, "N", $encoding);
}
</code></pre>

<h4>使い方</h4>
ファイル名を "modifier.numeric_hantozen.php" にして、Smartyのプラグインディレクトリに保存してください。<br />
<br />
テンプレート内で、下記のようにと書くと変換してくれます。
<br />
<pre><code>
{$number|numeric_hantozen}

</code></pre>

<h5>参考記事</h5>
<a href="http://pentan.info/php/smarty/mod_hkana.html">携帯表示用に文字を全角から半角にする - [Smarty] ぺんたん info</a>]]></description>
            <link>http://dqn.sakusakutto.jp/2010/06/smarty.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/06/smarty.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Smarty</category>
            
            <pubDate>Sun, 06 Jun 2010 21:57:58 +0900</pubDate>
        </item>
        
        <item>
            <title>[Perl] Ubuntu9.04にWeb::Scraperをインストールする方法</title>
            <description><![CDATA[前回の記事で、XML::LibXMLのインストールが失敗してることまではわかりました。<br />
<br />
<pre><code>cpan[1]> install XML::LibXML
CPAN: Storable loaded ok (v2.18)
Going to read '/root/.cpan/Metadata'
  Database was generated on Sat, 05 Jun 2010 04:27:23 GMT
CPAN: YAML loaded ok (v0.70)
Going to read 86 yaml files from /root/.cpan/build/
CPAN: Time::HiRes loaded ok (v1.9711)
DONE
Restored the state of none (in 2.0500 secs)
Running install for module 'XML::LibXML'
Running make for P/PA/PAJAS/XML-LibXML-1.70.tar.gz
  Has already been unwrapped into directory /root/.cpan/build/XML-LibXML-1.70-IIX0Tb
  No 'Makefile' created
, won't make
Running make test
  Make had some problems, won't test
Running make install
  Make had some problems, won't install
</code></pre>
<br />
とりあえず解決できたので、以下にその方法を載せておきます。<br />
原因や仕組みはよくわかりません。すいません。。<br />
<br />
<pre><code>
# su -        # rootになる
# cd /root/.cpan/build/XML-LibXML-1.70-IIX0Tb
# perl Makefile.PL      # Makefile.PLを実行　→　エラーが出る
# apt-get install libxml2-dev       # ライブラリをインストール
# perl Makefile.PL       #  Makefile.PLを実行　→　またエラーが出る
# apt-get install libxml-libxml-perl      # ライブラリをインストール
# perl Makefile.PL       # 成功！！
# make
# make test
# make install
# update-perl-sax-parsers       # 一応。
# cpan

cpan>  install XML::libXML       # 成功！
cpan>  install Web::Scraper      # 成功！
</code></pre>
<br />
成功！！<br />
<br />
動作確認は次回の記事で。

]]></description>
            <link>http://dqn.sakusakutto.jp/2010/06/perl_ubuntu904webscraper.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/06/perl_ubuntu904webscraper.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Perl</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Web::Scraper</category>
            
            <pubDate>Sun, 06 Jun 2010 18:18:05 +0900</pubDate>
        </item>
        
        <item>
            <title>[Perl][CPAN]Web::Scraperのインストールがうまくできない。。。</title>
            <description><![CDATA[Ubuntu9.04にWeb::Scraperをインストールしたかったのですが、うまくいきません。<br />
<br />
私はPerlが大好きなのですが、CPANモジュールのインストールができないときは何をどうしてよいのかわからず途方にくれてしまいます。<br />
<br />
う～ん。。。モダンPerlへの道は険しい。。。<br />
<br />

<pre><code>cpan > install Web::Scraper

Test Summary Report
-------------------
t/xml-simple.t        (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: No plan found in TAP output
Files=22, Tests=40,  9 wallclock secs ( 0.72 usr  0.18 sys +  6.39 cusr  1.73 csys =  9.02 CPU)
Result: FAIL
Failed 1/22 test programs. 0/40 subtests failed.
make: *** [test_dynamic] Error 2
  MIYAGAWA/Web-Scraper-0.32.tar.gz
  /usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:

  reports MIYAGAWA/Web-Scraper-0.32.tar.gz
Running make install
  make test had returned bad status, won't install without force
Failed during this command:
 MIYAGAWA/HTML-TreeBuilder-LibXML-0.11.tar.gz : make_test NO
 MIYAGAWA/Web-Scraper-0.32.tar.gz             : make_test NO
</code></pre>
<br />

HTML::TreeBuilder::LibXMLのインストールが失敗したのかな？<br />
<br />
<pre><code>cpan > install HTML::TreeBuilder::LibXML

中略

t/HTML-TreeBuilder-XPath.t .. 1/19 Can't locate XML/LibXML.pm
 in @INC (@INC contains:
 /root/.cpan/build/HTML-TreeBuilder-LibXML-0.11-sa80fu/inc
 /root/.cpan/build/HTML-TreeBuilder-LibXML-0.11-sa80fu/blib/lib
 /root/.cpan/build/HTML-TreeBuilder-LibXML-0.11-sa80fu/blib/arch
 /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0
 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 
　/usr/local/lib/site_perl .) 
at /root/.cpan/build/HTML-TreeBuilder-LibXML-0.11-sa80fu/blib/lib/HTML/TreeBuilder/LibXML.pm line 7.

中略

Result: FAIL
Failed 7/7 test programs. 1/2 subtests failed.
make: *** [test_dynamic] Error 2
  MIYAGAWA/HTML-TreeBuilder-LibXML-0.11.tar.gz
  /usr/bin/make test -- NOT OK
</code></pre>
<br />

XML::LibXMLのインストールが失敗してるのかな？<br />
<br />
<pre><code>cpan[1]> install XML::LibXML
CPAN: Storable loaded ok (v2.18)
Going to read '/root/.cpan/Metadata'
  Database was generated on Sat, 05 Jun 2010 04:27:23 GMT
CPAN: YAML loaded ok (v0.70)
Going to read 86 yaml files from /root/.cpan/build/
CPAN: Time::HiRes loaded ok (v1.9711)
DONE
Restored the state of none (in 2.0500 secs)
Running install for module 'XML::LibXML'
Running make for P/PA/PAJAS/XML-LibXML-1.70.tar.gz
  Has already been unwrapped into directory /root/.cpan/build/XML-LibXML-1.70-IIX0Tb
  No 'Makefile' created
, won't make
Running make test
  Make had some problems, won't test
Running make install
  Make had some problems, won't install
</code></pre>

うむむ。。。<br />
まぁ失敗は成功の母ということで、何もしないよりは一歩前進した。<br />
<br />
ググって調べてみます。]]></description>
            <link>http://dqn.sakusakutto.jp/2010/06/perlcpanwebscraper_1.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/06/perlcpanwebscraper_1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Perl</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">CPAN</category>
            
            <pubDate>Sun, 06 Jun 2010 17:11:30 +0900</pubDate>
        </item>
        
        <item>
            <title>簡単！たった５行のコードでTwitterに投稿するPerlスクリプト    </title>
            <description><![CDATA[<h4>Net::Twitter::Liteを使うとこんなにカンタン！！</h4>
ほんとに５行のコードでつぶやけてしまいました。
<pre><code>#!/usr/bin/perl
use Net::Twitter::Lite;
use utf8;
my $nt = Net::Twitter::Lite->new(username => 'DQNEO', password => 'hoge');
my $result = eval { $nt->update('ついったー！！') };
warn "$@\n" if $@;</code></pre>

<a href="http://search.cpan.org/~mmims/Net-Twitter-Lite-0.10000/lib/Net/Twitter/Lite.pm">Net::Twitter::Lite</a>　バンザイ！！



]]></description>
            <link>http://dqn.sakusakutto.jp/2010/06/perlnettwitterlitetwitter.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/06/perlnettwitterlitetwitter.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Perl</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Net::Twitter::Lite</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">twitter</category>
            
            <pubDate>Sat, 05 Jun 2010 23:28:06 +0900</pubDate>
        </item>
        
        <item>
            <title>簡単！たった１３行のコードでHTML取得＆解析をするPerlスクリプト</title>
            <description><![CDATA[<h4>１３行のコードで、Yahoo!Japanのトピックス一覧を取得する！</h4>

PerlでHTML取得・解析したいときはLWP::UserAgentとHTML::TreeBuilderというのを使うと簡単にできます。<br />

LWP::UserAgentを使うと、Webページの取得ができます。<br />

<a href="http://search.cpan.org/~petek/HTML-Tree-3.23/lib/HTML/TreeBuilder.pm">HTML::TreeBuilder</a>を使うと、HTMLのDOM解析ができます。<br/>
<br />
この２つのモジュールを使って、Yahoo!Japanのトピックス一覧を取得してみましょう。<br />
コメント行と空行を除くとたったの１３行です。<br />
<br />
<code><pre>use strict;
use warnings;
use LWP::UserAgent;
use HTML::TreeBuilder;

# urlを指定する
my $url = 'http://www.yahoo.co.jp';

# IE8のフリをする
my $user_agent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)";

# LWPを使ってサイトにアクセスし、HTMLの内容を取得する
my $ua = LWP::UserAgent->new('agent' => $user_agent);
my $res = $ua->get($url);
my $content = $res->content;

# HTML::TreeBuilderで解析する
my $tree = HTML::TreeBuilder->new;
$tree->parse($content);

# DOM操作してトピックの部分だけ抜き出す。
# &lt;div id='topicsfb'&gt;&lt;ul&gt;&lt;li&gt;....の部分を抽出する

my @items =  $tree->look_down('id', 'topicsfb')->find('li');
print $_->as_text."\n" for @items;                          
</pre></code>
<br />
実行結果↓↓
<pre><code>
$ perl get_parse.pl

岡田氏ら11閣僚の再任内定
都知事「菅新内閣は極左」
主力級の種牛5頭 感染シロ
鳥獣駆除の2人 撃たれて死亡写真
イスラエル 新たに支援船だ捕写真NEW
はやぶさ地球へ 異例の人気写真
エトオ「日本が最も危険」
看護師アイドル「採血が快感」写真
今日の話題（40件）
一覧
</code></pre>

をを！超かんたん！！<br />
<br />
<h4>解説</h4>
主にHTML::TreeBuilderを解説します。<br />
<br />
<h5>parse</h5>
<pre><code>my $tree = HTML::TreeBuilder->new;
$tree->parse($content);</code></pre>
$contentには、HTMLを文字列として格納したものが入ります。<br />
必ずしもLWPを使う必要はなく、ローカルファイルを読み込んだものでもOKです。<br />
ここまではお約束なので覚えてしまいましょう。<br />
<br />
<br />
<h5>find, look_down, as_text</h5>
<pre><code>my @items =  $tree->look_down('id', 'topicsfb')->find('li');
print $_->as_text."\n" for @items;</pre></code>
↑をわかりやすく書くとこう↓です。<br />
<pre><code>my $elm  = $tree->look_down('id', 'topicsfb');
my  @list =  $elm->find('li');
for my $li (@list) {
    print $li->as_text."\n"
} </code></pre>      
<br />
<code><pre>$tree->look_down('id', 'topicsfb') </code></pre>
「HTML文書中で、id属性がtopicsfbである要素を取得せよ」です。<br />
JavaScriptのdocument.getElementByID('topicsfb')　とほぼ同じものです。<br />
<br />
<code><pre>$elm>find('li');</code></pre>
「その要素の中のli要素のリストを取得せよ」です。<br />
JavaSciptのelement.getElementsByTagName('li')とほぼ同じものです。<br />
<br />
<code><pre>$li->as_text </code></pre>
「その要素に含まれるテキスト文字列を取得せよ」です。<br />
JavaSciptのelement.innerTextとほぼ同じものです。<br />
<br />
<br />
このlook_down, find, as_textという３つのメソッドだけ覚えればたいていのことはできます。<br />
（実はHTML::Elementというオブジェクトのメソッドです）<br />
公式ドキュメントを見ると他にもごちゃごちゃといっぱいメソッドがありますが、最初は覚える必要ありません（キッパリ）
<br />
<br />

<h5>メッソドチェーン (jQuery的なアレ)</h5>
look_down,find, as_textは任意のHTML要素に対して実行できます。<br />
また、戻り値はHTML要素を返します。<br />
つまり、jQueryのようにメソッドチェーンをつなげてDOM要素を探索していくことができるのです。<br />
<br />
<pre><code>print $tree->look_down('id', 'spotlight_mainfb')->find('ul')->find('li')->as_text;</code></pre>
<br />
# 結果
<pre><code>「女編集者、松方弘子28歳独身」</code></pre>
・・・働きマン？<br />

<h4>レンタルサーバでも動く</h4>
Web::Scraperというモダンなモジュールもあるようですが、HTML::TreeBuilderの方がインストールが簡単です。<br />
(私が使っているXreaレンタルサーバではデフォルトで入っていました。)

<h4>参考になった記事</h4>
<ul>
	<li><a href="http://search.cpan.org/dist/HTML-Tree/lib/HTML/TreeBuilder.pm">HTML::TreeBuilder</a></li>
	<li><a href="http://search.cpan.org/~petek/HTML-Tree-3.23/lib/HTML/Element.pm">HTML::Element</a> ( find, look_downメソッドの解説はこちら )</li>
	<li><a href="http://www.geekpage.jp/programming/perl-network/html-treebuilder-2.php">Geekなぺーじ : HTML::TreeBuilderによるパース（リンクの取得）</a></li>
	<li><a href="http://pmakino.jp/tdiary/20061004.html">HTML::TreeBuilder ｲｲ - [ぴ]</a></li>
	<li><a href="http://hwat.sakura.ne.jp/hpod/200511/15-233956/">use HTML::TreeBuilder (hPod):</a></li>
</ul>

<h4>補足１</h4>
Webページを取得するだけなら１行でできます！<br />
<a href="http://dqn.sakusakutto.jp/2010/06/webperl.html">簡単！たった１行のコードでWebページを取得するPerlスクリプト -  DQNEO起業日記</a><br />

<h4>補足２</h4>
いろんな方が補足記事を書いてくださったので、ご紹介いたします。<br/>
ツッコミありがとうございます！<br/>
<br/>
<a href="http://d.hatena.ne.jp/tokuhirom/20100607/1275878274">HTML::TreeBuilder のメソッドを覚えるには人生はみじかすぎる件について</a><br/>
<br/>
<blockquote>Tatsuhiko Miyagawa の HTML::Selector::XPath をつかえば、
use HTML::Selector::XPath 'selector_to_xpath';
print selector_to_xpath('#topicsfb li'), "\n"; # => //*[@id='topicsfb']//li
のように、簡単に CSS Selector から XPath を生成することができる。</blockquote>
<br />
知りませんでした！ありがとうございます。<br />
<br />
<a href="http://d.hatena.ne.jp/faibou/20100607#1275878220">[PHP]簡単！たった６行のコードで HTML取得＆解析をするPHPスクリプト</a><br />
PHPだと６行ですか！すごい！<br />
<br />
<a href="http://d.hatena.ne.jp/sfujiwara/20100607/1275880204">[perl] たった＊行のコードでHTML取得＆解析をしたい場合はWeb::Scraperが便利</a><br />
コードが短い！<br />
ありがとうございます。<br />
ただ、Web::Scraperは私のようなPerl初心者にはインストールが難しかったです。。
<br/>

<h4>補足３</h4>
いろいろ試行錯誤してWeb::Scraperをインストールできたので記事を書いてみました。<br />
誰かのお役に立てば幸いです。<br />
<ul>
	<li><a href="http://dqn.sakusakutto.jp/2010/06/perlcpanwebscraper_1.html">[Perl][CPAN]Web::Scraperのインストールがうまくできない。。。 - DQNEO起業日記</a></li>
	<li><a href="http://dqn.sakusakutto.jp/2010/06/perl_ubuntu904webscraper.html">[Perl] Ubuntu9.04にWeb::Scraperをインストールする方法 -  DQNEO起業日記</a></li>
</ul>]]></description>
            <link>http://dqn.sakusakutto.jp/2010/06/perlhtml.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/06/perlhtml.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Perl</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">HTML::TreeBuilder</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">LWP</category>
            
            <pubDate>Sat, 05 Jun 2010 21:48:45 +0900</pubDate>
        </item>
        
        <item>
            <title>[PHP]date関数の結果が12時間ずれる件について</title>
            <description><![CDATA[<h4>date('Y-m-d h:m:s')の結果が１２時間ずれる！？</h4>

date関数を使うと12時間ずれることがあります。<br />
<br />
例えば、現在時が"2010-05-29 17:00:00"のとき、
<pre><code>$ php -r "echo date('Y-m-d h:m:s');"  

2010-05-29 05:00:00
</code></pre>
<br />
落ち着いて！<br />
自分の書いたコードをよく見て！<br />
<br />
原因は、"h:m:s"の書き方が間違っているからです。<br />
正しくは "<strong style="color:red;">H</strong>:m:s" です！<br />
<br />

<pre><code>$ php -r "echo date('Y-m-d H:m:s');"  

2010-05-29 17:00:00
</code></pre>
<br />
あ～よかった。。。<br />
マニュアルをちゃんと読みましょう。<br />

<a href="http://jp.php.net/manual/ja/function.date.php">http://jp.php.net/manual/ja/function.date.php</a>]]></description>
            <link>http://dqn.sakusakutto.jp/2010/05/phpdate12.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/05/phpdate12.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Sat, 29 May 2010 18:01:24 +0900</pubDate>
        </item>
        
        <item>
            <title>[PHP]Lime.phpの最新バージョンをダウンロードする方法</title>
            <description><![CDATA[<h4>Lime.phpの最新版のソースコードをダウンロードする方法</h4>
Limeというのは、PHPで単体テストを書くためのライブラリです。<br />
ライブラリといってもただのクラスファイルで、lime.phpの１ファイルをインクルードするだけですぐ使えます。<br />
「軽量・シンプル・かんたん」が好きなあなたにはぴったりです。<br />
<br />
さてこのlime.phpの唯一の難点、それはどこからダウンロードすればいいのか分かりにくいこと。<br />
<br />
すばり、場所はここです、ここ！(ver 1.0.9)<br />
↓↓<br />
<a href="http://trac.symfony-project.org/browser/tools/lime/tags/RELEASE_1_0_9/lib/lime.php">http://trac.symfony-project.org/browser/tools/lime/tags/RELEASE_1_0_9/lib/lime.php</a><br />
<br />
バージョンを選ぶならこちら<br />
↓↓<br />
<a href="http://trac.symfony-project.org/browser/tools/lime/tags">http://trac.symfony-project.org/browser/tools/lime/tags</a><br />


<br />
最新の安定版をダウンロードして使いましょう。<br />
2010.5月現在も、安定版の開発は続いているようです。
]]></description>
            <link>http://dqn.sakusakutto.jp/2010/05/phplimephp.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/05/phplimephp.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Lime</category>
            
            <pubDate>Sat, 29 May 2010 14:42:27 +0900</pubDate>
        </item>
        
        <item>
            <title>GNU Screen起動時にセッション名をつける方法</title>
            <description><![CDATA[Screenを起動する際に、下記のようにすればセッションに名前をつけることができます。<br />
<pre><code>screen -S myname</code></pre>

すると、
<pre><code>$ screen -ls

There is a screen on:
  23477.myname(05/28/10 16:21:23)     (Detached)
</code></pre>
のように表示してくれます。

]]></description>
            <link>http://dqn.sakusakutto.jp/2010/05/gnu_screen.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/05/gnu_screen.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Screen</category>
            
            <pubDate>Fri, 28 May 2010 15:59:30 +0900</pubDate>
        </item>
        
        <item>
            <title>Emacs23.2をUbuntuにインストールする方法(ソースをコンパイル)</title>
            <description><![CDATA[<h4>Ubuntu9.04にEmacs23.2をソースコードをコンパイルしてインストールする</h4>

ソースコードをコンパイルしてインストールします。<br />
ほぼ下記の記事と同じやり方でできました。サンクス！<br />
<a href="http://d.hatena.ne.jp/speg03/20090807/1249656276">Emacs 23.1 on CentOS　speg03の日記</a>
<br />
<br />
<pre><code>$ sudo apt-get remove emacs # 既に入っているパッケージをアンインストール
$ wget ftp://ftp.ring.gr.jp/pub/GNU/emacs/emacs-23.2.tar.gz  #ミラーからソースをダウンロード
$ tar xvzf emacs-23.2.tar.gz  # 展開
$ cd emacs-23.2 
$ ./configure --without-x  # Xは使わない
$ make  # コンパイル
$ src/emacs  # 起動して簡単に動作確認
$ sudo make install #
</code></pre>

<h4>うれしかったこと</h4>
UTF8のファイルを編集するときに、文中に「☆」を書いてもエラーにならない！！<br />
Emacs22のときに作った.emacsがそのまま動くか心配だったんですが、今のところちゃんと動いています。<br />
<br/>



]]></description>
            <link>http://dqn.sakusakutto.jp/2010/05/emacs232ubuntu.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/05/emacs232ubuntu.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Emacs</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Ubuntu</category>
            
            
            <pubDate>Fri, 28 May 2010 15:45:28 +0900</pubDate>
        </item>
        
        <item>
            <title>MySQL charとvarcharの違い</title>
            <description><![CDATA[char 固定長<br/>
varchar 可変長<br/>
<br/>
例えばchar(4)の場合だと、'a'が格納されても'abc'が格納されても４バイト占有する。<br />
<br/>
<br />
<a href="http://dev.mysql.com/doc/refman/5.1-olh/ja/char.html">http://dev.mysql.com/doc/refman/5.1-olh/ja/char.html</a>]]></description>
            <link>http://dqn.sakusakutto.jp/2010/05/mysql_charvarchar.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/05/mysql_charvarchar.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">MySQL</category>
            
            
            <pubDate>Mon, 24 May 2010 00:17:05 +0900</pubDate>
        </item>
        
        <item>
            <title>Ubuntu MySQL start, stop, restart(起動、停止、再起動）</title>
            <description><![CDATA[Ubuntu上のMySQLを起動、停止、再起動する方法。
<pre><code>$ sudo /etc/init.d/mysql　start    ←起動
$ sudo /etc/init.d/mysql　stop     ←停止
$ sudo /etc/init.d/mysql　restart  ←再起動</code></pre>

]]></description>
            <link>http://dqn.sakusakutto.jp/2010/05/ubuntu_mysql_start_stop_restar.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/05/ubuntu_mysql_start_stop_restar.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">MySQL</category>
            
            
            <pubDate>Sun, 23 May 2010 23:50:44 +0900</pubDate>
        </item>
        
        <item>
            <title>[MySQL]INT型の最大値(IntegerのMAX値2147483647)を覚える方法</title>
            <description><![CDATA[<h4>MySQLのINT型の最小値と最大値は、-2147483648～2147483647です。</h4>
<br />
<a href="http://dev.mysql.com/doc/refman//5.1/ja/numeric-types.html">http://dev.mysql.com/doc/refman//5.1/ja/numeric-types.html
</a><br />
<br />
この数字を覚えるコツをお教えしましょう。<br />
<br />
<ul>
<li>「2147483647」は、「２１億」と覚えます。</li>

<li>「２１億」を分割して、「１０億＋１０億＋ちょっと」と覚えます。</li>

<li>１０億という数字、身近で聞いたことありませんか？</li>

<li>１０億人。そう、中国の人口とインドの人口です。</li>

<li>２００９年時点で、中国の人口は１３．４億、インドの人口は１１．９億です。</li>

<li>中国＋インドは２５億人です。</li>

<li>中国＋インドは、INT型の最大値を超えるのです。</li>

</ul>

例えば、あなたがTwitterのような大人気サービスを開発したとします。<br/>
その際、会員テーブルのIDをINT型で定義したとします。<br/>
するとどうなるでしょうか。<br />
<br />
<strong>インド人と中国人の全員が会員登録しようとすると、INT型では足りないということです。</strong><br />
<br />
<br />
※　ちなみにPostgresも同じ仕様のようです。<br/>
<a href="http://www.postgresql.jp/document/current/html/datatype-numeric.html">http://www.postgresql.jp/document/current/html/datatype-numeric.html</a>



]]></description>
            <link>http://dqn.sakusakutto.jp/2010/05/mysqlintintegermax2147483647.html</link>
            <guid>http://dqn.sakusakutto.jp/2010/05/mysqlintintegermax2147483647.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">MySQL</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Tips</category>
            
            <pubDate>Sun, 23 May 2010 12:57:31 +0900</pubDate>
        </item>
        
    </channel>
</rss>

