tonextone.com/note/

Last-modified: 2006-09-01 (金)

Copyright ©master_at_tonextone.com All rights reserved.

スケジュール管理その1

Posted : 2005-09-28 00:00 / Category : [開発日誌]
考えてみると、これといったスケジュール管理ツールを使っていない。
細かいスケジュールはメールで確認していたし、
それなりのプロジェクトのスケジュールは、都度エクセルで管理していた。

…これじゃイカン。
ということで、ここ2,3日、ツールを漁ってみた。
とりあえずこれで始めようと思う。 公開

選んだ理由:

ポイントは、「共有」「UI重視」の 2 つ。
kiko が良さそうなんだけど、
kiko だと、データが「あちら側」にあるので、却下。
一瞬、自分で kiko を作ろうかとも思ったけど賢明にも日和る。
はてなグループも試したけど、元々はてな国民ではない私には良く分からない部分が多く、却下。
Mozilla Sunbird なら、それなりに使いやすいし、
PHP iCalendar と連携すれば、 自動的に WEB で公開できる。
iCalendar 経由で連携というのも、Web2.0 的で良い。

トラックバック

(1)
[ このエントリへはツッコミ出来ません ]

PHP <- UNICODE -> PostgreSQL

Posted : 2005-09-14 00:00 / Category : [開発日誌]
PHP - PostgreSQL の文字コード設定は、通常
PostgreSQL:
initdb --encoding=EUC_JP;
createdb hoge;
PHP:
output_buffering = On
output_handler = mb_output_handler
mbstring.encoding_translation = On
mbstring.language = Japanese
mbstring.internal_encoding = 'EUC-JP'
mbstring.script_encoding = 'ASCII,SJIS,EUC-JP,JIS,UTF-8'
mbstring.http_input = 'ASCII,SJIS,EUC-JP,JIS,UTF-8'
mbstring.http_output = 'SJIS'
mbstring.detect_order = 'ASCII,SJIS,EUC-JP,JIS,UTF-8'
mbstring.substitute_character = none
な感じにしている。

でも、Ajax するからには、UNICODE で統一したい。
ちょっと試した結果、
PostgreSQL:
initdb --encoding=EUC_JP;
createdb hoge;
psql> SET client_encoding TO 'UNICODE';
PHP:
output_buffering = Off
output_handler = none
mbstring.encoding_translation = Off
mbstring.language = neutral
mbstring.internal_encoding = 'UTF-8'
mbstring.script_encoding = auto
mbstring.http_input = auto
mbstring.http_output = 'UTF-8'
mbstring.detect_order = auto
mbstring.substitute_character = none
で、問題なく動作する。

[ 続きがあります ]

[ このエントリへはツッコミ出来ません ]

PHP on Biscuit

Posted : 2005-09-05 00:00 / Category : [開発日誌]
このエントリに関連して。
Ruby の Rails を真似た PHP 版フレームワークとして、 Cake に続き、 Biscuit を触ってみた。
Tutorial にしたがって、これを作ってみた。

特徴:

  1. PEAR(DBその他)を使う。
  2. テンプレートエンジンを使わなくて良い。
  3. グローバルな、変数、関数を上手く使う。
  4. 4つ(だけ!)のファイルで構成される。
  5. そもそも構成ファイルが少ないので、どうにでもできる。

ファイル構成:

biscuit_forum/
|-- index.php (本体)
|
|-- biscuit/ (ライブラリ)
|   |-- activerecord.inc (モデル: クラス定義)
|   |-- activecontroller.inc (コントローラ: クラス定義)
|   `-- actionpack.inc (ビュー: 関数定義)
|
|   # 上記が構成ファイル。(参考)
|   # 下記のファイルでアプリを実装する。
|
|-- models/ (モデル: インスタンス作成)
|   `-- post.php (ファイル名 = モデル名)
|
|-- controllers/ (コントローラ: インスタンス作成)
|   `-- forum_controller.php (ファイル名 = コントローラ名_controller)
|
`-- views/ (ビュー: テンプレート)
    `-- forum/ (ディレクトリ名 = コントローラ名)
        |-- create.html (ファイル名 = アクション名)
        |-- index.html
        |-- login.html
        `-- show.html

