Category ‘制作日記’

iPhone用サイト制作について

main_safari20080609.jpgiPhoneで私を含め世間は色めきだっているが、WEBクリエーターとしてはiPhoneのサイト制作も気になるところ、
asahi.comなど既に対応してるところもあるし、iMTなるものを入れたらmovabletypeの管理画面もiPhone仕様になるらしい。
今のところ分かったのは
ユーザーエージェント
iPhoneは
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3
iPod touchは
Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A100a Safari/419.3
(ん?iPod touchってブラウザが付いてたんですね。)
但し、iPhone 3Gでは無いので微妙に数値は変わると思う。
表示可能範囲は
縦長表示時 横320px × 縦356px
横長表示時 横480px × 縦208px(Telomere参照)
metaタグの「view-port」で表示領域や拡縮等の表示設定ができる
javascriptのwindow.onorientationchangeで方向が分かるらしい。サンプル
iUI.jsというのを使えばWEBサイトをiPhoneのOS(?)の様な見た目になるらしい。
Yahoo!画像検索でも使われてるとの事。
以前タッチパネルPC(今はタブレットPC)使ってたんで分かるんだけど普通のWEBサイトは指でクリックしづらいので、こういった作り込みは必須になるかと思う。
iPhoneにはアプリ制作のSDKが用意されていておそらくそれで作ったであろうゲームが買える様になっている。だが私のメモリ容量はいっぱいいっぱいでこれ以上覚える事は避けたい、Flashが対応してくれたら色々出来そうな気もするけど、Flash対応は未だ噂の域を超えてない。
Flash liteでいいから使えたらな~

携帯の利用者数が異常に多い?

