月別アーカイブ: 2009年4月

どこでもWi-FiとGPS-CS3Kで現在位置確認

iPhoneっていいよな、GPS内蔵で。付属のマップアプリmaps20080609(Googleマップ)で簡単に現在位置の確認ができる。ボクのiPod touchも自作の[どこでもWi-Fiセット]でどこでもネット接続できるようになったから地図を見ることはできるようになって検索窓に住所を入力すればだいたいの現在地の地図を表示することはできる。でも外出中に地図を確認したくなる状況って「あれっここどこだ?」 っていうときだから、だいたいの場所がわかるくらいじゃあんまり意味がない。GPSみたいに現在位置をかなりピンポイントで表示できないと・・・・GPS・・・・持ってるじゃん「GPS-CS3」!

GPSロガー「GPS-CS3」と「iPod touch」をつかった現在位置確認方法。GPS-CS3は液晶画面に現在の緯度経度を表示することができます。「35°37’52.23″N 139°44’37.38″E」のようにカナーリ細かい位置まで表示してくれるので、iPod touchのマップアプリにこの情報を入力すればかなり高い精度で現在位置を表示できます。iPod touchのマップアプリはつまるところGoogleマップなので、検索窓にGoogleマップの作法で緯度経度を入力すればいい。書式は「N35 37 52.23 E139 44 37.38」というようにスペース区切り(秒は小数点を忘れずに)入力する。

リアルタイムに現在位置を地図表示するなんてことは無理だけど「ありゃ、ここどこだ?」ってときにどこでもWi-Fiセットの電源を入れてiPod touchにGPS-CS3の緯度経度情報を入力すれば現在位置をかなり正確に把握することができる。それほど荷物にならないからちょっとしたハイキングやサイクリングのお供に持ち歩けば安心。

PHPでPDFファイルのプロパティを取得する(1)

TCPDFというPDF生成ライブラリが便利。比較的簡単にPDFファイルが作れる。ところでサーバに生成したPDFファイルを貯め込んである場合、その一覧表をつくる方法を考えた。最初に思いついたのが、TCPDFでPDFを生成するたびにMySQLに情報をいれて、これを使って一覧表のページをつくること。でも何かのはずみでディレクトリ内のファイルを削除したりリネームしたりしてしまうことがあるかもしれない。そうなると実態とMySQL内の情報がめちゃくちゃになってしまう。一番簡単なのはファイル名を使って一覧表を作ってしまうことだというのはわかる。でもファイル名だと中身がわかりにくい。さてどうしようか。

PDFファイルには「タイトル」「サブタイトル」「著者」「作成日」「更新日」「キーワード」といった情報を記録しておくことができる。

PDFファイルにはタイトルや著者などの情報を記録できる
PDFファイルにはタイトルや著者などの情報を記録できる

TCPDFにもPDFを生成するときにもこれらの情報を付加する関数がある。ということはここにいろいろ書いておいて、phpでこれを読み込んで一覧表をつくることができればディレクトリに実在するPDFファイルを対象にしつつわかりやすい一覧表が簡単につくれる、ハズ。

ハズ、なんだけど、どうすりゃいいんだ? ネットでいろいろ検索するとPDF生成ライブラリとして有名なPDFlibのオプション機能としてPDFプロパティの取得ができる機能があることがわかった。オプション単体でも存在しているんだけど、どっちにしても有料。うーんお金とれる話なら使ってもいいけど、趣味だからなあ。高すぎる。

で、phpユーザーのメーリングリストで質問したら、ZendFrameworkのZEND_Pdfという機能でOKとの回答。そうなのか。フ、フレームワークか。フレームワークって、知識としては知ってるけど未経験。CakePHPあたりの勉強してみようかなぁなんて思ってたくらいだからなあ。できるってことはわかったけど、使えるようになるまでにえらい時間かかりそう。でもいずれフレームワークも使えるようになったときのために覚えておこう。

メーリングリストでもうひとつ興味深い回答が。PDFファイルに記録されている情報なんだから直接取り出しちゃえば?という至極単純な回答。そりゃそうだ。あははは。

とりあえずバイナリエディタ「0xED」を使ってサイズの小さなPDFファイルを開いてみる。だらだらだら〜っと眺めていると、あった、あった。「/Title」っていう部分、ほかにも /Author、/Subject、/Keyword、/Creatorなどなど。それぞれ直後にある( )内がプロパティ値になっているらしい。( )内をいろんなエンコーディングで試してみたらUTF-16でバッチリ変換できる。

PDF形式のファイルをバイナリエディタでひらくと
PDF形式のファイルをバイナリエディタでひらくと

ここまでわかったらあと一歩。phpでPDFファイルをバイナリで開いて、「/Title (」ってのを探して、終わりの「)」を見つける。その間にあるバイナリデータはUTF-16なんだからこれをUTF-8に変換すればブラウザで表示できる。

ポケモン自作デッキケース

ベロをケース内に差し込むことで箱を閉じることができる。
ベロをケース内に差し込むことで箱を閉じることができる。

お菓子の空き箱をチョキチョキ、ペタペタして作った自作のデッキケース
お菓子の空き箱をチョキチョキ、ペタペタして作った自作のデッキケース

ポケモンカードゲームは思ったより面白くて子供と時々対戦している。で、ゲームに必要なカードを入れておくケースをテキトーなボール紙で作った話を以前書いたんだけど、知り合いから展開図を教えてほしいという話をもらった。

展開図といわれてもボール紙の上にカードを置いてテキトーにチョキチョキとペタペタで作っただけなので・・・・。

テキトーとはいえ、ちゃんと寸法測って切ってるので数字をちゃんと書き出せば展開図になるから作りました、展開図。ダウンロードして使って下さい。デッキケースの展開図をダウンロードする(PDF形式)。厚手の紙に印刷したらそのままチョキチョキ、ペタペタできて楽かも。おすすめは0円で済むお菓子の空き箱流用ですが。この展開図は30枚のハーフデッキ用です。ダブルデッキやカードフィルムを使っている場合は12mmの幅部分を適当に広げればOK。