<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Hasta Pronto.org</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/" />
    <link rel="self" type="application/atom+xml" href="http://www.hasta-pronto.org/atom.xml" />
    <id>tag:www.hasta-pronto.org,2011-01-07://2</id>
    <updated>2011-02-06T09:34:49Z</updated>
    <subtitle>Moreover, let&apos;s surely meet in when.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 5.1-ja-master-r4539-6f36ad2d-20110307</generator>

<entry>
    <title>Kansai.pm 第10回ミーティング</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2008/08/13-0210.php" />
    <id>tag:www.hasta-pronto.org,2008://2.140</id>

    <published>2008-08-12T17:10:32Z</published>
    <updated>2011-02-06T09:34:49Z</updated>

    <summary>Kansai.pm 第10回ミーティングに参加してきました</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Entry" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="hatena" label="hatena" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="kansaipm" label="kansai.pm" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="kyoto" label="kyoto" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        日曜にあった Kansai.pm 第10回ミーティングに参加しました。たしか当初はプラグイン勉強会だとか言ってたような気がしたけど、今回も内容の濃いプレゼンが多かったので幅が広い方が面白いのかも。主催する側はまとめるの大変だけど。

内容はみんな書いてるので僕は各セクションの個人的な感想を。アウトラインっぽいのを付けてるけど、アウトラインじゃなくて個人的なメモみたいなものなので、興味のある方は以下のリンクを参照した方がよいです。

