カテゴリー
調査ツール

Maigret – アカウント名から各種サービス上のプロフィールを串刺しで調査するツール

soxoj/maigret(メグレ)は、SNSなどユーザー登録ができるサービス群に対し、アカウント名からユーザーページを調査するというツールです。

たとえば @akky というアカウント名があった場合に、twitter や Instagram などメジャーなSNSから、reddit などの掲示板、ブログや趣味のサービスなど大量のサービスについて、それぞれのユーザー akky のページの情報をスクレイプしてレポートを作ってくれます。

動かしてみた様子がこれ。

Maigret でユーザー名 akky を調査した際の結果(一部)

調査の可能なwebサービスは約2500個、Alexaで人気の高い順に個数を指定して調べさせたりもできます。

各サービスのユーザープロフィールページをチェックしにいくということは、ユーザーページのURLパターンを持っているということ。そのデータは data.json というファイルにあり、今登録されていないwebサービスの情報を追加依頼することもできます。

もともと Sherlock という先行ツールがあり、Maigret はそこからフォークして対応サイトを増やしたりしているようです。命名はシャーロックからフォークしたメグレ、というわけですね。シャーロックの対応サイトが500個ほどなのに対して、2500個のサイトのデータを持っているのは頑張っているのではないでしょうか。

とあるサービスのアカウント名から、他のサービスでどんな活動をしているか調べるのを補助するツールということで、他人が望んでいないプライバシーの紐づけにつながる点で警戒する人もいるでしょう。

また、たまたま同じユーザー名を別のサービスで使っている人たちが、誤って同一人物とされ、その間違いから誤情報が生み出されることもあるかもしれません。よくある単純なユーザー名を持っていると、このあたりはハナから別のサービスで同じユーザー名が取れないのは当たり前で気にならないのですが、数字などを含めて長いユーザー名を色々なサービスで使っている人はサービス間での紐づけがされうることに注意すべきかもしれません。

via Hacker News

カテゴリー
データ可視化

metro-clojure – gitリポジトリで地下鉄路線図を作るClojure製ツール

gjhenrique/metro-clojure は、鉄道路線図をgitのコミット/ブランチログで再現するためのオープンソースツールです。

路線と路線に所属する駅名を並べた json ファイルが入力となります。サンプルとしてサンパウロとニューヨークのデータがついてきてるので、それを参考にします。


[
{
"name": "銀座線",
"stations": [
"渋谷",
"表参道",
"外苑前",
"青山一丁目",
"赤坂見附",
"溜池山王",
"虎ノ門",
"新橋",
"銀座",
"京橋",

データをツールに食わせると、git コマンド群を発行するシェルスクリプトを作ってくれます。


$ boot generate-git-commands -c tokyo -f tokyo.sh

大江戸線のような循環があると、git グラフが作れないためツールはエラーで止まります。そりゃそうですね。

都庁前の循環を外して再度挑戦するも、東京のいたるところの乗換駅でエラーが… あちらとこちらで乗り換えができれば、循環だらけにもなりますね。


# 渋谷 銀座線 半蔵門線 副都心線
git checkout --orphan "銀座線"
git commit --allow-empty -m "渋谷"
git branch -f "副都心線" HEAD
git branch -f "半蔵門線" HEAD
# 代々木上原 千代田線
git checkout --orphan "千代田線"
git commit --allow-empty -m "代々木上原"
# 代々木公園 千代田線
git commit --allow-empty -m "代々木公園"
# 明治神宮前 千代田線 副都心線
git merge --strategy=ours --allow-unrelated-histories --no-ff --commit -m "明治神宮前" 副都心線
git branch -f "副都心線" HEAD
# 北参道 副都心線
git checkout "副都心線"
git commit --allow-empty -m "北参道"
# 方南町 丸ノ内線分岐線
git checkout --orphan "丸ノ内線分岐線"
git commit --allow-empty -m "方南町"
# 中野富士見町 丸ノ内線分岐線
git commit --allow-empty -m "中野富士見町"
# 中野新橋 丸ノ内線分岐線

「赤坂見附-永田町」のような別名の乗換駅の同一化を諦め、さらにエラーを起こす乗換駅を同一にしないよう入力データを修正していって、やっとなんとかエラーを出さなくした結果のスクリプトを、新しい git レポジトリに突っ込むことで、部分的には正しいところもあるぐらいの、東京の地下鉄gitグラフ(東京メトロ+都営地下鉄)を作ってみました。

git log で見るとこんな感じ

東京の路線図は循環しすぎなので、使用例としてはあまり良くないかもしれませんね。

もともとパリの路線図をGitHub 上で再現した2015年の作品があり、metro-clojure はこのような作品を簡単に作れることを目指して制作されたようです。

このツールを使えば、地下鉄の路線図以外の何か身近な有向グラフを git グラフで表現することができますね。

via From metro connections to a git graph

カテゴリー
技術

composerize – dockerコマンドラインをdocker-composeの書式に変換してくれるツール

Composerizeは、コマンドラインオプションを持ったDockerコマンドを、Docker Composeの定義ファイルの形式へ変換してくれる、というサービスです。

composerize-screenshot

Dockerコマンドのオプションを列挙してるのが docker-compose.yml なので、コマンドラインパラメーターとymlに掛かれてるものは機能的には一対一に対応してはいるんです。しかし、名前が微妙に違っているパラメーターがあって、コマンドラインで動作確認したものをComposeに移行しようとした際にエラーが出てしまい、両方のマニュアルを開きながら調べて修正、など僕も苦労してました。

Githubで公開されているソースの(コンバート部分を見れば、パラメーターの名前が微妙に違うものが多いのに気づきます)

デバッグ時には反対向きの変換ツールもあるといいかも。

via reddit