メンチカツ

ロースカツが好きです

ZeitのNowでServerless Docker(Beta)を試す

zeit.co

という記事を見たので試してみました。

▲Nowとは

zeit.co

  • Zeit(←ツァイトと読む)が作ってるシンプルなPaaS
  • Dockerizeされたものならデプロイ可能
  • 最大3インスタンスまでは無料で使える

Zeitとは

Next.js(ReactでSSRを提供するフレームワーク)やMicro(Node.jsのExpress相当のフレームワーク)を作ってる会社。

Mongoose(Node.jsからMongoDBを操作するためのライブラリ)やsocket.io(Node.jsからWebSocketを使うためのライブラリ)を作った人が所属してるそうです。

▲NowのServerless Docker(ベータ)とは

  • コールドブート(電源OFFからの起動)が早い
  • CPU、メモリの割り当てが出来る(c.125-m512というように)
  • 最大実行時間(デフォルトは5分、最大30分)
  • オートスケーリングも出来る(デフォルトは10)
  • DockerfileにEXPOSEでポート番号を書かなくても良い

やってみよう

1.公式クライアントアプリをインストール

f:id:easy-breezy:20180827132819p:plain

2.Dockerfileを用意。EXPOSEいらない。ここではswaggerを立ててみる。書くのは1行だけ。

FROM swaggerapi/swagger-ui

3.Dockerfileと同じところにnow.jsonを用意。何も考えずに以下のように書く。

{
  "type": "docker",
  "features": {
    "cloud": "v2"
  }
}

4.作成した2ファイルがあるディレクトリからターミナルでnowと叩く

無料版(OSS版)だとpublicアクセスになってしまうよと言われるので、よければ「y」を入力。

> Success! Deployment ready を出たら成功です。

> https://[ディレクトリ名]-[uniqueキー].now.sh [in clipboard] と返って来てるので、ブラウザからアクセスするとswaggerサーバが起動しています。

【メモ】VSCodeでインデントを2(とか4)スペースにしたい

eslintとか抜きにして、もうインデントは全部固定スペースにしたいんじゃ

という人は、「Code」-「基本設定」-「設定」を開いて、ユーザー設定に以下を追加しよう!

"editor.tabSize": 2, //お好きな整数値を!
"editor.insertSpaces": true,
"editor.detectIndentation": false,

これでもうなんでもかんでも同じインデントになります。

ここで教えてもらいました

stackoverflow.com

【メモ】GraphQL触った所感

GolangベースでGraphQLのソースを生成してくれる gqlgen というライブラリを2日触ったので、感想をメモ。

github.com

チュートリアルを触って、最初は楽しくエンジョイしていたのだが、本家ではファイルアップロード仕様について言及していないことに気づいた。

GraphQLのファイルアップロードについてはデファクトのお作法が無く、みんなそれぞれの方法でmutationに詰めている様子。これは自分には厳しい。

使いどころの見極めが必要だなという印象。

blockchain.tokyo #10 に行ってきた #blockchaintokyo

今月から業務で唐突にEthereumの機運が高まったので、薄い知識で blockchain.tokyo #10 に参加してきました!

blockchain-tokyo.connpass.com

blockchain.tokyo - connpassは、月に1度、ブロックチェーンに関わる技術の普及や知識・情報の共有を目的として開催されています。

今回のテーマは「Ethereumの技術的基礎」、六本木 DMM.comさんの会場で開催されました。

会の内容は、後ほど crash.academy で公開されるそうです。


Ethereumで開発を始めるなら知っておきたいこと @ngo275 さん

speakerdeck.com

初心者でもわかりやすく、大変助かりました。 Ethereum開発に関わってくる登場人物が多すぎて混乱していたのですが、それぞれの立ち位置を整理して解説してもらえて、だいぶスッキリ。

Ethereumのデータ構造 @moonty_sal さん

speakerdeck.com

RLPエンコード、マークルパトリシア木を理解するという、独学では手に負えないタイプの敷居の高いテーマでしたが、図示してもらうとなかなか理解できる不思議。

Ethereumを支えるネットワークの話 @jkcomment さん

speakerdeck.com

Ethereumのプロトコル、ÐΞVp2p Wire Protocolのお話。うへーこれは難しいぞと思いきや、例えばwireプロトコルで使用するメッセージは意外にも少なく、ノード間のやりとりはとてもシンプル。こちらも図示がありがたかった。

LT1 Gasを誰が払うのか問題について @ゆで卵 さん

speakerdeck.com

「なぜDAppsが浸透しないのか?=>UXが悪い」に大きく頷きました。 gasの支払いを、利用者が認知しやすいルールに乗せられると多少扱いやすくなるのかな。

LT2 Ethereum fast sync @koropicot さん

speakerdeck.com

Ethereum fast sync アルゴリズムのお話。gethの初期同期に使われているのですね。ノードの同期について考えたことなかったけど、時間経過とともにブロックサイズは増えるわけだから、効率的に同期させる工夫ってとても大事。

LT3 State Channelエコシステムと実用上の課題 @RyuyaNakamura さん

speakerdeck.com

オフチェーンで状態遷移、最終結果だけオンチェーンに書き込む手法。 オフとオンの切り分けどころが想像できていなかったので、オンラインカジノの途中経過に利用出来るというのは目から鱗でした。


これからはじめる者としては、既に実務で使いこなしている人のお話はとても貴重でありがたかったです。 毎回定員オーバーの人気イベントなので、次回もがんばって参加したいです。ありがとうございました!

【メモ】Ethereumのgeth環境をDockerで立てるMakefile

二番煎じのエントリです。すみません。

こちらの記事で気軽にEthereumの環境を構築できたのが嬉しかったので

qiita.com

Makefileにしてみました。

github.com

dockerのオプション覚えられないマンです。

【メモ】Reduxチョット触ってた人がNuxt.jsチョット触った雑感

こちらを参考に触ってみました。

qiita.com

スゴイ①: 導入がかんたん

↓だけでどういうものか確認できる。

npm i -g vue-cli
vue init nuxt/starter nuxt-starter
cd nuxt-starter
npm i
npm run dev #=> http://localhost:3000

スゴイ②: チルダ ~ がドキュメントルート

pagesからcomponentsをimportするとき、reactで ../../../compornents/Hoge.js とか書いていたところが、~components/Hoge.vue と書ける。

スゴイ③: pagesに置いたvueファイルに勝手にルーティングしてくれる

~/pages/users.vue を置くと http://localhost:3000/users にアクセスできる。

スゴイ④: config.jsの見通しのよさ

webpack.config.js に当たる nuxt.config.js が、とても見やすい(気がする)。 いろいろ追加していったらちょっとわからないけども。

気になるところ:

後からチームに参加した人が触りたくない系の定義周り(applyMiddlewareとかBrowserHistoryとかのとこ)はどんな感じなんだろう。

まとめ:

これからやるなら React+Redux より Nuxt.js+vuex が良いかな。。 webpackはできれば(書かなくて良いなら)書きたくない。