👋 Hello I’m nove-b

Welcome to this page.

Hello.I’m an engineer who enjoys personal development as a hobby.I mainly handle frontend tasks at work.Therefore, I focus on backend development in my personal projects🦖.


2024の目標 💪

  • ネイティブアプリをリリースする
  • 基本情報技術者資格を取る
  • OSS活動にコントリビューとする
  • Mastodonのサーバーを立ち上げる

【2024年8月、9月】とにかく仕事に追われる

デスマーチから帰還する 気がついたら10月になっていた。 ここ最近、納期に追われて更新すらできなかった。 8月から始まったデスマーチは9月中の納品を目指し壮絶を極めた。 反省点が多い 何故デスマーチになったのか、後述するように会社都合でもあるのだが、自身の反省も多くある。 useSWR をラップしてCURDに対応させたこと form内のvalue定義をミスったこと コンポーネントを共通化しすぎたこと 共通処理をうまくまとめられなかったこと プルリクのマージレベルを下げたこと あげだすときりがない。 これにスケジュールの反省点もある。 これは重要なので今度まとめる。 裁量労働制という奴隷制度と文化祭前の高揚感 壮絶を極めたので、毎日帰宅は日をまたぎ、土日もほぼ出勤した。 しかしいくら仕事をこなしても裁量労働制なので残業が出るわけでもない。 しかもこの納期、会社の決算前に売り上げを上げたいという、こちら提示の納期なので、なぜか自分の会社に首を絞めれるという摩訶不思議な案件だった。 積る不満はいくつもあるが、案件としてはとても楽しかった。 立ち上げたサーバーに入り操作することも、バックエンドの人といろいろ最適解を探りつつ、勉強しつつ進めていくのがとても楽しかった。 色々なことを犠牲にしたが、その分成長できたし、わいわい楽しくできたと感じている。 脱落者がいないのもいい結果だった。 仕事は家庭を犠牲にする さて、色々なことを犠牲にしたと書いたが、特に犠牲になったは家族である。 日をまたいで帰る日は既にみんな就寝し、寝顔を見ることしかできない。 普段、家事を沢山しているわけではないが、この間ほぼなにも手伝えずで、妻がワンオペで乗り越えてくれた。 忙しく帰れないせいで妻が飲み会に行けなかったり、しかもすっかりそのことを忘れていたりと散々迷惑をかけた。 申し訳ないし、感謝してもしきれない。 その分給料とか還元されるものがないので、やっぱり少し納得いかない気もする。 みんな1歳歳をとった 家族の誕生日が8月末と9月初めに集中している。 さすがに誕生日に、とくに双子の誕生日に仕事に行っているわけにはいけないと、メンバーには申し訳ないが、家族写真撮影とアンパンマンミュージアムに行った。 カレーパンマン好きは遺伝する 双子のうち娘のほうがなぜかカレーパンマン好きで「かれー」とよく言っている。 あるいはカレーが好きなだけかもしれないけれど、どうやら世間的にカレーパンマンが好きな人は少数派らしく、妻に自分もカレーパンマン好きだったことを言うと驚いていた。 そんなことまで遺伝するものなのか、と。 そんなカレーパンマンに抱きしめれられてご満悦の娘と、いつもの姿からは想像できない素早さで動く息子を見ていると、やっぱりたくさん家に帰って、長い間子供たちを見ていたいと思うようになる。もちろんその分大変なことも多いのだけれど。 案件が終わった今、少しでもいろんなところに行き、たくさん思い出を作りたいと改めて思った。 今年はあと、昭和記念公園に行って、箱根に旅行に行きたい。 あと、おかあさんといっしょのファミリーコンサートのリセールにも当選したいし、ディズニーランドの予約もせねばならん。 来年からは妻の育休が明け、好きに遊びに行けなくなるに違いないので、それまでに存分に家族で楽しみたい。 ーー、のはやまやまなのだが、保活も仕事同様に壮絶を極め、いろいろ時間を浪費している。 保活について まず、うちは双子なので当然、2人分の枠が必要になる。 だがしかし、多くの保育園は1~2人という募集要項で、運よく2人だとしても双子で埋めていいものかという疑問が残る。 いや入れるのなら入るのだが、それが不利に働かないかと不安になる。 考えられることを国はしてくれているんだろうけれど、保活壮絶すぎるでしょう。 文句を言っても仕方ない。引き続き頑張る。 8月9月に読んだ本 毎月まとめている読んだ本だが、そんな通りなので、全然本が読めなかった。 8月と9月で1冊。しかもそれがあまり面白くなかった。 かなりや荘浪漫 廃園の鳥たち (PHP文芸文庫) ログによると なんか、序章って感じ。 何も始まってない、シリーズぽいけど、もう読まなくていいかな っていう感想だったらしい。 10月は本を読む。 今のままだとキンドルアンリミテッドに入っている意味がないし、なによりずっと大好きだった趣味を失いたくない。 Mastodonのクライアントアプリ Trunksというアプリを見つけ、使い始めた。 これが良いのだけれど、唯一の欠点が絵文字リアクションに対応していない。 なので、絵文字リアクションに対応したクライアントアプリを作りたい。 そしてそもそも自分のサーバーを建てたい。 まずは自分のサーバーを建てようと思う。 これは必ず今年中に実現する。と宣言してみる。

