eityansメモ

eityansメモ

ゆるくやっていきます

記事一覧

Contentfulで定義したレスポンスをTypeScriptで使う

このブログはHeadless CMSであるContentfulで記事を作成し、Next.jsでデータを取得して表示しています。

今まで型定義を自前で用意していたのですが、自動で生成するライブラリを使うことにしました。

cf-content-types-generatorを試してみます。

contentful-typescript-codegenを使う方法を最初試していたのですが、メンテナンスがあまり活発でないことと、Contentfulのv10のアップデートに失敗してしまうことがわかりました。これから対応する方は注意してください。


型情報を含んだjsonを読み込んでTypeScriptの型を作るので、まずはそのjsonを作る準備をします。contentful-cliを使います。

1npm install -D contentful-cli

jsonを作るスクリプトをpackage.jsonに追加します。export-confing.jsonを別で作り、そこに設定値を入れます。この設定値には公開したくないアクセストークンをいれるので、gitignoreに入れてコミットしないようにします。

ちなみにmanagementTokenはCMA tokensからPATを作成することで取得しました。

1{
2  // ...
3  "scripts": {
4    "contentful-export": "contentful space export --config export-config.json"
5  }
6}
7
1{
2  "spaceId": "XXXX",
3  "managementToken": "CFPAT-XXXX",
4  "contentFile": "contentful-export.json",
5  "skipContent": true,
6  "skipRoles": true,
7  "skipWebhooks": true,
8  "skipTags": true
9}

npm run contentful-exportを実行することで、型データのjson(contentful-export.json)が作られました。

次にこの型データjsonからTypeScriptの型を作ります。cf-content-types-generatorパッケージをインストールします。

1npm install -D cf-content-types-generator

package.jsonに以下のスクリプトを追加します

1{
2  // ...
3  "scripts": {
4    "contentful-generate-types": "cf-content-types-generator contentful-export.json -o ./@types --v10 --response"
5  }
6}

スクリプトを実行することで型が生成されます

1npm run contentful-generate-types

これで型が生成されました。これで安全に開発ができます。

eityans.comドメインを取得してみた

X(Twitter)GitHubも全てeityansで統一しているし、せっかくなのでドメインも取得してみました。

Cloudflareで取得。年10$ほどで、それぐらいなら良いかなと思いました。

電車移動中にふと欲しくなったのでその場で取得。帰宅してからこのブログに設定しました。

このブログはVercelにホスティングしており、設定画面のドメインからポチポチするだけで反映されました。便利。


具体的に設定したこと

Cloudflare側

Vercel側

  • ドメインの追加

    • Settings→Domains→Addから今回取得したドメインを追加しました

    • Cloudflareにリダイレクトされ、良い感じに連携してくれました

    • 反映されるまで数分かかりました。

  • 元のドメインのリダイレクト設定

    • 「blog-eityans.vercel.app」というドメインが割り振られているので、これをeityans.comにリダイレクトさせる設定をしました。

テキストコミュニケーションのデメリットは本当にデメリットなのか

完全リモートの会社に転職して1年半近く経つ。

やり取りは全てSlack。文字だけのコミュニケーションで、会議と言えるものは朝会で一日5分程度。あと面接ぐらいか。同棲していなかったら一言も話さないこともありそう。

仕事を進めるうえで調整しなければならないことが発生したときも全てSlack。突発な会議や打ち合わせは行ったこと無い。それで仕事が進むのかと思う人もいるかも知れないが、案外進むものだ。

かなり極端な会社にいると思う。自分なりにテキストコミュニケーションだけで仕事を進めるメリットとデメリットを考えてみる

メリット

  • 仕事を邪魔されない

    • こういう言い方をすると新しく入ってきた人などがコミュニケーションを取りにくくなりそうだが、ここではシンプルにこう言い切る。同期的なコミュニケーションは要求する側にはメリットがあるが要求される側にはあまりメリットがないのだ。

    • 逆に、質問する側からすると仕事を邪魔する気後れみたいなものが無いのも良い。

  • 透明性

    • 誰が何に困っているのかがわかるし、誰がそれに対応しているのかもわかる。評価をする面でそれらがわかるのは良い。

  • 後世に残る

    • 文字に残ることで他の人に知見がいきわたる。

  • 考えが整理される

    • 瞬発的な会話を要求されないため、じっくり検討することができる。やり取りの濃度が上がる

  • 自己解決することがある

    • 考えが整理され、結果として自己解決することもある。

