kosappi の日記

愛知県豊橋市に住んでます

2023年まとめ

年末恒例の、今年もいろいろあった系ポストです。 2023年もいろいろあったので、ここに書いて供養していきます。

仕事

フロントエンドの仕事が増えて、React ばかり書いてます。Storybook 便利。相変わらず Rails も使っていますが、Hotwire の世界にはまだ行けていない。

今年の前半は本業+副業で、過処分時間がかなり圧迫されている感じがしていたのだが、一度足を止めて棚卸しすることで解決できた。

  • 毎日少しずつやる(気分がのってきても深夜までやらない)
  • 何もしない日を作る

slack を iPhone から見て、すぐに返事できるものは iPhone からリアクションしたり返事を書いたりしていたのだが、ストレスを気にして slack を iPhone から削除した。本格的な作業はパソコンでやるわけだし、今のところ問題になっていない。

育児

毎週末どこかに出かけていた。のんほいパークの年間パスポートを購入して、のんほいパークにばかり行っていた。あとはココニコ、ぎょぎょランド、近所のショッピングモールのゲームセンター(これは変化球)、など。

www.nonhoi.jp

coconico.jp

こどもは常に鼻水を垂らしている。幼稚園に通わせると、さまざまな菌やウィルスに感染するので仕方ないのだけど、これを大人がもらうので、1年のうち半分くらいは風邪気味だったと思う。大人が風邪をひくとQoLがガクンと下がるので、ビタミン剤を飲んだり、飲酒を控えて早めに寝たり、風邪をひかないように気を遣う1年だった。

趣味

音楽

レッチリのライブに行けたので満足。 新しい学校のリーダーズにハマってます。 来年は2月に Queens Of The Stone Age のライブに行けるので、楽しみ。

ワインにハマって、近所の酒屋に置いてある3,000円以下のボトルを順番に試していた。後半はワインに飽きて、焼酎の水割りをいかに美味しく作るかに凝っていた。いろいろ飲んだけど、やはりいいちこが1番美味しい。

キーボード

自作キーボードにハマって、いろいろ作った。基本的に、DIY キットを取り寄せて組み立てるだけなので、プラモのパチ組み程度の気持ち。だけど後半はスタビライザーをルブしたり、こだわりも出てきた。 以前から所有している HHKB と合わせるとキーボードが6台になってしまった。飾りたい。

ゲーム

いろいろ遊んだけど、ちょっと食傷気味で、後半はあまり遊ばなかった。サイバーパンク2077のDLCが最高でした。あの世界を作っておいて、あのボリュームで終わりというのは、やはりもったいないと思う。

読書

時間が細切れになってしまうので、あまり重いものは気が進まず、購入すらしなかった。 レッチリのアンソニーの自伝を読んでるけど、まだ読み終わらない。

思い出

夏の帰省

夏に自分の実家がある熊本に帰省した。自分の親と、子育てについて追体験を共有できるのは良い気分。 このブログを書いた後、年始にまた帰省します。

まとめ

先月、いぼ痔になりました。みんなも痔には気を付けよう。

引っ越しました

引っ越した

埼玉県の戸田市から、愛知県の豊橋市に引越しました。

なぜ引っ越したのか

自分はフルリモートワークかつ、妻は無職なので、埼玉に留まる理由がなくなった、というのが大きい理由です。 また、こどもが小さいうちは親戚にすぐ会える土地の方がベターだと判断し、引っ越すことになりました。

なぜ豊橋なのか

妻の実家があるからです。

戸田の思い出

戸田はとても住みやすい街でした。東京ほどシビアではないけど、東京にあるものはだいたい揃っている感じが、田舎から出てきた自分にはちょうど良かったです。新宿まで20分程度で移動できるのも良かったです。都内勢の飲み会に参加できる。

家賃に関しては、都内よりは安いものの自分の収入では厳しかったです。 こどもが生まれると途端に部屋が狭くなり「もっと広い部屋に引っ越したい...」と漠然と思うようになりました。

保育園や幼稚園、公園や児童館などはとても充実していて、これを手放すのはちょっと惜しかったです。(とはいえ豊橋にもそれなりに存在している)

引越しエピソード

