外出, 餃子, 順番を変える - 徒然日記

連休3日目。朝から起きて外出する。人混みが苦手なので朝の開店時間に併せて移動する様にしているのだけれども、店員さんも丁寧に対応してくれたりするのでこれはこれでよい。お昼前には用事を済ませてすぐに帰宅する。

晩ごはんに餃子を作った。哀川翔がテレビで紹介していた餃子のレシピ*1で焼売の皮を使って三角形に折りたたむ形で作るものでホットプレートでまとめて焼いて食べる。ひとつあたりの大きさが小ぶりでたくさん食べられるので稀にこの形式も試しているのだけれども美味しいのでお薦めできる。

昨日書いたshutter、キャッシュにスクリーンショットが無いときに puppeteerでスクリーンショットの画像を撮る → クライアントに返す と実装していたのだけれども、キャッシュが無い場合はひとまずすぐにレスポンスをNo image的な形で返す→そのままそのプロセスでスクリーンショットを撮影 とすれば次回アクセス時はキャッシュが参考されてすぐにスクリーンショット画像が返せるということに今更ながら気づいたので少しだけコード書き換え始めた。永続性とか考えたらキューに入れるものをきちんと設けるのが正解なのだけれども、このプロダクトの特性ならこれでよいのではないだろうか。

参照

GitHub - hideack/shutter: puppeteerによるスクリーンショット取得するシンプルなAPIを提供

徒然日記

連休2日目。引き続き寝付きが悪くてあまりぐっすり眠れずに9時過ぎに起床。そのまま少し寝ぼけたままラジオを聞き始め「安住紳一郎の日曜天国」を聞く。昨日からテレビの音楽番組だったりで出ずっぱりの安住アナは偉大だと思う。てっきりひたすらリクエスト曲が流れ続ける日になるかと思いきいや、ナチュラルハイな感じがあって面白かった。

ずっと今週読んでるBANK4.0 未来の銀行を読む。本の種類によるのかわからないのだけれどもなかなか読み進められないことが本によって稀にある。翻訳された日本語だと何かしら違う様に受け止めてしまうのか、はたまた読んでいるジャンルによるのか自分でも切り分けできないのだけれども不思議な感覚。

昨日、ふらりと書いた https://github.com/hideack/shutter にheroku button付けた。なるほどこうやってすぐデプロイできるものが提供できるの面白いなぁ。と今更ながら気づく。

Deploy

晩ごはんは手抜きをして出前を頼んでモヤモヤさま~ずをビール飲みながら見る。ユニコーンの民生さんと川西さん出てて驚く。そのままノーサイド・ゲームへ。いつもの日曜日が過ぎる。

スクリーンショットを取るAPI的なもの - 徒然日記

連休一日目。昨日、どうも心持ちがすっきりしない出来事があり、夜もあまり熟睡できない感もあってすぐ目が覚めてしまい気分を紛らわしたい気持ちになったので久しぶりにいちからコードを書いた。こういうときの自分の解決策は

  • プログラムを書く
  • 写経をする*1
  • 料理を作る

の三択になる。

GitHub - hideack/shutter: puppeteerによるスクリーンショット取得するシンプルなAPIを提供

大した内容ではなく、やってることはpuppeteerを使ってクエリパラメータで渡されたURLのスクリーンショットを撮り、そのPNGを返し、その撮影した内容はファイルキャッシュしてくれるといったものになる。実際に使うにはPaaSにカジュアルにおいて使うことを想定して書いてみた。

これで何ができるのかというと具体的な用途としてはスプレッドシートに書いたURLのスクリーンショットをセル中に差し込むみたいなことができる様になる。世に同様のサービスはいくつもあると思うのだけれどもそれなりの契約の手間だったりコスト感だったりを考えたときに使えるケースもあるのではないかなと思っている。*2

f:id:hideack:20190713184934p:plain
google docsスプレッドシートでIMAGE関数使ってセル中にスクリーンショットを表示させる

ただ、スプレッドシートでそれなりの数のURLが列挙されている状況でこのスクリーンショット参照用のURLを並べるとそこそこのリクエストが並行してサーバーに飛ぶのでここは使い方次第かもしれない。ちなみにherokuの無料プランだと5行くらいURLを書いた各セルの横にこのスクリーンショットを参照するURLを記載したときは捌けるくらいだった。もっとも、今回の実装、オンザフライ方式*3で本当は多分キューイングして端からスクリーンショットを撮るとかするのが正解なのかなとビールを呑みながら思っていたりする。

