Home > develop
develop Archive
Google Codeで管理していたコードをgithubへ移行する
最近は仕事でgitを使うケースがSubversionと比べて圧倒的に多いので、個人的にGoogle Codeでホスティングしていたコードもgithubに移すことにしました。
git-svn
移行作業にはgit-svnが必要になります。MacOSXでgit-svnを使うには、git-coreをmacportsで入れるときに、+svnのvariantsをつけてインストールしてあげるとOK。ぼくはすでにgit-coreをインストールしていたので、次のようにしてインストールしなおしました。
sudo port deactivate git-core sudo port install git-core +svn
作業用ディレクトリの作成
作業用の適当なディレクトリを作ります。
mkdir ~/Desktop/git cd ~/Desktop/git
authors.txtの作成
次のような内容のauthors.txtを作成。(no author)はGoogle Codeの初期設定で、名無しさんがtrunk, branches, tagsを作成しているようなので、この2行が必要になります。左辺はGoogleアカウント名、右辺はgithubに登録した名前とメールアドレスです。
ryo katsuma = ryo katsuma <katsuma@gmail.com> (no author) = ryo katsuma <katsuma@gmail.com>
移行用レポジトリを作成
githubで移行用のレポジトリを作成します。作成はここから。
移行
ここまでくるとあとは簡単。
git svn clone -s -A ./authors.txt http://svn_repo.googlecode.com/svn repo cd repo/ git remote add origin git@github.com:katsuma/new_repo.git git push origin master
まとめ
Google Codeからgithubの移行は、実作業はauthors.txtを用意するくらいで、全体としてそんなに複雑なものではなかったと思います。 ちなみに今回の作業を通してTokyo-Joggingのコードを全部githubに移しました。 コード管理はもちろん、サイト全体の操作性なんかもGoogle Codeと比べてgithubの方が優れていると思うので、移行して正解だったかなーと感じています。
楽天テクノロジーでLT&デモをしてきました
少し前の情報になるのですが、楽天テクノロジーカンファレンスでTokyo-JoggingネタのLT&デモを行ってきました。