所感

かなり好感触。
/index.php(100行) が本体で、これを読めばフレームワークの概要は理解できる。
グローバルな変数、関数を積極的に使う事により、
コアクラスのメンバが必要最小限に抑えられているので、
覚えなければならない事や、親子関係を意識しなければならない状況が少ない。
[一式]

トラックバック

(2)
[ このエントリへはツッコミ出来ません ]

JavaScript の *.onkey* と IME の事情。その2

Posted : 2005-09-04 00:00 / Category : [開発日誌]
このエントリの続き。
ようやく、時間がとれたので、ac.jsを読んでみた。
結論:
key event をトリガーにするのは諦めて、入力値の変更をトリガーにしている。
そのために、10 ms 毎に入力値を監視している(idkc() という関数)。
その部分だけ抜き出すと、つまりこういうことです。
思った通りの実装ではあったが、
実際やった経験がなかったし、何しろ難読化されているので、
すぐには、突き止められなかった。

ちなみに、難読化されたコードの整形には、GNU indent (on Cygwin) を使いました。
javascript-modeも便利ですね。

トラックバック

(1)
[ このエントリへはツッコミ出来ません ]

JavaScript の *.onkey* と IME の事情。その1

Posted : 2005-08-29 00:00 / Category : [開発日誌]
Google suggestの補完候補表示機能は、便利なので、結構いろんな人がマネをしている。
俺もこれで真似しているわけだが、まだマネし切れていない部分がある。
それは、かな漢字変換が未確定の段階での、補完候補取得機能。
IME-on でも、キーをタイプする毎に、補完候補が更新されるっていうヤツ。
Google 以外で、この機能を Cross-Browser に実装して、公開している人もいないようだ。

という事で、あの難読化された ac.js から学ぶ事にする。
現段階で分かっている事は、
      IME-on 状態で、

      IE:
          キータイプ毎に keydown, keyup が発生する。keypress は発生しない。
          未確定段階の入力値を getElementById().value で取得できる。

      Firefox:
          キータイプ毎に keydown, keypress が発生。keyup は発生しない。
          未確定段階の入力値を getElementById().value で取得できない。
          [Enter]で確定すると、 keyup が発生し、入力値を getElementById().value で取得できる。

      Opera:
          キータイプしても keydown,keypress,keyup は発生しない。
          未確定段階の入力値を getElementById().value で取得できない。
          [Enter]で確定しても、keydown,keypress,keyup は発生しない。
          そこから更に[Enter][Backspase]などの制御キーをタイプすると、
          ようやく keydown,keypress,keyup が発生する。
    
[テスト]

やっぱり、google の中の人はすごいなぁ。それにひきかえ Opera の中の人は…。

トラックバック

(2)

ツッコミ

1: master (08/29 23:24)
よく見ると、日本語版(hl=ja)と、英語版(hl=en)とでは、挙動が違う!!
英語版( http://www.google.com/webhp?hl=en&complete=1 )
日本語版( http://www.google.co.jp/webhp?hl=ja&complete=1 )

英語版だと、Opera で IME-on の場合、(普通には)補完されない!!
やはり多言語対応のために hack が必要だったんじゃないかと推測する。

その代わりというか、
英語版では第一候補の補完部分が入力欄に自動的に追加される。
2: master (08/30 00:55)
InstallAC(document.f,document.f.q,document.f.btnG,"search","en");
の5番目の引数に "ja" を渡すと、IME-on でも良い感じで処理するようになっている。
要するに、この引数での条件分岐を追っていけば、求める hack を突き止められる。
[ このエントリへはツッコミ出来ません ]