Home

技術日記
Twe-td - what is tweeted in the world ? -を作りました。会社を辞めましたEdit

Twe-td(ツイーティド) [http://twe-td.net]というサービスを作りました。

これは何かというと、Twitter上でつぶやかれているツイートに含まれるURLを収集・解析し、世界中でどんなWebサイト、ツイート、ムービー、写真、グッズなどの話題が注目を集めているのかを、シンプルなインターフェースでみることができるサービスです。

「世界中で」というところがポイントで、Twe-tdでは収集した情報をつぶやかれた「言語」を軸に区分しています。

たとえば、トップページから「Let's go!」で飛んだ先は「表示する種類:ツイート(Tweets)」+「表示する言語:全言語(All languages)」となっており、この記事を執筆している時点では、以下のような内容になっています。

表示する内容は、画面上下にあるナビゲーションから変更することができます。

twe-td-selector

一番左が表示する種類の選択肢で、「All(全種類)」「Tweets(ツイート)」「Movies(ムービー)」「Pictures(写真)」「Goods(グッズ)」から選べます。

真ん中が、対象となる言語の選択肢で「All languages(全言語)」「English(英語)」「Japanese(日本語)」を始め、Twitter上でツイートされている様々な言語が選択できます。一応投稿されているツイートが多い順に並んでいます。

一番右は対象の日付(GMT)となります。データ収集プロセスを動かし始めたのは2014-02-20くらいなのですが、いろいろ試行錯誤があり、まともにデータが取れ始めているのは2014-03-02以降となっています。

たとえば「表示する種類:ツイート(Tweets)」+「表示する言語:日本語(Japanese)」にしてみると、以下のような内容になります。

これをスペイン語(Spanish)のムービー(movies)に変えると、以下のようになります。

「ツイート」などは知らない言語だと内容がさっぱりわかりませんが、「写真」や「ムービー」ならば違う言語でもなんとなくわかるもの。言語圏の違いによって、流行にどのような違いが出てくるのか、わからないなりに眺めていても楽しいものです。

また、もうちょっと情報がたまってきたら、同じ言語でも「何月何日頃にはどういうものが流行っていたっけ?」みたいな探索にも使えるかもしれません。

ちなみに、ツイーター上に流れる大量のツイートから無作為にデータを収集しているため、収集結果にはいわゆる「公序良俗に反するもの」が含まれている場合があります。その場合、各URLのそばに表示されているゴミ箱マークをクリックしてもらえると、そのコンテンツを画面から削除することができます。

この削除行為は運営側にも通知が来るようになっていて、ユーザー削除が多いコンテンツはサーバー側でも削除されますので、やばそうなコンテンツを見かけたらまめに削除していただけると助かります。

「公序良俗に反するもの」の規定は明確に定めていませんが、ひとまずは「日本の法律的にNGなもの」は削除していこうかと思っています。また、「自動生成アカウントによる大量操作」「釣りアプリによる権限奪取を使った大量操作」なども、スパムとして削除対象にするつもりです。

まだ開発し始めたばかりですが、自分で使ってみてなかなか面白そうな感じにできてきつつあるので、興味を持った方は是非使ってみてください。

あと私事ですが、長い間お世話になった株式会社ジョルスを3月一杯で退職することになりました。在職中にお世話になった方々、今までありがとうございました。

Published At2014-03-03 15:55Updated At2020-01-01 04:25

日記
【PC遠隔操作事件】第2回公判傍聴メモ・最初の検察側証人は「ファイルスラック領域」を強調(江川 紹子) - 個人 - Yahoo!ニュースEdit

【PC遠隔操作事件】第2回公判傍聴メモ・最初の検察側証人は「ファイルスラック領域」を強調(江川 紹子) - 個人 - Yahoo!ニュースを読んでの感想をTwitterにいくつか書いたんだけど、なんか端的に書くと中途半端感が否めないんで、もうちょっとちゃんとまとめておく。

警察側の証言の要旨は、『押収したPCを調査した結果、OSレベルで見えるファイルシステムからは、事件に関連する情報はほとんど得られなかったが、HDDのセクターレベルに残された情報からは、事件に関連すると思われる情報がいくつか見つかった。それらは、そのPC上の暗号化された仮想Fドライブにおいて、問題のウイルスを開発した可能性が高い痕跡だった』と言うもの。

この仮想Fドライブの存在に関しては、片山氏も身に覚えがあるが、そこにウイルスのソースコードが置かれていたことには気がつかなかった、と言っている。そして、それらの情報は自分のPCが犯人によって遠隔操作されてできた、偽の証拠だろうと主張している(のだと思う)。

しかし犯人が、氏を犯人に仕立て上げるために偽の証拠を残そうとしたのだとしたら、どうして『暗号化ドライブ』のような『証拠が残りにくい』場所に証拠を残そうとしたのだろう。

暗号化されているため捜査側がそこから証拠を取り出すことは難しいし、実際警察は暗号化ドライブ自体から証拠を取り出すことはできていないようで、OSやプログラム開発環境が非暗号化ドライブ上でテンポラリ的に使用するファイルの痕跡から、暗号化ドライブ上での作業内容を推測している。わざわざ偽の証拠を残そうとしたにしては、あまりにも証拠が弱すぎる。

もちろん『犯人はわざとそういう遠回しな証拠を残したのだろう』という主張もできなくはない。しかし『自分のPC上で開発した痕跡をできるだけ隠そうとした』と考える方が自然だ。このあたりは犯人の能力をどのくらい大きく評価するか、でどちらの説が有力に思えるかが変わってくるだろう。

あるいは『犯人は、自分のPCでウイルスを開発して自分のPC上に痕跡を残すことを恐れて、すべて他人のPC上でウイルスを開発したのだ』という考え方も、あり得るかもしれない。偽の証拠を残そうとしたのではなく、片山氏のPCが犯人のメイン開発環境であった、という主張だ。

その場合は、できるだけ(普段PCを使用している片山氏にも)痕跡が見つからないように、暗号化ドライブ上で開発を行うことも十分にあり得るだろう。

ただその場合、Visual Studioのような比較的重い開発ツールを使って(しかもVisual Studioのインストール自体も犯人がリモートでやった? この辺片山氏はどう主張しているんだろう)、ウイルス関連の様々なプログラムの開発およびテストを、完全に氏のPCの遠隔操作のみで作る、というなかなか難易度が高い作業を犯人が行ったということになる。

また、Visual Studioを平日午前中に使用した形跡が残っていることを考えると、その日片山氏がそのPCで作業していたかどうかはわからないが、普通に会社が営業しているであろう時間帯にも、犯人は遠隔操作でウイルス開発作業を行っていた、という推測されるため、かなり状況の妥当性に無理が出てくる(それとも片山氏も、Visual Studio自体は(C#以外の言語で)使っていたと主張しているのかな?)。

推測も多いし、どちらにしろ決定的な判断基準となるような証拠はないわけだけど、今までマスコミ報道で出てきた怪しげな証拠と比べると、今回の話はとても真っ当な内容で、警察が片山氏を犯人と考えている理由は納得できた。それが裁判で有罪になるくらいの証拠なのかどうかはわからないし、ましてやコンピュータおよびプログラミングについて深い知識がない人間にどこまで通じるのかわからないけど。

あと、「遠隔操作ではファイルスラックのスペースは自由に残せない」というのは、警察が証拠を見つけ出したのはOSのインストールドライブからだと思われるので、遠隔操作するためのリモート接続プログラムは、OS上のアプリケーションやサービスとして動作している以上、遠隔操作している状況下でOSインストールドライブに対してHDDの低レベルアクセスはできないから、ということだと思われる。

chkdiskみたいなHDDへの低レベルアクセスが必要なプログラムを実行しようとすると、いったんWindowsを終了し、オンメモリで動作するDOS互換な環境で起動し直してから、そこで実行されるよね。あんな感じ。

Published At2014-03-11 22:10Updated At2014-03-11 22:10

技術日記
Twe-td client for Androidを作ったEdit

Twe-td(http://twe-td.net/)のAndroidクライアントアプリを作りました。Google Play Storeからダウンロードできます。

howto

機能としては単純で、起動すると前回表示した言語/種類の最初のアイテムが表示されます。画面左右の端にある「<」「>」で表示するアイテムを前後に切り替えることができます(「<」「>」が表示されている部分だけでなく、画面端のほぼ全体でタッチに反応します)。

画面下側にある「Engilish」「Tweets」の部分が、現在表示しているアイテムの「言語」「種類」の設定で、その左右にある「<」「>」で切り替えることができます。種類は「Tweets(ツイート)」「Movies(ムービー)」「Pictures(写真)」「Goods(商品)」「All Types(すべてのURL)」が選べます。

スマートフォンでWeb版を表示すると、一度に表示するアイテム的に厳しい端末もあるのですが、アプリ版だと一度に1アイテムずつを素早く切り替えることができるので、たいていの端末で軽快に動作するはず。

iPhone版も1週間くらい前にAppleStoreに申請に出しているんだけど、いまだにWaiting For Reviewのままだなー。iPhone版を作った後に作り始めたAndroid版の方が先に公開されるとは。

Published At2014-03-15 15:37Updated At2020-01-01 04:24

技術日記
Twe-td client for iPhoneを作ったEdit

というか、作ったのはTwe-td client for Androidよりも前なんだけど、ようやく公開されたんで。

機能としてはAndroid版とほぼ同じで、画面左右端あたりをタップするとアイテムの前後移動。画面下にある言語とタイプの左右の「<」「>」をタップすると、言語やタイプが切り替わる。画面右上にあるゴミ箱をタップするとそのアイテムが非表示になる。

Web版だと過去の日付を指定して、「○○語で○月×日に話題になった○○」とかを見ることができるけれども、アプリ版は「○○語で現在話題になっている○○」しか見ることができない。

単にユーザーインターフェースをシンプルにするために、それだけに機能を絞っているだけで、作れば簡単に作れるんだけど。

ところで、Android版にもiOS版にもGoogle Analyticsのアプリ版を仕込んでいるんだけど、プラットフォームごとにGoogle Analyticsのプロパティをそれぞれ別に設定してある。けど、同じアプリの別プラットフォームバージョンを作る場合って、別プラットフォームでも同じプロパティIDを使うのが普通なのかな?

せっかくGoogle Analyticsがその辺を識別して集計してくれるのに、わざわざ別IDに分けてしまうのはアホらしい気がする。と、公開されてから思った。

それにしても、Androidアプリの公開までのスピード感と比べると、iOSアプリのスピード感のなさは、自分で軽量の(作成に一週間もかからない)アプリを作るときには、致命的なくらいきついな。

Androidアプリは実験的なWebサービスを公開するのと大して変わらないスピード感でいけるけど、iOSアプリの10日近いタイムラグは、公開されるまで待っている間に、次のバージョンを開発するモチベーションがなくなるくらいだ。

こんなに間が空くと、既存のアプリをアップデートするよりも、別の新しいアプリを作ったほうがましな気分になってしまう。

Published At2014-03-18 10:53Updated At2014-03-18 10:53