「情報共有ツール」カテゴリーアーカイブ

コスプレ写真でGitを学ぶレポジトリ komeiji-satori/Dress

GitHub のkomeiji-satori/Dress は、自分のコスプレ写真をGitで管理し共有するため(A Study and Practice project of git)の学習用レポジトリです。

当プロジェクトで、リポジトリの clone, ブランチの作成, コミットのpush/pull, プルリクエストの作成, の全プロセスを学べます。Git/GitHub の使い方がわかるようになるでしょう。

This project helps you to learn the whole process of cloning a repository, creating a branch, pushing and pulling commits, and making a pull request, thus you can have a good knowledge of Git/GitHub’s usage.

100名近くの contributors が参加していますね。Hacker News で紹介されたことでどっと増えているのかもしれません。

説明が中国語と英語の併記で、必ずしも同じ内容が両方で書かれているようでもないですが、もともとは女装コスプレか異性装コスプレの共有場だったのかもしれません。Contributing.md には「他人の写真を載せない」「可愛いは正義」「性別不問」という参加条件が載っています。

public に全データが公開されていることから、データを利用したウェブサイトが複数作られ、README 中でも紹介されています。

ライセンスはCC 4.0 by-nc-sa とあるため、利用条件に従ってここの写真を再利用する人も出るかもしれませんね。

元々ソースコードの管理や共有のために作られた Git ですが、IT関連の電子書籍の編集などで使っているケースもあります。コードを書けなくても、いろんな人が自分の目的で使える場があれば、世の中の Git 親和性や バージョン管理への理解も高まるのかもしれないなと感じました。もしかしたらすでにあるのかもしれませんが、句会とか水彩画とか、いろいろな趣味の発表場所として使われていくのかも。

via Hacker News

Aileen – 周囲のWiFiデバイスをカウントしてその場の人数を記録するツール

Aileen は、WiFi の電波から周囲にあるスマートフォンなどのデバイスを数え、記録するためのツールです。

WiFi がオンになっているデバイスのMACアドレスを使って、周囲にあるデバイスの数を記録し、時系列データなどをダッシュボードでまとめて表示します。(MACアドレスはハッシュ値のみ保存されます)

Aileen は、利用者として NGO による人道的な活動を想定しているということ。たとえば、難民キャンプでの人の出入りや活動を見守る、といった使い方です。キャンプの中にいる難民の数の変化をより正確に計ることで、サービス提供側の人員計画などを立てやすくすることができるのだとか。

先月にはコードがオープンソースで公開されており、WiFi 情報を収集して利用するというセンシティブな目的に対し、正体不明の第三者のツールに頼らずに済むのが利点だということです。

また、難民キャンプなどでは常に安定したインターネット接続が使えるとは限りません。そのような利用シーンを考え、Aileen を動かすPC自体はインターネット接続が無くても動けるようになっています。複数台を設置してデータ収集している場合は、ネットに接続した時点で情報を送信するそうです。(ハッシュ化された個々のMACアドレスを送信するのではなく、集計した結果のみを送るそうです)

今月には、ギリシアのレスボス島にある実際の難民キャンプで、2セットが試験運用を開始しているそう。

難民といえども、今は普通にスマートフォンを持っているのだろうと思います。むしろ情報収集等のために無いと困るぐらいかもしれません。デバイスを持たない人もいますが、スマートフォンの存在から人数を計るというのは、人手を掛けずにすむ効率的な方法なのかもしれないですね。

日本に今難民キャンプはありませんが、プライバシーへの配慮がされていることや、オープンソースとして動作の仕組みが公開されていることから、NGO などで他の人道的な運営に転用したりすることもできるかもしれません。

Toodles – ソースコード内コメント中の ToDo を集めてやるべきTodoリストを一覧、更新できるwebツール

Toodles は、ソースコード中に書かれたコメントの ToDo を収集し、次やるべきことを可視化してくれるというオープンソースのwebアプリです。

ツール自身への入力として、Toodles 自体のソースコードを使いましたが、それとは別に適当なソースコードに ToDo コメントを仕込んで、一緒に読ませてみました。


var MAX_HEIGHT = 320;
var SQUARE_SIZE = 150;
var thumbnailBucket = process.env.DESTINATION_BUCKET_NAME;

