Microsoft Graphでユーザーのアバター画像を取得する

Microsoft Graphにはv1.0とbetaのエンドポイントがあります。 どちらにもユーザーのアバターを取得するAPIがあります。 しかし、v1.0とbetaで取得できる場合とそうでない場合があるようです。 https://docs.microsoft.com/ja-jp/graph/api/profilephoto-get?…

Azure Bot ServiceのBot Framework SDKのkoa対応

最近はBot Framework v4を利用して、Botアプリケーションを作成しています。 Botアプリケーションを作成するには、SDKを利用するのですが、express、restifyくらいしかWebアプリケーションのフレームワークが対応してないような気がします。 koaの場合 例え…

HerokuのmLabからMongoDB Atlasへ

自分が運用している365shoes.styleはHerokuを使用しています。 そして、mLabアドオンを使用していました。 mLabアドオンはアナウンスがあったように利用できなくなります。 なので、何かしらの方法で移行する必要がありました。 移行先は一番移行が楽そうな…

画像の変換にimgixを使う

アップロードした画像を変換するのに最近は、SaaSを使用しています。 普段はcloudinaryを使用していたのですが、imgixを試してみたら導入が簡単でした。 設定そのものは、imgixの設定画面でAWSのS3のバケットを指定して、アクセスキー、シークレットキーを指…

画像の読み込み

クライアントで画像のexifを読み出すのに普段はblueimp-load-imageを使用しています。 画像をアップロードをするフォームの投稿日のデフォルト値を指定したりする時や、写真をトリミングするコンポーネントなどで利用しています。 自分がメンテナンスしてい…

追加で物をサマリーポケットに預けた

あんまり着ていない物とか、使ってない物をまたサマリーポケットに預けてみました。 今回もアパレルのボックスを利用してしました。 物としては下記の物をパッケージングして送りました。 LEVI'SのGジャン LEVI'Sのギャリソンベルト x 3 ナイロン製のアウタ…

サマリーポケット使ってみた

2ヶ月前くらいに、靴の整理にサマリーポケット使ってみました。 箱はアパレルの横長を頼んでみました。 梱包している箱 送った内容は、最終的に次のようになりました。 短靴4足 羽織りようのアウター 1着 パーカー 1着 サイズ間としては短靴が最大で6足位入…

久しぶりにスニーカー買った

ここ数年は革靴(ドレスシューズ / ワークブーツ)ばかり履いていてスニーカーを履いてなかった。 それはそれでいいとして、あまりにも履いていないのでスニーカーの履き心地どん感じか忘れてしまっていた。 なのでスニーカーを買うことにしたわけです。 BERLI…

プリズナージャケットとパンツの経年変化

何回かWAREHOUSEから出ているプリズナージャケット & プリズナーパンツ。 これはJUNKY STYLE別注モデルで、ボーダーの染める回数を増やして黒になるようになっているやつです。 1年ちょっとの着用で、経年変化の記録ために写真を撮っていたのを忘れてた。 …

Mongooseドキュメントのserialize/deserialize

Mongooseを利用している場合、読み込んだドキュメントをserialize/deserializeしたい場合があると思います。 serializeは雑にtoJSON、でいいと思うのですがdeserializeはどうするのか? 一つのやり方として、hydrateメソッドを使用するやり方があります。 con…

netlifyのNodejsのバージョン

netlifyを利用していて、デプロイ時のNodejsのバージョンを指定したいので調べてみました。 ドキュメントでは下記のやり方があるようです。 docs.netlify.com 環境変数のNODE_VERSIONで指定する。 .node-version または .nvmrcをリポジトリのルートに置く。 …

2019年の靴の着用回数を集計した

2018年から引き続き履いているもの、買い足したもの、手放したものを集計対象にしています。 昨年の末くらいから集計できるように年間のレポートを表示できる仕組みを365shoesに追加していました。 2019年は520件を投稿していたようです。 一つの靴について…

OCamlのパッケージインストール時にファイルをコピーする

OCamlプログラムをduneを使用してビルドしている場合、インストールする時にバイナリファイル以外のファイルも一緒にコピーしたい場合があると思います。 それをopam、duneを使用している時にどのように行うか調べました。 Duneの設定 設定はduneファイルにS…

テスト容易性設計のやつOCamlでやってみた

自分の場合は現在時刻を引数で渡すようにしました。 モジュールやコンテキスを表すデータ型みたいなものを渡してもいいんですが仰々しいので。 t-wada.hatenablog.jp コードはここに置いてあります。 Design-for-testability - OCaml version · GitHub 実装…

Levi’sのGOOGLE JACQUARD トラッカージャケット買ってみた

Levi’sのGOOGLE JACQUARD トラッカージャケット買ってみた Levi’sのトラッカージャケット 10月5日に発売ということだったので、面白そうだし買おうかなと思いWebから購入しました。 Webだと1日早くて、4日から買えたみたいです。 これは米国だと、前に発売さ…

