nDiki : JSON

JSON (JavaScript Object Notation)

RFC4627

メディアタイプは application/json で、拡張子は json

JSONPerl

Perl モジュールとしては JSONJSON::Syck、JSON::PC などがある。

JSON

JSON は pure Perl モジュールとして実装されている。

Perl 5.005_03 では JSON-1.07 は make test で failする。

JSON::Syck

YAML-Syck パッケージに含まれている。 JSON::Syck は libsyck を用いており高速であるが、オプションが少ない。

Perl 5.005_03 では YAML-Syck-0.82 は make test で failする。

JSON::PC

JSON::PC (多くの場合)JSON::Syck より速く、かつ JSON と同じオプションが用意されている。

Makefile.PL の中で use 5.008 されている。

関連情報

2015年3月10日 (火)

Android + Google Chrome で使える日記アプリ Journey

image:/nDiki/2015/03/10/overview_devicelineup_transparent.png

日記アプリ(ジャーナルアプリ)は「Day One (iOS) + Narrate (Android)」をメインで使っているのだけれど、「別のテーマで日誌をつけるのに分けたい」のと「Web ブラウザでも編集・閲覧したい」というのがあって Journey が良さそげなので使ってみることにした。

Android アプリGoogle Play では Journal (by Journey) になっている。

データは自分の Google ドライブに保存される

データは自分の Google ドライブに保存されるので端末がクラッシュしても大丈夫。開発元の 2 App Studio のストレージには保存されない。「GoogleDropboxEvernote なら自分のプライベートなデータを置くのを許容する」という自分のルール的にも OK。

日記アプリは、ロックインされないことが重要で選択時の大きな基準。Journey の場合は Android アプリから「Export/Backup」で JSON ファイル群を ZIP アーカイブしたファイルで保存する機能がある。 常に XML ファイルとして普通にアクセス可能な状態になっている Day One より一歩劣るものの、 JSON なので移行が必要な時は自分で変換できるので許容範囲と判断。

Google Chrome から閲覧・編集できる

Chrome アプリがあり PC から閲覧・編集ができる。PC 向けには公式には Mac アプリしかない Day One とは違って WindowsLinux でも使えるのが良い。なお Android アプリとは関係無しに Chrome ウェブストアから Chrome に追加して使えるので、PC のみで使うというのもあり。