家財の搬出当日に、スプレー缶をトラックに積めないことを知り困っていたんですが、大家さんの厚意で処分してもらえました。本当に助かりました。ありがとうございます。 引越しは梱包もやってもらえるコースを頼んだのだけど、ゴミみたいなものまで「これはゴミですか?」と何度も質問してもらって、途中から申し訳ない気持ちになりました。

引っ越して変わったこと

  • 自家用車で移動するようになった
  • 部屋が広くなった
  • 義理の祖父母とよく会うようになった
  • こどもが幼稚園に通い始めた

自家用車で移動するようになった

170シエンタに家族で乗って、毎週末でかけています。 アイドリングストップ機能を毎回OFFにするのが面倒くさい...。

部屋が広くなった

床面積は2倍になって、部屋も1つ増えました。 1部屋を完全に仕事部屋として占有できるようになって、かなり気持ちに余裕が生まれました。

義理の祖父母とよく会うようになった

週末はよくお互いの家に行きます。 大人の人数がこどもより多いと、かなり精神的に楽。

こどもが幼稚園に通い始めた

これは引越しとは直接関係ないです。(年齢的に幼稚園にスライドする必要があるため) 戸田に住んでいた頃は小規模保育園に通っていたので、かなりストレスがかかっているみたい。

感想

小松原街道で軽い煽り運転に遭い「これが豊橋か...」と洗礼を受けた気分になりました。 そんな小坂をなぐさめたい方は、ぜひほしいものリストからプレゼントをお願いします!

www.amazon.jp

AlpacaJapan株式会社に入社しました

2/4に弥生株式会社を退職しました。

blog.kosappi.net

2/7にAlpacaJapan株式会社に入社しました。

www.alpaca.ai

何をするのか

ウェブエンジニアとして、主にアルパカ証券に関わる予定です。 よろしくお願いします。

今までは RubyRails でしたが、これからは Java をやる予定です。 まだ全然わからなくて、ワクワクしています。

感想

前回の転職(BrandingEngineer -> Misoca)では、最初の面接こそオンラインでしたが、採用フローが進むとオフィスで面接をやりました。また、オンボーディングもオフィスに出社してやりました。 今回はコロナの影響もあり、まったく出社せずに入社日を迎えました。(初日は出社する予定だったけど、コロナの影響でオンラインに) やっぱりちょっとは出社したいですね。

mac -> windows、zoom -> meet、という差分に初日から面食らってますが、早く慣れていきたい。

その他

家庭の事情で、春ごろに愛知県に引っ越す予定です。

ほしいものリストからたくさんプレゼントをいただきました。ありがとうございます! 家電もいただいたんですが、使い始めるのは引っ越してからになると思います...。(早く開けたい...)

www.amazon.jp

弥生株式会社(Misoca)を退職します

弥生株式会社を退職します。 入社時は Misoca 株式会社だったので (Misoca) と書きました。

  • 2022/1/20 最終出社
  • 2022/2/4 退職日

感想

株式会社 Misoca に入社したのは2017年10月でした。自分が入社したときはすでに弥生に買収されており、入社後に合併されて弥生株式会社の社員になりました。足掛け4年3ヶ月でしたが、途中で育児休業(6ヶ月+7ヶ月)を挟んだので、実際に働いたのは3年ちょっとになります。

Misoca は自分にとってとても働きやすい組織でした。コロナ禍以前からずっとフルリモートだったので、昨今のリモートワーク移行の波に飲まれなかったのもラッキーだと思っています。

入社してから結婚して、こどもが2人できました。結婚も出産も育児も、Misoca が働きやすいことがモチベーションにつながっていたと思っています。

次もウェブエンジニアとして働きます。

ほしいものリスト

恒例のほしいものリストを作りました。 www.amazon.jp プレゼントをお待ちしています!

個人ウェブサイトを更新した

kosappi.net を更新しました。

今回は、地元(熊本県)の友人にお金を払って、デザインから実装までやってもらいました。 (old mac っぽくしてくれ、みたいなオーダーは自分が出した)

デスクトップ版の PageSpeed Insights は 98 だったので、問題ないと思っている。

f:id:rkosaka:20211221233646p:plain
pagespeed insights

