Recent Entries
Recent Comments
OZACC.blog: Web.Dev Category Archive

2008年09月17日

Web.Dev | Akamai

アカマイ

むむぅ、Akamaiの挙動が分からない。
この間も誰かと話していたのだけど、「Akamai Hacks」的な本が欲しい。

Posted by otsuka : 18:51 | Comment (5) | Trackback (0)

2008年09月11日

Web.Dev | IE 7とメイリオとFilter

【日々平穏 IE7:filterを使用するとフォントのアンチエイリアスが無効になる
IE7 メイリオ でフォントがジャギるのをなんとかしてみる - 電脳戦士ハラキリ -SE道とは死ぬ事と見つけたり-

最近はCSSでメイリオフォントを指定することが多くなってきたのだけど、IE 7のこのバグに今日気付いた。

とりあえずjQueryでフェードを含むアニメーションを掛けてたのを止めて対処した。

Posted by otsuka : 16:00 | Comment (0) | Trackback (0)

2008年07月28日

Web.Dev | 携帯アクセスをAWStatsで解析

宅鯖 備忘録: AWStats をインストール

AWStats 6.6だとdocomoとauからのアクセスが表示されていなかった。調べてみたら、これらの携帯ブラウザからのアクセスはRobot扱いになっててログ解析の際に除外されていた。

危うく、Softbankユーザからしかアクセスがありませんでした!! と報告するところだった。

Posted by otsuka : 15:23 | Comment (0) | Trackback (0)

2008年07月15日

Web.Dev | auでデータダウンロード

ダウンロードCGI、Javaサンプル - データのダウンロード方法 [au,EZweb]

2. HTMLの場合(全データ共通)
<A HREF="device:data/dnld?url=http://www.inunote.com/download.cgi&name=$fname&size=$fsize&disposition=$devtype">
ダウンロード</A>

上の書き方の場合、データのダウンロード後に強制的にトップページなどに戻ってしまう場合があります。
<wml:anchor>
<wml:spawn href="device:data/dnld?url=http://www.inunote.com/download.cgi&name=$fname&size=$fsize&disposition=$devtype"/>
ダウンロード</wml:anchor>
と書くと、ダウンロード完了後、ダウンロード元のページに戻ります。

auでdownload.cgiを使って着メロデータをダウンロードさせると、ダウンロード完了後にau oneトップにページが遷移してしまい困っていたのだが、WMLタグを使うことによって回避できる方法があった。

download.cgiじゃなくて<object>タグが使えれば多少簡単な気がするんだけど、古い機種も対象となるとそうはいかないのが歯がゆい。

Posted by otsuka : 15:05 | Comment (0) | Trackback (0)

Web.Dev | ケータイ

KDDI au: EZfactory > 技術情報

もう携帯サイト嫌だ。
機種毎に対応したフォーマットの着メロファイルをダウンロードさせるページを作るだけなのに、えらい大変だ。。。

AUは機種名とUserAgent(デバイスID)が全く一致してないし、ダウンロードも着メロファイルへの通常のリンクじゃダメだし、なんなんだ。

着メロのダウンロードは、エミュレータでのチェックでは自信が持てない。けど、動作チェック用の実機の種類も全然足りないし。
携帯サイト開発はやっぱり敷居が高いな。

Posted by otsuka : 00:24 | Comment (0) | Trackback (0)

2008年06月17日

Web.Dev | CakePHP 1.1から1.2

CakePHPを1.1から1.2へ上げるときの注意点 - blog.katsuma.tv

僕が知る限り国内でのCakePHP使用サイトとしてアクセス数ではトップクラスであろうと思われるサイトを昨年末に1.1ベースで構築した。当時は1.2もまだβだったので使うには早すぎたんだけど、RCということでそろそろ1.2にバージョンアップしたい。

上のページはまだ書きかけとあるので他にもまだいろいろあるのだろうけど、今書かれている内容だけ見ると移行は簡単そう。でも、いざ移行するとなるときっとスムーズにいかない気がする。

今後サイトへのかなりの機能追加が検討されてるので、移行するなら早めにやった方がいいことは確かな。1.2の新機能を使えばきれいに作れそうなものもあるし。
実装が始まってからだと面倒だし、今がそのタイミングなのか。

公式の1.1 to 1.2のmigration guideはないのかな?