-[http://kansai.pm.org/cgi-bin/wiki.cgi?action=ID&amp;b=7-gny7DFU7dM3LDbLCIuOQ:title=イベント/第10回ミーティング報告 - Kansai.pm]

*つなぎ AzureStone(あーじゅ・すとーん)さん
-セキュアコーディング

セキュアコーディングについての勉強会ってのは良さそうだと思った。個人では経験出来ない体験談を共有出来そうなのでもの凄い価値は高いのでは？

*Plaggerプラグインの作り方(Filter/Notice/Publish編） hashyさん
-最新版Plaggerチェックアウトしろ
-ソース読めでOKだけど
-1;は入れとけ
-mixiはeuc-jp

進行が時間の関係上はやくなってしまったのが残念だったけど、これから Plagger 触ろうとしてる人には役に立つ内容だった。

*ウェブログ管理システム Serene Bach 2.0 プラグインの作り方 hashyさん
-&apos;しりんばっちっ&apos;と読む
-開発者が日本人
-euc-jp版とutf-8版がある
-実装が奇麗

リアルタイムで流れていた IRC がちょっとおもろかった。&quot;しりんぱっち&quot;というより sb と言った方がなじみがあるのかも。パッケージが euc-jp 版と utf-8 版ってのがいただけないかなと思うけど、実装が奇麗だって話があったのでソース読むのも面白そうだ。

*CGI::Application の Plugin はじもとさん
-Plugin割と単純な仕組みっぽい
-はてな記法で発表
-読み込みの順番に気をつけよう

id:jkondo とのやり取りうけた。今回は位置情報の取得と関係がない発表だったけど、機会があったら位置情報関係の実装とかの話をしてもらいたいと思う。そういえば長年愛用させてもらっている amazlet　は　CGI::Application　だと流れていた。個人的に CGI::Application はプライベートではあまり使う機会はなさそう。

**Error.pm の簡単な使い方　ビンゴ中西さん
-try {} catch {} otherwise {} finaly 文

スライドの try { open my $FILE ...} のスコープの話は不覚にも気がつかなかったなぁ僕は。LT だったけど、濃い内容の話で面白かった。大きい物を作る時に自分でも使ってみようと思う。

**Thrift という Facebook の作った RPC フレームワークについて 伊藤直也さん
-クロス言語フレームワーク
-サービスレベルで結合
-稼働実績 Facebookでつかわれてる物だからOK

稼働実績の資料の数字が大きすぎて驚いた。Web サーバー 10,000　台ってが世界レベルのサービスなのね。個人レベルでは　Thrift を使う機会ってなかなかなさそうだけど実験として使ってみるのはかなりおもしろそう。id:hiboma からサインをもらえと命令が飛んで来たけど、まだ書籍を買ってなかったので実行出来ず。

**続・脱KENT様方式 AzureStone(あーじゅ・すとーん)さん
-実はSPAMER
-部屋がすげー
-前回の復習

テンション低いのを気にしてるのがうけた。あと、「スパマーですか？」の　naoya　さんとのやり取りが個人的にはつぼ。

*PersistentPerl による高速化の実例紹介 TAMASHIROさん
-コマンドラインで使えるのがよさげ

TAMASHIRO さんプレゼン上手すぎ。内容もわかりやすくてぜひ使ってみようと思う内容だった。欲を言うとクライアントコードの方もみれるとうれしかったし、シェバングを #!/usr/bin/perperl に書き換えるだけってのが説明しやすかったんだろうと思う。

*EmacsでPerlプログラミングする上で必須な設定 antipopさん
-巷ではEmacserというらしい
-Ack grep代替
-color-moccur/moccur-edit
-flymake.el
-perly-sense
-perl-completion.el

ネタ仕込みすぎでワロタ。僕は Emacs 好きだけど全部が全部　Emacs 上じゃなくて Terminal 普通に使うんで、今まで「Emacs 上で ack とか　perly-sense　とかそこまで必要ないだろ」とか思ってたけど、デモを見せられると意識変わりますね。perl-completion.el で組み込み関数の　man　までみれたのね、知らなかった。あと、世の Emacser はみんな anything を使ってるもんだと思ってたけど、使ってる人が少なかったのに逆に驚いた。yasnippet とか anything とかオールドな人は嫌なんだろうか？

        
    </content>
</entry>

<entry>
    <title>Flex の開発環境作ってみた (LL)</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2008/08/5-0339.php" />
    <id>tag:www.hasta-pronto.org,2008://2.138</id>

    <published>2008-08-04T18:39:58Z</published>
    <updated>2008-08-04T19:32:02Z</updated>

    <summary>ActionScript3.0 やりたくなったので Flex の開発環境作ってみた</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Entry" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="actionscript" label="actionscript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="emacs" label="emacs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flash" label="flash" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flex" label="flex" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        <![CDATA[一つの言語だけしかやっていないと、言語の善し悪しがわからないのではないかっと思って唐突に ActionScript を触りたくなったので自分メモとして 2008.08.05 現在の情報をまとめておく。なにげに調べた環境では古い情報も多くて色々動かない物や、リンク切れも多かったので。自分メモなんで詳しい設定ははしょる。

*Flex 3 SDK

現在最新版は 3.0.3 っぽい。Adobe　版と Open Source 版があって、差異は AIR の実行環境と Flash Player がつくかどうかの違いらしい。Open Source　版にはそれらが入っていない。同じページ上にある　Adobe Add-on が AIR の実行環境とかだったりするので必要なら別途入れれば良い。付属ファイル以外にもライセンス上の違いがあるので好きなライセンスを選べば良い。

-[http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3:title=Download Flex 3 - Flex SDK - Confluence]

インストールは zip ファイルを展開して PATH に通す。

**はまった点

なにげに bin/ 以下のファイルは改行コードが DOS になっていて自分の環境にあった物に直す必要がある。そのままコンパイルしようとすると、シェバングの後ろに　^M が余分だよと怒られます。あと、zip からの解凍したものなのでパーミッションもないので振ってあげる必要がある。

*id:secondlife に感謝しつつ頂くもの

**rascut

mongrel を使って、ファイル修正->ブラウザで表示確認 を自動化出来るツール。

>||
% gem install rascut
||<

rubygems を使っていっぱつでインストール可能。あと、Flex がのロケールが日本語になっているとエラー出るらしいので、Shell の設定ファイルにでも以下を記述。僕は en 環境しか入れてないのでなくてもとりあえず普通に動いてるっぽい。

>||
export _JAVA_OPTIONS='-Duser.language=en'
||<

**log.as

Firebug からでも使える log 関数を記述した as ファイル。プリントデバッグのとき重宝。

flex-conf.xml に設定を記述することで使える。

>|xml|
<source-path>
   <path-element>PATH</path-element>
</source-path>
||<

-[http://gihyo.jp/magazine/wdpress/archive/2007/vol41/support:title=WEB+DB PRESS Vol.41：サポートページ｜gihyo.jp &#133; 技術評論社]

]]>
        *Emacs で　Action Script

情報を探していると、どうやら actionscript.el を使うのがよさそうだけど、cc-mode に依存してるらしく古い cc-mode が無いと使えないらしい。とりあえず入れたんだけど、PATH 通してもエラーが消えなくてハイライトもされないので英語関係あさってたら、actionscript.el の制作者のサイトに他の人が作った W32 版があって、それだったら cc-mode も追加で入れないで動いた。

[http://blog.pettomato.com/index.html?p=24:title=Casual Game Development » Blog Archive » actionscript-mode for EmacsW32]

普通に load-path の通ったところに入れておけば動くはず。

*今後

ちょっと調べただけでも as3 の情報は色々見つかるので、ちょくちょく触っていこうとは思う。かなりオールドな環境だけど、FlashCS3 も使って操作感の比較するつもり。Flash のアクションパネルは Emacs キーバインド使えないからあきらめていたんだけど KeyRemap4MacBook でキーバインドいけるんじゃねってのに気がついたんで、それも試してみるつもり。as3 のリファレンスも付いていることだし。

これだけ書いておいて、Flash でもコンパイル普通に出来るなら Fash でもいいかなぁなんて考えてもいる。

**追記
なぜだかはてな記法に通したら flex-conf.xml のソース消えてしまってる。バグ修正しなきゃ。
    </content>
</entry>

<entry>
    <title>デザインテンプレートを初期化した</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2008/07/13-0300.php" />
    <id>tag:www.hasta-pronto.org,2008://2.133</id>

    <published>2008-07-12T18:00:22Z</published>
    <updated>2008-07-12T22:32:05Z</updated>

    <summary>MTのデザインテンプレートを初期化した</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Entry" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="diary" label="diary" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="movabletype" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        MT のテンプレートがどうにも上手く再構築出来ないのでテンプレート初期化しました。当分の間この状態だと思うのですが、まぁ検索はしやすいんじゃないでしょうかw

バージョンアップでテンプレートの内容がけっこう変わるので昔のバージョン使ってると対応するの大変ですね。だもんで今回はあきらめました。MT でバックアップとってもタグとかカテゴリーとか消えちゃったのでぼちぼち修正します。デザインの方も前と違うのにしようかなって思ってます。

最近は、はてなで書いてたりするんですが、MT よりはてな記法の方がなんとなく書きやすい気がしないでもないですねぇ。

昔はてな記法 Plugin とかあったけど今も入手可能なんだろうか？見つからなかったら仕様がないので自分でフォーマット用の Plugin 作ろうと思います。でも作ると言っても Markdown 用の Plugin が最初から入っているわけで、それを参考にするだけですけどね。あとは Text::Hatena 頼りw

最近味のないエントリーばっかで申し訳ないw
        
    </content>
</entry>

<entry>
    <title>久々に Movable Type をアップグレードした</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2008/07/6-2233.php" />
    <id>tag:www.hasta-pronto.org,2008://2.132</id>

    <published>2008-07-06T13:33:54Z</published>
    <updated>2008-07-13T12:50:17Z</updated>

    <summary>Movable Type をアップグレードしてみた</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Memo" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="blog" label="blog" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="movabletype" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        version 4.2-en-release-41-r2716-20080706 に変えたんだけど、何やら色々なところが様変わりしてた。

TypePad AntiSpam なんてプラグインが入ってた。これ　TypePad　の API 使って　SPAM の判定してくれるんでしょうね。まぁ SPAM はいたちごっこなんで中央集権的にリリース会社が管理した方が安全性は高いでしょうね。

あと気づいた点は、リビルドの時にリブルドにかかった時間が表示されるようになってました。前はなかったと思うんですけど。たしか、Ver 4.2 での目玉がリブルド時の負荷軽減だったと思うので、それの為に視覚的に表示してるんだと思います。っと言っても僕のサーバーは素の CGI なんで 120 件ぐらいのエントリーで 1 分弱ってところでした。あまり体感速度を実感出来る数字ないかもしれないです。

*追記

そういえば、DreamHosts　から自鯖に引っ越した時にコメントやらトラバやらがエラって受け付けなくなってたのを今回思い出しました。検索もエラーでます。そのうち修正します。
        
    </content>
</entry>

<entry>
    <title>Web+DB PRESS vol.45 買った</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2008/06/27-2204.php" />
    <id>tag:www.hasta-pronto.org,2008://2.131</id>

    <published>2008-06-27T13:04:07Z</published>
    <updated>2008-06-27T13:07:33Z</updated>

    <summary>いつもは買わない Web+DB PRESS を、今回は MySQL 5.1 の特集があったのでつい買ってしまった。</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Memo" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="book" label="book" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mysql" label="mysql" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="webdb" label="web+db" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        <![CDATA[<ul>
<li>特集1 モバゲー発フレームワークMobaSiF，Flash Liteでの開発からテストのポイントまでをチェック！[イマドキ]ケータイ開発実践入門</li>
<li>特集2 性能向上，機能強化，そしてMySQL Cluster 詳解！ MySQL 5.1</li>
<li>特集3 認証システム最前線 OpenID 2.0徹底解説</li>
</ul>

<p>いつもは特集で買わないんですけど、今回は MySQL 5.1 の特集があったのでつい買ってしまいました。ついでに Kansai.pm で Naoya さんが Moose の記事書くって言ってたのも購入理由かも。</p>

<p>特集記事だけでも値段分の価値はありそうなんですけど、他にも iKnow のバックグランドの話とかあって今回も内容が濃いです。</p>

<p>Moose の記事は基本を網羅しつつ詳しい説明も少し入っていて読みやすかったです。</p>

<div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4774134864/hastaprontoco-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51GSwm08HsL._SL160_.jpg" alt="WEB+DB PRESS Vol.45" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4774134864/hastaprontoco-22/ref=nosim/" name="amazletlink" target="_blank">WEB+DB PRESS Vol.45</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/4774134864/hastaprontoco-22/ref=nosim/" title="WEB+DB PRESS Vol.45" target="_blank">amazlet</a> at 08.06.27</div></div><div class="amazlet-detail"><br />技術評論社 <br />売り上げランキング: 83<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4774134864/hastaprontoco-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>
]]>
        
    </content>
</entry>

<entry>
    <title>Mac の otool -L って *nix の ldd みたいなツール？</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2008/02/23-0144.php" />
    <id>tag:www.hasta-pronto.org,2008://2.130</id>

    <published>2008-02-22T16:44:14Z</published>
    <updated>2008-02-22T16:46:30Z</updated>

    <summary>Mac の otool -L って *nix の ldd みたいなツールなんだよ</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Memo" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="command" label="command" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mac" label="mac" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        <![CDATA[<p><a class="ex-ref" title="MacPorts が嫌になる瞬間・・・ apache で https を使おうとしたら・・・ - yuum3のお仕事日記" href="http://d.hatena.ne.jp/yuum3/20080222/1203690553">MacPorts が嫌になる瞬間・・・ apache で https を使おうとしたら・・・ - yuum3のお仕事日記</a>を「あぁ MacPorts の Apache 確か僕のも SSL でエラーはいてたなぁ」とか思いつつみていて、<a class="ex-ref" title="#13182 (Apache2 failure to start due to mod_ssl loading problem under Mac OS X 10.5 Leopard) - MacPorts - Trac" href="http://trac.macports.org/projects/macports/ticket/13182">#13182 (Apache2 failure to start due to mod_ssl loading problem under Mac OS X 10.5 Leopard) - MacPorts - Trac</a> に飛んだわけです。そこで見知らぬコマンド otool ってのが出ていたと。</p>

<p>実は僕ちょっと前まで使うツールはソースから入れてたんだけど(Macでも)、Linux の ldd みたいなの無いの？とか良く思ってたわけです。っで「まぁ僕はその辺わからんしなぁ」で放置みたいな...</p>

<p>そんなこんなでパッケージ管理ツールに逃げたわけなんですけど、やっぱあるんですねライブラリの依存関係を確認できるツールが。そりゃないはずないですね。</p>]]>
        
    </content>
</entry>

<entry>
    <title>はてな歓迎会「HUG Kyoto 20080314 おかえりHatena」の連絡</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2008/02/21-0610.php" />
    <id>tag:www.hasta-pronto.org,2008://2.129</id>

    <published>2008-02-20T21:10:26Z</published>
    <updated>2008-02-20T21:39:41Z</updated>

    <summary>「HUG Kyoto 20080314 おかえりHatena」の告知</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Entry" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="hatena" label="hatena" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="kyoto" label="kyoto" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        <![CDATA[<blockquote title="「HUG Kyoto 20080314」のご案内 - design,web,computer & others" cite="http://d.hatena.ne.jp/gintacat/20080221/1203522024">
<p>HUG Kyoto 20080314 「おかえりHatena」</p>
<p>3月14日（金）午後7:00〜7:30受付、午後7:30スタート</p>
<p>会場：インド料理「スジャータ」　会費：3,500円</p>
<cite><a title="「HUG Kyoto 20080314」のご案内 - design,web,computer & others" href="http://d.hatena.ne.jp/gintacat/20080221/1203522024">「HUG Kyoto 20080314」のご案内 - design,web,computer & others</a></cite></blockquote>

<p>はてなが京都に帰ってくるということで有志で作った Hatena Users Group Kyoto ではてなスタッフを招いて歓迎会をすることになりました。</p>

<p>受付は上記リンク先で行っていますので、気軽にお申し込みください。</p>

<ul>
<li><a class="ex-ref" title="京のインド料理-スジャータレストラン" href="http://www.sujata-restaurant.com/map.html">京のインド料理-スジャータレストラン</a></li>
</ul>]]>
        
    </content>