デメリット

  • 考えをテキストに起こすのに時間がかかる

    • これは慣れの問題もありそう。ただ、何に時間がかかるのかといえば考えを整理するところが大部分だと思うので、かつそれをあらかじめ整理するのは同期的だろうが非同期だろうがすることではないだろうか。

  • リードタイムがかかる

    • 性質上しょうがない。それを踏まえて各自が行動するのが望ましい。確認することは早めに確認し、回答を待つ間に別の作業を行うなど。

    • 回答する側は、ひとまず目は通しましたということや、今は回答できないことだけでもすぐに伝えたほうが良い。それだけで質問側のフラストレーションがかなり下がる。

  • 考えをテキストにまとめるのが苦手な人がいる

    • 国語の能力だったり、論理的思考力の話になる。得意不得意があるものだが、繰り返し練習すれば伸びるもの。重ねて言うが、得意不得意がある部分なので、苦手な人を努力不足と安直に判断するのは控えたほうが良い。

  • テキストでのコミュニケーション自体が苦手な人がいる

    • テキストはそっけなく見えてしまいがちで、その影響を忘れがち。

    • ある程度は慣れてもらうしか無い気がするが、そういう人もいるのは念頭においておきたい。

デメリットを小さくするために

メリットとデメリットを見ると、メリットは組織やチームに関係し、デメリットは個人に関係していることに気付く。であるならば、個人の改善が大いに効果を発揮するだろう。以下を意識する。

  • 質問を受けたらすぐに反応する

    • これは回答を含まなくても良い。あとで回答することを伝えるだけでも良い。

  • 絵文字や「!」をつける

    • おじさん構文になっても良い気がする。無機質な感じを減らせる。

FeedlyからFeederに移行した

RSSリーダーを地味に使っている。全ての記事を追うつもりはないが、たまに見ると気になるブログが更新されたりしていて面白い。

Feedlyを使っていた理由は特にない、基本的にツールにこだわりはない人間なので、気になるブログやサイトの記事の新着が通知されればなんでもいい。特にChrome拡張機能が嬉しく、右上のアイコンから手軽に記事を見に行けるのが良かった。
FeedlyからFeederに移行したのはこの拡張機能が使えなくなったからだ。やはり動線がないと記事を読みにいかない。他のツールを探し、ぱっと目についたFeederに移行した。

移行方法はあるのかもしれないが、いまいちすぐに方法を見つけられなかった。面倒だが、せっかくなのでこれを機に購読するサイトの整理をした。

整理してみると面白く、自分の関心事が移っていることがわかった。例えばCSS周りのテクを紹介するサイトは移行しなかった。転職する前はフロントエンドの細かい実装も行っていたが、今の職場はそれらができるデザイナがいる。彼に任せればよくなったので、そのあたりを追いかける必要性が薄くなったりしている。

他にも、逆に何年も更新していないブログを見て、この人は今どうなっているんだろうと思いを馳せたりした。逆に、もしかしたらこのブログに対して同じようなことを考えている人がいるかもと思い、このできことを書いてみることにした。

移行作業は最初は面倒だと思ったが、自分やいろんな人が変わっていることを感じて案外面白かった。作業自体は1時間程度。定期的に整理するのは今後もやってみようと思った。

2025年に読んだ本

随時更新していく。上に行くほど最近読んだ本。

深夜特急3―インド・ネパール―

八丈島に行ったり、柏島に行ったり、旅行中にこういう本を読むとテンションが上がる。

この本はインドの話がメイン。とても面白い。インドは学生のうちに行けばよかったなぁと思っている。まだ間に合うかな

6/30 読了


深夜特急2―マレー半島・シンガポール―

深夜特急の2冊目。出てくる人物が面白い。

旅の思い出ってそこで出会った人が大きかったりするよなと思ったり。出てくる人が個性的で、どこか悲しい。

6/14 読了


思考の質を高める 構造を読み解く力

構造学習論という、小学校の国語の授業を大人に向けて展開した本。

後半は社会人一年目に向けた文章(なぜ議事録作成が大事なのか?みたいな)になっており、少し飛ばして読んだ。

大事な観点を伝えているので、その観点を知らない人からしたら有益な本かもしれない。ただ、観点は知っているが日々の実務や生活でどう活かすのか悩む人にはあまり解決にならないかも。

6/8 読了


深夜特急1―香港・マカオ―

沢木耕太郎の冒険譚。1974年春の話。今から50年以上前に、26歳で一人で冒険を始めた人の話。実際の旅の様子が伝わり読んでいて楽しい。香港の話では2023年の台湾で10日ほど過ごした日々を思い出した。現地の人とのふれあいに戸惑う様子が共感できる一方、驚くほど大胆な選択をしていく姿は尊敬すらある。

マカオの大小の話が面白い。自分は韓国で大小をしたことがあるが、あまりイカサマを感じてはいなかった。

巻末の対談で、一人で行くから地図やガイドブック無しで過ごせて良い。という話があってとても共感した。複数人で旅をするとどうしても計画が必要になりスタンプラリーのような感覚になってしまう。誰かと行く旅行も思い出としては最高だけど、一人で行く旅も良い。大学院自体にドイツで過ごした日々を今でも思い出すことがある。旅をしたくなった。

