Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2018-02-04 ~ 2018-02-10 #6

Open
kitak opened this issue Feb 4, 2018 · 6 comments
Open

2018-02-04 ~ 2018-02-10 #6

kitak opened this issue Feb 4, 2018 · 6 comments

Comments

@kitak
Copy link
Owner

kitak commented Feb 4, 2018

φ(..)メモメモ

@kitak
Copy link
Owner Author

kitak commented Feb 4, 2018

副業がらみで firebase hosting の調査。

公式サイト( https://firebase.google.com/docs/hosting/?hl=ja )をみろ、以上、な気もするのだけど、一応まとめておく。

  • npm install -g firebase-toolsでいれた CLI で Hosting や FireStore など各機能の設定ファイルを再生できる
  • プロジェクトは事前に作成しておくか、firebase use --add で後で追加できる
  • アクセス制限をかけることができないので、https://qiita.com/otakky/items/1363e7b4c706dc9cd096 のように Function を通して静的ファイルを返すしかなさそう
    • 例えば、dev, staging は制限をかけたいけど、production はかけたくない、みたいなとき、firebase.json が環境ごとに異なるのだけど、どうすればいいんだろう。
    • 案1: 環境毎にブランチを用意して、firabase.json の内容を変える
    • 案2: firebase.json.template のようなファイルを用意して、npm scriptsを通してデプロイさせ、そのときに指定された環境に応じて動的に firebase.json を生成する
  • SPA の場合
{
  "hosting": {
    "public": "dist",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}

@kitak
Copy link
Owner Author

kitak commented Feb 4, 2018

NHK のドキュメンタリー 人体、今日は脳の回だった。

人がひらめきを得るのは、何も考えていないとき、ぼーっとしているときらしい。
これは三上( https://kotobank.jp/word/%E4%B8%89%E4%B8%8A-513767 )に代表されるように経験的に知られているものだと思うのだけど、それが可視化されて、やはりそうなのか、と納得した。

この事実は文章を書くときに役立ちそうだ。
文章を書く前に、あらかじめキーワードを洗い出したり、伝えたいことを固めて、寝かすことによって、その後にスムーズに執筆にとりかかることができるのではないだろうか。

@kitak
Copy link
Owner Author

kitak commented Feb 5, 2018

https://firebase.google.com/docs/firestore/quickstart をひと通りやっている

vuefire で firestore のサポートが入るのはもうちょい先か vuejs/vuefire#145

@kitak
Copy link
Owner Author

kitak commented Feb 7, 2018

Firebase function で Vue の SSR をやる試み

  • nuxt.js/issues/1634 を参考にやってたんだけど、手元(firebase serveで起動した環境)では、うまく動くのだけど、デプロイしたら動かない。数秒プログラムが走って、おもむろに落ちて 500 が返る
    • uncaughtExceptionフックやエラーハンドリング用の Express ミドルウェアでエラーを吐かせるようにしたけれども特に何も出力されない
  • https://github.com/davidroyer/nuxt-ssr-firebase はフォークしてデプロイしたら動いたので、やはり何かよくないのだろうなぁ
    • 本筋ではないのだけど、function の起動にかかる時間が気になる。一度、起動したら早いよ、とは聞いたもののそれでも1秒とかかかってる。あと、複数の関数? インスタンス?を起動しているのか、リロードを繰り返すと数回に1回の割合でかなり時間がかかっている気がする。それなりにアクセスがあれば大丈夫と言っているサイトも多いけれど、リリース初期は定期的にリクエストを送るような対応が必要そうな気がする
    • Node.js のバージョンが v6 固定だし(v8 を使いたい)、↑の事情もあるので、見送り

@kitak
Copy link
Owner Author

kitak commented Feb 7, 2018

GAE (flexibile, node) で Vue の SSR をやる試み

  • GAE のデプロイは https://cloud.google.com/nodejs/getting-started/hello-world?hl=ja を参考に進めた
  • ハマりどころとしては、healthcheck 用のエンドポイントを用意しないといけないところ
    • サーバーの起動を nuxt コマンド経由ではなく、 https://github.com/kitak/nuxt-gae-ssr/blob/master/server.js のように healthcheck 用のエンドポイントを足しつつ、nuxt を express のミドルウェアとして利用するスクリプトを用意する(実際はエラーハンドリングをもっとしっかりやる必要がある)
  • デプロイにけっこう時間がかかる印象(数分~10分)
  • デプロイしたやつ
  • 本筋ではないけど、静的ファイルの配信をどうしようかな。オンプレのプラクティスに則って、動的コンテンツ(CPUバウンド)と静的コンテンツ(IOバウンド)の配信を分けるべきか
    • ひとつのオリジンでやるとしたら、前段に CDN かロードバランサを置いて、パスを見て Cloud Storage か GAE に振り分ける。最初の段階ではやりすぎな気も
    • コンテンツごとにオリジンを分けてもよいのであれば、Firebase Hosting を使うのが楽だと思う。Nuxt 側は publicPath の設定を変える。GAE と Firebase Hosting のデプロイタイミングを同時にするのが難しいので、以前の静的ファイルを残しつつ、先に Firebase Hosting のデプロイをしてから GAE のデプロイをするのがいいと思う
    • あるいはコンテンツ毎に配信方法を変えずに GAE で全部配信する

@kitak
Copy link
Owner Author

kitak commented Feb 9, 2018

本を読む時、けっこう場当たり的に読んで、しばらくしたら内容をまったく覚えていない。もったいない。読みはじめる前にメモに本のタイトルを書いて、しばらくしたら、読んだ内容をまとめる癖をつけたい。脳のワーキングメモリを鍛えることもできそう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant