2003-02-01[n年前へ]
■放送ライブラリー
横浜に近い人ならNHKアーカイブスでなくて、放送ライブラリーに行ってみるのも良いかもね。職場の元同僚のお薦めは、ここで県立戦隊アオモレンジャーを聴くことだそうな。
そういえば、鹿児島には離島戦隊タネガシマンなんてのもいるのね。鹿児島って一体…。しかし、黄金(こがね)戦隊かぼっちゃマンとか平戸防衛戦隊ひらどしマンとか故郷戦隊ヒタシマンとか九州って一体…。これじゃぁ、島本和彦の世界だ…。
2003-10-09[n年前へ]
■「並列処理というより並行処理を容易に机上でできるように」
今日は某ライブラリを使って、某プログラムを並行処理プログラムに変えてみた。確かに簡単にSETI@HOME風なアプリケーションができあがるし、それを使ってジョブを流すのもお手軽簡単にできる。これも、阿部さん達のおかげでありがたいことだ。
なにが一番面白いって、プログラムをコンパイルして走らせ始めると周りのPCの画面が一斉に同じように変化し始めるところかも。使ってみて楽しい、これは一種のアートかも。
2004-02-02[n年前へ]
■Google Adsenceでコンテンツ診断
実は、ふと思い立って、少し前にGoogle AdSenseの申請をしてみたのです。そして、それだけではなくて、気の早い私はGoogle AdSenseシミュレーターを使って、もしGoogle AdSenseを使った場合にどんな広告がhirax.netに貼られるかどうかも調べてみたのです。
まずは、hirax.netのトップページに広告を貼ってみることにしましょう。なるほど、「写真ライブラリシステム」やら「フォトアルバムを作ろう」やら「ソフト製作・開発致します」やら画像や写真に関わるソフトやシステムの広告が貼られるようです。ヘッポコ・プログラムしかおいていないhirax.netですが、それでも個人の趣味から勝手に言わせてもらうと、そんなに的を外していない広告のように思えます。なかなか、良い感じですねぇ、Google Adsence。
それでは、次に「ミニスカートの幾何学」に広告を貼ってみることにしましょうか。おやおや、「女の子の下着もブリーフ」なんていう広告が貼られています。チラっと見えたミニスカートの内側にあるのがブリーフだったら…、普通の男であれば暴れたくなるかもしれません。ブリーフはやはり「男の子の下着」であるべきで、決して「女の子の下着」であってはいけない、と思うのです。あっ、もちろん「男の下着」はトランクスであるべきです。ブリーフをはくのは「男の子」だけ、なわけです。男はやっぱりトランクス、ですから。白いブリーフだなんて、最悪ですから。ハイ。ブリーフをはくのはやっぱり「男の子」ですよね。
いや、話がズレました。とにかく、女性のミニスカートの内側は「セクシーランジェリーなら」 …いいですねぇ。ブリーフではとんだガッカリ…ですけれど、「セクシーランジェリーなら」少しは良いかもしれません。セクシーランジェリーよりは清楚な下着の方が個人的には好きですけれど、ブリーフよりはマシかもしれません。とりあえず、なかなかちゃんとコンテンツに合った広告が貼られるわけですね。良い感じですねぇ、Google Adsence。
おやぁ?、と思ったら「成功者の脳内チューニング」とか「認知療法をEラーニングで」なんていう広告も「ミニスカートの幾何学」には貼られています。一体、ミニスカートの幾何学、ミニスカートの内側を覗く話からいったいどんな「脳内チューニング」や「認知療法」をしようというのでしょうか?そんな「チューニング」や「認知療法」は想像するだけで恐ろしいです。そんな訓練をした人達が決して「成功者」になるとは思えません。どんな世界の「成功者」なんでしょうか。恐るべしGoogle adsenceです。
それに加えて、「潜在能力を発揮」とか「ストレス解消」なんていうフレイズも書いてありますけれど、一体どんな潜在能力を発揮して、どんな風にストレスを解消しようっていうんでしょうか?ミニスカートの内側で。ミニスカートの幾何学で…どんなストレス、潜在能力、脳内チューニング…。どんな…?知りたいような、知りたくないような…。いや、やっぱり知りたい。教えて下さい > Google Adsenceさま。
さてさて、次は…と思ったらちょっとあまりに長くなりそうなので、全然技術ネタではないですけれど、「できるかな?」にでも書いてみることにしましょうか。それとも、あまりに技術ネタではないですから、この日記スペースで書き続けてみることにしましょうか。というわけで、とりあえず明日へ続く…、です。
2004-03-13[n年前へ]
■今日の疑問
Linuxでg++でアプリケーションを作るときに、起動されたアプリケーションが「そのアプリケーションが置いてある場所」を知るにはどんな関数を使えば良いものなのでしょう?ファイル出力などが必要ない(system()+whichを使ってパスをファイルに吐いて、というようなものでない)方法はどんなものなのでしょう?
一般的な方法はないと思います。Unixのファイルシステムでは、バイナリはハードリンクで複数のパスを持てますし、ファイル実体からそのファイルのパスを参照する方法はありません。(極端な話、アプリケーション起動後にそのバイナリファイルをunlinkしてしまえば、「パスを持たないけれど走っているアプリケーション」になります---「このプログラムは実行終了後自動的に消滅する」ってわけです)。Unix上で、お望みの動作を得るのによく見る方法は、 * argv0を見て、それが絶対パスならそれを採用 * argv0を見て、それが相対パスならgetcwd()して絶対パスに直す * そうでなければ、PATH環境変数をひとつづつ探すというものです。上記の手順はよく使われるので、ライブラリもいくつか存在すると思います。例えばglib (www.gtk.org) の g_find_program_in_path()等は使えると思います。ありがとうございます。川合さん。
2006-03-12[n年前へ]
■WEB 2.0時代のコンビニ・プリント活用法
「自分がいる場所」の便利地図を見やすく素早く作り出そう
最近の携帯電話はGPS測位機能が標準装備されているのが普通です。初めて行く場所で誰かと待ち合わせるときや、外出先で道に迷ったときなどは、携帯電話付属のソフトで地図を眺めて場所を確認したりすることがあります。それはそれで便利なのですが、携帯電話の小さな画面ではどうにも見づらくて、結局近くの本屋やコンビニに駆け込んで、地図を眺めたりします。ところが、それはそれで自分が今いる位置を見つけ出すのに苦労します。その時点で既に迷っていたりするわけで、地図を眺めてみても「ココはドコ?ワタシはダレ?」状態になってしまうのです。
そこで、今回は「街中に溢れているコンビニ(セブンイレブン)と自分が持っている携帯電話を使うことで、自分がいる場所がちゃんとわかる地図、しかも紙の大きく見やすい地図、さらに自分が探している場所などの便利な情報が入った地図を一瞬で作り出す」ということをしてみようと思います。
携帯電話ナビ機能は便利だけど…小さすぎる
私の携帯電話にはGPS測位機能とナビ機能がついています。右の写真は、携帯電話で自分がいる場所辺りの地図を眺めている例です。初めて行く場所で誰かと待ち合わせるときや、外出先で道に迷ったときなどは、こんな携帯電話地図を眺め場所を確認したりすることがあります。これはこれで便利なのですが、写真を見ればわかるように、こんな携帯電話の小さな画面ではどうにも見づらくて、結局近くの本屋やコンビニに駆け込んで、(大きな)地図を眺めたりするのです。やはり、携帯電話画面に映し出された小さな地図よりは、紙の大きな地図の方がずっとわかりやすいわけです。
ところが、紙の地図の場合、自分が今いる場所を見つけ出すのに苦労したりします。携帯電話なら、(GPS測位された)今現在の場所にアイコン表示がされていたりするわけですが、紙の地図ではそうはいきません。紙の地図はどこかの印刷所で印刷・製本されているわけで、私やあなたようにカスタマイズされた地図ではないのですから、それは当然の話です。その結果、地図は見やすいけれど、自分の場所がわからないという(現実にも地図上でも)「ココはドコ?ワタシはダレ?」状態になってしまうのです。地図を探している時点で既に道に迷っているわけですから、そうなりやすいのも当然の話です。それに、自分の位置がわかったところで、地図本はそんなに安くありませんからなかなか買いづらかったりします。必要なページはたった1ページだけなのに、一冊の本を買うのもなぁ…と思い始めて、地図を頭の中に記憶して本屋をそのまま出てしまう、なんていうことをします。これでは、単なる立ち読み野郎です。…しかも、えてして、その記憶の中の地図は全然あてにならず、またすぐに迷ったりするのです。
自分専用の地図をコンビニ・プリントで作り出す
- 「携帯電話なら自分の位置がわかるけれど、地図は小さく見にくい」
- 「本屋やコンビニに置いてある地図は大きく見やすいけれど、自分の位置がわからない」
- 「地図本の中で、自分にとって必要なのはたった1ページしかないが、1ページ単位の地図はなかなか売っていない」
「携帯電話・Googleローカル・ネットプリント」を組み合わす
実際にやることはとても簡単です。
- 「携帯電話」
- 「Googleローカル」
- 「(セブンイレブン・富士ゼロックスの)ネットプリント」
実際にそんなスクリプト(ダウンロード・説明などはさらに下にあります)などを作って、試してみたようすが下になります。まずは、携帯電話でフォームページにアクセスしボタンを押すと(1番左の画像)、測位が開始され(2番目の画像)、作業が完了した旨が表示されます(3枚目の画像は"周辺マンガ喫茶地図を作成"した例です)。そして、ネットプリントのサーバから「コンビニでプリントする際に必入力するプリント番号」がメールで送られてくる、というわけです。一番最初からここまで、必要な時間はせいぜい30秒といったところです。やることは、リンクを呼び出してボタンを一回押すだけ、です。
さて、ここまで来たら近くにあるセブンイレブンに入りましょう(もちろん、上の手順をコンビニの中で行ったって構いません)。最近であれば、都会の街中で周囲を眺めてみれば、セブンイレブンは必ず視界のどこかにあることが多いので、セブンイレブンを捜すのに苦労はしないはずです。そして、店舗中に設置された多機能プリンタの「ネットプリント」のボタンを押し、予約番号を入力し、そしてプリントボタンを押せば、下のような地図が出力されるのです。ただ、それだけ、です。その作業にかかる時間はせいぜい30秒~1分以内といったところでしょう。そんな風にお手軽に「自分の今いる場所を中心にした、自分を探している場所や電話番号・住所が記入され、色んな場所アイコンもちゃんと描かれている見やすく大きくカラフルな地図」がすぐ手にはいるのです。下の地図は、渋谷駅周辺でイタリア料理レストランを検索した結果の地図、です。大きな紙上に、自分にとって必要な情報・地図がとても見やすく出力されていることがわかると思います。
例えば、上に示した地図の場合は、A4カラーで出力したので1枚で80円ポッキリです。セブンイレブンで白黒プリントを選択すれば、(例えA3サイズでも)1枚30円ポッキリですし、A3カラーにしてもたったの120円なのです。手間も掛からず、値段も80円程度で最高にカスタマイズされた地図が手にはいる…なんて考えたら、携帯電話でパケット料金を気にしつつ小さな見にくい携帯画面を頼りに街をさまよう気にはもうなれません。
今回作成してみたのは携帯・Googleローカル・セブンイレブンを組み合わせた(マッシュアップした)地図出力ですが、今回のスクリプト(あるいは単に今回のアイデア)を色々改造してみれば、便利な活用法はたくさんありそうです。例えば、Googleローカルでなく、Googleを使って検索キーワードの高順位のものを組み合わせたページを出力する。あるいはニュース記事やRSSなどを組み合わせたページを作成し、コンビニで出力させて、「あなただけにパーソナライズされたニューズペーパー」を電車の中で読む、そんな面白い可能性が見えてくるはずです。素晴らしく楽しい、そしてあなたの生活を幸せにする「WEB 2.0時代のコンビニ・プリント活用法」が浮かび上がってくるのではないでしょうか?今回の記事がそんなキッカケになったら良いな、と空想してみたりします。
「スクリプト」の説明
携帯電話で位置を調べ、探したい情報と位置情報をもとにGoogle ローカルからパーソナライズ・カスタマイズされた地図を作り出し、セブンイレブンと富士ゼロックスのネットプリントを使い地図データをネットプリントのサーバーに格納させる、という
- 「携帯電話」
- 「Googleローカル」
- 「(セブンイレブン・富士ゼロックスの)ネットプリント」
if ( param() ) { my $pass = 'hoge'; # ネットプリントのパスワード my $user = 'hoge'; # ネットプリントのユーザ名 my $mail_adress = 'hoge@hoge'; #予約番号通知先 # 緯度経度取得 my $lat = param('lat'); my $lon = param('lon'); $lat =~ s/\+//; $lon =~ s/\+//; my $str = param('cond'); # 検索条件 $str = jcode( UrlDecode( $str ) )->euc; $str = jcode( $str )->utf8; $str = UrlEncode( $str );各サブルーチン中を順を追って説明すると、printHTML1()中で、
# GoogleローカルのアクセスURL my $uri = '"http://local.google.co.jp/local?f=l&hl=en&sll=' .$lat.','.$lon.'&q=' . $str . '&near=' . '' . '"'; # 地図画像作成 my $file = makeFile( $uri, 1600, 1600 );
# ネットプリントに地図画像送信 postFileToNetprint( $user, $pass, $mail_adress, $file ); # 完了画面表示 printHTML2( $lat, $lon, jcode( UrlDecode( $str ) )->euc );} else { # 初期画面表示 printHTML1();}
form action="device:gpsone" method="GET"というようなフォームを使って、auのGPS携帯から位置情報を取得します(それ以外のキャリアであれば、汎用のライブラリを使うのが簡単でしょう)。そして、メインルーチンGoogleローカルのアクセスURLなどを作成し、postFileToNetprint()で地図画像を作成します。今回はWindowsサーバでテストしたので、url2bmp.exeをsystem()で呼びJPEG画像を作成しています(他のOSであれば、適当なWEBサムネイル画像作成アプリを使えば良いでしょう)。そして、作成した画像をpostFileToNetprint()でネットプリントのサーバに送信するわけです。なお、postFileToNetprint()は下記のようになります。
#========ネットプリントにファイル登録==================sub postFileToNetprint { my ( $user, $pass, $mail_adress, $file ) = @_; my $net_print_url = 'https://www.printing.ne.jp/cgi-bin/mn.cgi'; $net_print_url = "$net_print_url?i=$user&p=$pass"; my $mech = WWW::Mechanize->new(); # ネットプリントへ my $response = $mech->get( $net_print_url ); # ファイル登録ページへ $mech->follow_link( url_regex => qr/&c=0&m=1/i ) # ファイル送信フォーム; $mech->submit_form( form_name => 'uploadform', fields => { file1 => $file, color => '1', # プリント時にカラー/白黒 選択 number => '1', # 数字のみ番号に設定 secretcodesw =>'0',# 暗証番号は設定しない secretcode => '', ailsw => '1', # 登録結果を通知する mailaddr => $mail_adress, }, ); $mech->submit_form( form_name => 'm1form', # サイズ指定 fields => { papersize => 'A4',}, # A4, A3, B5, B4 ); return 1;}(Perl素人の私が作成したので、ヘンな箇所も色々ありそうですが)内容自体はとても簡単であることがわかると思います。このスクリプトをもとに、色々改造して「素晴らしく楽しい、そして人の生活を幸せにするWEB 2.0時代のコンビニ・プリント活用法」が生まれるキッカケになれば良いな、と思ったりします。