Springの@Async先にSecurityContextを引き継ぐ

DelegatingSecurityContextAsyncTaskExecutor (Spring Security 4.0.4.RELEASE API) を使えば実現できるっぽい。 ので AsyncConfigurer を実装したらちゃんと動いた。

import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.security.task.DelegatingSecurityContextAsyncTaskExecutor;

@Configuration
public class AsyncConfig implements AsyncConfigurer {
  private final ThreadPoolTaskExecutor defaultSpringBootThreadPoolTaskExecutor;

  public AsyncConfig(ThreadPoolTaskExecutor defaultSpringBootThreadPoolTaskExecutor) {
    this.defaultSpringBootThreadPoolTaskExecutor = defaultSpringBootThreadPoolTaskExecutor;
  }

  @Override
  public Executor getAsyncExecutor() {
    return new DelegatingSecurityContextAsyncTaskExecutor(defaultSpringBootThreadPoolTaskExecutor);
  }
}

1Password のロック解除をYubiKeyでやる

f:id:Yoshiori:20220217170745j:plain

絶対やり方忘れるので history 新鮮なうちにメモ書きしておきます。 僕は指紋認証もしたかったので YubiKey Bio シリーズにしたので本家サイトで購入した。

www.yubico.com

まぁぶっちゃけ NFC のやつのほうが便利なんじゃないかなぁとかも思ってる。そっちは Amazon で買えます

基本的には Universal 2nd Factor - ArchWiki に丁寧に説明があるのでそれでOK。 Arch じゃなくてもだいたい一緒だと思う(pam-u2f つかう)

$ yay -S pam-u2f
$ mkdir ~/.config/Yubico
$ pamu2fcfg -o pam://#{hostname} -i pam://#{hostname} > ~/.config/Yubico/u2f_keys

Arch のドキュメントに「ホスト名指定しておいたほうが良いよ」って書いてあったのでそれに従ってます。

で、僕は sudo と polkit だけ指紋認証(というかu2f)に変更してます。 ディスク暗号化してるとログインのときの認証はめんどくさいのでな。

ファイルはそれぞれ /etc/pam.d/sudo/etc/pam.d/polkit-1 です。その auth の先頭に下記を追加するだけ

auth       sufficient   pam_u2f.so nouserok origin=pam://#{hostname}  appid=pam://#{hostname} 

で、1Password のお話、設定で認証を system のものを使うように設定する。

f:id:Yoshiori:20220217172455p:plain

で、そうするとOSのパスワード入力画面が出てくる。 これを YubiKey で入力したいんだけど何を変更したら良いか調べたら polkit だった。

ja.wikipedia.org

ので上記設定で 1Password 起動すると初回起動時はマスターパスワード求められるけど次からは YubiKey 光るので触るだけで解除できます!

首元ヨレヨレになったTシャツの捨てるタイミングで悩むのをやめた

基本的に何かを考え始めるとどうでも良いことでも結構時間を使ってしまう人間なのでどうでも良いことは考えずに決断出来る様にしておきたい。 で、昔から出す時としまう時の衣替えの時期に無駄に考え込んでいた「このTシャツ若干ヨレヨレだけどお気に入りだから捨てるのも忍びない」的な感情をどうにかして6年位たった。 マイノリティなのは自覚しつつ他にも「決定で悩むことは1つでも減らしたい」性癖の持ち主はいると思うので僕のやり方を書いておく。

Tシャツとかトレーナーとかの捨て時

すごく簡単だけど悩まなくなってスッキリした1個目がコレ。やるのはすごく簡単で服を買ったらその日のうちにラベルに買った年を書いておく。で衣替えのタイミングで2年経ってたら問答無用で捨てる。 f:id:Yoshiori:20220125224545j:plain

これ、やってみたら本当に良くて衣替えの時、何も悩まずに捨てるものとしまうものを判断できる。2年にしたのはお気に入りの服はだいたいそのくらいでヨレヨレになってくるしそうじゃ無い服はどうせ着ないので要らない。という感じ。だいたい普段着的なのは5着あれば回せるのでそれで回している。

ラベルに記載するペンは普通の油性ペンだとすぐに洗濯で落ちてしまうのでお名前ペンを使ってる。

ヒートテックの替え時

ヒートテック、近年の夏から冬にかけての気温の変化速度的にノーマルヒートテックは要らないと判断した。半袖から少し肌寒くなってきた長袖着て上着着てもまだ寒い的な時期になったらもう極暖で良い。逆に超極暖は雪山とか行かないのであれば必要無いと判断。 ヒートテックは古くなると機能落ちるとか言われてるしそのくせ破けないのでベロベロになるまで着ちゃったりするんだけどコレはもう毎年買い換えることにした。 ポイントは極暖を5枚、お正月に買うこと。だいたい毎年見てると年末にヒートテックセールやった後、年明けが1番安くなってる気がする。極暖でも千円以下で買える。なのでお正月になったら極暖を5枚買う。届いたら古いのは全て捨てるという運用にしてる。