Posted by otsuka : 22:21 | Comment (0) | Trackback (0)

2008年05月06日

Web.Dev | テストデータ生成

瞬時にテストデータを大量生成してくれる『Data Generator』 | IDEA*IDEA

毎回テストデータを作るのが面倒くさい。テストデータ生成ツールとしては、ここで紹介されているgeneratedata.comはかなりいい線をいっているのだが、日本語に対応していない点を除いてもあと一歩届かない。

結局アプリケーション特有のデータ構造などもあって、都度自前でデータ生成スクリプトを書いている。毎度Webアプリ開発の度に必要になるのものなので、何とか汎用化したツールを作りたいものなのだが。外部キーを必要とする子テーブルにまたがるテストデータ生成は汎用化できるのだろうか。
過去の開発での要件を洗い出して、汎用化に必要な機能をまとめる。

どうせならデバッグが楽しめるようなランダム文を生成できる機能が欲しいな。

Posted by otsuka : 23:54 | Comment (0) | Trackback (0)

2008年04月01日

Web.Dev | さくらインターネット 専用サーバの新プラン

SAKURA Internet // ニュース

弊社では、初期費用無料、月額料金7,800円の「専用サーバ」エントリープラン の新設、サーバにデュアルコア インテル(R) Xeon(R) プロセッサー搭載モデル、 OSにはUbuntu(ウブントゥ)を新たに採用し、2008年4月15日お申し込み受付を 開始いたします。

営業担当の方にはDebianを復活させて欲しいと要望していたのだけど、Ubuntuが新たに加わった。CentOS 5もようやく。
国内の専用レンタルサーバでUbuntuを使えるところは初めてではないだろうか。

回線込みで7,800円のエントリープランも魅力的。CeleronだけどLAMP構成で、アクセスがそんなにないのなら全然OKでしょ。

そんな新規提供サービスに隠れて、既存プランがスペックアップしているとはいえ、初期費用が25,000円もアップしている点が残念だ。

Posted by otsuka : 19:08 | Comment (0) | Trackback (0)

2008年01月03日

Web.Dev | CakePHPで開発

CakePHP: the rapid development php framework. Home

年末にリリースしたサイト(フルリニューアル)で、WebフレームワークにCakePHPを採用した。最初クライアントから既存の環境と合わせるためにPHP4でという話があったので、マジかよ!?と思いつつPHP4にも対応していて、且つ依存ライブラリがないCakePHPを選択した。結局はPHP5で開発できることになったのだが。

CakePHPのビューにSmartyテンプレートを使いたかったのだけど、Smartyを使うとCakePHPのビューキャッシュが効かなくなったのでパフォーマンスを気にして断念。なのに、最後の最後でクライアントからAkamai使うにあたってキャッシュされて困るページはありますか?と訊かれ、初めてAkamai使うことを知らされる。こんなことならSmarty使えばよかった。
ビューでPHPの生のコードを使えるのは一長一短。テンプレートを取得する必要はないけど、いちいち <php... と書くのは面倒だし、可読性も悪い。ビューでSmartyを使う選択肢はCakePHPが標準でサポートしててもいいように思った。

After Railsなフレームワークらしく、CakePHPにはAjaxサポートが備わっており、Ajaxヘルパークラスを使うことで容易にAjaxを使った機能をページ内に組み込むことができる。
ところが、今回サイトで使用しているアクセス統計プログラムのJavaScriptのコードとAjaxヘルパーが生成するJavaScriptとの相性が悪く、特定の環境でどうしてもエラーになってしまい、CakePHPのAjax機能を利用することができなかった。Ajaxで実装していたのは大した機能ではなかったので、自前でコードを書いて対処することができた。せっかく本来楽に開発できるところで、時間をロスしてしまった。

このアクセス統計のJavaScriptは、prototype.jsにも悪影響を与えていて本当に腹が立った。こっちではどうしようもないだけに、アクセス統計のプログラムはどんな環境で使われてもいいように配慮して作って欲しいものだ。

CakePHP習得の上で僕にとって難しかったのはModelのクセを掴むこと。DAOなのかEntityなのか、ActiveRecordな機能を備えているけど、Railsと一番違うところであった。最初、他のテーブルと関連を持つクラスをfindAll()とかで取得したときに、何が返ってきてるのかよく分からなかった。やたら複雑な連想配列が返ってくるのだけど、何故クラスのオブジェクトを返してくれないのか実は今でも理解できていない。

