賞金付きクイズアプリの答えを求めるbot

HQ というオンラインクイズの iPhone アプリがあり、アメリカで流行しつつあるそうです。 一日2回開催される、12問のトリビアクイズに全問正解すると、その回の賞金を正解者で山分けできる、というサービスで、アプリに登場する司会者に特徴があり、家族・友人・同僚などを巻き込みやすい形になっているのが広まっている秘密のようです。 そんなクイズアプリに対して、前記事のようなプログラムによる解法をデモしたのが、トビー・メラーさんんのこちらのブログ記事。 デモ動画はこちら。02:00 前後から、アプリの出題(画面右側)に対して、画面中央に開いたコンソールが、3択の回答を表示しています(小さくて見づらいので、キャプションで強調表示されていますが)。 https://www.youtube.com/watch?time_continue=124&v=UPRhVWzZ9kM 回答が提案されるプロセスは以下の通り iPhone のアプリ画面を QuickTime で MacBook に映す Automator で問題と回答3択のスクリーンショットを撮る Google Vision API でテキスト化 Googleカスタム検索API

賞金の出る4択クイズゲームを隠しカメラとOCRで解くプロジェクト

イギリスのパブなどに置いてあるゲーム機に、クイズを解き続けることで勝ち進み、最後は賞金が出るものがあるそうです。 GitHub に公開されたこちらのリポジトリでは、そのトリビアクイズ機を解いてしまう支援ツールが公開されています。 こちらのアニメーションgif でプレイしている様子が見られますが、質問文と、4択の回答が表示されて、時間内に正答をタッチすると次の問題へ行けるんですね。 [caption id=attachment_10451 align=alignnone width=500] https://github.com/tensor8/hacking_slot_machines[/caption] こちらの動画に、ドラマか何かの中で出てくる、この手のゲームで遊んでいるシーンがあります。 https://www.youtube.com/watch?v=j7CK7ultHdo&t=1078 Github上の解説によると、 カメラ内蔵のボタンで撮った画面の画像を Raspberry Pi へ送信 画面の傾きを補正、OpenCV で問題・4つの回答のボックスを切り出す Google Tesseract で文字を抽出 得られた文字を[問題・回答]のデータから総当たり検索 espeak で音声合成した結果を隠しイヤホンに送る という作りで、画面に映った問題の答えがイヤホンで聴こえてくる仕組みを実現しているそうです。 上にあるように、すべての問題と回答のデータはある前提で、これはゲーム機のROMからごく簡単な暗号化されたデータが取れていて、Pythonスクリプトで逆変換しています。 最初は問題文だけの検索で済ませるつもりだったそうですが、問題文の認識精度が完全ではなく、回答(20個のうち正答含めた4つがランダムに選ばれる)もあわせ、読み取りに間違いがある前提で単語間距離が小さいものを検索することで質問を特定しているとのこと。 当初は

VRを使った「ヘリから賞金掴み取りチャレンジ」

これは見てて楽しい。「ステージに設置された縄ばしごを登って、上の賞金袋を取れたら200ドルプレゼント」という、そのままなら簡単そうなゲームを、VRヘッドセットを被らせることで全く違う体験としています。 しかし、VRの中では、挑戦者は高い所を飛ぶヘリコプターから吊り下げらげ、暴風・雨・火山の噴火が次々と襲い掛かってきます。 https://www.youtube.com/watch?v=KmP7THPNheY 暴風! 横殴りの雨! 噴火した火山から多数の岩が! 挑戦者も楽しいだろうけれど、周りの参加者もとても楽しそう。 「同じ $200 貰うなら、こんな苦労するよりも我が社でスマートフォンを売りましょう」という趣旨のプロモーションらしいのですが、このゲーム常設であったら、お金払ってでもやりたい人は多いんじゃないでしょうか。 VR を活用したこういったゲーム、遊園地等でも今後は増えるかもしれませんね。 via

Appleに「買った」映画を取り消されたユーザーの話が広まる

