カテゴリ: プログラミング, LL,web

2010/08/17

パーマリンク 17:52:52, 著者: Charlie

Ajax - Goodbye, JSONP. Hello, Access-Control-Allow-Origin @ 404 Blog Not Found

IE6,7, Fx3.0なんかを切り捨てられるサイトなら、Access-Control-Allow-Originを使った方がスマートというお話。

2009/06/27

パーマリンク 22:32:55, 著者: Charlie

客からお預りしたものだから手を付けちゃダメってこと?

Webサイトの住所入力フォームがいつまでたっても自動正規化機能を持たないで「全角で入力してください」とほざく理由を先日推測してみたが、違う理由があるみたい。

/.-Jの「パスワードのマスキングは廃止すべき」というトピックで、次のようなコメントが。

ユーザが入力したものは一言一句変えてはならないというポリシーのところは少なくないはずです。
こちらとしては気を利かせたつもりでも、勝手に変換するという行為は一種の改竄ととらえられてしまうからです。

そうなんだ……。確認画面で、「住所は全角表記で登録します」って書いても駄目なものなんでしょーかね?

2009/06/17

パーマリンク 23:56:56, 著者: Charlie

PHPではa==b, b==cでもc!=aなことがある

PHPの比較の素晴らしさ加減は正常 @ はてな匿名ダイアリー
  • PHPの「==」は数値比較なので、文字列は数値に変換されてから比較される。
  • PHPの「文字列→数値」の暗黙の変換は、文字列が0xで始まると、intval($str, 16)、つまり16進数として変換してくれる。
  • intval($str, 16)は、文字列の途中で変換できなくても文句を言わず、部分文字列を数値に変換する。なので、"0xax" == 10。
  • ただし、0で始まる文字列を8進数として変換してはくれない。

1と2は仕様と言われれば個人的には受け入れられる。
3あたりからチト厳しい。せめてlintで警告が欲しい。「===」と書いたつもりが「==」だった、というケアレスミス対策に。
4は対称性が崩れる分、覚える事が増えて面倒だ。暗黙の型変換がこういう仕様だというなら、それを明示的にやる関数 / 演算子があった方がよいと思う(既にあるのなら、教えてくださいPHPのえろい人)。

ちなみに、追加で確認してみたら

"hoge" == true かつ "hoge" == 0 かつ true != 0

だったので、「==」は数値比較演算子というよりも、自動的に型変換する演算子(かつ、CやJavaとは型変換の規則が異なる)として覚えた方が正確なのではないか。

追記

http://anond.hatelabo.jp/20090617164618のコード、

