tmp
Monday, July 8, 2019
Chrome 起動時にディスク使用率が100%で張り付く問題
Windows10 でちょくちょくディスク使用率が100%で張り付く事があった。 webでググるとそれっぽい記事はいくつか見つかったが、自分のPCの場合はそれに加えて読み取り速度と書き込み速度が0の状態でフリーズしていた。 ハードディスクかマザーボードが原因かと思ったが発生するタイミングは Chrome 起動時のタイミングで、長時間待っても解消されなかった。(一時的に解消されるが Chrome の操作をすると再度発生) 閲覧履歴やブックマークを削除すると解消するとの記事を見つけたが改善しなかったので、アンインストール→再インストールで改善した。 拡張機能のどれかのせいか、Chromeログインしてたので同期のどこかが原因だったかもしれない、謎。
Friday, February 15, 2019
AniHani.link の技術選定メモ
## 方針 あにハニでも いつから.link っぽいの欲しい -> 作る? バックエンドをごりごりやりたくないのでなるべく baas(Firebase) を利用 フロントに集中 産物: https://fiahfy-anihani.firebaseapp.com ソース: https://github.com/fiahfy/anihani-link ### Database Firestore, nosql 使いたかったからそれで データは正規化しないほうがいいみたいだけど更新時にupdateし直すのがどうしてもめんどいのとjoinするデータがそもそも少ないので参照値を利用してる ただしデータ取得の実装によってはフロントでのリクエストが結構増える ### Batch ツイートを取ってきてパースしていい具合にDBにぶちこむ一番面倒な部分 Firebase Functions でそれっぽいことができるのでそこで実行 当初は Spark plan (無料枠) でなんとかしようと思ったが Functions から Googleネットワーク外への送信が不可(受信はOK) -> GAEで実行すればいいんじゃね? -> Deploy時に利用する Build API が課金状態じゃないと使えない = 自動的に Braze plan (従量制) -> Braze plan なら Firebase Functions でいいじゃん となり Firebase Functions に戻る 定期実行の仕組みが必要だがいくつかパターンがある模様 * `cron-job.org` から HTTPS リクエストを送信してフックで実行 * GAEをたてて cron service でGAEにリクエスト -> pub/sub か https 送信 -> functions でフック * Cloud Scheduler で pub/sub か https 送信 -> functions でフック 一番いまどきっぽいので Cloud Scheduler を選択 1アカウントにつき 月3つのjobまでは無料 超えてもそんなに高くない Cloud Scheduler で pub/sub に定期的にメッセージ送信 https でフックしてもいいけどその場合トークンかなんかでパスワードかけとかないと誰かから叩かれる ### Front-end `Vue.js`, `Nuxt.js` を選択、個人的に小さいサービスなら TypeScript すら面倒 + Vue.js とあまり相性が良くないので pure js (ES6) というか TypeScript 導入するくらいなら `React.js`, `Next.js` の方がよさげ module をいくつかつっこむ * `@nuxtjs/dotenv` `.env` 用 * `@nuxtjs/google-analytics` GA用 * `@nuxtjs/pwa` PWAとかmetaとかiconとか用 * `@nuxtjs/vuetify` マテリアルデザイン+component あとは firebase を plugin で初期化して firestore からデータを取得して表示 SSR はサイトの特性上恩恵があまりないのと面倒なのでなし 静的ホスティングで済ませたかったので `nuxt generate` してどこかにあげる generate する場合は `mode: spa` にするもんかと勝手に思ってたけど `universal` で恩恵があるっぽい(要調査 https://qiita.com/amishiro/items/11bd642728f6b5838189#universalssr%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A7%E4%BD%9C%E6%88%90 ### Hosting 静的ファイルをあげられればぶっちゃけどこでもいい 候補は Github Pages, Netlify, Firebase Hosting ググったら Netlify はたまに詰まるっていうのと Firebase Hosting は裏で Fastly 使ってるよってことだったので Firebase Hosting を選択 (ここだけ別管理にしても面倒なので) ## 構成 ``` +------+ | User | +------+ ^ | v +-----------------------------+ | Firebase Hosting(Nuxt.js) | +-----------------------------+ ^ | v +----------------------+ +------------+ | Firebase Firestore | <-> | CLI(Local) | +----------------------+ +------------+ ^ | v +----------------------+ | Firebase Functions | +----------------------+ ^ | +-------------------+ | Cloud Scheduler | +-------------------+ ``` ## TODO ツイートのパースがガバガバすぎてスケジュールの変更、キャンセルがうまく取れない あにまーれだけに関していうと 非公式wiki に綺麗なスケジュールがあるのでそっちから取る方がいいかも こだわると時間かかりそうだったのでフロントの実装が雑(ここは適宜) キャッシュ制御もしてない vuex もほとんど利用できてない iPhoneX で PWA で起動すると SafeArea に余裕で食い込む standaloneかどうか と portrait/landscape と iPhoneXかどうか が取れれば後は CSS でがんばればなんとかなりそうな気はする ログインシステム(認証) はそもそもメンバーが少ない(9人)からいらないでしょってことで省略 Bookmark 的なものが必要になっても local storage でいいんじゃね? という感じ それでも必要になったら Firebase Authentication DevOps?知らない子ですね...
Wednesday, February 6, 2019
go modules
## Requirement `go 1.11` higher ```bash $ go version go version go1.11.2 darwin/amd64 ``` ## `GO111MODULE` * unset or `auto` `GOPATH` 内部の場合はモジュールモードoff `GOPATH` 外部の場合はモジュールモードon * `on` 全ての場所でモジュールモードon * `off` 全ての場所でモジュールモードoff ## Commands ### Initialize ``` go mod init
``` `go.mod` が作成される ### Run ``` go run . ``` importに応じて勝手にビルドされる `go.sum` が作成される ### Build ``` go build ``` importに応じて勝手にビルドされる `go.sum` が作成される ### Get specific version ``` go get github.com/appleboy/gin-jwt@master ``` 特定の branch, version を入れる場合 ``` go mod edit -require=github.com/appleboy/gin-jwt@master go build ``` これでも同じ結果になる ## 参考 * https://github.com/golang/go/wiki/Modules * https://qiita.com/spiegel-im-spiegel/items/5cb1587cb55d6f6a34d7 * https://budougumi0617.github.io/2018/05/10/go-get-from-go1-tag-or-branch/ * https://text.baldanders.info/golang/go-module-aware-mode/
Tuesday, January 29, 2019
Setup format document with ESLint on VSCode
### key bind 追加 `File > Preferences > Keyboard Shortcuts > edit keybindings.json` ``` [ { "key": "ctrl+alt+l", "command": "eslint.executeAutofix" } ] ``` ### eslint.validate の設定変更 ``` "eslint.validate": [ "javascript", "javascriptreact", { "language": "html", "autoFix": true }, { "language": "vue", "autoFix": true } ], ``` ## 参考 * https://github.com/Microsoft/vscode-eslint/issues/417#issuecomment-410363336 * https://github.com/Microsoft/vscode-eslint/issues/185#issuecomment-307842751
Tuesday, January 22, 2019
Golang links
## Documents * https://github.com/golang/go/wiki * https://golang.org/pkg/ ### samples * https://github.com/GoogleCloudPlatform/golang-samples/tree/master/getting-started ## native な router の実装 * https://gist.github.com/reagent/043da4661d2984e9ecb1ccb5343bf438 ## Framework 最近だと Gin, gollira/mux http-router or go-json-rest あたりか * https://qiita.com/najeira/items/bdc988c4e93b3b5ccf2f * https://github.com/mingrammer/go-web-framework-stars * https://github.com/ant0ine/go-json-rest * https://github.com/gin-gonic/gin ## RESTful API の実装 * https://medium.com/@thedevsaddam/build-restful-api-service-in-golang-using-gin-gonic-framework-85b1a6e176f3 * http://sgykfjsm.github.io/blog/2016/03/13/golang-json-api-tutorial/ * https://github.com/mingrammer/go-todo-rest-api-example * https://medium.com/@swanandkeskar/rest-api-using-go-and-gorilla-mux-91cf63956de * https://medium.com/eureka-engineering/go%E8%A8%80%E8%AA%9E%E8%A3%BDwaf-gin%E3%81%A7web%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B-%E6%BA%96%E5%82%99%E7%B7%A8-6f14aba0da29 ## DDD * https://www.slideshare.net/pospome/go-80591000 * https://engineer.recruit-lifestyle.co.jp/techblog/2018-03-16-go-ddd/ * https://hackernoon.com/golang-clean-archithecture-efd6d7c43047 * https://eng-blog.iij.ad.jp/archives/2442 * https://postd.cc/golang-clean-archithecture/ * https://little-hands.hatenablog.com/entry/2018/12/10/ddd-architecture * https://qiita.com/trrrrrys/items/4286ca3d015e252800c3 ### Standard layout * https://github.com/golang-standards/project-layout * https://qiita.com/sueken/items/87093e5941bfbc09bea8#web ### samples * https://qiita.com/trrrrrys/items/44e839134af1a0155be2 * https://github.com/trrrrrys/blogapi * https://github.com/shotat/ggg/blob/master/interfaces/api/server/router/router.go * https://github.com/hatajoe/8am * https://github.com/nakabonne/cleanarchitecture-sample ## Go+Docker * https://medium.com/statuscode/golang-docker-for-development-and-production-ce3ad4e69673 * https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker * https://docs.microsoft.com/ja-jp/azure/app-service/containers/quickstart-docker-go ## links * https://qiita.com/MahoTakara/items/10fede35c03db1e3b849#%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%82%84ide
Newer Posts
Older Posts
Home
Subscribe to:
Posts (Atom)