6/8 読了


Think Smart 間違った思い込みを避けて、賢く生き抜くための思考法

思考のアンチパターンが52個紹介されている。新聞のコラムを本にしたもので、一つ一つが3~4ページほどでサクサク読める。行動経済学や認知心理学に関する話が多く、どこかで聞いたほうな話が多い。人間が陥りやすい誤った思考法を知ることで、誤った考えを防いで有意義に生きようという趣旨の本。

社会のためにボランティアで素人労働をするぐらいなら、その時間本業で稼ぎ募金をしてその道のプロにやらせたほうが仕事が生まれるし生産的だという話が印象に残っている。確かに。

6/7 読了


ドリルを売るには穴を売れ

よくきく話がタイトルになっている。きっと古典的な本なのだろう。顧客はモノではなく価値を買っているというのは過去の会社や、大学院でデザイン思考の授業を取った経験から身を持って感じている。

この本はそれをベースに、マーケティングの基礎であるベネフィット、セグメンテーション、差別化、4Pの話をしている。

日常でなにかモノを買ったりサービスを利用するときの視点が増えるいい本だった。

6/1 読了


私の夢はスイスで安楽死

難病に苦しむ著者の半生と、安楽死を求めてスイスに行った話がこの本のメイン。安楽死直前で断念しているため、著者はまだ生きている。その気持も綴られている。

壮絶というべきか、重すぎる内容にしんどい気持ちになる。著者の医者に対する怒りが随所に現れているが、読んでいるとそれもしょうがないだろう。

最後に父親と母親の思いが書かれている。どちらの内容も正直で、整理しきれていない思いが伝わってくる。内容は重いが、知らない世界を知ることが出来た。

5/27 読了


まんがでわかる 30歳から伸びる人、30歳で止まる人

たまにはこういうライトな自己啓発を読みたくなる。電車移動にちょうどよかった

5/26 読了


危険だからこそ知っておくべきカルトマーケティング

新興宗教や新興政党、マルチなどが使うテクニックを知ることができる。書かれている内容はどれも納得感があり、さらに一部の人々がそれらのカルトにハマる理由も腹落ちした。

ボルダリングでよく一緒に登っていた人からマルチの勧誘を受けた経験があるので、知識として持っておくことはとても大事。読み物としても面白かった。

ビジネス書っぽい体裁を取ろうとしているが、なんだかんだマルチテクニック紹介で収まっている感じ。

気になった言葉:ラビットホール、レッドピル、マンデラ・エフェクト

5/25 読了


SCRUM MASTER THE BOOK
「SCRUM MASTER THE BOOK」を読んだ

ここ最近リーダーっぽいことをやっているので、関連するような本を読んでいる。「,まず自分はスクラムについて少し誤解していたようだ。これまではスクラムのことを何らかのミーティング手法の集合ような感じで認識していたが、それは違った。,スクラムの目標はチームを自己組織化した状態にすることであり、決まった方法があるものではない。スクラムマスターは常にチームを観察し、ときに導き、ときに教え、障害物をなくし、会…

5/23 読了


SCRUM BOOT CAMP THE BOOK【増補改訂版】 スクラムチームではじめるアジャイル開発

チームの成果を上げるために何かヒントにならないかと読んだ本。スクラムはプロダクトオーナーと協力し、何を作るのか、どのように作るのかを考えていく。今自分が進めているのはどういうものを作るのかは既に決まっていて、いかに個人が与えられたタスクを消化し、最大限の能力を発揮できるかというところに関心があるため、少しズレているかも知れないなと思った。ただスクラムについて体系的な本をこれまで読んだことがなかったのでとても興味深かったのと、哲学やプラクティスは役に立ちそうと思った。

キーワードとして自己組織化がある。スクラムの最終目標は自己組織化するチームになることなのだと思う。

5/18読了


リーダー1年目のマネジメント大全

最近リーダーをやっているので読んでる。心構えのようなものを知った。

5/14読了


ソフトウェア開発現場の「失敗」集めてみた。 42の失敗事例で学ぶチーム開発のうまい進めかた

読み物として面白かった

5/13 読了


伝わるコードレビュー 開発チームの生産性を高める「上手な伝え方」の教科書
コードレビューで安易に質問形式を使うとチームが疲弊する

修正依頼の意図があるならば、素直にその内容を書いたほうが良い。安易に質問形式を使うとチームが疲弊する。,,質問形式のレビューとは,例えばユーザーのidを抽出したいときに以下のコードがあったとして,user_ids = User.where(hoge).map(&:id),それに対して,,みたいな質問形式。これ、なるべくやめたほうが良い。,「この処理で必要なのはIDだけなので、pluck(:id)を…

