カテゴリー
ツール

JSONCrush – JSONをURIに圧縮して載せるためのライブラリ

KilledByAPixel/JSONCrush は、JSONをURLに載せやすい形に変換するライブラリです。

JSONCrushのデモサイト。JSON形式のデータを左上に入力すると、それをテキストとして圧縮し(↓)、さらにURIとして使える文字に縁故度しています(→)。

今回入れてみたJSONでは、そのままURIエンコードした場合に比べて52%、約半分のサイズとなりました。

URLにユーザーが入力した結果のJSONデータをなるべく小さくして載せるというのがライブラリの目的です。URLに再現のためのパラメータが全部載っていれば、結果をブックマークしてもらえばいつでも同じパラメータのページが再現できます。サーバーサイドでいろいろ面倒な処理をして覚えておく必要がありません。

そのままURLEncodeする手もあるけど、URLのサイズ上限(2000バイトちょっと)に引っ掛かるのは避けたい、と。HTTPパラメータとして個別に受け取ればもっとコンパクトにできるのでしょうけど、JSONのまま渡せるのは場合によっては楽なのでしょう。作り手側に楽という意味ですが。

使ってるJSCrush ライブラリが変換部分を担っていて、これは特定の文字列内でテキストをエンコードしてくれるもののようです。JSCrushのデモサイトはこちら。

JSCrush は minify したものしかないらしく、
その動作を解析してる人がいました。この解説によれば、JSCrushライブラリは、1KbyteのJavaScriptで何ができるか、というコードゴルフコンテストの2012年の作品で使われたものだそうです。

via Hacker News

カテゴリー
プライバシー

SocialSharePrivacy – ソーシャルメディアの埋め込みボタンに訪問を追跡させないライブラリ

SocialSharePrivacy は、ウェブサイトの提供者が、利用者に対してプライバシーが保たれるソーシャルメディアボタンを提供するためのライブラリです。

デモページを動かしてみました。スライダーでボタンを有効にしない限り、フェイスブックやツイッターのサーバに情報は送られません。

まずボタンを有効にするアクションを起こすと、初めてメディアが提供するボタンが有効となり、この時点でそのページに訪問したことは各サービスにも伝わります。そして、有効になったボタンをクリックすると、「イイネ」等をすることができます。

2回クリックをしなければならなくなった代わりに、そのページに訪問したことは各ソーシャルメディアサービスには知られずに済む、ということになります。

サイト訪問をしていることをソーシャルメディアから常時されるのは困る、しかし、イイネ等をしたい時にはできるようにしてほしい、という多少込み入った要件のサイトがあれば、このライブラリが一つの解決法となるでしょう。

SocialSharePrivacy のコードはすべてGitHub で公開されています。

カテゴリー
データ可視化

手書き風グラフを描けるライブラリ xkcd.chart

英語圏でエンジニアに人気の線画コミックサイト xkcd には、グラフを使ったジョークネタも頻出します。こんな感じ。

xkcd に出てくるようなグラフは、だいたい手書き風のテイストで描かれているのですが、その手書き風グラフを再現できるグラフ描画ライブラリが xkcd.chart です。


日本語も出ますね。日本語入れると凡例の枠がはみ出てしまうので、ソースの調整が要るかもしれません。xkcd 風のフォントも同梱されていますが、日本語ではデフォルトフォントになるでしょう。

円グラフ、折れ線グラフ、棒グラフ を描くことができます。


ウィンドウズグラフの元ネタ