履いた靴の記録を取っている

昨年の6月くらいから履いた靴の記録を残すようにしました。 365shoes.style 残す理由は以下の通りです。 手持ちの靴が革のものが多く、経年変化の記録を残したい。 いつの間にか変わってることが多い。 靴が気付いたら増えているので、増減を記録したい。 学…

Wescoのブーツが届きました

Wesco Custom 38LTT 3月7日にオーダーしていたWescoのブーツが最近届きました。 当初の8月末くらいという話だったのですが、8月17日にオーダーしたお店から午前中に連絡をいただいて、その日に受け取り行きました。(オーダーから約5ヶ月) 当初はオーダーする…

HackでAttributeを表現するためのインターフェース

HHVM3.29より、Attributeを表現するインターフェースが追加されました。 今までも、Attribute自体は使用できていましたが、以下の問題がありました。 タイプチェックがかからない。 Attributeに依存する処理でバグがあると原因を特定しにくい。 ユーザー独自…

HackのコードジェネレーターをHackTestに対応させた

Hack用のテストフレームワークが出たので、HackUnitから置き換えました。 github.com そのついでに、CodegenにHackTestのテストコードを生成できるジェネレーターを追加しました。 github.com HackUnitからの移行 名前空間をHackUnitからHackTestに置き換え…

jbuilderからduneに変えた

dune1.0がリリースされたので、jbuilderからduneに置き換えました。 作業内容としてはそんなに修正箇所はありませんでした。 github.com 作業内容 jbuildファイルの変更 jbuildファイルをduneにリネーム 設定ファイルの変更 コマンドをjbuilderからduneに変…

js_of_ocamlをjbuilder(dune)で試してみた

OCamlのバイトコードをJSに変換できるツール、js_of_ocamlを試して見ました。 とりあえず、jbuilder(dune)を使用して、JSを出力できるようにはなりました。 今回はビルドの方法だけの内容です。 必要なもの opam経由で必要なパッケージをインストールします…

Hackで書いたProcessパッケージ

Processパッケージをリファクタリングしました。 https://github.com/hhpack/process 主な変更点は下記の2点です。 stream_selectからstream_awaitへの置き換え IDisposableを使用したリソース管理 stream_selectからstream_awaitへの置き換え パイプの状態…

ppx_inline_testの仕様が変わったみたい

ppx_inline_testの仕様が変わったぽいです。 今まで、テスト実行時にコンソールにテスト結果が表示される仕様だったと思うのですが、デフォルトで表示されなくなったようです。 なのでテスト実行されているのかがわかりにくくなっています。 テスト結果を表…

Hack用のコードジェネレータの新しいバージョンをリリース

Hack用のコードジェネレータの新しいバージョンをリリースしました。 前のバージョンでは、デフォルトのジェネレータしか使用できなかったのを独自のジェネレータを使用できるようにしました。 サンプルのプロジェクト下記に用意してあります。 https://gith…

HackでのJSONのパース

HackでJSONをパースする際にjson_decodeを使うと思うのですが、JSON_FB_HACK_ARRAYSが新しく指定できるようになったみたいなので調べて見ました。 また、JSONを扱う場合の実装をどうするかも検討しました。 json_decodeのオプションによる型の違い オプショ…

Scheme手習い読み終わった

定理証明手習いを途中まで読んでいたのですが、読む前におすすめされていたのと、近所の本屋に一冊だけあったので読みました。 最初にちょっとだけ読み始めて、載っているコードが非常に少なく、写経しなくても覚えれそうと思い、 ちょうど真ん中ぐらいの内…

ppx_inline_testでモジュール内にテストコードを書く

これはML Advent Calendar 2017の記事です。 枠が空いていて、誰も書いてなかったので書きました。 OCamlのテスト用のツールで、構文拡張を使用したppx_inline_testがあります。 今まで、OUnitを使っていたのですが試しに使用してみました。 使用するのに必…

Typesafetyの0.10.0をリリースした

Typesafetyの0.10.0をリリースし、下記の変更を加えました。 OASISからjbuilderへの移行 タイプチェックがパスした時も、レビューコメントを残せるようにした OASISからjbuilderへの移行 ビルドツールをOASISからjbuilderへ変更しました。 移行作業自体は1日…

jbuilderでビルドに必要なファイルを生成する

jbuilderでビルドに必要なファイルを生成する方法を調べました。 なんで調べたかというと、atdgenでjsonのパーサーのコードを出力したかったからです。 パッケージのインストール jbuilder、atdgenをインストールします。 opam install atdgen jbuilder rule…

typesafety_cliのビルドツールの変更計画

CI上でテスト前の型チェックのエラーをGitHubのPRのコメントとして投稿するツールtypesafety-cliのビルドツールを変えようとしています。 具体的にはOASISからjbuilderに移行しようとしています。 開発当初はOASISで良かったのですが、以下の理由で辛く感じ…