ってな具合で諸々不満点はあるのだけれど、これがなければ短期間でサイトを構築することはできなかったと思うので感謝です。後でDonationしようと思います。日本のユーザフォーラムにもお世話になりました。

Posted by otsuka : 03:21 | Comment (0) | Trackback (0)

2007年12月30日

Web.Dev | mod_ktai

携帯サイト構築簡易化Apacheモジュール『mod_ktai』を開発:携帯サイト構築・株式会社ゆめみ

これはスゴイ。年度内に「一般公開」とあるけど、オープンソースで提供されるのか気になるところ。

やっぱり最後はApacheのモジュールに行き着くんだな。

Posted by otsuka : 22:34 | Comment (0) | Trackback (0)

2007年10月22日

Web.Dev | img lowsrc

画像の挿入とサイズ指定-img

LOWSRCの属性は、本画像を表示する前に仮の画像をさきに表示させる属性です。 SRCと組み合わせると2段階表示させることができます。
使い方としては、最初に画質を下げた容量の小さい画像を表示させてれば良いでしょう。

今日社内の打ち合わせで、この lowsrc 属性の話が出て、知らないスタッフがいた。年齢はほぼ変わらないのに。HTMLを書き始めたスタート時期の違いなのかも。
このLOWSRCは、Internet Explorer 4とNetscape Navigator 2.0のみサポートされています。
確認してないけど、もう過去の遺物なんだな。最初に白黒の画像を表示させておいて、次にsrcでカラー画像を読み込んだりする処理はギミックとしては面白かった記憶が残っている。

あとブラウザのステータスバーで文字をスクロールさせたり、リンクにマウスオーバーするとステータスバーに説明を出したりするサイトももう見かけなくなった。10年ちょっとを振り返ると、そんな流行廃りがあったことも分かる。今は何が流行ってるんだろう?
これから10年後には「むかしAJAXとか使ってたよねー」みたいな話をするのだろうか。

Posted by otsuka : 16:55 | Comment (0) | Trackback (0)

2007年09月23日

Web.Dev | CSS expressionプロパティ

expression() のまとめ

IE限定だけど、スタイルシートのプロパティで「expression」というJavaScriptを実行できるものがあることを初めて知った。大分強力に思えるけど、IE限定ってことを考えると最初からJavaScriptの中でスタイル設定をやった方がいいように思える。
パフォーマンスの点でも避けた方がいいみたい

実際に使うことはなさそうだけど、そんな風に思ってた知識が後で役立つケースもあるのでMEMO。

Posted by otsuka : 02:04 | Comment (0) | Trackback (0)

2007年09月03日

Web.Dev | YouTube APIの刷新

YouTube Data API Overview

GDataベースのAPIに刷新された。これまでのAPIは来年8月末までは稼働が保証されている。

前に仕事で作ってたYouTubeライブラリを修正しなければ。まだ一年あるからと思っていると、あっという間にまた夏が来てしまうので今月中にやる。

Posted by otsuka : 02:13 | Comment (0) | Trackback (0)

2007年07月24日

Web.Dev | Loading XML

Flashのデータ読み込み処理中に、「Loading XML」とか表示しているサイトを時折見かける。ストリッパーズで作ってるサイトでもあるんだけど。。

よくよく考えてみると、データの形式なんてお客さん(サイト見る人)にとっては何の興味もないよね。XMLであろうが、プレーンテキストであろうが、AMFであろうがどうだっていい。
「XMLって何だ!?」って人にとっては「Loading XML」は何を言っているのかさっぱり分からない不親切なメッセージ。自分たちにとっては知ってて当たり前のものだから、ついこんな風に使っちゃったりするけど気をつけないと。

Posted by otsuka : 18:05 | Comment (0) | Trackback (0)

2007年07月23日

Web.Dev | YouTubeのFLV

[Saq.] YouTube の FLV を抜き出すのが簡単になっている件

どうやらすでに内部的にも Google とくっついているようで。これまでだとスクレイピングしないとわからなかった FLV のありかが、クライアントサイドだけでわかるようになっております。

