DoCoMo iモードブラウザ2.0でCSS
DoCoMoではFOMAから使えるようになったCSSですが、変な仕様として、httpのヘッダとして「application/xhtml+xml」を送らないとCSSが効かない。
逆にこのヘッダを送ってしまうと、fontタグ等が効かないという面白仕様がありました。
DoCoMoでCSSを効かせる方法 - maru.cc@はてな
今回、iモードブラウザ2.0では、このヘッダを送らなくても色がつくようになっていました。
<html> <body> <span style="color:red;">red</span> <font color="blue">blue</font> </body> </html>
これでちゃんと色が付きます。
DoCoMo iモードブラウザ2.0でJavaScript
JSも動くようになったということで、気になるこれを。
無限alert
<html> <body> <script type="text/javascript"> var i=0; while (1) { i++; alert(i); } </script> </body> </html>
しっかり無限してますw
130ぐらいまでは数えましたが、電話を切るボタンでiモードを終了させちゃいました。
いわゆるブラクラ
window.open も動きますが、「サイトの指定により新ウィンドウを開きます よろしいですか?」というダイアログが開きました。
<html> <body> <script type="text/javascript"> while(1) { window.open('./'); } </script> </body> </html>
こんなのをやってみたら、YESでもNOでもダイアログが出続けるというブラクラ状態に。
無限ループ
<html> <body> <script type="text/javascript"> while (1) { } </script> </body> </html>
なにやらずーっと読み込み中でしたが、気が付くと止まってました。
無限ループその2
どのくらい回ってるのかなーと思ってこんなのやってみました。
<html> <body> <script type="text/javascript"> var i=0; while (1) { i++; document.write(i+' '); } </script> </body> </html>
読み込み中の表示は、CLRキーで消えましたが、その後、戻るボタンや、機能ボタンが効きません。。。
電話閉じるボタンも効かない。でも、マルチ機能は動いていました。
マルチ機能でメニューを出して、電話切るボタンで機能を停止させたらiモードを終了できました。
ただ、これは次に同じことをした場合に普通にボタンが効いたので、その時だけだったのかもしれません。
追記(2009-05-28)
i-mode2.0は前途多難 - ockeghem(徳丸浩)の日記
こちらのページを見て、あららと思って、N-06Aでも確認してみたところ、JavaScriptが動かなくなっていました。
ZendFramework勉強会@Tokyo に参加してきた
ちょっと遅くなってしまったが、4/4にZendFrameworkの勉強会に参加してきました。
ZendFramework勉強会@Tokyo - events.php.gr.jp
ZendFrameworkはほとんど使ったことがないのですが、ライブラリとしても有用という声を聞くので、実際に使っている人たちの生の声が聞ければと思い、参加してきました。
まずは、恒例の自己紹介。
その後、プロジェクターへの接続の問題で順番を入れ替えて発表スタートです。
思い立ったらZF 〜 今日の目次 〜
発表者:junichiro
野球とサッカー、将棋と囲碁をたとえに出した自由度の高さとルールの縛りに関しての分析が面白い。
それを、CakePHPとZendFrameworkに当てはめてのたとえもわかりやすかった。
日本人はMらしいw
思い立ったらZFを実践したい。
話のテンポがよくて聞きやすかったです。
ZFを使ったプロジェクトをスタートしやすくするように、フォルダ構造等を決めたものを落としてきてそこからスタートというものだそうです。
githubにあるので見てみると参考になるかもしれないです。
http://github.com/junichiro/zf-starter/tree/master
実際にライブコーディングで簡単なフォームと確認画面まで作る手順が見れました。
レイアウトテンプレートとかは、なかなか良さげなのですが、cssの定義とかをphpのコード内にかかれているのは、デザイナーさんとの分業がある場合に大変なのではないかと思いました。
実際に、発表後に質問してみたところ、やはり分業が永遠のテーマだそうでした。
個人的に思ったことですが、デザイナーとの分業を考えた場合に、phpテンプレートと呼ばれる phpタグを書く形式はどうなんだろうというのが思いました。
はじめてのZend_Form
発表者:twkさん
開発環境はPDTみたいでした。
サンプルを交えて、というかサンプルOnlyで初歩的な段階からのいろいろなフォームの使いかたを紹介していました。
フォームの形式ですが、QuickFormのような addElementする系のソースは、Ethnaフォームを知ってしまうといまさら出来ないなぁというのが個人的な感想です。みなさん不便していないのでしょうか?
自作のZFコンポーネントなど (仮)
発砲者:wadsさん
Zned_Logでローテーションをする自作コンポーネント
ZendFrameworkですべてやりたいのでコンポーネントが増えるといいなと思っているので、発表したとのことでした。
たとえばZned_Cache
発表者:id:noopableさん
必要な処理、例えばユーザからのアクションに対してのことなどを遅延実行するというのをおっしゃっていましたが、どういうことなのか気になります。
残念ながら時間がきて途中までになってしまったので、あとで聞いてみたい。
たとえばZend_Cache
発表者:noopableさん
前提知識がないのでちょっと、という部分も少しありましたが、わかりやすい発表でした。
何にしても使って見ないと聞いた実感はわかないなぁというところ。
ZFにまつわる何か
発表者:m-takagiさん
ZFのマニュアル翻訳しようという話。
飛び入り
発表者:wozozoさん
飛び入りで wozozoさんが過去に作ったライブラリの紹介してました。
最後に
ZFは、まだまだこれから触ってみるという感じなのですが、ライブラリという側面もあるので、うまく今使っているものと折り合いを付けて使ってみたいと思いました。
Ethnaオフラインミーティング @Cake開発合宿 に参加してきた
id:yandodさんの発案で、CakePHPの開発合宿というものがありました。
4/10〜4/12 CakePHP開発合宿アルファ版を行います! - yandodの日記
それに、Ethna組として参加をしてきました。
CakePHP合宿でEthna工作員が大爆発するそうです - 肉とご飯と甘いもの @ sotarok
詳しい成果はこの辺を。
- CakePHP開発合宿アルファ版終了! - yandodの日記
- Ethna工作員によるCakePHP合宿の成果 - 肉とご飯と甘いもの @ sotarok
- Ethna オフラインミーティング @Cake開発合宿
参加してみて、CakePHPのredmineの移植組は、かなり大変そうでしたが、その分充実度合いがすごかったと思います。
なにより、よこから見ていただけなのですが、gitがこういったある程度の人数での同時開発でもかなり力を発揮するというのはすごかったです。
やっぱ、中心でマージをしたりとか進める人次第なところもあるのかなとは思いました。
Ethna組は、1月のEthna焼肉MTG以来のコミッターがオフで会う機会でした。
いままで、IRCなどで議論はしても、やはり顔を合わせて話すのはかなり違うなと感じました。
行きの車の中から、温泉入っている間も、出てから湯冷めするまで、延々いろいろなことを話してました。
その中のいくつかは、実際にコードにしてコミットをし、他にも sf.jpのチケット を使って、どんどん目に見える形にしていこうということになりました。
また、新しい試みとして、Trunkにコミットは出来ないけど実装案などを、ブランチをどんどん切って試していくことになりました。ちょっとgitのような使い方でしょうか?
うまくいくかわからないけど、いろいろ試していきたいと思います。
今のEthnaは、ActionFormは、他のフレームワークと比べてもいいところだとは思いますが、いかんせん他(DB接続とかその他いろいろ)が弱いので、なんとか使えるレベルにはしたいところです。
svnリポジトリ、Tracのパスが気に入らなくなったら
うちの会社では、プロジェクトをスタートするときに、まず、バージョン管理のsvn(Subversion サブバージョン)と、Trac(トラック)というプロジェクト管理ツールの設定から作業をします。
このSVNリポジトリと、Tracは、サイトを表す文字列を指定することになり、それが、リポジトリやTracのURLとなります。
例えば、あるプロジェクトのリポジトリとTracは、弊社の社内環境の場合、以下のようになります。
この「project_a」という文字列を変えたくなった場合の対処方法です。
今回、とある案件の仮リポジトリを、「project_a」という名前で作成していましたが、ドメインが仮確定したので、ドメインに則した名前「examplesite」に変更することにしました。
SVNリポジトリの名前変更
リポジトリの物理パスを変更します。(※パスは環境により違います)
cd /var/svn/ mv project_a examplesite
これで完了です。ちょっと拍子抜けですね。
各個人の作業リポジトリは、もちろんパスを変更しなければなりません。
作業リポジトリのトップで、以下のコマンドを実行することで変更できます。
svn switch --relocate http://svn.local/project_a/trunk http://svn.local/examplesite/trunk
--relocate がミソです。
Tracのパスの変更
Tracも同様に物理パスを変更します。(※パスは環境により違います)
cd /usr/share/trac/projects/ mv project_a examplesite
これで、移動は完了ですが、SVNリポジトリを変更すると以下の作業が必要になります。
vi trac.ini
[trac] セクションの以下を修正します。
repository_dir = /var/svn/project_a
を変更するついでに、nameも変更をしたほうがいいでしょう。
diff trac.ini.20090402 trac.ini 81c81 < name = project_a --- > name = examplesite 171c171 < repository_dir = /var/svn/project_a --- > repository_dir = /var/svn/examplesite
これだけでは、足りないので以下の trac-admin コマンドを実行します。
trac-admin /usr/share/trac/projects/examplesite resync
まとめ
初期段階で正式名称が決まっていなくてスタートする場合もありますが、コードネームだと後々分かりにくくなってしまうこともあると思います。こんな方法で初期に名前変更はありではないでしょうか?
無線LANがぶちぶち切れる
Ubuntuで無線LANにつないでいるのだが、ぶちぶち切れる。
ので、おもいっきりアドホックな対応。
つないでいるルータに PING を打ちまくる。
$ ping -i 5 192.168.0.1
切れても、手動でネットワークを探さなくても復旧してくれた。
64 bytes from 192.168.0.1: icmp_seq=580 ttl=64 time=0.882 ms 64 bytes from 192.168.0.1: icmp_seq=581 ttl=64 time=2.71 ms From 192.168.0.2 icmp_seq=592 Destination Host Unreachable From 192.168.0.2 icmp_seq=593 Destination Host Unreachable 64 bytes from 192.168.0.1: icmp_seq=594 ttl=64 time=0.894 ms 64 bytes from 192.168.0.1: icmp_seq=595 ttl=64 time=0.884 ms
なんか、本質的な対応では無いが。。
こーいう場合に、どこを確認すればいいのだろうか?
ちなみに、同じ無線LANのルータにつないでいる、MacBookはまったく問題ないので、ぐぐって出てきたDHCPの期限とかそーいうのではないかと思う。
ECナビさんの社内勉強会に参加させてもらった
ECナビさんの社内で行っている勉強会に、誘われて参加してきました。社外からの参加者も少しいるみたいでした。
定期的に行っているようで、5分のLTを10人の方が話すという感じ。話される内容も幅が広く、ネタっぽい面白いものから、ハイレベルなちょっと理解がおよんでいるか自身のないようなことまであり、とても刺激になりました。
スタート時点からピザやビールが出てきて、雰囲気としてはPHP懇親会みたいな感じでしょうか(参加したことないけど)
途中、10分間の休憩の時に、飛び入りで何か話してと言われ、せっかくの機会だと何か話さなければーということに。。。
そこから何を話すか考えて、なにかプロジェクタに表示するものを考えてとかとか。。すいません、後半の発表が記憶から飛んでいます。。。
Emobileを持っていたので、適当に話す内容のWebページをFirefoxのタブに開いて、Ctrl+PageDownで送りながらという、なんとも無茶なLTになってしまい、しかも、直前に話されたお二人の発表がとても高度な内容で、トリで話す内容ではないよーと思いながら、どのくらいの時間話したかもわからずに終了。。
まぁ、お酒が入ってなかったら無理ですねw
何はともあれ、参加してよかったし面白かったです。お誘いくださった@ntakaakiさん、ありがとうございました。