</entry>

<entry>
    <title>Emacs で前回終了時のバッファ(全て)を復元したい</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2008/01/30-0235.php" />
    <id>tag:www.hasta-pronto.org,2008://2.128</id>

    <published>2008-01-29T17:35:08Z</published>
    <updated>2008-01-29T17:41:42Z</updated>

    <summary>Emacs で前回終了時のバッファ(全て)を復元する Elisp</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Entry" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="elisp" label="elisp" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="emacs" label="emacs" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        <![CDATA[<p>最近僕の周りで Eclipse が流行っていて、Eclipse は再起動かけても以前作業していた状態で作業再開出来ると聞きました。</p>

<p>Emacs も session.el などを使えば、ファイル単位で復元出来るのは知ってたんですが、バッファリストの復元はどうするのかさっぱり。</p>

<p>Eclipse 導入って選択肢もあるのですが、環境を整えるのに時間かかりそうだったので Elisp で都合のいい物がないか探したわけです。そうしたら目的の物がありましたよ。</p>

<ul>
<li><a class="ex-ref" title="revive.el" href="http://www.gentei.org/~yuuji/software/revive.el">revive.el</a></li>
</ul>

<p>調べてみると windows.el って物と一緒に使うのがベターらしいのですが、僕の場合バッファだけで良かったのでとりあえず revive.el だけ設定してみました。キーバインドなんかが C-x S とかになってて、いちいち保存しなきゃいけないみたいだったんですが、面倒なので Emacs を終了する時に勝手に保存するように変えたらかなりいい案配になりました。</p>