http://www.youtube.com/watch?v=2yDSbFe62E4
こんな YouTube の URL があります。これの FLV のありかは、

http://cache.googlevideo.com/get_video?video_id=2yDSbFe62E4
↑ココです。カンターン。

おっとー、これはちょっとした発見ですね。

が、YouTubeのAPIから返されるサムネイル画像URLの構成ルールが突然変わってて、あるサイトで困ったことになってたらしいことを今朝知ったばかりなので、ドキュメントにない使い方をする場合は定期的にその仕様が今でも継続されているかどうか確認しておかないと痛い目に合いそう。

Posted by otsuka : 16:50 | Comment (0) | Trackback (0)

2007年07月04日

Web.Dev | Fastladder

ITmedia News:「世界の技術者、刺激したい」——ライブドアRSSリーダー英語版公開

クライアントサイドのソースコードも難読化しておらず、同じものを作ることは難しくないという。「Fastladderと同じことをGoogleやYahoo!がやれば、体力がある分勝つだろうと思うし、個人的にはそれでもいいと思う。そうなった上で勝負しないと意味がない。できの悪い物を使っているとその程度のライフスタイル・使い方に縛られてしまうから」(ma.laさん)

かっこいい。

BloglinesもGoogle Readerも使ってないからRSSリーダーとしての比較はできないけど、livedoor Readerは2006年に登場したWebアプリの中でベストだと個人的には思っている。去年の時点でも今更RSSリーダー?といった感じだったけど、度肝を抜かれた。

GMailでもGoogle Mapsでもそう。前にもちょっと触れたけど、コンテンツ自体は以前からあるありふれたものでもインターフェースが変われば新しいものになるんだということ。

Posted by otsuka : 15:49 | Comment (0) | Trackback (0)

2007年06月18日

Web.Dev | 日本語形態素解析Webサービス

Yahoo!デベロッパーネットワーク - テキスト解析 - 日本語形態素解析

「ウェブで『茶せん』」と見出しが付いているニュース記事があるけど、記事の中では「ヤフーが開発を進めてきた形態素解析エンジン『Web MA』」と書かれているのでヤフー独自のものなのかな?

こういうのが気軽に使えるのは便利だと思う。利用制限があるので実運用では難しいかも知れないけど、このWebサービスと自前のサーバでの解析処理とを切り替えられるようなラッパーとなるライブラリを作ってしまえば、辞書作成とか面倒な手間を省いて手軽に形態素解析使った開発が始められそう。

Posted by otsuka : 20:30 | Comment (1) | Trackback (0)

2007年05月11日

Web.Dev | trac 0.10.4

インタアクト株式会社さんからtrac-ja 0.10.4が公開されたので、ストリッパーズのtrac環境も0.10.3からバージョンアップ。

相変わらずチケット通知メールの文字コードはUTF-8なので、ISO-2022-JPに変換して送信するパッチを作成しました。以前のkuriyamaさんのコードを参考にしてます。

PYTHON/site-packages/trac/notification.py が対象ファイルです。パッチを当て、trac.ini の[notification]セクションに次のようにmime_encodingオプションを設定します。

[notification]
mime_encoding = iso-2022-jp
あとはWebサーバを再起動すればOK。

trac-jaと同じく自己責任で。
notification.py_0.10.4.patch

Posted by otsuka : 05:00 | Comment (0) | Trackback (0)

2007年05月10日

Web.Dev | Ext JS

Ext JS - JavaScript Library

トーサキから教えてもらったJavaScriptのUIライブラリ。まだ公開されて1ヶ月程度らしい。乱立気味のJavaScriptライブラリのうち、YUI、jQuery、Prototypeのいずれかをラップして使うよう作られている。

Documentation Centerのサンプルを見て驚いた。ある意味Flexキラーだなと。
APIドキュメントがJavaDoc形式でしっかり揃っているのも嬉しい。今度使ってみよう。

Posted by otsuka : 22:27 | Comment (0) | Trackback (0)

2007年01月29日

Web.Dev | Google Analytics for HTTPS

cyano: Google AnalyticsをHTTPS(SSL)なページで使う

MEMO。

Posted by otsuka : 16:22 | Comment (0) | Trackback (0)

2007年01月22日

Web.Dev | Django勉強会でのメモ