靴下の替え時

靴下はもう右と左っていうペアがある時点でだいぶ難易度の高い衣服なので変える時は全く同じものを5足買って古いのは全部捨てて入れ替える。 去年と同じのを買い増せば良いとか思ってた時期もあったけど実際やってみると企業努力が邪魔をして微妙に去年のと違ったりする。どれとどれがペアとか悩みたくなくて同じもの買ってるのにその企業努力は邪魔にしかならないので全部いっぺんに交換してる。

夏用の短い靴下と冬用のヒートテック靴下の2種類10足だけ持ってる。コレはそこまで細かくは決まってないけど残り3.5足になったら買い替えるようにしてる。

パンツの替え時

コレが実はまだ決まっていない。UNIQLOとかGU のボクサーパンツ履いてるんだけどまぁ、コレが丈夫。5年履いても破れないので鬼のパンツより強いと思う。コレも同じように購入年を書こうかなぁと考えながらこの2年新しいのを買ったないのでやってない。書いてた思ったけどそろそろ総取り替えしてローテーション組むべきなのかも。

まとめ

おしゃれ好きな人からは蛇蝎の如く嫌われるかもしれないけど僕の最近の洋服事情はこんな感じです。 僕と同じように無限にカンファレンスTシャツとグレーのパーカーが溜まっていく人で決定であまり悩みたく無い人にオススメです。

Git で会社のリポジトリとかは自動で別のメアドを使うようにする

仕事でGit使うときとか普段とは違う会社のメアドでコミットとかしたいんだけど、cloneするたびに git config user.email とかするのメンドイよね〜 というかもうだいぶ有名な設定だと思うんだけどたまに知らない人いるので書いておくと includeif 使うと特定のディレクトリ以下のときに読み込む設定を変更できるので便利です。

で、ここまでは普通にGitのマニュアルにも書いてあるんだけど ghq と組み合わせると最高便利になるのでそのへんの設定を書いておきます。 といっても普通に設定するだけだけど

.gitconfig には下記のように書いておいて

[ghq]
  root = ~/src
[includeIf "gitdir:~/src/github.com/launchableinc/"]
  path = ~/.config/git/launchable.inc

~/.config/git/launchable.inc には

[user]
  email = yshoji@launchableinc.com
  signingkey = 8B44C987D44775F6

な感じで書いておくと launchableinc のディレクトリ以下では会社のメアドとGPG使われて便利!!つまり ghq 使ってれば github.com/launchableinc 以下のリポジトリは会社の設定になって最高便利!ってなる感じです。

2021 年のふりかえり

Keep

英語の勉強

去年に引き続き英語の勉強は続けているのでそのまま続けたい。結局続いているのはDMM英会話とDuolingo。

f:id:Yoshiori:20211231215817p:plain

あと夏くらいから同僚に「俺の英語勉強のために週1で15分1on1してくれ!」ってお願いしている。これが思ったよりも良くてなんとなく15分くらいだとふんわり話せる。まだ英語ネイティブが複数人いるミーティングとかだと何言ってるか理解するの難しいけど、なんとなくコミュニケーションは取れるようになっている気はする。結構Duolingoで何回も同じような問題を解いているのが効いている気がしていて、よく聞くセンテンスの単語一個だけ変えて話すみたいなのをしている。

ギター

11月末に買ったんだけど少しづつ練習している。適当な音鳴らしたりおとぴぴアコースティックギターのレッスンをエレキでやってる。「Eから弾きな。」に書いてあったので最初から立って練習してるけどコードチェンジ難しいとか8ビートのジャンジャカカジャカってやりながら歌うの難しいとか思いながら楽しんでる。

 

Problem

体重があまり落ちていない

去年は全然体重増えなかったのでコロナ禍でも別に大丈夫なんだなと思って油断してたんだけど、ふと気がついたら5kg太ってた。ビックリして運動始めたりしている。あと朝ごはんはプロテインスムージーにするようにした。適当な冷凍フルーツと冷凍ほうれん草とプロテインと牛乳。それなりに腹持ちするし良い。少しづつ減ってたんだけど12月でまた少し上向いてきてしまっている。

f:id:Yoshiori:20211231221728j:plain

あまり本を読めていない