// TODO (hoge|p=8|#js|#test|#newTag) - アレをナニしないといけない
exports.handler = function(event, context, callback) {
var originalBucket = event.Records[0].s3.bucket.name;
var key = event.Records[0].s3.object.key;

ソースコードとして指定したディレクトリ以下で、対応しているプログラミング言語(readme に一覧が載っていますが、主要なプログラミング言語やシェルスクリプト、yamlファイルなどをサポートしています)のファイルをすべて解析して、ToDo リストを更新してくれます。

また、Webアプリ側からもToDo を消したり、優先度やタグなどを更新したりでき、その結果は元のソースコード側にもちゃんと反映されます。

コメント内の ToDo の表記で、担当者、タグ、優先度などとコメントを書くことができ、webアプリ上ではそれらを使って ToDo を絞り込んだり、ソートしたりもできます。

Toodles は Haskell で書かれていて、GitHub でソースコードが公開されています。

# Haskell の環境が無かったので、Docker で動かしましたが、Stack でのアプリのインストールにかなりメモリが必要で、Docker が使えるメモリを2Gb→3Gbにしてやっと動きました。

巨大なプロジェクトの ToDo をこれで管理するのはさすがに難しいかと思いますが、個人レベルのちょっとしたのプロジェクトなんかだと、別管理することでむしろソースコードと issues の対応が取れなくなってしまうこともあるし、ソースコード内で ToDo 管理してしまうというこういうアプローチも、回る場合もあるのかもしれません。

via Hacker News

ephemeral – AWS Lambdaで古いツイートを自動削除

1年半ちょっと前にノマド・フリーランサーとなったビッキー・ライさん(Vicky Lai, @hivickylai)が公開したのは、過去のつぶやきがひたすら溜まっていくツイッターを、最近書いたことだけが共有される場所に作り替えるスクリプト ephemeral 。しかも、AWS Lambda の無料枠で動いてしまいます。

“ephemeral”は「束の間、短期間の」といった意味の単語で、発信した内容が後で消えてしまうようなサービスを形容するのにもつかわれますね。共有した写真が消える Snapchat もそうですし、つい先日発表されたGmail の「自動消滅メール」機能なんかもエフェメラルと言えそうです。

ライ氏はブログ記事”Why I’m automatically deleting my old tweets using AWS Lambda”(古いツイートをAWS Lambdaで自動削除する理由)の中で、家具や過剰な衣服や書籍、子供の頃のおもちゃや書いた絵などを捨て、カバン一つで好きなところに行けるミニマリスト的な生活に移行する中で、何年も前のある時点で思い付きでつぶやいたことを一字一句違えずに復元できることは重要ではないのでは、と思い至ったそう。

(ライ氏にとってのtwitterは)今を友達と共有するためのツールであり、であれば、一定期間より前のツイートは残らない方がいいのでは、と、今回のようなツールを開発し、実際に使うようになったということのようです。ライ氏のツイッターアカウントを見ると、今は15個のツイートだけが残って見えます。

セットアップ

使い方は、golang のソースコード中に Twitter API のキー等を埋め込み、提供されている シェルスクリプトでビルド&デプロイするだけ。Anaconda という golang のtwitter APIハンドリングライブラリのおかげか、コードはとても簡潔に見えます。

エフェメラルなソーシャルメディアの利用

長いことツイッターを使っていると、昔と今では考え方が違うこともあるし、今なら賛成できないようなことをつぶやいているのを見つけたり見つけられたりしてしまうかもしれません。いつか何かで炎上した時に、過去に遡って言ったことを発掘されたりするであろうことも、実際のネット炎上を見れば想像できてしまいます。昔のツイートを残すことによる不利益はたくさんありそうです。

実際、頻繁にアカウントを捨て、新しいアカウントを作ることで過去との連続性を消してしまうユーザーもいます。ライ氏のように割り切って「今だけを今の友人に伝える」ツールとしてツイッターを使うのが合う人もいるでしょうね。

ツイッターに限らず、ソーシャルメディアで過去にした発言やイイネ等が解析され、嗜好の分析や確度の高い広告表示等に使われている状況では、あえて自分が公開したコンテンツを一時的なものに留めることの利点もあるでしょう。広告で食べているソーシャルメディアの運営側からすれば面白くはないアイデアでしょうけれど。

LiveDwangoReaderからInoreaderへ移行しました

素晴らしいRSSリーダーを無料提供してくれてきたライブドアとドワンゴには感謝しかないです。

8末のサービス終了が見えてきたので、ついに長年使っていたリーダーからの移行が必要となりました。移行先はとりあえずInoreaderです。

LDR から opml をエクスポートして、そのファイルを Inoreader の[設定]-[インポート/エクスポート]-[OPML のインポート]で読み込ませます。

(30分ぐらい経過)

インポート中のプログレスバーが80%ぐらいで止まったまま動きません。別のタブでリーダーを開くと、それなりにフィードの移行はできている模様。表示が80%なだけなのか、80%のフィードしか移行できなかったのか、パッと見わからない。

LDRとInoreaderで購読中のフィード数、みたいな情報を探す。LDR の方はフィードの編集で「すべて」の所に件数が表示されました。1200件ぐらい。Inoreader は使い始めたばかりで、購読フィード数的な情報があるのかどうかわかりません。

1200件のうち2割が移行できてないとしたらたいへんです。しかし1200件のどれが移行できてないかを調べるのも大変。

インポート済の Inoreader からも opml をエクスポートし、二つの opml を比較することにします。オンラインでそういうツールないかなと思ったのだけれどちょっと検索しても見つからず。

とりあえず opml のパーザを適当に。vipnytt/opmlparser – Packagist

composer.json を書く


{
"require" : {
"vipnytt/opmlparser": "dev-master"
}
}

opml を配列にしてくれるので、配列の要素を比較するコードを書く。一回限りの利用なので、opml ファイル名は直書きで。


getResult();

$htmlUrlArray = [];
array_walk_recursive($array, function($value, $key) use(&$htmlUrlArray) {
if ($key == 'xmlUrl') { // or check by other tags like 'title', 'xmlUrl', 'htmlUrl', etc.
$canonicalizedValue = canonicalizeUrl($value);
$htmlUrlArray[] = $canonicalizedValue;
}
});

return $htmlUrlArray;
}