他の用途としては例えばSlackのボットにスクリーンショットを撮らせる際に使うみたいなこともできそうだなというのは思ったりした。

コード、こういう書き方がベストなのかさっぱり見当がつかないので、識者の方で気づいたところがあったらコメントもらえると嬉しい。

*1:ちなみに般若心経

*2:例えば何かしらの調査をするがためのシートを作りそこにスクリーンショットを差し込む目的だけのために外部サービス契約するのもなんだかなと思う気持ちがある

*3:もしかして死語?

ロリポップ!マネージドクラウドでFastify

FastifyというオーバーヘッドがExpressに比べて小さいと言われているサーバーをロリポップ!マネージドクラウドで動かしたときのメモ。 www.fastify.io

Fastifyのサンプルで書かれているものを以下のところだけ書き換えた。

待機ポートの指定

f:id:hideack:20190706171540p:plain
ロリポップ!マネージドクラウド環境変数設定の画面

ホスト名の指定

サーバーをlistenさせるときの記述の第2引数で渡すbind先がデフォルトでは 127.0.0.1 になっているので、これを 0.0.0.0 で明示した。

fastify.listen(PORT, '0.0.0.0', function (err, address) {

上記2点を踏まえて以下の様に書いてデプロイすることで動かすことができた。最初、後者の指定に気づかず数度デプロイして躓いていたので、もしかしたら誰かの役に立つかもしれないのでメモとして残しておく。*2

const fastify = require('fastify')({
  logger: true
})

const PORT = process.env.PORT || 5000

// Declare a route
fastify.get('/ping', function (request, reply) {
  reply.send({"ping":"pong"});
});

// Run the server!
fastify.listen(PORT, '0.0.0.0', function (err, address) {
  if (err) {
    fastify.log.error(err)
    process.exit(1)
  }
  fastify.log.info(`server listening on ${address}`)
})

*1:ちなみにherokuだと環境変数PORTは自動的に割り当てられ、また立ち上げ毎にポート番号は変わる。

*2:もっとも、githubリポジトリのREADMEに「If you are running Fastify in a container (Docker, GCP, etc.), you may need to bind to 0.0.0.0.」とキチンと書いてあるのである

2019年6月に読んだ本を振り返る

6月は9冊。

『血族の王: 松下幸之助とナショナルの世紀 (新潮文庫)』(岩瀬達哉)の感想(8レビュー) - ブクログ、以前ここで書いたとおり違う人間像を知ることができてこれもまた真実。

『天才の思考 高畑勲と宮崎駿 (文春新書)』(鈴木敏夫)の感想(3レビュー) - ブクログかぐや姫の物語を除く過去公開したスタジオジブリ作品が全て振り返られていて、まさに歴史。映画の作り方の遍歴やマーケティング方法の変遷もしれていろいろな視点で読める本ではないかと思う。

6月に読んだ本 (9冊)

booklog.jp

booklog.jp

booklog.jp

booklog.jp

booklog.jp

booklog.jp

booklog.jp

booklog.jp

booklog.jp

徒然日記 - 経営合宿参加, 髪を切った

一昨日、昨日と経営合宿に参加。

そこに向けて準備をしたりだとか議論中にポイントになる可能性があるところを事前に想定したりだとか、当然当日参加することで気づかず体力使っていた様で10時間くらい久しぶりに寝続けていた。最近途中で目が覚めてしまうことが多いのだけれどもそれすら無く。

パワーを使うイベントではあるが自分の中でのチェックポイントになっていて、

  • 一度事業を振り返ったり現時点で考えている数年先の構想を改めて見直せる
  • 全社視点が基本なので客観的に自分のスタンツを見直せる (視座が低すぎないか, ポイントがズレてないか)
  • 他事業との掛け算できるポイントが見つけられることが多い

ということで、週明けから合宿中に発生した宿題含めやっていくぞという所存。

今日は午前中に髪を切りに行く。他愛のない話をひたすらできる時間も貴重だなと思いつつ過ごす。午後からはgreenkeeperが作ったpull requestをマージする業を行った後、本を数冊読んで一日終了。

なるとキッチン渋谷店の半身揚げの写真
合宿の更に前日は半身揚げを食べたのであった