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 されている。

関連情報

スポンサード リンク

2011年7月6日 (水)

今日のさえずり: 要は ε 遷移があるかないかですよ

2011年07月06日

  • 08:44 Android の連絡先(Contacts)の auto aggregation は「名前」「電話番号」「メールアドレス」でマッチング。 http://bit.ly/n57wYi
  • 08:52 初 Huddle。
  • 09:00 と最初に観た映画は「ラスト・オブ・モヒカン」。モヒカンって……。
  • 11:59 RT @mixi_engineers: mixi Engineers' Blogエントリ追加しました → mixi Hackathon in Kyotoのご報告 http://alpha.mixi.co.jp/blog/?p=3427
  • 12:08 弁当と夕方用のパン 514円。 (@ ローソン渋谷東一丁目店) http://4sq.com/q9s3Mp
  • 15:10 「○○さんウンコなんですよ」って、すごい紹介。
  • 15:28 略称は魔開になりました。
  • 17:43 ピンクのメーテル T シャツ着て Shibuya Perl Mongersテクニカルトーク#16 顔出します。 #shibuyapm
  • 17:48 #shibuyapm Shibuya PerlMongersテクニカルトーク#16 リスト (ATND あたりから) http://bit.ly/r0r1ht
  • 17:52 @britty それ冬服ですから!
  • 18:14 RT @mixi_engineers: 本日は18:30から、Shibuya Perl Mongersテクニカルトーク#16を弊社7Fセミナールームで開催します → http://shibuya.pm.org/.../201107.html
  • 18:14 RT @mixi_engineers: テクニカルトークの様子はustでも中継いたしますので、ATNDに漏れたかた、お仕事中のかた、お茶の間からご覧になりたいみなさま、ぜひどうぞ! http://www.ustream.tv/...
  • 18:47 #shibuyapm スタート!
  • 18:52 ゴメンなさい、最近のアニメよくわかんないです。 #shibuyapm
  • 19:03 昔愚直に自分で trie モジュール作ってた。 #shibuyapm
  • 19:08 e の数で挙動が変わるのは知らなかった。何か m4 思い出す。 #shibuyapm
  • 19:08 RT @nipotan: 無駄に @Yappo のハードルがあげられててうける #shibuyapm
  • 19:10 RT @__gfx__: perl -ce 'http://mixi.jp' # syntax ok っていうネタがあったね。 #shibuyapm
  • 19:20 Emacs での正規表現はちょっと毛嫌い。 #shibuyapm
  • 19:56 正規表現じゃなくて正則表現といえば OK。 #shibuyapm
  • 20:03 困ったら状態遷移図書くよね。 #shibuyapm
  • 20:24 やはり DFA とか NFA とかでてくるとワクワクしますね。 #shibuyapm
  • 20:39 Plagger って最近下火なのかな。 #shibuyapm
  • 20:41 今日初の TL 流し。 #shibuyapm
  • 20:50 JSON で終わりそう。 #shibuyapm
  • 22:34 #shibuyapm 懇親会おひらき。Twitter でお見かけしていた方と初めて直接お話させていただけたりしてなかなか楽しかった!
  • 22:36 @makotokaga 今日はお会いできて楽しかったです。これからもよろしくお願いいたします。
  • 22:39 @shamoshamo 今日は VBA の話とか楽しかったです。これからもよろしくお願いいたします。
  • 22:45 @shamoshamo このアイコン知ってます知ってますってパターンはお互いよくあるので、最近ぶらさげるようにしてまーす。
  • 23:27 会社出た。そういえば食いっぱぐれてる。
  • 23:29 要は ε 遷移があるかないかですよ。
  • 23:31 渋谷駅雨降ってきた。
  • 24:06 RT @k12u: めずらしく書いた / Test::mysqld + perl -d を使うと SQLがそのまま叩けて便利 - k12uのアレ http://htn.to/L6sKf1
  • 24:31 RT @riywo: やーmixiさんのオフィスすごいよかった。広いセミナールームの隣に広い懇親会場とか素敵。
  • 24:37 ローソンのそうめん食べた。ほぐし水が井戸水だった。
  • 24:47 それぞれ mixi やってるので非公開コミュニティ作ってやりとりしようとしたけど、マイミクシィどうしじゃなかったので mixi 内で出会えず断念したというケースがあったという話をうかがった。まだまだサポートの余地がある。
[ 7月6日全て ]

2013年3月26日 (火)

オンラインアウトライナー WorkFlowy Pro (有料)にした