<pre><code>(autoload 'save-current-configuration "revive" "Save status" t)
(autoload 'resume "revive" "Resume Emacs" t)
(autoload 'wipe "revive" "Wipe emacs" t)
(define-key ctl-x-map "F" 'resume)                        # C-x F で復元
(define-key ctl-x-map "K" 'wipe)                          # C-x K で Kill
(add-hook 'kill-emacs-hook 'save-current-configuration)   # 終了時に保存</code></pre>]]>
        <![CDATA[<p>保存用の情報はホームディレクトリに別ファイルで書き出すみたいです。Emacs22 でも動いたので多分ほとんどの環境で動くんじゃないでしょうか。</p>

<p>これで以前の作業状態に一瞬で戻ることが出来るようになりました。PC 再起動後でも問題ありません。ついでに分割してたのとかも再現してくれます。かなりいい具合です。</p>]]>
    </content>
</entry>

<entry>
    <title>MacBook買ったので入れたアプリケーションをまとめておく</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2008/01/27-0153.php" />
    <id>tag:www.hasta-pronto.org,2008://2.127</id>

    <published>2008-01-26T16:53:26Z</published>
    <updated>2008-01-26T16:56:28Z</updated>

    <summary>MacBook買ったので入れたアプリケーションをまとめておく</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Entry" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="apple" label="apple" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="application" label="application" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="macbook" label="macbook" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        <![CDATA[<p>前にも書いたんだけど自分メモとして残しておく。昔のほどアプリケーションをインストールしていないんだけど、この中にも普段使わないアプリがいっぱいあるんですよね。</p>
<p>iWork とかも買いたいんですが、実際使うのってプライベートなプレゼン資料作る時ぐらいだし、あまり実用性は高くないのかなと思って届いていないです。</p>

<p>っで MacBook の感想は、相当いいです。いままで PowerPC G4 iBook だったので全然体感速度が違います。MacBook Air が出ましたけど、スペック的にはあまり魅力的でなかったのも MacBook 買ってよかったと思う理由かもしれません。</p>

<dl>
<dt>Adium</dt>
<dd>メッセ統合</dd>
<dt>Adobe Illustrator CS2</dt>
<dd>お金無いから古い</dd>
<dt>Adobe Photoshop CS2</dt>
<dd>お金無いから古い</dd>
<dt>AppCleaner</dt>
<dd>削除ソフト、微妙に深いところにあるのは削除されないのでいらないかも</dd>
<dt>Camino</dt>
<dd>爆速ブラウザ</dd>
<dt>ClamXav</dt>
<dd>オープンソースのアンチウイルス&スパイウェア検知ソフト</dd>
<dt>CheetahWatch</dt>
<dd>E-Mobile D02HW の電波状態がわかるソフト、ネタフルから</dd>
<dt>CotEditor</dt>
<dd>最近Macユーザーはこれっすよね</dd>
<dt>Disco (Shareware)</dt>
<dd>ライティングソフト、微妙に焼くの遅い気がする</dd>
<dt>Disk Inventory X</dt>
<dd>ディスクスペースを視覚的に見せてくれるソフト、スリープ時に使うファイルが 4G スペース取っててびびった</dd>
<dt>Emacs</dt>
<dd>無いと割と困る</dd>
<dt>Firefox</dt>
<dd>最近はメインブラウザ</dd>
<dt>Flip4Mac</dt>
<dd>あると意外と助かる</dd>
<dt>Gmail+Growl Utility</dt>
<dd>Growl に表示してくれるやつ</dd>
<dt>Google Notifier</dt>
<dd>上に出ているあれ</dd>
<dt>Google Updater</dt>
<dd>いらないのに勝手に入る、消しても何か入れると戻ってくるやつ</dd>
<dt>KeePassX</dt>
<dd>これが意外に良くて、忘れてしまいがちなパスワードやログイン情報を保存するのに助かってる</dd>
<dt>LimeChat</dt>
<dd>たまに立ち上げて、間違った内容をおくっている</dd>
<dt>Microsoft Office X</dt>
<dd>新しいの欲しいけどお金ないので古いまま</dd>
<dt>NeoOffice</dt>
<dd>上記で無理だった場合に使う</dd>
<dt>OnyX</dt>
<dd>最適化がいつの間にかなくなったけど、まだ入れてるメンテナンスツール</dd>
<dt>Quicksilver</dt>
<dd>ないと App の立ち上げがしんどい</dd>
<dt>Release Memory2</dt>
<dd>メモリを解放するユーリティ、AppleScript なんだけど .app がついてる、10.5 でも使える。</dd>
<dt>Skype</dt>
<dd>親族との連絡用</dd>
<dt>StuffIt Expander</dt>
<dd>zip関係</dd>
<dt>The Unarchiver</dt>
<dd>Win 経由でも文字化けせずに解凍出来る</dd>
<dt>Thousand</dt>
<dd>なんとなくいれてる 2ch 用ブラウザ</dd>
<dt>Toast Titanium</dt>
<dd>ライティングソフト、割と速い気がする</dd>
<dt>Transmit (Shareware)</dt>
<dd>アイコンのかわいらしさだけで使ってる FTP ソフト</dd>
<dt>VLC</dt>
<dd>正直使う事がないんだけど、念のため</dd>
<dt>VMware Fusion (Shareware)</dt>
<dd>最近 4,000 円で買ったんだけど、まだ Windows 入れてない</dd>
<dt>Xbench</dt>
<dd>Mac 用ベンチマークツール、でも比較する対象がない</dd>
<dt>coconutBattery</dt>
<dd>バッテリーの調査</dd>
<dt>iTerm</dt>
<dd>Core 2 Duo だから 256colors でも速いかと思ったら期待はずれだったので Terminal.app ばっか使ってる</dd>
<dt>sshfs</dt>
<dd>結局 GUI の方が繋げる手間がなくて良い</dd>
</dl>]]>
        <![CDATA[<p>今後導入予定なのはPHP書くのにEclipseが良いらしいと聞いたので入れる予定。</p>
<p>人の Blog とか見ていると気になるアプリとか紹介していて使いたくなるんだけど、実際入れるとあんまりって事が多いので今のところこんな感じで十分かなと思う。</p>

<h3>追記</h3>
<p>アプリへのリンクは面倒なので張らない。</p>
<p>そうそう、年末年始MacBookを含め散財しまくったので買った物も後でまとめて感想とか書いておく。</p>

<div class="amazlet-box" style="margin:10px 0;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000YDBT4E/hastaprontoco-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/11eMlwiHc0L.jpg" alt="APPLE MacBook 2GHz Core 2 Duo/13.3/1G/80G/24x Combo/Gigabit/BT/DVI MB061J/B" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000YDBT4E/hastaprontoco-22/ref=nosim/" name="amazletlink" target="_blank">APPLE MacBook 2GHz Core 2 Duo/13.3/1G/80G/24x Combo/Gigabit/BT/DVI MB061J/B</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B000YDBT4E/hastaprontoco-22" title="APPLE MacBook 2GHz Core 2 Duo/13.3/1G/80G/24x Combo/Gigabit/BT/DVI MB061J/B" target="_blank">amazlet</a> on 08.01.27</div></div><div class="amazlet-detail">アップルコンピュータ (2007/11/02)<br />売り上げランキング: 6506<br /></div><div class="amazlet-review" style="margin-top:10px; margin-bottom:10px"><div class="amazlet-review-average" style="margin-bottom:5px">おすすめ度の平均: <img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-5-0.gif" alt="5.0" /></div><img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-5-0.gif" alt="5" /> 異様なコストパフォーマンス<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000YDBT4E/hastaprontoco-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>
]]>
    </content>
</entry>

<entry>
    <title>DreamHost から自宅サーバーへ移行</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2008/01/13-2237.php" />
    <id>tag:www.hasta-pronto.org,2008://2.126</id>

    <published>2008-01-13T13:37:21Z</published>
    <updated>2008-01-13T13:39:28Z</updated>

    <summary>blogのサーバーを自宅サーバーに移転しました。</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Entry" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="blog" label="blog" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="movabletype" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="server" label="server" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        <![CDATA[<p>久々の更新です。一年ぐらい <a class="ex-ref" title="Web Hosting by DreamHost Web Hosting: Web Sites, Domain Registration, WordPress, Ruby on Rails, all on Debian Linux!" href="http://www.dreamhost.com/">DreamHost</a> を使っていたのですが、どうにも重くて Hewlett Packard でサーバーを買ったついでに blog も移行してみました。</p>

<p>ついでに <a class="ex-ref" title="MTOS: Movable Type オープンソース・プロジェクト | MovableType.jp" href="http://www.movabletype.jp/opensource/">MTOS</a> も出た事ですし、MT のバージョンも変えてみました。</p>

<p>全開は FastCGI でやってたんですが、MT4.0 以上にはメモリリークのバグがあるらしいので、今回はとりあえず素の CGI で我慢しておきます。</p>
 
<p>サーバー移行で気がついたのですが、いつの間にか MT 自体に DB のバックアップ機能まで付いていたんですね。文字コードまわりではまってしまって困っていたのですが、MT デフォルトのバックアップで簡単に移行も済みました。唯一バージョンがあがったせいで MTTags あたりのタグが表示されなくなってしまったのでそのうち直そうと思います。</p>
 
<p>今月は Kansai.pm もあることですし、ぼちぼち blog も書いていきます。</p>]]>
        
    </content>
</entry>

<entry>
    <title>WEB+DB PRESS Vol.40 で言及されたらしいです</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2007/08/27-2214.php" />
    <id>tag:www.hasta-pronto.org,2007://7.1524</id>

    <published>2007-08-27T13:14:00Z</published>
    <updated>2007-08-27T13:19:58Z</updated>

    <summary>WEB+DB PRESS Vol.40 で言及されたらしいです</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Memo" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        <![CDATA[<p>数日前に <a class="ex-ref" title="hibomaのはてなダイアリー" href="http://d.hatena.ne.jp/hiboma/">id:hiboma</a> から <a class="ex-ref" title="Hasta Pronto.org" href="http://www.hasta-pronto.org/">Hasta Pronto.org</a> が <a class="ex-ref" title="WEB+DB PRESS" href="http://www.gihyo.co.jp/magazines/wdpress">WEB+DB PRESS</a> で言及されてたと教えてもらいました。</p>

<p>どうやら、開発環境まわりで PuTTY の 256color 化が紹介されたらしいです。あと<a class="ex-ref" title="たつをの ChangeLog" href="http://chalow.net/">たつをさん</a>の<a class="ex-ref" title="スタート！マックブック (Start MacBook)" href="http://start-macbook.net/">スタート！マックブック</a>のコーナーで sshfs の話があり URL が載ったらしいです。</p>

<p>ちなみに京都だとジュンク堂ぐらい大きな書店行かないと手に入らないのでまだ買ってません。そして情報の真偽は読んでいないので定かではありませんw</p>

<p>でも技術系情報誌にちょこっとでも blog が載ったとなるとうれしいもんですね。</p>

<h3>関連がありそうな記事</h3>
<ul>
  <li><a class="ex-ref" title="開発環境 Screen x PuTTY x Emacs x 256color : Hasta Pronto.org" href="http://www.hasta-pronto.org/archives/2006/09/20-0110.php">開発環境 Screen x PuTTY x Emacs x 256color : Hasta Pronto.org</a></li>
  <li><a class="ex-ref" title="MacFUSE + sshfs はテラ便利 : Hasta Pronto.org" href="http://www.hasta-pronto.org/archives/2007/03/05-2349.php">MacFUSE + sshfs はテラ便利 : Hasta Pronto.org</a></li>
</ul>

<div class="amazlet-box" style="margin:10px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/477413192X/hastaprontoco-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ec1.images-amazon.com/images/I/31EsCHtC3zL.jpg" alt="WEB+DB PRESS Vol.40" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/477413192X/hastaprontoco-22/ref=nosim/" name="amazletlink" target="_blank">WEB+DB PRESS Vol.40</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/477413192X/hastaprontoco-22" title="WEB+DB PRESS Vol.40" target="_blank">amazlet</a> on 07.08.27</div></div><div class="amazlet-detail">WEB+DB PRESS編集部 <br />技術評論社 (2007/08/24)<br />売り上げランキング: 245<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/477413192X/hastaprontoco-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>]]>
        
    </content>
