Homebrew-versionsで特定バージョン指定してインストールする

最新版ではないバージョンのパッケージをインストールする時に使うhomebrewのversionsコマンド(brew-versions)がアンサポートになり、コマンドが削除されるようなのでHomebrew-versionsを使ってみました。

“Homebrew-versionsで特定バージョン指定してインストールする”の続きを読む

お手軽WebRTC

WebRTC Logo

とある案件でリアルタイム動画通話を利用したサービスのプロトタイプを頼まれましたが、ネイティブでアプリを作るとなるとコーデックをどうする、サーバをどうするとかなり悩みました。そこでWebRTCってあったじゃないかと思い出して、最近のWebRTC事情を調べてみました。

“お手軽WebRTC”の続きを読む

gitとsubversionのコマンド対応表

備忘録がわりにいつも忘れてしまうgit(git-svn)とsubversionのコマンドの対応表をまとめました。

コマンド対比表

subversion git git-svn
更新 svn update git pull git svn rebase
コミット svn commit git add → git commit
git commit -a
(gitコミット後)
git svn dcommit
git push <url>
追加 svn add <file> git add
削除 svn rm <file> git rm <file>
移動 svn mv <file> git mv <file>
変更取り消し svn revert <file> git checkout <file>
ログ svn log git log
差分 svn diff git diff
スイッチ svn switch <url> git checkout <branch>
チェックアウト svn checkout <url> . git clone <url> . git svn clone <url> .
状態 svn status git status
ブランチ作成 svn copy <url> <url> git branch <branch> git svn branch <branch>
タグ作成 svn copy <url> <url> git tag <tag> git svn tag <tag>
マージ svn merge -r <rev1>:<rev2> <url> git merge <branch>

“gitとsubversionのコマンド対応表”の続きを読む

node.jsを試してみた

いささか時期を逃した感がありますが、サーバサイドJavaScriptであるnode.jsを試してみた。

node.jsはGoogleのJavascriptエンジンのV8を利用し、Non Blocking I/O環境を実装したもので、速度も速く言語的にもイベントドリブンなど実装しやすいのが特徴。

早速インストールから。 “node.jsを試してみた”の続きを読む

jrubyからneticaを使う方法

ベイジアンネットワークでモデル構築できるneticaをjruby上から使う方法まとめました。

ruby用のバインディングを書けばいいのですが、そこまでではないのでjrubyを利用して、rubyコード上でneticaJを呼び出しneticaを利用します。
そもそもneticaをjruby上で利用するなんて奇特な人はあまりいないと思いますが、自分周辺のための備忘録です。

自分の環境がMacOSなのでそれを中心的に書いていきます。 Windowsでも動作確認はしています。

必要なもの

jruby
これがなければ始まりません
neticaJ
neticaをJavaで使うためのライブラリ
webget_netica
neticaJを簡単に使うためのgemライブラリ

“jrubyからneticaを使う方法”の続きを読む

homebrewで快適Mac開発環境

開発で何かと必要なライブラリやソフトウェアを入れるときにパッケージシステムとしてMacPortsを使っていました。依存関係もきっちり解決して/opt/以下に別途入れてくれるなど、とても便利だったのです。

しかし、欠点としてMacにデフォルトに入っているプログラムも再度コンパイルしてしまうところがあり、使いたいプログラムがあったもインストールコマンドを打ってからしばらく放置する必要がありました。

そこで、できるだけMacにあるプログラムやライブラリを利用するパッケージシステムであるhomebrewを使ってみることしました。

“homebrewで快適Mac開発環境”の続きを読む

Ajax時代における開発環境

最近さんざんjavasrcipt三昧です。正直ajaxを流行らせた人を恨みたいぐらいうなされている昨今です。
ajax時代における〜なんて書きましたが単に自分の開発環境の健忘録です。

エディタはeclipseにプラグインとしてphpeclipseaptanasubclipse使ってます。サーバー側はphpを使うことが多いのでphpeclipse、htmlとjavascriptの部分はaptanaです。aptanaは構文の色分けはもちろんのこと、コード補完が強力でファイルの分かれたfunction名の補完まで行ってくれます。Actionやoutlineなど便利な機能があってかなりおすすめです。subclipseはsubversionプラグインです。ショートカットキーを割り当てていて、キー一発でcommitしています。

開発時におけるブラウザはfirefoxを利用します。一番javascriptの挙動が素直であるのと、下記のデバッガが使いやすいという点につきます。もちろんある程度まで進んだら、IEやOpera、safariでのチェックもかけます。

firebug—firefoxの機能拡張でjavascriptのデバッグが可能です。break pointをはじめ、ステッピングデバッグができ、DOM構造のツリー化やローカルオブジェクトのwatchもできます。かなり便利です。現在1.0betaが出てきていて、stableよりもかなりインターフェースもかわり劇的な進化を遂げています。CSSの書き換えやbreakpointの条件設定、エラー時のbreak、高速化などぜひとも試してもらいたいです。

世の中firefoxだけならいいと本当に思うのですが、まだIE全盛期です。IEのJavascriptはIEのCSSと同じでかなり天の邪鬼です。従ってこっちの方がデバッガが必要ではないかと考えることもしばしばです。
IEは基本的にalertデバッグで対処してます。バグが出るところに癖があり、そこを対処するだけなのでalertだけでも割といけます。それでもだめなときはvisual studioをデバッガにしています(ちなみにバージョンは2003です)。office2003にもscriptデバッガがついてますが、visual studioの方がなれているのとインターフェース的にわかりやすい部分が多いです。
どちらにしても割とデバッグにはこつがいります。デバッガはサーバーにアップされているファイルはすべて参照できないので、breakかけたい直前でalertでブラウザの処理をとめて、ブラウザで一時停止をすることでお目当ての場所にbreakを設置することができます。関数変数内がデバッグできないなど不便がかなりありますがないよりはましです。

基本的にこれだけでもだいたいことが足りますが、 サーバー・ajax間での通信で問題が起こってる場合などは上記のツールではチェックできません。firefoxのlive http headersでチェックしてもいいのですがそれより便利なものがあります。greasemonkeyのスクリプトですが、XmlHttpRequest Debuggingというのがあります。これはその名の通りXmlHttpRequestにフックを張り、通信の内容や状況を見ることができます。ただonload時に読み込まれるのでそれ以前のやり取りは見ることができないので要注意です。

現状ではこんな感じのツールを使って開発しています。なにかおすすめありましたら教えてください。

作業環境

勤め先が渋谷から広尾に移転しました。
かなりおしゃれでモチベーションが上がります。昼間より夜の方が雰囲気が良すぎてやばい感じです(渋谷よりも終電が早くて更に不味い)。

事務所全体の雰囲気も重要ですが、プログラムを組むのがメインである自分が一押なのはなんと言ってもこれ。

triple displays

トリプルディスプレイ(19インチx3)。解像度は1280×1024で若干物足りないですが、かなり作業ペースが上がります。中央でコード書き、左でデバッグ、右でマニュアルとかメールとかToDoとか。ウィンドウの切り替えがないから言うことなしです。これのせいで家でPC使いたくないぐらい orz

欲を言えばこのサイズ(19インチ)でUXGA(1600×1200)使えるといいのだけど。