20日間fish体験記
macOSのデフォルトのログインシェルがbashからzshになるってことで、せっかくなら予めzsh慣れておこう → いや、zshでなくてもいいよね?
ということでfishにしてみましたが...。
ちなみにこんな設定でやってます。
github.com
感想
メリット
・fishにしたことで、生産性意識の高い人の情報が自然と流れてくるようになった。
(例えばghq, peco, z, etc...)
・シンタックスハイライトが賢い!
・promptが関数でできてる思い切りが分かりやすくて好き。
デメリット
・bash文法非互換なので、仕事用のシェルを検証するときにいちいちbashに切り替えが必要
・たまにVSCodeのコンソールの表示がバグる(超ダサフォントになる)
・nvmの設定がbashで書かれているので使えない...こういうの他にもありそう。
・環境変数の設定をbashと共有するのがしんどい
使いこなせていないと感じるところ
・コマンド履歴が賢い、というかおせっかいに感じる。もっと慣れれば違いそう... ・POSIX互換の文法よりはスッキリしている...らしいけど、シェルってそんな毎日書くものでもないし多少文法おかしくてもいいじゃん...?
今後について
自分的Dockerのユースケースをまとめてみた
ふだん雰囲気でDocker使っているのですが、もっと自由にDockerを使えるようになりたい!
ということで、自分的なDockerのユースケースを振り返ってまとめてみました。
1. リポジトリごとの開発環境の構築
リポジトリごとに開発で利用するPythonの環境を、Dockerを使って構築しています。
コマンド
`docker-compose run --rm python /bin/bash
version: '3' services: python: build: context: . dockerfile: Dockerfile volumes: - ./src:/root/work
2. 開発用のデータベースの構築
command
(開発用のサーバーの起動前などに) docker-compose up -d dynamo
docker-compose.yml
version: '3' services: dynamo: image: amazon/dynamodb-local:1.11.477 ports: - "8001:8000"
3. ミドルウェアの実行
技術書典で出品するPDFファイルのビルドのために利用しています。 (Thanks for カウプラン機関極東支部 さん!)
コマンド
docker-compose run --rm review
docker-compose.yml
version: "3" services: review: image: kauplan/review2.5 volumes: - $PWD:/work entrypoint: /bin/bash -c "cd /work; rake pdf"
4. cliツールのバイナリを直接インストールする代わりにする
例えば jq
のバイナリを直接ローカルに置かない。
alias jq="docker run -i --rm mbentley/jq"
jq以外にも、例えばβ版のcliツールを利用する場合なんかは安心して使えますね。
反省
ブログを書くに当たり、改めてDockerについて学びがありました。
基本的に docker-composeを利用すること。
docker-compose up
には--build
オプション、docker-compose run
には--rm
オプションをつけること。
...しかし、どうしてdocker-compose run
には--build
オプションがないんだろう。一貫性が足りないよね。
- Dockerの仕様として、ADD, COPYで取得したファイルのハッシュが代わっていたら、それ以降のRUNのキャッシュは利用されないこと(つまり、 package.json が変更されていれば npm install は再実行される)
個人のメールアドレスに届くGitHub・CircleCIの通知を会社のアドレスに転送する
justInCaseでは、リポジトリをBitBucketからGitHubに移行する計画があります。
そこで個人のGitHubアカウントを使って開発をしていますが、一つ問題が。
仕事のPRやビルドの失敗のメールが、個人のアドレスに流れてしまうのです。
GMailのメールの転送設定で解決できそうなので、やり方をメモしておきます。
1. 転送先のメールアドレスを設定
公式のガイドに従って特に躓かずに設定できました。
2. フィルタの作成
こちらも公式のガイドどおりに。
support.google.com
こんな感じのフィルタになりました。
以上、特別難しい手順はありませんが、誰かのお役に立てば幸いです。
ググって出てきたCognito UserPoolのベストプラクティスを雑にまとめる
(このブログは、 #技術書典7 で出展する「Cognito屋さん/ Cognito ユーザー移行入門(仮)」の下調べのために書いてます.)
タイトル通り、ググって出てきたCognito UserPoolのベストプラクティスを雑にまとめていきます。
Security / Best Practice for poolData (UserPoolId, ClientId) in a browser JS app
UserPoolIDとClientIDは、JSのコード内で公開していいの?という質問。
スレッドにある通り、これらの値は unauthenticated APIs
のリクエストにしか使われないので大丈夫。
Cognito user pools, in my experience, are terrible to work with
ベストプラクティスじゃないけど...Cognito使うのしんどいよね、って話。
いっそ新しいサービス出したらいいんじゃない?って指摘には私も同意。
Cognito is a flawed product that should become redundant. AWS should either build a new service with a new name or build a backwards incompatible Cognito 2.0.
[レポート] サーバーレスアーキテクチャのデザインパターンとベストプラクティス! #reinvent #ARC305
たしかに、Cognito使いたい人ってAPI Gatewayを認証付きで提供したい人だよね。
1.一時的なAWS認証 or 2.UserPoolのトークン or 3.Lambdaオーソライザー。特に 1.と2. は混同しやすいのでは?
HOW TO USE NEW ADVANCED SECURITY FEATURES FOR AMAZON COGNITO USER POOLS
せっかくだしMFAもちょっと触ってから本を書いたほうがいい気がしてきた
SaaS Identity and Isolation with Amazon Cognito on the AWS Cloud
弊社(justInCase)のアーキテクチャじゃんこれ!!!知らずしてここにたどり着いたんだなあ...
CloudMapを使ってるとこだけが違う。
Are email addresses supposed to be case-sensitive?
https://forums.aws.amazon.com/forum.jspa?forumID=173&start=0
そうそう、メアドが大文字小文字違いで登録できちゃうんだよね。
「あとで読む」を読む - 2019-06-23
難民をテック人材へ、3団体協働のもと日本初「難民プログラミング道場」が今秋スタート | LoveTechMedia - ラブテックメディア - Part 2
ドイツに「ReDI School」という同じスタイルのプログラミングスクールがあるらしい。
素敵な取り組みだな、と思ってたらWELgeeってASACで名前見たことあるな。
プログラミング教室もパソコンの貸与も、他の団体と協力してやってる、ってのが素敵だなって思った。
speakerdeck.com
WebAuthnについて概略をつかめた。
OAuthがクライアントから認可を分離したように、WebAuthnは認可サーバーから認証を分離した、って表現は正しいかな...?
ちょっと思ったのは、もし人間の脳みそが超ハイスペックに拡張されていたら、サービスごとの秘密鍵を暗記&署名を暗算できるようになり、結果この仕組もいらないのかな?
自分で考えて、責任を持って、実施までできる、という立場がスタートアップ。 良い表現...。
blog.cybozu.io カスタムリソースを考慮したことがなかったけどかなり便利かも。なんならCloudWatch LogsのSubscriptionをLambdaに後から追加する、とかもCDKじゃなくてこっちでOKでは?
その他
「あとで読む」を読む5選@2019-06-13
rfushimi.hatenablog.jp
「マネジメントになるのは昇進ではない」ほんとそれ。
一方で、経営者から評価されやすいのはやっぱりマネージャーじゃないの?対面にいるんだもの。そしたらお給料も自然と高くなってしまわない?
aws.amazon.com
・API Gatewayの認証タイプや統合タイプについて一番わかり易い資料
・WebSocketのAPIを一度作ってみたいので、これを使ってなにか作るかもしれない
・AWSサービスのAPI化って実はやったことない。ミニマムにサービスを作るときに便利そう
www.haconiwa-mag.com たしかにグレーのビニール傘はオシャレで使いたくなる。
devmart.jp
売れてるのかな?と思って過去の出品を見たらたしかに売れているものもある。
これは面白いな...!
「あとで読む」を読む @ 2019-06-03
フォトグラメトリで小笠原
スマホの複数の写真とWindowsの専用ソフトでできるらしい。朝に行った海岸の写真をフォトグラメトリしてVRCで入ってみました🐾🏖 pic.twitter.com/mnGbRDMwaW
— お休みさん🌑 (@0yasum13) June 2, 2019
React Nativeのテストライブラリ選定
tech.kitchhike.com
* グレーボックステストって初めて聞いたけど、要はブラックボックステストを、内部仕様に基づいて改良したものだと思えば良さそうだ。
* avaって初めて聞いた!いつもmochaばっかり使ってるから、次は使ってみようかしら。
Lambda LayersをCIでキャッシュした取り組み
dev.classmethod.jp * そもそもLamdba Layersについてようやくキャッチアップ。要するに、Lambdaの特定のパスに展開するオブジェクトを別途指定できるようだ。
微妙エンジニア
tkot.hatenablog.com "最新のサービスを使うことしか頭にない" サーセン!!!!!コスパもっと意識していこう
コンテナ運用のおすすめの方法
cloud.google.com
* 便利なエンドポイントをどんどん生やそう!(メトリクスとかヘルスチェックとか)
* WebPageを作るときにも、本番ページにテスト用のページを追加しておいて、デバッグ時はそこにアクセスしてもらう、とか聞いたことがある。APIサーバーでも同じことか。
あなたの知らない詐欺グラフの世界
note.mu * 棒グラフとはその面積で意味をもたせるグラフです
SAMを通してCodeDeploy
dev.classmethod.jp 本格的なCIの構築ができる!というより、SAMだけでパッとCIまで構築できる!というのが強みと見た。
任意聴取の隠し撮り音声
* 2019年から取り調べの可視化が義務付けられるのをそもそも知らなかった * その対象が重大事件のみ、かつ強制捜査?に限られるのも知らなかった * 全部録音しろよ...「法律に引っかかってんだよ」「おまえがどう思おうが関係ねえんだよ」「反省しろよって言ってんの」
— 青木美希 (@aokiaoki1111) May 31, 2019
取り調べで執拗に言う警察官。納得しきれなかった男性は弁護士に相談し、正式な裁判を請求、横浜地裁は男性を無罪としました。
サイトでやりとりの音声を聞けます。 https://t.co/DbRh7SJEsU
Web系エンジニア
ogihara-ryo.github.io 私の身の回りは、働き方の自由さより、将来起業する上でエンジニア通っておこう、って人が多い気がする。