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

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

ネイティブ広告/記事広告を検知して強調表示するブラウザ拡張AdDetector

「ネイティブ広告」というキーワードがネット広告関連の新しい流行語になりつつあるようです。

ネイティブ広告とは

ネイティブ広告は、本来の記事がある部分が記事の形式を取った広告となっている、というものです。従来のバナー広告など、記事本体部分とは別の場所に表示されたあきらかに広告とわかる広告と違い、記事として読まれることを狙った広告、ですね。

もともと「記事広告」という名前で新聞や週刊誌などでもずっと存在していたものと同じようにも思えるのですが、「ネイティブ広告は一方的な視点でなく公平に掛かれた記事で、内容の面白さや有用さを武器にソーシャルメディア等でバズらせるという点で(面白くない宣伝を記事のフリをして読ませるだけの)記事広告とは別のものだ」などという風にいう人たちもいるようです。たしかに「これがネイティブ広告だ!」みたいな成功事例ではそのような素晴らしいコンテンツもあるようですが。

ただし、コンテンツ的に素晴らしくても、広告であることを隠すことは良くないこととされていて、ネイティブ広告でもページのどこかには、それが広告だという何らかのしるしが入っていることが多いです。特にアメリカではこのあたり厳しいので。

ニューヨークタイムズのネイティブ広告は、ネイティブ広告の最近の大成功例として紹介されます。また、新興バイラルメディアの雄BuzzFeed などもネイティブ広告を使っています。

広告であることを隠そうとするメディア

しかし、本来記事を書く部分を広告として売っているメディア側は、どうも広告だということを大々的に示すのは好きではないようで、このようなネイティブ広告・記事広告でも、目立たない箇所に小さくスポンサー名を入れたり、カテゴリー名などほとんどの人が読まないところに「PR」と入れたり、最低限の表示だけして、読者に広告だとわからせないようにしているところが多いようです。お金を出している広告主もそういう隠す意向があるのかもしれません。

読者から見たら、スポンサーからお金を貰って書いているなら、そうだと知りたいところですよね。「記事で褒めているから買ったけど、あとで記事は広告だったと知った」、なんていう体験をするのは、多くの人にとって面白くはないのでは。

ブラウザ拡張で広告なら強調表示

そこで登場したAdDetectorは、ChromeブラウザおよびFirefoxブラウザ用の拡張機能で、大手メディアのネイティブ広告の告知部分をプログラムで検知して、ページの最上部に大きく「これはスポンサー○○の広告ですよ」と表示してくれるというツールです。

ad-detector-screenshot-annotated

この拡張が入っていれば、漫然といろいろな記事を読んでいる間に、実は広告な記事が開かれても、すぐに気付くことができるというわけです。

AdDetector はオープンソースとしてGitHub上で公開されており、今は対応されていないメディアについての検知スクリプトを書いて取り込みのリクエストをすることも可能です。Forbesやハフィントンポストなどの超大手メディアも対応しているようで、すでに世の中にネイティブ広告や記事広告がかなり多く存在していることがわかります。

日本のネットメディアは、新聞や雑誌ほど「広告だということを示さなければならない」というルールがきっちりと決まっていないため、すみっこに小さく「PR」や「広告」と書いてあるだけでも、まだましな方という話もあります。このようなツールが普及したら、広告であることがわからないように記事広告を載せるメディアも増えたりして逆効果かもしれないので、上から決まるのでも業界の自主規制でもいいから、広告は広告と書く、というルールがきちんと決まるといいですね。

時間や状況で変化するデジタルな案内標識 Points

新しい方向標識デバイス Points は、よく街中や観光地にあるような方向と距離が示されている標識を、LEDディスプレイとネット接続で再発明したものです。

points-1

「地上で最も進んだ標識」かどうかはわかりませんが、デザインもいいですね。16000個のLEDを使っているそうです。

これは普通に、バス乗り場の方角やそこまで歩いて何分か、などを表示している様子。

points-2

パブやレストランを案内したり、ヤンキースが勝ったかどうかを教えてくれたり。地下鉄やバスについては、あと何分で来るかとか、事故で遅れている、などといった情報も表示できそうです。

points-3

標識の下部にある操作パネルで選ぶことで、表示の内容は変化します。ランチタイムにはランチの店を、夜はディナーの店を。時間帯によって提供する情報を変えられます。

points-4

“ツイッター”なんていう選択肢もあり、人気のハッシュタグと、どの都市や国で人気なのかを、方角も合わせて表示してくれます。今ハリウッドでオスカーの発表をやってるよ、といったことがわかるんですね。

points-5

今からやるコンサートやイベントを教えてくれれば、今日そのイベントがあることをぜんぜん知らなかったという人も、ふらりと寄ってくれるかもしれません。

全方位360度に回転する様子は、やはり動画で見てください。

サイトでは実際に設置されている場所をwebカメラで見ることができるようになっていて、ツイッターで #PointsSign をつけてつぶやくことで、

表示がリアルタイムに変化する様子も見られるということなのですが。今カメラが映らなくて確認はできていません。いろんなところで紹介されたせいでトラブルになっているのかもしれません。