右上の(i)をクリック。
「あなたのブラウザでは、jalanjpのWebサイトで以下の商品をご覧になられています。」
ご覧になられています、じゃねー! どこだか分からない広告会社が何でそんなことを知っている!
これは、第三者クッキーと呼ばれる技術をつかったものです。つまり、CRITEOという広告会社が、Togetterにも じゃらんにも広告を配信しているので、じゃらんの閲覧履歴を元にTogetterに広告を出すことが出来ているわけですね。
じゃらんのプライバシーポリシーを見ると、たしかにこの広告が使われていることが説明されています。 この話題、気づくきっかけになったのはこのブログの記事でした。
バナー広告の下に「楽天」とあるので楽天の広告と思ったのですが,右クリックすると「Powerd by Criteo」とあるのでCriteoによる行動ターゲティング広告であることがわかりました.楽天のサイトにも、たしかにCRITEOの広告が使われていることが明示されています。 二匹いたらもっといると思え。 これは気持ち悪い。つまりCRITEO社は、僕が楽天で鳥かごを
(CRITEOの広告が楽天でチェックした商品を表示している件: 何の変哲もない福岡生活...)
ヨメと今度行こうかと思っていた旅行の行き先まで!
これは気持ち悪すぎる!断固抗議だ!
ふと振り返ると
ところで、自分の運営しているモバイラーズオアシス-街の電源検索サイトでは、Googleアドセンスを使って広告を表示しています。あと、このブログにも出ているはずです。このGoogleアドセンスも、行動ターゲティング広告をやっています。
Google Japan Blog: 新しい広告のプログラムのテストについてつまり、モバイラーズオアシスだって、Googleを通して上記の気持ち悪い状況をつくりだす一翼を担っていることになりますね。えらそうにリクルートさんを批判できる立場にはないわけです。
かといって、今モバイラーズオアシスからアドセンス広告を外すと、運営が干上がってしまいます。ううむ。
言い訳かもしれないのですけど、GoogleとCriteo社では気持ち悪さが全然違うと思うのは、僕の勝手でしょうか?
Googleであれば、ストリートビューの件を初めとして、これまでいろいろな事件が起こって、それに対してどんな対応をしてきたか一通り見てきています。あるいは、及川さんを初めとして、中の人も何人も知っています。そのGoogleなら、まあそんなに無茶はしないだろう、という気がするのです。
我が身かわいさ故の偏見かなぁ。
第三者クッキーを拒否する方法
罪滅ぼしになるかどうかは分かりませんけど、最後に、この手の追跡を回避するために、第三者クッキーを拒否する方法を紹介しておきます。お使いのブラウザによりますけど、 という感じです。safariは最初から拒否する設定になっているみたいですね。
気持ち悪いことに気づいたので広告を全廃しました!とか、リクルートにたいする抗議運動を開始します!とかかっこいい記事じゃなくて申し訳ないのですけど、とりあえず、これを見て気持ち悪いと感じた人が増えるだけでも、世の中なんか変わるのではないかな、と期待を込めて。
2012-05-13 10:25:20訂正
楽天で「買った」ものの情報は流れていないみたいですね。その前の閲覧履歴が渡っているので、これがいいかな、あれがいいかな、と思っている段階の情報が流れているだけのようです。
Amazonが650億円掛けて導入する倉庫ロボットがすごいということで話題になっています。
すごいのはいいのですけど、動画貼って終わりの記事ばっかりで(みんなずるいよね!)、具体的に何をしているのかちっとも分からなかったので、がんばってヒアリングしてみました。想像以上に面白い仕組みだったので、説明します。
最初、ロボットが棚から商品を集めてくるのだと思っていたのですが、違いました。商品のある棚を従業員の所に持ってくるのです!

オレンジ色のロボットが商品の載った棚を持ち上げて運びます。

従業員の所に到着。

天井のカメラから光が当たってピックアップする商品をお知らせ。
#動画をよーく見ると、左側のカップのあたりに光が点滅しているのが分かります。たぶん、天井のカメラで棚に貼ってある二次元バーコードを認識して照射しているのでしょう。