もともと本を読むのは好きなんだけど読むスピードは遅い人なので冊数をたくさん読めるわけではない。出社をしていた時は電車の中とかお昼に喫茶店でとか本を読む時間が作れたんだけど今はずっと家にいるしなかなかそういった時間が作れていない。あと子供が生まれる前とかは旅行先とかで本読んでたんだけどそういったのも無くなったので読めてない感がある。

Try

Spartan Race 参加

コロナ禍になってから参加出来てないので久しぶりに参加したい。レースに出たいというより目標あるとそのために運動するようになるのでそっちが目的かな。でもやっぱり出ると楽しいのでまた出たいと思ってる。

国内旅行に行く

コロナ禍になってから奥さんの実家くらいしか行っていないのでそろそろ国内旅行くらいはしたいなと思ってる。みんな沖縄行きすぎてて沖縄大変そうって思いながら沖縄行きたいなぁと漠然と思ってる。

もっとブログ書く

ここ数年ブログとかあまり書いていなかったんだけど仕事とか英語とか子育てとかインプットが増えた割にアウトプット増えてないのなんかフン詰まりみたいな感覚になってるなって気がついたのでもっと書いていきたいと思っている。

Linuxデスクトップ組む

15年以上前にラップトップでサスペンドがしっかりしているunix系マシンがほしくてMacにしたんだけどコロナ禍で全然移動しなくなったしもうラップトップにこだわる必要ないじゃんって思って来ている。結構前から「おんなじCPUでもガンガン電圧かけれてガンガンファン回せるデスクトップの方が性能出せるよなぁ」とか漠然と考えてた。転職もして在宅勤務になって最初は気晴らしにコワーキングスペースとか行くからラップトップにしておこうとか思ってたんだけど子供の送り迎えとか考えるとなかなかコワーキングスペース行くタイミングもない。あと家の環境をちゃんと整えたら快適すぎて他で仕事したくなくなった。ということでミドルタワーくらいで組もうかなと考え中。

雑感

ニコニコカレンダー的なノリで今年にマークをつけるならスマイルマークだなぁと思う。仕事は純粋に楽しい。西海岸のスタートアップでシードラウンドからシリーズAになる経験を出来るってなかなか無いことだと思うしエキサイティングで楽しい。去年は「早くお金を稼ぐためのものを作らねば」って焦る気持ちがだいぶ大きかったけど今年はとりあえず動くものは出来たので少し気持ちが楽になった。あとは優秀な人がどんどん入ってきていて環境もすごく楽しい。エンジニアもマジかと思うような人ばかり入って来ていて凄い刺激になっている。また正式にマネージャ職的な感じになった。僕はマネージャもエンジニアもどっちも楽しめる人で「俺はコレしかやらない」的な思いは別に無い。あ、「俺はマネジメントしない」と言っている人を責めてるとか否定しているわけじゃなくて個人的にはなんかとりあえず色々してみる方が飽きなくて面白いと思っている。じゃないと人事部長とかまでやらないしね。この先どんな道に進むのか自分でもわかってない方が楽しめるのでこのまま楽しんでいこうと思ってます。

プライベートの方は子供の成長が早すぎてなんか何も追いついていない感じ。まぁでもこれもすごく楽しい。

 

kubernetes-client/java で context を切り替える

Javaからk8s扱ってたんだけどcontextの切り替えが良くわからなくて結局コード読んで調べた。

正解は config 作ってそこでsetContextするだった。 kubectl config だとcontext切り替え時はset-contextは罠でuse-context使うんだけどプログラムからはsetContextでしたね〜 難しい

var kubeConfigPath = System.getenv("HOME") + "/.kube/config";
var config = KubeConfig.loadKubeConfig(new FileReader(kubeConfigPath));

// Staging 用のContext にして API 作成
config.setContext("staging");
var stagingApi = new CoreV1Api(ClientBuilder.kubeconfig(config).build());

// production 用のContext にして API 作成
config.setContext("production");
var productionApi = new CoreV1Api(ClientBuilder.kubeconfig(config).build());

あんまりお金かけない仕事机 2021

これは KOBA789 日記 Advent Calendar 2021 - Adventar 24日目の記事です。

 

みんなが仕事机の記事とか公開するのを見て「かっこいいなー」とか思いつつなんとなく自己顕示欲の塊っぽくも見えてちょっと気恥ずかしさを感じでたんだけど僕も自己顕示欲が出てきたので書きます!!!

f:id:Yoshiori:20211224102251j:plain

基本的にはあまりお金をかけない。けどちょっと奮発する時もあるくらいな感じでやってます。

机本体

IKEA で最初は安く揃えた。LINNMON っていうやつの 120x60 のやつと伸び縮みする足。なんかLINNMONの俺のサイズのはもう売ってなかったので別の似たやつ貼っておく。