</entry>

<entry>
    <title>書こうと思って書けてない事</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2007/08/20-0110.php" />
    <id>tag:www.hasta-pronto.org,2007://7.1523</id>

    <published>2007-08-19T16:10:14Z</published>
    <updated>2007-08-19T17:11:38Z</updated>

    <summary>書こうと思って書いてない記事のタイトルを晒しておく</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Memo" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        <![CDATA[<p>言い訳じゃないけど、ここ一ヶ月 DreamHost が不調で Blog を書くのを怠っていました。っで心機一点させるために MT4 にアップグレードしてみました。</p>

<p>アップグレードの過程でデータベースを SQLite から MySQL に戻したのですが、どうも SQLite に Lock がかかっていたのが原因で、コメントやら TB やら出来ない状態になっていたみたいです。重かった原因も SQLite に SPAM コメントやらが溜まっていたから (削除しても SQLite の容量はかわらないくて、メンテコマンドを打たないといけないらしいです) みたいで MySQL に変えた今は割と快適に動いていると思いたい。</p>

<p>っでここから本文なわけですが、書こうと思って書いてない記事のタイトルを晒しておくことにする、すると後で書こうと思うかもしれない...</p>

<dl>
<dt>最近追加した Emacs の設定</dt>
<dd></ul>
<li>動的略称展開(abbrev) + snippet.el</li>
<li>flymake.el 割といいかも</li>
<li>Emacs 内で Perl::Critic</li>
</ul></dd>

