<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>ほのおのクリエイターズ｜Ty</title>
      <link>エイムラックのクリエイター、Tyのブログです。</link>
      <description>ホームページ制作会社のクリエイターたちが、Webにまつわる話題やほか色々な内容を書き記しています。</description>
      <language>ja</language>
      <copyright>Copyright 2008</copyright>
      <lastBuildDate>Thu, 18 Dec 2008 19:02:32 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/?v=4.1</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs>

      
      <item>
         <title>形態素解析エンジン「MeCab」をＣｅｎｔＯＳ5.2にインストールしてみました。</title>
         <description><![CDATA[<p>こんばんは、Ｔｙです。<br />今回は形態素解析のエンジンをCentOsにインストールするお話です。<br />形態素解析とは、Wikipediaによると</p><p>自然言語で書かれた文を形態素<br />（言語で意味を持つ最小単位）の列に分割し、<br />それぞれの品詞を判別する作業を指す。</p><p>&nbsp;</p><p>ということなので、大まかに言うと日本語の文章を品詞分解してくれる<br />システム、ということみたいですね。</p><p>英語などと違って日本語は単語ごとでの区切りがないことや、動詞、助動詞の<br />活用が比較的複雑にできているため、文章から特定の品詞を引っ張り出してくるのも<br />難しそうです。</p><p>実際、こういった形態素解析のツールは他にChasen、KaKasi、JUMANなどがありますが、<br />どれも大学の研究室の方が開発をされています。</p><p>本題に戻って、形態素解析システムのひとつであるMecabのインストールのお話です。<br />今回は、インストールからコマンドラインからMecabを実行できるところまでを記載します。</p><p>まず、Macabのインストールにつきまして、<br />下記のコマンドを実行します。<br />通常のソフト同様、ソースをダウンロードして<br />./configureしてmakeしてmake installする形です。</p><pre class="code">
# cd /usr/local/src<br /># wget <a href="http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-0.97.tar.gz">http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-0.97.tar.gz</a><br /># tar zxfv mecab-0.97.tar.gz<br /># cd mecab-0.97<br /># ./configure --enable-utf8-only --enable-mutex --prefix=/usr<br /># make<br /># make check<br /># make install</pre><p>もし、make checkの際に3つ中2つのテストに失敗した、というような表示が出ても、<br />Mecab単体のインストールと実行はできるようです。</p><p>つぎに、Mecabで形態素解析を実行する際に使用する辞書をインストールします。<br />辞書自体はいくつかある中からどれかをインストールするようですが、今回は<br />Mecabの公式サイトで推奨されているmecab-ipadicをインストールすることにします。<br />インストール手順は下記の通りです。</p><pre class="code">
# cd /usr/local/src<br /># wget <a href="http://jaist.dl.sourceforge.net/sourceforge/mecab/mecab-ipadic-2.7.0-20070801.tar.gz">http://jaist.dl.sourceforge.net/sourceforge/mecab/mecab-ipadic-2.7.0-20070801.tar.gz</a><br /># tar -zxvf mecab-ipadic-2.7.0-20070801.tar.gz<br /># cd mecab-ipadic-2.7.0-20070801<br /># ./configure --with-charset=utf8 --prefix=/usr<br /># make<br /># sudo make install<br /># mecab</pre><p>最後の行でMecabを実行した際に、<br />&nbsp;[ifs] no such file or directory: /usr/local/etc/mecabrc <br />というエラーが発生する場合は、mecabrcを指定の場所にコピーします。</p><pre class="code">
# cp /usr/etc/mecabrc /usr/local/etc/</pre><p><br />Mecabがコマンドラインから実行できるようになったら、早速文章を流し込んでみます。<br />utr8.txtというテキストファイルに適当な日本語文を保存しておき、下記のコマンドを実行します。</p><pre class="code">
cat utf8.txt | mecab</pre><p>すると、下記のような出力が得られます。<br />ＣＳＶ形式になっているので、Excelなどに貼り付けると<br />見やすいかと思いますが、日本語の文章が品詞ごとに分解されているのがわかります。</p><pre class="code">
タブ    名詞,一般,*,*,*,*,タブ,タブ,タブ<br />の&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 助詞,連体化,*,*,*,*,の,ノ,ノ<br />ギャラリー&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 名詞,一般,*,*,*,*,ギャラリー,ギャラリー,ギャラリー<br />に&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 助詞,格助詞,一般,*,*,*,に,ニ,ニ<br />は&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 助詞,係助詞,*,*,*,*,は,ハ,ワ<br />、&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 記号,読点,*,*,*,*,、,、,、<br />文書&nbsp;&nbsp;&nbsp; 名詞,一般,*,*,*,*,文書,ブンショ,ブンショ<br />全体&nbsp;&nbsp;&nbsp; 名詞,副詞可能,*,*,*,*,全体,ゼンタイ,ゼンタイ<br />の&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 助詞,連体化,*,*,*,*,の,ノ,ノ<br />体裁&nbsp;&nbsp;&nbsp; 名詞,一般,*,*,*,*,体裁,テイサイ,テイサイ<br />に&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 助詞,格助詞,一般,*,*,*,に,ニ,ニ<br />合わせ&nbsp; 動詞,自立,*,*,一段,連用形,合わせる,アワセ,アワセ<br />て&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 助詞,接続助詞,*,*,*,*,て,テ,テ<br />調整&nbsp;&nbsp;&nbsp; 名詞,サ変接続,*,*,*,*,調整,チョウセイ,チョーセイ<br />する&nbsp;&nbsp;&nbsp; 動詞,自立,*,*,サ変・スル,基本形,する,スル,スル<br />ため&nbsp;&nbsp;&nbsp; 名詞,非自立,副詞可能,*,*,*,ため,タメ,タメ<br />の&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 助詞,連体化,*,*,*,*,の,ノ,ノ<br />アイテム&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 名詞,一般,*,*,*,*,アイテム,アイテム,アイテム<br />.<br />.<br />.<br /></pre><p>MecabとSennaというツールを組み合わせることで、この形態素解析エンジンを利用して<br />MySQL上で日本語文の検索ができるらしいのですが、こちらはまたの機会に記載できればと思います。</p><p>参考サイト</p><p class="MsoNormal" style="margin: 0mm 0mm 0pt"><span lang="EN-US" style="font-size: 8pt"><font face="Century"><a href="http://mecab.sourceforge.net">http://mecab.sourceforge.net</a></font></span></p><p>&nbsp;</p>]]></description>
         <link>http://honoo-no.com/creators/2008/12/18_190232.html</link>
         <guid>http://honoo-no.com/creators/2008/12/18_190232.html</guid>
         <category>001_クリエイターズブログ</category>
         <pubDate>Thu, 18 Dec 2008 19:02:32 +0900</pubDate>
      </item>
      
      <item>
         <title>ブログ記事通知サービス「読んでミー。」リリース！！</title>
         <description><![CDATA[<p>こんばんは、最近ブログが滞ってしまっているTyです。<br />申し訳ありませんでした。</p><p>今回は弊社の新サービスを<br />ご紹介させていただきます。<br />サービス名は「読んでミー。」<br />URLも　<a href="http://yonde.me/">http://yonde.me/</a>　です。<br />&nbsp;</p><p>&nbsp;</p><p>ブログを運営されている方、もしくはブログシステムを利用した<br />サイトを運営されている方向けにブログの新着記事情報をメール配信する<br />システムを提供するASPとなっております。</p><p>RSSのURL(例： <a href="http://honoo-no.com/feed/atom.xml">http://honoo-no.com/feed/atom.xml</a> など)<br />を登録することで下記のページのような<br />メールアドレス入力フォームのHTMLソースが自動生成され、<br />そちらのフォームからメールアドレスを入力すると、<br />ブログの新着記事情報が配信される形となっております。</p><form action="http://yonde.me/reader/user/externalcommit.html " method="post" target="_blank">ほのおのクリエイターズブログの更新情報をメールでお届けいたします。<br />メールアドレスをご入力ください。<br /><input id="rss_url_id" type="hidden" name="rss_url_id" value="6" /> <input id="email" maxlength="255" size="30" name="email" type="text" /> <input id="submit_mode_1" type="radio" checked="checked" name="submit_mode" value="join" /> <label for="submit_mode_1">購読</label> <input id="submit_mode_2" type="radio" name="submit_mode" value="resign" /> <label for="submit_mode_2">解除</label> <input type="submit" value="決定" /></form><p><a target="_blank" href="http://yonde.me/"><img title="ブログ記事通知サービス「読んでミー。」" alt="ブログ記事通知サービス「読んでミー。」" border="0" src="http://yonde.me/img/logo_mini.gif" /> </a></p><p>2008年現在、RSSリーダーより普及していると思われる<br />電子メールで記事情報を配信することにより、これまでより<br />低い敷居でユーザーが更新情報を確認できることを目的としております。</p><p>また、ブログ運営者様側の導入に関しましても、会員登録（無料）後に、<br />現在配信されているRSSとブログのカテゴリを登録するだけで<br />即設置可能、というお手軽なサービスとなっております。</p><p>また、現在登録されているブログと、実際に生成される<br />入力フォームもサイト上から閲覧できますので、<br />マメにブログを更新されている方も、私のようにゆったり記事を<br />書いておられる方も、一度覗いてみていただければ、と思います。</p>]]></description>
         <link>http://honoo-no.com/creators/2008/12/01_231214.html</link>
         <guid>http://honoo-no.com/creators/2008/12/01_231214.html</guid>
         <category>001_クリエイターズブログ</category>
         <pubDate>Mon, 01 Dec 2008 23:12:14 +0900</pubDate>
      </item>
      
      <item>
         <title>ブックマーク「ASP・SaaSナビ」</title>
         <description><![CDATA[<p>こんばんは、ここ一週間ほどOpenOfficeでドキュメント作成が続き、<br />マス目を見るのに飽きてきたあたりで息抜きがてらに<br />他の会社ではどんなサービスを立ち上げてるのかを勉強、<br />というよりはなんとなく覗いて回っております、Tyです。</p><p>今回ご紹介するホームページはASP、SaaSといったサービスを<br />ジャンルごとに纏め上げ、閲覧ついでに同じジャンルのサービスを<br />行っている業者宛に一括で資料請求も出せてしまう、という<br />導入前の比較検討を支援するサイトです。</p><p>ASP、SaaSの数が増え続け、ついに筆まめ<br />までもがオンライン化するこのご時勢、各ジャンルごとに<br />こんなにたくさんのサービスがあったんだ、と思うくらいに<br />紹介されているサービス数が多いです。</p><p>目移りしてきたら片っ端から問い合わせてみては？とでも言うように<br />サービス一覧の横にはチェックボックスがついており、チェックを入れてから<br />資料請求のボタンを押すと資料請求だけでなく目的と要望をまとめたものを<br />一括で問い合わせることもできるようです。</p><p>これにより、ページだけでなく、資料請求の結果や要望に対するフィードバックまで<br />比較できるようになっているようです。</p><p>導入するにあたっての要望、要件はある程度まとまっているが、<br />何を選んだらいいかわからない、といった場合に使えそうなサイトです。</p>]]></description>
         <link>http://honoo-no.com/creators/2008/11/06_193653.html</link>
         <guid>http://honoo-no.com/creators/2008/11/06_193653.html</guid>
         <category>001_クリエイターズブログ</category>
         <pubDate>Thu, 06 Nov 2008 19:36:53 +0900</pubDate>
      </item>
      
      <item>
         <title>SymfonyのsfSslRequirementPluginを試してみる</title>
         <description><![CDATA[<p>こんばんは。Tyです。</p><p>今回はSymfonyの<font color="#0000ff"><span class="searchword0">sfSslRequirementPlugin</span></font>を試してみました、というお話です。</p><p>これは、Symfonyで特定のアクションへのアクセスの場合は、強制的に</p><p>httpsでの接続先にリダイレクトする、というプラグインです。</p><p>&nbsp;</p><p>まずは、開発環境のApache（xampp）の準備から。</p><p>xamppの場合、フォルダ「xampp\apache\conf\extra」の</p><p>中のhttpd-ssl.confを書き換えることで、SSL接続時の設定を</p><p>書くことができます。</p><p>通常のhttpd.confの設定と同じようにSymfonyプロジェクトのフロントコントローラ</p><p>があるフォルダをDocumentRootに設定します。</p><p>http,httpsの両方でプロジェクトにアクセスできるようになったら</p><p>下記のコマンドでプラグインをインストールします。</p><pre class="code">
symfony plugin-install http://plugins.symfony-project.com/sfSslRequirementPlugin
</pre><p>インストールが完了したらアプリごとのconfigフォルダのfilter.ymlに</p><p>下記を追加してプラグインを読み込む設定をします。</p><p>&nbsp;</p><pre class="code">
sfSslRequirement:
  class: sfSslRequirementFilter
</pre><p>これでプラグインを使う準備は完了です。</p><p>あとはsecurity.ymlでSSLでアクセスさせたいアクションに下記の設定を加えるだけです。</p><p>&nbsp;</p><pre class="code">
action: 
 require_ssl: true
</pre><p>actionはあくまでも例です。</p><p>この設定で、「action」というアクションにアクセスしようとすると</p><p>httpsでの接続にリダイレクトされます。</p><p>&nbsp;</p><p>ログインしているときのみ強制的にSSL接続させたいときに使用します。</p><p>今回試したSymfonyのバージョンは1.0.18です。</p><p>&nbsp;</p><p>参考サイト</p><pre id="line1"><a href="http://ameblo.jp/icz-tech/entry-10032295776.html">SymfonyでSSL sfSslRequirementPlugin｜100年続く会社を作るアイシーズのエンジニアブログ</a></pre><p>&nbsp;</p><p>&nbsp;</p>]]></description>
         <link>http://honoo-no.com//symfonysfsslrequirementplugin.html</link>
         <guid>http://honoo-no.com//symfonysfsslrequirementplugin.html</guid>
         <category></category>
         <pubDate>Fri, 31 Oct 2008 20:47:37 +0900</pubDate>
      </item>
      
      <item>
         <title>NFSことはじめ</title>
         <description><![CDATA[<p>こんばんは、Tyです。</p><p>今回はネットワーク上のフォルダをローカル環境に</p><p>マウントする際に用いるNFSの設定の仕方をご紹介します。</p><p>&nbsp;</p><p>マウントとは、通常CD-ROMドライブなどの周辺機器を</p><p>認識させ、操作可能にすることをさします。</p><p>&nbsp;</p><p>例えば、WindowsでF:ドライブがCD-ROMドライブとして認識されている場合、</p><p>CD-ROMドライブがF:という場所にマウントされている、といった具合です。</p><p>&nbsp;</p><p>Linuxでは、NFSというシステムを使うことでCD-ROMなどのドライブだけでなく、</p><p>ネットワーク上のほかのサーバーの特定のフォルダをマウントさせ、</p><p>フォルダの中身を共有させることが可能です。</p><p>&nbsp;</p><p>ここでは、例としてLAN内の二台のサーバーのディレクトリを共有する場合の設定を</p><p>記述します。OSはCentOS5.2です。</p><p>&nbsp;</p><p>■　マウントさせるフォルダのサーバー側の設定<br />（１） nfs-utilsのインストール<br />NFSがインストールされていない場合は、まずyumコマンドを実行して<br />インストールします。</p><pre class="code">
# yum install nfs-utils
</pre><p>&nbsp;</p><p>（２）共有ディレクトリの指定<br /><br />共有させたいディレクトリの場所を指定します。</p><p>/etc/exports というに下記の一行を追加します。</p><p>ここでは、例として「/home/share」というフォルダを共有させます。</p><p>IPアドレスの設定はLANの設定によって異なります。</p><p>&nbsp;</p><pre class="code">
/home/share   192.168.1.0/255.255.255.0(rw,async,no_root_squash)
</pre><p>（３）LAN内のサーバーへのアクセス設定</p><p>LAN内の別のサーバーからアクセスできるように設定します。</p><p>/etc/hosts.deny に下記の内容を追加します。</p><pre class="code">
portmap: ALL
locked: ALL
rquotad: ALL
mount: ALL
statd: ALL
</pre><p>/etc/hosts.allow に下記の内容を追加します。</p><pre class="code">
portmap: 192.168.1.0/255.255.255.0
locked: 192.168.1.0/255.255.255.0
rquotad: 192.168.1.0/255.255.255.0
mount: 192.168.1.0/255.255.255.0
statd: 192.168.1.0/255.255.255.0
</pre><p>（４）NFSサービスの起動<br /><br />NFSサービスを起動するため、下記のコマンドを入力します。</p><pre class="code">
# /sbin/service portmap start
# /sbin/service nfslock start
# /sbin/service nfs start
</pre><p>下記のコマンドでNFSサービスを自動起動に設定します。</p><pre class="code">
# /sbin/chkconfig portmap on
# /sbin/chkconfig nfslock on
# /sbin/chkconfig nfs on
</pre><p>■　フォルダをマウントするサーバー側の設定</p><p>（１）共有ディレクトリのマウント</p><p>上記で設定したフォルダをマウントするには、下記のコマンドを使用します。</p><p>ここでは、例として「/home/local/mount」にマウントさせます。</p><p>また、マウントさせるフォルダのサーバーのIPアドレスは</p><p>「192.168.1.10」とします。</p><pre class="code">
# mount -t nfs 192.168.1.10:/home/share /home/local/mount
</pre><p>&nbsp;</p><p>また、サーバーの起動時に自動的にマウントを行う場合は</p><p>/etc/fstab というファイルに下記の１行を追加します。</p><p>&nbsp;</p><pre class="code">
192.168.1.10:/home/share  /home/local/mount             nfs     defaults 0 0
</pre><p>以上の設定でIPアドレス「192.168.1.10」のサーバーの</p><p>/home/share というディレクトリ中身を/home/local/mountフォルダ上で</p><p>操作できるようになります。</p>]]></description>
         <link>http://honoo-no.com/creators/2008/10/23_211153.html</link>
         <guid>http://honoo-no.com/creators/2008/10/23_211153.html</guid>
         <category>001_クリエイターズブログ</category>
         <pubDate>Thu, 23 Oct 2008 21:11:53 +0900</pubDate>
      </item>
      
      <item>
         <title>Windows FTPコマンドでバッチ処理</title>
         <description><![CDATA[<p>こんばんは、Tyです。</p><p>今回はFTPコマンドを用いた簡易バッチ処理について書きます。</p><p>Windowsのftp.exeはテキストファイルにログインからファイルの転送までの</p><p>一連の流れを書いてインポートすることができるので、</p><p>テキストファイルにルーチンの処理を書いてそれを実行させるような</p><p>バッチファイルを作成すれば簡単なFTP転送程度であれば自動化できる、というお話です。</p><p>&nbsp;</p><p>まず、ためしにログイン、ログアウトするだけのコマンドをテキストファイルに書いて</p><p>FTPコマンドに読み込ませて見ましょう。</p><pre class="code">
open 192.168.1.1
ftpuser
ftppass
bye
</pre><p>上記のようなテキストファイルを作成して、ftp.txtとして保存します。</p><p>但し、192.168.1.1の部分にはFTPサーバーのホスト名、</p><p>ftpuser,ftppassにはそれぞれユーザー名とパスワードが入ります。</p><p>次に、コマンドプロンプトでテキストファイルのあるフォルダに移動して</p><p>下記のコマンドを実行します。</p><pre class="code">
ftp.exe -s:ftp.txt
</pre><p>すると、ftp.exeがテキストの中身を一行ずつ読み込んでコマンドとして実行してくれます。</p><pre class="code">
ftp> open 192.168.1.1
192.168.1.1 に接続しました。
220 (vsFTPd 2.0.5)
ユーザー (192.168.1.1:(none)):
331 Please specify the password.

230 Login successful.
ftp&gt; bye
221 Goodbye.
</pre><p>例としてuploadというフォルダの下にあるファイルをアップロードする</p><p>バッチを下記に記載します。但し、uploadフォルダの中にディレクトリが</p><p>あった場合は無視されます。ディレクトリを丸ごとアップロードさせる場合は、</p><p>再帰的に実行される処理を書く必要があります。</p><pre class="code">
SET hostname=192.168.1.1
SET user=ftpuser
SET pass=ftppass
SET directory=uploads

::フォルダの中身のファイル一覧を書き出す。
dir %directory% /a:-d /b &gt; list.txt

::FTPコマンドファイルの書き込み
echo open %hostname%&gt; ftp.txt
echo %user%&gt;&gt; ftp.txt
echo %pass%&gt;&gt; ftp.txt
echo bin &gt;&gt; ftp.txt
echo prompt &gt;&gt; ftp.txt
echo cd / &gt;&gt; ftp.txt
for /f &quot;delims=&quot; %%i in (list.txt) do call :writebody &quot;%%i&quot;
echo bye &gt;&gt; ftp.txt

::FTPコマンドファイルに従ってFTPコマンド実行
%SystemRoot%\System32\ftp.exe -s:ftp.txt
    
::処理終了
exit /b

::callで呼ばれる処理
:writebody
          echo put &quot;%directory%\%~1&quot; &gt;&gt;ftp.txt
    exit /b


</pre>]]></description>
         <link>http://honoo-no.com/creators/2008/10/16_213235.html</link>
         <guid>http://honoo-no.com/creators/2008/10/16_213235.html</guid>
         <category>001_クリエイターズブログ</category>
         <pubDate>Thu, 16 Oct 2008 21:32:35 +0900</pubDate>
      </item>
      
      <item>
         <title>Windows FTPコマンドことはじめ</title>
         <description><![CDATA[<p>こんばんは、Tyです。</p><p>FTPクライアントは普段<a href="http://www.tab2.jp/~winscp/">WinSCP</a>か<a href="http://www2.biglobe.ne.jp/~sota/">FFFTP</a>のどちらかを</p><p>使っているのですが、定期的にバッチ処理でファイルを</p><p>転送するためにFTPコマンドを使うことにしました。</p><p>&nbsp;</p><p>Windowsの場合は下記のフォルダにftp.exeがあるので、</p><p>こちらを使ってみます。</p><pre class="code">
%SystemRoot%\System32\ftp.exe
</pre><p>まずは試しに起動してみます。</p><p>適当なフォルダでコマンドプロンプトを開いて</p><p>上記のftp.exeを起動します。</p><pre class="code">
C:\ty\memos\bbt\ftp\videos>%SystemRoot%\System32\ftp.exe
ftp&gt;
</pre><p>この状態で open {HOST}と打ち込むと指定されたサーバーに接続します。</p><p>ユーザー認証がかかっている場合はこの後にユーザー名とパスワードを</p><p>入力します。</p><pre class="code">
ftp> open 192.168.3.76
192.168.3.76 に接続しました。
220 (vsFTPd 2.0.5)
ユーザー (192.168.3.76:(none)): ftpuser
331 Please specify the password.
パスワード:
230 Login successful.
ftp&gt;
</pre><p>上記の形でログインできたら実際にコマンドを打って見ます。</p><p>仮にホストのOSがLinuxの場合、おなじみのpwdコマンドとlsコマンドで</p><p>自分の現在のディレクトリとその中のファイル一覧を見ることができます。</p><pre class="code">
ftp> pwd
257 &quot;/&quot;
ftp&gt; ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
20080908
20081008
20081009
226 Directory send OK.
ftp: 30 バイトが受信されました 0.00秒 10.00KB/秒。
ftp&gt;
</pre><p>cdコマンドでカレントディレクトリが変更できます。</p><pre class="code">
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
testfile
226 Directory send OK.
ftp: 10 バイトが受信されました 0.00秒 10.00KB/秒。
ftp&gt;
</pre><p>ローカルのカレントフォルダとその中のファイル一覧を</p><p>表示する場合は!cdと!dirと入力します。</p><p>カレントフォルダの変更はlcdでも可能です。</p><pre class="code">
ftp> !cd
C:\ty\memos\bbt\ftp\videos
ftp&gt; !dir
 ドライブ C のボリューム ラベルは OS です
 ボリューム シリアル番号は 8206-0DDC です

 C:\ty\memos\bbt\ftp\videos のディレクトリ

2008/10/09  20:49    &lt;DIR&gt;          .
2008/10/09  20:49    &lt;DIR&gt;          ..
2008/10/09  16:17    &lt;DIR&gt;          20080908
2008/10/09  16:18    &lt;DIR&gt;          20081008
2008/10/09  17:09    &lt;DIR&gt;          20081009
2008/10/09  20:46             2,359 filetrans.zip
2008/10/09  16:17    &lt;DIR&gt;          old
               1 個のファイル               2,359 バイト
               6 個のディレクトリ   6,701,211,648 バイトの空き領域
ftp&gt;
</pre><p>getコマンドでホストのファイルをダウンロードできます。</p><p>複数指定する場合はmgetを使います。</p><pre class="code">
ftp> get testfile
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for testfile (2003555 bytes).
226 File send OK.
ftp: 2003555 バイトが受信されました 0.14秒 14518.51KB/秒。
ftp&gt; 
</pre><p>ファイルをアップロードするときはputコマンドを用います。</p><p>複数指定する場合はmputコマンドを使います。</p><pre class="code">
ftp> mput testfile filetrans.zip
mput testfile? y
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 File receive OK.
ftp: 2003555 バイトが送信されました 0.07秒 30823.92KB/秒。
mput filetrans.zip? y
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 File receive OK.
ftp: 2359 バイトが送信されました 0.02秒 98.29KB/秒。
ftp&gt;
</pre><p>終了するときは、byeもしくはquitで抜けられます。</p><pre class="code">
ftp> quit
221 Goodbye.

C:\ty\memos\bbt\ftp\videos&gt;
</pre><p>次回はこのことを踏まえてバッチ処理でのFTP転送の実装について書きたいと思います。</p>]]></description>
         <link>http://honoo-no.com/creators/2008/10/09_205659.html</link>
         <guid>http://honoo-no.com/creators/2008/10/09_205659.html</guid>
         <category>001_クリエイターズブログ</category>
         <pubDate>Thu, 09 Oct 2008 20:56:59 +0900</pubDate>
      </item>
      
      <item>
         <title>[Symfony] Criteria でテーブルに別名を指定する</title>
         <description><![CDATA[<p>こんばんは、Tyです。<br />データベースのSelect文実行の際に、テーブルの名前に<br />別の名前を table_name as A 等と指定する方法がありますが、<br />Criteriaで同じような表現を実装させるためにはどうするか、<br />といったお話です。<br /><br />たとえば、<br /><br />SELECT * FROM user as A Left Join user as B on A.company_id;<br /><br />というように、userというテーブルに別名を指定して自分自身を<br />Joinさせるような処理を実装する場合は、<br />addAliasという関数を用いて別名を追加して、<br />Peerオブジェクトのaliasで指定された別名を呼び出します。<br /><br />//addAlias('指定したい名前', '実際のテーブル名');<br />$c = new Criteria();<br />$c-&gt;addAlias('A', UserPeer::TABLE_NAME);<br />$c-&gt;addAlias('B', UserPeer::TABLE_NAME);<br /><br />//alias('指定した名前', カラム名)<br />$c-&gt;addJoin(UserPeer::alias('u1', UserPeer::ID), UserPeer::alias('u1', UserPeer::COMPANY_ID), Criteria::LEFT_JOIN);<br />$rs = UserPeer::doSelectRS($c);</p>]]></description>
         <link>http://honoo-no.com/creators/2008/09/25_211603.html</link>
         <guid>http://honoo-no.com/creators/2008/09/25_211603.html</guid>
         <category>001_クリエイターズブログ</category>
         <pubDate>Thu, 25 Sep 2008 21:16:03 +0900</pubDate>
      </item>
      
      <item>
         <title>正規表現ことはじめ</title>
         <description><![CDATA[<p>こんにちは、Tyです。</p><p><br />今回は正規表現の入門的なお話です。<br />正規表現なんて名前からして教科書チックで<br />なんとなく苦手意識を持っていたのですが、<br />いざmod_rewriteやプログラム上でつかってみると<br />すごく便利な仕組みなので、これを期にすこしずつ<br />正規表現も勉強しようかな、と思います。</p><p>まず、正規表現って何か？というと<br />ある文字列の中から一定の条件（パターン）を満たす<br />部分を探すための仕組みです。<br /><br />というとなんだかよくわからないのですが、<br />たとえば、ユーザー登録のプログラムを書いていて、<br />「ログインIDはアルファベットと数字以外は禁止したい」<br />なんて思ったときに、アルファベットと数字だけで表現された<br />文字列を表す正規表現(^[a-zA-Z0-9]*$)に、<br />入力値がマッチした場合にのみログインIDを登録する、<br />といったような使い方があります。<br /><br />正規表現は主に<br />「どのような文字」が「どれだけ繰り返される」のかという<br />指定の組み合わせで成り立っています。<br /><br />例えば、メールアドレスですと、大まかには<br /><br />（１）「半角英数文字か禁止されていない半角記号」<br />が「何回か」繰り返される。<br /><br />（２）「@(アットマーク)」が一回だけ入る。<br /><br />（３）「半角英数文字か禁止されていない半角記号」<br />が「何回か」繰り返される。<br /><br />という三つの指定の組み合わせでそれらしい表現ができます。<br />もっと厳密にするなら、@の後に必ずピリオドを挟む、<br />などの記述を加えることになります。<br /><br /><br />「どのような文字」かを指定するには主に下記の表現を用います。</p><pre class="code">
. (ピリオド) 何でもいいから一文字
^ 行頭
$ 行末
\n 改行
\ エスケープ
[a-z] aからzまでのどれか
</pre><p>[]の表現に関しては文字コード順での検索となります。<br />[a-zA-Z0-9]というようにつなげることもできます。<br /><br /><br />「どれだけ繰り返される」かを指定する場合は下記の<br />表記を用います。* と + はわりとよく使うかと思います。<br />&nbsp;</p><pre class="code">
+ 1回以上
* ０回以上（あってもなくてもＯＫ）
{n,m} n以上m以下
? 直前の1文字があってもなくてもＯＫ
</pre><p>その他でよく使うものとしては下記のＯＲ表現があるかと。</p><pre class="code">
( a|b ) aかbのどちらか
</pre><p>正規表現の確認は<a href="http://www.vector.co.jp/soft/winnt/writing/se047993.html">EmEditor</a>というエディタがお勧めです。<br />検索のときに基本的な正規表現のヘルパーがあることと、<br />ヒットした文字列をマークアップしてくれるのでどの部分に<br />マッチしたかが見やすいです。<br /><br /><br />Web関係でよく使う正規表現としては下記のような<br />ものがあるかと思います。<br />&nbsp;</p><pre class="code">
任意の文字列
.*

メールアドレス
([0-Z\._-]+)@([0-Z\._-]+)\.([0-Z\._-]+)

URL
(https?|ftp)(://[-_.!~*'()a-zA-Z0-9;/?:@&amp;=+$,%#]+)
</pre><p>※Javaなどのプログラムで正規表現を用いる場合は上記の<br />　表現のなかの\や/などをエスケープする必要があります。<br /><br />ただし、上記の表記法はあくまでも一例で、特にメールアドレスやＵＲＬ<br />を正確にマッチさせるための正規表現の書き方はたくさんあるので、<br />どれが一番正確か、というのは大変難しいです。<br /><br />そもそもかな文字ＵＲＬのように制約がゆるくなれば表記法も変わってしまうので、<br />最終的には自分が作っているものではこんな制約が必要だ、という視点で<br />判断するとよいかと思われます。</p>]]></description>
         <link>http://honoo-no.com/creators/2008/09/19_140948.html</link>
         <guid>http://honoo-no.com/creators/2008/09/19_140948.html</guid>
         <category>001_クリエイターズブログ</category>
         <pubDate>Fri, 19 Sep 2008 14:09:48 +0900</pubDate>
      </item>
      
      <item>
         <title>SVN差分抽出ツール「im-svn-diff-exporter」</title>
         <description><![CDATA[<p>SVN差分抽出ツール「im-svn-diff-exporter」<br /><br />こんにちは、Tyです。<br />以前からSubversionでリビジョン間の<br />差分のファイルを抽出する方法を<br />探していたのですが、<br />先日ようやく見つけたのが「im-svn-diff-exporter」<br />というJavaで作られたツールです。</p>]]></description>
         <link>http://honoo-no.com/creators/2008/09/04_182734.html</link>
         <guid>http://honoo-no.com/creators/2008/09/04_182734.html</guid>
         <category>001_クリエイターズブログ</category>
         <pubDate>Thu, 04 Sep 2008 18:27:34 +0900</pubDate>
      </item>
      
   </channel>
</rss>
