OSXを使い始めてからずーっと気になっていた事が今日やっと解決した。Dashboardを表示すると、Tokyoとだけ表示される不思議なWidgetがあったわけなんだけど、これ、かなり前になんなんだろう?って思っていろいろいじっていたらAccuWeatherというウェブページに飛ばされた事があった。それでこれが天気を表示するWidgetだってわかったのだけど、設定の仕方がよく分からないので放っておいたわけなんだが。で、ここ2日雨が続いていて天気が気になった事もあり、このWidgetをまたいじってた。で、いろいろいじった結果、Zipcodeという欄にはデフォルトでTokyoと入っているのだけど、これがいけなかったみたい。ここに、ASI|JP|JA041|TOKYO|といれるといい見たい。ってなんでこれに気がついたかというと、AccuWeatherのサイトを徘徊して東京の天気予報のページに辿りついたところで、URLを見て気がついた。これって普通わからないよね〜?ってウェブで検索したら設定の仕方なんてすぐ出てきそうだけど…Widgetの名前すらわからん
さみしいダッシュボードだな…もっといろいろ盛り込むか
知らなかった。BSD Kernelで動いているので当たり前って言えば当たり前なんだけど。Mac OS X: キーボードショートカットより
巷で大ブレーク中のあの日記サイトについて、分析されている方がいました…てかあの文章をよく全部読んだなぁと感心。
ぬおー。これあってんのか?シラネ。とりあえずレポってみたりして。symfony フォ━━ヾ(*ΦωΦ)ノ━━ウッ!
これ場当たり的パッチ。使うなら、
$ cd SYMFONY_INSTALL_DIR/i18n/って感じか?USE AT YOUR OWN WILL
$ sudo patch < ~/DateFormat.php.patch
これ、symfonyのtextareaなどの編集に追加できる立地リッチクライアント。なんだけど、translation用の日本語ファイルが滅茶苦茶…翻訳されていない部分もあれば、翻訳がワヤな部分もあれば、リテラルの中に'がエスケープされずに入っていたりしてその言葉に突入するとJavaScriptエラーでたり…ってなわけで言語ファイルをfixしたという話。でもSafariは正式サポートしていないのがちょっと嫌だけど。FirefoxやIEでは問題なく動いている。しかし思うように整形できない。ワードぐらい難しいな。
iChatでGoogle Talkに接続してみた。How do I configure iChat for Google Talk?。Google Talkで俺と話しして〜って人はお気軽にご登録を
ついにstable行き。ってI18N(culture)まわりってまだバグあると思うんだけど…俺の昨日のPOSTはいまのところ無視だし。ま、気持ち的に安心だな。いまのプロジェクトのかっとオーバー前にstable行きになったってことは。betaで商用アプリってどうなよ。ま、某サイトもmojavi-3.0.0-develでリリースしたけど。
Paris Hilton最高だな
GMailのJavascriptのコードの中にそれらしき機能と記述があるという話。このシステムのコードネームはCaribouというらしく、どうやら今のようなメールクライアントとしての機能に加えて、ドメインを所持するユーザにとってはGMailを使ってのメールサーバ運用もできるようになるみたい。
このフロントかなり来ているね…個人的にはなんか無駄に光モノが多くて安っぽく見えてしまうのだが。でも実物見ると絶対違うんだろうな。確かにナビゲーターの内装って、エスカレードとかと比べると全然劣っているような。ハマーよりかはマシだと思うけど。今期からフルサイズも投入!全長5.6m!
permalinkが無いのはちょっと嫌<車と関係無い
NikeのSBラインの新しいシューズみたい。上のリンクから、Englishを選んで、画面下部にZoom TREへのリンクがあるのでそこからいける。キャッチする部分がE-CUEみたいなゴム素材で耐久性よさそう。レースも隠れているのでオーリーで切れる事もなさそう。あとはソールのやわらかさとタンの太さとかかとのホールド性が気になる。でもこういうハイテクっぽいデザインが嫌。やっぱりNike SBはDunkかP-Rodがいい。
それにしてもこのZoom TREの配色はNikeって感じがするなぁ。Jordanとリンクしちゃうだけなんだけど。
ていうかFlashなサイトもPermalink用意しろよ…
askeet!でいいじゃん。オープンソースをうまく活用して無駄な開発費を使わずに経営することとかネット参入する企業はもっと勉強したほうがいいと思うのだけど。こういったシステム単体で収益得られないわけだから、開発費とか回収できる見込み低い。システム屋が言うのもなんだけど、無駄なもの作っている(ていうか無駄に開発費使っている)会社多すぎ。無駄なものは頼まれても開発者のモチベーションが低いからよろしくない。かといって、お得意様に"そりゃね〜よ"ってアリエナイザー(きっこぱくり)なんで、発注する側がもっと勉強してくださいって話。
FormHelperのラジオボタン関数、radiobutton_tag
function radiobutton_tag($name, $value, $checked = false, $options = array())
{
if (($reqvalue = _get_request_value($name)) !== null)
{
$checked = $reqvalue;
}
$html_options = array_merge(array('type' => 'radio', 'name' => $name, 'value'
=> $value), _convert_options($options));
if ($checked) $html_options['checked'] = 'checked';
return tag('input', $html_options);
}
これじゃ複数の同じname="chonmage"のラジオボタンがあった場合(ま、それがごく一般的であろう)どれかname="chonmage"が選択されたらすべてのname="chonmage"にchecked属性が付くという罠。$reqvalueを$valueと比較してくれよ!!一応Forumでは場当たり的な対応をしている人もいるわけなんだけど。
symfonyでちょっと困っているのはコアなライブラリを自分で修正した場合はローカルなライブラリでオーバーライドできず、コアなライブラリに直接パッチをあてないといけない。ここで問題になるのが、コアなライブラリがpearで管理されていること。本体がアップデートされると自前パッチが上書きされてしまう…mojaviみたいにコアなライブラリも自分の開発するアプリケーション(プロジェクト)ディレクトリ配下におさまるようにしてくれればいいのに。あぁ〜面倒クセ
パッチ作った。ほれ、使え。あ、symfony的にはstrval通して比較したほうがいいんかな。って事でstrval通すようにパッチ修正
昨日patchをサーバにアップして、気になっていたのがファイルのContent-Typeがなぜか"text/html"になってしまっている。で、よく調べると、なぜかpatchファイルがphp scriptとして処理されている。そこで、httpd.confを見直してみたのだけど、特にphpに関する設定ミスもなければ、特別こういった現象が起きそうな設定個所も見当たらない。で、ファイル名を見てきになったのが、patchファイルのファイル名が"FormHelper.php.v2.patch"となっている。ファイル名の途中に.phpがある。これがまさか…と思い、"test.patch"なるファイルをアップしてみたら、普通に"text/plain"として吐き出される…謎は深まるばかり。で、httpd.confにあるphpファイルと認識される唯一の設定個所はAddHandler。つまりは以下のような設定がある
AddHandler php5-script .php
ApacheのドキュメントにもAddHandlerは指定のextension(拡張子)で終わるファイルに対して処理されると書いてある。しかし現状は終わるではなく、含むという判定がされている気がする。そんなわけで、httpd.confを以下のように変更してみた
<Files ~ "?.php$">
AddHandler php5-script .php
</Files>
すると、なんとなおった!!!アリエナイザー!!!これでpatchが見易くなった。
※Fedora Core 4 httpd-2.0.54-10.2
OSXにはsayという面白いコマンドがある。どういったコマンドかというと、テキストを読み上げてくれるコマンド。残念ながら日本語はサポートされていない。emacsなどから、バッファをsayに渡す方法なども紹介されている(Macに英文を読ませる)。
$ say "suck my dick"
atコマンドと組み合わせると面白い。
$ at -c lunch.command -m 12:00
しかもこのコマンド、リモートからログインして端末上から打っても有効。つまり、同僚などのmacマシンにリモートログインして、更に無理矢理日本語を喋らせてみたりすろと面白い
$ ssh neighbors-mac
neighbors-mac$ say "o ma ay, she go tow she te ru ka"
う〜ん、読み上げてくれる女性の声といい、このカタコトっぷりがたまらなくいいですね!
ユーザが異なるとできないかも知れないけど、自分の端末には外からログインしてリモートでMacに喋らさせる事ができた…家からVPNで会社のMacにログインして、まだ会社に残っているやつらにモノ申すとか、かなりウザイこともできる
最近思うのが、郵便番号を[ ]-[ ]ってわけちゃう仕様って不要。必要性がわからない。1行だったほうがずっと入力もしやすい。入力された文字列の中から全角->半角変換した上で、数値文字列だけ抜き出して検証すればデータの正当性についても問題はない。日付入力についても同じく。1-31まで表示されているselectボックスとか、使い勝手悪すぎでしょう。入力ボックスに遷移して、"2006/2/17"とかうった方がよっぽど早い。"2005-02-17"とか"02/17/05"とか国によって入力方法は変わるかもしれないが、入力枠の横に記入例を示してあげればいいだけの話。データの検証についても郵便番号と同じでそれほど難しくもないし複雑でもない。
最近はfirefoxとかのweb developerやgreasemonkey使えば、formの値なんてユーザがかなり自由に変更できるわけであって、セキュリティ上受け取る側で値の正当性について厳しくチェックすることは必須になっている。以前はselectボックスで値を固定していればそれ以外の値が送られてくることは無いって仮定でフォームを作っていたこともあっただろうけど、今はその考えは通用しない。
とういうわけで、郵便番号は1欄で入力、日付は自由入力推奨でお願いします。それから、SJIS、Shift JIS、EUC、ISO-2022-JPは捨ての方向で、UTF-8に統一しましょう。メールの8bit送信も、この時代問題ないでしょ?Gmailがやってたし…たまに受取り側がくさっててUTF-8メールを表示できないクライアントとかあるけど。そういうのほんと勘弁。
上の話にともなって、おれがやっているデータの処理方法を紹介。まず、データを必要に応じて半角・全角・かな・ひらがな処理するクラスを用意。サンプルはこんな感じになる。これを、確認アクションや確定アクションで呼び出すためにはvalidate/ディレクトリにこのようなファイルを置く。参考までに。
もっとこうするとイケテルよって方法あったら教えて♪
Ruby on Railsの開発でも知られている37 signalsの新しいサイト。どうやらGroup ChatするならIMよりweb chatの方が効率的という主旨で立ち上げられたサイトのよう。とりあえずアカウントをゲット。
うお〜、早くもバージョンアップしている…かなり重度なバグフィックスも含まれているようなので、アップデートはお早めに。web3.0へのロードマップもでているみたいです
結構いるね〜、スケーター。mixiにも普通にプロスケーターがわんさかいるけど。同じようなもんか。みんなSN好き。この人19936 friendsって… mixiじゃ考えられんな。mixiではスケーボードコミュニティの人口でさえ4000人弱なのに、アメリカのトップスケーターのフレンドリスト(この数だとファンリストとも言えるだろう)は2万弱…アメリカのスケーター達が潤っている理由もわかるね。規模がちがーう。myspace.comのtraffic rankingは11位!(ちなみに、世界でね、世界で)。mixiは46位。
webのフォームの情報をあらかじめ設定した内容にセットしてくれるスクリプト。これ単体では使えないので、これを雛形として、デバッグが必要なフォームに応じて値を変更すると良い。以前に作ったものをちょっと整えてみたので公開。まだまだ公開できる代物じゃねーけど。_fill()という関数の中身を自分の環境に合わせて修正する必要あり。フォームに合わせて projecta_debug.user.js, projectb_debug.user.jsとか作る必要があり、ちょっと面倒くさい。
いま考えているのは、webから適当なデータをとってきて、フォームの内容を勝手にデバッグ用に設定するもの。text,textareaボックスだったらデータを適当にとってきてサイズに合わせてtruncateしてセット、radio、select、checkの類いはランダムにセット。そうしたほうがデバッグという目的にはより効果的になる。現状のスクリプトだとデータが固定されているのでフォームのValidationの強度などのチェックには向いていない。あくまでも、確認画面や投稿処理の確認を行いたいのにいちいちデータを毎度入力するのが面倒くさいっていう時のため。つまり表側でデータ検証するためにデータをセットするというより、入力データがデータベースに入っているかとか、画面の遷移は正しいかとか、そういう時のための自動入力ね…
automate form input with greasemonkey. set default values to a form with ease.
泣ける。たぶん、30分ぐらいはまった!helper/ObjectHelper.phpのobject_input_hidden_tag関数。タグを展開するためにオブジェクトとメソッドを指定できるのだけど、ここに罠が。object_input_hidden_tagに引数で渡したオブジェクトメソッド名と同じフォーム名(symfonyの命名規則にしたがって変換。getを取り除いて、camelCasingを_に置換、すべてlowercase化)がある場合はフォーム名のリクエスト値に上書きされる(helper/FormHelper.php内のinput_tag関数参照)。これは完全にバグ。つまりはobject_input_hidden_tagの第一引数で指定したオブジェクトは全く無視…ありえないでしょ。レポるか…面倒くせ〜。フォーラムに投稿するのが面倒くせ〜。○奈ばりにバグれてますってsymfonyに電話したい(内輪ネタ)
一応入ってみた。mailing listってノイズが多いので基本的に嫌いなんだけど、過去ログ(devel,users)みてみたらトラフィックが少なさうなのでdevelとusers両方に入ってみた。さて今回のバグはどっちで報告するべきなんだろうか…
てゆーかメーリングリストのwelcomeメールがフランス語なんすけど。そりゃねぇ〜よ
んなわけでレポりましたよ!MLとかって、さらされるから嫌なんだよね〜。つーかレス早っ!!結局ほかの機能の副作用だとかって言われましたけど…おれ的には絶対ソースコード読まないとユーザの意図する動きではないのでバグだと思うんですけど…てか、できればSymfony Bookのsymfony 101辺りには書いていてほしい。特に日本みたいに必ずといっていいほど確認画面がある場合なんかは、絶対この問題にみなハマルと思うんだけど。おれだけか?!ふぁっく
最近わけあってヤフオクでNike Dunk SBの価格調査を行っていたら、なんだかものすごい激安価格でやり取りされていました。限定モノやレアモノが1円スタートで、人気のあるものでも5,000円ぐらいで落札されているではないか。これは振り込み詐欺、もしくは偽物だろうと思い、偽物だったらどんなものなのか知りたくなって試しに入札してみました。いくつか見た中で評価が付いているのとYahooペイメントが使えるのを選択。いくつも出品されていたので、何個か入札して、どれか3,000円ぐらいで落札できればいいかと思っていたらHawaiiが3,000円弱で落札できてしまった…送料1,500円を入れても4000円強。で、そのNikeが本日届きました。中国直送で怪しげ満点。で、包装を取り除いてみると、箱は普通。本物とうりふたつ。よくできているな〜と関心。本題の靴を次に確認。ん?すげーリアル!!てか、おれの目では本物との見分けが付かない…
ネットでちょっと検索してみたところ、Nike SBの偽物はズームエアがペラペラという事が書いてあったのだけど、今回届いたHawaiiのソールを取り出して、自分のはいているSB(もちろん正規代理店で購入)で比べてみたが、目立つ差は無い。
これが偽物だとしたら、とても精巧にできている。こんなに安く売れるということは、Nikeもそもそもの原価がとても安い?それとも見分けの付かないゴム素材や革の品質が違うのだろうか。これが本物だとしたら、盗品であることは間違い無い…
実は今回このような事を調べた理由は、アメリカに住んでいる友だちのスケーターを通して安くNike SBを売って小遣い稼ぎでもしようと思ったのだけど、現状のヤフオクだと無理そうだな…こっちは本物を売ろうとしているのに。
以前にこんなことを書きましたが、
ここで問題になるのが、コアなライブラリがpearで管理されていること。本体がアップデートされると自前パッチが上書きされてしまう…mojaviみたいにコアなライブラリも自分の開発するアプリケーション(プロジェクト)ディレクトリ配下におさまるようにしてくれればいいのに。
てゆうか、普通にlib/symfonyに入れればそちらが優先して使われます。apps/モジュール名/config/config.phpを読んで気が付きましたよ
// symfony directories
if (is_readable(SF_ROOT_DIR.'/lib/symfony/symfony.php'))
{
// symlink exists
$sf_symfony_lib_dir = SF_ROOT_DIR.'/lib/symfony';
$sf_symfony_data_dir = SF_ROOT_DIR.'/data/symfony';
$sf_version = '@DEV@';
てか知っているなら教えてくれてもよくない?
昨日家に帰って本物のDunk SBと比べてみたら、縫い目がぜんぜん違う!偽者は縫い目が雑。終端部分で縫い直してごつくなってたり、直線部分も縫っている間隔が統一されていなかったり。あとは靴紐通す穴が完全に貫通していなかったり。
やっぱり偽はこのあたりの繊細な仕事が必要なところに適当さがでてくるね〜。ブランド物とかもそうなんだろうけど。
あと、S君が言ってたみたいに履き心地が微妙。歩くときに、踏みあげるときに足が曲がるとき、なんか両サイドに違和感がある。フィット感とやわらかさに欠ける
もうかなりいろんなところでニュースでていますが、Harold Hunterが2月17日に亡くなりました。これでまた一人スケーター。本当に残念です。R.I.P.
symfonyでの日付入力Howo(UTF-8限定)。viewにて下記のようにrichオプションをtrueにします。
<?php echo form_error('start_date') ?>
<?php echo object_input_date_tag($user,
'getStartDate',
array (
'rich' => true,
'withtime' => true,
'culture' => 'ja',
)) ?>
んでもって、なぜかこれではカレンダーが日本語化されません!というのも、当然で、helper/FormHelper.phpにcalendar-enがハードコーディングされています。若干ではあるが対応しようとした試みがsubstr($cultur辺りでうかがえるw
$js = array(
'/sf/js/calendar/calendar',
// '/sf/js/calendar/lang/calendar-'.substr($culture, 0, 2),
'/sf/js/calendar/lang/calendar-en',
'/sf/js/calendar/calendar-setup',
);
そこでこのパッチを適用FormHelper.php.jp-calendar.patch。jpにハードコーディングします。これでOKかとおもいきや、data/symfony/web/sf/js/calendar/lang/calendar-jp.jsがSJISになっとる。しかも、なぜかUTF-8に保存しなおしても動かねー!ギザウザス。そんなわけで、calendar-en.jsを元に自分で翻訳。このファイル(calendar-jp.js)も置き換えます。で、後は日付フィールドを確認するとこんな感じになるはず

説明がstart_dateなのにスクリーンショットはあきらかにend_dateっていう…ま、それぐらい見逃してください。くれぐれも、SAY NO TO S(-|hift_|)JIS
ギザありえナス。以前に問題としてとりあげたバグ、密かに違うバグも潜んでいた。それは、value="0"なradioボタンの値があった場合。$checked = $reqvalueで$checkedに"0"がセットされ、ラジオボタンがチェックされて、その値として、0という文字列が送られてきているにも関わらず、if ($checked) という条件を満たさないためchecked="checked"にならない!つまり選択した状態にしてくれない。symfonyのラジオボタンはvalue="0"なラジオボタンを選択した状態にしてくれない。はぁ?おれなんか間違っている?この時間なので空回りしている可能性大だが。
で、対処方法はというと、データベース定義に0という値を持たさない。ま、この方がphp的にも幸せだろう。きっとphpでプログラミングしている人はみんな過去に一度は"0"という文字列の扱いを間違いバグを作ったことがあるはず。
ちなみに使い方はこんな感じ
d => 06/01/03
D => 2006年1月3日
p => 2006/01/03
P => 2006年1月3日火曜日
t => 4:05
T => 4:05:06:JST
q => 4:05:06
Q => 4時05分06秒JST
f => 2006年1月3日 4:05
F => 2006年1月3日 4:05:06:JST
g => 06/01/03 4:05
G => 06/01/03 4:05:06:JST
M => 1月 03
m => 1月 03
s => 2006-01-03T04:05:06
u => 2006-01-03 04:05:06 JST
U => 火曜日 03 1月 2006 04:05:06
Y => 2006 1月
y => 2006 1月
Pはどちらかというと2006年1月3日(火)の方が一般的じゃない?
てゆーかね、現状ではlib/symfony/helper/FormHelper.phpでinput_date_tagの中で日付のフォーマットが$value = $dateFormat->format($value, 'd')ってフォーマットがハードコーディングされています。なわけで、ここはpに変更!
思ったんだけど〜、日付入力のリッチクライアントのcalendar.jsはロケールにcalendar-jp.jsっての使ってて、symfony本体のCultureはja(data/symfony/i18n/ja.dat)使っているっていうのはどうなのかな〜。コード中に見たsubstr($culture, 0, 2)これとか使えねーじゃん
更新しました。存在しないselectを指定した場合に動作がそこで終わってしまうというバグを修正。
以前に、greasemonkeyのスクリプトを書く際には日本語はunicode escapeしないといけないことが分かったのだが、これをemacsから行えるように小ハックした。といっても30分ぐらいはまった…
;; regionをnative2asciiで変換
(setq native2ascii-command-format "native2ascii")
(setq ascii2native-command-format "native2ascii -reverse")
(defun native2ascii (start end)
(interactive "r")
(shell-command-on-region start end native2ascii-command-format nil t))
(defun ascii2native (start end)
(interactive "r")
(shell-command-on-region start end ascii2native-command-format nil t))
はまったのは、他の設定でそもそものウィンドウをutf-8にしておかないと正しく変換されないという罠。native2asciiに渡されているのがeuc-japanな文字列だったぽくて期待している値が得られなかった。いろいろeval-regionしてたらどの設定が聞いたのか全く分からないポ。とりあえず最終的には、このような環境設定をすれば動くのはたしか
(require 'un-define)
(set-language-info
"Japanese"
'coding-priority (cons 'utf-8
(get-language-info "Japanese" 'coding-priority)))
(set-language-environment "Japanese")
これでまたEclipseから一歩遠ざかったな…
てかshell-command-on-regionめちゃ使える!!
dot.emacs sample on using `shell-command-on-region' to convert unicode region to unicode escaped characters with the java native2ascii command. can be useful for writing javascript (greasemonkey) script or java properties file.
_ flash free gam [akr5 I rolled her over onto her back i felt her gently on..]
_ bittorrent mov [akr5 I awkwardly moved into position as i could run no mo..]
_ vintage erotic [akr5 In a fight to the next morning when nikki fritz walk..]
_ vintage erotic [akr5 They both wore. Leave my body protecting nikkis from..]
_ xenical hgh phentermine quit smoking [phentermine tablet. phentermine cheap. phentermine for sal..]
最近symfonyの愚痴しか言ってないような。でもギザ使えるフレームワークだお。wnn8の導入によりやっとOSのロケールをUTF-8に移行することができたのだけど、そこで困っていたのがファイルの処理。以前の環境EUC-JPで作ったファイル名が、当然ながらUTF環境では化け化けになってしまう。そこで、便利なツールを見つけた convmv。指定の場所にあるファイルをすべて指定エンコーディングから別の指定エンコードへ変換してくれるコマンド。perlで書かれているところもスクリプト言語erとしてはありがたい。
$ sudo yum install convmv
Googleがブラウザ上(ajax)の操作でwebページを作成できるサービスを始めてる〜。流行るのかな?いま触ろうとしたらエラーメッセージがでて作れなかったけど。
直したって言ってたものがバグってた。selectボックスのチェックのループで括弧閉じを一つ忘れていた。最悪。お礼にcheckboxもセットできる関数を付け足してバージョンアップ。たぶん今度は動くよ。javascript consoleに生成されたscriptがGM_Logによって吐き出されるので、怪しいところあったらご一報ください。
_ 通りすがり [もうご存知かも知れませんが、お天気ウィジェットの設定は、「tokyo」と打ち直すと「Tokyo, Japan(Tok..]