<dt>Catalyst 関係</dt>
<dd></ul>
<li>オレオレ制作手順、作業工程</li>
<li>新しくなってる機能とかヘルパーの話</li>
<li>テスト用に作ってる時って SQLite と Server.pl が便利だよねって話</li>
<li>メソッドとかちゃんと調べなくては</li>
<li>Rails と違うねって点</li>
</ul></dd>

<dt>Perl ツールの紹介</dt>
<dd></ul>
<li>Moxy 便利、ローカルじゃなくてリモートで SSL が通ると便利すぎる</li>
</ul></dd>

<dt>Server 管理関係</dt>
<dd></ul>
<li>最近気になる便利なツール色々、Puppet とか</li>
</ul></dd>

<dt>自分開発環境</dt>
<dd></ul>
<li>Server 編、redMine か Trac でリポジトリ管理したいなって話</li>
</ul></dd>
</dl>

<p>時間と世暇があったら書くかもしれない</p>]]>
        
    </content>
</entry>

<entry>
    <title>Emacs で括弧やクウォートの補完したい</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2007/07/11-2330.php" />
    <id>tag:www.hasta-pronto.org,2007://7.1522</id>

    <published>2007-07-11T14:30:12Z</published>
    <updated>2007-08-19T15:18:08Z</updated>

    <summary>Emacs で括弧やクウォートの補完したいので Elisp を書いてみた</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Entry" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        <![CDATA[<p>Emacs で Ruby-mode を使ってコードを書いていると括弧やダブルクォーテンションの閉じるのが補完されて便利だなって思ってたんです。Perl を書く時ってメソッド呼び出す時の括弧とか、リファレンスの括弧とか結構括弧を多用しますよね。だからこれが他の言語モードでも使えればって思ったのです。</p>

<p>どうやら補完の Elisp は ruby-electric.el らしいってことがわかりました。これを Perl 使うときも On にしておけば補完される、しめしめ。とか思って使ってみると困ったことにループとか書いたあとに end まで補完されちゃって美しくない、end なんて Perl にはいらなし...</p>

<p>しかたなく ruby-electric.el のコードを眺めつつ、括弧を補完するのには必要な関数などを残しつつ、end などを補完する関数を削除してっとやってたら目的の物が出来ました。出来たはいいけど、cperl-mode に依存してて (僕が Elisp に詳しければちゃんとしたコードが書けるんですが) ちょっとコードとしては不恰好。もっと便利そうな Elisp がありそうなんですが、まぁ使えるからいいかなっと晒してみます。</p>]]>
        <![CDATA[<h3>perl-electric.el</h3>

<p>cperl-mode に依存してるので、便宜上 perl-electric とかしてますが、あまり Perl とは関係ありません。ただ単に括弧などを補完して自動で閉じてくれるだけです。javascript-mode とかでも使えるはずです。</p>

<ul>
<li><a href="http://www.hasta-pronto.org/download/perl-electric.el" title="ダウンロード">ダウンロード</a></li>
</ul>

<h3>使い方</h3>

<pre><code>(require 'perl-electric)</code></pre>

<p>.emacs に上記のように書いておけば読み込み OK ！使う時は</p>

<pre><code>M-x perl-electric</code></pre>

<p>っとすればマイナーモードが起動する。</p>

<pre><code>(add-hook 'cperl-mode-hook
    '(lambda()
      (progn
        (perl-electric-mode t)
    )))
</code></pre>

<p>.emacs で使いたいモードにフックしておけば、いちいち On/Off を切り替えなくていいのでちょっと便利。</p>]]>
    </content>
</entry>

<entry>
    <title>OS X に入っている PerlObjCBridge.pm</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2007/06/19-1622.php" />
    <id>tag:www.hasta-pronto.org,2007://7.1521</id>

    <published>2007-06-19T07:22:04Z</published>
    <updated>2007-08-19T15:18:08Z</updated>

    <summary>OS X に入っている PerlObjCBridge.pm についてちょっと調べてみた</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Entry" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        <![CDATA[<p>風の噂で Mac OS X に標準でインストールされている PerlObjCBridge.pm を使うと Cocoa へアクセス出来ると聞いたので、PerlObjCBridge.pm とはなんぞや？っと思いちょっと調べてみた。</p>