カナダのアンドレアス・G・ダ・シルバさん(@drandersgs)がツイッターでiTunesで購入した映画が消えた件についてのアップル社サポートとのやりとりを公開し、話題になっています。 サポートからの返答はツイートの中にスクリーンショットで埋め込まれているのですが、ダシルバさん本人の要約がついているのでそちらを紹介。実際のメールの文面はビジネスライクに(とても)丁寧なので、この要約内の言葉、特にAppleサポート側の言葉はダシルバさんの解釈であることは注意してください。(= Apple社は「そんなことは言ってない」と言うでしょう) ヘイApple、買った映画3本がiTunesライブラリから消えてしまったんだけれど。 はい。それらはもう観られなくなりました。ご購入ありがとうございました。うち2本はこちらでレンタル可能です! 待てよ… 何だって??/p> レンタルには興味ありません。映画を元に戻すか、返金してください。 あなたの気持ちは全く良くわかります… そりゃご丁寧に。でもね… ご存じのように、私たちはただの売り場に過ぎないんです。 売り場? ええ。お代はいただきましたが、何が売られたかについては責任を持ちません。そして、どんなものであれ、売り場で買ったものを所持し続けられるという保証はしていません。返金はしませんが。 なるほど… じゃあ、「購入」ボタンは意味がないのでは? 「Feelin Lucky?」とでも呼ぶべきでは あなたがハッピーでないのはわかります。レンタルチケットをさらに2枚差し上げましょう。 https://twitter.com/drandersgs/status/1039270646243414016 ダシルバさんは、「故郷のブラジルに居た時に聞いた、『店でステレオセットを買い、家に持ち帰って開けたら重い石が詰まってただけだった』という話と大差ないな」と続け、「埃をかぶったDVDプレイヤーを復活させるか」と締めています。 1万以上のリツイートがされ、同様の不満の声を上げる人も多いですが、「契約上確かにこれはそうなっている」とか「Google や Amazon でも似たようなもの」「映画や音楽をオンラインで『所有』できる、という考えが誤解なんだ」「『買う』ではなく『長期レンタル』ということだ」「映画を『ライセンス』しているが正しい」という指摘もありました。 # Amazon は2009年にユーザーの Kindle から買われた本を消したことで裁判まで行ってます。 Apple がコンテンツを買っている配給元が、カナダでの利用条件を変更したのが原因であり、実際Apple側に映画をキープさせる権利はなさそうです。ですが、一度は「売った」ものが使えなくなったのだから、返金は必要じゃないのかなあ。もし売り場の人が返せないとしても配給元が。 via

React.js – 「ブラックリスト」は人種差別?

「ブラックリスト」の利用は侮辱的である! The use of blacklist is offensive! #13604 という React のGitHub Issues におけるバグレポート。 報告者は、「人種差別的や、家父長的な背景のある用語を避けよう」という主張で、こちらのツイッターを引いています。 ブラックリスト → 否定リスト ホワイトリスト →

映画のワンシーンのような画像解析ごっこができるブラウザゲーム Enhance.computer

ENHANCE.COMPUTERは、ウェブブラウザで遊べるシンプルなゲーム。 Begin Investigationをクリックして調査を開始すると、ノイズが載った画像が右側に表示されます。 この画像のどこかに隠されたコードを、カウントダウンされる時間内に探し出すのがゲームの目的です。 コードを探すには、Zoom in/Zoom outで拡大縮小、Moveで上下左右に画像を動かし、「コードはここだ」と思ったらEnhance。ただ、この指示はボタンを押したりコマンドを入力したりではなく、画面(マイク)に向かって叫ぶことで行います。 こちらのツイートは、作者によるプレイイメージ。 https://twitter.com/nicolehe/status/1029721756049666048 元ネタは映画 多数の映画の中に、このような、誰へともなく指示すると画像から何かが見つかる、というシーケンスがあり、そのようなシーンをまとめた動画(Let's Enhance)もあります。主人公がEnhanceといえば、たいていの画像から手掛かりは見つかってしまいます。 https://www.youtube.com/watch?v=LhF_56SxrGk このENHANCE.COMPUTERを使うことで、こういった映画の主人公の行動を、自宅や会社でも再現できる、というわけですね。 via The Next

USB 経由での Windows 乗っ取り

eweek の記事より、USB ドライバ経由で Windows を乗っ取れる

USB ドライバをバッファオーバーフローさせることで、任意のプログラムを Windows に実行させることができる脆弱性が見つかった、というもの。まだマイクロソフトには報告が行っておらず、これが本当かどうかは確認されてないということだが。

USB メモリを挿しただけで破壊やデータ吸出しツールを送り込めるのであれば、外部からの訪問者や出入りの掃除業者などがちょっとした時間で PC を乗っ取ることができそうだ。スパイ映画みたいな話だが。

USB メモリによる企業情報持ち出しを防ぐために、USB ソケットを無効化するプログラムが開発された、というニュースを前に読んだ気がする。挿すだけで簡単に使える、という利便性が、管理側に新たな負担を強いているということなんだなあ。そして、その対策を事業にする人が出てくると。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

Bloglines にトラブル発生中?

Bloglines にログインしたら、自分の登録したフィードが全部消えてしまってるんだけど。。。。

と思ったらPlumber おじさんに切り替わっていた。データベースクラッシュだそうで。規模の大きなネットサービスはたいへんだなあ。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

イベント + 地図 = 追っかけ支援サイト

EVMapper は、イベント名で検索するとイベントを地図上に表示してくれるサイト。

アクセスすると、サンプルとして エルビス・コステロの名前が入っているので、検索をかけると全米での彼のコンサート開催位置がわかる。自宅の近場のコンサートを探すもよし、全米おっかけツアーを組むもよし。