JavaScript:

  • 無名関数でも名前を付けられて、何かするとその名前を取得できるらしい。

Python:

その他:

追記
次のコードでJavaScriptの無名関数の名前が取れることは分かった。

var functionName = Functionオブジェクト.toString().match(/function *(\w*)/)[1];
何に使えるのか分からないけど。

Posted by otsuka : 20:25 | Comment (0) | Trackback (0)

2006年09月18日

Web.Dev | django

PythonのWebフレームワーク「django」を昨夜からいじり始めた。名前がカッコイイ。ジャンゴ・ラインハルトというギタリストの名前が由来らしいけど、名前だけ聞くと何故かスペイン、ポルトガル辺りの顎が割れてるダンディーなおっさんを想像してしまう。フィーゴ?

名前はさておき、チュートリアルを通してざっくりと触れてみて、adminサイトに感動した。今までプロジェクト毎に作ってきたCMS的なプログラムは、そもそも作る必要がなかったんじゃないかと思わせるくらい強力。こんなのがタダで使えちゃう時代なのかと驚愕した。
あと、正規表現での設定によって完全にURLをカスタマイズできる点は、Railsなんかと比べると一手間掛かるけど、昔から拡張子やナイスURLにこだわる僕としてはこの一手間はメリットになると感じた。
ジェネリックビューについては、チュートリアルで触れた範囲では、そんなに単純なケースって実際にあるかなあ?といった印象。

そんなこんなで夜が明けた。眠い。
今度はTurboGearsも使ってみよう。

Posted by otsuka : 06:37 | Comment (2) | Trackback (0)

2006年09月16日

Web.Dev | HTTPヘッダでのキャッシュ制御 2

昨日書いたエントリーの続き。

Windows版のIE 6とFirefox 1.5で動作検証を行っているが、「Cache-Control:private, max-age=60」をレスポンスヘッダに指定した場合、次のような挙動を取ることが分かった。

IE 6では、Cache-Controlの他にPragma、過去日時のExpiresがヘッダに含まれていても、Cache-Controlを優先し、PragmaExpiresは無視する。

一方Firefox 1.5では、PragmaExpiresの一方もしくは両方がヘッダに含まれていると、Cache-Controlmax-ageは無視されブラウザキャッシュされなかった。Cache-Controlだけで他の2つのヘッダがなければIEと同様にキャッシュするが、max-ageの設定時間に関わらず同一URLへの3回目のアクセス時にリクエストを送ってしまう現象を確認できた。(1回目のレスポンスでキャッシュヘッダとレスポンスを受け取り、2回目はキャッシュを使いリクエストは送らない。) 謎だ。。。

こうなると、PragmaExpiresは使わない方がいいのかも知れない。
そもそも、

Expiresの日時 - レスポンス時の日時 = max-ageの値 (単位は秒)
となるべきなので、Expiresで過去日時を指定していながら、max-ageも指定するのは反則かも知れない。(Cache-Control:private以外にもExpiresに過去日時を指定することでProxyキャッシュを抑制できると思った)

Posted by otsuka : 00:24 | Comment (0) | Trackback (0)

2006年09月14日

Web.Dev | HTTPヘッダでのキャッシュ制御

HTTPヘッダでのキャッシュ制御に関して、Cache-ControlとPragmaについて調べた。いつもすぐ忘れてしまうので、今回はMEMOしておく。

Proxyでレスポンスをキャッシュさせたくない(ブラウザにはキャッシュしてもらいたい)場合、Cache-Controlに「private」を設定する。Pragmaに設定できる値は「no-cache」だけ。但し、HTTP 1.1をサポートしているブラウザはCache-ControlとPragmaの両方のヘッダがある場合、Pragmaは無視してCache-Controlの方だけを見るので、基本的に
Cache-Control: private
Pragma: no-cache
を指定しておけばProxyキャッシュは抑制できるだろう。

Cache-Controlの値を複数設定したい場合は、値をコンマで区切る。
Cache-Control: private, max-age=60
max-ageで指定した秒数の間、ブラウザはレスポンスをキャッシュし、次回の同URLへのアクセス時にサーバにリクエストも送らない。この点は、性質は異なるがLast-ModifiedやETagを用いた304レスポンスを期待するキャッシュ制御よりも効率がいい。但し、ブラウザでリロードした場合は再度リクエストが送られる。
Posted by otsuka : 18:43 | Comment (0) | Trackback (0)

