カテゴリー
ツール

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

カテゴリー
ネットのサービス

Codem Ipsum – ソースコードを Loren Ipsum化

JavaScript のソースコードを左側のペインに入れると、Loren Ipsum風に関数・変数名を置き換えて右側に表示してくれる、というwebサービスです。

本やウェブサイト制作時の文章のダミーとして使われることで有名な Lorem Ipsum のように、ソースコードのダミーとして使うことができるということ。

作者は「文法的には正しいまま、ダミーのコードを作りたかった」とのことです。変換後のコードも動くのか、は不明です。たぶんいろいろ不具合がでるんじゃないかな。

ソースコードは公開されたサイトのhtmlそのままですが、GitHub にも上がっています

via Hacker News

カテゴリー
技術

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

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

composerize-screenshot

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

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

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

via reddit