“Blog” で検索すると、 Blog 関係の催し物が出てきた。興味のあるアーチストや用語で検索してみると面白い。

各種イベント(コンサートやカンファレンスなど)情報を集積する EVDB.com と、Google Map API を組み合わせたもの。

EVDB のほうは、 meetup.com などからもイベント情報を収集しているようだし、API を公開して主催者にもイベント情報を登録することを奨励しているようだ。iCal や RSS も吐いている。

日本にもほしいねこういうイベント情報サイト。マイクロフォーマットで自動収集されるようになるのはまだまだ時間がかかりそうだし。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

regist という英語は無い

さて、サイボウズラボの立ち上げプレスリリースが出たこの瞬間、とりあえずこのブログを見に来る人も多いと思われる。そんなチャンスに、このブログを読んだ人、特に日本のソフトウェア技術者に一番訴えたいことってなんだろう? と考えた。

それは、日本人プログラマーだけが使う謎の動詞 registについてである。そんな単語は存在しないから、ちゃんと “register” を使おう。

出てくるのは日本語のサイトばっかりである。拡張子を”.jsp” や “.asp” にしても同様だが、とにかくこの「存在しない単語を使ったファイル名」のなんと多いことか。

register = 「登録する」 は、名詞でもあり動詞でもある単語だ。”-er” がついた単語は「○○する人」の意味のことが多いため、”er” をはずした “regist” が動詞だと勘違いしてのことだと思う。

これに比べれば、たまにスラッシュドット.jp や技術系のメーリングリストで話が出てくる、 warning や alt の正しい読み方なんて小さい問題だ。

この存在しない動詞 regist 、仕事でだけでも過去に3回見たことがある。そのうち一回は、”regist” を “register” に直すだけで1年半かかった。

あるプロジェクトに途中から入ったとき、外部への公開 API を読んでいたら、なんか違和感を感じた。登録用の関数の関数名 “regist” を辞書で確認してみると、そんな単語は無い。「登録」なら “register” だ。

天下の○○○が、間違った英語を API に含めて出してるのはまずいと思ったので、会議の際に議題にあげてみたのだが、どうも反応が薄い。「すでにその名前で呼び出している他のプログラムがあるので」とか、「関数名を変えてビルドすると全部再試験になるので」(そのプロジェクトには、自動ビルドとか自動テストという概念は無かった)とか、まあとにかくいろんな理由で、直さないという決定になったもんだ。

結局、regist を register に直せたのは、メジャーアップデートのタイミング、気づいてから一年半後だった。

ソフトウェア技術者として、英語は避けることができない要素だし、「名前重要」が身についているなら、常に書いている英単語が正しいかどうか、辞書でチェックすべきだろう。

今このエントリを読んで、「おお、そういわれると間違っていたかも」と思って自分の過去のソースをチェックしよう思ったなら、それが技術英語を身につけるための正しい態度だと思う。

正しい英語名をつけることに気を配っていると、その場その場では余計な時間が取られるような気がするだろうが、「英語で変数名や関数名をつける能力」は簡単に伸びるものなのだ。

帰国子女でもないし海外留学もしたことがない僕が、アメリカでアメリカ人に指示を出す仕事ができたのは、日本にいたときでもそういう細かい作業の積み重ねをしていたからであると思う。

とは言っても、辞書を引くのも適切な単語を調べるのもたいへんなことだ。アプリケーションやウェブサイトを使って、さっと簡単に調べるにはどうすればよいか、どんな道具を使っているかについては、次回に(いつか。すっかり忘れていた)述べたいと思う。

[2006-10-06 追記]

Googleのソースコード検索が出たので、“regist”を使っているソースを検索してみた。件数は3万件でるが、先のページをみても全14件しか出てこない(バグ?)。14件のコード中の署名などから、”regist”を使った人の国籍を推定してみたのが以下。

日本人 7人
不明 3人
フィンランド人 1人
スウェーデン人 1人
ドイツ人 1人
アメリカ人(カリフォルニアの大学、ということで英語ネイティブかどうかは不明) 1人

半数は日本人だった。圧倒的じゃないか。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

サイボウズラボのブログ開始

最初のエントリーということで、軽く自己紹介をさせていただく。

新しくできるサイボウズラボのプログラマー。2005年7月末まで、アメリカの子会社 Cybozu Corporation にて研究開発を担当。つまり、これを書いている時点ではまだアメリカ在住ということ。

得意技は英語での技術調査とビルド管理。一番好きな言語は Java。あと使えるというレベルではないが Ruby が気になってしょうがない。

Cybozu Corporation での「日本語製品の英語化、国際化」の経験についても、近いうちに書きたいと思っている。

以後お見知りおきを。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

akky's work blog