従業員が指示された商品をピックアップしてバーコードを読ませると、役目を終えた棚(ロボット)は自動的に所定の位置に戻っていきます。
従業員は一歩も歩くことなく、次々にやってくる棚から商品をスキャンして箱に放り込むだけで、ユーザーの注文が完成していきます。
よく知られている話ですが、Amazonの倉庫はアルファベット順や商品順ではなくまったくランダムに配置されているので、似たような商品の一巻と二巻を取り違える、といった事件も起きません。
参考:これがアマゾン・コムの配送センターだ « WIRED.jp Archives
一方で、ロボットのほうもコンピュータの指示に従って棚を運ぶだけなので、商品を拾い集めるロボットを作るよりずっとシンプルなシステムにすることができます。
複雑なシステムにすると壊れた時の修理が大変になりがちですが、このシステムなら、同じロボットがたくさんいるだけなので、壊れた機体は修理送りにして予備のロボットを投入すれば簡単に復旧させることができます。
こういうロボットが1000台程度、バスケットボールコート数個分の倉庫を走り回るのだそうです。

なお、ロボットは必ずしも棚を元の位置に返すとは限らなくて、よく売れている商品が多い棚は近くに、あまり売れていない商品が多い棚は遠くに戻すことで出荷効率を改善するようになっています。
商品一個入れるたびに巨大な棚を持ち歩くのは燃費が悪そうですけど、こういう工夫によって補われているのでしょうね。
- Here Are The Amazing Kiva Robots That Amazon Just Bought For $775 Million
- 巨大倉庫で働く「自律型ネットワーク・ロボット」(動画) « WIRED.jp Archives
- これがアマゾン・コムの配送センターだ « WIRED.jp Archives
- アマゾン、440億円の大型買収へ。ベゾスも恐れるダイパーズ、驚異的成長の秘密:In the looop:ITmedia オルタナティブ・ブログ
2012-03-21 10:45:24追記
このロボット、Kiva Systemsっていう米国のベンチャー企業の物だったのですが、Amazonが買収することが決定したそうです。さすが。
Amazon、ロボットメーカーのKiva Systemsを7億7500万ドルで買収 - ITmedia ニュース
ビールやワイン、蒸留酒、コーヒー紅茶にコーラまで、その飲み物がどうやって開発されて、なぜヒットしたのか、社会にどんな影響を与えたのか、といった具合に、飲み物を通して歴史を語った本です。
例えば、古代メソポタミアで最初に一般化したアルコールはビールでした。
なぜかというと、穀物を水につけておけば勝手に出来上がったから。穀物を水につけておくと麦芽糖ができて甘くなります。これが空気中の酵母と偶然触れ合ってアルコールに変化したのです。
原理的には果物とか蜂蜜でも可能なはずだったのですが、当時穀物はたくさんあったので、人類はこの偶然に改良を繰り返してビールを造る方法を学習しました。
7000年くらい経って都市が成立すると、ビールは一種の通貨として使われるようになります。エジプトでピラミッド建築の労働者が一日働くと、パン3-4斤と4リットルのビールがもらえたのだそうです。
必需品だから誰でもほしがるし、たくさん蓄えておいて公平に分け与えることができるので、通貨としては便利だったのですね。
このあと出てくるワインとも共通する話なのですけど、アルコールはそれ自体が殺菌作用を持つし、製造過程で沸騰したりしているので、かなり長い間、下手な水より安全な飲み物でした。
そういうわけで、ギリシャ時代ローマ時代の間に、食事の時にはビールやワインを飲む習慣が一般化します。
古代ギリシャでは、神官といえども朝食から(!)ワインを飲んでいたので、ちゃんと仕事ができる状態に戻るのに時間がかかって苦労していたのだそうです。17世紀になって、アラビア生まれのコーヒーがヒットしたのは、酔っぱらわなくてもいい食事時の飲み物、という理由だったのだとか。
西ヨーロッパは、数世紀の間立ちこめていたアルコール性のもやのなかからようやく抜け出した。「このコーヒーという飲み物のおかげで」と1660年にあるイギリス人が書いている。
「諸国において、節酒の傾向がよりいっそう進んでいる。徒弟や助手らはかつて、朝にエール、ビール、ワインなど、脳にめまいを起こさせるものを飲んでいたため、多くのものは仕事に適さない状態だった。 だが彼らは今や、この目を醒ましてくれる文明的な飲み物のおかげで、まともに勤められるようになっている。」
一方お茶は、もともと中国で飲まれていた飲み物だったのですが、これも大航海時代にヨーロッパに渡って大ヒットしました。
とはいえ当時中国の技術力は圧倒的で、ヨーロッパの品物なんてあんまりほしい物がないよね、という状態。しょうがないのでヨーロッパ側は代金として銀を支払っていたのですけど、貴金属は限りがあるのでそうそう出せるものではありません。
あんまりにも高いので、「なんか安いお茶はない?」ということで輸入されたのが、うっかり放置して酸化させちゃった茶葉からできた安物のお茶「紅茶」だったのだそうです。
イギリスでは、苦い紅茶をおいしく飲むために牛乳を入れて飲むアイデアが発明されました。
ちなみに同じ頃日本では、高級品の茶を飲む作法にこだわった結果、世界に類を見ないほど複雑な「茶道」が生まれました。あんまり合理的じゃないところにこだわって、意味は分からないけどなんだか凄いものを作ってしまう国民性は、この頃から変わってないのかもしれないですね。
最近まーったくTiを触れていないのですが。書くと役立ちそうな話題を見かけたのでちょっとだけ。
WebViewを利用したアプリケーションの場合によくあるのが、
特定のドメイン(URL)じゃないページへ遷移する場合は、通常のブラウザアプリ(Safari等)で開く
という要件です。
Ti.UI.WebView で、遷移先(遷移しようとしている)URLを知りたい ~ 'beforeload' イベントで url が反映されない件 #titaniumjp #titanium - harukazepcの日記
ちょうど関西に戻る用事があったので、俺の話を聞け!2012に行ってきました。
この間FirebugオンリーでWEBデザインしたらいい感じだった話をさせていただきました。

