基本的にはnetstatコマンドを使えばいいのですが、
linux系とはオプションがちょっと違います。

sh>>

netstat -a -o | grep 12345
<<--

上記のコマンドを実行すると、一番右端のカラムにPIDが出力されます。

posted by genki genki on Fri 29 Feb 2008 at 13:50 with 0 comments

cmd.exeから以下のようにコマンドを実行することで、
WindowsのプロセスをIDでKillすることができます。

sh>>

taskkill /PID 12345
<<--

強制終了する場合は、/Fオプションを追加します。

posted by genki genki on Fri 29 Feb 2008 at 13:47 with 0 comments

prototype.jsのEvent.observeは非常に便利なのですが、
初期化処理など、一度だけイベントの処理したい場合にはちょっと不便です。
度々そのような処理を行う機会があったので、以下のような
一度だけイベントをハンドルする関数を作ってみました。

js>>
Event.observeOnce = function(element, event, observer){
var handler = function(){
Event.stopObserving(element, event, handler);
return observer.apply(null, $A(arguments));
};
Event.observe(element, event, handler);
};
<<--

使い方は、通常のEvent.observeと同様です。

js>>
Event.observeOnce(document, 'dom:loaded', function(){
/* some code goes here */
});
<<--

Railsアプリケーションであれば、public/javascripts/application.js
あたりに置いておくと便利かもしれません。

posted by genki genki on Thu 28 Feb 2008 at 17:04 with 0 comments

以前は、Railsのhelperメソッドのオプションや細かい挙動を調べるために、
secondlifeさんの
http://api.rails2u.com/
や、
:::ruby.search:::
のお世話になることが多かったのですが、
近頃ではRailsのドキュメントを参照する機会が減ってきました。

細かい理由はいろいろあるのですが、一番大きいのは、
以前紹介したRak
を使って直接Railsのソースを確認するのが便利な事です。

使い方はこんな感じです。

  • vendor/rails以下にRailsをfreezeさせます。
  • GNU screenでcd vendor/railsしたスクリーンを用意しておきます。
  • 何か調べたいときは、rak def\ method_nameを実行して、出てきたファイルをvimで読む。
  • Rtags(rails.vimの機能)でジャンプもできる。

さらに、細かい挙動やメソッドに渡ってきた値を調べたい時などは、
vendor/railsのソースにdebuggerと書き込んで、
script/server -uでデバッグモードを起動します
(「Rails 2.0でデバッグをする新しいやり方」参照)

posted by genki genki on Thu 28 Feb 2008 at 13:05 with 0 comments

apt-get install git-coreですんなり終わるかと思っていたら、
GNU Interactive Toolsというのと競合してるらしく、
以下のようなメッセージが出てきます。

pre>>
git, the filemanager with GNU Interactive Tools, is now called gitfm.

If you are looking for git, Linus Torvald's content tracker, install
the cogito and git-core packages and see README.Debian and git(7).

This transition script will be removed in the debian stable
release after etch.

If you wish to complete the transition early, install git-core
and use (as root):
update-alternatives --config git

Press RETURN to run gitfm
<<--

指示の通り、update-alternatives --config gitを実行すると、
今度はこんな感じのメッセージが出るので、

pre>>

update-alternatives --config git