ちなみに Journey Web ( http://journeyapp.me/ ) で Chrome アプリを入れなくても自分のジャーナルを閲覧できるようになっている。

ローカルホストから直接 Google ドライブにアクセスし 2 App Studio 側を経由しないと言明しているのでプライバシー的にも安心(信用する限り)。

Chrome アプリでは、いにしえの Evernote を彷彿させる巻物的表示(全文を時系列にスクロールで見ていける)なのがとても良い。個人的にこのタイプの表示が好きなのだけれど、現状少ないので嬉しい。

文字が大きく行間が広いのでかなりスカスカ感はあるので、もう少しタイトになるといいなとは思う。

その他

Markdown をサポートしているのも良いところなのだけれど、見出しがセンタリングだったりするのがそこはかとなくダサい。

あとはまずまず良い感じ。

(画像http://2appstudio.com/journey/ より。)


[ Android アプリレビュー ]

[ 3月10日全て ]

2015年3月19日 (木)

今日のさえずり: あのまとめ、中の人が作成したっぽいな

2015年03月19日

  • 10:51 NAVERまとめにあるあのまとめ、中の人が作成したっぽいな。同じユーザーが他のまとめも数個作っているけど更新日が2日間ぐらいに集中しているし、ダミーと推測。
  • 13:44 I'm at どん兵衛屋 渋谷駅ナカ店 in 渋谷区, 東京都 http://4sq.com/1Gs5QxK
  • 13:50 初どん兵衛屋。意外に広くゆったりしている。 https://flic.kr/p/qK7yY6
  • 14:04 どん兵衛屋、マクドナルドよりリラックスできるぞ(ただしどん兵衛の CM がエンドレスで流れている)。
  • 20:06 昨日 Perl で書いたスクリプトを(まともに書いたことがない) Go で書き直してみてた。 encoding/json で JSON 文字列を Unmarshal すると面倒なことはわかった。
  • 24:37 ずっと ~/var/Dropbox にしていたんだけれど ~/Dropbox に昇格させた。その方がスクリプトを書くの手抜けるし。
[ 3月19日全て ]

2015年9月8日 (火)

Markdown ビューアを OpenID Connect を使って Google アカウント認証できるようにした

社内で動かしている Markdown ビューアについては去年 mixi Open ID 認証にしました(記事)。ですが mixi OpenID については 2016年1月25日提供終了となっていますので今回認証を変更しました。

今回は Google アカウント認証できるように OpenID Connect を使ってみることに。基本的には OAuth 2.0 とほぼ同じです。

認証ページ(https://accounts.google.com/o/oauth2/auth)にリダイレクトさせる時に scope パラメータに 'openid email' を指定しておきます。

そしてコールバックを受けて https://accounts.google.com/o/oauth2/token でアクセストークンを取得した際に、レスポンスに一緒に含まれる id_token をパースして email 取り出します。今回はそのメールアドレスが指定ドメインだったらアクセスを許可するという処理にしました。

JSON Web Token (JWT) である id_token のパースには OIDC::Lite::Model::IDToken モジュールを使用。

 $email = OIDC::Lite::Model::IDToken->load($id_token)
    ->payload->{email};

で email が取得できます。

[ 9月8日全て ]

2017年9月29日 (金)

初全ツイート履歴ダウンロード

自分の Tweet は API で取ってきておおむね nDiki の記事にまとめてあるのですが、使い始めの頃はそんなことをしていなかったので手元にデータとして取ってありませんでした。公式機能で全ツイート履歴ダウンロードができるのは知っていましたがそのうちと思いつつずっとやり忘れていたので、ようやく腰を上げて全ツイート履歴リクエストを設定からしてみたところ、ほどなくして準備完了のメールが届きました。

ダウンロードした ZIP ファイルの中をみると、予想していた通り人間用に HTML ファイルがありました。そしてそれ以外に CSV 形式ファイル・JSON 形式ファイルが含まれていてきちんと利用しやすい形になっていて良くできているなと感心してしまいました。良いですね。

きちんと README.txt をみてみたら HTML ファイル (index.html) は JSON 形式ファイルを読んで表示するページになってました。なるほど。API のレスポンス仕様と同じ JSON 形式をエクスポートデータにしているのですね。

[ 9月29日全て ]

2018年6月13日 (水)

web app manifest #nNote

Web アプリや Web サイトモバイル端末のホーム画面などに表示する方法を指定するための JSON ファイル。PWA (Progressive Web App) では必須。

[ 6月13日全て ]

2018年11月28日 (水)

今日のさえずり: Remember The Milk に インポート・エクスポート機能が入った。バックアップしておけるようになったの嬉しい。

2018年11月28日

[ 11月28日全て ]

2018年11月29日 (木)

今日のさえずり: チャリ走のシャツを着ている人とすれ違った。いいなー。

2018年11月29日

[ 11月29日全て ]

2021年1月11日 (月)

今日のさえずり: 我が家にもキットカットのダウンサイジングの波がやってきた

[ 1月11日全て ]

2022年8月25日 (木)

Chart.js をちょっと使ってみる

最近 HiveQL クエリを実行して集計したりしている。 可視化Google スプレッドシートで。 Google スプレッドシートは考察を一緒に書いておきにくい。

MkDocs で生成しているノートに一緒にチャートをおけるといいなと思って Chart.js をちょっと使ってみた。

MkDocs プラグインはなさそうなので、素で canvas 要素と script 要素を Markdown ファイルの中に書いて動かしてみた。

CSV ファイル (あるいは TSV ファイル / JSON ファイル) を読み込むようにできると管理が楽かな。

機会がある時にちょっとずつ使ってみよう。

[ 8月25日全て ]

2022年12月6日 (火)

今日のさえずり: 今夜早めに寝ないと明日の床屋で爆睡してしまう

  • 07:43 買って良かったもの: Google Pixel Buds Pro https://www.naney.org/...
  • 08:46 窓の結露拭き生活が始まった。 サッカー観戦で昨夜遅くまで起きていたのと今朝の冷え込みとでいきなりたっぷり。
  • 09:05 息が白い!
  • 12:53 Deckset が TextBundle 対応するんだ。 iOS 版との同期のためにね。
  • 12:55 そういえば、Deckset でなんちゃって TextBundle してみるのを前にやってた。 https://www.naney.org/...
  • 17:37 最近 one-on-one ミーティング中にノートを書き残すのサボりがちだな。もうちょっと積極的に書くようにするか。
  • 19:03 Canvas コアプラグインが追加された Obsidian v1.1.0 がリリースされた。 ロードマップにあった Canvas ってこれか。またえらいものが追加されたなあ。
  • 19:14 ノート・メディア・カード・Web ページを配置できて、キャンバス上でコネクタで接続もできる。 Canvas は拡張子 canvas の JSON ファイルとして保存される。
  • 19:46 試合終了後に寝て 6:20 起きだったので、今夜早めに寝ないと明日の床屋で爆睡してしまう。
  • 23:09 Pixel 7アップデートして Google One VPN をオンにしてみた。
  • 23:12 来年には Google One スタンダード 200 GB プランでは足りなくなってプレミアム 2 TB プランにする勢い。 そうすると Pixel 7 じゃなくても Google One VPN 使えるようになるんだよね。
  • 00:56 Canvas は現状 Obsidian 専用なので、残さなくてもいいもの用だな。 描いて考える時の使い捨てノート的な。
  • 25:15 2022年12月6日 (火) したこと - Camo Plugs とピルケースを注文する - Pixel 7Google One VPN をオンにする - 『うる星やつら』第8話を観る
[ 12月6日全て ]

About

Process Time: 0.035135s / load averages: 0.39, 0.35, 0.28