www.ikea.com

www.ikea.com

サイズ感もちょうど良くて気に入ってたんだけどスタンディングでも仕事したくなったので定番の FLEXISPOT で足だけ買って付け替えた。ちなみに購入するならキャスター同時購入して一緒につけちゃうのおすすめ。マジで足がめっちゃ重いので動かすのが楽になる。僕は後からキャスターつけて苦労した。

flexispot.jp

flexispot.jp

ディスプレイとアーム

ここはお金かけたその1。USB-C 一本でMacと繋げたかったのでPD対応のやつってことでDELLの4Kのやつ。今見たら購入時よりも高くなってるんだけど何があったのか。

www.dell.com

アームは定番のエルゴトロンOEMのやつ、ただしAmazon BasicのやつじゃなくてHPのやつの方が安かったのでそれで。結果台座のロゴまで真っ黒で目立たないのでお気に入り。

ノートパソコンはアームへの取り付け部分だけのやつをヨドバシで発見したのでそれでディスプレイアームに一緒につけてます。机の上の空間が広くなるので便利!

https://image.yodobashi.com/product/100/000/001/001/870/689/100000001001870689_10204_002.jpg 

カメラとデスクトップライト

カメラは定番のロジクールのやつ。コスパ最強だと思ってる。手元の明かりがなくて夜とか辛かったのでBenQのScreenBar買って使ってるんだけどその上に置いて使ってる。

 

 

マイク

コロナ禍でオンラインイベント登壇とか増えてきたので買った。コンデンサマイクダイナミックマイクか悩んだ。なんかオシャレでかっこいいYentiのコンデンサマイクにしようかと思ったんだけど周囲の音が入らないようが良いと思ったのでダイナミックマイクにした。

この記事でみやーんがオススメしてたオーテクのマイクにした。USB-Cで繋げられるしマイクにヘッドフォンジャックついてるし便利で気に入ってる。

ポップガードは最初はアームにつけるニョロニョロしてたやつ使ってたんだけど、アーム動かすと場所変わったししてめんどくさくなったのでマイク自体につけられるこれにした。

で、マイクアームがここはお金かけたその2になります。なんかマイクアームって縦に折り畳む形式のやつが一般的でまぁ、そんなもんかなぁと思って諦めて使ってたんだけどTakaの記事を見て一目惚れしたのでWave Mic Arm LPにした。Low Profile というだけあって圧迫感なくて最高!

充電まわり

ワイヤレス充電に慣れるとマジでケーブル刺したりがめんどくさくなるので出来るものは基本的にワイヤレス充電に寄せてる。とりあえず仕事机に置きたいのがすべて充電できるこれを使ってる。場所も取らないし便利。

その他のケーブルは結局Ankerのやつを使っている。前は別のを使ってたんだけど磁力が弱くて落ちてきちゃう。残骸だけテーブルに残ってるけどデザインは好きだった。

f:id:Yoshiori:20211224132323j:plain

キーボードとマウス

キーボードはHHKBを長いこと使ってたのでHHKB配列以外使う気があまりしなかったんだけど、完全にHHKB配列を再現しつつ分割しているChoco60にした。

keys.recompile.net

キーキャップは最初は無刻印だったんだけどパスワード入力とかの大事な時に打ち間違えるので変更した。なんか普通にコード書いてる時とかはなんとなくで打てるのにちょっと慎重にキーを意識して打とうとすると間違えるのなんでなんだろう?

NP PBT Crayon KEYCAPS SET – 遊舎工房

マウスは前も書いたけどロジクールトラックボール使ってる。

ロジクールのワイヤレストラックボールが快適 - 宇宙行きたい

紙とペン

f:id:Yoshiori:20211125141443j:plain

ちょっと雑にメモ取りたいとかなんだかんだ便利なので紙とペンは常に置いてある。分割したキーボードの真ん中に置いてる。ペンは draftcode が万年筆使っているのが羨ましくなって自分でも買おうと思ったんだけど値段見てドン引きしたので最初は安い万年筆使ってみようと思ってカクノにした。千円以下で買えるのに書き心地にすごく満足してる。インクはなんとなく黒だと寂しかったのでブルーを使ってる。

紙の方はなんとなくでリーガルパッド使ってる。なんとなく結局リーガルパッドに帰ってきちゃう感じ。なんとなくで20年以上使ってるのでリーガルパッドの色とか紙質とかが好きなのかもしれない。言葉で説明できないけどずっと使ってます。

デバッガ

ラバーダック・デバッグ - Wikipedia

おしまい

f:id:Yoshiori:20211224102855j:plain