当日は、WiiリモコンだけじゃなくてバランスWiiボードと、最近対応したヌンチャクのデモも行いました。やや古いネタではあるものの、大勢の方に実際に体験いただいて、アドバイスや意見などいただけて楽しい時間を過ごすことができました。
ただ1つ残念だったのはデモブースに常駐してないとダメだったので、他の方の発表がまったく聞けなかったこと。。楽しそうな話いっぱいあったのでそこが残念でした。と、思ったら発表内容はUstreamで残っているみたいなので、あとで確認したいとおもいます。
また、ありがたいことにデモ投票では3位(!)の結果をいただけることになりました。LTでは時間切れになっちゃって消化不良だったわけですが、デモで実際に体験いただけたのがよかったのかなとおもいます。
最後に、貴重な場所と機会を提供いただいた楽天株式会社 開発部の方々、どうもありがとうございました!
githubで新しい環境から自分のレポジトリにpush
小ネタだけど、少しハマってたネタについて。
githubの「自分のレポジトリに最初にpushしていたマシンとは別」のマシン上でgit cloneでデータを取得して、そこで編集、変更を反映するためにpushしようとしたらエラーになりました。
$ git push fatal: protocol error: expected sha/ref, got ' *********' You can't push to git://github.com/user/repo.git Use git@github.com:user/repo.git *********'
何だこれー!と自分のレポジトリなのになぜエラー??と思ってたら、cloneするときのURLには"Public Clone URL"と"Your Clone URL"の2種類あることを知りました。僕は前者をずっと使ってたのですが、こちらが「公開用URL」後者が「自分専用の(pushをがんがんする前提のURL」という感じなのかな。
と、いうわけでもういちど次のような手順でcloneすると無事、別環境でもpushできました。
git clone git@github.com:katsuma/config.git (編集) git add . git commit (コメント追記) git push
今回はこちらの記事を参考にさせていただきました。ありがとうございます!
はじめてのCarbon Emacs
僕はエディタに今までそこまで拘りがなくて、Windowsで作業をするときは秀丸かEclipseを利用することがほとんどでした。 と、いうのも僕にとってエディタは
- シンタックスハイライト
- そこそこの精度の自動補完
- タブ化
くらいが実装されていればよく、JavaだったらEclipseでもちろんよくて、それ以外の言語を書くときも秀丸で十分満足いく設定を実現できていました。(なので、よく言われるvi対Emacsの戦争には関わることは無かったのですね)
Macでのエディタ
とはいえ、最近は家ではもちろん、仕事でも作業をMacで行うようになり、さてエディタをどうするか、という話を本格的に考える必要が出てきました。いままでMacでもいろんなエディタを試してきたものの、秀丸的なポジションのしっくりくるものを見つけることができずにいました。
そんな中、仕事ではEmacsを使ってる人が多そうだったのでずっと導入しかけてはやめてたEmacsの導入を試みてみました。 Emacsは(超ありがちな理由ですが)ずっとキーバインドやその操作方法に慣れなくて導入しては止め、の連続だったのですが、さすがにそろそろどうにかするか、と。
また、素のEmacsでもいいのかもしれませんが、Carbon Emacs がインターフェース的に良さそうだったので、これを利用。 いろいろ試行錯誤しながら、こんなかんじにカスタマイズすると初心者でも結構使いやすくなってきました。
- フルスクリーン
- 背景を透過
- メニューバーを隠す
- タブ化
- 行番号表示
- 編集中の行をハイライト
- Mac標準のキーバインドを有効
- Optionキーをメタキーに
- Shiftキー+矢印で範囲選択
- ビープ音を消す
- 対応する括弧を光らせる
- 自動補完を有効
これくらいを有効にすることで、初心者でもかなり使いやすくなりました。
雑感
特に、Mac標準のキーバインド、Shiftキー+矢印で範囲選択を有効にするだけで、普通のエディタと使い勝手はほぼ一緒になりました。コピペやカット&ペーストもCommand+αでOKです。この上で、ファイルを開く+保存、ウィンドウ分割、行頭や行末移動くらいのコマンドさえ覚えておけばとりあえずまったく問題なく使える感じ。 さすがにこれくらいのコマンドはすぐに覚えられますし、標準の移動系などのコマンドももちろん同時に使えるので、僕のようなキーバインドで悩んでいた人も、Mac標準のキーバインドから少しづつ移行していけばいいのかな、と。また、自動補完も秀丸と同じくらいの精度ではさくさく動かせますし、HTMLタグの補完もOKです。
あと、個人的によかったのがフルスクリーンでの表示。これをすることで、モニタにエディタ以外に何も表示されなくなったことで集中力がかなり上がった気がします。エディタ以外に視界に入るものが無いということは非常に効果的です。 また、背景を透過させておくことで、IMやブラウザが気になってもアプリケーションを切り替えることなく同時に視界に入れることができるのは、当たり前ながら相当使い勝手がいいなぁと感じました。
ただ、このあたりの下りは使いこなしてる方からすると「こいつほんとゆとりの使い方だな。。」と突っ込まれそうな感じはムンムンするのですが、それでもとりあえず使ってみる、という視点でいくと最初はこんな感じでどうか許してください、という思いです。。
ちなみに、これらの設定はgithubに上げてみました。もっとこうしたほうがいい!なご意見があり ましたら是非教えていただければと思います。
最後に
RubyやRails系の補完周りの設定をもう少しいじってみたいのですが、まだうまくいっていないものが多いです。このあたりはまだ研究中ですね。
モダンブラウザでAppletを扱うときに知っておくこと
[09/04/07 16:00 追記] embedでの呼び出し結果の表に誤りがあったので訂正しました。
世間ではiPhone OS3.0で騒がれていますが、そんな中メインストリームとは逆行してJava Appletについていろいろ調べていました。
情報が少なすぎる
世間的にはJava Appletの話なんて枯れすぎてる話題なので、いくら調べても2000年過ぎの情報ばかりが大半です。「ただしこの方法ではNetscape4.0以上の環境では。。。」とか言われても困るわけです。今どきのWebアプリケーションらしくJavaScriptと連携させるにはどうすればいいんでしょうか。そもそもappletのロード方法1つとってもSafariやChromeなんかのモダンブラウザに対応したロード方法とかまったくわかりません。あとJava Runtimeのインストールチェックなんてどうすればいいのでしょうか??疑問は尽きません。
そこで、今回これらの情報、
- JavaScriptからAppletを呼び出す方法
- AppletからJavaScriptを呼び出す方法
- モダンブラウザに適したAppletのロード方法
について調べてみたのでまとめておきたいと思います。
Java Runtime のバージョンチェック
そもそもAppletを実行できる環境であるかどうか、を判定する必要がありますが次のようなロジックで確認をすることが可能になります。
- Applet側でRuntimeのバージョン情報をpublicなフィールドに格納しておく
- JavaScriptから1.のフィールドを参照する
- 参照に失敗、または参照先の値が不正な場合はRuntimeがない、と判断。参照先に値があった場合はその値がバージョン情報
次に、JavaScriptとの連携を考えるわけですが、ここでは「JavaScriptからAppletのメソッドを呼び出す」「AppletからJavaScriptの関数を呼び出す」の2パターンがあります。まず、前者の方から考えていきましょう。
AppletからJavaScriptを呼び出す
こちらは非常にシンプルで「document.{$AppletをロードしたHTML要素のid}.{$appletにおけるpublic修飾子のメソッド、またはフィールド}」でアクセスすることができます。たとえば次のようなAppletがあるとします。
import java.applet.Applet;
public class VMInfo extends Applet {
public String jreVersion = "";
public void init() {
this.jreVersion = System.getProperty("java.version");
}
}
また、次のようにappletタグでappletをロードしておくとします。
<applet name="app" code="VMInfo" mayscript="true" archive="plugin.jar" width="430" height="200"></applet>
このとき、JavaScriptからAppletのjreVersionフィールドにアクセスする場合、
document.app.jreVersion
で、アクセスが可能です。ここでのappはapplet要素のname属性値になります。非常に簡単ですね。
また、FlashのExternalInterface経由でJavaScriptからFlashのメソッドにアクセスする場合、IE系はdocument経由、それ以外のブラウザはwindow経由でFlashの参照を取得するなど、参照の取得方法は異なります。ところが、Appletの場合はIEでもFirefoxでもChromeでもすべて同じ「document経由」で参照を取得する、というのは1つのポイントになります。
AppletからJavaScriptを呼び出す
先ほどとは逆に、JavaからJavaScriptのメソッドを呼び出す方法について考えてみます。方法としては、
- JSObjectを利用する方法
- 共通 DOM API を介してアクセスする方法
の2種類の方法が存在します。ここでは単純な1の方法を紹介します。
JSObjectクラスのメソッド群を利用すると、HTML ページの DOM へのアクセスが容易になります。JSObjectを利用する場合、次のjarファイルをクラスパスに通しておく必要があります。
{$jdk}\jre\lib\plugin.jar
plugin.jarにクラスパスを通すと、netscape.javascript.JSObject を利用することが可能になります。JSObjectはstaticメソッドでglobalなwindowオブジェクトの参照を取得します。windowオブジェクトの参照を取得すると、あとは任意のJavaScriptのコードをeval()で実行することが可能になります。たとえばwindow.alert()を呼び出す場合は次のようなコードになります。
import java.applet.Applet;
import netscape.javascript.JSObject;
public class VMInfo extends Applet {
public void init() {
JSObject win = JSObject.getWindow(this);
String jsContext = "alert()";
win.eval(jsContext);
}
}
要はActionScript3におけるExternalInterface.callのようなもの、というイメージで良いと思います。JSObectのAPIについては、こちらのドキュメント にまとまっているので、さらに詳しく知りたい方はご参照ください。
ここで1つポイントとして、JSObjectを利用してappletとJavaScriptとの連携を行うときは、appletをロードするときのHTML要素に対して「mayscript」属性を追加しておく必要があります。属性値はtrueにでもしておけばいいですが、実際は属性が存在すれば問題は無いようです。このあたりの話は「JavaScriptを使用するアプレットの単体テスト」で述べられていますので、ご参考ください。
ロード方法
さて、appletのロード方法についても、パッと考えただけでもいろんな方法が思いつきます。
- appletタグでロード
- objectタグでロード
- embedタグでロード
Flashのような発想をすると、objectタグとembedタグの組み合わせでロードするのが本筋のような気もしますが、とりあえずこれまでで述べてきたJavaScript連携のコードを含んだAppletのロードを全パターンで試してみました。
対象となるAppletのコードは次のようにしています。 appletがロードされると、JREのバージョン、およびベンダ情報を取得し、JS側のVMInfo.notify()を呼び出します。(Java→JavaScript呼び出しの確認)
import java.applet.Applet;
import java.awt.TextField;
import netscape.javascript.JSObject;
public class VMInfo extends Applet {
public String jreVersion = "";
public String jreVendor = "";
private TextField versionField;
private TextField vendorField;
public void init() {
this.jreVersion = System.getProperty("java.version");
this.jreVendor = System.getProperty("java.vendor");
this.versionField = new TextField(jreVersion, jreVersion.length());
this.vendorField = new TextField(jreVendor, jreVendor.length());
add(versionField);
add(vendorField);
// callback
JSObject win = JSObject.getWindow(this);
String jsContext = "VMInfo.notify({\"version\":\"" + jreVersion + "\", \"vendor\":\"" + jreVendor + "\"})";
win.eval(jsContext);
}
}
検証するJavaScriptの関数VMInfo.norifyは次のように用意しておきます。構造は単純で、Objectを引数に受け取り、alertで確認しています。
.
<script type="text/javascript">
//<![CDATA[
var VMInfo = {
notify : function(info){
var version = info.version || "";
var vendor = info.vendor || "";
window.alert([version, vendor]);
}
};
//-->
</script>
あわせて、JavaScript→Javaの呼び出しの確認として、次のようにAppletのプロパティを直接参照してみます。
<script type="text/javascript"> //<
スタイル適用後

透明度を変えただけだけども、雰囲気は前の感じに戻った(気がする)。
builder technology に参加してきました
Cnet主催のbuilder technologyに参加してきました。昼過ぎまで家で仕事をしていたので、途中参加。以下、ざっくりまとめ。
Mozilla とオープンウェブ / クリストファー・ビアードさん
- 前半はmozillaの組織に、Fxなどについて
- 今年は携帯用Fxの開発も頑張るよ
- 国別ユーザ比率はFXはUSで29%, ドイツで13%, フランス6%, ポーランド4%...と続き、日本では2%
- 後半はmozilla weaveについて
- 3月に0.2をリリース予定。サードパティがいじれるようになる予定。
- 「xulrunnerの立場ってどうなの?」な質問が出てたけど、答えがよくわからなかった。うまくはぶらかされたかというか、、、
- Prismはxulrunnerベースに、Fx3もxulrunnerベースに、みたいなことを言ってたけど、結局Prismもxulrunnerもいったいどうしていきたいのかは謎
「イマドキ」へ至る道、お見せします / 沢田 正氏さん
- niftyのオープン化について
- about meは半ばノリでOpenIDをはじめ、いろんな認証サービスに対応した
- 流れにのっておかないと、みたいな。他のサービスのユーザが囲え込めるかもしれないし、的な
- でもIdPになるのはこの時点でリスクがあると判断したそうな。
- まだまだ参考事例が少なかったので、実装はかなり困ったみたい。手探り状態で実装が続いた
- 現在のabout meのOpenID経由でアカウント作成しているユーザは、新規会員の全体の1%程度。
- 他社の認証サービス経由ではYahooが一番多い。→ユーザ数が絶対的に多いから仕方ないんでしょうね
- まだまだOpenID導入したからよかった!な展開では無いそう
イマドキなWebアプリケーションの作り方 / 宮川達彦さん、米持幸寿さん
- 全体的にお二人の会話はあまりかみあってない模様w
- オープンソースどんどん出しますよ、どんどん使いますよ、な柔軟な姿勢のSixApartさん側と、オープンソースとは「投資」であり、ここから何かが生まれてくる畑のような存在で、、と確固たる理念をしっかり持っていIBMさん側とで、全体的に噛み合いそうで噛み合ない
- コンシューマサイド側 / エンタープライズ側のそれぞれのオープンソースに対する姿勢、という意味になるのかな、それぞれが「いや、こうやって関わるのが当然でしょ?」な空気が出てたの、ある意味面白い。
- IBMではオープンソースプロジェクトのカタログのようなものがあるそう。このプロジェクトはランクAだから利用してもよい、みたいな。基本的にIBMがまったく関与していないプロジェクトについては、プロダクトに組み入れられることは無いそう(MySQLとか)
どうも今晩は。XMLDBです / 小野雅史さん
- XMLDBて動いてるの見たのはじめて。JSでデータをひっぱってくるデモを見た
- 結局まだよくわかってないんですけど、XMLDBてサーバサイドで複数ドキュメントをまとめて操作できるxPathて考えていいんでしょうか??
移動
- id:zigorouさんと、そのお知り合いの方とで移動
- ここで相当迷う迷う。僕もそもそも方向音痴ですけど、あの場にいた人たちはみんななかなかアレな感じですねw
- zigorouさんより後に出てたそうなtakesakoさんの方が早く到着してた
オープンソースプロジェクト「WebKit」のご紹介 / 永松正人さん
- WebKitベースでSafariはできてるよ、な話
- 正直すこし前までKHTMLとWebKitの違いがよくわかってなかった
- WebKitベースのブラウザ用デバッガで
DoresoraDroseraなるものがあるらしい - Firebugみたいなかんじ。ブレークポイントとか設定できてた。ちょっと使ってみたい
- WebKitベースの、、と言いつつも実際はSafari3以外はまともに使えないみたい
- 質疑応答で「Safari1,2の利用者がまだ結構いるんですけど」に対して「3にアップデートしてください」で片付けてたのが笑った。Appleとしては最新の環境にしていないのはダメ、のようで。
Lightning talks
- Macとプロジェクタの相性が悪くてトラブってた。プロジェクタ再起動で復帰。
- Cnet?のおねーさんのPCも利用していたみたいだけど、定期的にでてくるニュース表示アプリみたいなのとシュールな壁紙が人気をさらってた
- Opera9.5はなかなか面白そう!videoタグみたいなのも、使えるようになるそうな
- リアルタイムに動画の色調をJSで変化させたり、ASでもちょっと難しそうなことをサクサクやってたのが印象的
- OpenID 2.0は追いかけきれてなかったのでダイジェストが聞けてよかった
- まだ1.1なサービスしか受けたことないので2.0のよさを実感してないけど、早く使ってみたいけど、今のIdPも2.0に対応してくれるのかな??(という疑問は的を射てるのかな、そもそも)
- YappoさんのPlusenでのプレゼン、inputは携帯のKeyEventを取ってたの??
- Mobile + GISS + Twitterはたしかに相性はいいだろうに。ついついツイッター使ってみます
- 「つい間違えて英語で資料作っちゃいました」が地味にウケた
- FlexでFastladderのUI作ってた
- UIとロジックがうまく分かれてるからパーツ組み合わせできるのがいい
- takesakoさんは飛び入りで参加ながら5分ジャストで終わらせる相変わらずの芸術的なプレゼン
- 最後はperlなのかgifなのかjsなのか何だかすごいことになってた
とりあえず写真をFlickrに上げてみました。雰囲気はこのあたりでざっくり分かるんじゃないかな、と思います。(問題ありそうな写真はご一報を)
身内勉強会でECMAScriptについてしゃべってきました
大学時代の友人たちを中心にFILM(Future IT Leaders Meeting, 名前だけはでっかくw)という名前の勉強会をやっていくことになりました。この連休の初日にウチの会社で第一回目が開かれたのですが、普段LLを触らない人たち向けにJavaScript / ActionScript(ECMAScript)についてしゃべってきました。
身内をネタに入れこんだものではあるのですが、そのとき話した資料を公開しておきます。(少し前に言っていたS6で作った資料はこれでした)
あと相当グダグダな映像ですが(w)そのとき話してる様子も公開しておきます。WebCam+画面ではなく部屋全体の様子を録画したものなので、何話してるのかよく分からないかと思いますが、こんな感じでグダグダと話していた、な様子を感じ取ってもらえればと思います。
しかし見直してみるとあまりにグダグダ話してるなぁ、、と思います。資料に無いYSlowの話もかなり話してるし。次回はもっとシャキシャキ話そう。。
OpenID Comments for MTを導入しました
以前からこのBlogはコメントスパムが激しくて、それがゆえに人力で全部削除して、、、とかなりアナログな運営をしていました。先日もスパムコメントと間違えて大量のありがたいコメントを間違って削除してしまうミスを犯したり、、、orz と、いうわけでそんな凡ミスを防ぐためにも、今回OpenIDの認証サービスを導入してみました。コメント欄に次のようなフォームが表示されていると思います。
![]()
ここから自分のOpenID URLでサインインをしていただくと、次のようなコメント入力欄が表示されます。

MTはデフォルトでTypePadの認証を利用することができますが、ほかのBlogサービスをご利用の方などにはちょっと敷居があるなぁと思ってコメント欄は完全に開放していたのですが、これで割とオープンな技術での認証ができるんじゃないかな、と思います。コメントスパムの変化についてもみていきたいと思います。
なお、今回はMTのプラグインの「OpenID Comments for MT」を利用してのですが、せっかくなのでその導入メモを残しておきます。
zshのプロンプトを見やすい配色にする
最近、開発環境をcoLinux+Fedora7+zshな感じに移しました。経緯はWEB+DB PRESS Vol.40の「Linux定番開発環境」のコーナーではてなの伊藤直也さんが紹介していたことから。特にzshは前から気になっていたのでこのタイミングで導入をば。
感想としては「これは慣れたらそうとう便利そう!」
かゆいところに手が届くという話は聞いていましたが、
- 「ディレクトリ名の入力だけでcdできる」(プログラマブルな補完機能)
- 「ディレクトリスタックを保存」
- 「コマンドのスペルチェック」
なんかはかなりイィ感じ。これはもっともっと使いこなしたいと思います。
で、唯一「うーん」と思ったのがプロンプトの表示項目+配色について。なんかあまりにも味気ない感じです。。プロンプトに改行も入っていないし、見づらい感じにあるなすし。
![]()
と、いうわけで伊藤直也さんの公開されている.zshrcにそれっぽい配色を加えたものを作ってみました。(作ってみました、というほどでも無いですが。。)
あなたの音感は何点?-ケータイ鼻歌音感ゲーム「はなワザ」
本日、ハナ歌音感ゲームサイトの「はなワザ」をオープンしました。
最近、携帯電話やffmpegの話をここでよく取り上げていたわけですが、全てはこのサイトのためだったわけですね。。いやー普段携帯サイトに慣れていない人間が、初めてマジメに携帯サイト作りに取り掛かったわけですから、なかなか苦労しました。
サイトの仕掛けはいたって単純で、
- サイトにアクセスして指定曲をクリック
- メーラが立ち上がるので「メニュー」や「添付」からムービーカメラを起動
- メロディを口ずさむ
- そのままメール送信
- 結果メールが返信されるのを待つ
と、これだけ。いたって単純!
今のところ、ひたすら高得点を目指すアスリート競技な「はなワザ★グランプリ」、ひたすらストイックにはなワザ力を上げることを目指す「はなワザ★道場」の2つのメニューです。個人的にはグランプリの方が好きなんですけども、ユーザさんの動向を見ていると道場の方が圧倒的に人気のようです。道場は結果メールではなワザ師範からシュールなオケージョンアドバイスももらえるので、それがいいんかな、、と思ったり。
また、おかげさまで各ニュースサイトさんにもかなり取り上げていただいています。主なものを抜粋させていただくと
- CNET Japan: あなたの音感は何点?--ケータイ鼻歌音感ゲーム「はなワザ」
- ITmedia: あなたの "鼻歌" 採点します--ケータイ向け鼻歌音感ゲーム「はなワザ」
- ケータイWatch: 楽曲検索技術で「鼻歌のうまさ」を判定する携帯サイト
- ASCII.jp: ウタゴエ、鼻歌を採点する音感ゲーム "はなワザ" を公開
- 読売: あなたの音感は何点?--ケータイ鼻歌音感ゲーム「はなワザ」
- Venture Now: ウタゴエ、携帯電話向けに鼻歌音感ゲーム「はなワザ」の提供開始
- mixiニュース: 楽曲検索技術で「鼻歌のうまさ」を判定する携帯サイト
- @Press: ウタゴエ、世界初携帯電話向け鼻歌音感ゲーム 『はなワザ』(hanawaza.jp)の提供開始 ~元祖鼻歌検索技術による、「ハナウタ エンタテインメント」の提供~
個人的にはITmediaに(かなり偶然的に)自分の名前が載ったことが嬉しかったですねぇ。ついにITmediaデビューですよ。
で、せっかくなんで技術的な話も少し。
もごもごガジェットを作りかけた
FedoraにRed5をインストール
某プロジェクトのテストサーバ環境が他のプロジェクトと混在して、いろんなライブラリが入り乱れ始めて気持ち悪くなってきたので、自分のローカルマシン(WindowsXP)のVM Player上にFedoraをセットアップし、その上でテスト環境を構築しました。入れたもの、セットしたものはこんな感じ。
- httpd
- mysql(-server)
- php
- samba
- Java
- ant
- Red5
その上でRed5のインストール方法をメモっておきます。最近Web上でもこれをとりあげている人が増えつつあるのですが、やはりまだまだ日本語の情報は少ないので、つまらない情報でも無いよりはあったほうがいいでしょうし。以下、Fedora5上でのインストール方法のメモ。
lab.katsuma.tv
blog.katsuma.tv/workspace に置いていたものは全部lab.katsuma.tvに移しました。はてブされてることも無かったので、誰も困ることは無いかと思いますが、念のため。
しかし、今回、久々に生のHTMLを一杯いじったのですが、テンプレートシステムが無いと不安で仕方ないですね。。もう、1度あの味を味わうと生でゴリゴリ書く気が進まない。Smartyをここにも入れようかなぁ。
Apache上でPHPが環境変数を認識できない
ここ数日、PHPの開発でかなりハマってたことがありました。ハマり内容はこんな感じ。
- ある共有ライブラリhoge.soをphp.iniのextension_dirに設置
- php.iniにextension=hoge.soを指定
- 環境変数LD_LIBRARY_PATHにhoge.soのフルパスを指定
- ターミナルからhoge.soを必要とするスクリプトfoo.phpを実行(php foo.php)すると、正常に動作
- でも、Webブラウザからのアクセスによる実行だと、hoge.soが読み込まれず、エラーが発生
要するに、Apacheの実行ユーザとして、環境変数LD_LIBRARY_PATHが読み込めていないor認識できていない、という問題です。これApacheの実行ユーザを「apache」以外の別ユーザ、たとえばkatsumaにした上で、katsumaユーザでターミナルから実行しても正常動作で、あくまでもブラウザから実行するとNG、という現象だったので、もう打つ手無し、、でした。しかも、google検索してもなかなかそれっぽい記事が出てこなかったので、あきらめかけていた。。のですが、そんなときCTOの助言もあり、何とか回避することができました。
SSL証明書発行会社比較
SSL証明書について調査してみました。今更ながら初めて知ることも結構あったり。EV SSLとか正直知らなかったよ。久方ぶりの調査内容は、せっかくなのでまとめなおしてみたいと思います。全部Webをクロールすれば分かることなのですが、なかなかこういう情報ってまとまってないものですし。 以下、個人的なメモ含の備忘録です。
(*) 主観的な情報はほぼ排除してWebから分かる客観的な事実のみをまとめています。「で、結局どうよ?」な話はまた別で。。
デブサミ2007に行ってきました
1週間も経っちゃったのですが、先週の水曜日にデブサミ2007に参加してきました。1日だけの参加でしたら、非常に有意義な1日でした。
簡単ではありますが、参加したセッションについて振り返ってみたいと思います。
文章からキーワードを抜き出すAPI: KOSHIAN
なかなか面白そうなWebサービスを見つけました。
[ 文章からキーワードを抜き出すAPI: KOSHIAN ]
http://blog.zuzara.com/2006/12/10/171/
面白いなぁと思ったのは前処理に形態素解析器を利用していないそうな。
僕はこの辺りの専門家でもないですが、ChaSenやMeCabが有名な形態素解析ツール、というくらいは心得ていました。が、このサービスは複数の情報源の組み合わせ、中でもWikipediaを多く利用しているることが、いわゆるマッシュアップな感じで面白みを感じます。
で、早速使ってみました。こんな文章をinput。
さて、僕は今日も今日とてパンをむしゃむしゃ食べながら開発をしていたわけだが、夜になってからは別部屋でミーティングをしていたわけだな。雑談ベースでわいわいやりつつも、なかなか面白いアイディアがまとまったわけなのでしたとさ。
結果のXMLはこんな感じ。
Google Gadgets作りました
このBlogのサイドバーにも表示されていますが、昨日ここでも書いたLive4用のGoogle Gadgetsを作ってみました。

地味にBlogに貼るときの説明ページを見つけるのになかなか苦労しました・・・
以下、リンクです。
Google Developer Seminor
半蔵門で開かれたGoogle Developer Seminorに行ってきました。
内容はGoogle Maps, Google Gadgets, Google Desktop Gadgetの各APIの使い方。Google Maps APIは一度使ったことがあったものの、そのGadget系のAPIは全く触ったことがなかったので、仕事の小ネタ集めのためにも参加。
以下、簡単なメモです。
Googleの野望がアツすぎる
Googleの今後xx年間の壮大な計画がMaster Planとして本社内に巨大なホワイトボードに掲げられているらしいです。
ザっと読む限りこれは相当アツい。
以下、気になったキーワードを抜粋。
Home > develop