自分は、モバイラーズオアシスの次世代機能ということで、今開いているお店、早朝や夜間に開いているお店だけを絞り込める営業時間検索機能を開発してきました。
Macでどうしても馴染めないショートカットキーが幾つかあります。
一番困るのがGoogleChromeのMeta+h。Windows版ChromeのCtrl+hは履歴を表示なのですが、Mac版ChromeでMeta+hを押すとウインドウが隠れてしまいます。
ブラウズ中に手軽に押してしまうものなので、その瞬間ウインドウが消えてなくなるのはかなり戸惑います。UIが良くできているので、隠れたことはわかるのですが、そのたびに作業が中断するのは辛いです。
で、色々試した末、プラグインも何も入れずにMeta+hをヒストリーに割り当てることに成功したのでご紹介。

これだけ。OSのシステム環境設定→キーボード→キーボードショートカット→アプリケーション のところで+ボタンを押して、アプリケーション用のショートカットキーを割り当てればOK。
「メニュータイトル」のところは、素直にメニューにあるテキストをそのまま入れればいいみたい。

手順の概要
Windowsには、音声合成(SAPI)という機能が搭載されています。これをつかうと、Excelや、Vectorでダウンロードできる各種SAPI対応アプリケーションでテキストを読み上げさせることができます。
※なんでWordじゃないのかは謎。
ただし、Windows7のProfessional程度では英語のランタイムしか搭載されていないので、日本語や中国語を読み上げるためには別途ランタイムが必要。このランタイムがどうも無料で手にはいらないっぽい。UltimateのDVDに入っているという噂。
一方、SAPIとほとんど同じ機能なんだけど微妙に異なるぽいSpeech Platform Server Runtimeというのがあって、これは各言語ランタイムが無料で配布されている。そして、Speech Platform Server RuntimeをSAPIとして認識させちゃう裏技があるので、これを使えばExcelでテキストを読み上げさせることが出来る!
Microsoft Speech Platformとランタイムのインストール
Download: Microsoft Speech Platform - Runtime (Version 11) - Microsoft Download Center - Download Detailsから、自分の環境にあったSpeechPlatformRuntime.msiをダウンロードしてインストール。Windows7 64bit版の人はx64_SpeechPlatformRuntime、32bit版の人はx86_SpeechPlatformRuntime。「わかんない」というような人はきっと32bit版です。
Download: Microsoft Speech Platform - Runtime Languages (Version 11) - Microsoft Download Center - Download Details
から、必要な言語のTTSランタイムをインストール
※「zh」とか「ja」で検索すれば見つかる。
※「MSSpeech_SR」で始まるのは音声認識用ランタイム、「MSSpeech_TTS_」で始まるのが音声合成用ランタイム。今回必要なのは音声合成用ランタイムなので、間違えないように注意。
Speech Platform Server RuntimeをSAPIとして認識させる
スタート > すべてのプログラム > アクセサリ > コマンドプロンプトを右クリックして、「管理者として実行」。権限昇格のために管理者パスワードを要求させるので入力。開いたコマンドプロンプトで、下記を実行する。
reg COPY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Server\v11.0\Voices\Tokens" HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens /s /f※または、レジストリエディタを立ち上げて、図のようにコピーしてもよい。
音声合成(SAPI)の言語を変更
「コントロール パネル > すべてのコントロール パネル項目 > 音声認識 > 音声合成」を開いて「音声の選択」で適切な言語を選ぶ。
※ここまでの手順が失敗しているとMicrosoftAnnaしか出てこない。その時はおやつでも食べて考え直す。
Excelで読み上げ
読み上げコマンドが表示されない - Word - Office.comを参考に、読み上げコマンドを表示させる。
Excelのセルに適当な文章を入力して、読み上げボタンを押すと読み上げられる。
謝辞
キーとなったレジストリの変更のアイデアを初め、だいたいのアイデアは下記が出所です。このブログ記事は、下記を元に、最近の環境で実行できるようにまとめ直しました。日本語や中国語等の音声合成(SAPI TTS)を無料で使う方法(Speech Platform Server Runtimeを裏技で SAPI 5.1として動作させる方法)
あけましておめでとうございます。初日の出は見に行ったけれど、正月とかあまり気にせず元日からコードを書いています。
さて、お正月にちなんで、ひたすら寝ているプログラムsleepUntilというのを書いてみました。sleepじゃなくてsleepUntilなので、指定した時刻までただ寝ているプログラムです。
sleepUntil (mogya's gist: 1550431 -- Gist)
なんに使うかといいますと、プログラムを夜中に走らせるために使います。
スクレイピングは人が活動していない時間帯に走らせるのが基本なので、夜中1時スタートというのが普通です。これまでは、時計を睨みながらsleep 3000; とかしていたのですけれど、そんな計算は自分でしてくれるプログラムがsleepUntilというわけです。
$ sleepUntil "1:00"って書けば、sleepUntilは起動と同時に眠りについて、夜中一時に(起きて即座に)終了します。
$ sleepUntil "1:00";(夜中に走らせたいコマンド)という具合にしておけば、sleepUntilが深夜一時に終了したあと、(夜中に走らせたいコマンド)が実行されます。実質的に、夜中一時に該当プログラムを起動するようなことができるわけです。
cronでいいじゃないかと言われたらそのとおりなのですけど、一回しか実行しないようなものをcronに書くのはなんだか気がひけるのです。 実行環境が違うとかそういうことも気にしなくていいですし。
時刻のパースはTime.parseに丸投げです。パースしてみて過去の時刻になったときは翌日の時刻に読み替えるようになっています。
【はじめに】
この記事は、@astronaughtsさん企画の「Titanium Advent Calendar 2011」向けに書いています。
@astronaughtsさんは、この企画もそうですけど、それ以外にも関西で最大規模のTitaniumイベントTi.Developers.meetingの主催者でもあります。最初はどうしようかと思うくらいしょぼかったw Ti.Devs.me、諦めずに開催を繰り返して大きなイベントに育て上げた@astronaughtsに、個人的今年のTitaniumMVPを送りたいです。
さて、そんなわけでTitaniumの話題を一つ。Titaniumでは、アプリ内でブラウザが開くwebViewという仕組みを使うことができます。
これを使うと、アプリ内でWEBページを見てもらうことができるので、Titanium以外でもよく使われている仕組みです。これ、意外と怖いということはご存知ですか?
俺ブラウザ -- Gist
このアプリの最後に、ちょっとスパイスをかけてみます。
上野駅が蒲田駅に変わってしまいました。これで、モバイラーズオアシスの中の人は、「蒲田駅を検索したら違う位置が表示された」という謎のバグ報告に悩まされることになります。クックック。永久に悩み続けるがいい...
ご自分のアプリのWebViewに上記を仕掛けるとか、絶対やめてください。やめろってば!
冗談はさておき、技術的にこういうことが可能であることは頭においておく必要があります。今回は上野が蒲田になる程度ですみましたが、ニュースサイトの内容を書き換えられたら?ログインしたときにユーザー名とパスワードを他のサイトに送信する仕組みが入っていたら?
webViewとブラウザを同一視していると、あっと驚く手品に巻き込まれてしまうかもしれません・・・
逆に、この手法をうまく使えば、スマートフォンに最適化されていないHTMLに別のCSSを適用して要素を大きく表示させたり、サイドバーを隠してスマートフォン向けのページに見せるようなこともできるかも。
...できるかもしれないのですけど、実際は結構大変です。この記事を書くために色々試したのですけど、evalJSしたJSコードをデバッグする手段が無いので、泣きそうでした。
ちょっと複雑なJSを書くと、なぜか処理が行われなくて途方にくれます。いい思いつきだと思ったんだけどなぁ。
【おわりに】
明日は@rakiさんかな。よろしくおねがいします〜。