オンラインアウトライナー(outliner、アウトラインプロセッサ)サービスの WorkFlowy、しばらく使ってみたところなかなか良かったので有料の WorkFlowy Pro にした。有料版の違いは、

  • 項目数の制限が無くなる。無料版は月500項目までなんだけれど使い始めるとあっという間に無くなるので、制限が無くなるのは心理的なブレーキが無くなるので大きい。
  • 特定の WorkFlowy アカウントとだけリストを共有できる。他に使っている人がいる場合は便利。共有したリストの項目数のカウントはオーナー側につくので、無料アカウントの人も有料アカウントからリストを共有してもらえればガンガン項目追加できたりする。
  • Dropbox への1日1回のバックアップ。結構地味に効く。プレーンテキスト形式と JSON 形式で各世代のものが保存される。間違えて消してしまったり、やはり消さなければ良かったというのにも後でアクセスできるのが安心感がある。workflowy.com が落ちたとしても、バックアップ時点までのは参照できるし。なお WorkFlowy からは「アプリ/WorkFlowy/」ディレクトリ以下の読み書き権限だけを要求するので、Dropbox の他のデータまでアクセスされてしまうのは嫌という懸念も発生しないので良い。
  • テーマ設定とフォント設定の自由度アップ。

といったところ。

いろいろなアイデアノートが貯まってきた時に、タグや検索を駆使してリストの再整理をしていくと、いろいろ気付きがありそうで楽しみ。

  • https://workflowy.com/
    • このリンク先から登録すると通常の2倍のスペースが使えます。
[ 3月26日全て ]

2013年6月12日 (水)

Twitter API v1 完全停止

ついに Twitter API v1 が完全停止となった。

あー、自分の Tweet 取得スクリプトも一部は v1.1 に合わせたのだけれど、RSS フォーマット版で呼んでて JSON 対応は先送りしてたんだよね。

ということで cron で動かしているのだけれど取ってこなくなった。週末修正するかなぁ。それともメンテナンス止めて Twilog のログダウンロードで済ますかなぁ。

[ 6月12日全て ]

2013年6月16日 (日)

Twitter API v1.1 対応とか、パイプでやりとりするの JSON でいいのとか

Twitter API v1.1 に対応していないスクリプトがあって、たしか OAuth 対応はしてあるけど RSS 形式を使っていたので JSON で取得して処理するようにしなければなーと思ってたんだけれど、そもそも OAuth 対応すらしてなかった。

なので Net::Twitter::Lite を使うように書き換え。

あと、いままで1つのスクリプトで「Twitter API を呼び出してタイムライン取得」「シリアライズしてファイルに保存」「Wiki 形式に整形して書き出し」をしていたんだけれど、UNIX 哲学に従って小スクリプトに分割してパイプで受け渡すように変更するなど。

スクリプト間のやりとりは構造化テキストデータなので JSON にしたんだけれど、若干これでいいのかなぁ感はある。テキスト形式だし最近の主流フォーマットではあるんだけれど、それでもシェルから見ると複雑な形式な気がするんだよね。でもあと軽量な構造化テキストフォーマットだと YAML ぐらいかなぁ。

今日のさえずり: 浴室乾燥の影響でトイレが暑い

2013年06月16日

  • 11:46 浴室乾燥の影響でトイレが暑い。
  • 11:56 user_timeline 取得を Twitter API 1.1 からに書き換える必要あるんだけれど、差分大きくて本腰入れる必要がある。
  • 16:05 2時間ほどペーパークラフトした。
  • 16:22 ラムネを水に溶かす実験。
  • 21:45 1コ Twitter API 1.1 対応した。ついでにスクリプトはスクリプトらしくパイプ使えるように分割した。
  • 21:47 標準出力に吐いてパイプで受け渡すの構造化データなので JSON にしたんだけれど、ちょっとモヤっとする。
[ 6月16日全て ]

2013年11月20日 (水)

Shibuya Plack/PSGI Conference (shibuya.pl) #1 #plackcon

LINE株式会社で開催された Shibuya Plack/PSGI Conference (shibuya.pl) #1 #plackcon 「秋のPlack/PSGI祭り」に参加してきた。今回は YAPC::Asia Tokyo でもよくトークされている masartz 氏とご一緒させていただいた。ここの会場にくるのは「第3.5回 データ構造と情報検索と言語処理勉強会」「PerlCasual #05」に続き3回目。

開催を知った時には定員60人すでに埋まっていて補欠だったんだけれど、その後定員80人に増やしてくれたようで参加できるようになった。当日時点ではキャンセル等で定員切っていてきたい人はこれるようになってたよ。