WS000000.pngMyReleaseのアナライザをチェックするといつもdocomoが6割を占める圧倒的な数になる、しかも505iという古い機種が多い。「世の中そんなに携帯長いこと使ってる人がいるんやな~」とか「MyReleseって携帯ユーザー多いな~」とか思ってたんだけど、生ログを調べてみると犯人はGooglebotだった。
DoCoMo/1.0/N505i/c20/TB/W20H10 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)
これを除外すると履歴ファイルは半分以下になった。
ちなみにYahooは携帯ごとに分けてるらしい。
DoCoMo/2.0 SH902i (compatible; Y!J-SRD/1.0; http://help.yahoo.co.jp/help/jp/search/indexing/indexing-27.html)
KDDI-CA33 UP.Browser/6.2.0.10.4 (compatible; Y!J-SRD/1.0; http://help.yahoo.co.jp/help/jp/search/indexing/indexing-27.html)
Vodafone/1.0/V705SH (compatible; Y!J-SRD/1.0; http://help.yahoo.co.jp/help/jp/search/indexing/indexing-27.html)
更に明らかに検索エンジンと思われるモノを外し、
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)
Mozilla/5.0 (compatible; Yahoo! DE Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
調査したところ下馬評通りIEが一番人気だった。

GDを使って激安な価格表示その2

前回の価格表示を画像に埋め込む事にした。
前に作った価格.comとconeco.netとベストゲートとベストプライスの比較サイトを一括でチェックするやつに追加する感じで入力していくとブログに貼るソースデータを作れる様にしたかったので、それを更にハッティンさせて画像をトリミングしてその中に価格表示を埋め込む事にした。
今回の肝は「jsCropperUI」というやつだ。
demo
半年以上前から存在は知ってたんだけど「いつかやろう」とほったらかしていた。
どうも、AJAXとかオープンソース系は乗り気になれないんだけど。こんなの自分では作れないのでトリミング座標はcropperに任せて作ったんだけどずっとjavascriptエラーがでてる。
深刻なエラーではないのか普通に動作はするんだけど気になる。
エラーの場所を見るとデバッグみたいな英語が書いてあったので「いらないか」と思って消したら、エラーがでなくなった。
http://uda2.com/blog/price/
まだ、細かいトコ詰めてないんで動作が怪しいけど、これのおかげてそんなに安くないのについつい載せてしまった。
あと残る問題は見に来る人が少ない事だけだ・・・・

GDを使って激安な価格表示

どうも心躍る!期間限定激安高校「大特価情報部」の価格表示があんまり激安感が無かったので激安な表示にすることにした。
参考にしたのは激安で有名なドン・キホーテのチラシだ。
なんか、いい感じで数字が重なって激安感が出てる。
チラシの数字部分とカンマと円をトレースして、赤黄の部分と黒白(背景が白なんで白はイマのところ意味無い)の部分の各2枚のpngを作った。
赤白
黒白
↑こんな感じの画像。
そんで、PHPのGDってのを使って
白いベースを作って
黒白の画像を左からつめつめで乗せていって
次に赤黄の画像を左からつめつめで乗せていって
最後に点を打っている。
画像があればその画像を表示してなければ作る感じなんで、なんかの間違いで大人気ブログになっても大丈夫なはず。
http://uda2.com/price/priceimage/19800.png
赤いところの数字をいろいろ変えてみて。
(0~999999円まで対応)
これ作るのに半日かかってしまった、一日100PVも超えられないページには豪華すぎる価格表示!
どうっすか?

PHP5になりたい

b5scripts065.jpgPHP4で開発していて「これって簡単に出来る関数ないかな?」と思ってネットを検索するとPHP5のみ対応みたいな記事をよく見るようになってきた。
今回作ってるスクリプトは心躍る!期間限定激安高校「大特価情報部」を更新する際に「本当に安いのか」を調べる為、複数の価格比較サイトを行き来して調査してたんだけど結構面倒なんで、複数の価格比較サイトの情報を一括して検索できないかと考えて作ってたんだけどget_headersっていうページヘッダの情報を得る関数を使おうと思ったらPHP5専用だった。
個人用なんでスクリプトはどこに置いても問題ないんで、DNRH-001その3でPHP4をインストールしてしまったのをPHP5に置き換えようとしてみたが他のソフトとのかねあいで弾かれてしまった。
PHP4とPHP5を安全に共存させる方法ってのを見て共存の道を探してみたがどうもハードルが高かそうなので諦めた。
今借りてるサーバーでPHPが使えないか調べたところココ(XREA)にはCGI版が入ってるらしい
PHPをCGIとして動かす方法についてにそのやり方が載っていた。拡張子をcgiに変更する必要も無く「#!/usr/local/bin/php」を入れる必要も無いとすごく楽。
やってみたらすんなり動いた。
http://uda2.com/blog/price/
CGI版は遅いと聞いていたけど元々重いのであんまり差は分からなかった。
XREAはたま~にページが表示できませんになったりするけど開発者には優しいな。

PHPの日本語処理2

気になる仕事50職の年収公開SPを観て自分との年収の差に愕然としながら、PHPを弄ってるとあることに気づいた。
mbereg_replace
ん?「mb_ereg_replace」で無くて?
もしかしたら誤記してしまってたのか?
と一瞬青くなったがよく考えてみると何の問題もなくずっと動いてる。
調べてみると「mbereg_replace」というのもあるそうだ。PHPを始めた頃よく参考にしてたSAK 図書館でmbereg_replaceを使ってたんでそのままこの記述にしてたんだろう。
それでも気になるので更に調べてみるとれぶろぐに「mb_ereg 系の関数は PHP 4.2.0 以降でないと使えないことが判明。」とあった。
前回、「i18n_」系の関数の為に処理を追加したのに「mbereg_」系でも処理を追加しなくてはならないのか~?
あ、よく考えるとオレってオープンソースなの作った事無いから、その都度サーバーに合わせて修正すればいいんやった。
ま、とりあえず「mb_ereg_replace」に統一しときますか。

いろんな空白

PHPに関わらず大抵の言語で$a==""ってすると未定義のものもNULLのモノもTRUEを返す。
そこで調べてみた。
if ($a=="") print "true";
$aが""の場合だけでなく未定義、NULL、0、"0"、FALSE、array() なども"true"を返す。
下記も同様の動きをする。
if (!$a) print "true";
if (empty($a)) print "true";

楽天アフェリエイト大活用 Select items

また、サイトを作ってしまった。
MIXIとかあわせると現在9サイトを運営してる。(内3サイトは長いこと放置状態)
世話のかからない様に作ってはいるけどさすがにそろそろ整理しないと・・・
とかいいつつ現時点で構想中のサイトが数個あったりする。
今回作った「Select items」はみんなに紹介したい(あわよくばアフェリエイイトでポイントゲット)けど載せる場所がない。とかコンセプトが違って今のブログには載せられない時に使えるサイトを作ってみました。(紹介した人に楽天ポイントが入るように作ったつもりですがまだ実験してないので楽天に弾かれるかもしれません)

(さらに…)

文字列の検索

文字列の検索する際に使う関数の速度を比較してみた。
preg_match : 0.156914ms
→ preg_match (“/”.$pattern.”/”, $subject )
mbereg : 0.198855ms
→ mbereg ($pattern, $subject )
strpos : 0.093295667ms
→ strpos($subject ,$pattern) !== false
mb_strpos : 0.226389333ms
→ mb_strpos($subject , $pattern) !== false
(3回の平均)
当然だけどstrposが一番、
ただmb_strposが遅いのが以外だった。
mberegとmb_strposを比較してもmb_strposの方が遅い、
ただ、今回のテストでmberegはコンパイルエラーが出た。
再読込すると直ったので原因はよく分からない。
数十回に一回ぐらい同じファイルなのに検索結果が違うときがある。
これも再読込すると直る。
負荷をかけすぎなのかもしれないがロリポは何か挙動がおかしい気がする。
(XREAは偶に表示できなくなるけど・・・)
本格的に運用するならもう少し高価なサーバーの方がいいのかもしれない。