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'; 前者のように{}無しで書く場合と後者のように{}有りで書く場合があって、よくわからなかったから調べる。 名前付きエクスポートとデフォルトエクスポー…

「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…

男の着エロ画像をランダムで表示する slack bot を Python で作る

https://github.com/roronya/skinybotgithub.com 大学に六年も通って出来るようになったことが此のようなくだらんことでは、君のお母さんは泣いているぞ。 以下を見たら1時間で作れた。 PythonでSlackbotを作る(1) – ビットログ このライブラリが強かった。s…

jupyter に themes を適用する

最近眼精疲労がヤバイのは jupyter notebook の背景が白いせいだと思ったので themes を設定した— ろにゃ (@roronya) 2016年12月3日 jupyter に themes を簡単に設定することができる jupyter-themes を紹介する。また、jupyter-vim-binding と併用する際の…

【逐次更新】SQL でよくやる処理を pandas でやるときのメモ

github にまとめた github.com

【Symfony2】DoctrineFixturesBundle で作ったフィクスチャを phpunit から呼びたいとき

機能テストをするときにテストデータを DoctrineFixturesBunle で作った LoadHogeData クラスを使いたいとき LoadHogeDataクラスが ContainerAwareInterface を実装しているときどうするか LoadHogeData が外部キー制約で怒られるときはどうするか について…

doctrine:fixtures:load で外部キー制約で怒られるとき

[Doctrine\DBAL\Exception\ForeignKeyConstraintViolationException] このエラーが出る。 結構調べたんだけど、結局データベースごと作りなおすしか無さそうでした。 というわけで、僕は以下のコマンドを叩いています。 php app/console doctrine:database:d…

楽観的ロックと悲観的ロック

ロックについてあんまり気にしたことがなかったけど、必要になったので調べた。 ページを開いて何か変更して更新ボタンを押すシチュエーションを考える。僕が変更を加えている間に、他の誰かがそのページで別の変更をしたのを、僕が更新ボタンを押すことで上…

Emacs から Atom に乗り換えた

エディタを Emacs から Atom に乗り換えた。 最近は jupyter notebook でざっと書いて Python スクリプトに清書することが多いんだけど、効率的が悪いし何か良い方法は無いかと色々探していたところ Atom に hydrogen という良いプラグインを見つけたので良…

slackin のバグでハマった

slackin 0.8.3 には SLACK_CHANNELS を空にしてデプロイすると invite 出来ないバグがある。 github.com slackin でメールアドレス入力して 「GET MY INVITE」押しても PLEASE WAIT から一生進まない症状で悩んでる人がいたらこのバグです。このときブラウザ…

tramp で su とか踏み台

emacs で ssh するときは tramp 使うんだけど su とか 踏み台とかも出来ます。24.3 以降ならいい感じにシンタックスも導入されてていい感じに使えます。 例えば vagrant で開発環境作ったときとか vagrant ユーザで ssh して su で他のユーザに移りたかった…

ユースケース駆動開発実践ガイド を読んだ

年明けからバイト先の同僚とユースケース駆動開発実践ガイドの読書会をした。 ユースケース駆動開発実践ガイド作者: ダグ・ローゼンバーグ,マット・ステファン出版社/メーカー: 翔泳社発売日: 2016/01/28メディア: Kindle版この商品を含むブログ (1件) を見…

Recruit の Winter Internship 行きました

書こうと思っていたけど長野戻ってきてから忙しくて1周間も経ってしまった…。 データアナリストコースに行きました。まさか選考に通ると思わなくて、案の定行ってみると東大京大東工大早稲田慶応のオンパレードで地方国立なんてボクだけでちょっと恥ずかし…

Centos7 で NFS サーバを立てて Ubuntu からマウントして使う

サーバの設定変えた時メモっとかないと忘れるので面倒くさがらずメモすることにしました サーバ側(Centos7) # yum -y install nfs-utils # vi /etc/idmapd.conf Domain = gekogeko.org # vi /etc/exports /home/user/share 192.168.0.0/24(rw,all_squash) # …