普通に使う Plack/PSGI Server @fujiwara 氏

会場アンケートをとりつつ、必須な/便利なモジュールや Plack::Middleware の紹介。

  • だいたい Starlet か Sterman を使っている。
  • リバースプロキシ使っている時には Plack::Middleware::ReverseProxy が便利。
  • Server::Starter の start_server では plackup を実行するシェルスクリプトを作ってそれを指定するようにするとパラメータ変更できるのでいいよ。
  • Devel::NYTProf する時には if $$ % 11 == 0 などで一部のプロセスだけでプロファイリングするようにすると不運な人は遅くなるけど、全体の影響抑えつつできるよ。

『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3 を受けての話題 @kazeburo 氏

YAPC::Asia Tokyo 2013 の発表の続き。

Plack/PSGI のパフォーマンス向上の取り組みが進めば Perl の適用領域を広がるし(リアルタイムな広告系とか)、Perl 使いの仕事も増えるよ。

Plack::BodyParser の話 @tokuhirom 氏

  • 最近のサーバーサイドの開発JSON API開発と管理画面の開発だよね。
  • HTTP ステータスコードの使い方をシンプルに。アクセス自体が成功したら 200 を返して、API の結果の方に API 処理自体のステータスを入れる方がシンプルだし、アクセスログ処理なども楽だよと。
  • JSON API のボディ内で返すステータスも HTTP ステータスコードと同じにしたら覚えることが少なくて楽。
  • URI の /v1/ とか入れたりするけど /v2/ とか出たためしがない。

など。プラクティカルなトーク。

Plack::Request with Encoding @moznion 氏

リクエスト中のパラメータの decode を Plack で一箇所でやってしまう話。

Mojolicious の知りたい 10 のコト @yusukebe 氏

  • morbo と hypnotoad。それほどパフォーマンス悪くない。
  • Mojo::Base は使わなくていい。それほど機能無いし、Web 系以外では Mojo に依存したくないし。

YAPC::Asia 2014 やります!」とのことです。

LT

@bayashi 氏の plackup -e でちょっとしたこといろいろできて便利だよという話や、@azumakuniyuki 氏の Haineko の話や、 @hkoba 氏のコントローラを書く人がいないプロジェクト向けのテンプレートエンジンの話や、@songmu 氏の .psgi からの卒業の話とか、@tasukuchan 氏のきまぐれオレンジ☆ロードについてのラジオみたいなビデオ LT とか。

空気を読まない(読めない)一方通行なビデオ LT は新しく。

今日のさえずり: きまぐれオレンジ☆ロードについてのラジオみたいなの

2013年11月20日

[ 11月20日全て ]

2014年4月16日 (水)

今日のさえずり: 「闇開発」、意外と Google 検索結果少ない

2014年04月16日

  • 14:44 特定班。 / “「ソーシャル新人類」の不夜城〜10代は何を考えているのか - 恐ろしいほど簡単な個人の特定、「匿名性」の...:ITpro” http://nkbp.jp/1kZXJ5i
  • 14:44 アウトランだって! / “3D アウトラン |セガ 3D復刻プロジェクト” http://bit.ly/1kZXK9c
  • 17:10 「闇開発」、意外と Google 検索結果少ない。
  • 20:36 jq 試している。1行1データをいったん JSON の配列にするの cat data.txt | jq -R '.' | jq -s '.' 以外にいい方法あるのかな?
[ 4月16日全て ]

2014年7月29日 (火)

各行が JSON になっているログファイルを jq でチェック

各行が JSON になっているログファイルのチェックにコマンドライン JSON プロセッサの jq 使ってみた。

とりあえず | オペレータが肝なのと、フィルタリングには select 関数を使えば良いということを理解した。あと関数はパイプライン的に受け取るデータと、引き数とで受けとるデータとの2種類があるのでちょっと慣れが必要。普段からレシピを作っておく方が良さそげ。気がついたら http://www.naney.org/diki/dk/jq.html の方にメモっておくことにする。

ワンライナーで書けるのは便利だけれど、大量の JSON データでかつきちんと parse しないで正規表現で抜けるようなデータの場合は Perl でチャキチャキっとやった方が当然だけれど圧倒的に高速なのでうまく使い分けだね。

[ 7月29日全て ]

2015年3月10日 (火)

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

image:http://www.naney.org/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日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・PO をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.055992s / load averages: 0.43, 0.41, 0.38
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker