<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6943890639176107507</id><updated>2011-11-28T09:40:56.561+09:00</updated><category term='Python'/><category term='Xen'/><category term='MySQL'/><category term='ARToolKit'/><category term='Xcode'/><category term='REST'/><category term='English'/><category term='OpenCV'/><category term='ffmpeg'/><category term='iSCSI'/><category term='Perl'/><category term='ZABBIX'/><category term='DNRH-001'/><category term='Leopard'/><category term='misc'/><category term='c'/><category term='Catalyst'/><category term='Amazon S3'/><category term='iPhone'/><category term='GCDrawKit'/><category term='Ruby'/><category term='Linux'/><category term='Cacti'/><category term='Hadoop'/><category term='Mac'/><category term='Flex'/><category term='programing'/><category term='Virtualbox'/><category term='Emacs'/><category term='Inkscape'/><category term='Apache'/><category term='Cobbler'/><category term='DD-WRT'/><category term='Dropbox'/><category term='XS'/><category term='Moose'/><category term='MacPorts'/><title type='text'>hiroki_kana 開発日記</title><subtitle type='html'>hiroki_kanaの開発に関する備忘録などなど。</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-7518062527122991187</id><published>2009-11-08T13:15:00.002+09:00</published><updated>2009-11-08T13:17:17.736+09:00</updated><title type='text'>ブログ移行しました</title><content type='html'>せっかく自宅サーバがあるので自宅サーバに移行しました。&lt;br /&gt;&lt;br /&gt;hiroki.kanaの日常&lt;br /&gt;&lt;a href="http://blog.hirokikana.com/"&gt;http://blog.hirokikana.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;これからはこのブログにこちらではなく、新しいブログに書いていこうかと思います。&lt;br /&gt;今後ともよろしくお願いします。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-7518062527122991187?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/7518062527122991187/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=7518062527122991187' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7518062527122991187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7518062527122991187'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/11/blog-post.html' title='ブログ移行しました'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-605867100991747329</id><published>2009-10-04T20:50:00.006+09:00</published><updated>2009-10-04T21:33:17.296+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Catalyst'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Catalystアプリと設定ファイルを共通化</title><content type='html'>作ろうとしているやつがちょうどCatalystで作り直そうかと思っていたのでひとまず、設定ファイルをCatalystから切り離して、Catalyst以外のアプリからも読み込めるようにしました。&lt;br /&gt;&lt;br /&gt;まず、作成するアプリは下記のようなライブラリ構成です。&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;MyApp::API　　　アプリケーションのロジック部です&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MyApp::Web　　　Catalyst関連のものです&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MyApp::Utils　　ユーティリティ。Catalystから切り離す。&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MyApp::Config　 設定ファイルに関するクラス&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MyApp::Log　　　ログを出力するクラス&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;ともあれ、catalyst.plでひな形を作ります。&lt;br /&gt;&lt;pre class="terminal"&gt;$ catalyst.pl MyApp::Web&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;まずlib/MyApp/Config.pmを下記のように作成します。&lt;br /&gt;&lt;pre name="code" class="perl"&gt;package MyApp::Config;&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;use warnings;&lt;br /&gt;use Config::Multi;&lt;br /&gt;use MyApp::Utils;&lt;br /&gt;use base 'Class::Singleton';&lt;br /&gt;&lt;br /&gt;our $FILES ;&lt;br /&gt;sub _new_instance {&lt;br /&gt;    my $cm = Config::Multi-&gt;new(&lt;br /&gt;        {&lt;br /&gt;        dir =&gt; MyApp::Utils::path_to('conf')-&gt;stringify ,&lt;br /&gt;        app_name    =&gt; 'myapp' ,&lt;br /&gt;        extension   =&gt; 'yml'&lt;br /&gt;    });&lt;br /&gt;    my $config = $cm-&gt;load();&lt;br /&gt;    $FILES = $cm-&gt;files;&lt;br /&gt;    return $config;&lt;br /&gt;}&lt;br /&gt;sub files {&lt;br /&gt;    return $FILES;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;1;&lt;/pre&gt;&lt;br /&gt;参考サイトのコピペです。すいませんすいません。&lt;br /&gt;ここで設定したapp_nameとextensionが設定ファイル名に使用されます。&lt;br /&gt;上記設定だとmyapp_web.ymlになります。&lt;br /&gt;&lt;br /&gt;次にMyApp::Utils。&lt;br /&gt;&lt;pre name="code" class="perl"&gt;package MyApp::Utils;&lt;br /&gt;&lt;br /&gt;use warnings;&lt;br /&gt;use strict;&lt;br /&gt;use Path::Class::Dir;&lt;br /&gt;use Path::Class::File;&lt;br /&gt;use FindBin;&lt;br /&gt;&lt;br /&gt;sub home {&lt;br /&gt;    return $ENV{MYAPP_HOME} ||  Path::Class::Dir-&gt;new(  $FindBin::Bin, './../' );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub path_to {&lt;br /&gt;    my ( @path ) = @_;&lt;br /&gt;    my $path = Path::Class::Dir-&gt;new( &amp;home , @path );&lt;br /&gt;    warn $path;&lt;br /&gt;    if ( -d $path ) { return $path }&lt;br /&gt;    else { return Path::Class::File-&gt;new( &amp;home, @path ) }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;1;&lt;/pre&gt;&lt;br /&gt;これも参考サイトのコピペです。すいませんすいません。&lt;br /&gt;このメソッド、ログのところでも少し使ったので今後もたぶん使う&amp;拡張することになるかと思います。&lt;br /&gt;&lt;br /&gt;つぎに、Config用のCatalystプラグインです。&lt;br /&gt;MyApp/Pluginディレクトリを作成して、Config.pmファイルをつくります。&lt;br /&gt;Catalyst 5.8でやったのでNEXTじゃないやつ(名前なんだっけ?)を使いました。&lt;br /&gt;&lt;pre name="code" class="perl"&gt;package MyApp::Plugin::Config;&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;use warnings;&lt;br /&gt;use MyApp::Config;&lt;br /&gt;use MRO::Compat;&lt;br /&gt;&lt;br /&gt;our $VERSION ='0.01';&lt;br /&gt;&lt;br /&gt;sub setup {&lt;br /&gt;    my $c = shift;&lt;br /&gt;    my $config = MyApp::Config-&gt;instance();&lt;br /&gt;&lt;br /&gt;    if( $c-&gt;debug ) {&lt;br /&gt;        my $files = MyApp::Config-&gt;files();&lt;br /&gt;        for my $file ( @{$files} ) {&lt;br /&gt;            $c-&gt;log-&gt;debug( 'Load Config ' . $file );&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    $c-&gt;config( $config ) ;&lt;br /&gt;    $c-&gt;next::method( @_ );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;1;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;そしてCatalystアプリ本体のlib/MyApp/Web.pmに下記を追加します。&lt;br /&gt;&lt;pre name="code" class="perl"&gt;our $VERSION = '0.01';&lt;br /&gt;use Catalyst qw/+MyApp::Plugin::Config/;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;設定ファイルをconf/myapp_web.ymlに作成します。&lt;br /&gt;&lt;pre name="code" class="yaml"&gt;---&lt;br /&gt;test: hogehoge&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;これでCatalystから設定ファイルの内容が拾えればOKです。&lt;br /&gt;lib/MyApp/Web/Controller/Root.pmを下記のように修正して、テストサーバーを上げて画面にhogehogeと表示されれば成功です。&lt;br /&gt;&lt;pre name="code" class="perl"&gt;sub index :Path :Args(0) {&lt;br /&gt;    my ( $self, $c ) = @_;&lt;br /&gt;&lt;br /&gt;    # Hello World&lt;br /&gt;    $c-&gt;response-&gt;body($c-&gt;config-&gt;{test});&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub default :Path {&lt;br /&gt;    my ( $self, $c ) = @_;&lt;br /&gt;    $c-&gt;response-&gt;body( 'Page not found' );&lt;br /&gt;    $c-&gt;response-&gt;status(404);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Catalyst以外からも下記のように利用する事ができます。&lt;br /&gt;ちなみにbin/test.plのような名前で作成しました。&lt;br /&gt;&lt;pre name="code" class="perl"&gt;#!/usr/bin/perl&lt;br /&gt;use strict;&lt;br /&gt;use warnings;&lt;br /&gt;use FindBin;&lt;br /&gt;&lt;br /&gt;use lib($FindBin::Bin . '/../lib');&lt;br /&gt;&lt;br /&gt;use MyApp::Log;&lt;br /&gt;&lt;br /&gt;my $config = NaNaCa::Config-&gt;instance();&lt;br /&gt;print "$config-&gt;{test}\n";&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;これでひとまずConfigをCatalystから分離することができました。&lt;br /&gt;理解しきれていないこと(特に初めて使ったクラス群)が多いので、ほとんど参考サイトをコピペさせてもらいました。&lt;br /&gt;&lt;br /&gt;ログもLog4perlで出力しつつ、Catalystから切り離そうとしたんですがやっぱり同じようにSingletonにした方が良いもんなんでしょうか。&lt;br /&gt;特に多くを望んでいないので、Catalyst::Log::Log4perlという便利なものを使い、同じ設定ファイルを読ませてアプリの方はLog4perlを使うって方法はどうだろうと思っています。&lt;br /&gt;次回はLogについて書きたいと思います。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;参考サイト&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;CatalystとConfig &lt;a href="http://perl-mongers.org/2008/08/catalystconfig.html"&gt;http://perl-mongers.org/2008/08/catalystconfig.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; 最近の Catalyst の構成 &lt;a href="http://vkgtaro.jp/2009/06/15/catalyst"&gt;http://vkgtaro.jp/2009/06/15/catalyst&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-605867100991747329?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/605867100991747329/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=605867100991747329' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/605867100991747329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/605867100991747329'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/10/perlcatalystlogiccli-catalystcatalyst.html' title='Catalystアプリと設定ファイルを共通化'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-1665409871754333994</id><published>2009-08-13T00:12:00.006+09:00</published><updated>2009-08-13T00:27:34.827+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>MacでOpenCVプログラムをコンパイル</title><content type='html'>前回、と言ってもだいぶ前にMacにMacPortsを使ってOpenCVをインストールする&lt;a href="http://hirokikana.blogspot.com/2008/09/mac-os-x-leopardopencv.html"&gt;記事&lt;/a&gt;を書きました。&lt;br /&gt;それからだいぶ経ちますが、今回は実際にソースを書いてコンパイルして動かすところまでをやってみたいと思います。&lt;br /&gt;&lt;br /&gt;まず、てきとうな場所に下記のようなファイルを作成します。&lt;br /&gt;今回はopencv_test.cというファイル名にしました。&lt;br /&gt;ちなみに、このプログラムは指定した画像を表示するだけのプログラムです。&lt;br /&gt;&lt;pre name="code" class="c"&gt;#include "cv.h"&lt;br /&gt;#include "highgui.h"&lt;br /&gt;&lt;br /&gt;int main(int argc, char* argv[]) {&lt;br /&gt;  IplImage* img; //画像ファイルポインタ&lt;br /&gt;  char imgfile[] = "test.jpg"; //ファイル名&lt;br /&gt;&lt;br /&gt;  //画像読み込み&lt;br /&gt;  img = cvLoadImage(imgfile, CV_LOAD_IMAGE_COLOR);&lt;br /&gt;&lt;br /&gt;  //画像の表示&lt;br /&gt;  cvNamedWindow ("test OpenCV", CV_WINDOW_AUTOSIZE);&lt;br /&gt;  cvShowImage ("test OpenCV", img);&lt;br /&gt;  cvWaitKey (0);&lt;br /&gt;  cvDestroyWindow ("test OpenCV");&lt;br /&gt;&lt;br /&gt;  //画像の解放&lt;br /&gt;  cvReleaseImage(&amp;img);&lt;br /&gt;&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;次にコンパイルします。&lt;br /&gt;コンパイルする際にインクルードパスとライブラリパスをgccに直接指定します。&lt;br /&gt;OpenCVに必要なヘッダファイルは/opt/local/include/opencvに、ライブラリは/opt/local/lib以下に存在します。&lt;br /&gt;&lt;pre class="terminal"&gt;$ gcc -L/opt/local/lib/ -lcxcore -lcv -lhighgui -lml -I/opt/local/include/opencv/ opencv_test.c -o opencv_test&lt;br /&gt;$ ./opencv_test&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;コンパイルが正常に終了したら出来上がったプログラムを実行すると指定した画像が表示されます。&lt;br /&gt;何かのキーを押すとプログラムが終了します。&lt;br /&gt;&lt;br /&gt;OpenCVに関する書籍やWebの例ではWindows上のVisual Studio環境が多いのですが、このようにすることでMacでもOpenCVの開発ができるようになります。&lt;br /&gt;今回はIDEを使わない方法でしたが、XCodeやEclipseでも同じことができると思います。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;参考サイト&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://gihyo.jp/dev/feature/01/opencv"&gt;OpenCVで学ぶ画像認識　http://gihyo.jp/dev/feature/01/opencv&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-1665409871754333994?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/1665409871754333994/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=1665409871754333994' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/1665409871754333994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/1665409871754333994'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/08/macopencv.html' title='MacでOpenCVプログラムをコンパイル'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-6857545194936905351</id><published>2009-06-14T21:44:00.004+09:00</published><updated>2009-06-14T22:46:06.259+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cacti'/><title type='text'>Cactiインストール</title><content type='html'>今回は各種統計情報を表示するCactiをインストールします。&lt;br /&gt;&lt;br /&gt;一時的にEPELリポジトリを有効にしてyumでインストールを行いました。&lt;br /&gt;&lt;pre class="terminal"&gt;# yum --enablerepo=epel install cacti&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;インストールが完了したらMySQLにCacti用のデータベースとユーザを作成します。&lt;br /&gt;データベース名はcacti、ユーザ名はcactiuser、パスワードはpasswordに設定した例です。&lt;br /&gt;&lt;pre class="terminal"&gt;# mysqladmin -u root create cacti&lt;br /&gt;# mysql -u root cacti &lt; /usr/share/doc/cacti-0.8.7d/cacti.sql&lt;br /&gt;# mysql -u root mysql&lt;br /&gt;mysql&gt; GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'password';&lt;br /&gt;mysql&gt; flush privileges;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;次にCactiとApacheの設定ファイルを編集します。&lt;br /&gt;/etc/cacti/db.phpに設定したMySQLのユーザ名とパスワードを記述します。&lt;br /&gt;その他、データベースの設定がある場合はここに記述します。&lt;br /&gt;&lt;pre class="terminal"&gt;$database_type = "mysql";&lt;br /&gt;$database_default = "cacti";&lt;br /&gt;$database_hostname = "localhost";&lt;br /&gt;$database_username = "cactiuser";&lt;br /&gt;$database_password = "password";&lt;br /&gt;$database_port = "3306";&lt;/pre&gt;&lt;br /&gt;Apacheの設定ファイルは/etc/httpd/conf.d/cacti.confに記述します。&lt;br /&gt;デフォルトでは127.0.0.1からしかアクセスすることができない設定になっているので、下記のように編集し同じネットワークからアクセスできるようにします。&lt;br /&gt;編集が終わったらApacheを再起動します。&lt;br /&gt;&lt;pre class="terminal"&gt;#&lt;br /&gt;# Cacti: An rrd based graphing tool&lt;br /&gt;#&lt;br /&gt;Alias /cacti    /usr/share/cacti&lt;br /&gt;&lt;br /&gt;&amp;lt;Directory /usr/share/cacti/&amp;gt;&lt;br /&gt;        Order Deny,Allow&lt;br /&gt;        Deny from all&lt;br /&gt;        Allow from 192.168.100.0/24&lt;br /&gt;&amp;lt;/Directory&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;設定後http://&lt;ホスト名&gt;/cacti/にアクセスすると、初期設定ウィザードが表示されます。&lt;br /&gt;インストールタイプを聞かれるので、"New Install"を選択します。&lt;br /&gt;次の画面でCactiが使用するユーティリティのパスが表示されますが、その際にNOT FOUNDがある場合は該当のツールをインストールしてください。&lt;br /&gt;私の場合はnet-snmp-utilsを追加でインストールしました。&lt;br /&gt;&lt;br /&gt;Finishを押すとCactiのログイン画面が表示されるのでユーザ名admin、パスワードadminでログインします。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;次にSNMPの設定をします。&lt;br /&gt;今回は特にほとんど設定ファイルをいじらずにほぼデフォルトのままにします。&lt;br /&gt;表に置くサーバーなどはコミュニティを切るなどの配慮が必要になるかと思います。&lt;br /&gt;&lt;br /&gt;/etc/nsmp/snmpd.confの下記部分に一番上の一行を追加します。&lt;br /&gt;これによってすべてのSNMPのデータを取得できるようになります。&lt;br /&gt;&lt;pre class="terminal"&gt;view    systemview    included   .1&lt;br /&gt;view    systemview    included   .1.3.6.1.2.1.1&lt;br /&gt;view    systemview    included   .1.3.6.1.2.1.25.1.1&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;snmpdを再起動し、snmpwalkを使い正しく取得できるかどうか確認します。&lt;br /&gt;snmpwalkで情報が取得できれば正しく動作しています。&lt;br /&gt;&lt;pre class="terminal"&gt;# service snmpd restart&lt;br /&gt;# snmpwalk -v 2c -c public localhost&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;次にCactiで監視ホストの登録とグラフの登録を行います。&lt;br /&gt;ConsoleタブのDevicesをクリックするとlocalhostがあります。&lt;br /&gt;これが監視ホストで、追加する場合はここに追加します。&lt;br /&gt;次に設定で、Host Templateをucd/net SNMP Hostにし、SNMP VersionをVersion 2に設定します。&lt;br /&gt;Saveボタンを押し、これらの設定を反映させます。&lt;br /&gt;&lt;br /&gt;グラフの追加にはConsoleタブのDevicesを開いたときに表示されるCreate Graphs for this Hostをクリックするとグラフを追加することができます。&lt;br /&gt;追加したいグラフをチェックし、createボタンを押すことでグラフが追加されます。&lt;br /&gt;グラフの一覧はGraphタブ内から見ることができます&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-6857545194936905351?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/6857545194936905351/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=6857545194936905351' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/6857545194936905351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/6857545194936905351'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/06/cacti.html' title='Cactiインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-5847989402282300096</id><published>2009-04-19T13:55:00.006+09:00</published><updated>2009-04-19T15:13:34.377+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><title type='text'>ffmpegのインストール(メモ)</title><content type='html'>動画録画サーバーに入れてあるffmpegを最新版にしました。&lt;br /&gt;iPhone用の動画を作る際に最新版だと-f ipodを渡すだけでできるとのことだったので、アップデートしました。&lt;br /&gt;&lt;br /&gt;そのときの方法をメモ的ですがのせておきます。&lt;br /&gt;ソースから導入するので、現状の環境を汚さないように/usr/local/ffmpeg以下にすべてが導入されるようにしました。&lt;br /&gt;&lt;br /&gt;まず、faacとfaadのインストール。&lt;br /&gt;&lt;pre class="terminal"&gt;$ wget http://jaist.dl.sourceforge.net/sourceforge/faac/faac-1.28.tar.gz&lt;br /&gt;$ tar xzvf faac-1.28&lt;br /&gt;$ ./bootstrap&lt;br /&gt;$ ./configure --prefix=/usr/local/ffmpeg&lt;br /&gt;$ make &lt;br /&gt;$ make install&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="terminal"&gt;$ wget http://jaist.dl.sourceforge.net/sourceforge/faac/faad2-2.7.tar.gz&lt;br /&gt;$ cd faad2-2.7&lt;br /&gt;$ chmod 755 bootstrap&lt;br /&gt;$ ./bootstrap&lt;br /&gt;$ ./configure --prefix=/usr/local/ffmpeg&lt;br /&gt;$ make&lt;br /&gt;$ make install&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;次に、x264で使用するyasmのインストール。&lt;br /&gt;前まではrpmforgeのやつを使ってたんですが、ソースから簡単に導入できたので入れました。&lt;br /&gt;&lt;pre class="terminal"&gt;$ wget http://www.tortall.net/projects/yasm/releases/yasm-0.7.2.tar.gz&lt;br /&gt;$ tar xzvf yasm-0.7.2.tar.gz&lt;br /&gt;$ cd yasm-0.7.2&lt;br /&gt;$ ./configure --prefix=/usr/local/ffmpeg&lt;br /&gt;$ make&lt;br /&gt;$ make install&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;次に、x264のインストール。&lt;br /&gt;&lt;pre class="terminal"&gt;$ wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20090412-2245.tar.bz2&lt;br /&gt;$ tar xjvf x264-snapshot-20090412-2245.tar.bz2&lt;br /&gt;$ cd x264-snapshot-20090412-2245&lt;br /&gt;$ export PATH=/usr/local/ffmpeg/bin:$PATH&lt;br /&gt;$ ./configure --prefix=/usr/local/ffmpeg&lt;br /&gt;$ make&lt;br /&gt;$ make install&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;最後にffmpegのインストール。&lt;br /&gt;&lt;pre class="terminal"&gt;$ svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg&lt;br /&gt;$ cd ffmpeg&lt;br /&gt;$ ./configure --enable-libx264 --enable-libfaad --enable-libfaac --enable-pthreads --extra-ldflags="-L/usr/local/ffmpeg/lib" --extra-cflags="-I/usr/local/ffmpeg/include" --enable-gpl --prefix=/usr/local/ffmpeg&lt;br /&gt;$ make&lt;br /&gt;$ make install&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;これでひとまず完了です。&lt;br /&gt;iPhone用にしか考えていないので、対応コーデックは最低限にしました。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-5847989402282300096?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/5847989402282300096/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=5847989402282300096' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5847989402282300096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5847989402282300096'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/04/ffmpeg.html' title='ffmpegのインストール(メモ)'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-6914769828635061973</id><published>2009-04-13T00:27:00.004+09:00</published><updated>2009-04-13T00:54:26.627+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='XS'/><title type='text'>XSからlibcのputs関数を呼び出す</title><content type='html'>前回はCのコードをxsコードに書いて、それを実行するということをやりました。&lt;br /&gt;今回は外部のCライブラリを呼び出してみたいと思います。&lt;br /&gt;一番簡単そうな例として、libcのputs関数を呼び出してみます。&lt;br /&gt;&lt;br /&gt;まずはXSライブラリのひな形を作成します。&lt;br /&gt;&lt;pre class="terminal"&gt;$ h2xs -A -n libcXS&lt;br /&gt;perl Makefile.PL&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;次にXSソース(libcXS.xs)を編集します。&lt;br /&gt;&lt;pre name="code" class="c"&gt;#include "EXTERN.h"&lt;br /&gt;#include "perl.h"&lt;br /&gt;#include "XSUB.h"&lt;br /&gt;&lt;br /&gt;#include "ppport.h"&lt;br /&gt;&lt;br /&gt;#include "stdlib.h"&lt;br /&gt;&lt;br /&gt;MODULE = libcXS  PACKAGE = libcXS  &lt;br /&gt;&lt;br /&gt;void&lt;br /&gt;puts(value)&lt;br /&gt;char * value&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;追記したのは、include部にstdlib.hを追加したのと前回も追加した関数の戻り値などの定義部分です。&lt;br /&gt;前回のようCODEセクションを定義してコードを書かなくても、既存のライブラリ呼び出しの場合は定義だけでOKです。&lt;br /&gt;&lt;br /&gt;最後にmakeして完了です。&lt;br /&gt;&lt;br /&gt;実際にこのモジュールを使ったPerlコードを使った例が次のものです。&lt;br /&gt;標準出力にhogehogeと表示されるはずです。&lt;br /&gt;&lt;pre name=code class=perl&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;use ExtUtils::testlib;&lt;br /&gt;use libcXS;&lt;br /&gt;&lt;br /&gt;libcXS::puts("hogehoge");&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;だんだんわかってきたような気がしてきていますが、きちんと理解するためにはもう少し時間がかかりそうです。&lt;br /&gt;ひとまず、perldoc perlxsとモダンPerl入門を改めて読んでみます。&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;追記:&lt;br /&gt;なぜか、#include "stdlib.h"を消しても動きます…&lt;br /&gt;前段階でincludeされてるのかなぁ、それとも別の原因…？&lt;br /&gt;今度は違うライブラリでやってみたいと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-6914769828635061973?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/6914769828635061973/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=6914769828635061973' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/6914769828635061973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/6914769828635061973'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/04/xslibcputs.html' title='XSからlibcのputs関数を呼び出す'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-2117172748583387980</id><published>2009-04-11T00:15:00.003+09:00</published><updated>2009-04-11T00:21:36.046+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>インストールマニアックス2009に応募</title><content type='html'>http://www.thinkit.co.jp/maniax/2009/&lt;br /&gt;&lt;br /&gt;インストールマニアックス2009に応募しました。&lt;br /&gt;サーバー1台とWindows Web Server 2008を無償提供してもらえ、それに期間中にどれだけたくさんのOSSをインストールできるか競うというイベントです。&lt;br /&gt;&lt;br /&gt;前回のには参加しそびれてしまったので、今回は応募できました。&lt;br /&gt;当たれば今月末にでも機材が届くのかもしれないです。&lt;br /&gt;&lt;br /&gt;機材を無償提供してもらえるのはうれしいですが、1年間動かし続けなきゃいけないのがちょっと痛いですが…電気代的な意味で。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-2117172748583387980?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/2117172748583387980/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=2117172748583387980' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/2117172748583387980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/2117172748583387980'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/04/2009.html' title='インストールマニアックス2009に応募'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-5226418528016693688</id><published>2009-04-08T00:23:00.008+09:00</published><updated>2009-04-08T00:51:14.239+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Pythonでテキストベースのインターフェイスを作成する</title><content type='html'>今日、よくLinuxのテキストモードインストール時に使用するインターフェイスの自作しているのを見て自分でもやりたくなってきたのでちょっと調べてみました。&lt;br /&gt;何に使うかと言われると…ちょっと？ですが。&lt;br /&gt;&lt;br /&gt;よく見るテキストモードでのインストールにはnewtというライブラリで実現できているのですが、そのnewtをPythonから使えるようにしたのがSnackというライブラリです。&lt;br /&gt;setupコマンドでも利用されている、アレです。&lt;br /&gt;&lt;br /&gt;CentOSでは何もインストールせずともSnackが含まれていたのですが、ubuntu(MIE)には含まれていなかったのでインストールしました。&lt;br /&gt;ちなみにパッケージ名はpython-newtです。&lt;br /&gt;&lt;br /&gt;使い方は下記のサイトにまとまっているのですが、全部理解するには少し時間がかかりそうです。&lt;br /&gt;&lt;a href="http://www.wanware.com/tsgdocs/snack.html"&gt;http://www.wanware.com/tsgdocs/snack.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ひとまず、0.1秒に1%増えるプログレスバーだけ作ってみました。&lt;br /&gt;&lt;pre name=code class=python&gt;&lt;br /&gt;#!/usr/bin/env python&lt;br /&gt;&lt;br /&gt;import snack&lt;br /&gt;import time&lt;br /&gt;&lt;br /&gt;screen = snack.SnackScreen()&lt;br /&gt;&lt;br /&gt;g = snack.GridForm(screen, 'TEST', 1, 1)&lt;br /&gt;&lt;br /&gt;scale = snack.Scale(50, 100)&lt;br /&gt;scale.set(0)&lt;br /&gt;g.add(scale, 0, 0)&lt;br /&gt;&lt;br /&gt;g.draw()&lt;br /&gt;&lt;br /&gt;count = 0&lt;br /&gt;while 1:&lt;br /&gt;    count = count + 1&lt;br /&gt;    scale.set(count)&lt;br /&gt;    g.draw()&lt;br /&gt;    screen.refresh()&lt;br /&gt;    time.sleep(0.1)&lt;br /&gt;    if count == 100:&lt;br /&gt;        break&lt;br /&gt;&lt;br /&gt;screen.finish()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;まだGrid、Formあたりの概念が理解しきれていないので引き続きドキュメントを読んでみます。&lt;br /&gt;英語が苦手だとこんなところで障害になるんですよね…orz&lt;br /&gt;&lt;br /&gt;あと、意外とGoogle Code Searchが参考になりました。&lt;br /&gt;lang:python "import snack"とかで調べると使われてるコードがたくさん出てきて参考になります。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-5226418528016693688?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/5226418528016693688/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=5226418528016693688' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5226418528016693688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5226418528016693688'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/04/python.html' title='Pythonでテキストベースのインターフェイスを作成する'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-1429734089468189977</id><published>2009-04-07T01:15:00.004+09:00</published><updated>2009-04-07T01:25:40.893+09:00</updated><title type='text'>Blogger Syntax Hilighterを導入</title><content type='html'>いつも記事でソースコードを書くときに毎回divとpreで囲んでごにょごにょしてたんだが、下記ページを参考にBlogger SYntax Hilighterを入れてみた。&lt;br /&gt;&lt;a href="http://www.kuribo.info/2009/02/blogger-syntax-highlighter-perl.html"&gt;http://www.kuribo.info/2009/02/blogger-syntax-highlighter-perl.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;最初Perlに対応していなくてどうしようかと思ったけど、どうにかなりました。&lt;br /&gt;&lt;br /&gt;ひとまず、さっきの記事に適用してみました。&lt;br /&gt;&amp;lt;とか&amp;gt;はきちんとエスケープしないとダメなようです。&lt;br /&gt;ためしにいろいろ書いてみよう。&lt;br /&gt;&lt;br /&gt;&lt;pre name=code class=java&gt;&lt;br /&gt;public class Test {&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        System.out.println("Hello World!");&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name=code class=c&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;&lt;br /&gt;main() {&lt;br /&gt;    printf("Hello World!!\n");&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name=code class=python&gt;&lt;br /&gt;#!/usr/bin/env python&lt;br /&gt;&lt;br /&gt;def hello():&lt;br /&gt; print "Hello World!"&lt;br /&gt;&lt;br /&gt;hello()&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-1429734089468189977?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/1429734089468189977/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=1429734089468189977' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/1429734089468189977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/1429734089468189977'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/04/blogger-syntax-hilighter.html' title='Blogger Syntax Hilighterを導入'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-5180961045861660531</id><published>2009-04-07T00:36:00.008+09:00</published><updated>2009-04-08T00:52:13.270+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='XS'/><title type='text'>XSを使ってみる</title><content type='html'>PerlからC APIを呼ぶ仕組みでXSというものがあります。&lt;br /&gt;これにより、Cで書いた部分の処理に関しては高速になったり、既存のCで書かれたライブラリが使用できるようになるらしいです。&lt;br /&gt;ちょっとおもしろそうなので、練習に動かしてみました。&lt;br /&gt;&lt;br /&gt;モダンPerl入門に詳しく書いてあったのですが、ちょっとやることが多すぎたので下記のサイトの例をやってみました。&lt;br /&gt;http://d.hatena.ne.jp/higepon/20050615/1118829090&lt;br /&gt;&lt;br /&gt;手順は上記のサイトに書いてある通りに行いました。&lt;br /&gt;&lt;pre class=terminal&gt;$ h2xs -A -n MyTestXS ←XSのひな形を作成&lt;br /&gt;$ cd MyTestXS/&lt;br /&gt;$ perl Makefile.PL ← Makefileを作成&lt;br /&gt;［MyTestXS.xsを編集］&lt;br /&gt;$ make&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;MyTestXS.xsは次のように編集しました。&lt;br /&gt;ちなみにMODULE = MyTestXSまでは自動的に作成されてました。&lt;br /&gt;&lt;pre name=code class=perl&gt;#include "EXTERN.h"&lt;br /&gt;#include "perl.h"&lt;br /&gt;#include "XSUB.h"&lt;br /&gt;&lt;br /&gt;#include "ppport.h"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MODULE = MyTestXS  PACKAGE = MyTestXS  &lt;br /&gt;&lt;br /&gt;int&lt;br /&gt;increment2(value)&lt;br /&gt;int value&lt;br /&gt;CODE:&lt;br /&gt; RETVAL = value + 2;&lt;br /&gt;OUTPUT:&lt;br /&gt; RETVAL&lt;/pre&gt;&lt;br /&gt;追記した部分は、まず戻り値の型、関数名、引数名と型を指定します。&lt;br /&gt;CODEより後ろには実際のCのコードを記述します。&lt;br /&gt;OUTPUTに戻り値を指定します。&lt;br /&gt;&lt;br /&gt;makeして失敗がなければ、XSモジュール作成完了です。&lt;br /&gt;では、実際に使ってみつつ、ベンチマークもやってみました。&lt;br /&gt;下記のようなコードを書きました。これも参考サイトと同じです。&lt;br /&gt;&lt;pre name=code class=perl&gt;#!/usr/bin/perl&lt;br /&gt;use strict;&lt;br /&gt;&lt;br /&gt;use ExtUtils::testlib;&lt;br /&gt;use MyTestXS;&lt;br /&gt;&lt;br /&gt;use Benchmark;&lt;br /&gt;&lt;br /&gt;my $count = 5000000;&lt;br /&gt;timethese($count,&lt;br /&gt;   {&lt;br /&gt;       'XS' =&gt; 'xs_test();',&lt;br /&gt;       'Perl' =&gt; 'perl_test();',&lt;br /&gt;   });&lt;br /&gt;&lt;br /&gt;sub xs_test {&lt;br /&gt;    MyTestXS::increment2(100);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub perl_test {&lt;br /&gt;    increment2(100);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub increment2 {&lt;br /&gt;    $_[0] + 2;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;これを実際に私のMacBookで実行してみると下記のような結果になりました。&lt;br /&gt;&lt;pre class=terminal&gt;macbook:MyTestXS hiroki$ perl ./test.pl &lt;br /&gt;Benchmark: timing 5000000 iterations of Perl, XS...&lt;br /&gt;      Perl:  5 wallclock secs ( 5.95 usr +  0.08 sys =  6.03 CPU) @ 829187.40/s (n=5000000)&lt;br /&gt;        XS:  3 wallclock secs ( 3.46 usr +  0.04 sys =  3.50 CPU) @ 1428571.43/s (n=5000000)&lt;/pre&gt;&lt;br /&gt;XSで書いた方が2倍近くパフォーマンスが良いです。&lt;br /&gt;&lt;br /&gt;私としては、はやく動かすというよりも既存のCライブラリをPerlから使いたいと思ってるので、引き続き調べます。&lt;br /&gt;モダンPerl入門を見ると詳細に書いてあるようで。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-5180961045861660531?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/5180961045861660531/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=5180961045861660531' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5180961045861660531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5180961045861660531'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/04/xs.html' title='XSを使ってみる'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-6050345410984484845</id><published>2009-02-17T00:30:00.004+09:00</published><updated>2009-02-17T00:57:00.279+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>モダンPerl入門 デザインパターン実装の練習 -Iterator-</title><content type='html'>モダンPerl入門の2章では、各種デザインパターンをPerlで実装した例が出ています。&lt;br /&gt;あまりデザインパターンが得意ではないので、頭の整理と練習がてら自分で書いてみたいと思います。&lt;br /&gt;今日はIterator。&lt;br /&gt;&lt;br /&gt;Iteratorは何かデータを順番に取り出していく処理を抽象化するためのパターンです。&lt;br /&gt;何かのデータとは、配列であったりファイルであったり、データベースであったりという感じです。&lt;br /&gt;&lt;br /&gt;何かの連続したデータをひとつずつ取り出すときはIteratorを使った方が良さそうということなようです。&lt;br /&gt;例えば、従来は配列で持っていたデータをある日ファイルに持つようになりましたと。&lt;br /&gt;そんなとき、Iteratorを使っていない場合は該当箇所をすべて直す必要があります。&lt;br /&gt;しかし、Iteratorを使っていればデータを取り出すという処理が抽象化されているので、使用するオブジェクトを変更するだけで良いのです。&lt;br /&gt;よかったね、よかったね、ということになると。&lt;br /&gt;# あってるか不安…&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;書籍の例では配列とリンクリスト(Data::LinkedListという仮想のモジュールを使用)、ファイル用のIteratorを実装していました。&lt;br /&gt;ひとまず、軽く実践できそうな配列とファイル(File::IOを使用)の実装をしてみました。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;&lt;pre&gt;package MyIterator;&lt;br /&gt;use Moose::Role;&lt;br /&gt;&lt;br /&gt;requires qw(next);&lt;br /&gt;&lt;br /&gt;no Moose::Role;&lt;br /&gt;&lt;br /&gt;package MyIterator::Array;&lt;br /&gt;use Moose;&lt;br /&gt;use MooseX::AttributeHelpers;&lt;br /&gt;&lt;br /&gt;with 'MyIterator';&lt;br /&gt;&lt;br /&gt;has 'array' =&gt; (&lt;br /&gt;    metaclass =&gt; 'Collection::Array',&lt;br /&gt;    is =&gt; 'rw',&lt;br /&gt;    isa =&gt; 'ArrayRef',&lt;br /&gt;    required =&gt; '1',&lt;br /&gt;    trigger =&gt; sub {&lt;br /&gt; my ($self, $list) = @_;&lt;br /&gt; $self-&gt;size(scalar @$list);&lt;br /&gt;    },&lt;br /&gt;    provides =&gt; {&lt;br /&gt; get =&gt; 'array_get'&lt;br /&gt;    },&lt;br /&gt;    );&lt;br /&gt;&lt;br /&gt;has 'size' =&gt; (&lt;br /&gt;    is =&gt; 'rw',&lt;br /&gt;    isa =&gt; 'Int',&lt;br /&gt;    default =&gt; 0,&lt;br /&gt;    );&lt;br /&gt;&lt;br /&gt;has 'current' =&gt; (&lt;br /&gt;    metaclass =&gt; 'Number',&lt;br /&gt;    is =&gt; 'rw',&lt;br /&gt;    isa =&gt; 'Int',&lt;br /&gt;    default =&gt; 0,&lt;br /&gt;    provides =&gt; {&lt;br /&gt; add =&gt; 'current_add'&lt;br /&gt;    }&lt;br /&gt;    );&lt;br /&gt;&lt;br /&gt;__PACKAGE__-&gt;meta-&gt;make_immutable;&lt;br /&gt;&lt;br /&gt;no Moose;&lt;br /&gt;&lt;br /&gt;sub next {&lt;br /&gt;    my $self = shift;&lt;br /&gt;    if ($self-&gt;current &gt;= $self-&gt;size){&lt;br /&gt; return ();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    my $i = $self-&gt;current;&lt;br /&gt;    $self-&gt;current_add(1);&lt;br /&gt;    return $self-&gt;array_get($i);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;1;&lt;br /&gt;&lt;br /&gt;package MyIterator::File;&lt;br /&gt;use Moose;&lt;br /&gt;&lt;br /&gt;with 'MyIterator';&lt;br /&gt;&lt;br /&gt;has 'filepath' =&gt; (&lt;br /&gt;    is =&gt; 'rw',&lt;br /&gt;    isa =&gt; 'Str',&lt;br /&gt;    required =&gt; 1,&lt;br /&gt;    );&lt;br /&gt;&lt;br /&gt;has 'fh' =&gt; (&lt;br /&gt;    is =&gt; 'rw',&lt;br /&gt;    );&lt;br /&gt;&lt;br /&gt;__PACKAGE__-&gt;meta-&gt;make_immutable;&lt;br /&gt;&lt;br /&gt;no Moose;&lt;br /&gt;&lt;br /&gt;use IO::File;&lt;br /&gt;&lt;br /&gt;sub BUILD {&lt;br /&gt;    my $self = shift;&lt;br /&gt;&lt;br /&gt;    my $io = IO::File-&gt;new();&lt;br /&gt;    $io-&gt;open($self-&gt;filepath(), 'r') or die $!;&lt;br /&gt;    $self-&gt;fh($io);&lt;br /&gt;&lt;br /&gt;    return $self;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub DESTROY{&lt;br /&gt;    my $self = shift;&lt;br /&gt;    $self-&gt;fh()-&gt;close()&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub next {&lt;br /&gt;    my $self = shift;&lt;br /&gt;&lt;br /&gt;    my $fh = $self-&gt;fh();&lt;br /&gt;    my $line = &lt;$fh&gt;;&lt;br /&gt;&lt;br /&gt;    return $line ? $line : ();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;1;&lt;br /&gt;&lt;br /&gt;package main;&lt;br /&gt;&lt;br /&gt;my $iterator = MyIterator::Array-&gt;new(array =&gt; ['a', 'b', 'c']);&lt;br /&gt;while (my $result = $iterator-&gt;next()) {&lt;br /&gt;    chomp $result;&lt;br /&gt;    print "$result\n";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$iterator = MyIterator::File-&gt;new(filepath =&gt; '/Users/hiroki/Documents/perl/iterator.pl');&lt;br /&gt;while (my $result = $iterator-&gt;next()) {&lt;br /&gt;    chomp $result;&lt;br /&gt;    print "$result\n";&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;MyIteratorが今回作成するIteratorのインターフェイス。&lt;br /&gt;インターフェイスはMoose::Roleを使うと簡単に実現できます。&lt;br /&gt;今回はnextメソッドを必ず実装するようにしました。&lt;br /&gt;&lt;br /&gt;MyIterator::Arrayが配列用のIterator。&lt;br /&gt;データが入った配列を格納するarray、配列のサイズを格納するsize、読み込み中の現在の位置を表すcurrentのプロパティがあります。&lt;br /&gt;arrayプロパティのtriggerで1回だけsizeの初期化を行うようになっています。&lt;br /&gt;あとはnextメソッドが実装されています。&lt;br /&gt;なるほどー、MooseとMooseX::AttributeHelpersを使うとこんなに便利なのか。&lt;br /&gt;&lt;br /&gt;MyIterator::Fileがファイル用のIterator。&lt;br /&gt;これは自分で書いた。&lt;br /&gt;まず、ファイルハンドルの初期化をBUILDメソッドで行いました。&lt;br /&gt;BUILDメソッドはコンストラクタで初期化された後に呼び出されるので、プロパティなどに値が入っているのは保証されています(required =&amp;gt; 1にした場合)。&lt;br /&gt;あとはnextメソッドを実装しました。&lt;br /&gt;returnのところが三項演算子を使っていてちょっとトリッキーですね(これは本に書いてあった)。&lt;br /&gt;&lt;br /&gt;で、package main以降が実際に走るコード。&lt;br /&gt;最初は引数で渡した配列を順に表示してる処理です。&lt;br /&gt;次が、ファイルから1行ずつ読み込んで表示する処理です。&lt;br /&gt;どちらもオブジェクト作成の方法は違いますが、値を取り出す処理は一緒です。&lt;br /&gt;なので、$iteratorにはMyIteratorを実装したものが入っていれば同じ処理で値が取り出せます。&lt;br /&gt;&lt;br /&gt;次回以降はまた違うデザインパターンを実装してみます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-6050345410984484845?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/6050345410984484845/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=6050345410984484845' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/6050345410984484845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/6050345410984484845'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/02/perl-iterator.html' title='モダンPerl入門 デザインパターン実装の練習 -Iterator-'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-5311204096224336968</id><published>2009-02-15T13:40:00.005+09:00</published><updated>2009-02-15T14:03:06.387+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MacPorts'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Moose'/><title type='text'>MacPortsでMooseをインストール</title><content type='html'>昨日頼んでいた「モダンPerl入門」が届いたので早速読み進めてみました。&lt;br /&gt;目次を読んだだけでも、最近のPerl関連の書籍にはないような内容が満載。&lt;br /&gt;最近Catalystのことをネットで探しても若干古い情報しかなかったし…。&lt;br /&gt;2章のPerlでデザパタの実装例を紹介しているのは、デザパタの理解が明らかに足りない私にとってはとてもうれしい。&lt;br /&gt;とりあえず、1章と3章と4章を読んでみた。&lt;br /&gt;&lt;br /&gt;1章でMooseが紹介されてますね。&lt;br /&gt;名前だけは知ってたんですが、特に放置しててどのようなものかはわからなくて…orz&lt;br /&gt;だいぶ前に流行が過ぎてて今更感はあるかもしれないですが、とりあえず使ってみることにしました。&lt;br /&gt;&lt;br /&gt;そこでMacPortsにあったのでインストールしてみたのですが、ちょっと一筋縄ではいかなかったです。&lt;br /&gt;きちんと記録をとってなかったのでちゃんと書けないのですが、ひとまずやったことは次のようなことです。&lt;br /&gt; &lt;ul&gt;&lt;li&gt;Perlを5.8.8から5.8.9に&lt;/li&gt;&lt;li&gt;p5-scalar-list-utilsを強制インストール&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;最初にはまったのはp5-test-simpleでなぜかエラーが出て先に進みませんでした。&lt;br /&gt;私の環境ではPerl5.8が5.8.8_3がactiveになっていたので5.8.9_2に変更したところp5-test-simpleがインストールできました。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;&lt;br /&gt;$ port installed | grep perl&lt;br /&gt;  perl5.8 @5.8.8_3+darwin_9 (active)&lt;br /&gt;  perl5.8 @5.8.9_2&lt;br /&gt;$ sudo port deactivate perl5.8&lt;br /&gt;---&gt;  Deactivating perl5.8&lt;br /&gt;$ sudo port install perl5.8&lt;br /&gt;---&gt;  Activating perl5.8 @5.8.9_2&lt;br /&gt;---&gt;  Cleaning perl5.8&lt;br /&gt;$ port installed | grep perl&lt;br /&gt;  perl5.8 @5.8.8_3+darwin_9&lt;br /&gt;  perl5.8 @5.8.9_2 (active)&lt;br /&gt;$ sudo port install p5-test-simple&lt;br /&gt;---&gt;  Activating p5-test-simple @0.86_0&lt;br /&gt;---&gt;  Cleaning p5-test-simple&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;次にp5-scalar-list-utilsのインストールでなぜかこけました。&lt;br /&gt;deactivateしてactivateしてみてもどうにもならなかったので-fオプションをつけて強制インストールしてしまいました。&lt;br /&gt;どうやらwarningが出ているようですが、already existsということだけみたいでした。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;&lt;br /&gt;sudo port -f install p5-scalar-list-utils&lt;br /&gt;---&gt;  Installing p5-scalar-list-utils @1.19_1&lt;br /&gt;---&gt;  Activating p5-scalar-list-utils @1.19_1&lt;br /&gt;Warning: File /opt/local/lib/perl5/5.8.9/darwin-2level/auto/List/Util/Util.bs already exists.  Moving to: /opt/local/lib/perl5/5.8.9/darwin-2level/auto/List/Util/Util.bs.mp_1234672795.&lt;br /&gt;Warning: File /opt/local/lib/perl5/5.8.9/darwin-2level/auto/List/Util/Util.bundle already exists.  Moving to: /opt/local/lib/perl5/5.8.9/darwin-2level/auto/List/Util/Util.bundle.mp_1234672795.&lt;br /&gt;Warning: File /opt/local/lib/perl5/5.8.9/darwin-2level/List/Util.pm already exists.  Moving to: /opt/local/lib/perl5/5.8.9/darwin-2level/List/Util.pm.mp_1234672795.&lt;br /&gt;Warning: File /opt/local/lib/perl5/5.8.9/darwin-2level/Scalar/Util.pm already exists.  Moving to: /opt/local/lib/perl5/5.8.9/darwin-2level/Scalar/Util.pm.mp_1234672795.&lt;br /&gt;Warning: File /opt/local/share/man/man3/List::Util.3pm.gz already exists.  Moving to: /opt/local/share/man/man3/List::Util.3pm.gz.mp_1234672795.&lt;br /&gt;Warning: File /opt/local/share/man/man3/Scalar::Util.3pm.gz already exists.  Moving to: /opt/local/share/man/man3/Scalar::Util.3pm.gz.mp_1234672795.&lt;br /&gt;---&gt;  Cleaning p5-scalar-list-utils&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;これであとはsudo port install p5-mooseすれば無事インストールできます。&lt;br /&gt;インストールだけでも少し時間がかかってしまいました。&lt;br /&gt;&lt;br /&gt;いつも思うのですが、このブログは環境構築ものの記事ばっかりでその先がないですね…&lt;br /&gt;反省ですね。&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=hirokikana-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=4798119172&amp;md=1X69VDGQCMF7Z30FM082&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;nou=1" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-5311204096224336968?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/5311204096224336968/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=5311204096224336968' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5311204096224336968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5311204096224336968'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/02/macportsmoose.html' title='MacPortsでMooseをインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-3525396268678325458</id><published>2009-02-11T20:18:00.004+09:00</published><updated>2009-02-11T20:42:50.992+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dropbox'/><title type='text'>Dropboxをインストール</title><content type='html'>各所で便利だと噂のDropboxを自宅のMacBookにインストールしてみました。&lt;br /&gt; &lt;a href="http://www.getdropbox.com/"&gt;http://www.getdropbox.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;クライアント用のソフトはMac以外にもLinux、Windows用のもあるようです。&lt;br /&gt;最初にクライアントソフトで新しいアカウントを作成します。&lt;br /&gt;それだけでインストールは完了です。&lt;br /&gt;&lt;br /&gt;あとはFinderの場所→Dropboxを開けば使うことができます。&lt;br /&gt;まだ使い方がよくわかってないです。&lt;br /&gt;&lt;br /&gt;大きめのファイルを置いてもすぐに反映されるのはなぜだろう。&lt;br /&gt;あとはバージョン管理みたいのも勝手にやってくれるんだよね？&lt;br /&gt;あとで調べてまとめます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-3525396268678325458?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/3525396268678325458/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=3525396268678325458' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/3525396268678325458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/3525396268678325458'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/02/dropbox.html' title='Dropboxをインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-6510187622384011810</id><published>2009-02-11T19:57:00.006+09:00</published><updated>2009-02-11T20:08:42.524+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>sudoでパスワードを再度聞かれるまでの時間を調整する</title><content type='html'>前の記事でsudoコマンドでパスワードを再度聞かれるまで短いということを書きました。&lt;br /&gt;調べたらやはりすぐ出てきました。&lt;ul&gt;&lt;li&gt;&lt;a href="http://living-on-the-linux.cocolog-nifty.com/blog/2008/11/sudo-0638.html"&gt;Linux書き散らし: sudoのパスワード入力省略時間の変更&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/higepon/20061129/1164783494"&gt;sudo で次にパスワードを聞かれるまでの時間を調節する - ひげぽん OSとか作っちゃうかMona-&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;ということで自分のMacBookにも反映させておきました。&lt;br /&gt;ちなみに180(3時間)にしました。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;Defaults        timestamp_timeout = 180&lt;/div&gt;&lt;br /&gt;私の場合は長くすれば便利だなーとか適当な考えでのばしたわけですが、時間をのばすと席を外している間にsudoで何か操作されてしまうというセキュリティ的な脅威も生みます。&lt;br /&gt;なので、業務で使用する際はあまり長くするのも望ましくないかもしれないですね。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-6510187622384011810?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/6510187622384011810/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=6510187622384011810' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/6510187622384011810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/6510187622384011810'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/02/sudo.html' title='sudoでパスワードを再度聞かれるまでの時間を調整する'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-3450337735233740431</id><published>2009-02-11T17:00:00.007+09:00</published><updated>2009-02-11T17:41:41.096+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>mod_access_tokenを使ってみた</title><content type='html'>livedoor labsで公開されたmod_access_tokenを使ってみました。&lt;br /&gt;mod_access_tokenはコンテンツに対して有効期限をつけたりすることができるApacheモジュールです。&lt;br /&gt;ソースはGoogle CodeにてMITライセンスで公開されています。&lt;br /&gt;&lt;a href="http://code.google.com/p/modaccesstoken/"&gt;http://code.google.com/p/modaccesstoken/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;とりあえず使い道はないけれどもインストールしてみました。&lt;br /&gt;まず、ソースをダウンロード&amp;展開して例のごとくインストールをします。&lt;br /&gt;今回はMacPortsでインストールしたAapcheを使いたかったのでconfigureオプションにprefixとapxsのパスを指定しました。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$ tar xzvf mod_access_token-0.10.tar.gz &lt;br /&gt;$ cd mod_access_token&lt;br /&gt;$ ./configure --prefix=/opt/local/apache2 --with-apxs=/opt/local/apache2/bin/apxs&lt;br /&gt;$ make&lt;br /&gt;$ sudo make install&lt;/div&gt;&lt;br /&gt;これでインストールは完了です。&lt;br /&gt;&lt;br /&gt;ソースファイルのeg以下にhttpd.confの設定例とURLを生成するためのサンプルコード(Perl)が同梱されています。&lt;br /&gt;今回は例としてhttp://localhost/hoge/index.htmlに対して有効期限の設定をしてみたいと思います。&lt;br /&gt;&lt;br /&gt;まず、httpd.conf(/opt/local/apache2/conf/httpd.conf)に下記を追記します。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;&amp;lt;Location /hoge&amp;gt;&lt;br /&gt;    AccessTokenCheck On&lt;br /&gt;    AccessTokenSecret 15cfb576a8bdc1551219fdeb3117ed85&lt;br /&gt;    AccessTokenAccessKey 7864ffcb01fb5cde1f1c2f37b619fbcd&lt;br /&gt;&amp;lt;/Location&amp;gt;&lt;/div&gt;&lt;br /&gt;AccessTokenSecretとAccessTokenAccessKeyはサンプルのままです。&lt;br /&gt;運用する際は変更しましょう。&lt;br /&gt;&lt;br /&gt;これでApacheを/opt/local/apache2/bin/apachectl restartで再起動すれば/hoge以下のコンテンツはmod_access_tokenの管理下になるので、普通にアクセスすると403(Forbidden)が返ります。&lt;br /&gt;&lt;br /&gt;次にURLを生成します。&lt;br /&gt;URLは以下のようなものです。&lt;br /&gt;&lt;blockquote&gt;http://localhost/hoge/index.html?Signature=&amp;lt;Signature&amp;gt;&amp;AccessKey=&amp;lt;AccessKey&amp;gt;&amp;Expires=&amp;lt;Expires&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;AccessKeyはhttpd.confに設定したAccessKeyです。&lt;br /&gt;Expiresは有効期限のUNIXタイムスタンプです。ということは有効期限は秒単位で設定できるんですね。&lt;br /&gt;Signatureは"HTTPメソッド + URIのパス + 有効期限 + AccessKey"とAccessTokenSecretをHMAC-SHA1の値をBase64エンコードしたものです。&lt;table border=1&gt;&lt;tr&gt;&lt;td&gt;AccessKey&lt;/td&gt;&lt;td&gt;httpd.confに設定したAccessKey&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Signature&lt;/td&gt;&lt;td&gt;"HTTPメソッド + URIのパス + 有効期限 + AccessKey"とAccessTokenSecretをHMAC-SHA1の値をBase64エンコードしたもの&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Expires&lt;/td&gt;&lt;td&gt;有効期限のUNIXタイムスタンプ&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;ちなみにeg以下にあるsign.plでURLを生成できます。&lt;br /&gt;下記ではhttp://localhost/hoge/index.htmlに120秒の期限付きで生成する例です。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$ ./sign.pl http://localhost/hoge/index.html 7864ffcb01fb5cde1f1c2f37b619fbcd 15cfb576a8bdc1551219fdeb3117ed85 120&lt;/div&gt;&lt;br /&gt;生成したURLでアクセスしてみるときちんとコンテンツが表示されると思います。&lt;br /&gt;120秒後にアクセスすると再び403になります。&lt;br /&gt;&lt;br /&gt;想定される使い方はURLを生成するアプリを作成して、アクセスさせるんだと思います。&lt;br /&gt;livedoorの何かのサービスで使われているらしいです。&lt;br /&gt;&lt;br /&gt;せっかくなので、mod_access_tokenのソースを読みつつApacheモジュールの勉強もしてみようかと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-3450337735233740431?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/3450337735233740431/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=3450337735233740431' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/3450337735233740431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/3450337735233740431'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/02/modaccesstoken.html' title='mod_access_tokenを使ってみた'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-4484395326947306796</id><published>2009-02-10T01:28:00.004+09:00</published><updated>2009-02-10T01:52:58.769+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MacPorts'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>MacPortsのApacheを利用する</title><content type='html'>前回更新からだいぶ間があいてしまいました。&lt;br /&gt;&lt;br /&gt;Leopardには最初からApache2.2が付属しています。&lt;br /&gt;なので、Apacheを使いたければ付属のものを使えば良いのですが、なんとなく元々あるものはこのままにしておきたいと思ったので、MacPortsからApacheをインストールすることにしました。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$ sudo port install apache2&lt;/div&gt;&lt;br /&gt;ちなみに今さら使わないかもしれないですが、Apache2.0系(apache20)、Apache1.3系(apache)もMacPortsからインストールできる模様です。&lt;br /&gt;&lt;br /&gt;これで/opt/local/apache2以下にインストールされます。&lt;br /&gt;起動する前に付属のApacheを停止します。&lt;br /&gt;起動していなければこのまま先に進みます。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$ sudo apachectl stop&lt;/div&gt;&lt;br /&gt;特に何も出力されないのですが、ブラウザからlocalhostにアクセスしてみて何も表示され泣けば付属のApacheはたぶん落ちてます。&lt;br /&gt;# わかりにくいですね…&lt;br /&gt;&lt;br /&gt;最後にMacPortsでインストールしたApacheを起動します。&lt;br /&gt;一応psコマンドを使って起動しているかも確認します。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$sudo /opt/local/apache2/bin/apachectl start&lt;br /&gt;$ ps axu|grep httpd&lt;br /&gt;hiroki   25352   0.5  0.0   599780    460 s001  R+    1:46AM   0:00.00 grep httpd&lt;br /&gt;_www     25348   0.0  0.0   606772    624   ??  S     1:45AM   0:00.00 /opt/local/apache2/bin/httpd -k start&lt;br /&gt;_www     25347   0.0  0.0   606772    624   ??  S     1:45AM   0:00.00 /opt/local/apache2/bin/httpd -k start&lt;br /&gt;_www     25346   0.0  0.0   606772    624   ??  S     1:45AM   0:00.00 /opt/local/apache2/bin/httpd -k start&lt;br /&gt;_www     25345   0.0  0.0   606772    624   ??  S     1:45AM   0:00.00 /opt/local/apache2/bin/httpd -k start&lt;br /&gt;_www     25344   0.0  0.0   606772    624   ??  S     1:45AM   0:00.00 /opt/local/apache2/bin/httpd -k start&lt;br /&gt;root     25343   0.0  0.1   606772   2228   ??  Ss    1:45AM   0:00.15 /opt/local/apache2/bin/httpd -k start&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;ひとまずこれであとは普通のApacheと同様に使用できます。&lt;br /&gt;ちなみに設定ファイルは/opt/local/apache2/conf以下に、デフォルトのドキュメントルートは/opt/local/apache2/htdocsです。&lt;br /&gt;ようは/opt/local/apache2以下に全部まとまってます。&lt;br /&gt;&lt;br /&gt;ひとまず、htdocs以下にsudoしなくてもファイルが作成できるようにパーミッションを変更しておきます。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$ chmod 777 /opt/local/apache2/htdocs&lt;/div&gt;&lt;br /&gt;これからはこのApacheを使っていろいろしたいと思います。&lt;br /&gt;&lt;br /&gt;というかportsするたびにsudoしなきゃいけないのがだんだん面倒になってきました。&lt;br /&gt;しかもsudoは連続して使えばパスワードが毎回聞かれることはないのですが、一定時間空けるとパスワード聞かれます。&lt;br /&gt;2、3時間はパスワードなしで作業したいです。&lt;br /&gt;この辺も設定できそうなので近いうちに調べてみます、というかぐぐればすぐ出てきそう…。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-4484395326947306796?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/4484395326947306796/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=4484395326947306796' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/4484395326947306796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/4484395326947306796'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2009/02/macportsapache.html' title='MacPortsのApacheを利用する'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-885632665598148973</id><published>2008-11-16T15:37:00.006+09:00</published><updated>2008-11-16T18:25:55.103+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZABBIX'/><title type='text'>CentOS5にZABBIXをインストール</title><content type='html'>最近めっきり記事を書くことができませんでした。&lt;br /&gt;今回は統合監視ツールのZABBIXをインストールしてみます。&lt;br /&gt;今までMRTGとSNMPを使用してネットワークやリソースの監視を行っていたわけですが、ZABBIXを使えば比較的簡単にインストールできそうです。&lt;br /&gt;&lt;br /&gt;データの保存にMySQLを使用するので、yumでMySQLをインストールします。&lt;br /&gt;他に、SNMPのライブラリ、PHP関連パッケージも必要なので入れておきます。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# yum install mysql mysql-server&lt;br /&gt;# yum install net-snmp-libs&lt;br /&gt;# yum install php php-bcmath php-mysql php-gd&lt;/div&gt;&lt;br /&gt;他にfpingとiksemelのパッケージに依存関係がありますが、これらはyumからインストールすることはできません。&lt;br /&gt;なので&lt;a href="http://dag.wieers.com/"&gt;DAG&lt;/a&gt;からrpmを持ってきてインストールします。&lt;br /&gt;今回はiksemel-1.3-1とfping-2.4.1.b2.2を使用しました。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# wget http://dag.wieers.com/rpm/packages/iksemel/iksemel-1.3-1.el5.rf.i386.rpm&lt;br /&gt;# rpm -ivh iksemel-1.3-1.el5.rf.i386.rpm &lt;br /&gt;# wget http://dag.wieers.com/rpm/packages/fping/fping-2.4-1.b2.2.el5.rf.i386.rpm&lt;br /&gt;# rpm -ivh fping-2.4-1.b2.2.el5.rf.i386.rpm &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;これで依存関係があるパッケージの導入は完了です。&lt;br /&gt;ZABBIXの本体とWebのインストールを行います。&lt;br /&gt;パッケージは、&lt;a href="http://www.zabbix.jp/"&gt;本家サイト&lt;/a&gt;からrpmをダウンロードしてきます。&lt;br /&gt;あとはダウンロードしたパッケージをインストールすることができます。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# rpm -ivh zabbix-1.4.5-1.el5.i386.rpm&lt;br /&gt;# rpm -ivh zabbix-web-1.4.5-1.el5.i386.rpm&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;設定&lt;br /&gt;まずMySQLにデータベースの作成とユーザの作成を行います。&lt;br /&gt;データベース名zabbix、ユーザ名zabbixを作成します。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# mysqladmin create zabbix&lt;br /&gt;# mysql&lt;br /&gt;mysql&gt; grant all on *.* to zabbix@localhost identified by 'hogehoge';&lt;br /&gt;mysql&gt; \q&lt;/div&gt;&lt;br /&gt;次にZABBIXに使用するデータベースの初期化を行います。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# cd /usr/share/doc/zabbix-1.4.5/dbinit&lt;br /&gt;# cat schema/mysql.sql |mysql -uzabbix -p'hogehoge' zabbix&lt;br /&gt;# cat data/data.sql |mysql -uzabbix -p'hogehoge' zabbix&lt;br /&gt;# cat data/images_mysql.sql | mysql -uzabbix -p'hogehoge' zabbix&lt;/div&gt;&lt;br /&gt;次に/etc/zabbix/zabbix_server.confを編集し設定を行います。&lt;br /&gt;変更する箇所はDBPasswordをコメントアウトし、DBに設定したパスワードに変更します。&lt;br /&gt;ここまで完了したら、zabbixを起動します。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# /etc/init.d/zabbix start&lt;/div&gt;&lt;br /&gt;次にWebUIから設定を行います。&lt;br /&gt;最初にhttpdを再起動しないと、zabbix-webでインストールした設定が読み込まれないようなので再起動しておきます。&lt;br /&gt;再起動後"http://&amp;lt;インストールしたサーバ&amp;gt;/zabbix/index.php"にアクセスすると下記のような画面が表示されるので、指示に従って質問に答えます。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FsZBIewJDJA/SR_Om7-a0iI/AAAAAAAAAEs/kk2JleUngnQ/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 218px;" src="http://3.bp.blogspot.com/_FsZBIewJDJA/SR_Om7-a0iI/AAAAAAAAAEs/kk2JleUngnQ/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5269157257376616994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;途中でPHPの設定を編集するように促されたので、/etc/php.iniのmax_execution_timeを300に、data-timezoneをAsia/Tokyoに変更してhttpdを再起動しました。&lt;br /&gt;最後に/etc/zabbix/zabbix.conf.phpをダウンロードして上書きするように指示されるので、ダウンロードし、サーバの該当ファイルを上書きします。&lt;br /&gt;すべてが終了したらログイン画面が表示されるので、ユーザ名admin、パスワードは空白でログインします。&lt;br /&gt;&lt;br /&gt;使用方法についてはまた別の記事で書こうと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-885632665598148973?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/885632665598148973/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=885632665598148973' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/885632665598148973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/885632665598148973'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/11/centos5zabbix.html' title='CentOS5にZABBIXをインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_FsZBIewJDJA/SR_Om7-a0iI/AAAAAAAAAEs/kk2JleUngnQ/s72-c/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-5571464805004491386</id><published>2008-10-20T00:15:00.000+09:00</published><updated>2008-10-19T21:48:12.482+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iSCSI'/><title type='text'>iSCSIターゲット(CentOS)とiSCSIイニシエーター(MacOS)のインストール</title><content type='html'>iSCSIはEthernet上でSCSIプロトコルのやりとりを行うことで、安価なEthernetの機器を利用してSANを構築することができるものです。&lt;br /&gt;今回はそのiSCSIの環境を構築してみたいと思います。&lt;br /&gt;ちなみにiSCSIのディスク(サーバー)に相当するものがターゲット、クライアントに相当するものをイニシエータと呼びます。&lt;br /&gt;&lt;br /&gt;ちなみに、ターゲットとイニシエータは多くは1対1で利用します。&lt;br /&gt;複数から接続する場合は、それに対応したファイルシステム(GFS,OCFSなど)が必要です。&lt;br /&gt;これは普通のSCSIと同じですね。&lt;br /&gt;&lt;br /&gt;まず、iSCSIターゲットのインストールをします。&lt;br /&gt;Linuxでは&lt;a href="http://iscsitarget.sourceforge.net/"&gt;iSCSI Enterprise Target&lt;/a&gt;というものがあるので、これを使用します。&lt;br /&gt;下記の手順でインストールすることが可能です。&lt;br /&gt;途中openssl-develを求められたので、インストールしていない場合はyumで導入しておきます。&lt;br /&gt;KSRCには今起動しているカーネルのソースツリーを指定します。&lt;br /&gt;カーネルソースが入っていない場合もyumで導入しておきます。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# wget http://nchc.dl.sourceforge.net/sourceforge/iscsitarget/iscsitarget-0.4.16.tar.gz&lt;br /&gt;# tar xzvf iscsitarget-0.4.16.tar.gz &lt;br /&gt;# cd iscsitarget-0.4.16&lt;br /&gt;# make KSRC=/usr/src/kernels/2.6.18-92.1.13.el5xen-i686/&lt;br /&gt;# make KSRC=/usr/src/kernels/2.6.18-92.1.13.el5xen-i686/ install&lt;/div&gt;&lt;br /&gt;次に設定を行います。&lt;br /&gt;今回はテストなので、適当なイメージファイルを作成します。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# dd if=/dev/zero of=/tmp/test.img bs=1M count=1024&lt;/div&gt;&lt;br /&gt;次に設定ファイルの/etc/ietd.confを編集します。&lt;br /&gt;Targetから始まる行を削除し、以下のように記述します。&lt;br /&gt;iqnから始まる部分は環境によって読み替えてください。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;Target iqn.2008-10.com.hirokikana:storage.test&lt;br /&gt; Lun 0 Path=/tmp/test.img,Type=fileio&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;最後にiSCSIターゲットを起動します。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# /etc/init.d/iscsi-target start&lt;br /&gt;# chkconfig iscsi-target on&lt;/div&gt;&lt;br /&gt;これでインストール完了です。&lt;br /&gt;&lt;br /&gt;ひとまずMacにイニシエーターをインストールして動作確認しました。&lt;br /&gt;Macのイニシエーターは&lt;a href="http://www.studionetworksolutions.com/products/product_detail.php?t=more&amp;pi=11"&gt;globalSAN iSCSI Initiator for OS X&lt;/a&gt;を使用しました。&lt;br /&gt;公式サイトからダウンロードしてきて、あとは普通にインストールします。&lt;br /&gt;インストール後OSの再起動が必要です。&lt;br /&gt;&lt;br /&gt;再起動後、システム環境設定にglobalSAN iSCSIの設定項目が追加されています。&lt;br /&gt;メニューのPortalsを選び、下の+マークを押すとホスト名を入力するダイアログが表示されるので、iSCSIターゲットをインストールしたホスト名を指定します。&lt;br /&gt;次にメニューのTargetsを選ぶとインストールしたTargetが表示されているので選択し、Log Onボタンを押します。&lt;br /&gt;すると何かいろいろ入力するダイアログが出ますが、Connectボタンを押します。&lt;br /&gt;これで接続完了です。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FsZBIewJDJA/SPsqnUcKkkI/AAAAAAAAAEE/lnKoXEe-DcE/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_FsZBIewJDJA/SPsqnUcKkkI/AAAAAAAAAEE/lnKoXEe-DcE/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5258843844875293250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;このときは初めて接続したのでフォーマットをするか聞かれます。&lt;br /&gt;とりあえずFATでフォーマットしてみました。&lt;br /&gt;あとは普通のディスクとして使用できます。&lt;br /&gt;アイコンが黒ベースのちょっと違う感じになっています。&lt;br /&gt;&lt;br /&gt;認証とか経路の暗号化などもできるようですが、中からつなげるだけなので特にいらないかなぁと思ってます。&lt;br /&gt;でも、情報収集のためにいずれ使ってみます。&lt;br /&gt;&lt;br /&gt;ちなみにXbenchで計測してみたところ以下のような感じになりました。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;&lt;pre&gt;Sequential 15.58 &lt;br /&gt; Uncached Write 17.50 10.74 MB/sec [4K blocks]&lt;br /&gt; Uncached Write 15.02 8.50 MB/sec [256K blocks]&lt;br /&gt; Uncached Read 12.08 3.54 MB/sec [4K blocks]&lt;br /&gt; Uncached Read 19.91 10.01 MB/sec [256K blocks]&lt;br /&gt;Random 47.90 &lt;br /&gt; Uncached Write 39.79 4.21 MB/sec [4K blocks]&lt;br /&gt; Uncached Write 26.12 8.36 MB/sec [256K blocks]&lt;br /&gt; Uncached Read 489.62 3.47 MB/sec [4K blocks]&lt;br /&gt; Uncached Read 55.37 10.27 MB/sec [256K blocks]&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;iSCSIの意味がないくらい遅いですね。&lt;br /&gt;なぜなら我が家のネットワークは未だに100BASE/TXだからなのです。&lt;br /&gt;Gigaにすればもっと早くなると思います。&lt;br /&gt;今使ってるスイッチがAllideの16ポートスイッチなので、新しいのにするの躊躇してるんですよね。&lt;br /&gt;それにいつもしていることで100BASE/TXで困ったことがないもので…。&lt;br /&gt;&lt;br /&gt;次回はLinuxのマシンにイニシエーターをインストールして接続してみます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-5571464805004491386?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/5571464805004491386/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=5571464805004491386' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5571464805004491386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5571464805004491386'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/10/iscsicentosiscsimacos.html' title='iSCSIターゲット(CentOS)とiSCSIイニシエーター(MacOS)のインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_FsZBIewJDJA/SPsqnUcKkkI/AAAAAAAAAEE/lnKoXEe-DcE/s72-c/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-7761173602857344665</id><published>2008-10-19T19:28:00.003+09:00</published><updated>2008-10-19T20:00:22.945+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cobbler'/><category scheme='http://www.blogger.com/atom/ns#' term='Xen'/><title type='text'>CobblerでDomainUをインストールする</title><content type='html'>Cobblerを使ってDomainUをインストールしたいときはKoanというものを使用すると良いらしいですが、virt-installだけで可能でした。&lt;br /&gt;&lt;br /&gt;virt-installでインストール時に指定するインストール場所は、下記のようなURLを指定します。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;http://&amp;lt;Cobblerをインストールしたホスト名&amp;gt;/cblr/links/&amp;lt;profile名&amp;gt;/&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Cobblerでのキックスタートファイルは下記のようなURLで取得することができます。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;http://&amp;lt;Cobblerをインストールしたホスト名&amp;gt;/cblr/svc/op/ks/profile/&amp;lt;profile名&amp;gt;&lt;/div&gt;&lt;br /&gt;profile名はCobblerでimportするときに指定した物です。&lt;br /&gt;忘れてしまった場合はcobbler reportコマンドで確認することができます。&lt;br /&gt;&lt;br /&gt;virt-install時にキックスタートファイルを指定することもできます。&lt;br /&gt;下記のように指定します。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# virt-install --name=centos5 --ram=512 --file=/home/xen/centos5.img --file-size=15 --location=http://url/cblr/links/CentOS-5.2-i386/ --nographics -x ks=http://url/cblr/svc/op/ks/profile/CentOS-5.2-i386&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;あとはCobblerでインストールするときと同じように待っているだけでインストールが完了します。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-7761173602857344665?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/7761173602857344665/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=7761173602857344665' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7761173602857344665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7761173602857344665'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/10/cobblerdomainu.html' title='CobblerでDomainUをインストールする'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-3469588956209820352</id><published>2008-10-14T21:44:00.005+09:00</published><updated>2008-10-14T23:54:03.473+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xen'/><title type='text'>DomainUをVNC経由で操作する</title><content type='html'>Xenを最近ちょくちょく触ってます。&lt;br /&gt;XenのPara-Virtualisationしか使ってないのですが、特に不便する点はないうえ、体感速度は物理マシンと変わらない気がします。&lt;br /&gt;今度機会があったらなんらかのパフォーマンス検証してみます。&lt;br /&gt;&lt;br /&gt;前回の記事でvirt-installを使ってCUIで簡単にインストールすることはできました。&lt;br /&gt;今回は、他のマシンからVNC経由で画面を飛ばして操作してみました。&lt;br /&gt;&lt;br /&gt;まず、Xenの共通設定でVNCの設定をします。&lt;br /&gt;Xenの設定は/etc/xen/xend-config.sxpです。&lt;br /&gt;このファイルの(vnc-listen '127.0.0.1')のコメントアウトを外します。&lt;br /&gt;あと、127.0.0.1の部分を別のホストから接続できるように、0.0.0.0にします。&lt;br /&gt;VNC接続時のパスワードを設定したい場合は(vncpasswdに指定します。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;(vnc-listen '0.0.0.0')&lt;br /&gt;(vncpasswd '&amp;lt;パスワード&amp;gt;')&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;設定ファイルを編集したらxendを再起動します。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;&lt;pre&gt;# /etc/init.d/xend restart&lt;br /&gt;restart xend を起動中:                                     [  OK  ]&lt;br /&gt;#&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;virt-installでインストールする際にVNCで飛ばす方法は--nographicsと指定していた部分を--vncにします。&lt;br /&gt;必須ではありませんが、--vncportでポート番号を指定することもできます。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# virt-install --vnc --vncport &amp;lt;ポート番号&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;あとは、前回と同じようにいくつかの質問に答えるとインストールが開始されます。&lt;br /&gt;インストールが開始されるとVNCで接続することが可能なので、Domain0のホスト名、指定したポート番にアクセスします。&lt;br /&gt;ポート番号は指定していない場合、5900+nになります。&lt;br /&gt;nは起動した順になってました。ランダムなわけがないので、あとで調べておきます。&lt;br /&gt;とりあえず1台しかいない場合はだいたい5900です。&lt;br /&gt;するとGUIのインストーラーの画面が表示されます。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FsZBIewJDJA/SPScx8hINyI/AAAAAAAAAD0/NFpBYctjjNM/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_FsZBIewJDJA/SPScx8hINyI/AAAAAAAAAD0/NFpBYctjjNM/s200/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5256999046920812322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;次にすでに--nographicsを指定してインストールしたDomainUをVNC経由で操作する方法です。&lt;br /&gt;まず、/etc/xen以下にあるDomainUの設定ファイル中の下記部分を編集します。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;vfb = [ "type=vnc,vncunused=1" ]&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;上記の設定をしたらxm createでDomainUを起動します。&lt;br /&gt;DomainU用のVNCも立ち上がっているのですが、このままではVNCの画面には何も表示されません。&lt;br /&gt;これで2時間近くはまったのですが、どうやら--nographicsを指定してインストールすると端末が1つも生成されない設定になってしまっていました。&lt;br /&gt;/etc/inittabの下記部分を編集して端末を生成するようにしたらVNCに表示されました。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;1:2345:respawn:/sbin/mingetty tty1&lt;br /&gt;2:2345:respawn:/sbin/mingetty tty2&lt;br /&gt;3:2345:respawn:/sbin/mingetty tty3&lt;br /&gt;4:2345:respawn:/sbin/mingetty tty4&lt;br /&gt;5:2345:respawn:/sbin/mingetty tty5&lt;br /&gt;6:2345:respawn:/sbin/mingetty tty6&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;このVNCの機能はqemuに入っているVNCの機能を使った物らしく、OSの起動画面からきちんと表示することができます。&lt;br /&gt;DomainU上にVNC serverを入れなくても使用できるので便利です。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FsZBIewJDJA/SPSydOEcHpI/AAAAAAAAAD8/0u1_UuKJWXY/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_FsZBIewJDJA/SPSydOEcHpI/AAAAAAAAAD8/0u1_UuKJWXY/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5257022880110878354" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-3469588956209820352?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/3469588956209820352/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=3469588956209820352' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/3469588956209820352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/3469588956209820352'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/10/domainuvnc.html' title='DomainUをVNC経由で操作する'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FsZBIewJDJA/SPScx8hINyI/AAAAAAAAAD0/NFpBYctjjNM/s72-c/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-7520698441300349340</id><published>2008-10-13T00:10:00.000+09:00</published><updated>2008-10-13T00:10:01.012+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MacPorts'/><title type='text'>MacPortsのパッケージでconfigureオプションの変更</title><content type='html'>MacPortsのffmpegを使っていて、いろいろなオプションが有効になっていなかった。&lt;br /&gt;どうにかconfigureオプションをいじりたいと思って調べたところ、以下のコマンドで可能だった。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$ sudo port edit &lt;パッケージ名&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ちなみに、EDITOR環境変数を定義していないと怒られました。&lt;br /&gt;とりあえず、lameパッケージを導入してffmpegのconfigureオプションのlibmp3lameを有効にして再インストールしたら、正常に動作しました。&lt;br /&gt;すでにインストールしているパッケージの場合一度sudo port unistallしてから再度sudo port installしないとダメでした。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-7520698441300349340?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/7520698441300349340/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=7520698441300349340' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7520698441300349340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7520698441300349340'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/10/macportsconfigure.html' title='MacPortsのパッケージでconfigureオプションの変更'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-4944603003129310254</id><published>2008-10-12T21:19:00.003+09:00</published><updated>2008-10-12T21:29:05.875+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MacPorts'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>MacOSでvirtual-pythonが動かない…</title><content type='html'>LinuxでPythonの開発をするときは、下記サイトを参考にvirtual-python環境を構築して、システムのPython環境を汚さないように開発をしています。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://labs.unoh.net/2007/04/python.html"&gt;ウノウラボ Unoh Labs: Python開発環境を整えよう&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.reizn.net/article.php/20071127224943374"&gt;reizn Second-Life - virtual-pythonの使い方&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;今日Macで同じようにしてみたのですが、どうやらうまく使用できない。&lt;br /&gt;PYTHONPATHとかいろんなこと設定してみたりしましたが、easy_installすると動かないことが…orz&lt;br /&gt;特にpysqliteとsqliteあたりが全然動かなかった…&lt;br /&gt;&lt;br /&gt;と、数時間考えて…&lt;br /&gt;よく考えてみたら、MacPortsが…。&lt;br /&gt;しかもMacPortsには相当多くのPythonモジュールが…&lt;br /&gt;結局、MacPortsで使うようにしました。&lt;br /&gt;下記のものはちゃんと動きました。&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Python 2.4&lt;/li&gt;&lt;br /&gt;&lt;li&gt;SQLAlchemy&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Mako&lt;/li&gt;&lt;br /&gt;&lt;li&gt;pysqlite&lt;/li&gt;&lt;br /&gt;&lt;li&gt;flup&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MacPortsならシステムのPython環境は汚さないし、最初からこうすれば良かった…。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-4944603003129310254?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/4944603003129310254/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=4944603003129310254' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/4944603003129310254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/4944603003129310254'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/10/macosvirtual-python.html' title='MacOSでvirtual-pythonが動かない…'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-7348931369525598898</id><published>2008-10-05T20:57:00.003+09:00</published><updated>2008-10-05T22:36:26.211+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hadoop'/><title type='text'>Hadoopをインストール</title><content type='html'>先日のOSC2008で&lt;a href="http://hadoop.apache.org/"&gt;Hadoop&lt;/a&gt;のセッションを聞いてきたのですが、イマイチしっくりきませんでした。&lt;br /&gt;一緒に紹介されたLustreという分散ファイルシステムの方が良いのでは？(POSIX互換だし)と思っているのですが、話題にされるには何か理由があるだろうということでちょっとインストールしてみつつ、理解を深めてみようかと思います。&lt;br /&gt;&lt;br /&gt;ちなみに以下の記事を参考にしました。というより下記の記事の手順以上のことはしてません。&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://codezine.jp/article/detail/2448"&gt;Hadoop、hBaseで構築する大規模分散データ処理システム &lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://codezine.jp/article/detail/2485?p=1"&gt;CodeZine - Hadoopのインストールとサンプルプログラムの実行&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;まず、JDKをインストールします。&lt;br /&gt;yumだとgcjが入る模様なので、Sunのサイトからダウンロードしてきました。&lt;br /&gt;バージョンは6 Update7でした。&lt;br /&gt;&lt;br /&gt;次に、SSHでlocalhostにパスワードなしで入れるようにします。&lt;br /&gt;下記のような操作を行います。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$ ssh-keygen -t rsa -P ""&lt;br /&gt;$ cat .ssh/id_rsa.pub &gt;&gt; .ssh/authorized_keys&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ちなみに.ssh/authorized_keysがない場合は作成後パーミッションを600にしておきます。&lt;br /&gt;これでパスワードなしで入ることができるようになります。&lt;br /&gt;&lt;br /&gt;次にHadoopをダウンロードします。&lt;br /&gt;Hadoop CoreというのがHadoopの本体なようです。&lt;br /&gt;バージョンは私が検証したときは0.18.1でした。&lt;br /&gt;ダウンロードしたら、展開しディレクトリに入ります。&lt;br /&gt;ディレクトリ以下のconf/hadoop-env.shのJAVA_HOMEを設定します。&lt;br /&gt;私の場合は/usr/java/jdk1.6.0_07に設定しました。&lt;br /&gt;次にconf/hadoop-default.xmlをconf/hadoop-site.xmlにコピーし、hadoop-site.xmlを編集します。&lt;br /&gt;たくさん項目がありますが、下記の3つについて編集を行いました。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;&lt;pre&gt;&amp;lt;property&gt;&lt;br /&gt;  &amp;lt;name&gt;hadoop.tmp.dir&amp;lt;/name&gt;&lt;br /&gt;  &amp;lt;value&gt;/tmp/hadoop&amp;lt;/value&gt;&lt;br /&gt;&amp;lt;/property&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;property&gt;&lt;br /&gt;  &amp;lt;name&gt;fs.default.name&amp;lt;/name&gt;&lt;br /&gt;  &amp;lt;value&gt;hdfs://localhost:54310&amp;lt;/value&gt;&lt;br /&gt;&amp;lt;/property&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;property&gt;&lt;br /&gt;  &amp;lt;name&gt;mapred.job.tracker&lt;/name&gt;&lt;br /&gt;  &amp;lt;value&gt;localhost:54311&lt;/value&gt;&lt;br /&gt;&amp;lt;/property&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;いろいろ設定できるらしいですが、あとで調べてみます。&lt;br /&gt;とりあえず今はこのまま進めます。&lt;br /&gt;&lt;br /&gt;次にフォーマットと起動を行います。&lt;br /&gt;./bin/hadoop namenode -formatでフォーマットを行い、./bin/start-all.shで起動することができます。&lt;br /&gt;停止する際は./bin/stop-all.shで停止することができます。&lt;br /&gt;起動確認はjpsがなかったので、psとnetstatで確認しました。&lt;br /&gt;&lt;br /&gt;とりあえず付属のサンプルを使って試してみます。&lt;br /&gt;ファイル中の文字列出現数を計測するサンプルを実行してみます。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;&lt;pre&gt;$ mkdir inputs&lt;br /&gt;$ cat &gt; inputs/file1&lt;br /&gt;hoge hoge hoge fuga fuga&lt;br /&gt;$ ./bin/hadoop dfs -copyFromLocal inputs inputs/&lt;br /&gt;$ ./bin/hadoop dfs -ls&lt;br /&gt;Found 1 items&lt;br /&gt;drwxr-xr-x   - hiroki supergroup          0 2008-10-05 21:49 /user/hiroki/inputs&lt;br /&gt;$ ./bin/hadoop jar hadoop-0.18.1-examples.jar wordcount inputs outputs&lt;br /&gt;08/10/05 21:51:11 INFO mapred.FileInputFormat: Total input paths to process : 1&lt;br /&gt;08/10/05 21:51:11 INFO mapred.FileInputFormat: Total input paths to process : 1&lt;br /&gt;08/10/05 21:51:11 INFO mapred.JobClient: Running job: job_200810052142_0001&lt;br /&gt;08/10/05 21:51:12 INFO mapred.JobClient:  map 0% reduce 0%&lt;br /&gt;08/10/05 21:51:24 INFO mapred.JobClient:  map 100% reduce 0%&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient: Job complete: job_200810052142_0001&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient: Counters: 16&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:   File Systems&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     HDFS bytes read=39&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     HDFS bytes written=14&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Local bytes read=36&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Local bytes written=158&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:   Job Counters &lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Launched reduce tasks=1&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Launched map tasks=2&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Data-local map tasks=2&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:   Map-Reduce Framework&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Reduce input groups=2&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Combine output records=4&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Map input records=1&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Reduce output records=2&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Map output bytes=45&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Map input bytes=25&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Combine input records=7&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Map output records=5&lt;br /&gt;08/10/05 21:51:39 INFO mapred.JobClient:     Reduce input records=2&lt;br /&gt;$ ./bin/hadoop dfs -ls &lt;br /&gt;Found 2 items&lt;br /&gt;drwxr-xr-x   - hiroki supergroup          0 2008-10-05 21:49 /user/hiroki/inputs&lt;br /&gt;drwxr-xr-x   - hiroki supergroup          0 2008-10-05 21:51 /user/hiroki/outputs&lt;br /&gt;$ ./bin/hadoop dfs -ls outputs&lt;br /&gt;Found 2 items&lt;br /&gt;drwxr-xr-x   - hiroki supergroup          0 2008-10-05 21:51 /user/hiroki/outputs/_logs&lt;br /&gt;-rw-r--r--   3 hiroki supergroup         14 2008-10-05 21:51 /user/hiroki/outputs/part-00000&lt;br /&gt;$ ./bin/hadoop dfs -cat outputs/part-00000&lt;br /&gt;fuga 2&lt;br /&gt;hoge 3&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ふむふむ、確かにできている。&lt;br /&gt;これ実態はどこにいるんでしょうか。&lt;br /&gt;もしかしてhadoop.tmp.dir？&lt;br /&gt;とすると、/tmp以下はめちゃくちゃヤバいですね。&lt;br /&gt;とりあえず今回は動いているところを見ることが目的だったので、もう一度資料を見直してみます。&lt;br /&gt;&lt;br /&gt;いまいちHadoopの力を享受できている気がしないので、もうちょっと調べてみます。&lt;br /&gt;あと、そもそもMapReduceの話とかももう少し詳しく調べてみようと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-7348931369525598898?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/7348931369525598898/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=7348931369525598898' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7348931369525598898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7348931369525598898'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/10/hadoop.html' title='Hadoopをインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-5785143480083885881</id><published>2008-10-05T18:00:00.006+09:00</published><updated>2008-10-05T18:06:04.172+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xen'/><title type='text'>CentOS 5.2にXenを導入</title><content type='html'>先日OSC 2008 Tokyo fallに行ってきました。&lt;br /&gt;土曜日は元気がなくて参加できなかったのが残念でした。&lt;br /&gt;やはり刺激になりますね、ああいうイベントは。&lt;br /&gt;しかし、最近企業さんが増えましたね。&lt;br /&gt;初めて行ったときはほとんどいなかった気が…。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;この前図らずも2台ほどサーバを手に入れたのでそこにXenを導入してみたいと思います。&lt;br /&gt;下記が導入するマシンのスペックです。&lt;div&gt;&lt;table border="1" style="margin-top:0px;"&gt;&lt;tr&gt;&lt;td&gt;型名&lt;/td&gt;&lt;td&gt;NEC Express5800/110Eh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CPU&lt;/td&gt;&lt;td&gt;Intel Pentium4 3GHz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Memory&lt;/td&gt;&lt;td&gt;2.25GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDD&lt;/td&gt;&lt;td&gt;250GB(ATA)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OS&lt;/td&gt;&lt;td&gt;CentOS 5 32bit&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;すでにCentOS 5はインストール済みです。&lt;br /&gt;ちなみにPentium 4なのでIntel-VTは搭載されていません。&lt;br /&gt;そこにyumを使ってXenをインストールします。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# yum groupinstall Virtualization&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;これで仮想化関連のパッケージがインストールされます。&lt;br /&gt;次に、再起動をしXen用のカーネルを読み込むのですが、GRUBの設定を変更してXen用のカーネルがデフォルトで起動するようにします。&lt;br /&gt;/etc/grub.confのdefaultを1から0に変更します。&lt;br /&gt;編集後は以下のようになっているはずです。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;&lt;pre&gt;default=0&lt;br /&gt;timeout=5&lt;br /&gt;splashimage=(hd0,0)/boot/grub/splash.xpm.gz&lt;br /&gt;hiddenmenu&lt;br /&gt;title CentOS (2.6.18-92.1.13.el5xen)&lt;br /&gt; root (hd0,0)&lt;br /&gt; kernel /boot/xen.gz-2.6.18-92.1.13.el5&lt;br /&gt; module /boot/vmlinuz-2.6.18-92.1.13.el5xen ro root=LABEL=/&lt;br /&gt; module /boot/initrd-2.6.18-92.1.13.el5xen.img&lt;br /&gt;title CentOS (2.6.18-92.el5)&lt;br /&gt; root (hd0,0)&lt;br /&gt; kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/&lt;br /&gt; initrd /boot/initrd-2.6.18-92.el5.img&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;/etc/modprobe.confにalias scsi_hostadapter xenblkを追記します。&lt;br /&gt;これはどうやら仮想ディスクを読み込むための記述らしいです。&lt;br /&gt;# よくわかってません…orz&lt;br /&gt;デフォルトのカーネルを変更するために/etc/sysconfg/kernelのDEFAULTKERNELをkernelからkernel-xenに変更します。&lt;br /&gt;&lt;br /&gt;再起動し、Xen用のカーネル(2.6.18-92.1.13.el5xen)で立ち上がってるかuname -aなどを利用して確認します。&lt;br /&gt;xendを立ち上げ、再起動後も立ち上がるように設定します。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;&lt;pre&gt;# /etc/init.d/xend start&lt;br /&gt;xend を起動中:                                             [  OK  ]&lt;br /&gt;# chkconfig xend on&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;次に、ゲストOS(DomainUというのか)を作成します。&lt;br /&gt;今回はFull-Virtualizationが利用できないので、おのずとPara-Virtualizationに対応したOSしか使うことができません。&lt;br /&gt;インストールにはvirt-installコマンドを使います。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# virt-install --nographics --file=/tmp/hoge&lt;br /&gt;　仮想マシンの名前は何ですか? &lt;b&gt;CentOS5_test&lt;/b&gt;&lt;br /&gt;　どれだけの RAM を割り当てますか (メガバイト単位で)? &lt;b&gt;256&lt;/b&gt;&lt;br /&gt;　どの位の大きさのディスク (/tmp/hoge) にしたいですか(ギガバイト単位で)? &lt;b&gt;10&lt;/b&gt;&lt;br /&gt;　インストール場所は何ですか? &lt;b&gt;http://mirror.centos.org/centos/5/os/i386/&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;virt-installのオプションの--nographicsはテキストモードでインストールを行い、--fileはDomainUのディスクイメージの保存先を指定します。&lt;br /&gt;いくつかの質問に答えると、インストールが開始されます。&lt;br /&gt;あとは通常通りにインストールするだけです。&lt;br /&gt;&lt;br /&gt;ちなみにインストール元の指定はhttp、ftp、nfsが可能で、指定した先にimages/xen/があることが条件です。&lt;br /&gt;CentOS5以降とFedora6以降はimages/xenディレクトリが存在したので、直接指定することが可能です。&lt;br /&gt;&lt;br /&gt;インストール後、DomainUのコンソールから抜けるにはCtrl+]を押します。&lt;br /&gt;DomainUのコンソールに入るにはxm console &lt;DomainU名&gt;コマンドです。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;やってみた感じですが、思った以上に簡単に扱えるのですね。&lt;br /&gt;「Para-VirtualizationだとOSにいろいろパッチみたいの当てて面倒なんだろうなぁ」と勝手に思い込んでいたのですが、ここまで簡単だとは。&lt;br /&gt;あとはCobblerと連携させればインストールも楽になれそうな気がするので、今度やってみます。&lt;br /&gt;&lt;br /&gt;参考サイト&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://lightson.dip.jp/blog/seko/1238"&gt;http://lightson.dip.jp/blog/seko/1238&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/yoshifumi1975/20080509/p1"&gt;http://d.hatena.ne.jp/yoshifumi1975/20080509/p1&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://shain.blog.conextivo.com/2007/04/xen_centos5virtinstall.html"&gt;http://shain.blog.conextivo.com/2007/04/xen_centos5virtinstall.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-5785143480083885881?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/5785143480083885881/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=5785143480083885881' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5785143480083885881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5785143480083885881'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/10/centos-52xen.html' title='CentOS 5.2にXenを導入'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-4432774258482638228</id><published>2008-10-05T12:14:00.003+09:00</published><updated>2008-10-05T12:56:22.287+09:00</updated><title type='text'>yumでグループ単位でインストール</title><content type='html'>OSインストール時にグループを選択してインストールすると思います。&lt;br /&gt;インストール後に、そのグループをまとめてインストールしたい場合もあると思います。&lt;br /&gt;Xが入っていればGUIツールでできそうですが(やったことない上、詳細調べていませんができますよね？)、どうにかyumからやりたい。&lt;br /&gt;昔(Fedora Core1,2?)はできなかったそうですが、yumでもグループインストールが可能です。&lt;br /&gt;まず、今インストールされているグループやインストールできるグループを調べるときはyum grouplistを使います。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;&lt;pre&gt;# yum grouplist&lt;br /&gt;Loading "fastestmirror" plugin&lt;br /&gt;Setting up Group Process&lt;br /&gt;Loading mirror speeds from cached hostfile&lt;br /&gt; * base: www.ftp.ne.jp&lt;br /&gt; * updates: www.ftp.ne.jp&lt;br /&gt; * addons: www.ftp.ne.jp&lt;br /&gt; * extras: www.ftp.ne.jp&lt;br /&gt;Installed Groups:&lt;br /&gt;   Editors&lt;br /&gt;   System Tools&lt;br /&gt;   Legacy Network Server&lt;br /&gt;   Dialup Networking Support&lt;br /&gt;   Network Servers&lt;br /&gt;   Emacs&lt;br /&gt;   Web Server&lt;br /&gt;   Mail Server&lt;br /&gt;   Yum Utilities&lt;br /&gt;Available Groups:&lt;br /&gt;   Tomboy&lt;br /&gt;   Cluster Storage&lt;br /&gt;   Office/Productivity&lt;br /&gt;   Engineering and Scientific&lt;br /&gt;   MySQL Database&lt;br /&gt;   Development Libraries&lt;br /&gt;   Beagle&lt;br /&gt;   GNOME Software Development&lt;br /&gt;   Text-based Internet&lt;br /&gt;   X Software Development&lt;br /&gt;   Virtualization&lt;br /&gt;   DNS Name Server&lt;br /&gt;   GNOME Desktop Environment&lt;br /&gt;   Authoring and Publishing&lt;br /&gt;   Base&lt;br /&gt;   FTP Server&lt;br /&gt;   Mono&lt;br /&gt;   Games and Entertainment&lt;br /&gt;   XFCE-4.4&lt;br /&gt;   Legacy Software Development&lt;br /&gt;   Clustering&lt;br /&gt;   Java&lt;br /&gt;   Java Development&lt;br /&gt;   OpenFabrics Enterprise Distribution&lt;br /&gt;   Legacy Software Support&lt;br /&gt;   X Window System&lt;br /&gt;   Graphics&lt;br /&gt;   Ruby&lt;br /&gt;   Windows File Server&lt;br /&gt;   Printing Support&lt;br /&gt;   KDE Software Development&lt;br /&gt;   KDE (K Desktop Environment)&lt;br /&gt;   Server Configuration Tools&lt;br /&gt;   Horde&lt;br /&gt;   Sound and Video&lt;br /&gt;   PostgreSQL Database&lt;br /&gt;   Administration Tools&lt;br /&gt;   News Server&lt;br /&gt;   Development Tools&lt;br /&gt;   FreeNX and NX&lt;br /&gt;   Graphical Internet&lt;br /&gt;Done&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;指定したグループをインストールするときはyum groupinstallを使います。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# yum groupinstall "FTP Server"&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ちなみにこのグループ名でkickstartの指定にも使えます。&lt;br /&gt;意外と使っていそうで使ってない機能な気がしました。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-4432774258482638228?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/4432774258482638228/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=4432774258482638228' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/4432774258482638228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/4432774258482638228'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/10/yum.html' title='yumでグループ単位でインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-7319458584385720148</id><published>2008-09-28T15:48:00.003+09:00</published><updated>2008-09-28T16:09:10.715+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Carbon EmacsでTramp</title><content type='html'>普段はEmacsを利用しているのですが、.emacsを各サーバに配置したり同期したりするのがとても面倒です。&lt;br /&gt;Trampを使えばEmacsからssh経由でリモートのファイルを開くことができます。&lt;br /&gt;.emacsの設定とかもなくてとても便利です。&lt;br /&gt;&lt;br /&gt;ちなみにCarbon EmacsはデフォルトでTrampが同梱されているので下記の設定を.emacsに書くだけで利用することができます。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;(require 'tramp)&lt;br /&gt;(setq tramp-default-method "ssh")&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;リモートのファイルを開くときはC-x C-fで/&lt;ユーザ名&gt;@&lt;ホスト名&gt;:&lt;リモート上のファイルフルパス&gt;でできます。&lt;br /&gt;開くときに一度だけパスワード(もしくはパスフレーズ)を聞かれますが、以降保存したり他のファイルを開いたりするときは聞かれません。&lt;br /&gt;1カ所で様々な場所のファイルが編集できるのでとても便利です。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-7319458584385720148?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/7319458584385720148/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=7319458584385720148' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7319458584385720148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7319458584385720148'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/09/carbon-emacstramp.html' title='Carbon EmacsでTramp'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-7109173050909691213</id><published>2008-09-28T14:52:00.004+09:00</published><updated>2008-09-28T15:04:08.039+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cobbler'/><title type='text'>Cobblerの最新版を使ってネットワークインストール環境構築</title><content type='html'>前回Cobblerの環境構築について&lt;a href="http://hirokikana.blogspot.com/2008/08/cobbleros.html"&gt;書きました&lt;/a&gt;が、今回は実際に実マシンにインストールしたときのことを書きます。&lt;br /&gt;ちなみに前回はテストもかねてVMにインストールしてました。&lt;br /&gt;&lt;br /&gt;前回からそんなに時間が経ってないと思うのですが、バージョンが1.0.3から1.2.5まで上がってました。&lt;br /&gt;開発スピード早いですね。&lt;br /&gt;本家サイトも移動してました。(&lt;a href="https://fedorahosted.org/cobbler"&gt;https://fedorahosted.org/cobbler&lt;/a&gt;)&lt;br /&gt;さらにsrpmは1.2系しかなかったです。&lt;br /&gt;&lt;br /&gt;大半は前回の記事のままでOKだったのですが途中でkickstartのファイルがダウンロードできなくてはまりました。&lt;br /&gt;原因はlocalhostのXMLRPCサービスにアクセスしようとしたときに正しく取得できずこけてました。&lt;br /&gt;/etc/hostsに書いてあるlocalhostが::1になっていたので、それを127.0.0.1にしたらなおりました。&lt;br /&gt;::1ってIPv6？&lt;br /&gt;あとで調べておきます。&lt;br /&gt;&lt;br /&gt;とりあえず、CentOS 5.2とFedora9,8を用意しておきました。&lt;br /&gt;Ubuntuはcobbler importだとうまくいかなかったので保留しておきました。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-7109173050909691213?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/7109173050909691213/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=7109173050909691213' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7109173050909691213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7109173050909691213'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/09/cobbler.html' title='Cobblerの最新版を使ってネットワークインストール環境構築'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-5056295494447180159</id><published>2008-09-22T17:00:00.001+09:00</published><updated>2008-09-22T19:58:56.503+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DD-WRT'/><title type='text'>WBR-G54にDD-WRTをインストール</title><content type='html'>&lt;a href="http://www.dd-wrt.com/dd-wrtv3/index.php"&gt;DD-WRT&lt;/a&gt;は無線LANアクセスポイントのファームウェアの1種で、これを導入すると無線LANアクセスポイントがLinuxにすることが可能です。&lt;br /&gt;これによって、サポートされていない暗号化方式が使えるようになったりSNMPがしゃべれるようになったりします。&lt;br /&gt;また、Webからの管理画面もあり便利です。&lt;br /&gt;&lt;br /&gt;私が持ってるWBR-G54も一応対応機種であるということなので、導入してみたいと思います。&lt;br /&gt;これを導入する際の注意点は元のファームウェアには戻しにくい(一応戻せるらしい)というのと、ミスると二度と起動しなくなるというところでしょうか。&lt;br /&gt;&lt;br /&gt;まず、DD-WRTのイメージをダウンロードしてきます。&lt;br /&gt;メニューのDownloadsをクリックするとディレクトリが表示されます。&lt;br /&gt;その中から「v24-sp1→Consumer→Buffalo→WBR-G54」の順でたどっていき、dd-wrt.v24_std_generic.bin をダウンロードします。&lt;br /&gt;ほかにもVoIPとかVPNに最適なイメージがあるようですが、とりあえず今回は一番標準そうなやつを選択しました。&lt;br /&gt;&lt;br /&gt;次にアクセスポイントとPCをLANケーブルで直接つないでおきます。&lt;br /&gt;アクセスポイントの電源を入れたら工場出荷状態に初期化を行います。&lt;br /&gt;通常、背面のボタンを押して初期化できるはずなのですが私のやり方が悪いみたいでできませんでした。&lt;br /&gt;結局Web経由で行いました。&lt;br /&gt;初期化するとIPアドレスは192.168.11.1/24になりました。&lt;br /&gt;PCのIPアドレスは同じネットワークのアドレスを手入力で入れておきます。&lt;br /&gt;今回は192.168.11.20/24をPCに設定しておきました。&lt;br /&gt;&lt;br /&gt;次にイメージをそれぞれのアクセスポイントに合わせた形に編集する必要があります。&lt;br /&gt;正規のイメージと見比べつつバイナリエディタで編集すればできるらしいですが、Ddadderという便利なプログラムが公式から配布されているらしいので利用します。&lt;br /&gt;&lt;a href="http://www.dd-wrt.com/wiki/index.php/Ddadder"&gt;ここ&lt;/a&gt;からfor Linuxをダウンロードしてきます。&lt;br /&gt;バイナリはLinux用なので、付属のソースをgccを使ってコンパイルすることで使用することができるようになります。&lt;br /&gt;最後にできたプログラムを使用し、以下のようにすることで専用のイメージが作成できます。&lt;br /&gt;&lt;div style="padding: 5px; background-color: rgb(239, 239, 239);"&gt;$ ./ddadder dd-wrt.v24_std_generic.bin wbr-g54&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;あとはできたイメージを使用してWebからファームウェアの更新を行えば完了です。&lt;br /&gt;DIAGが点滅を繰り返している間はファームウェアを更新している最中なので、点滅が消えたら完了です。&lt;br /&gt;初期設定ではアクセスポイントが192.168.1.1/24に設定されているので、それに合わせてPCのIPアドレスも変更しておきます。&lt;br /&gt;今回は192.168.1.20/24にしておきました。&lt;br /&gt;&lt;br /&gt;ブラウザから192.168.1.1にアクセスすると管理画面が表示されます。&lt;br /&gt;最初はユーザ名とパスワードをどうするか聞かれるので任意のものを入力します。&lt;br /&gt;ちなみに最初は英語で表示されますが、AdministrationからLanguageを選択することで日本語での表示も可能です。&lt;br /&gt;&lt;br /&gt;とりあえず、いろいろ設定して遊んでみようかと思います。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;追記&lt;/b&gt;&lt;br /&gt;何か無線LANがつながらなくてファームウェアをいろいろ入れ替えてたらおなくなりになりました…orz&lt;br /&gt;素直に新しいの買ってきます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-5056295494447180159?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/5056295494447180159/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=5056295494447180159' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5056295494447180159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5056295494447180159'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/09/wbr-g54dd-wrt.html' title='WBR-G54にDD-WRTをインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-1501037986359824968</id><published>2008-09-22T13:39:00.007+09:00</published><updated>2008-09-22T14:57:53.666+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>MacOS X LeopardにFlex3 SDKをインストール</title><content type='html'>最近環境構築ネタばかりな気がしますが、気にしないで書きます。&lt;br /&gt;今回はFlashを使ったRIAフレームワークのFlexのインストールをしてみます。&lt;br /&gt;&lt;br /&gt;正直よくわかってないのですが、とりあえずFlashアプリがAdobe Flash CS3なしで作れるということだと理解しています。(齟齬が出てる可能性大)&lt;br /&gt;mxmlという記述方法でどのようなガワにするか定義して、ロジックについてはAS3を使うという感じでしょうか。&lt;br /&gt;コンパイルするとswfを吐いてくれます。&lt;br /&gt;なぜ、これを使おうかと思ったかというと私が絶賛作成中のNaNaCaというサーバ上でアニメを録画再生するソフトのプレーヤーを自作しようかと思ったからです。&lt;br /&gt;# ちなみにNaNaCaはfoltia(&lt;a href="http://www.dcc-jpl.com/soft/foltia/"&gt;http://www.dcc-jpl.com/soft/foltia/&lt;/a&gt;)のようなものです&lt;br /&gt;では、前置きはこれくらいにして。&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Flex3 SDKをダウンロード&lt;/li&gt;&lt;br /&gt;まずはFlex3 SDKをダウンロードします。&lt;br /&gt;ダウンロードはここ(&lt;a href="http://www.adobe.com/products/flex/flexdownloads/"&gt;http://www.adobe.com/products/flex/flexdownloads/&lt;/a&gt;)から行います。&lt;br /&gt;ダウンロードリンクはライセンスに同意しないと有効にならないので、ライセンスを読んだ上でチェックを入れます。&lt;br /&gt;ちなみに80MBぐらいあります。&lt;br /&gt;ダウンロードしてきたflex_sdk_3.zipを展開します。&lt;br /&gt;これを適当な場所に配置します。私は/Developer/SDKs以下に配置しました。&lt;br /&gt;移動するときに認証を求められました。&lt;br /&gt;&lt;br /&gt;&lt;li&gt;PATHを通す&lt;/li&gt;&lt;br /&gt;Flex3 SDKにはいくつかのコマンドが存在するので、PATHを通しておきます。&lt;br /&gt;.bash_profileなどに以下のように記述しておきます。&lt;br /&gt;&lt;div style="padding: 5px; background-color: rgb(239, 239, 239);"&gt;export PATH=/Developer/SDKs/flex_sdk_3/bin:$PATH&lt;/div&gt;&lt;br /&gt;sourceコマンドで反映させるか、ターミナルを開き直して反映させます。&lt;br /&gt;&lt;li&gt;スタンドアローンFlash Playerのインストール&lt;/li&gt;&lt;br /&gt;ブラウザ上で実行できるので別に必要ないっちゃないのですが、debug情報とかも出せて便利なのでインストールしておきます。&lt;br /&gt;ここ(&lt;a href="http://www.adobe.com/support/flashplayer/downloads.html"&gt;http://www.adobe.com/support/flashplayer/downloads.html&lt;/a&gt;)のAdobe Flash Player 9 — Standalone Players (Projectors) for Macintoshからdebugと書いてある方をダウンロードします。&lt;br /&gt;展開するとFlash Playerが出てくるので、アプリケーション以下などに配置します。&lt;br /&gt;一度実行しておけばswfファイルはFlash Playerを使用して実行されます。&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Hello World&lt;/li&gt;&lt;br /&gt;さっそく使ってみます。&lt;br /&gt;適当な場所で以下のようなhoge.mxmlを作成します。&lt;br /&gt;&lt;div style="padding: 5px; background-color: rgb(239, 239, 239);"&gt;&lt;pre&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;mx:application mx="http://www.adobe.com/2006/mxml"&amp;gt;&lt;br /&gt; &amp;lt;mx:button label="Hello World" /&amp;gt;&lt;br /&gt;&amp;lt;/mx:application&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;次にコンパイルを行います。&lt;br /&gt;コンパイルはmxmlcコマンドを使用し、以下のようにします。&lt;br /&gt;&lt;div style="padding: 5px; background-color: rgb(239, 239, 239);"&gt;$ mxmlc hoge.mxml&lt;/div&gt;&lt;br /&gt;作成されたhoge.swfを実行すると下記のようになります。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FsZBIewJDJA/SNcsJJCMtbI/AAAAAAAAADs/7sy3XYc_0F0/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_FsZBIewJDJA/SNcsJJCMtbI/AAAAAAAAADs/7sy3XYc_0F0/s200/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.png" alt="" id="BLOGGER_PHOTO_ID_5248712426279187890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;今回はエディタで直接書いてコンパイルするという感じでしたが、Eclipseを使用したりFlex BuilderというIDEも用意されているそうです。&lt;br /&gt;私はいけるところまではEmacsで書き続けます。&lt;br /&gt;&lt;br /&gt;ちなみにswfファイルはSite以下に配置してWeb共有をオンにするとMacOS付属のApacheで確認することができるので便利です。&lt;br /&gt;というかファイルをブラウザで開くのとApacheで開くので挙動が違うのはなぜでしょうか。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-1501037986359824968?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/1501037986359824968/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=1501037986359824968' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/1501037986359824968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/1501037986359824968'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/09/macos-x-leopardflex3-sdk.html' title='MacOS X LeopardにFlex3 SDKをインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FsZBIewJDJA/SNcsJJCMtbI/AAAAAAAAADs/7sy3XYc_0F0/s72-c/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-3548949395237340925</id><published>2008-09-17T22:31:00.004+09:00</published><updated>2008-09-17T22:49:12.800+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Emacsのcolor-themeの設定(メモ)</title><content type='html'>Emacsのcolor-themeの設定の方法を失念しないようにメモ。&lt;br /&gt;意外と開発するときに背景色、文字色って気になるものなんですよね。&lt;br /&gt;&lt;br /&gt;とりあえずCarbon Emacsにはデフォルトでcolor-theme.elが同梱されているので.emacsに下記の設定を加えるだけでOK。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;(require 'color-theme)&lt;br /&gt;(color-theme-initialize)&lt;br /&gt;(color-theme-tty-dark)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;一番下の行はテーマを選択するところなので、自分の好みにあわせたものを選択してください。&lt;br /&gt;ちなみにテーマはM-x color-theme-selectで一覧を見ることができます。&lt;br /&gt;&lt;br /&gt;他の環境ではcolor-theme.elをload-pathの通ったところに配置する必要があります。&lt;br /&gt;&lt;a href="https://gna.org/projects/color-theme"&gt;ここ&lt;/a&gt;から必要なファイルをダウンロードしてきます。&lt;br /&gt;展開するとたくさんのファイルが出てくるのですが、とりあえず必要なのはcolor-theme.elとthemeディレクトリの2つです。&lt;br /&gt;これをload-pathの通ったところに配置して、上記の設定を.emacsに記述すればcolor-themeを使用することができます。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FsZBIewJDJA/SNEKw4d1ZeI/AAAAAAAAADk/KLGalpvJD8U/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_FsZBIewJDJA/SNEKw4d1ZeI/AAAAAAAAADk/KLGalpvJD8U/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5246986875770856930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Carbon EmacsとサーバのCentOS 5.2上のEmacsで同じテーマでも微妙に色が違うのはなぜなんでしょう。&lt;br /&gt;256色関連を疑ってるのですが、現状は放置で。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;全然関係ない話ですが、最近携帯(au)の迷惑メールがすごく多いです…orz&lt;br /&gt;さっきなりすまし防止とかいう機能をオンにしたのですが、その数分後に迷惑メールが…orz&lt;br /&gt;やはり、PCからのメールを全部拒否するのが一番早いのかもしれないですね。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-3548949395237340925?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/3548949395237340925/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=3548949395237340925' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/3548949395237340925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/3548949395237340925'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/09/emacscolor-theme.html' title='Emacsのcolor-themeの設定(メモ)'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_FsZBIewJDJA/SNEKw4d1ZeI/AAAAAAAAADk/KLGalpvJD8U/s72-c/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-3098593681815261321</id><published>2008-09-16T00:13:00.007+09:00</published><updated>2008-09-16T00:38:46.050+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Carbon Emacsの最低限の設定(メモ)</title><content type='html'>最近MacBookを新しいHDDにしてOSを再インストールしたときに.emacsを消してしまいました。&lt;br /&gt;# MacOSの移行ウィザードは悪くないのです。それを使わなかった私が悪いんです…orz&lt;br /&gt;せっかくなので新しく書いていくことにしました。&lt;br /&gt;&lt;br /&gt;意外と.emacsって書くのが面倒で、しかもひとつひとつのマシンに.emacsを書かなければいけないのでどこかで変更したときの同期とかがとても面倒です。&lt;br /&gt;今回はこれをエレガントに同期する方法ではなく、とりあえず使うのに最低限必要だった.emacsの設定を書きます。&lt;br /&gt;&lt;br /&gt;まず最初に、Carbon Emacsの場合はCtrl+Spaceに割り当てられているSpotlightのキーバインドを外しましょう。&lt;br /&gt;これをしないと範囲選択ができません。&lt;br /&gt;そして、.emacsは以下のようになりました。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;(set-terminal-coding-system 'utf-8)&lt;br /&gt;(set-keyboard-coding-system 'utf-8)&lt;br /&gt;(set-buffer-file-coding-system 'utf-8)&lt;br /&gt;(setq default-buffer-file-coding-system 'utf-8)&lt;br /&gt;&lt;br /&gt;(tool-bar-mode nil)&lt;br /&gt;(menu-bar-mode nil)&lt;br /&gt;(setq transient-mark-mode t)&lt;br /&gt;&lt;br /&gt;(global-set-key "\C-h" 'backward-delete-char)&lt;br /&gt;(global-set-key "\C-o" 'dabbrev-expand)&lt;br /&gt;(global-set-key "\C-x\C-b" 'buffer-menu)&lt;br /&gt;(global-set-key "\C-xl" 'goto-line)&lt;br /&gt;(global-set-key "\C-c&gt;" 'comment-region)&lt;br /&gt;(global-set-key "\C-c&lt;" 'uncomment-region)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;下記のようなことを設定してあります。&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;いろいろUTF-8に&lt;/li&gt;&lt;br /&gt;&lt;li&gt;ツールバーとメニューバーは消す&lt;/li&gt;&lt;br /&gt;&lt;li&gt;選択範囲は目で見えるようにする&lt;/li&gt;&lt;br /&gt;&lt;li&gt;backspaceキーを使えるように(実際押すときはC-hですが)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;動的略語展開を有効にする&lt;/li&gt;&lt;br /&gt;&lt;li&gt;C-xC-bでカレントバッファにバッファメニューを表示&lt;/li&gt;&lt;br /&gt;&lt;li&gt;指定した行に飛ぶキーバインドの設定&lt;/li&gt;&lt;br /&gt;&lt;li&gt;コメントアウトを簡単にできるようにする&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;動的略語展開が有効になっていたり、いろいろ最低限でない部分も多々ありますがこんな感じです。&lt;br /&gt;&lt;br /&gt;これに各モードの設定や背景色、文字色の設定、elispのインストールと設定を行えばようやく快適に開発できるようになります。&lt;br /&gt;&lt;br /&gt;これを同期するのが非常に面倒…orz&lt;br /&gt;Subversionとかで管理するのが良いですかねぇ…&lt;br /&gt;次回以降ではさらに設定しつつ、同期の方法を模索してみます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-3098593681815261321?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/3098593681815261321/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=3098593681815261321' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/3098593681815261321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/3098593681815261321'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/09/carbon-emacs.html' title='Carbon Emacsの最低限の設定(メモ)'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-4375445670013242451</id><published>2008-09-15T15:18:00.004+09:00</published><updated>2008-09-15T19:34:08.327+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><title type='text'>Mac OS X LeopardにOpenCVをインストール</title><content type='html'>OpenCVは画像の認識などといった画像処理を行うクロスプラットホームなライブラリです。&lt;br /&gt;Intelが提供していて、1.0以降ではMacの対応も強化されているそうです。&lt;br /&gt;まだ何ができるかしっかりわかってないのですが、おもしろそうなのでとりあえずインストールしてみることにしました。&lt;br /&gt;&lt;br /&gt;この前インストールしたMacPortsにOpenCVがすでにあるようです。&lt;br /&gt;下記コマンドでインストールします。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$ sudo port install opencv&lt;/div&gt;&lt;br /&gt;インストールは以上です。&lt;br /&gt;MacPorts最高。&lt;br /&gt;&lt;br /&gt;とりあえずサンプルプログラムを動かしてみます。&lt;br /&gt;サンプルプログラムは/opt/local/share/opencv/samples以下にあります。&lt;br /&gt;Cで書かれたものとPythonで書かれたものがありました。&lt;br /&gt;Pythonで書けるならそれにこしたことはないですね。&lt;br /&gt;とりあえず、Pythonならコンパイルいらずなので実行してみます。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$ cd /opt/local/share/opencv/samples/python&lt;br /&gt;$ python lkdemo.py&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ほかにもたくさんのサンプルがありました。&lt;br /&gt;一番おもしろそうな顔認識のサンプルはCだとiSightから動画をキャプチャしてたのですが、Pythonのものだと画像からのみでした。&lt;br /&gt;サンプルがたくさんあるので後で書き直してみようかと思います。&lt;br /&gt;&lt;br /&gt;PythonでかけるのであればXcodeとか使わないでEmacsとかでそのまま書けるのですごく便利そうです。&lt;br /&gt;なんかいろいろパス通したりしなければいけなそうなのですが、何もしないで使えたのでちょっと気持ち悪い感じです。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-4375445670013242451?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/4375445670013242451/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=4375445670013242451' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/4375445670013242451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/4375445670013242451'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/09/mac-os-x-leopardopencv.html' title='Mac OS X LeopardにOpenCVをインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-7454895450882540346</id><published>2008-09-07T16:03:00.004+09:00</published><updated>2008-09-07T17:59:44.773+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MacPorts'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><title type='text'>LeopardにMacPortsをインストール</title><content type='html'>MacBookのHDDの容量も増えて空き容量にだいぶ余裕ができました。&lt;br /&gt;なので、前々からインストールしたかったMacPorts(&lt;a href="http://www.macports.org/"&gt;http://www.macports.org/&lt;/a&gt;)をインストールしてみました。&lt;br /&gt;Macには同じようなパッケージ管理のソフトとしてMacPortsのほかにFinkというのもありますが、最近はMacPortsの方が活発らしいです。&lt;br /&gt;正直よくしらべていないのでどちらが良いかわかってないのですが、今回はMacPortsにしてみました。&lt;br /&gt;&lt;br /&gt;まず最初にMacPortsをダウンロードします。&lt;br /&gt;どうやらそれぞれのOSのバージョンごとにイメージになっているようです。&lt;br /&gt;上記の本家サイトの左側のメニューの「Installing MacPorts」をクリックするといろいろ説明が出てきてdmgのリンクもあります。&lt;br /&gt;私の環境はLeopardなので&lt;a href="http://svn.macports.org/repository/macports/downloads/MacPorts-1.6.0/MacPorts-1.6.0-10.5-Leopard.dmg"&gt;これ&lt;/a&gt;を使いました。&lt;br /&gt;&lt;br /&gt;ダウンロードしたイメージを展開するとMacPorts-1.6.0.pkgがあるので実行します。&lt;br /&gt;あとは普通にインストールすればOKです。&lt;br /&gt;ちなみにMacPortsはコンパイルやらなんやらを行ってソフトウェアをインストールするので、Developer Toolsがインストールしてある必要があります。&lt;br /&gt;&lt;br /&gt;MacPortsは/opt/local以下にインストールを行うので、ここに環境変数を通しておく必要があります。&lt;br /&gt;MacPorts自体であるportコマンドも/opt/local以下にあります。&lt;br /&gt;なので最初にこの作業をやっておきましょう。&lt;br /&gt;とりあえず自分のホームディレクトリの.bash_profileに下記を記述しておきます。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;export PATH=/opt/local/bin:/opt/local/sbin/:$PATH&lt;br /&gt;export MANPATH=/opt/local/man:$MANPATH&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;MacPortsをアップデートして、ソフトウェアのリストを下記コマンドで最新にします。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$ sudo port selfupdate&lt;br /&gt;$ sudo port sync&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;これでインストールは終了です。&lt;br /&gt;&lt;br /&gt;基本的な使い方は以下のような感じです。&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;検索&lt;/li&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$ port search 名前&lt;/div&gt;&lt;br /&gt;ためしにやってみたらzshもGNU screenもffmpegもcatalystも入ってました。&lt;br /&gt;充実してますね。&lt;br /&gt;&lt;br /&gt;&lt;li&gt;インストール&lt;/li&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;$ sudo port install 名前&lt;/div&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;下記記事を参考にさせていただきました。&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://veadardiary.blog29.fc2.com/blog-entry-1151.html"&gt;Macの手書き説明書&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/hakobe932/20061208/1165646618"&gt;MacPortsでステキなUNIXツールをインストール - はこべにっき#&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-7454895450882540346?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/7454895450882540346/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=7454895450882540346' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7454895450882540346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7454895450882540346'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/09/leopardmacports.html' title='LeopardにMacPortsをインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-9197594430832030042</id><published>2008-09-06T22:18:00.006+09:00</published><updated>2008-09-07T18:01:22.486+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Inkscape'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><title type='text'>MacOS X LeopardでX11が起動しない</title><content type='html'>再インストールを行ったので、LeopardでInkscapeをインストールして、起動しようとしたらうまくいきませんでした。&lt;br /&gt;そもそもX11自体がうまく起動しないようで、アプリケーション→ユーティリティ→X11のアイコンを押してもうんともすんともない状態…&lt;br /&gt;&lt;br /&gt;どうやらDVDに入っているX11にはバグがあるらしいです。&lt;br /&gt;XQuarts(&lt;a href="http://xquartz.macosforge.org/trac/wiki/"&gt;http://xquartz.macosforge.org/trac/wiki/&lt;/a&gt;)を入れると直るようです。&lt;br /&gt;本家サイトをみると10.5.2を入れれば万事OKっぽいことが書いてある…。&lt;br /&gt;今使ってるのは10.5.4なのですが…&lt;br /&gt;&lt;br /&gt;ソフトウェアアップデートをやってみたらSecurityUpdate 2008-005ってのがある。&lt;br /&gt;もしかしてこれを入れてないからでしょうか…。&lt;br /&gt;とりあえず入れてみる。&lt;br /&gt;うーん、動かない…。&lt;br /&gt;&lt;br /&gt;結局上記のXQuartsの最新版(X11-2.2.3.pkg)を落としてきてインストールしました。&lt;br /&gt;するとX11.appは問題なく起動したのですが、やはりInkscapeは起動せず…&lt;br /&gt;&lt;br /&gt;もうちょっと調べてみたら解決策を書いてらっしゃる方がいました。&lt;br /&gt; &lt;a href="http://www.rottel.net/kuwa/23787"&gt;X11メモ(http://www.rottel.net/kuwa/23787)&lt;/a&gt;&lt;br /&gt;ここに書いてある通りにやってみたらちゃんと起動しました。&lt;br /&gt;&lt;br /&gt;とりあえずこのまま使ってみます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-9197594430832030042?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/9197594430832030042/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=9197594430832030042' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/9197594430832030042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/9197594430832030042'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/09/macos-x-leopardx11ga.html' title='MacOS X LeopardでX11が起動しない'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-5884643531955841310</id><published>2008-08-31T23:35:00.016+09:00</published><updated>2008-09-01T02:10:10.752+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='ARToolKit'/><title type='text'>MacOS XでARToolKitアプリの開発 -環境準備編-</title><content type='html'>ちょっと前からARToolKit(&lt;a href="http://www.hitl.washington.edu/artoolkit/"&gt;http://www.hitl.washington.edu/artoolkit/&lt;/a&gt;)を使ってアプリを作ろうと画策中です。&lt;br /&gt;ARToolKitとはAR(拡張現実感)を簡単に実装することができるライブラリ集です。&lt;br /&gt;最近ではニコニコ動画でARToolKitを使って撮影したおもしろい動画がたくさんアップされてます。&lt;br /&gt;本なども出版されドキュメントも充実してきているようです。&lt;br /&gt;&lt;br /&gt;ネットなどのほとんどの情報はWindowsのものばかりで、Macに関しては非常に少ないです。&lt;br /&gt;しかし、本家からダウンロードできるソースにはXcodeプロジェクトが含まれています。&lt;br /&gt;なのでMacでこのXcodeプロジェクトを開いてビルドすれば簡単にサンプルコードのビルドが可能です。&lt;br /&gt;&lt;br /&gt;さて、自分でアプリを作成する場合はこの同梱されていたXcodeプロジェクトを使用すればできるっちゃできるのですが、自分で0からXcodeプロジェクトを作れないと何かと不便だし、できないことはないはず。&lt;br /&gt;というわけで探したら以下のような記事をみつけました。&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://d.hatena.ne.jp/misky/20080123/1201032227"&gt;Xcode で空のプロジェクトから ARToolkit が使えるようになるまでをまとめてみる&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;この記事を参考に自分でもやってみました。&lt;br /&gt;ちなみに今回試した環境は下記のとおりです。&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;MacOS X Leopard 10.5.4&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Xcode 3.1&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;新規プロジェクトの作成&lt;/li&gt;&lt;br /&gt;まず、Xcodeを起動し新規プロジェクトを作成します。作成するプロジェクトは「Mac OS X→Other→Empty Project」です。選択ボタンを押すとプロジェクト名と保存場所を聞かれますが、適当でかまいません。今回はデスクトップにtest_arというプロジェクト名で作成します。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FsZBIewJDJA/SLq0h4fHbTI/AAAAAAAAABc/IaiTzyk96pU/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_FsZBIewJDJA/SLq0h4fHbTI/AAAAAAAAABc/IaiTzyk96pU/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240699610590571826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FsZBIewJDJA/SLq1Z_yuCOI/AAAAAAAAABk/yo7P73dwNJs/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_FsZBIewJDJA/SLq1Z_yuCOI/AAAAAAAAABk/yo7P73dwNJs/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240700574624516322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;グループの追加&lt;/li&gt;&lt;br /&gt;左のメニューの一番上のtest_arを右クリック(Ctrl+クリック)しグループを追加します。グループ名はResource、Framework、Library、Sourceの4つを作成します。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FsZBIewJDJA/SLq3o1I_zWI/AAAAAAAAAB0/SUopS_fmjV0/s1600-h/hogehoge.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_FsZBIewJDJA/SLq3o1I_zWI/AAAAAAAAAB0/SUopS_fmjV0/s320/hogehoge.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5240703028486458722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FsZBIewJDJA/SLq39fdrl2I/AAAAAAAAAB8/4jxOjr42OlI/s1600-h/aaaa.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_FsZBIewJDJA/SLq39fdrl2I/AAAAAAAAAB8/4jxOjr42OlI/s320/aaaa.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5240703383444887394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;新規ターゲットの作成&lt;/li&gt;&lt;br /&gt;上部にあるアクションを押し、「追加→新規ターゲット」を選択します。作成するターゲットを「Carbon→Application」を選択し、次へを押します。ターゲット名を聞かれるので適当に入れ、完了を押します。これがどうやらアプリケーション名になるようです。今回は適当に「SimpleAR」にしました。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FsZBIewJDJA/SLq5tTnT5aI/AAAAAAAAACE/ei36_uGoiYY/s1600-h/aaa.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_FsZBIewJDJA/SLq5tTnT5aI/AAAAAAAAACE/ei36_uGoiYY/s320/aaa.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5240705304409400738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FsZBIewJDJA/SLq51xS1p7I/AAAAAAAAACM/F-GS0Gb5rUE/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_FsZBIewJDJA/SLq51xS1p7I/AAAAAAAAACM/F-GS0Gb5rUE/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240705449815549874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;ライブラリとヘッダファイルの設定&lt;/li&gt;&lt;br /&gt;本家からダウンロードしてきたファイルに含まれるlibとincludeを今回のプロジェクトのディレクトリの直下にコピーします(今回だとデスクトップ上のtest_ar)。そしてターゲットの設定から「ビルド→検索パス」にあるヘッダ検索パスとライブラリ検索パスのそれぞれにパスを追加します。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FsZBIewJDJA/SLq7LxTTGgI/AAAAAAAAACU/LHHhG_3BDuo/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_FsZBIewJDJA/SLq7LxTTGgI/AAAAAAAAACU/LHHhG_3BDuo/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240706927286229506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;既存フレームワークの追加&lt;/LI&gt;&lt;br /&gt;このアプリで使用するフレームワークの追加を行います。とりあえず今回は QuickTime.framework、OpenGL.framework、GLUT.framework、Cocoa.framework、Carbon.frameworkの5つが必要です。まず、左メニューのtest_arを右クリックし「追加→既存のフレームワーク」をクリックします。すると、フレームワークを選択するダイアログが表示されるのでLibrary→Frameworksフォルダ以下にある前述5つのフレームワークを選択し、追加ボタンを押します。するとターゲットに追加するか聞かれるので追加ボタンを押します。左メニュー上にフレームワークが5つ追加されるので整理するためにそれらを選択しFrameworkグループに入れます。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FsZBIewJDJA/SLq98Rm54EI/AAAAAAAAACc/nT5CBdNSSho/s1600-h/%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_FsZBIewJDJA/SLq98Rm54EI/AAAAAAAAACc/nT5CBdNSSho/s320/%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5240709959615373378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FsZBIewJDJA/SLq98sv6_2I/AAAAAAAAACk/ZRPlriDGmz8/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_FsZBIewJDJA/SLq98sv6_2I/AAAAAAAAACk/ZRPlriDGmz8/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240709966900952930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FsZBIewJDJA/SLq988t9usI/AAAAAAAAACs/DpBPRGA2ynI/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+7.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_FsZBIewJDJA/SLq988t9usI/AAAAAAAAACs/DpBPRGA2ynI/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+7.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240709971187710658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;使用するライブラリの追加&lt;/li&gt;&lt;br /&gt;今回のアプリで使用するARToolKitのライブラリを追加します。ライブラリはプロジェクトのフォルダにコピーしたlib以下にあるので、そこからlibAR.a、libARgsub.a、libARvideo.aを使用します。追加するには左メニューのLibraryグループを右クリックし、既存のファイルを選択します。表示されたダイアログから該当のライブラリを選択したら追加ボタンを押します。フレームワークのとき同様ターゲットに追加するか聞かれるので、追加ボタンを押します。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FsZBIewJDJA/SLrAE0cZwCI/AAAAAAAAAC0/WEKhwQwUxqY/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_FsZBIewJDJA/SLrAE0cZwCI/AAAAAAAAAC0/WEKhwQwUxqY/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240712305428774946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FsZBIewJDJA/SLrAFNBIHeI/AAAAAAAAAC8/X0l66DWHTKs/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_FsZBIewJDJA/SLrAFNBIHeI/AAAAAAAAAC8/X0l66DWHTKs/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240712312025259490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FsZBIewJDJA/SLrAFWjvAGI/AAAAAAAAADE/elSXncvev4Y/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_FsZBIewJDJA/SLrAFWjvAGI/AAAAAAAAADE/elSXncvev4Y/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240712314586333282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;dataディレクトリの追加&lt;/li&gt;&lt;br /&gt;本家のソースの中のbin/Dataをプロジェクトのディレクトリにコピーします。次にライブラリ同様このディレクトリをResourceグループ以下に追加します。この際にターゲットに追加するかどうか聞かれるダイアログで「追加したフォルダにフォルダ参照を作成する」を選択し、追加ボタンを押します。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FsZBIewJDJA/SLrBcZqRgJI/AAAAAAAAADM/Yru2ipG4_o8/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_FsZBIewJDJA/SLrBcZqRgJI/AAAAAAAAADM/Yru2ipG4_o8/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240713810067685522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;ソースファイルの追加&lt;/li&gt;&lt;br /&gt;次に「アクション→新規ファイル」を選択し空のファイルを作成します。ファイル名は適当でかまいません。今回はhoge.cppにします。追加されたソースファイルに本家のexamples/simple/simpleTest.cの内容をコピペします。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FsZBIewJDJA/SLrCmx42H1I/AAAAAAAAADU/T7TRg7EbVZk/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_FsZBIewJDJA/SLrCmx42H1I/AAAAAAAAADU/T7TRg7EbVZk/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240715087881576274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FsZBIewJDJA/SLrCm3AZnMI/AAAAAAAAADc/6AMAGKVEStg/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+8.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_FsZBIewJDJA/SLrCm3AZnMI/AAAAAAAAADc/6AMAGKVEStg/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+8.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240715089255439554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;ビルドそして実行&lt;/li&gt;&lt;br /&gt;最後にビルドして実行ボタンを押しましょう。そして、SimpleTestと同じプログラムが動いたら大成功です。このサンプルコードをカスタマイズする場合はhoge.cppを編集すればOKです。&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;最初やったときはライブラリの追加がうまくいってなかったり、検索パスがどこにあるかわからなかったり、Dataディレクトリが読み込めなかったりとうまく行きませんでしたがどうにか動かせました。&lt;br /&gt;そもそも、Xcodeの使い方がわかってないのでそっちから勉強すべきかもしれないですね。&lt;br /&gt;&lt;br /&gt;とりあえずMacでARToolKitを使ったアプリの開発をやる準備は整いました。&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=hirokikana-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=4877832068&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-5884643531955841310?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/5884643531955841310/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=5884643531955841310' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5884643531955841310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5884643531955841310'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/08/macos-xartoolkit.html' title='MacOS XでARToolKitアプリの開発 -環境準備編-'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_FsZBIewJDJA/SLq0h4fHbTI/AAAAAAAAABc/IaiTzyk96pU/s72-c/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-4479255750545468681</id><published>2008-08-28T22:56:00.003+09:00</published><updated>2008-08-28T23:05:15.687+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNRH-001'/><title type='text'>DNRH-001が熱い</title><content type='html'>昨日から玄箱のデータをいくつかの外付けHDDに避難させて、帰ったらとりあえず終わってた。&lt;br /&gt;ようやく玄箱のHDDを取り出して、DNRH-001につけられる。&lt;br /&gt;&lt;br /&gt;んで、玄箱からHDDを取り出してみたらなんとMaxtor製。&lt;br /&gt;Maxtorは発熱量が確か多い傾向にあったような…&lt;br /&gt;とりあえず考えていてもしょうがないのでDNRH-001につけてCentOS5.2をインストールした。&lt;br /&gt;今は外付けHDDに避難したデータをサーバに移動中。&lt;br /&gt;&lt;br /&gt;やはり電源をつけると結構熱くなる。&lt;br /&gt;とりあえず当分はHDDの温度を定期的に見ながら運用してみよう。&lt;br /&gt;その間になんらかのきっかけでHDDが壊れてデータが飛んだらあきらめよう、うん。&lt;br /&gt;&lt;br /&gt;ちなみに、以下のコマンドでHDDの温度を見ることができる。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# smartctl -a /dev/hda|grep -i temp&lt;br /&gt;194 Temperature_Celsius     0x0032   044   253   000    Old_age   Always       -       53&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;さっきまで40度台だったのにいつの間にか53度に。&lt;br /&gt;とりあえず常時55度を超えるようであればファンを買ってこよう。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-4479255750545468681?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/4479255750545468681/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=4479255750545468681' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/4479255750545468681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/4479255750545468681'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/08/dnrh-001_28.html' title='DNRH-001が熱い'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-3229942516705615199</id><published>2008-08-27T21:10:00.003+09:00</published><updated>2008-08-28T23:05:39.784+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNRH-001'/><title type='text'>DNRH-001購入</title><content type='html'>家にある玄箱をだましだまし使っていたが、やはり音が気になる。&lt;br /&gt;またミシン油をファンにさせば静かになるんだろうけども…&lt;br /&gt;そろそろ買い替え時期かなぁと思っていた今日この頃。&lt;br /&gt;&lt;br /&gt;静かなPCを購入することにした。&lt;br /&gt;DNRH-001というファンレスで3.5インチHDDがつめるPCを買ってみた。&lt;br /&gt;今の玄箱のHDDが使えるので3.5インチHDDがつめるのはなかなかいい感じ。&lt;br /&gt;&lt;br /&gt;先ほど届いたので早速先日作ったCobblerの環境を使いネットワークインストール中。&lt;br /&gt;DNRH-001をPXEブートするときの注意点は&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;BIOSでBootの順番でLANを一番頭に持ってくる&lt;/li&gt;&lt;br /&gt;&lt;li&gt;BIOSでOnboard Lan Boot ROMをEnableにする&lt;/li&gt;&lt;br /&gt;&lt;li&gt;LANケーブルはLAN2に差し込む&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;というところですね。&lt;br /&gt;&lt;br /&gt;あとCobblerでなんか変なときはとりあえずcobbler syncをしてみるのが大切ですね。&lt;br /&gt;なんか最初bootできなかったときに余計な場所をいろいろいじくったりしてしまった。&lt;br /&gt;&lt;br /&gt;電源をつけた印象は思った以上に本体が熱くなる。&lt;br /&gt;これは考えないとダメかも。&lt;br /&gt;あとHDDが意外とうるさい。&lt;br /&gt;これは静かなHDDを買えば解決するでしょう。&lt;br /&gt;&lt;br /&gt;とりあえず今週中に玄箱のデータをDNRH-001に移行します。&lt;br /&gt;今日はなんか風邪気味で頭が痛いのでインストールして放置。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-3229942516705615199?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/3229942516705615199/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=3229942516705615199' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/3229942516705615199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/3229942516705615199'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/08/dnrh-001.html' title='DNRH-001購入'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-1228285948122145953</id><published>2008-08-24T13:56:00.002+09:00</published><updated>2008-08-24T16:50:17.287+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='GCDrawKit'/><title type='text'>Macのドロー系ソフト</title><content type='html'>姉の結婚式の2次会の招待状の作成をすることになり、ちゃちゃっと書いてみることに。&lt;br /&gt;何かドロー系の良いソフトがないか探してみました。&lt;br /&gt;&lt;br /&gt;ドロー系のソフトだとIllustratorが有名ですが、いかんせん価格が高すぎます。&lt;br /&gt;フリーのものだとInkscapeがあります。&lt;br /&gt;本も出てたりして結構使われているみたいですね。&lt;br /&gt;InkscapeはWindows以外にLinuxやMacでも動かすことができて便利なのですが、Macで使用するときは日本語入力がちょっとめんどくさい。&lt;br /&gt;# テキストエディットあたりで書いてコピペすれば良いのですが&lt;br /&gt;&lt;br /&gt;そこで、Macで使用できる新しいドロー系のソフトを探してたら&lt;a href="http://apptree.net/drawkit.htm"&gt;GCDrawKit&lt;/a&gt;というのを見つけた。&lt;br /&gt;これはソフトではなくドローエンジンというもので、エンジン部分だけらしい。&lt;br /&gt;MacOSX向けに作成されており、MacOSのQuartzエンジンなどをフル活用している。&lt;br /&gt;デモでGCDrawKitを使ったアプリが配信されており、それを使ってみた。&lt;br /&gt;&lt;br /&gt;デモとは言ってもかなり高機能でInkscapeと同じくらいに感じる。&lt;br /&gt;Cocoaベースなので日本語入力なども問題なく利用できる。&lt;br /&gt;かなり便利です。&lt;br /&gt;しかし、レイヤをいじってると突然落ちます。&lt;br /&gt;安定性はまだまだなようです。&lt;br /&gt;&lt;br /&gt;作成中に保存してない状態で2、3回落ちたので、結局Inkscape使いました。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-1228285948122145953?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/1228285948122145953/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=1228285948122145953' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/1228285948122145953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/1228285948122145953'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/08/mac.html' title='Macのドロー系ソフト'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-16087597341247958</id><published>2008-08-23T16:46:00.005+09:00</published><updated>2008-08-23T23:04:02.481+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cobbler'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>CobblerでOSネットワークインストール</title><content type='html'>ノートPCにCentOSをインストールしようとしたら、CDドライブしかついてなかった。&lt;br /&gt;CDイメージを落としてインストールすればいいんだけど、CDが何枚にもなるし、ダウンロードするのもめんどくさい。&lt;br /&gt;だから、ネットワークインストールを試してみることにした。&lt;br /&gt;&lt;br /&gt;ネットワークインストールの環境を整えることができるのが、Cobbler(&lt;a href="http://cobbler.et.redhat.com/"&gt;http://cobbler.et.redhat.com/&lt;/a&gt;)というもの。&lt;br /&gt;Cobblerを使えば、様々なディストリビューションをネットワークインストールすることが可能になる。&lt;br /&gt;CobblerをインストールしてCentOS5.2をノートPCに導入する。&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Cobblerに必要なパッケージをインストール&lt;/li&gt;&lt;br /&gt;今回は、CentOS5.2がインストールされているPCにCobblerをインストールする。Cobblerで必要なパッケージのうち下記のものはyumでインストールすることができる。&lt;br /&gt;&lt;br /&gt;・yum-utils&lt;br /&gt;・createrepo&lt;br /&gt;・python-setuptools&lt;br /&gt;・tftp-server&lt;br /&gt;・httpd&lt;br /&gt;・dhcp&lt;br /&gt;&lt;br /&gt;他にpython-cheetahというテンプレートエンジン(?)をインストールする必要がある。&lt;br /&gt;EPELというyumリポジトリを有効にすればpython-cheetahもcobblerもyumでインストールできるが、僕がやったときは503とか返されてうまくいかなかった。&lt;br /&gt;もしかして安定してないのだろうか。&lt;br /&gt;結局はrpmをダウンロードしてインストールすることにした。&lt;br /&gt;ダウンロードするrpmは結局EPELのものを利用することになったみたいだ。&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# wget ftp://rpmfind.net/linux/EPEL/5Client/i386/python-cheetah-2.0.1-1.el5.i386.rpm&lt;br /&gt;# rpm -ivh python-cheetah-2.0.1-1.el5.i386.rpm&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Cobblerのインストール&lt;/li&gt;&lt;br /&gt;ここまできたらCobblerをインストールする。&lt;br /&gt;&lt;a href="http://cobbler.et.redhat.com/download/"&gt;ここ&lt;/a&gt;からCobblerのtar.gzもしくはsrc.rpmをダウンロードできる。&lt;br /&gt;rpmの方が何かと楽なのでsrc.rpmからリビルドしてrpmを作成してインストール。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# wget http://cobbler.et.redhat.com/download/cobbler-1.0.3-1.src.rpm&lt;br /&gt;# rpmbuild --rebuild cobbler-1.0.3-1.src.rpm&lt;br /&gt;# mv /usr/src/redhat/RPMS/noarch/cobbler-1.0.3-1.noarch.rpm .&lt;br /&gt;# rpm -ivh cobbler-1.0.3-1.noarch.rpm&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;設定ファイルの編集&lt;/li&gt;&lt;br /&gt;まず、tftpサーバを有効にする。&lt;br /&gt;有効にするためには/etc/xinet.d/tftpのdisableを削除する。&lt;br /&gt;編集後は下記のようになる。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;service tftp&lt;br /&gt;{&lt;br /&gt;        socket_type  = dgram&lt;br /&gt;        protocol  = udp&lt;br /&gt;        wait   = yes&lt;br /&gt;        user   = root&lt;br /&gt;        server   = /usr/sbin/in.tftpd&lt;br /&gt;        server_args  = -s /tftpboot&lt;br /&gt;        per_source  = 11&lt;br /&gt;        cps   = 100 2&lt;br /&gt;        flags   = IPv4&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;編集したら/etc/init.d/xinetd restartでxinetdを再起動する。&lt;br /&gt;&lt;br /&gt;DHCPサーバの設定ファイルはCobblerで編集されるため今の時点でバックアップをとっておく。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# cp /etc/dhcpd.conf /etc/dhcpd.conf.default&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;次にCobblerの設定を行う。&lt;br /&gt;/etc/cobbler/settingを以下のとおりに編集する。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;・text:~を削除：グラフィカルモードを使用&lt;br /&gt;・next_server &amp;lt;IPアドレス&amp;gt;:TFTPサーバのIPアドレスを指定。今回の場合は自分のIPアドレス&lt;br /&gt;・server &amp;lt;IPアドレス&amp;gt;：イメージ配布サーバーのIPアドレス&lt;br /&gt;・manage_dhcp 1：DHCPサーバをCobblerで管理&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;次にDHCPサーバの設定を行う。&lt;br /&gt;DHCPサーバの設定ファイルを直接編集するのではなく、CobblerのDHCPサーバ設定ファイルのテンプレートの/etc/cobller/dhcp.templateを編集する。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;subnet 192.168.100.0 netmask 255.255.255.0 {&lt;br /&gt;     option routers          192.168.100.1;&lt;br /&gt;     option subnet-mask      255.255.255.0;&lt;br /&gt;     range dynamic-bootp     192.168.100.101 192.168.100.254;&lt;br /&gt;     filename                "/pxelinux.0";&lt;br /&gt;     default-lease-time      21600;&lt;br /&gt;     max-lease-time          43200;&lt;br /&gt;     next-server             $next_server;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;デーモンの起動&lt;/li&gt;&lt;br /&gt;Cobblerデーモン、DHCP、HTTPの起動を行う。&lt;br /&gt;その際にDHCPサーバの設定ファイルを生成する必要がある。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# /etc/init.d/cobblerd start&lt;br /&gt;# cobller sync&lt;br /&gt;# /etc/init.d/httpd start&lt;br /&gt;# /etc/init.d/dhcpd start&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;ISOイメージのコピーとインポート&lt;/li&gt;&lt;br /&gt;まず、ISOイメージを任意のディレクトリにコピーする。&lt;br /&gt;コピーするときにISOイメージの2倍以上の容量がないと作業できない。&lt;br /&gt;ISOイメージから直接インポートすると失敗した。&lt;br /&gt;何か書き込んでるのかもしれない。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# mount /dev/cdrom /media/cdrom&lt;br /&gt;# mkdir /tmp/centos5&lt;br /&gt;# shopt -s dotglob&lt;br /&gt;# unalias cp&lt;br /&gt;# cp -rf /media/cdrom/* /tmp/centos5/&lt;br /&gt;# umount /media/cdrom&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;ディレクトリにコピーをしたら、Cobblerでインポートを行う。&lt;br /&gt;これは結構時間がかかった。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# cobbler import --path /tmp/centos5 --name=centos5&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;インポートが終了したらデフォルトで配信するイメージの設定などを行う。&lt;br /&gt;cobbler reportコマンドで表示されたプロファイル名を使用する。&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;# cobbler report&lt;br /&gt;# cobbler system add --name=default --profile=centos5-i386&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;あとはインストールしたいPCからPXEブートすればインストールが始まる。&lt;br /&gt;何か他に設定があるようで、勝手にインストールが進んでいつの間にか終了してた。&lt;br /&gt;どういう設定を行うかも設定することができるようだ。&lt;br /&gt;&lt;br /&gt;これでPXEブートさえできれば、どんなPCにでもインストールできる。&lt;br /&gt;とりあえず家にあるThinkpad R40e、Thinkpad X20にインストールしてみた。&lt;br /&gt;すごく便利。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-16087597341247958?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/16087597341247958/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=16087597341247958' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/16087597341247958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/16087597341247958'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/08/cobbleros.html' title='CobblerでOSネットワークインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-7345114958077452447</id><published>2008-08-17T15:08:00.003+09:00</published><updated>2008-08-17T15:18:53.031+09:00</updated><title type='text'>SpamAssassinの設定</title><content type='html'>スパムメールの数が増えてきたので、サーバーのMTAにSpamAssassinをかませていたのだが、効果がいまいちだった。&lt;br /&gt;とりあえずSoftwareDesign 2008/3を参考に以下のような設定をしてみたので、そのメモ。&lt;br /&gt;&lt;br /&gt;・ベイジアンフィルタの学習データとホワイトリストのデータベースの場所を準備&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt; # mkdir /var/spool/spamd&lt;br /&gt; # chmod 777 /var/spool/spamd&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;・SpamAssassin用のレシピをダウンロード（TLECのを使います）&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt; # wget http://tlec.linux.or.jp/docs/user_prefs&lt;br /&gt; # cd /etc/mail/spamassassin&lt;br /&gt; # mv local.cf local.cf.default&lt;br /&gt; # cp ~/user_prefs local.cf&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;・レシピに下記を追記（ベイジアンフィルタの学習データなどの場所を指定）&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;bayes_path /var/spool/spamd/bayes&lt;br /&gt;bayes_file_mode 0666&lt;br /&gt;auto_whitelist_path /var/spool/spamd/auto-whitelist&lt;br /&gt;auto_whitelist_file_mode 0666&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-7345114958077452447?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/7345114958077452447/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=7345114958077452447' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7345114958077452447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7345114958077452447'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/08/spamassassin.html' title='SpamAssassinの設定'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-5758506790865875872</id><published>2008-07-22T23:58:00.003+09:00</published><updated>2008-07-23T00:05:48.721+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programing'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><title type='text'>returnとexit</title><content type='html'>Cでプログラムを書いているときに、プログラムを終了させる方法がはreturnするのとexitするのの2種類あるけど違いがよくわからなかった。&lt;br /&gt;というかstdlib.hをincludeしないreturnでみんないいじゃんと安易に考えてしまった。&lt;br /&gt;&lt;br /&gt;でも、もちろん違いがあって&lt;br /&gt;&lt;div style="background-color:#EFEFEF;padding:5px;"&gt;・return：呼び出しもとへ処理を返す（mainであればプログラム終了）&lt;br /&gt;・exit:プログラムを終了させ、OSへ処理を返す&lt;/div&gt;&lt;br /&gt;大きく違いがあります。&lt;br /&gt;なので、場合によって使いわけるのが良さそうですね。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-5758506790865875872?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/5758506790865875872/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=5758506790865875872' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5758506790865875872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/5758506790865875872'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/07/returnexit.html' title='returnとexit'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-7370881470931391221</id><published>2008-07-22T23:51:00.002+09:00</published><updated>2008-07-22T23:53:01.593+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>放置してしまってすいません</title><content type='html'>もう４ヶ月ほど放置してしまいました。&lt;br /&gt;きちんと書き続けるような生活の流れにしないといけませんね。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-7370881470931391221?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/7370881470931391221/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=7370881470931391221' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7370881470931391221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7370881470931391221'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/07/blog-post.html' title='放置してしまってすいません'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-7342095293882685525</id><published>2008-03-20T21:58:00.007+09:00</published><updated>2008-12-10T14:08:23.290+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><title type='text'>LeopardにMySQLをインストール</title><content type='html'>公式でパッケージが用意されておりインストールは簡単です。&lt;br /&gt;以下サイトからダウンロード可能。&lt;br /&gt;　&lt;a href="http://dev.mysql.com/downloads/mysql/5.0.html"&gt;http://dev.mysql.com/downl&lt;/a&gt;&lt;a href="http://dev.mysql.com/downloads/mysql/5.0.html"&gt;oads/mysql/5.0.html&lt;/a&gt;&lt;br /&gt;ダウンロードする際にユーザ登録をする必要がありました。&lt;br /&gt;&lt;br /&gt;まずmysql-5.0.x-osx10.5-x86.pkgを実行します。&lt;br /&gt;次に自動起動させるためにMySQLStartupItem.pkgを実行します。&lt;br /&gt;&lt;br /&gt;さらにシステム環境設定から操作できるようにMySQL.prefPaneをインストールします。&lt;br /&gt;選択肢が出ますが一応「このコンピュータすべてのユーザ用にインストールする」にしておいていいかと思われます。&lt;br /&gt;するとシステム環境設定にMySQLが追加されます。&lt;br /&gt;ここから起動・停止ができるはずだったんですが、どうやらLeopardではうまく行かない模様…&lt;br /&gt;&lt;br /&gt;そこでGoogle先生に聞いてみたらBug報告がありました。&lt;br /&gt;　&lt;a href="http://bugs.mysql.com/bug.php?id=28854"&gt;http://bugs.mysql.com/bug.php?id=28854&lt;/a&gt;&lt;br /&gt;そしてLeopardに対応したMYSQL.prefPaneファイルが公開されてました。&lt;br /&gt;　&lt;a href="ftp://ftp.mysql.com/pub/mysql/download/gui-tools/MySQL.prefPane-leopardfix.zip"&gt;ftp://ftp.mysql.com/pub/mysql/download/gui-tools/MySQL.prefPane-leopardfix.zip&lt;/a&gt;&lt;br /&gt;これによってシステム環境設定から起動・停止ができるようになりました。&lt;br /&gt;&lt;br /&gt;MySQLの操作コマンド群は/usr/local/mysql/binにインストールされます。&lt;br /&gt;なので、PATH環境変数に/usr/local/mysql/binを通しておくと便利です。&lt;br /&gt;&lt;br /&gt;次にrootユーザのパスワードを設定します。&lt;br /&gt;設定は以下のコマンドを実行します。&lt;br /&gt;&lt;blockquote&gt;./mysqladmin -u root password '&lt;span style="color: rgb(255, 102, 0);"&gt;&lt;設定するパスワード&gt;&lt;/span&gt;'&lt;/blockquote&gt;設定したらmysqlコマンドでログインができればインストール完了です。&lt;br /&gt;&lt;blockquote&gt;./mysql  -u root -p&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FsZBIewJDJA/R-KH2_XIn6I/AAAAAAAAAAk/_iLG6RKakkA/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+3.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_FsZBIewJDJA/R-KH2_XIn6I/AAAAAAAAAAk/_iLG6RKakkA/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+3.png" alt="" id="BLOGGER_PHOTO_ID_5179851900220645282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FsZBIewJDJA/R-KIKPXIn7I/AAAAAAAAAAs/WTbyL-VPPhM/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+5.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_FsZBIewJDJA/R-KIKPXIn7I/AAAAAAAAAAs/WTbyL-VPPhM/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+5.png" alt="" id="BLOGGER_PHOTO_ID_5179852230933127090" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-7342095293882685525?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/7342095293882685525/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=7342095293882685525' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7342095293882685525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/7342095293882685525'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/03/leopardmysql.html' title='LeopardにMySQLをインストール'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_FsZBIewJDJA/R-KH2_XIn6I/AAAAAAAAAAk/_iLG6RKakkA/s72-c/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-8756435233127264783</id><published>2008-03-20T15:14:00.005+09:00</published><updated>2008-03-20T21:24:40.227+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtualbox'/><title type='text'>VirtualBoxのホストOSからゲストOSにアクセス</title><content type='html'>VirtualBoxはOSSの仮想マシンであり、Macでも動作する。&lt;br /&gt;Macで動作する仮想マシンでかつ無料で使用できるのは現状VirtualBoxだけ。&lt;br /&gt;VMware Fusionの発売前オーダーの存在を知っていながら買えず、今更あの値段で買う気がしない僕は結局VirtualBox使ってる。&lt;br /&gt;&lt;br /&gt;そして、VirtualBoxで現状ネットワークを使うにはNATしか選ぶことができない。&lt;br /&gt;# ベータ版だし&lt;br /&gt;VMwareだとNATで接続しているゲストOSもホストOSからアクセスできるんだけど、VirtualBoxだとできないらしい。&lt;br /&gt;&lt;br /&gt;接続するためにはPortForwardingを行って接続するというとてもまどろっこしい方法を使う必要があるようだ。&lt;br /&gt;&lt;br /&gt;　VBoxManage setextradata "&lt;ゲストOS名&gt;" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP&lt;br /&gt;　VBoxManage setextradata "&lt;ゲストOS名&gt;" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222&lt;br /&gt;　VBoxManage setextradata "&lt;ゲストOS名&gt;" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22&lt;br /&gt;&lt;br /&gt;これでゲストOSの22番ポートにローカルの2222番でアクセスできる。&lt;br /&gt;&lt;br /&gt;ちょっとめんどくさい…&lt;br /&gt;やっぱ素直にVMware Fusion買うべきだろうか。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-8756435233127264783?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/8756435233127264783/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=8756435233127264783' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/8756435233127264783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/8756435233127264783'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/03/virtualboxos.html' title='VirtualBoxのホストOSからゲストOSにアクセス'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-224919681747193928</id><published>2008-03-17T23:56:00.003+09:00</published><updated>2008-03-18T00:16:01.462+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>iKnow</title><content type='html'>私は英語が苦手というか自由に使いこなすことができません。&lt;br /&gt;英語に対しての嫌悪感みたいのはないのですが、やはり学生時代に英語の授業をおろそかにしたツケが今出てきている感じです。&lt;br /&gt;&lt;br /&gt;最近ではドキュメントを英語のものを読むようにしたりして英語に慣れようと心がけていますが、やはりまだまだです。&lt;br /&gt;# たぶんちまたの中学生の方が僕より英語を使いこなせるはず…&lt;br /&gt;&lt;br /&gt;そこでiKnowという英語のeラーニングのサイトを見つけました。&lt;br /&gt;　&lt;a href="http://www.iknow.co.jp/"&gt;http://www.iknow.co.jp/&lt;/a&gt;&lt;br /&gt;あまり使っていないのでなんとも言えないのですが、レベルごとにコースなどがあり学習の記録を残せるようです。&lt;br /&gt;しかも無料。&lt;br /&gt;&lt;br /&gt;とりあえず覚えている単語の数も少ない私には効果がありそうです。&lt;br /&gt;ちょっと少しずつやってみようかと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-224919681747193928?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/224919681747193928/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=224919681747193928' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/224919681747193928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/224919681747193928'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/03/iknow.html' title='iKnow'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-1552257631852455308</id><published>2008-03-09T23:50:00.003+09:00</published><updated>2008-03-11T23:36:47.904+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><title type='text'>MacBookをMacOS X Leopardに</title><content type='html'>僕が持っているMacBookはTigerが入っていたのですが、もうそろそろLeopardにしてもいい時期かなと思ってLeopardにした。&lt;br /&gt;&lt;br /&gt;思った以上に使い勝手が良くなっている。&lt;br /&gt;&lt;br /&gt;・ファイラー&lt;br /&gt;何よりも一番うれしかったのがファイラが使いやすくなっている。&lt;br /&gt;まず、Windows共有が今までより格段に便利になっている。&lt;br /&gt;Tigerまでだとわざわざネットワーク→ワークグループ→共有先コンピュータを選んで、共有を1つずつ毎回マウントし認証する必要があった。&lt;br /&gt;LeopardだとWindows共有のコンピュータの一覧がファイラの左側に表示されていてそこから表示ができる。&lt;br /&gt;さらに、一度認証すればあとはそのコンピュータの共有ファイルは全部使える。&lt;br /&gt;これは便利。&lt;br /&gt;Windows同士だと普通のことなんだけどねぇ。&lt;br /&gt;あとはCoverFlowも意外と使えるし、イメージファイルや動画ファイルのアイコンがプレビューになっているのもいい感じ。&lt;br /&gt;&lt;br /&gt;・Spaces&lt;br /&gt;Linuxの仮想デスクトップのようなもの。&lt;br /&gt;Tigerだとフリーソフトのものがあったけど、なんかいつもファイラが前に出てきちゃって使いにくかった。&lt;br /&gt;やっぱ純正でついているとうれしい（気の持ちようかもしれないけど）&lt;br /&gt;最初キーボードで移動するショートカットキーがわからなかった。&lt;br /&gt;Ctrl + 矢印キーで移動できた。&lt;br /&gt;&lt;br /&gt;・Terminal&lt;br /&gt;タブが使えるようになった。&lt;br /&gt;これは相当便利。&lt;br /&gt;iTermだとレンダリングが遅くて僕には合わなかった。&lt;br /&gt;# Emac + mewとかだと遅さが目立った&lt;br /&gt;まぁ今となってはGNU screen使ってるから別にいらないっちゃいらないんだけどね。&lt;br /&gt;こっちもタブ移動のショートカットキーがわからなかったけど、command + {が前タブでcommand + }が後ろタブだった。&lt;br /&gt;&lt;br /&gt;・TimeMachine&lt;br /&gt;Leopardの新機能。&lt;br /&gt;バックアップ先はローカルディスクのみ。&lt;br /&gt;なんかTMManagerというのを使うとNASにもバックアップできるらしい。&lt;br /&gt;でも、MacBookは持ち運ぶので考えて使わないとバックアップのファイルが整合性とれなくなりそう。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;なによりiPhone / iPod touch のSDKが動くようになったのであとで少しずつやってみよう。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-1552257631852455308?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/1552257631852455308/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=1552257631852455308' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/1552257631852455308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/1552257631852455308'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/03/macbookmacos-x-leopard.html' title='MacBookをMacOS X Leopardに'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-1026728202495611386</id><published>2008-03-07T22:48:00.006+09:00</published><updated>2009-02-15T15:24:12.236+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><title type='text'>iPhone/iPod touch用SDK β版</title><content type='html'>β版の配布が開始されたようです。&lt;br /&gt;これでjailbreakしていないiPod touchにもアプリケーションが追加できると喜んでいたのですが、実機で動かすにはまだダメなようです。&lt;br /&gt;&lt;br /&gt;実機で動かすにはiPhone Developer Programの加入しキーのようなものを取得する必要があるそうです。&lt;br /&gt;現状iPhone Developer Programはアメリカでの加入しか対応していないそうです。&lt;br /&gt;&lt;br /&gt;さらにSDKで作ったアプリに対応したiPhone/iPod touchのアップデートはiPhoneは無料だけどiPod touchは有料というよくわからない感じになっています。&lt;br /&gt;&lt;br /&gt;とりあえず現状はSDKに同梱されるシミュレーターでデバッグするしかないようですね。&lt;br /&gt;&lt;br /&gt;ドキュメントはかなり整っているようなので開発するのがいくぶん楽そうです。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;しかしながら、そもそもSDKの対応OSがLeopard 10.5.2以降なのでTiger 10.4.11の僕涙目。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-1026728202495611386?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/1026728202495611386/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=1026728202495611386' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/1026728202495611386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/1026728202495611386'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/03/iphoneipod-touchsdk.html' title='iPhone/iPod touch用SDK β版'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-2891269394335002338</id><published>2008-03-06T00:30:00.001+09:00</published><updated>2008-03-06T00:31:15.653+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>ブログはじめました</title><content type='html'>開発ブログをはじめました。&lt;br /&gt;毎日更新を目標にしておきます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-2891269394335002338?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/2891269394335002338/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=2891269394335002338' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/2891269394335002338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/2891269394335002338'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/03/blog-post.html' title='ブログはじめました'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6943890639176107507.post-4669792452830098218</id><published>2008-03-04T23:49:00.008+09:00</published><updated>2008-03-06T00:40:55.400+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon S3'/><title type='text'>Park Place - Amazon S3のクローン</title><content type='html'>Amazon S3はAmazonが提供するストレージサービスだ。&lt;br /&gt;データーの転送量とストレージへの保存容量によって課金されるしくみだ。&lt;br /&gt;インターフェイスとしてSOAPもしくはRESTが用意されていて、クライアントのプログラムもいくつか存在する。&lt;br /&gt;&lt;br /&gt;このAmazon S3のクローンを作成するソフトがPark Placeだ。&lt;br /&gt;　Park Place - Trac  &lt;a href="http://code.whytheluckystiff.net/parkplace/"&gt;http://code.whytheluckystiff.net/parkplace/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;これを使えば自分の環境に自分専用のAmazon S3が用意できる。&lt;br /&gt;&lt;br /&gt;インターフェイスとしてREST しかサポートしていないようだ。&lt;br /&gt;次回以降でインストールしてみる。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6943890639176107507-4669792452830098218?l=hirokikana.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hirokikana.blogspot.com/feeds/4669792452830098218/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6943890639176107507&amp;postID=4669792452830098218' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/4669792452830098218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6943890639176107507/posts/default/4669792452830098218'/><link rel='alternate' type='text/html' href='http://hirokikana.blogspot.com/2008/03/park-place-amazon-s3.html' title='Park Place - Amazon S3のクローン'/><author><name>hiroki.kana</name><uri>http://www.blogger.com/profile/00274557073130404046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_FsZBIewJDJA/SZBgMQ72jvI/AAAAAAAAAE4/1fmIl2TD5Gs/s1600-R/631667_3776151125.jpg'/></author><thr:total>0</thr:total></entry></feed>