<p>案の定、日本語での情報は皆無で、CPAN　みてたら Perl ディストリビューションの README に少しだけ書いてあった。ので頑張って訳してみる。</p>

<blockquote title="README.macosx - Perl under Mac OS X - search.cpan.org" cite="http://search.cpan.org/~nwclark/perl-5.8.8/README.macosx"><h4>Cocoa</h4>
<p>There are two ways to use Cocoa from Perl. Apple's PerlObjCBridge module, included with Mac OS X, can be used by standalone scripts to access Foundation (i.e. non-GUI) classes and objects.</p>
<p>PerlからCocoaを使用する2つの方法があります。Mac OS Xに含まれているアップルのPerlObjCBridgeモジュールを使い、スタンドアロンスクリプトでFoundation(すなわち、非GUI)のクラスとオブジェクトにアクセスすることが出来ます。</p>
<p>An alternative is CamelBones, a framework that allows access to both Foundation and AppKit classes and objects, so that full GUI applications can be built in Perl. CamelBones can be found on SourceForge, at http://www.sourceforge.net/projects/camelbones/.</p>
<p>代替手段はCamelBonesです、FoundationとAppKitのクラスとオブジェクトの両方へのアクセスを許すフレームワークで、Perlで完全なGUIアプリケーションを組立てることができるようになります。 CamelBonesはSourceForgeで見つけることができます。http://www.sourceforge.net/projects/camelbones/ </p><cite><a title="README.macosx - Perl under Mac OS X - search.cpan.org" href="http://search.cpan.org/~nwclark/perl-5.8.8/README.macosx">README.macosx - Perl under Mac OS X - search.cpan.org</a></cite></blockquote>]]>
        <![CDATA[<p>perldoc で /System/Library/Perl/Extras/5.8.6/darwin-thread-multi-2level/PerlObjCBridge.pm を読むとなんとなくわかるんだけど、Object-C でこのような Hello World と表示するコードがあったとする。</p>

<pre><code>#import <Foundation/Foundation.h>

NSString *s1 = [NSString stringWithCString:"Hello "];
NSString *s2 = [[NSString alloc] initWithCString:"World"];
NSString *s3 = [s1 stringByAppendingString:s2];
printf("%s\n", [s3 cString]);
</code></pre>

<p>それを PerlObjCBridge.pm を使って(Foundation.pm が use PerlObjCBridge; している) Perl で書くと以下のように書き換えることが出来るらしい。</p>

<pre><code>#!/usr/bin/perl
use Foundation;

$s1 = NSString->stringWithCString_("Hello ");
$s2 = NSString->alloc()->initWithCString_("World");
$s3 = $s1->stringByAppendingString_($s2);
printf "%s\n", $s3->cString();
</code></pre>

<p>で perldoc を読んだ限りで、なんとなくわかったことをまとめると、</p>

<ul>
<li>PerlObjCBridge.pm を使うと、Object-C のオブジェクトやクラスに Perl からアクセスする事がきる。</li>
<li>またその逆も提供するらしく Object-C から Perl にアクセスする事も出来る。(どうやって使うかは書いてない)</li>
<li>CamelBones に関しては PerlObjCBridge の代替手段として使用出来、AppKit (インターフェースビルダーで作った GUI 部分？) にもアクセス出来る。</li>
</ul>

<p>要するに PerlObjCBridge も CamelBones も Perl から Object-C のオブジェクトやクラスを使うことが出来て、ソースコードから GUI をゴリゴリ書く場合は PerlObjCBridge で、インターフェースビルダーとかで GUI を用意してからアクションとかを Perl で書きたい場合は CamelBones ってことになるんじゃないかな。っと思う。</p>

<p>なんだかうまくまとまってないので、後日わかったことがあったら追記していく。</p>]]>
    </content>
</entry>

