an odd fellow

仕事のメモ

立って仕事をする

スタンディングデスクを使い始める。FlexiSpot EG8というのをもらった。それまでレンタル家具サービスで借りたちっぽけな机を使っていたのだがずいぶん立派になった。ついでにXiserのステッパーも買って一緒に使っている。 リモートワークになり通勤時間は無…

ReactでChrome Extensionを作る

Chrome Extensionの種類 Chrome Extensionのアーキテクチャ create-react-appでChrome Extensionは作れる? webpackでChrome Extensionを作る content scriptでFirestoreを叩けなかった backgroundとcontent script間のメッセージのやりとりはLong-lived con…

create-react-appはなぜmanifest.jsonを作るの?

スマートデバイスで「ホームに追加」を出すためだった。 manifest.jsonて拡張機能作るときに書くけど、なんでSPA作るcreate-react-appがmanifest.jsonを作るのか気になった。 reactjs - What is public/manifest.json file in create-react-app? - Stack Ove…

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つつなげたこれはスプレ…

storybookに階層構造を追加する

背景 デフォルトでは1階層しかパスが切れない。 例えばAtomsのButton、MoleculesのFormがあったとして、理想的には以下のように整理したい。 Atoms Button with text with some emoji Molecules Form ContactForm MailAddressForm しかしデフォルトでは以下…

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 覚え方 前と後ろの…

TAMRON 28-75mm F/2.8 Di III RXD

おれのα7にはオートフォーカスするレンズが着いたことが一度もない。初代α7が発売されてすぐに買ったから、もう4年間も使っていることになるが、全てフルマニュアルで撮ってきた。カメラマンだったらしい祖父の遺した古いNikkorとCanon FDレンズだけがレンズ…

信州大学工学部生に行って欲しい飲食店リスト(千石劇場周辺編)

今日は信州大学工学部に在学する後輩たちに長野市街地で行って欲しい飲食店を紹介します! おれの長野市街地うまい店リスト文章にして公開しとくか— ろにゃ (@roronya) 2018年5月4日 Twitterで適当なこといったら反応があったので書くことにした。おれは24年…

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

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

リズと青い鳥

liz-bluebird.com 日曜日に見てきたところたいへんな出来栄えだったのでぜひ見ていただきたい。そう思ったので見どころを言語化したい。 「ずっとずっと、一緒だと思っていた」と公式ページにあるように「ずっと一緒には居られないよね」をこの2人が知る話で…

きのこ先生

今年の新卒の研修に参加できることになり、twadaさんのエンジニア心構えの講演を聞けた。感想とメモを置いておく。 感想 twada先生の話で何度も強調されたのは「可処分時間が減るから効率的に学びなさい」ということだった。認めなければならないと思った。…

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を跨いでアクセスする必要があったが、やり方が…

今年読んだ本

2014年 →2014年消費したおはなしたちまとめ - an odd fellow 2015年 → 今年読んだ本 - an odd fellow 2016年 → 今年読んだ本 - an odd fellow 毎年書いてるので今年も書く。 ろにゃさんの読んだ本 - 読書メーター 今年読書メーターに登録した冊数は20冊ぴっ…

サムライズムの IntelliJ ハンズオンに行きました #jbugj

普段は Spacemacs を使っているんですが、学生のときからバイト先では PyCharm や PHPStorm を使ってはいました。いましたが、Shift を 2 回叩くと出て来る何でも検索機能程度しか使っていませんでした。 4月から就職したんですが、就職先が All Products Pa…

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…

おまえのすべてが燃え上がる

おまえのすべてが燃え上がる (新潮文庫nex) 作者: 竹宮ゆゆこ 出版社/メーカー: 新潮社 発売日: 2017/05/27 メディア: 文庫 この商品を含むブログ (2件) を見る 竹宮ゆゆこ先生の新刊、良かった。 取り返しの付かなさが良い。最初から取り返しの付かないとこ…