投稿日 · 2024-10-15 · 更新日 · 2024-10-16 · 1 分 · nove-b

【2024年7月】読書できず、仕事に追われている

7月に読んだ本 ない、何も読めなかった。 正直時間を作り出そうと思えばできた気がするけど、なんとなく手に取れなかった。 読まないといけないものではないけど、心のゆとりがなくなっている1つの指標ではあるので、すこし考えなおしたい。 どんだけ軽い本でもいいので、8月は1冊は読みたい。 趣味を失うことは恐ろしい。 Surfaceを購入した Surface(第11世代)を実際に買うまで悩んだこと 悩みに悩んだけど、買ってよかったと思っている。 この記事で触れたProArth PZ13 HT5306はまだ販売していないよう。 待たなくてよかった。 1ヶ月近く使ったけど、満足している。 ただまだ家でしか使ってないので、小さいテーブルで発生するキックスタンドの問題には直面していない。 9月まで仕事が繁忙期を迎える なかなか忙しい。 8月9月と家族の誕生日、そして保活とイベントが盛りだくさんなのだが、そこらへんが疎かになっているので、家庭に危機感を持たないといけない。 うまくバランスをとるか、ここは一気に仕事にけりをつけるか悩みどこだけど、今回の案件的にバランスが取れるような感じではないので、少しでも早く終わらせられるように全力で取り組む。 案件的には学びもあり、楽しくはある。 ただやっぱり家で仕事するのはどうなんだろう。 自分は楽しいからいいけど、家族的にはそんなことないだろうし、理想は家に仕事を持ち込まないことだと思う。 少し遅く帰ってもいいけど、家族が起きている時間は家族を優先するべきだよね。 早く起きてやるとか。すこし考え直さないといけない。 目標を変えるというのは悪手でしかない という風に、最近はずっと忙しいのだが、不思議なことに忙しいとやりたいことがたくさん生まれる。 たとえば今年の目標の1つであるマストドンのサーバーを無性に立ち上げたくなったりとか。 でも10月に基本情報をとるって決めているので、まずはそこからクリアしたい。 勉強できていなので、クリアできるかわからないけど、1つづつ消化していくのが一番いい。 8月から10月までの生き方 ということで、この記事を書いているのがすでに10日で8月の1/3を終えているのだが、 家族が起きている時間は仕事をしない(家のことが終わり次第ok) 10月の基本情報に向け、勉強する これが10月までの生き方でマストドンのサーバーは基本情報が終わり次第着手していく。

投稿日 · 2024-08-10 · 更新日 · 2024-08-10 · 1 分 · nove-b

Surface(第11世代)を実際に買うまで悩んだこと