前に書いたこの内容をより充実させた感じ。同意しかない。

5/2 読了


自走プログラマー ~Pythonの先輩が教えるプロジェクト開発のベストプラクティス120

1,2年目ぐらいの人が読む本だなと思い、途中から流し読み程度に読んだ。そりゃそうだよねーという内容が書かれているので、新しい発見はあまりなかったかも。

ただレビューのコミュニケーションの話はとても良くまとまっていて、人に教えたりするときに使えるかも

4/29読了


CAREER SKILLS ソフトウェア開発者の完全キャリアガイド

SOFT SKILLSを書いた人の本。名前の通り、キャリアについて深く考えた。

4/17 読了


人を動かす

名著。中身ももちろん良かった。至極真っ当なことを述べている。読みながら反省することが多い本。

人を動かすというタイトルだが、より正確に言うならば、「相手の立場や意見、感情を一番に尊重し、相手が自発的により良い方向に気持ちよく行動させるための方法」を教えてくれる。

原則は相手に重要感を与えること。自分はそういうトーンで仕事を依頼したり会話をしたりできているだろうか。言い方だけの話ではなく、相手のことを自分がどう見るのかを教えてくれる本なので、この本から得た視点で人を見ていきたい。

相手を議論や結果で打ち負かしたとき、自分は気持ちいいかもしれないが、相手の気持ちはどうだろうか。そういう短期的な快楽を自己中心的な理由で選択するのは得策ではない。振り返ると、それぐらい相手に譲ってやれよという場面がいくつかある。相手の誤りを指摘することは正しいかもしれないが、合理的とは言えない。

自分はどれだけ人のことを褒めているだろうか、今日から褒めていきたい。

3/30 読了


SOFT SKILLS ソフトウェア開発者の人生マニュアル 第2版

本の存在は知っていたが読んでいなかった本。第二版があるとのことなので読んでみた。

もっと早く読めば良かったかもしれないし、今読んでちょうどいい本だったかもしれない。

この本を読んですぐに行動を変えようと思ったことが二つある。一つはブログを継続的にメンテしようと考えた。ドメインを取得したのもそのせいだ。放置していたら叱ってほしい。二つ目はポモドーロ・テクニックだ。今日が日曜日なので、明日の仕事で活かすのが楽しみ。

読んで良かった。

3/16読了


Tidy First? ―個人で実践する経験主義的ソフトウェア設計

話題になっているので読んだ。リーダブルコードのような本かと思ったが、コードの整理方法を紹介すると言うよりは、コードを整理すること前提で行動して過度なコストを払っていないだろうか?という気づきを与えてくれる本。

本書曰く整頓はプリングルスのようなもので、少し始めるとどんどん止まらなくなるものらしい。すごくわかる。それによってPRが肥大化するのもわかる。かといって整理しないのも将来の負債だし。

整頓周りの要バラをより深く考察している本。

整頓の顧客は自分自身という言葉も響いた。整頓はある意味自己満足かもしれない。とりあえず何でもかんでも整理することはなくなりそう。

3/8 読了


GitLabに学ぶ パフォーマンスを最大化させるドキュメンテーション技術 数千ページにもわたるハンドブックを活用したテキストコミュニケーションの作法

ドキュメンテーションの重要性は常々思っている。特に今の会社ではフルリモート&非同期コミュニケーションがほとんどなのでその思いは強くなっている。

社内で共有して同じ考え方や近い考え方で行動できるようにしても良いかもしれない。

3/4 読了


哲学的な何か、あと数学とか
フェルマーの最終定理の歴史が著者の楽しい文章で紹介されている。サイモン・シンのフェルマーの最終定理を読んでいたため、歴史の大枠は知っていたが、この話は何度聞いても感動する。今回も感動した。

一日であっという間に読んでしまった。

2/6 読了


一度読んだら絶対に忘れない世界史の教科書

世界史の勉強をしたことがないので、教養として読んだ。

権力が集中すると荒れてコケるパターンが本当に多い。二枚舌外交の意味を知った。

2/2 読了


ポーカーとゲーム理論2 ――最適なレンジ構築と状況変化を考えた戦略的対応

難しい。ただ確実に一つ上のレベルに引き上げてくれる。

定期的に読み返す予定。トーナメントの章を読んで久しぶりにトナメやりたくなってきた。

1/27 読了


14歳からの哲学入門: 「今」を生きるためのテキスト

哲学ブーム来てる。自分は哲学については全く知らなかったが、とても楽しく読めた。

歴史上の様々な哲学を紹介している。なぜその考えが生まれたのかの説明と、その考えの内容が次々に展開される。その結末は予想外だった。面白い時代に生きているのだと思う。

1/18 読了