2006年11月27日
バグ無しWILLCOM端末用CSID取得鯖
最近プログラミング関係のネタが多いのですが、今日は特別濃いです。
WILLCOMの基地局ID(CSID)を集めるのが一部で流行っています。
やり方は主に2種類あって、一つはPC,PDAなどと繋いで AT@K20 コマンドで取得します。W-ZERO3 などでは便利な方法ですが、京ぽんにPCを繋いで・・・となると大掛かりになってしまいます。
もう一つは京ぽん単体で取得するもの。好都合なことに、古い京ぽんではバグがあって、CSIDがダダ漏れなので取得しやすくなってます。
バグが無い今の端末でも、プロキシをゴニョゴニョすることでCSIDを取得出来ちゃいます。
詳しくは 電測スレなどを参照のこと。
さて、ボクは京ぽん2を使っていて、プロキシをゴニョゴニョしているんですが、はっきり言って面倒くさい。電測するときと、フツーにネットサーフィン(死語)するときとで設定を変えなきゃいけないのは面倒。どうにかならねーものか。
原理的にはプロキシを制限無くワールドワイドにアクセス可能なようにしてしまえば端末側で設定変更する手間が無くなる。だが、多くの電測erの方々のトラフィックを1台のプロキシでさばくのは無理があるだろう。そのためか、電測以外のサイトに接続しようとすると認証画面が出るようになっている。(おそらく、鯖を立てた本人だけは認証を通して楽しているものと思われる。)
なんか抜け道無いかなぁ? と、いろいろとググって仕組みを調べてじっくり考えてみた。
もしかして、DNSを騙して何とかなら無いかな?
キモは loc.clubh.ne.jp である。やることは3つ。
・loc.clubh.ne.jp のフリをするウソ鯖をでっち上げる。
・loc.clubh.ne.jp を引いた時だけ、ウソ鯖のIPを答えるDNS鯖を立てる。
・端末のDNSサーバの設定に、ウソDNS鯖を指定する。
幸いなことに、京ぽん2のダイヤルアップ設定の中にはDNSサーバを指定するところがある。
コレを普段のネットサーフィン(死語)に常用されると、DNS鯖に負荷が掛かるわけだが、プロキシに比べたら屁の河童(死語)だろう。
ホンモノの loc.clubh.ne.jp がやっていることは端末が送ってきたCSIDから緯度経度に変換することである。だが、ウソ鯖でそれをやるのは無理だ。知らないCSIDは 0.00.00.000 で返しちゃえ。ホンモノでもそうなる場合があるので、それが原因で端末側が暴走することは無い。たまたま知っているCSIDなら緯度経度を返してやろう。これで、自分の行動範囲(電測されている範囲)では地図サイトなども利用可能だ。
もちろん、そのついでにCSIDを横取りする。
CSID(HTTP_X_CS_INFO)の値の受け渡しをどうしようか悩んだが、http://location.request/dummy.cgi?my=〜 のパラメータに $HTTP_X_CS_INFO があったらそこを置き換えるようにしてみた。変ちくりんだけど、まあいいや。
そして完成したのがコチラ
当然、PCからでは正しく動作しないので注意。WILLCOMで試す場合は、DNSサーバに 61.197.193.30 を指定すること。
2006年11月21日
屋号についてもうチョット考えてみる
誰かに相談してみようと思い、とりあえず近くにいた妻に聞いてみたら、「テック」はクルマっぽいと言われた。よく分からんがそうゆうものなのかなぁ。しかし、参考にしないことにした。顧客ターゲットとしては、ずれているサンプルだった。
元同僚で今は某最大手外資DB会社に勤めるA氏に聞いたら、「フォーユー」が個人向けっぽいと言われた。確かにそうだ。受託などには向いていない名前だ。
もう一人、元同僚の個人事業主に聞いてみようと思っていたらコメントを書いてくれた。しかし、「るき」だけを取るのは「るきへな」自身の語源を考えると中途半端だ。彼女はいまだに「るきへな」の語源を知らないと思う。
最大のポイントは前回も書いたのだが「ありふれているようだけど、他に無い」である。
相手が名前を聞いた瞬間に、コンセプトをある程度理解してもらえるというのも重要である。「名前の由来は?(つーかなんでそんな名前なの??)」という感じだとマズイ。逆にそこから話を発展させる気概とか営業力を持っていれば別だが、ボクの場合はそこでシドロモドロして逆効果になりかねない。
屋号として斬新な名前をつけるということは、初対面のときに名前の由来とコンセプトについて質問してくれくれビームを発射していることに他ならない。逆に質問しないと失礼だぐらいに思う。コンセプトを語る場を提供してくれたことを感謝しつつ熱く返答しなければならない。るきへなというハンドル名について聞かれて、「ん? 内緒。てへっ」って言うのとはわけが違う。
50音順最適化についてこだわりは無い。これからの検索万能時代において、電話帳でボクを探す人がいるだろうか。ヤフーのディレクトリならいるかもしれないが、微々たる物だ。最適化するポイントではない。50音順最適化はSEOの世界で言うところのmeta keywords属性程度の重要度だろう。
イロイロ考えながら、何か参考にならないかと思い、前の会社で貰った名刺を眺めてみた。なんか知らんが400枚ぐらいある。開発要員なのになぜこんなに多くの人に会ったのだろう。不思議だ。そして半分ぐらい覚えていない・・・。
このなかでインパクトのある名刺は「株式会社人工生命研究所」である。事務の女の子も書類の中でこの社名を発見してビックリしていた。人工知能ならまあわかるが人工生命だとちょっと尖りすぎだ。悪の科学者っぽいイメージになっちゃうんですが。巨大な試験管をパリーンと割って未知の生命体が出てきて、科学者が不敵な笑みを浮かべるような。でも、確実に覚えてもらえる名前だとは思う。
他にインパクトのある名刺は無かった。
気になった名刺としては、ワールドソフトだろうか。大げさな名前の割にはワードのワードアートで素人が3秒で作ったようなロゴがインクジェットプリンタで印刷された名刺。こうなりたくないの代表作。
と、いろいろ考えてテックフォーユーに戻ってみる。
ありふれているようだけど、他に無い。(ググっただけであり、法務局で調べることまではしていないが)
個人向けっぽいイメージは、それもいいかなと思う。どんなに巨大なシステムでも、最終的に使うのは人間である。その人のために、ボクはプログラムを書くのだ。そしてそれは顧客満足から担当者の満足に帰結し、発注企業の満足 → 日本の発展 → 世界平和に繋がっていくのである。
冗談ではない。本気でそう思っている。
「オペレーターのコトを考えすぎて仕事が進まないんじゃないの?」と思われて発注してくれないのだとしたら、それはそれで狙い通りだ。そんな企業と仕事してもストレスが溜まって幸せになれないと思う。
それと、電脳による個の能力の増大は、パソコンにのめりこんだ学生時代から、ボクの中のテーマだった。
「組織から個へ」という現代社会の流れにも合致する。この流れが10年50年と続くかどうか分からないが、少なくともボクはそうあって欲しいと願い続けるだろう。たとえ歴史が繰り返して「組織の時代」に揺り戻ったとしても、豊かさというのは個人個人が豊かだと思うかどうかに掛かっていると思うので、個人に頑張って欲しいと言うメッセージは発信し続けたい。
人に意見を聴きつつ、最終的には全部無視してスイマセン。
次回は、営業性個人な屋号名義の銀行口座を口座開設するのに苦労してみる話になると思われます。
2006年11月18日
屋号を考えてみた
どうにも貧乏なので副業しちゃうぞ! とか思い、1日中屋号を考えていた。
考える暇あったら仕事しろよと思われるかもしれないが、仕事が無いから仕事を引っ張ってくる方策を考えているのである。
屋号ごときに時間かけすぎるのも良くないわけだが、ボクの場合は屋号を思いつかないので副業を始められないジレンマがあったような気がする。
屋号の条件は多い。
・ググッたらトップに出ること。
同名で有名なのが存在しちゃイカン。
オリジナリティーの確保の上でも重要
・.jp ドメインが取れるもの
超重要。スペルが簡単だと尚可。
・.com は取れないもの
.comが存在すると言うことは、「英語のセンス的にアリ」ということだと思う。
・領収書を書いてもらうときに音声認識されやすい言葉
昔、エヌとかディーとかが付く会社名を言うときは何故か通じにくかった。
また、音声認識されやすいということは、覚えてもらいやすいと言うことでもある。
・会社名っぽいこと
・一応、なんかしらのコンセプトがあるもの
まとめると、「ありふれているようだけど、他に無い」という相反しそうな条件を満たさなければならず、大変だ。
まず思いつくのがブリジストン系のアレだ。石橋→橋石→ブリッジストーン→ブリジストンみたいなヤツ。
ボクは石原なので「ストーンなんとか」「なんとかストーン」「ほげげストン」みたいな。
www.alc.co.jpで「原」を検索すると 原〜 archi- と出てくる。なので、archistone 。発音は適当に、アーキストーン。一応条件は満たす。コンセプトは薄いが。
でもね、やっぱね、、、他に思いつかないときのリザーブにしよう。
単に「るきへな」を採用する案もあるが、会社名っぽくないので却下。
「紺碧の碧」系でなんかいい英語ないかなぁと思ったが、その言葉自体はありふれているのでドメインが取れない。
今流行の言葉の方面も考えてみたが、30年ぐらい使える言葉にしたいのでダメだ。
未来志向で何か良いのないかな。「次の一歩」見たいな。next step? そりゃジョブスだ。next level? そりゃ仮面ライダーの主題歌だ。
コンピューター用語で好きな言葉ってことで、optimization とか recursive call とか n log(n)オーダーとか思ったが、会社名っぽくない。
n log(n)オーダー を略して nlno。それは発音しにくい。
i4u (I for you)みたいな略はどうかなと思った。
[a-z]4u をwhoisで調べると、j,l,o,p,q,r,u,z が取得可能。j4u.jpとか。そこから逆に省略前の単語を考えてみるが、いいのが思いつかない。使いたい単語の頭文字は取得済みだ。
なんとか2u (** to you)はどうだろう。これもなんかシックリ来るのが無い。
頭まで省略するのは無理そうなので、テクノロジー4uにしようか。コンセプトは「テクノロジーをあなたに」。取得ドメインは tech4u.jp。屋号としては「テックフォーユー」にするか、「テクノロジーフォーユー」にするかは悩み中。
「テクノロジーをあなたに」というコンセプトは今思いついたが、結構気に入った。「小難しい技術をボクが調理してあなた様に使えるようにしますよ」みたいな。あくまでも使う主体は「あなた」だ。
技術屋として10年先、50年先も使えそうな言葉でありそうな点もよい。
「テックフォーユー」あるいは「テクノロジーフォーユー」の語感も言いやすく、聞きやすいと思う。カタカナでありながら柔らか味があるのも良い。強いて言えば、社名にしては「文章的」な点が難点か。本来、名称に助詞(前置詞)を付けるのは良くない。
まあ、なんにしても tech4u.jp はもう取得しちゃった。
ちなみに「技術」を www.alc.co.jp で調べると art って単語も出てくる。採用すると「アートフォーユー」。アート引越しセンター的な50音順最適化においても良い名称であり、「技術」かつ「芸術」である art という単語も素晴しすぎる。素晴しすぎるのだがドメインが取れない。すげー残念。
2006年11月16日
でっかいJPEGを扱う
Google Maps API をいじっていると楽しくてしょうがないので コレを貼り付けて遊んでみようかと思った。
しかし、3800x3800ピクセルぐらいのデッカイ画像なので読込展開にスゲー時間がかかる。1枚当たり1.7秒ぐらい。Google Maps API のタイル単位に PHP で処理しようとすると、タイル生成要求ごとに読込展開してしまう。初回アクセス時に25枚ぐらい読み込まなきゃならんので、25×1.7秒という長大な時間が掛かってしまってダメダメだ。
Java Servlet なら、JPEG展開済み画像オブジェクトを管理するクラスを作ってメモリに常駐させてどうにかするのだが、PHPだとそーゆーのって無理だよな。(ボクが知らないだけかもしれないが)
Perl だと mod_perl を使えばなんとかなるかもしれないが、ちょっとトリッキーな感じがする。そこまでするならJavaれよ、みたいな。
しかし、Javaるには、環境のセットアップとかがあって面倒なので、PHPでなんとかしたい。
JPEGの指定した一部分だけを読込展開できれば、高速化できるんじゃないかと思った。今までのプログラムは、全体を展開してから、その一部分だけを採用しており、要らない部分まで展開処理をしていて無駄である。
JPEGは8x8ピクセルのブロックごとに圧縮して格納されているので、要らない部分の展開をサボっても一部分だけ取り出せるはずだ。
そして、さんざん調べた結果見つけたのが jpegtran コマンドの -crop オプション。Loss less で部分取り出し!
で、使ってみたら 0.8秒ぐらいになった。2倍の高速化!
でも、それでも遅いよなぁ。
やはり、Javaとかでオブジェクトプーリングを実装しないと実用にならん。
つーか、タイル画像を全部プレ変換してディスクに置いとくのが一番速い。
2006年11月14日
迷惑メールフィルタ
いよいよSPAMも1000通/日程度まで増えてタイヘンなことになってる。何しろ1000通/日と言ったら平均到着間隔が2分以下である。
独自ドメインで@の前を任意に設定可能なのだが、それをいいことにいろんなアドレスを作りまくってたらそれぞれのアドレスに同じ内容のスパムが届いてしまうようになってしまった。
メールソフトは Becky! を使っているので、SPAMフィルタは BkASPil を使っていた。しかしたまに通常のメールがSPAMとして判断されてしまう。
誤判定は「SPAMフォルダを確認する」という作業を発生させてしまう。
ベイシアンフィルタを切れば良いのだが、切るとSPAM判断が半分ぐらいになってしまい、フィルタの意味が薄れてしまう。
Webメールサービスに転送して、そこの迷惑メールフィルタを使うのが良いと言う話がある。
Gmail の迷惑メールフィルタが優秀だというウワサを聞いたので試してみた。しかし、これも BkASPilと同程度の判定漏れがある。1週間ぐらい試してみたが、誤判定が怖くてSPAMフォルダの確認が欠かせない。由緒正しい宣伝メールの1発目は確実にSPAM判定されてしまう予感。
GmailがダメならYahooメールだ。しかし、通常のメールも盛大にSPAMフォルダ行きである。転送だとそうなっちゃうのかな?
あまり期待せず、Hotmail も試してみた。しかしなかなか届かない。と思ったら、あきらかに迷惑メールと判断されるメールは消えてなくなるようだ。
そんでもって、先ほどから Hotmail に転送しまくっているのだが、多くのSPAMを無視しまくってくれる。正常メールは普通に受信されている。もう100通ぐらい正しく判定され、しかも迷惑メールフォルダに入るメール(疑わしいと判断されるメール)が皆無だ。
1週間ほど様子を見て、無視される誤判定が無ければ、全部 Hotmail で受信しようかと思う。
2006年11月13日
GTileLayer.isPng() の使い方
Google Maps API で GTileLayer を使おうとしたとき、実装に悩むのが isPng() である。悩まずに PNG ならtrueを返せば良いような気もするが、どうも値を見ているのか見てないのか良く分からない挙動をする。
イロイロ実験してみた結果、PNG の alpha blending(半透明)を使いたいときに ture を返すよう実装するものらしい。
なぜこのメソッドが存在するのか。
IE6は、PNGに対応しているが、アルファブレンディング付きのPNGにはちゃんと対応していない。重ねて表示したときに、半透明してくれない。だがコレには回避策があって、AlphaImageLoaderフィルタを使えば良いらしい。
ということでおそらく、isPng() は IE6 の時にAlphaImageLoaderを使うか使わないかを指定するものなのではないだろうか。
だがしかし、isPng() を true にすると、なんか挙動がおかしくなる。初回表示はいいのだが、ブラウザのキャッシュに乗っている画像(地図)を表示しようとすると画像が抜けてしまうことが頻発する。
回避策が分からず困っているんですが、どうにかならないですかね。
IE7では試していないが、AlphaImageLoaderを使わなくても正しく扱えるようになっているらしいので、この問題も起きないだろう。Windows Update でIE7が強制配布される半年後からはIE6を無視して半透明を使いたい気分。
ちなみに、透過GIFなら isPng() とか getOpacity() を実装しないでも(getTileUrl()のみ実装するだけで)フツーに重ね合わせて、透過部分は透過されて表示できる。あ、もちろんGIFだから半透明は出来ないケド。
IE7が普及するまでは、GTileLayerには透過GIFを使うのが良いような気がするのでした。
2006年11月10日
人大杉でスイマセン
Google Maps API をいじっていると楽しくてしょうがないので、WILLCOM CS MAPなんてのを作ってチマチマ改良していたのですが、今日になってサーバーが突然激重に。
いつかこの日が来てしまうのではないかと思っていたのだが。
とりあえず index.html を「人大杉」だけにして見たものの、Ajax なのでブラウザを閉じない限り見続けられちゃう。しょうがないので画像生成PHPとかも書き換えてなんとか収束。
アクセスログを調べてみると、WILLCOM系の有名ブログで紹介された模様。
調査はこんなコマンドで。
cut -d " " -f 11 /var/log/apache2/combined.log | grep -v rukihena | sort | uniq -c
手動で整形した結果。
598件 ANOTHER WILLCOM NEWS
589件 memn0ck.com
266件 なおっきのぶろぐ
20件 におんぱぱのにっき
他に、mixiの日記で40件と15件とか。
って、解析する暇あったら改善汁! とか怒られそうですが、アクセス数の規模を知ることは、チューニングの到達点を設定する上では大事なことです。
いままで同時ユーザー数はせいぜい2人とかだったので、結構厳しいです。機能を若干省いて再開しようと思います。
2006年11月 9日
バチルス菌でカビ退治
家電WATCHのバイオパック カビバスターを読んで欲しくなったんだけど、楽天で検索しても4(+1)個パックしかなかった。
バチルス菌ならなんでもいいと思うので、ケンコーコムで買い物するついでにバイオお風呂のカビきれいを買っといてくれ>妻
2006年11月 7日
ホンダフィットのドアミラーの根元の塗装が剥げる件
車検(5年目=2回目)から帰って来ました。
車検の前、ドアミラーの根元の塗装が剥げていた。良くある不具合らしい。車検のついでにクレーム修理してもらった。
交換前
交換後
フロントブレーキパッドは残り3mm。寿命残り約3000kmとか言って交換を勧められたが断った。話半分として6000kmは持つだろう。半年は持つ。キーキー鳴るようになったら交換するつもり。自分で交換するか、ディーラーに頼むか、カー用品店に頼むか、整備工場に頼むか、パッド交換OFFを開くかは悩み中。
あとは特に問題なし。
プラグとエアクリがスペック上では寿命が近いのだが、とりあえず放置。ブレーキパッドと同時期に交換する予定。
2006年11月 5日
Ajaxはサーバー負荷が軽い
Ajaxはサーバー負荷が軽いってことに、今さらながら気づいた。
例えばGoogle Mapsは、地図をマウスでグリグリ動かしてもサーバーへのリクエストは256x256pxの静的画像の取得のみであり、サーバーは動的なページ生成を行う必要が無い。
近くのラーメン屋とかを検索すれば、動的なクエリが発生するが、それでもサーバー側はテキトーなXMLを吐くだけで良く、レイアウト込みのHTMLを作る必要が無い。
Ajaxじゃない地図だと、クライアント側で表示させたい画像やHTMLを全てサーバー側で生成する必要がある。画像の切り貼り処理と、マーカーのプロット処理をし、さらにHTMLも作って、と大忙しだ。
Ajaxにおけるパフォーマンスチューニングのツボは、「クライアント側で出来ることは極力クライアントに任せる」というところにあるのかも。
クライアントサイドスクリプトが多少遅くても、ユーザー数が増えたところで速度に変わりはないが、サーバーサイドプログラムが遅いとユーザー数に比例して遅くなってしまう。
クライアント処理を増やすのは、究極の負荷分散だなと思った。
2006年11月 2日
車検予約
結局何もかも面倒になってディーラーに出すことにした。油脂交換を含めればディーラーも車検業者も殆ど値段が変わらず、そうなればオレオレ車検かディーラー車検かの二者択一な感じになる。
ユーザー車検を選ばなかった決め手は「即金が必要なこと」である。今は金欠なのでカードで支払いたい。支払いを先送りするために締日を過ぎた11月に入ってからカードを使うとゆーことを考えるぐらい金欠である。
さらに、ディーラーに見積もりをお願いしたときに、オイルエレメントを言うのを忘れていて、125,000円の中にはそれが入っていないことに気づいた。
エレメント交換の数千円すら惜しい。
で、今日、予約する気満々なオーラを放ちつつオイルエレメント入れてこの値段で! と言ったら、「工場長に相談フェーズ」を挟んだものの、あっさりOK。
日程は11月6日からの1泊。代車は予約が面倒なのでナシ。その代わり、自転車貸し出しがある。
125,000円の中には引き取り納車サービスも含まれていたらしい。自分で持ち込みすると、くじ引きして2万円OFFまたはティッシュ10箱。それイラネーから値引きしろと言った方が良かっただろうか。
あとは、125,000円で終わるかどうか。余計な故障が無ければよいが・・・。
WILLCOM CS 修理完了通知
WILLCOM CS 修理キタの続き。
サービスセンターから電話キタ。30日に直しましたよ、と。
ところで、以前、パイオニアの新聞広告で、カスタマーサポートセンターの「ありがとう率」がnn%だと自慢している広告があった。ネット上だとコレかな? 85%だった。
それを読んだとき、「ありがとうボタン」があるのかな? と思った。
客がありがとうと言ったらオペレーターが押すボタン。
ウソ申告するオペレーターがいるんじゃないかとか、それを回避するために実は音声認識で評価してるんじゃないかとか、いろいろ妄想が広がる。
もしかしてWILLCOMにもあるのかな? と思って、ありがとうと言ってみた。オペレーターは嬉しそうな声になった。