2006年08月30日

Web.Dev | Comet

Ajax/Comet - PukiWiki

WEB+DB PRESS Vol.34の記事で読んで初めて知った新しいバズワード「Comet」。記事によるとCometとは、「サーバプッシュ型アプリケーションの総称」。

クライアントとサーバでコネクション張りっぱなしという性質のものなので、サーバインフラがしっかりしてないとユーザ数が大きいサイトでの使用は難しそう。サーバサイドのライブラリやフレームワークが洗練されてくると、Flex Data ServiceのFMS的な機能は担えそうな気がする。

Posted by otsuka : 16:02 | Comment (0) | Trackback (0)

2006年08月23日

Web.Dev | XMLHttpRequests using an IFrame Proxy

XMLHttpRequests using an IFrame Proxy

via オレンジニュース

MEMO。

Posted by otsuka : 14:25 | Comment (0) | Trackback (0)

2006年08月18日

2006年08月16日

Web.Dev | PHPからmod_deflateを無効にする

PHP: apache_setenv - Manual

If you are using mod_gzip or mod_deflate to compress HTML output, you're not able to send partial file to the browser....
To disable mod_deflate in PHP (if needed), you can tell Apache with this :
apache_setenv('no-gzip', '1');

MEMO。

mod_deflateによるコンテンツの圧縮転送

Posted by otsuka : 00:48 | Comment (0) | Trackback (0)

2006年05月19日

Web.Dev | trac チケットの更新が記録されない (2)

先日tracのチケット更新メールが届かないことがあると書いたけど、tracのログを仕込んでおいた結果、原因が分かりました。
Trac[web_ui] ERROR: Failure sending notification on creation of ticket #650: ISO-2022-JP encoding error: invalid character \uff5e
Traceback (most recent call last):
  File "/usr/lib/python2.3/site-packages/trac/ticket/web_ui.py", line 144, in _do_create
    tn.notify(ticket, newticket=True)
  File "/usr/lib/python2.3/site-packages/trac/Notify.py", line 214, in notify
    NotifyEmail.notify(self, ticket.id, subject)
  File "/usr/lib/python2.3/site-packages/trac/Notify.py", line 108, in notify
    Notify.notify(self, resid)
  File "/usr/lib/python2.3/site-packages/trac/Notify.py", line 47, in notify
    self.send(to)
  File "/usr/lib/python2.3/site-packages/trac/Notify.py", line 335, in send
    NotifyEmail.send(self, rcpt, hdrs)
  File "/usr/lib/python2.3/site-packages/trac/Notify.py", line 129, in send
    body = unicode(body, 'utf-8').encode('japanese.c.iso-2022-jp')
UnicodeError: ISO-2022-JP encoding error: invalid character \uff5e
Notify.pyが送信するメールをUTF-8のマルチパートメッセージではなく、JISのシングルパートに変換するようにしているのだけど、全角チルダ(~)が含まれてると変換の際にエラーが発生していた。もしかすると他の文字もエラーのトリガーになっているのかも。

Pythonに詳しい人、ヘルプミー。

# Kuriyamaさん、同じ問題が起こってたりしませんか?
Posted by otsuka : 19:25 | Comment (4) | Trackback (0)

2006年05月18日

Web.Dev | trac チケットの更新が記録されない

tracのチケットを更新(新規登録やコメント追加)した際にメールが飛ぶように設定しているのだけど、以前から時々このメールが送信されないことがあった。メールサーバが調子悪いのかなと思っていたのだけど、メールが送信されない場合はTimelineにもチケット更新履歴が記録されていないことが分かった。

メールが送信されないため重要なチケットコメントに気づかない影響は小さくないので、何とか解決したいのだけど、今のところ原因が分からない。とりあえずtracのログを出力するようにしておこう。

原因、対処法をご存じの方がいたら教えてくださいー。

Posted by otsuka : 16:41 | Comment (0) | Trackback (0)

2006年05月07日

Web.Dev | Subversion 外部定義とASクラス共有

外部定義

Javaでのアプリケーション開発の場合、ライブラリはビルドされたJarとしてMaven管理してしまえばよかったが、Flash(ActionScript)のASクラスライブラリをプロジェクト間で共有するにはどうすればいいだろうと前から考えていた。

