an odd fellow

仕事のメモ

備忘録

kustomizeのTimeoutについて

注意: kustomize1系の話。2系を使う場合以下は参考にならない。 背景 k8sのyamlを書くのにkustomizeを使っている。kustomizeの secretGenerator.commands で時間のかかる処理(GCSに置いてある秘匿情報を gsutil cat で取得するなど)をしたところ以下のエラ…

NginxでCORSの設定を入れるときはOPTIONSの処理を忘れない

server { listen 80; ... add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD"; add_header Access-Control-Allow-Headers *; add_header Access-Control-Expose-Headers x…

Reduxを使ってるときのAuth0の使い方

背景 ログイン処理にAuth0を使っている。Auth0はサンプルが豊富でReactを使ったサンプルも在るが、そのサンプルではReduxは使わずPure React構成のため、Reduxを使っている場合の使い方がイマイチ分からなかったので、考えて実装した結果をまとめておく。 ど…

JavascriptのPromiseとasync/awaitについて調べる

背景 ReactでSPAを作っている。APIからデータを取得するときredux thunkとaxiosを使っているが、このときの処理がexampleを見て見よう見まねでやっていてよくわかっていない。 例えば投稿を取得するソースコードはこんな感じになっているが、return async と…

Prettierとstandardを併用する

背景 今のプロダクトにlinterを入れたかった。今までは雑にググってヒットしたPrettierのみ使っていた。 Linterも入れたほうがいいらしい PrettierはFormatterであってLinterではない。だからPrettierはコードの「この部分が良くないよ!」とは教えてくれず…

関数の引数にスプレッド構文を使った場合

背景 React書いていると以下のような...propsのような記述がたまに見られるが、どういう振る舞いになるのか少し混乱したから整理する。 const DeleteButton = ({className, ...props}) => ( <span className={[style.root, className].join(' ')} {...props}> <TrashCanIcon /> <Baloon>削除する</Baloon> </span> ); スプレッド構文 ドットを3つつなげたこれはスプレ…

formikを使ってみる

前提 $ node --version v.9.11.1 React, ReduxでSPAを作っている。 背景 connectで渡されたpropsをComponentで加工してFormを作っている場合、Formを触って変更された値をStoreまで持っていっても、その値はあくまでもFormのみで有効な値であるから、Storeに…

prettierがいい感じ

背景 WebStormのフォーマッターがいけてない。例えば import React from 'react' としたら import React from 'react'; とセミコロン付けて欲しいが付けてくれない。 ほかにもダブルクオーテーションとクォーテーションを統一してくれない、とか、細かい不満…

JavascriptのExportについて

前提 $ node --version v.9.11.1 背景 import React from 'react'; import {render} from 'react-dom'; 前者のように{}無しで書く場合と後者のように{}有りで書く場合があって、よくわからなかったから調べる。 名前付きエクスポートとデフォルトエクスポー…

dockerの-vオプション

なんかいつも忘れるからメモ 書き方 docker -v ホストのディレクトリ:コンテナのディレクトリ image名 ホストのディレクトリは絶対パスで記述する。 カレントディレクトリをマウントしたいとき docker -v $(pwd):/path/to/directory image 覚え方 前と後ろの…

「Ruby on Rails 5アプリケーションプログラミング」の環境をdocker-composeで作る。

背景 仕事でrailsを使うことになったがきちんと触ったことが無かったのでGWに試してみることにした。 railsの入門書はこれが良いらしいので買った。書籍ではローカルに環境を構築しているが、dockerを使ったほうが良いだろう。 Ruby on Rails 5アプリケーシ…

oracleで今日の日付を取得したり、関数をちょっと試したりする

背景 最近oracleを叩いている。今日の日付を取得する関数が知りたかったので調べた。 結論 select to_char(sysdate, 'yyyy/mm/dd') from dual で今日の日付が取得できる。to_charの第二引数にフォーマット文字列を渡す。 from dual のdualはダミーテーブルら…

locustのNUM_CLIENTSとHATCH_RATEについて

背景 GAEで作ったAPIサーバーを本番反映するに当たり必要なリクエスト数さばけるのかを確認する必要があった。先輩社員がlocustを使っていたので自分もlocustを使ったが、NUM_CLIENTSとHATCH_RATEの挙動が分からな過ぎた。NUM_CLIENTSとHATCH_RATEの関係が分…

docker multi stage buildを試す

背景 reviewdogのDockerfileについて先輩社員にレビューもらうと、dockerのmulti stage build使うと幸せになれるよと教えてもらった。 レビューをもらったDockerfileは以下。pythonのdockerイメージにgoをインストールしてからgo getでreviewdogを入れている…

IntelliJでproject painとかをショートカットでリサイズする

背景 IntelliJと書いたがPyCharmもRubyMineでも同様。 Command+1でプロジェクトペインが開けるが、windowをガチャガチャリサイズしたあとだとプロジェクトペインのサイズが以上にデカかったり小さかったりする。マウスでサイズ調整してたが、キーバインド割…

docker runでローカルのgoファイルを実行する

背景 RealWorldHTTPを読み始めた。goでサンプルのHTTPサーバを立ててcurlで色々オプションを付けてリクエストを試しながら挙動を確認していくようだった。 それで、サンプルのHTTPサーバーを書いたんだけど、dockerで実行したくて以下のようにした。 $ docke…

drone.ioでdocker run -vしてハマった

背景 drone.ioでreviewdogを使いたくてこんな感じで書いた。 Dockerfile.reviewdog FROM python:3.6 USER root ENV HOME /root ARG WORK_DIR WORKDIR ${WORK_DIR} ENV APP_ROOT ${WORK_DIR} # install Golang ARG GO_VERSION=1.8.3 RUN mkdir /tmp/go && \ c…

GCPでprojectをまたいだ権限の設定方法

背景 読み飛ばしてOK。自分用メモ。 AppEngineからBigTableを読み込みたかったが、BigTableはprdにあり、AppEngineはdev,stg,prdに立ち上げる予定で、devのAppEngineからprdのBigTableを読み込むとい うprojectを跨いでアクセスする必要があったが、やり方が…

terraform init が s3 の認証情報が違うと言ってコケるとき

備忘録 問題 terraform init で -backend-config を指定すると以下のように怒られた。 $ terraform init -backend-config="key=prd/gcp-terraform.tfstate" Initializing the backend... Error configuring the backend "s3": No valid credential sources f…