// show how many items exist before and after
//var_dump(count($ldrUrlArray));
//var_dump(count($inoreaderUrlArray));

// show different items
var_dump(array_diff($ldrUrlArray, $inoreaderUrlArray));
//var_dump(array_diff($inoreaderUrlArray, $ldrUrlArray));

件数を出してみると、LDRでの1200件ちょっとがInoreaderでは1000件ちょっとしか存在せず、なるほどインポートが途中で失敗している模様。

array_diff で、移行できなかったフィードの情報を出力し、これを確かめてみたけれど、意外にコピーされているものもある。Inoreader がインポートの際に、「atom は無いけど feed はある」とか「http じゃなくて https ならある」とか探してよしなにしてくれているっぽい。また、指定された feed が完全にアクセス不可能だったりすると、インポートしてくれていない模様。

明らかに移行できてないポイントを調べて、そこから下だけの小さな opml を作って再度インポートに挑戦。もう一回 opml を出して比較したところ、数十件程度の差になったので、とりあえずこれでいいことにします。

Depressed? 自分が憂鬱かどうかをAPI提供できるオープンソースアプリ

AreYouDepressed は、自分の状態が鬱かどうかを知らせるためだけのサイトと、そのAPIを提供するためのソフトウェアです。

デモサイトにアクセスすると、鬱なら”Yes”、そうでないなら”No”が、色やバックグラウンドのアニメーションをそれぞれ変えて、表示されます。

is-evan-depressed-no

設置者には、4時間置きに指定したアドレスにメールが届き、”Yes”か”No”をクリックすることで状態が更新されます。

JSON APIで現在の状態や、

is-evan-depressed-api

最近の履歴を取得することもできます。

is-evan-depressed-api-all

メールだけでなく、管理画面から更新したり、状態を問い合わせるメールを送らない時間帯を指定したりする機能もあります。

is-evan-depressed-admin

PHPのLaravelフレームワーク上に構築されたアプリのソースはGitHubで公開されていて、自分用の同種のサイトを公開することができます。

鬱状態を広く世界に通知する以外にも、状態を伝えるという単機能のサービスとして何か使いみちがありそうな気もします。

https://depressed.evan.netsoc.co