もうちょっと整理しようと思えばできるけど、しばらくこれで。

彼に仕事を頼みたい場合は、自分に連絡をください。

2つの PostgreSQL 間でデータをコピーする

pg_dump ではデータベース丸ごと、テーブルごと、が指定できる。

でも、データがめちゃくちゃ大きい場合は SELECT * FROM users WHERE sex=0 みたいな SQL の結果をダンプしたくなる。 pg_dump のオプションでは、これを実現できない。

PostgreSQL ではクライアント(psql)の \copy コマンドが使える。 \copy

フロントエンド(クライアント)コピーを行います。 これはCOPY SQLコマンドを実行する操作ですが、サーバで指定ファイルに対する読み込みまたは書き込みを行うのではなく、psqlがファイルの読み書きや、サーバとローカルファイルシステム間のデータ送信を行います。 この場合、ファイルへのアクセス権限はサーバではなくローカルユーザのものを使用するので、SQLのスーパーユーザ権限は必要ありません。

PostgreSQL が持っている COPY とは厳密には違うので注意されたい。

シェルスクリプトを工夫すれば COPY でも同じことができると思うが、今回は psql でログインしてササッとやる感じ。

ダンプ

-- クライアントをデータベース1(コピー元)につなぐ
\copy (SELECT * FROM users WHERE sex=0) TO './users_sex_0.dump'

リストア

-- クライアントをデータベース2(コピー先)につなぐ
\copy users FROM './users_sex_0.dump'

PostgreSQL の WITH で再帰させる

これは弥生 Advent Calendar 2021 の7日目の記事です。

qiita.com

PosgreSQL の WITH

共通テーブル式(Common Table Expression)は一時的なテーブルを定義するもの。 サブクエリを使って SQL がネストして深くなってしまうような場合に、便利だと思う。

PostgreSQL では WITH 句で CTE を書ける。

www.postgresql.jp

こんな感じで、名前をつけた式を別の式から呼ぶことができる。便利。

WITH company_names AS (
    SELECT company_name AS name
    FROM companies
)

SELECT name
FROM company_names;

WITH で再帰できる?

WITH RECURSIVE と書けば、自分自身を参照できるようになり、再帰的に問い合わせることができる。 公式ドキュメントでも紹介されていた、1から100までの合計を計算する式は、以下のようになる。

WITH RECURSIVE t(n) AS (
    VALUES (1)
  UNION ALL
    SELECT n+1 FROM t WHERE n < 100
)
SELECT sum(n) FROM t;

-- 5050

これを ruby で書くとこんな感じだろうか。

def t(n)
  return nil if n > 100
  
  [n, *t(n + 1)]
end

pp t(1).sum

# 5050

なるほど再帰が書けるのか、と思ったけど、どうやら再帰ではないらしい。

注意: 厳密には、この手順は反復であって再帰ではありませんが、RECURSIVEはSQL標準化委員会で選ばれた用語です。

ふむ...

たしかに 再帰的問い合わせの評価 を読むとこれは for 文に近い。

とはいえ、面白いので、他にも試してみる。

添字の列を確保しておくと、ちょっと難しい数列も表現できる。

等比数列

WITH RECURSIVE t(i, n, d) AS (
    SELECT 1, 1, 3
  UNION ALL
    SELECT i + 1, n * d, d FROM t WHERE i < 10
)

SELECT i, n FROM t;
i    n
1   1
2   3
3   9
4   27
5   81
6   243
7   729
8   2187
9   6561
10  19683

フィボナッチ数列

WITH RECURSIVE fibonacci(i, x, y) AS (
    SELECT 0, 0, 1
  UNION ALL
    SELECT i + 1, y, x + y  FROM fibonacci WHERE i < 10
)

SELECT i, x FROM fibonacci;
i    x
0   0
1   1
2   1
3   2
4   3
5   5
6   8
7   13
8   21
9   34
10  55

感想

再帰じゃなくて反復なのは違和感があるし、トリッキーだと思う。なんとかならなかったのだろうか。 SQL でちょっと気の利いた計算ができるのは面白いけれど、この機能で救われる場面はあるのだろうか?と考えてしまう。

引き続き、弥生 Advent Calendar 2021 をよろしくお願いします。

qiita.com