あるSVNリポジトリにASクラスをまとめておき、そのASクラスリポジトリを個々のプロジェクトから外部定義として取り込む形にすれば良さそう。ASクラスを修正したい場合は、ASクラスリポジトリに対して修正を行えば、各プロジェクトに反映されるはず。
実験してみねば。

外部定義としてあるリポジトリが取り込まれるには、そのリポジトリに対してのリード権限があればいいのかな?
今、FlashOOPでもASクラスライブラリをまとめてホストしよう計画が進んでいるけど、こういう形で利用されるようになれば便利かも。


上のページのドキュメントを読んでもよく分からないのが、外部定義から取得したソースコードに手を加えてコミットしたら、それは大元のソースコードにまで変更が及ぶのか?

Posted by otsuka : 18:12 | Comment (0) | Trackback (0)

2006年05月06日

Web.Dev | tracで改行[[br]]を簡単に入力

tracのwiki記法で一番面倒なのが改行の[[br]]。アイコンをクリックして入力できるようになったとしても、それをクリックするのが面倒。理想的にはShift+Enterで[[br]]が入力される仕組み。と思い、理想を追い求めて、次のようなJavaScriptを書きました。もうそんなプラグインが巷にあるのかも知れませんが。

こいつを/usr/share/trac/htdocs/js/trac.js(CentOSの場合)に付け加えて、Apacheを再起動すればOK。trac内のテキストエリアでShift+Enterで[[br]]が入力されるようになっています。

Firefoxでしか動作しません。誰かクロスブラウザで動くようにしてくださいー。
function getKeyCode(e){
  return e.keyCode != 0 ? e.keyCode : e.charCode;
}
document.onkeypress = function(e) {
  if (navigator.userAgent.indexOf("Firefox") != -1) {
    if (e.target.tagName.toUpperCase() == 'TEXTAREA' && e.shiftKey && getKeyCode(e) == 13) {
      document.getElementById(e.target.id).value += '[[br]]';
    }
  }
}
追記
おっとー。これだとテキストエリア内での現在のカーソル位置とは関係なく、テキスト末尾に[[br]]が挿入されてしまう。。。

修正版はこちら。
function getKeyCode(e){
  return e.keyCode != 0 ? e.keyCode : e.charCode;
}
if (navigator.userAgent.indexOf("Firefox") != -1) {
  document.onkeypress = function(e) {
    if (e.target.tagName.toUpperCase() == 'TEXTAREA' && e.shiftKey && getKeyCode(e) == 13) {
    var insertTag = '[[br]]';
    var elem = document.getElementById(e.target.id);
    var inputText = elem.value;
    var pos = elem.selectionStart;
    var text1 = inputText.substr(0, pos);
    var text2 = inputText.substr(pos);
    elem.value = text1 + insertTag + text2;;
    pos += insertTag.length;
    elem.setSelectionRange(pos, pos);
    }
  }
}
Posted by otsuka : 20:30 | Comment (5) | Trackback (0)

Web.Dev | trac MailArchivePlugin

WeekbuildのHack倉庫 - Trac

すばらしい!!
まだ試していないが、このMailArchivePluginを導入すれば、tracでプロジェクトを横断的に管理できそうだ。あとはステキなカレンダーがあれば。

Posted by otsuka : 20:29 | Comment (1) | Trackback (0)

2005年11月18日

Web.Dev | HTTP-only Cookies

Mitigating Cross-site Scripting With HTTP-only Cookies (Internet Explorer - DHTML)

Resinのドキュメントを読んでいて、こんなクッキーの拡張があったことを初めて知った。JavaScriptでクッキー扱う用途がなければ、HttpOnlyフラグを付けておいた方が良さそう。

Mozilla系もサポートすればいいのに。

Posted by otsuka : 22:24 | Comment (0) | Trackback (0)

2005年10月12日

Web.Dev | Ajax.Requestでリクエストが発生しない

prototype.jsのAjax.Requestクラスのコンストラクタで、methodをgetにしていたらIEではリクエストが行われず、postに変えてみたらちゃんとリクエストがサーバに飛んだ。この症状に1時間くらいはまった。
うーむ、よく分からん。

Posted by otsuka : 23:20 | Comment (0) | Trackback (0)