Surfaceに片思い 遡ること、2年前前の2022年。 Surfaceが欲しく家電量販店に通った。 欲しくて欲しくてどうしよもなかったのだが懸念点がいくつかあり、決め手に欠けた。 例えば、Surfaceを象徴するキックスタンドとタブレットモード。 キックスタンドは狭い机で操作しにくいとか、膝上で操作できないとかいろいろな口コミが、購入を留まらせた。 またタブレットモードもそうで、そもそもタブレットとして使うには重すぎるし、winndowsのタブレットモードは使いにくいと思うって言われており、もっともだと思った。 そして購入に至らなかった最大の理由は、使用していたgramが十分に役割を果たしていてくれていた点。まだバリバリの現役だった。 それから2年の月日が経ち、gramの動きがもっさりとし、たまに動かなくなるよになった。なにより、キーボードのいくつかのキーが紛失していた。 買い替え時が訪れた パソコンの買い替え時が訪れた。 2年の月日が経とうが、ずっとSurfaceが欲しかった。 これは買わなきゃ後悔するということで購入を決意した。決意したのだが、値段を見ると決意は簡単に揺らいだ。 最低20万7680円でタイプカバーをつけると23万くらいになる。 うーん、高い。ということでさらに3か月悩むことになった。 名乗りを上げる候補者たち その間に富士通のFMV LOOXも候補にあがってきた。 すこしスペックは落ちるけど、最低限は担保しているように思える。 ただ、FMV LOOXはバッテリー35Wh(surfaceは48Wh)なので見送ることにした。 持ち運ぶ前提なのでバッテリーは重視したい。 それに、FMV LOOXは画面の縦横比が16対9なのもマイナスポイントになった。コーディングをするので縦長のほうが好ましく、この点もSurfaceが勝っている。 唯一、本体の重さが599gというのは非常に魅力的だった。 次のバージョンに期待しつつ見送る。 コスパのASUSが台頭する なんて迷っているとASUSがProArt PZ13 HT5306というSurfaceと同じようなセパレート型のパソコンを出すことが発表された。 コスパに定評のあるASUSだしバッテリー容量も70whとずば抜けている。 期待しかないのだが、稼働中のgramがそれまで待てないほど消耗しきっているので、タイミングが合わなかったということで泣く泣く見送った。けど、次回以降の候補になるので、注視したい。 surfaceの懸念点 vs 思い 色々見送ったけど、そもそもSurfaceの懸念点がなくなったわけじゃなく、なんなら11世代はチップがARMになるとのことで、懸念点が増える一方だった。 でも2年間欲しかったという気持ちを尊重して購入にいたった。 結果 買ってみると予想以上に良かった。 何よりパソコン感がない。 今までパソコンを持ち歩くとき、すこし後ろめたさがあった。 パソコン持ち歩くってなにごと? みたいに思われやしないかと不安だったけど、Surfaceなら持ち歩いていても何も違和感ない。 裸で持ち歩いているけど、タブレット持ち歩いているのと何ら変わらない。 それにパソコンを開く抵抗も減った。 持ち歩くとき同様、パソコンは開くときもそれなりに心理的ハードルがある。話しつつ調べごとをする時に、パソコンを開くのは少し大仰な気がするけど、Surfaceならすっと開ける。何ならたぶんスタイリッシュに開くことができる(願望)。 心配したキーボードの操作性も特に問題ない。なにより、gramのようにキーがなくなっても交換できるという利点がある。 いい買い物をした。 今のところ不満点はなく、購入してよかったと思える。

投稿日 · 2024-07-08 · 更新日 · 2024-07-08 · 1 分 · nove-b

tailwind-mergeというプラグインはなぜ入れるのか

Tailwind CSS を使う時に一緒に入れたいライブラリが参考になった。 px-4とpy-6というクラスを持つコンポーネントにp-10というクラスを渡した場合、CSS カスケードにより、p-10というスタイルは無視される。 CSS カスケードというのは、 異なるソースから来るプロパティ値を組み合わせる方法を定義するアルゴリズム のこと。 で、今回は詳細度でp-10は無視される。 ただコンポーネントで上書きしようとしたスタイルが無視されるのは困る。 そこで必要となるのが、tailwind-merge。 tailwind-mergeはコンフリクトした Tailwind CSSのクラス名を取り除きつつ結合するライブラリで、上記では後から指定されたp-10により、px-4とpy-6というクラスが結果からとりの結果から取り除かれる。 結果、意図した挙動をするコンポーネントができあがる。

投稿日 · 2024-07-07 · 更新日 · 2024-07-08 · 1 分 · nove-b

nextjsのプロジェクトでclass-variance-authorityを採用した

レビューは勉強になる 最近案件が立て込んでいるのは6月のまとめに書いたんだけど、結果いくつかのプロジェクトで実装ではなく、ただのレビューアーと化している。 実装がしたいって今まで強く思っていた。 実装が実力を伸ばす唯一の手段だと思っていたけど、レビューも真剣にやればすごい勉強になることに気が付いた。 というのもレビューするには、まずコードをしっかり読まなければならないし、知らないプラグインとの出会いがあり、それを調べることで相当勉強になる。 で、今回出会ったのが、class-variance-authorityというプラグイン。 class-variance-authorityとは?? 簡単に言うとvariantsを定義して条件分岐をわかりやすくするもの。 公式にあるbuttonコンポーネントの例がわかりやすい。 import React from "react"; import { cva, type VariantProps } from "class-variance-authority"; const button = cva("button", { variants: { intent: { primary: [ "bg-blue-500", "text-white", "border-transparent", "hover:bg-blue-600", ], secondary: [ "bg-white", "text-gray-800", "border-gray-400", "hover:bg-gray-100", ], }, size: { small: ["text-sm", "py-1", "px-2"], medium: ["text-base", "py-2", "px-4"], }, }, compoundVariants: [{ intent: "primary", size: "medium", class: "uppercase" }], defaultVariants: { intent: "primary", size: "medium", }, }); export interface ButtonProps extends React....

投稿日 · 2024-07-06 · 更新日 · 2024-07-07 · 1 分 · nove-b