macOSのDay Oneにプレーンテキストをインポートする

macOS Catalina 10.15.4 Day One 4.11.1 とします。 Day Oneのインポート機能 Day Oneはさまざまな形式のデータをエントリとしてインポートできる。 Importing data to Day One | Day One Help 日付形式の問題 上述したサポートページには、プレーンテキスト…

GraphQL開発のベストプラクティスをまとめた"Principled GraphQL"を読んだ

"Principled GraphQL"はApollo社が公開しているGraphQL開発のベストプラクティス集です。 principledgraphql.com 背景として、近年のアプリケーション開発では「データグラフ」が重要になってきているとしています。GraphQLを通じて、ある企業のすべてのアプ…

値の妥当性をチェックする日時表現パーサを作る

『Haskell入門』に日時表現("YYYY/MM/DD hh:mm:ss")のパーサをAttoparsecで作る節*1があり、 このままでは9999/99/99 99:99:99のような入力ができてしまいますが、月の入力範囲を1~12に制限するといった制約をかけることも、これまで説明した範囲で簡単に実…

リソースとActive Recordのモデルのあいだの差異を吸収するクラスを作る

Web APIのリソースとバックエンドで扱うモデル(特にActive Recordのモデル)に歴史的な事情で差異があり、単純にモデルからリソースへと変換できないとき、それらの差異を吸収するクラスを作って対応することがあったのでメモを残しておきます。 問題 あるW…

関数をFunctor/Applicative/Monadにする

『プログラミングHaskell 第2版』の12章「モナドなど」の演習*1で型 (a ->) をFunctor(関手)、Applicative、Monadにするという問題があり、少しわかりにくかったので、いまの自分自身の理解をまとめました。 型(a ->)とは 部分適用された関数の型を(a ->)…