日本語の単語をつぶやく Twitter Bot を作った

J-CAT (jcat_nihongo) on Twitter
Japanese word from Japanese Learner's Dictionary. To check pronunciation, click the tweets' URL.

留学生など、日本語を勉強している人向けに、日本語の単語をつぶやく Twitter Bot を作った、というかだいぶ前に作って運用しています。

開発に携わっている、インターネット日本語辞書サイト (Japanese Learner's Dictionary) の語彙をランダムに選んで、1 日 6 回、つぶやきます。対応する日本語能力試験の級も表示します。

特徴として、Timeline の URL から例文の発音を確認できます。例文の音声は、Web音声配信システム:vds の自動音声を使っています。

PHP + cron で運用していますが、プログラミングができなくても作れるTwitter botの作り方 を参考にしたので、1 時間少々で作成できました。

便利なので、日本語を学んでいる方に、ぜひ、教えてあげてください。
それでは。

統計ソフト R の内容に偏向したサーチエンジン seekR を作った

seekR - 統計ソフトウェア R のための検索エンジン
統計ソフトウェア R のための検索エンジン。R 関係の内容のページに偏った検索結果を表示します。

seekr.png

作ったとは言っても、Google Custom Search で出てきたコードを貼り付けただけなので、HTML を除けばコードは 1 行どころか 1 文字も書いていません

前もって知っている関数やパッケージの使い方は、help(関数名) とか、?関数名 で検索できるけど、初めて使う機能は関数の名称そもそも機能が存在するのどうかも調べようがなく、長い間困っていました。

さらに残念なことに、R は名前が 1 文字 「R」 なので SEO 能力が非常に弱く、もはや検索という試合の開始前にして既に負けているようなものです。例えば、「PHP 配列 結合」「JavaScript 配列 結合」では取得したい情報のページが表示されますが、「R 配列 結合」では取得したい情報とは全く関係のないページばかりが表示されます。

そこで、seekR は、Google Custom Search を使用して主に国内の R に詳しいサイト、はてなダイアリーから、統計・ソフトウェア関係のキーワードでバイアスをかけて検索します。

具体的には、下記のようなサイトを対象にしています。他にも良いサイトがあればコメントやメールなどで教えてください。
RjpWiki - RjpWiki
R-Tips
R による統計処理
The R Project for Statistical Computing
R - 統計解析とグラフィックスの環境
JIN'S PAGE
間瀬茂ウェッブページ
はてなダイアリー 全般

ぜひ使ってみてください。
seekR - 統計ソフトウェア R のための検索エンジン
統計ソフトウェア R のための検索エンジン。R 関係の内容のページに偏った検索結果を表示します。

* 余談ですが、検索結果の上と右に表示されている広告は、Google Adsense と同様、報酬が私に支払われます。(押してくれという意味ではありません)

Twitter をはじめた

数日前から Twitter という、ミニブログみたいなものを始めました。

だいぶ前から、Tsukuba.R やはてな界隈で頻繁に Twitter の話題になっててに気になっていたのですが、環境が変わったついでに始めました。

携帯からはモバツイッター、デスクトップでは PeraPeraPrv で動かしてます。PeraPeraPrv は Java なので、Windows でも Linux でも Mac でも同じように動かせるから良いですね。

まだ Folower が少なくて寂しいので、ぜひ Follower になってください。

Takekatsu HIRAMURA (hiratake55) on Twitter

Windows Live Messenger でアカウントの本名が取り出せる

既出かもしれないけど、気づいたのでアップ。
Windows Live Messenger (MSN メッセンジャー) で承認済のユーザ同士では、登録したときに使った名前を簡単に取り出すことができる。

mslive1.png
名前を右クリックして「表示」→「プロフィール」を押す。

mslive2.png
すると、Internet Explorer が起動して、名前が書かれてあるページにジャンプする。

mslive4.png
お互いに承認されていないユーザでは、「名前なし (英語版だと No Name)」になって見れない。

おそらく、Windows Live のアカウント情報と Messenger で表示される名前は別々に管理されているからだと思う。
問題はそれだけでなく、Internet Explorer で開いたページには認証がかかっておらず、ログインしていなくとも自由に見れること。「site:profile.live.com」と検索したら、本名らしきものがたくさん出てきた。怖い怖い。

前にも、Google カレンダーや Google Apps で本名が取り出せる、って書いたら少しだけ話題になったけど、この類のものって仕様が悪いとか脆弱性とか以前に、文化とか価値観とかの違いなんじゃないかな、と思う。

(以下は余談)
ちなみに、日本に居ながらにして、「***@hotmail.com」や「***@live.com」のアカウントを作るには、言語の設定を英語にすればいいだけ。HTTP の Accept-Languages ヘッダが書き換わるため。

mslive5.png
Internet Explorer だと、インターネットオプション→全般→言語の設定を英語に変えるだけ。日本語より、英語のほうが上になるようにすればよい。

Gmail のアカウントから氏名を取り出す方法

ある種の「脆弱性」か:Gmailアドレスから氏名を明らかに、スパムへ悪用の恐れも - ITmedia エンタープライズ
SecuriTeam Blogs » Finding the name behind the gmail address

ITmedia のニュース (元ネタはセキュリティポータル、SecuriTeam Blog) で、Google カレンダーの共有機能を悪用して Gmail のアドレスや Google アカウントから、氏名を取り出すことができる、と記事になっている。

実は、少し前に「埋め込み」機能を使って、もっと簡単に抜き出す方法があることに気付いてた。
これだったら、Google カレンダーにログインしていなくても、自分のカレンダーを晒す必要もなく氏名を取り出せる。

以下のような URL にアクセスするだけで登録に使用した氏名が取り出せる。

http://www.google.com/calendar/embed?src=(Gmailのアカウント)%40gmail.com
例: http://www.google.com/calendar/embed?src=hiratake55%40gmail.com

以下のような URL にアクセスすると、Google Apps や、Google カレンダーに登録してある外部のメールアドレスでも氏名を取り出すことができる。(IE 6 などの場合は、@ を %40 に置き換える必要がある)

http://www.google.com/calendar/embed?src=(登録してあるメールアドレス)
http://www.google.com/calendar/embed?src=thira%40plavox.info

そういえば、大学ぐるみで Google Apps を使ってた大学あったような?、と思って、 最新情報!Gmailの導入大学 PART3 - これでも大学職員のブログ -情報センター勤務中- あたりを参考にして、適当なアドレスを入れたら学生の個人名が出てきてびっくりした。あまりにも危険なので通報しておいた。

「Japanese Learner's Dictionary」 iGoogle ガジェットを作った

Japanese Learner's Dictionary
"Japanese Learner's Dictionary" iGoogle ガジェット

うちの大学の某研究室では留学生など日本語学習者向けの日本語辞書を開発して、Web 上で自由に無料で使用できるようになっている。

項目も充実している上に、ナレッジクリエーション社VDS API を使って例文がしゃべるようになっている。まあ、しゃべり版の初音ミクのようなもの。たまに漢字とか読み間違えるけど、個人的にはすごく気に入っている。

でも、せっかく作ったのにあまり利用されていなくてもったいないから iGoogle のガジェットを作っておいた。
宅配便の配達状況 iGoogle ガジェット」を少し変更しただけなので、すぐ作り終わった。
1 つのフォームに複数のボタンを配置する仕様は UI 的な意味で非常に理に適っていると思う。

Japanese Learner's Dictionary

iGoogle ページに "Japanese Learner's Dictionary" を追加します
Add to Google

Yahoo!アドパートナーはコンテンツマッチ広告か?

アドパートナー - Yahoo!ウェブオーナーセンター
アドパートナーは、ご登録いただいたサイトに広告を配信し、掲載された広告がサイト訪問者に閲覧されることで報酬を獲得できるサービスです。

ヤフー版 AdSense? が開始されたらしいので、どんなものか試してみた。
利用登録について」を見ると審査に2週間ほどかかるようなのだが、実際には2日で済んだ。

12/25 12:00頃 登録・バナー貼り付け
12/26 14:00頃 ヤフーより。貼り付け確認。テスト完了。

ご登録いただいたサイトへのテスト配信が完了いたしましたので
お知らせいたします。
これより、ご登録いただいたサイトの審査を開始いたします。
審査は、2週間程度かかりますのでご了承ください。

12/27 10:00頃 ヤフーより。合格通知。

お客様のサイトを審査させていただいた結果、対象範囲が
審査基準を満たしていましたので合格と判定いたしました。


今のところ、160×314 の1種類しか選べない。広告はまだ数種類で社会貢献広告を除いて全てイメージ広告の模様。
経験上、縦長の広告 (スカイスクレイパー) は左より右に配置したほうがクリック率が高いので、このページではちょうどよい。

2日テストして気になったのは、Google AdSense と違って「コンテンツマッチ広告ではないかも」しれないという点。
つまり、ページの内容とは無関係に一方的に広告を出力しているのでは、ということ。
アドパートナーのサイトを見た限りでは「コンテンツマッチ」などといった内容は見当たらなかった。

ちなみに、不合格通知をもらった人もいるらしく、審査は厳しいのかもしれない。
[yahoo]Yahoo!のアドパートナーの審査落ちたー - カサヒラボ

まだ広告も少なく時間も経っていないので AdSense とは比較できないが、とりあえず貼っておく。

「宅配便の配達状況 API」を公開しました

宅配便の配達状況 API
「宅配便の配達状況 iGoogleガジェット」をAPIとして使えるように改造したものです。
各社の配達状況ページにジャンプします。また、ジャンプせずURLを表示させることも可能です。

宅配便の配達状況 iGoogleガジェット」が意外に好評なので、「宅配便の配達状況 API」を公開しました。何に使うかは、おまかせします。

ガジェットでIE6.0+特定のテーマ?を選択した時に警告ウインドウが出るエラーを修正しました。

テストしていて気づいた点。
日本国内から差し出されたDHLの伝票は「DHL」で検索してもエラーになり、「クロネコヤマト」だと検索できる場合があること。
当たり前か...。DHLは国内ではクロネコヤマトが担当しているからね。

ページにも免責事項や問い合わせ先などを追加しました。
それにしても、「iGoogleガジェット」+「Google page creater」+「問い合わせ先がGmail」+「Google Adsense」+「Google Analytics」ってGoogleのサービスばかりでなんだか気持ち悪いな...。

tabWallpaperとHTML entity converterをリリース

「学生ケータイあわ~ど2007」で技術賞を頂いた tabWallpaperをとりあえず公開します。
ページ内のQRコードを読み込むか、携帯電話で下記のページにアクセスすると、ダウンロードができます。オリジナルの画像が使えなかったり、天気予報は山口県下関のものしか表示されなかったりとまだまだな点が多くあります。
バージョンアップを重ねてより実用的なアプリにしたいと思ってますので、よろしくお願いします。
NTTドコモの902i以降のFOMAで動作します。
tabWallpaper

それから、作業用にHTMLエンティティの変換ツール、HTML entity converterを作りました。
中国語や韓国語などの他言語を日本語のWebページ(HTML)に組み込むためのツールです。
既存のスクリプトやフリーソフトもありましたが、フォームが小さく使いにくかったり、メールアドレスの難読化を目的に作ったもの、IEオンリーのものなどばかりだったので、新たに作りました。
せっかく作ったから公開したけど、需要はあるのかな?とりあえず様子見。
HTML entitity converter : HTMLエンティティ化スクリプト

消費者の権利

内閣府「ハンドブック消費者2007」によると、「消費者の権利」というものがあるらしい。
移動中のNHKラジオで知った。

「消費者の利益の保護に関する連邦会議の特別教書」ジョン・F・ケネディ (1962)では、
  • 安全への権利
  • 情報を与えられる権利
  • 選択をする権利
  • 意見を聴かれる権利
また、国際消費者機構(Consumers International:CI)の提唱した8つの権利 (1982)では、
  • 生活のニーズが保証される権利
  • 安全への権利
  • 情報を与えられる権利
  • 選択をする権利
  • 意見を聴かれる権利
  • 補償を受ける権利
  • 消費者教育を受ける権利
  • 健全な環境の中で働き生活する権利

一見するとあたりまえのような内容だが、この中で「意見を聴かれる権利( Right to be heard. )」は、とりわけWebサービスの分野では保証されていない場合が多い気がする。
例えば、機械的な返答しかしないサポートや、メールの返事がないサポート、そもそも問合せ先がないものなど。

タダでサービスを提供している場合でも消費者として扱うべきかどうかというのは、若干の違和感があるものの、サービスを利用して頂いている以上は消費者として主張する権利があると思う。

しっかりしたWebサービスを展開するには、サポート体制もきちんとしなければならない。
ちなみに、これは高校の家庭科や公民で履修する内容らしい。全く記憶にないのだが...。


明日から学校だ...orz。

歌詞リーダー

歌詞リーダー
「うたまっぷ」に掲載されている歌詞データのFlashをテキストデータに変換します。 免責事項をよく読んで使用してください。

だいぶ昔、偶然「うたまっぷ」の歌詞データを生テキストの状態に変換できることを発見。
最近、久しぶりにカラオケに行く機会があり、歌詞を調べるのに使っていたらうたまっぷの仕様変更で使えなくなっていたので、プログラムを修正して公開しました。CSSは相変わらず使い回しです。

歌詞の著作権ですが、どうやらJASRACによると印刷物(出版物)でなければ大丈夫っぽいです。それにうたまっぷがJASRACに承諾されていて、データ自体はうたまっぷのサーバにあるので無問題でしょう。
まあ問題があれば、うたまっぷからアク禁されるか、仕様変更される、もしくは苦情が来るのかな。

くれぐれも、使い方には注意してください。もちろん印刷もできますが、してはいけないことになっています。

Google Analyticsで時間帯別表示

Google Analytics

BlueSky Lab.および、私の運営しているサイトは運営の参考のため、Google Analyticsでアクセスログを収集しているが、時間別表示ができない??
時間別表示というのは、どの時間帯にどれだけのアクセスがあるかを示したグラフのこと。

かれこれ調べた末に、 Google Analytics 新しくなるのはいいのだけれど (groundwalker.com) のコメント欄で発見。

analytics1.gif
「マイレポート」の画面で、「セッション」または「ページビュー」を押す

analytics2.gif
表示を「日別」から「時間別」へ。

わかりにくい。
国際化されたサイトであれば、時間別表示のような機能は軽視されがちなのかな。
時差を正しく設定していないと、うまくいかないよう。

txt2link : テキストをリンクに変換

txt2link : テキストをリンクに変換
送信された文字列(URL)をリンクにします。

ある作業で、URLの文字列をリンクに変換する必要があったので作ってみた。
詳しく言うと、ブラウザの画面を経由せずに右クリックメニューの「対象をファイルに保存」でダウンロードしたかっただけ。

もちろん、リファラー隠蔽にも使えます。

ポストマップ ポストをひたすらマッピング

ポストマップ ポストをひたすらマッピング
ポストマップは、みんなで郵便ポストの場所をマッピングしていこうというプロジェクトです。

日本郵政に代わって、みんなで全国のポストの地図を作ろうというサイト。
すでに3割近くのポストをマッピングしているらしい。
都市部ではほぼ全てのポストをマッピングし終えているような…。

昨日は山口で用事だったので、久しぶりに自転車で行き、国道190号線および、新山口~山大吉田キャンパスまでの県道を中心にポストを探して写真と共にマッピングしました。
ただし、新山口駅周辺はパンピーが多すぎて撮影できなかったので割愛。

マッピングが全部済んで、登録したポストを確認すると、いつのまにか誰かがポストの型名を追加してくれている!
恐るべしCGMの力。

たまたまかもしれないが、どうも小郡局管轄のポストはポストの記載がいいかげん。
所在地や郵便番号がないのはともかく、字が汚いポストや、取集時間が消えているポストも。

追加した数(9/8): 28ヶ所(うち写真と取集時刻のみ: 7ヶ所)
ポストマップ thira's photo
次は阿知須ルートかな…。

ふりがなエンジンをバージョンアップしました

ルビつきの文字を画像として出力するPHPのライブラリ、 ふりがなエンジン (rubyEngine) をバージョンアップしました。

バージョン2.0では、OpenTypeに対応したほか、ソースを公開、サンプルのインターフェイスを更新したことで、実用にも十分なバージョンになったと思います。

気づいた点は、GDのバージョンが上がるごとにだんたんとレンダリングの精度が上がっていること。
ふりがなで使う、6pxや7pxのフォントがきれいに読めるようになるのはとても嬉しい。
意外にも、読みづらいことで有名な「メイリオ」が6px,7pxでも他のフォントに比べてくっきりと描画されている…。

高低表が出力できるサービス「ALPSLAB」

ITmedia Biz.ID 「自転車ルートの高低差を調べる」
自転車に乗って、混んでいる車を横目にスイスイ進むのは何とも気持ちがいい。快適な自転車通勤を目指すには、高低差を調べよう。

地図上の等高線(標高メッシュかな?)から高低表を出力できる便利なサイトがありました。
私はカシミール3D(有償)を使っているのですが、このサイトでは道に沿った経路も検索できるようです。

しかしながら、トンネルには未対応なようで、山口県内を自転車で走り回るような人にとっては不便だと感じるかもしれないですね。

登山ルートも作成できます。時間が微妙な感じがしますが。