<entry>
    <title>Perl x Cocoa = CamelBones</title>
    <link rel="alternate" type="text/html" href="http://www.hasta-pronto.org/archives/2007/06/12-1714.php" />
    <id>tag:www.hasta-pronto.org,2007://7.1520</id>

    <published>2007-06-12T08:14:27Z</published>
    <updated>2007-08-19T15:18:08Z</updated>

    <summary>Cocoa/Perl なフレームワーク CamelBones を触ってみた</summary>
    <author>
        <name>ashizawa</name>
        
    </author>
    
        <category term="Entry" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.hasta-pronto.org/">
        <![CDATA[<p>数日前、<a class="ex-ref" title="Windchase - LimeChat for OSX 0.1 リリース" href="http://d.hatena.ne.jp/Psychs/20070610/1181477968">LimeChat for OSX</a> がリリースされ(LimeChat は Win で有名な IRC クライアント)、それが <a class="ex-ref" title="RubyCocoa: Welcome" href="http://rubycocoa.sourceforge.net/HomePage">RubyCocoa</a> で作られたと聞きました。</p>

<p>Cocoa ってのは Mac OS X 用のアプリケーションを構築するためのフレームワークで、普通 Object-C という C を拡張した言語を使って記述します。しかし <a class="ex-ref" title="RubyCocoa: Welcome" href="http://rubycocoa.sourceforge.net/HomePage">RubyCocoa</a> を使うとアプリケーションのメインとなる処理を Ruby を使って書く事が出来るようになるわけです。</p>

<p>RubyCocoa いいなぁ、かっこいいなぁって思い僕もチャレンジしようと思ったのですが、新たに Object-C を覚えるだけではなく Ruby も覚えないといけないのはちょっと時間的に大変。Ruby があるなら Perl でもありそうじゃないかっと思い Google 先生に伺ったところ <a class="ex-ref" title="CamelBones, an Objective-C/Perl bridge for Mac OS X & GNUStep - Home" href="http://camelbones.sourceforge.net/index.html">CamelBones</a> っていう物があると教えてくれました。</p>

<ul>
   <li><a class="ex-ref" title="CamelBones, an Objective-C/Perl bridge for Mac OS X & GNUStep - Home" href="http://camelbones.sourceforge.net/index.html">CamelBones, an Objective-C/Perl bridge for Mac OS X & GNUStep - Home</a></li>
</ul>

<p>インストールして少し触ってみたところ、Perl 版 RubyCocoa って感じで、Ruby だった部分を Perl に置き換えて使えると思ってもらって OK な具合。ってことは GUI の Mac 用アプリも Perl で書こうと思ったら書けると。なおかつ CPAN Module も使えると。これって、もの凄くないですか？ CPAN 使えたらなんでも作れそうな気がしてきますね。</p>

<p>とりあえず、Xcode やインターフェースビルダーの勉強もかねて、単純にボタンを押したら Hello World と表示する App を作ってみたので、下に書いておきます。</p>]]>
        <![CDATA[<h3>CamelBones で Hello World</h3>

<p>実は、もう何年も Mac を触っているのに <a class="ex-ref" title="Tools - Xcode" href="http://developer.apple.com/tools/xcode/">Xcode</a> ってまともに触ったこと無かったんですよね僕。どうやらプロジェクトを立ち上げたらひな形は作ってくれるようなので、ただウィンドウが表示されるだけのアプリケーションだったらすぐに出来ます。(そんなものをアプリケーションと呼んでいいのか謎ですが)</p>

<p>アプリのインターフェース部分は Interface Builder を使って作るのですが、GUI でボタンやテキストエリアの配置などが出来るので簡単に出来そうな気がします。しかし、僕はボタンなどにインスタンスに動作を与える指示で躓きました。(慣れたら問題ないんっでしょうけど。)</p>

<a href="http://www.flickr.com/photos/hasta-pronto/541929308/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1378/541929308_22ae831137_m.jpg" width="240" height="157" alt="Xcode" /></a>

<p>CamelBones をインストールしたら、まずは Xcode を起動して新しくプロジェクトを作ってみましょう。僕は Hello って名前でデスクトップジ上に作ってみました。</p>

<h3>ウィンドウにパーツを配置</h3>

<p>ボタンを押したら Hello World っと返すだけのシンプルな造りなのですが、ウィンドウに何もないと始まらないので、とりあえず、Xcode の画面にある MainWindow.nib ってのをダブルクリックして開きます。そうすると Interface Builder が立ち上がります。これがウィンドウ画面を編集するファイルになります。</p>

<a href="http://www.flickr.com/photos/hasta-pronto/541929328/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1314/541929328_16bd55d87a_m.jpg" width="240" height="119" alt="MyApp" /></a>

<p>そうしたら Cocoa〜 ってパネルが出てくるので Cocoa-Controls からボタン、Cocoa-Text から System Font Text をウィンドウの中に配置。</p>

<h3>インスタンス(パーツ)に動作を与える</h3>

<p>そうしたら、ボタンに、押したら何かする。テキストフィールドに何かを表示するって指示を与えていきます。</p>

<a href="http://www.flickr.com/photos/hasta-pronto/541929332/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1097/541929332_308e0a42eb_m.jpg" width="240" height="162" alt="Instances" /></a>

<p>Interface Builder 上に上記のようなパネルがあるので、その中から "File's Owner" というアイコンをダブルクリックします。</p>

<a href="http://www.flickr.com/photos/hasta-pronto/541929336/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1097/541929336_4f74ea03b6_m.jpg" width="146" height="240" alt="Attributes" /></a>

<p>そうすると上記のような画面が出てくるので Attributes を選び、ClassName の部分を"自分の作ったプロジェクト名"WindowController っとなるように変更する。(僕の場合は Hello っという名でプロジェクトを作ったので HelloWindowController っとなる)</p>

<p>次に Outlet タブを選び add ボタンを押して GUI パーツに値をセットしたり取り出したりするための変数を追加する。(僕は単純に TextArea と付けてみた)そうしたら Instances にある青いキューブのアイコン上でコントロールボタンを押しながらドラッグ&ドロップでウィンドウ上のテキストエリアに持っていく。そうするとテキストエリアに TextArea という変数が関係付けられる。</p>

<p>次に Outlet の横の Action タブを選び　add ボタンで sayHello というアクションを登録する。そうしたらウィンドウ上のボタンの上でコントロールボタンを押しながらドラッグ&ドロップで Instances の青いキューブまでカーソルを持っていき関係付ける。(さっきとは逆)これでボタンを押すと sayHello が実行されるようになる。(ボタンから Instances へドラッグ&ドロップするのが英語が読めなくて躓きましたw)</p>

<p>これでやっとアプリケーションの動作部分を書いていく事が出来る。</p>

<h3>Action 部分を Perl で記述</h3>

<p>単純な事をさせるから Perl のソースを書く部分は少ないんですけど、HelloWindowController.pm を Xcode から開き書いていく。書く事は Outlet で作った TextArea の登録と sayHello のメソッドのみ。</p>

<p>TextArea の登録は下のように 'properties' に追加してやる。</p>

<code><pre>class HelloWindowController {
    'super' => 'NSObject',
    'properties' => ['windowController', 'TextArea',],
};
</pre></code>

<p>new じゃないから焦ったんだけど、CamelBones Module のメソッドなんでしょうね。(まだ詳しくソースみてないからわからないけど)</p>

<p>Action はメソッド(サブルーチン)として下のように登録。Cocoa の API を使っているのでこんな感じらしい。</p>

<code><pre>sub sayHello: Selector(sayHello:) IBAction {
    my ($self) = @_;
    $self->TextArea()->setStringValue("Hello, World");
}
</pre></code>

<p>これで完成。あとは Xcode から "ビルドして実行"　を選べばウィンドウが立ち上がるはず。</p>

<a href="http://www.flickr.com/photos/hasta-pronto/542039813/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1124/542039813_b44ae27303_m.jpg" width="240" height="119" alt="Hello, World" /></a>

<p>実行するとこんな感じ。</p>

<h3>作ったソース</h3>

<ul>
   <li><a href="http://www.hasta-pronto.org/soft/Hello.tar.gz" title="サンプルソースコード">http://www.hasta-pronto.org/soft/Hello.tar.gz</a></li>
</ul>

<h3>感想</h3>

<p>Xcode, Interface Builder の使い方がまだ良くわかってないので細かいことは出来ないんですが、テキストのサイズとかは GUI から変更出来るんでしょうね。</p>

<p>作ってみて楽しかったし、可能性も広がりそうな気はするんだけど、Air (元 Apollo) とかと比べるとクライアントを選んでいる時点で負けている気が...。言語自体の熟成度合では CamelBones の方が上なんで(そう思いたい) CPAN が使えることの優位性を生かしたアプリが作れたら面白いなぁって思います。</p>]]>
    </content>
</entry>

</feed>

