MongooseMongooseを利用している場合、読み込んだドキュメントをserialize/deserializeしたい場合があると思います。serializeは雑にtoJSON、でいいと思うのですがdeserializeはどうするのか?一つのやり方として、hydrateメソッドを使用するやり方があります。}ここで気になるのがhydrateした場合は、永続化済みかどうかのコンテキストがわかるのかという疑問があります。通常はドキュメントのisNewプロパティ調べられますが、hydrateした場合はどうかということです。検証してみる試してみた結果はisNewプロパティがfalseになっていることがわかりました。falseが返ってくるが根拠はなんだろうか?しかし、isNewがfalseになる根拠はなんでしょうか?これはMongooseのソースを読まないとわからないのでみてみます。model;};queryhelpersを読み込み、createModelを実行してモデルを初期化しているようです。引数にisNewオプションを指定していますね。hydrateでドキュメントに戻した場合は強制的にisNewがfalseになります。true});当たり前といえば当たり前ですね。そんなことはなかったです。Nodejsnetlifyを利用していて、デプロイ時のNodejsのバージョンを指定したいので調べてみました。ドキュメントでは下記のやり方があるようです。docs.netlify.com環境変数のNODE_VERSIONで指定する。.nvmrcをリポジトリのルートに置く。環境変数はバージョンを切り変える際に変更するのが面倒なので使用しないことにしました。.node-versionを置くことにしました。いうのも、自分は普段ローカルではnodenvを使用しているので、.node-verisonを置くだけでバージョンの切り替えができて都合がよかったからです。バージョンあげるのも.node-verisonを書き換えるだけで済みますし、非常に楽ができます。Shoes2018年から引き続き履いているもの、買い足したもの、手放したものを集計対象にしています。昨年の末くらいから集計できるように年間のレポートを表示できる仕組みを365shoesに追加していました。2019年は520件を投稿していたようです。一つの靴について、だいたい年間で15回ぐらいの着用、サンダルのみ使用頻度が高いので、倍ぐらいの着用回数になっています。靴は1年間で10足増えて、5足手放し、合計で28足になりました。集計のレポートはまたちょっと変える予定です。18買い足したものオーダーしたWescoが届いたり、サンダルをオーダーしたり、Redwingのブーツ買ったり色々ありました。イギリスの靴が増えましたね。31手放したもの昨年は住んでいる上の階で水漏れがあり、リビングで水が垂れ始めたので対応する場所を確保するため泣く泣く手放しました。おかげで、ブーツフェスティバルにいけませんでした。stanzaOCamlプログラムをduneを使用してビルドしている場合、インストールする時にバイナリファイル以外のファイルも一緒にコピーしたい場合があると思います。それをopam、duneを使用している時にどのように行うか調べました。設定はduneファイルにStanzaの設定を追加するだけです。dune.readthedocs.iofilesにコピーしたいファイル、sectionにコピー先、packageにパッケージ名を指定します。ファイルがコピーされます。/Users/holyshared/.opam/4.09.0/share/ogenになります。stanzaのいずれかと一緒に指定する事になると思います。my_package))プログラムからのファイルの参照インストール時にコピーしたファイルを読み込んだりしたい時、opamの場合はパスを環境変数のOPAM_SWITCH_PREFIXを利用して解決します。これはopamでコンパイラのバージョン切り替えたりしても正しく切り替わります。利用してパスを取得します。""パッケージのインストールパッケージのインストールはビルドした後に、installコマンドを実行することでローカルにインストールできます。Test自分の場合は現在時刻を引数で渡すようにしました。モジュールやコンテキスを表すデータ型みたいなものを渡してもいいんですが仰々しいので。t-wada.hatenablog.jpコードはここに置いてあります。GitHub実装として、ファンクタに表示するメッセージのリストを渡して、挨拶用のモジュールを定義できるようにしてあります。モジュールは下記の4つのモジュールです。]end)またテスト用のパッケージをインストールするのが面倒だったので、テストの実行部分のコードを書きました。通常はounitやppx_inline_testとかを使用した方がいいと思います。ビルドもduneではなくocamlfind、ocamloptを使用しています。適当なコード書くときに*.opam、duneファイル書くの結構面倒なんですよね。感想OCamlで時刻を扱うコードを書くの今ままでなかったので、標準モジュールを調べたりして、またOCamlに詳しくなりました。今回はUnixモジュールのlocaltime、time関数やtm型を使用しました。Windowsでは動かないと思います。トラッカージャケット買ってみたLevi’sのトラッカージャケット10月5日に発売ということだったので、面白そうだし買おうかなと思いWebから購入しました。Webだと1日早くて、4日から買えたみたいです。これは米国だと、前に発売されていたみたいで、自分の場合はrebuild.fmで知りました。rebuild.fmセットアップ本当は10月12日に届く予定だったのですが、台風だったので13日に受け取り、その日のうちにセットアップし、実際に着てみました。セットアップは専用のアプリケーションをインストールして、チュートリアルにそって操作していくだけでできました。自分の場合は音楽再生が一番わかりやすいかなと思い、ジェスチャーの割り当ては下記のようにしました。使用感としてはなかなか良いです。音楽再生の場合、今まで画面みながら曲を飛ばしながらしてたのですが、スマホみなくていいのは思いの外体験がよかったです。袖をサッとやる操作はちゃんと袖口を触ってないと反応してくれない場合があるのか反応が鈍く感じる時がありました。Bluetoothの接続が切れやすい感じがします。反応してくれなくて、スマホの画面で接続確認とかする場合が1日のうち2、3回あった気がします。後カメラ撮影の設定は便利そうでした、撮影タイミングをコントロールきるので複数人で撮りたい場合はいいと思います。ジャケットとしてはよくできてると思います。自分の場合はLeeの101Jが好きなので、できればそっちで出して欲しかった。開発用のSDKがないぽい。ジャケットの色のバリエーション増やして欲しい。SDKは欲しいですね。Nodejs昨年の6月くらいから履いた靴の記録を残すようにしました。365shoes.style残す理由は以下の通りです。手持ちの靴が革のものが多く、経年変化の記録を残したい。いつの間にか変わってることが多い。靴が気付いたら増えているので、増減を記録したい。靴のレビューを残したい。今まで履いてきたものの記録がない為、反省できない場合が多い。履く頻度の低い靴の処分判断がしたい。履いてないな、という感覚があるがどの程度が不明なことが多い。開発のスタイル基本的に土日にコードを書くスタイルです。軽度のものは、勤務時間の休憩時間で対応しています。技術スタックは下記のものを使用しています。そのうちTypeScript、Next.jsに置きかえると思います。FlowNodejsReactExpressGraphQLMongoDBHerokuAWS(S3)CloudflareCloudinary2018年の集計結果ちなみに昨年2018年の集計結果は下記の通りになりました。Sandalsのサンダルは利用頻度が差も高くて、その次にHunterのレインブーツ、後はローテンションで大体履いているので、ほぼ横並びです。靴、サンダルの数は最終的に23足でした。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。