There are 2 alternatives which provide `git'.

Selection Alternative

*+ 1 /usr/bin/git.transition
2 /usr/bin/git-scm

Press enter to keep the default[*], or type selection number:
<<--

2の/usr/bin/git-scmを選択します。

これでGitを使えるようになりました。

posted by genki genki on Thu 28 Feb 2008 at 10:14 with 0 comments
技術評論社さま、献本ありがとうございます。
WEB+DB PRESS Vol.43
WEB+DB PRESS Vol.43
posted with amazlet on 08.02.28
WEB+DB PRESS編集部
技術評論社 (2008/02/23)
売り上げランキング: 122
今号は連載の最終回が多いですね。季節を感じる一冊です。 個人的に面白かったのは、 * 弾さんの「Alpha Geekに逢いたい」(TwitterのEvan Williams氏) * masuidriveさんの「Amazon EC2&S3」(素晴らしい内容) * ひろせさんの「見逃さない通知の極意」 ですね。参考にさせていただきます。
posted by genki genki on Thu 28 Feb 2008 at 06:18 with 0 comments

このブログに英語(非常にbrokenですが)で書いている記事を、
今後はもう一つのブログの方に書くことにしました。

理由としては、複数の言語が混在しているのは読みにくいのでは
ないかということと、別なブログとして英語のブログを作ることで
英語の勉強に気合を入れるためです。

ということで、よろしくお願いいたします。

posted by genki genki on Wed 27 Feb 2008 at 13:48 with 0 comments

At rev. 8929, I have found a good news for OpenID users.

http://svn.rubyonrails.org/rails/plugins/open_id_authentication/CHANGELOG

Tied plugin to ruby-openid 1.1.4 gem until we can make it compatible with 2.x [DHH]

Thanks DHH!

posted by genki genki on Tue 26 Feb 2008 at 16:25 with 0 comments

OoO workshop has been successfully held on last Sunday thanks to SGI Japan.

Syoyo, the founder of this event, had predicted the future of GPU in his presentation using a comparison of two charts which are about the Nikkei 225 index and the speed of GPU. Detail is
here.

This is the most interesting prediction about GPU I ever met. Nowadays, CPU is speeding up much faster than GPU and its power consumption is still low against GPU's.

I think that FPGA can be a competitor of CPU rather than GPU in near future. The number of gates in FPGA has become very large so that it could be used for development of very complex processor such as Raytracing Processing Unit as known as RPU.

posted by genki genki on Tue 26 Feb 2008 at 11:11 with 0 comments

From yesterday to this morning, we had set up two MySQL servers as master-to-master configuration.

One server is located in Tokyo, the other is in Shiga.
They are replicated each other in order to get our system redundant and load-balanced. We had used
OpenVPN
for this purpose.
It is very easy to setup by using tunnelling.

Okey, we agree with that the VPN will become the neck of a bottle if our network get heavy traffic.
But fortunately or unfortunately, it is not so heavy.
So we considered that a performance issue would be still no problem, against a stability issue.

posted by genki genki on Tue 26 Feb 2008 at 08:14 with 0 comments

イベントのお知らせです。

OoO(Offline meeting for Offline renderists)

いちおう今回のメインテーマはあって、それは OoO をオンラインでフォローするための、ompf のオフラインレンダラ版フォーラムを RoR で作ろうというものです.作っていただける方はいるので、それにときどき意見を出すみたいな。

まあでもその一方で、 MLT の実装とか, 論文書くとかしてても OK.

スライド作成が間に合えば、世界初、日本でしか聞けない(<- これ大事)、MUDA のプレゼンとかするかも.

ということで、僕は作る人として参加します。
Offline Renderingについて熱く語りましょう。

posted by genki genki on Sat 23 Feb 2008 at 02:57 with 0 comments

このブログの背景画像を設定は、
以下のような感じのCSSで中寄せしているのですが、
これがなぜか、OperaとSafariでは右側に1 pixelずれてしまいます。

css>>
html {
background: #DCDCDC url(/images/bg.gif) top center repeat-y
}
<<--

しょうがないので、サーバサイドでそのようなブラウザを検出して、
中寄せしているBlock要素の左側に、以下のように1 pixelだけ
paddingを入れています。

css>>
#base.center-fix {padding: 0px 0px 0px 1px}
<<--

こういう微妙な挙動の違いは、acidテストのような見た目で判断する
テストではわかりにくいのかもしれないですね。

posted by genki genki on Fri 22 Feb 2008 at 03:55 with 0 comments

少し前になりますが、このブログでHatenaStarを使えるようにしました。
記事の右下の署名のところに表示されています。

このブログシステムでは、デフォルトの挙動だと、タイトルの右側に出てしまうので、以下のようなカスタムローダを使っています。

js>>
document.observe('dom:loaded', function(){
Hatena.Star.EntryLoader.loadEntries = function(){
return #{entries.to_json}.map(function(entry){
var star = $(['article_star_', entry[2]].join(''));
return {uri: entry[0], title: entry[1],
star_container: star, comment_container: star};
});
};
});
<<--

loadEntriesはElementオブジェクト含む配列のリストを返す
必要があるのですが、これはPrototype.jsの$()関数のように、
ElementでもElement IDの文字列でも両方
受け取れるようにしたら、もっと便利かも。

posted by genki genki on Fri 22 Feb 2008 at 03:43 with 0 comments

今回は、Railsアプリケーションに、Undo/Redo機能を追加する
プラグインの紹介です。

What is RUR (Rails Undo Redo)

RUR (Rails-Undo-Redo) is a rails plugin (and soon a gem as well) to make it so easy to implement multi-level undo redo in your Rails application that you better start thinking of better excuses not to implement Undo/Redo (no, seriously, it is going to be a lot easier).

これはなかなか面白いプラグインですね。後で使ってみよう。

posted by genki genki on Tue 19 Feb 2008 at 01:27 with 0 comments

2/13のIE7のWindows Updateの影響か、
2006年の6/12(1年半ぐらい前)に書いた記事
IE7からIE6に戻す方法
のアクセス数が増えていた。

当時は、ブラウザの互換性のためにIE7のベータ版をインストールした後に
元に戻す方法を調べて書いていたのでした。
今になって参照されるというのも面白いですね。

posted by genki genki on Mon 18 Feb 2008 at 09:23 with 0 comments

SafariかFirefoxで閲覧することが多いので気がつくのが遅れましたが、
この記事
をPostして以降、IE6でレンダリングが乱れる状態になっていたようです。

原因は、はっきりとはわかっていないのですが、
埋め込まれていたSWF(現在はリンクだけになっています)の初期化と、
JavaScriptの実行が干渉していた模様。
JavaScriptの実行とFlash Playerの実行の順序やタイミングについては、
ブラウザごとに微妙に違ったりしているようで、なかなか良くわかりにくい
ところですね。

何も考えずに
SWFObject
などを使って、JavaScript側から明示的にタイミングを指定して
SWFを初期化するのが良いのかも。

posted by genki genki on Sun 17 Feb 2008 at 05:14 with 0 comments

外部に公開されているサーバでは、sudoのタイムアウトを長くする事は
セキュリティ面からお勧めできませんが、
ローカルのVMWare上で動いているOSなどでは、
sudoのタイムアウトを長くしたいと思うこともあるかもしれません。

そんなときは、visudoコマンドで/etc/sudoersに以下の設定
を書き加えればOKです。

pre>>
Defaults timestamp_timeout = 1440
<<--

1440はタイムアウト時間を[分]であらわしたものです。

At Your Own Risk!

posted by genki genki on Sun 17 Feb 2008 at 04:44 with 0 comments

Pratik Naik氏による1ファイルで出来たRailsアプリケーション。

Single file Rails Application

Just for fun and profit

Thinを使ってますね。

Rails App Golfとかやったら面白いかもしれません。
Railsアプリとは何かという、ちょっと哲学的な問題に突き当りそうですが。

posted by genki genki on Sat 16 Feb 2008 at 16:51 with 0 comments

Thin
は、最近話題の軽量・高速が売りのWebサーバです。

Thin is a Ruby web server that glues together 3 of the best Ruby libraries in web history:

  • the Mongrel parser, the root of Mongrel speed and security
  • Event Machine, a network I/O library with extremely high scalability, performance and stability
  • Rack, a minimal interface between webservers and Ruby frameworks

ということで、
RailsアプリケーションでThinを使う方法をメモしておきます。
何はともあれ、まずはsudo gem install thin
thinをインストールします。
あとは、RAILS_ROOTで

shell>>
$ thin start
<<--

するだけでOKです。非常に簡単です。
thinコマンドのオプションは以下の通り。

pre>>
Usage: thin [options] start|stop|restart

Server options:
-a, --address HOST bind to HOST address
(default: 0.0.0.0)
-p, --port PORT use PORT (default: 3000)
-e, --environment ENV Rails environment
(default: development)
-c, --chdir PATH Change to dir before starting
-s, --servers NUM Number of servers to start
set a value >1 to start a cluster
-d, --daemonize Run daemonized in the background
-l, --log FILE File to redirect output
(default: log/thin.log)
-P, --pid FILE File to store PID
(default: tmp/pids/thin.pid)
-t, --timeout SEC Request or command timeout in sec
(default: 60)
-u, --user NAME User to run daemon as (use with -g)
-g, --group NAME Group to run daemon as (use with -u)

Common options:
-D, --debug Set debbuging on
-h, --help Show this message
-v, --version Show version
<<--

見ての通り、デフォルト設定はRailsアプリケーションに
最適化されています。

posted by genki genki on Sat 16 Feb 2008 at 12:48 with 0 comments

ウノウラボさんで面白いイベントをやってるので参加してきます。

**気分をかえてウノウで趣味の開発してみませんか? **

さて、そういうこともあり、週末会社があいている時間を利用していろいろな人と一緒に、内容はばらばらでも開発してみたいよねという話を社内でしてみたところ意外と盛り上がり、うまいこと許可もとれたので、一日だけ皆さんの開発場所としてウノウを提供させていただこうと思います。

追記

ということで、参加してきました。

懇親会の様子

いわゆる勉強会とは違って、みんな黙々と作業をしているのが新鮮でした。
以下箇条書きでメモ・感想など。

  • 元同僚のonk氏がRailsを勉強しに着ていた
  • スクレイピングの人といろいろ話ができて面白かった
  • Mackbook Air人気
  • 「VistaからXPにアップグレード」
  • デバイスを作るのはやっぱり面白そうだ
  • 下北沢(うちの隣の駅)の会社のCTOさんと会った
  • KLabは「クラブ」
  • 手羽先は蟹に通じるものがある(食べてると沈黙する)
  • 宗教論争(エディタ、80桁制約、タブの数、Mac/Win and so on...)

全然関係ないけれど、ツインスパークさんと同じ建物なんですねー。

posted by genki genki on Sat 16 Feb 2008 at 10:06 with 0 comments

This is a memo of an idea that I'd wanted to do for about a year since my starting to write some codes for a comet server.

By using Comet, JavaScript tests by various browsers can be automated. It's sure to be able to do even by any browsers to say nothing of the Firefox with MozRepl.

I've said in each place about this, but it has been hard to make a time to touch it, because too many exciting ideas struggled in my brain to make my hands type them out.

I wrote this entry with a hope that it might be going to be done by someone else.

posted by genki genki on Sat 16 Feb 2008 at 06:11 with 0 comments

前からやりたかったアイディアのメモ。
Cometを使えばMozReplみたいなのをFirefox以外のブラウザでもできるはず。
それを使って各種ブラウザでのテストを自動化する。

結構各所で言ってるんだけど、なかなか手がつけられない。
最近手がつけられないアイディアが多くなってきたので、
誰かが作ってくれるかもしれない希望を込めて書いておきます。

posted by genki genki on Fri 15 Feb 2008 at 17:38 with 0 comments

ShootingStarのプロジェクトの管理を、rubyforgeから
Redmineに移管しました。URLは以下のとおりです。

Redminは、Ruby on Railsで作られたIssue Tracking Systemです。
出始めたころに使った時は、かなり荒削りな感じがしましたが、
なかなか良い感じになってきているのではないかと思います。
初期設定が若干煩雑で、とっつき難さがあるきがしますが、
一度設定してしまうと便利に使えるのではないでしょうか。

RubyでITSといえば、
Retrospectiva
というのもあります。こちらはRedmineと比べると、シンプルな
つくりで、小規模なプロジェクトの運用に向いているようです。

Redmineにしたのは、Blog機能が要らなかったからですね。
なんだかDRY脳は直行性を重視するようです。

posted by genki genki on Fri 15 Feb 2008 at 02:11 with 0 comments

Maruku
は、Rubyで実装された高機能なMARKDOWN記法のインタプリタです。
RubyでMARKDOWNといえば、BlueClothがお馴染みですが、
Marukuは数式のサポートやPDF出力なども実装されており、
より高機能なものとなっているようです。

ところで、Marukuを使っていてImmediate Link記法
<http://~~>
が、httpsで始まるURLの場合にうまく動作しないようだったので、
任意のスキームを扱えるように拡張する方法を紹介します。

ruby>>
module MaRuKu
module Strings
def line_md_type_with_arbitrary_schemes(l)
return :text if l =~ /^<[a-z]+:\S+?>/
line_md_type_without_arbitrary_schemes(l)
end
alias_method_chain :line_md_type, :arbitrary_schemes
end
end
<<--

上記のように、line_md_typeを拡張すればOKです。

Marukuを紹介するプレゼン資料を見つけたので紹介します。

posted by genki genki on Fri 15 Feb 2008 at 01:39 with 0 comments
JavaScriptレベルでSafeな実行環境(Sandbox)を作る方法について、 調べたものをメモ。 [**自由にアクセス制御可能なJavaScriptサンドボックスを作る**](http://blog.tkmr.org/tatsuya/show/407-javascript)
自サイト上でユーザにJavaScriptを(限定的に)許可したい
例えば、はてなダイアリー等でユーザがブログパーツを張れるよう許可するとか。但し
  • document.cookie等、危険な機能は操作不能にする
  • あくまでサイト上でJSを許可する(iframeは不可)
やはり動機に関してはこのへんですね。 [**[Facebook] FBJSでFacebookアプリ内でJavaScriptを利用**](http://kawa.at.webry.info/200708/article_3.html) >Facebook では、FBML という HTML サブセットの独自言語でサードパーティの開発者が誰でもアプリケーションを作成できる。FBML では当初は