iモードID の取得

<img src="foo.gif?guid=ON" />

こうしておいて

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{X-DCMGUID}i\"" combined

こうすると、httpd のlog にiモードID を出力できる。


使い方次第で自サイト内の行動履歴をトラッキングできる。


(07/17 追記)
全キャリア対応

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{X-DCMGUID}i\" \"%{X-UP-SUBNO}i\" \"%{X-JPHONE-UID}i\"" mobile

プログラマがコードを書く速度は100倍差が出にくいが、コードを書ける状態にもっていくまでの速度には100倍差が出る

独りの超電波プログラマ: プログラマがコードを書く速度は100倍差が出るのか?
生産性という言葉は「コーディング」だけに掛かるものだろうか。


エンジニアの生産性というのは

  • 問題の解き方を考える(設計)
  • コードに落とす(コーディング)
  • 正常に動作する事を確認する(テスト)

という一連の仕事(プログラミング)について語られるべきだと思う。


で、生産性に大きな影響を与えるのは、設計では無いだろうか。


独りの超電波プログラマ: 100人の囚人パズル
このパズルを10分で解ける人がいる一方で、1日かけても解けない人がいる。


ある処理のアルゴリズムを30分で思いつく人もいれば、3日間悩む人もいる。


問題の解き方さえ分かってしまえば、言語に対する習熟度によほどの差がない限り
コードを書くという行為の生産性の差は10倍にもならないだろう。

例:ServletSNSのサイトを作る

  • Java 憶える(1日)
  • Servletを憶える(1日)
  • 環境を整える(1日)
  • SNSのサイトを作る(60日)


独りの超電波プログラマ: プログラマがコードを書く速度は100倍差が出るのか?

この例で言うと、比較される両者の設計(とテスト)能力には
まったく差がないことが前提となる。


どうでもいいけど、言語や環境について2〜3日の学習で
経験者と同じくらいの習熟度が求められる職場って大変そう。

Restlet からServletContext を触る方法

Servlet からファイルパスの取得でよく使う?ServletContext#getRealPath(String)だが
Restlet でも同様のことをするためにServletContext を触れないか調べてみた。


調べたところ

こういう記事を見つけたので試してみた。


org.restlet.resource.Resource を継承したクラスで

ServletContextAdapter adapter = (ServletContextAdapter) getContext();
ServletContext servletContext = adapter.getServletContext();
String path = servletContext.getRealPath("WEB-INF/foo.xml");

とすればよい。

Tiarra を使いながらpriv する方法

System::Raw プラグインを有効にしてから

/raw ircnet PRIVMSG mhag :ほげほげ

ircnet というのはTiarra で設定しているサーバ名。


PRIVMSG の詳細は以下。

Command:
PRIVMSG
Parameters:
{,}


RFC1459: Internet Relay Chat Protocol (IRC)