if (strcmp("0x0A", "10") == 0) {

でないと、チュッされちゃうのでは……。 strcmpは等しい時に0を返すので。

2009/06/10

パーマリンク 02:06:11, 著者: Charlie

Adobe AIR (Linux) のHTMLLoaderが遅い (2) - 犯人はあなたです!

Adobe AIRのHTMLLoaderが遅い問題の主原因は、 ubuntuのFirefoxが公式ビルドの2〜3倍遅い問題 (英語) と同じ、pangoっぽいです。
ぬぬぅ、出来ることと言えば、ICCでpangoをコンパイルするとか? それでも倍には速くならないし……。

2009/06/06

パーマリンク 19:24:14, 著者: Charlie

Adobe AIR (Linux) のHTMLLoaderが遅い - 駄目だこいつ…早くなんとかしないと

Adobeが提案しているAIRに含まれているHTMLLoaderは、Googleの高速ブラウザChromeでも使われているWebKitというエンジンを使っています。 また、JavaScriptのベンチマークもそこそこ速いという結果が出ており、プログラマの良い箱庭になりそうな期待を抱かせます。

ところが実際にこれで簡易ブラウザを作ってみると、なんだかもっさりとしているのです。特にLinuxで動かした時、ページのレンダリングがなかなか完了しません。 Firefox 2で10秒くらいかかるページは、AIRだと1分近くCPU負荷100%の状態が続きます。

一体何が足を引っ張っているのか……疑問に思ったので調べてみると、何とも冗長な処理が見付かりました。

続きを読む »

2009/06/04

パーマリンク 00:31:42, 著者: Charlie

海外のサイトで、「zip code (必須)」の入力欄に7桁入力できなくて困ることない?

アイトラッキングから検証した、使いやすいフォームの10のポイント @ コリス

電話や郵便番号の入力は、ユーザーを悩ませます。(略)
あらゆるフォーマットの入力を受け付けるように設定してください。

「あらゆる入力を受け付ける」は難しいとしても、未だに「住所の番地は全角で入力してください」とかほざくシステムが多いのは以下のような打算がサービス提供者に働くからだと思う。

  • 入力の許容度を上げるのは、エラーにしてしまうよりコストがかかる。
  • 住所の入力等はサービスの主要機能ではない。たいてい住所や電話番号を入力するのは、買い物の精算中とか会員登録なんかの「ここまで来たのに今さらやめられるか」というタイミングなので、多少面倒でも続ける人がほとんど。
  • コストをかけても売上げに良い影響はない(だろう) → それなら別に凝らなくていいや。

表現の許容度が高いオープンソースの入力用ライブラリが定石として普及すればいいんでしょうが、日本語・日本の制度向けのは寡聞にして知らないですね。
「01/02/03」って日付の解釈はいろいろできるとか(平成元年のつもりかもしれない)いうのは情報処理・言語処理の分野で長年研究されているようですが(分野名としては情報抽出; Information Extraction)。形態素解析のライブラリはあるのにね。

関連記事

2009/03/22

パーマリンク 10:58:24, 著者: Charlie

よく使われる正規表現はCPANのモジュールを使いましょうというお話

かなり使えるPerl正規表現のまとめ @ TokuLog 改めB日記

URI, メールアドレス, 電話番号など、よく使われるパターンのバリデータは自分で書かないでRegexp::Commonなんかのモジュールを使いましょう、というお話。
Number::Phoneモジュールは日本の電話番号パターンなど国・地域固有のものが用意されているからよい。

紹介記事中にはなかったが、「昭和五十二年」を西暦に変換できるDate::Japanese::Eraなんてのもある。

日本の郵便番号用モジュールは紹介されていなかった。CPANで探してみると幾つか存在する。古いデータを扱う関係で5桁のものを処理するケースもあると思うのだが、5桁に対応していることを明示しているモジュールは見付からなかった。

年号にしても「五十二」ではなく「五二」や「一○」はokか、ということも気になる。ドキュメントを読んでも分からないと、結局コードを解析する=自分の考えた正規表現と照合することになる点がもったいない。

2009/01/07

パーマリンク 01:12:36, 著者: Charlie

PT1用のFriioRecで保存ファイル名にタイムスタンプを付ける

(Friio用の)FriioRecでは、-fオプションにファイル名を書くと「ファイル名 (YYYYMMDD-hhmm).ts」みたいなファイル名になる。だから週一の番組をスケジュール録画していっても上書きされない。

一方でPT1用のFriioRecでは-fオプションに指定したままのファイル名で保存される。これでは困ってしまうのでタイムスタンプを付けたファイル名を生成するようにした。

set t=%TIME: =0%
FriioRec.exe -r 120 -c 12 -f ntv-%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%-%t:~0,2%%t:~3,2%.ts -d 40
↑のようにすると、「ntv-20090101-1859.ts」のようなファイル名になる。
%DATE%は「2009/01/01」のような書式で現在の日付を返すので、cmd.exeの環境変数編集機能を使ってスラッシュを除いている。%TIME%は「18:59:04.12」のような書式で現在の時刻を返すのだが、Windowsの(日本語環境の)初期設定では時刻が1桁のときは「 0:12:34.56」のように先頭が空白になってしまうので、空白を0に置換しているのが1行目(Windowsのコンパネ「地域と言語のオプション」で時刻の書式を変更するという選択肢もなくはない)。

2008/12/04

パーマリンク 00:43:02, 著者: Charlie

餅は餅屋に頼むべきか、自分で作ってみてもよいものか

Charlieは、昔から物事を為すのに必要なのはマンパワー(あるいはド根性)と資金力と知力の組合せだと思ってる(あと時間を入れることも)。 見返り無しに手伝ってくれる友達もいない、金もかけない、勉強もしない、と3つ揃ってしまっては成功する訳がないではないかと。
さっき読んだのは、最初の二つがないので一人努力して勉強してうまくやりました、という話。

ヒトもカネもなくともシステム内製はできる @ ITpro
  • 「その人がいなくなったらメンテできないでしょう。そのためのSIですよ」とは言われるものの、実際にはSI会社だって当初の担当がどっか他に行っちゃってドキュメントだけ残ってる状態でメンテするのは大変。これだけ人材が流動的になってる御時世ではそうなる確率は高まっているのでは。
  • 結局、ずっと使いたいなら内製でも外注でも最初からメンテまで含めて計画しないとダメになるのは同じってことで。
  • うちのあれも新しいスタッフが入った時に、おもしろがって手を付けてくれるんだけど、みんな飽きるのが早いのね。と言うか、面白そうなことをやっているのに惹かれて入社したという割に、自分からアイディアを出してくれたことはあまりなかったような……。
  • でも今夏入社のスタッフ達は自分が面白いと感じているものを鋭意制作中のようなので、こうご期待。あ、話がずれてるわ。

2008/09/25

1 2 3 >>

3月 2024
 << <   > >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

リンク

最近の記事

アーカイブ

検索

XMLフィード

powered by b2evolution