ハイライト 2023-04-19

Articles

LangChain x Supabase

blog.langchain.dev

  • LangChainとSupabaseは、GPT-3のようなモデルとPrivateなデータをつなげたり、ドキュメントのembeddingをvector storeに格納したりと、複数の方法で一緒に使うことができる
  • LangChainとSupabaseを併用することで、フルスタックのAIアプリケーションが作れる
  • LangChain and Supabase Starter Templateは、React + Next.js + Tailwindのフロントエンドと、セットアップとデプロイの手順、LangChainを使ってGPT-3.5のAPIを呼び出すSupabase Edge Functionを提供。
  • LangChainは最近Deno上での実行をサポートするようになり、Supabase Edge Functionsと一緒に使うことができる

他人の10倍仕事ができる人に10倍の給与を支払うべきなのか問題

zenn.dev

  • プログラマーの能力に基づく給与の議論についての記事
  • 優秀なプログラマーは他の人より10倍も仕事ができるが、その分だけ給料をもらうべきかについての問題
  • 最終的に、給与を決定する際には、相互に合意できる評価基準を見つけることが必要

後で楽できるTerraformの書き方(※ただし書くときは辛い)

tech.smartcamp.co.jp

  • Terraformのコードを簡素化し、読みやすくするためのコーディングガイドラインを紹介しています。

An example of LLM prompting for programming

martinfowler.com

  • Generated Knowledgeと呼ばれるプロンプト技法を使ってインタラクションを別のステップに分割
  • Generated Knowledgeは、2つのスタイルのプロンプトを組み合わせる
    • Instruction prompting
    • Chain of Thought prompting
  • LLMとパートナーのように、設計のガイドラインから始めて、その根拠を示してもらい、アウトプットに手を加えながら活用するのが有用

Private SaaS Is Coming: Are You Ready?

thenewstack.io

  • Public Cloudは、過去20年以上にわたってソフトウェア展開を変革してきましたが、完全に制御できるPrivateな環境を必要とするニーズは依然として一定存在する
  • セキュリティ、管理、監査、コンプライアンスなど、さまざまな業界の企業がプライベートSaaSでのサービスを求めるようになっている
  • プライベートSaaSは、SaaSの利点を享受しながらも、複雑なセキュリティ要件を満たし、それを超えることができるようにする

Videos

Connect OpenAI To +5,000 Tools (LangChain + Zapier)

www.youtube.com

  • LangChainとZapierを使ってOpenAIを+5,000のツールに接続
  • Zapierの自然言語APIを使ってOpenAIと対話す
  • ツイートの作成、メールの下書き、Slack、Giphy、Gmailなどへのメッセージの送信。
  • メールの要約、ツイートの作成、Gmailでの下書きの実行例

Structured Output From OpenAI (Clean Dirty Data)

www.youtube.com

  • OpenAIモデルは、非構造化の入力を受け取り、構造化された出力を生成するために使用できる

Tweets


ハイライト 2023-04-12

Books

The Staff Engineer's Path: Chapter 1. What Would You Say You Do Here?

learning.oreilly.com

  • スタッフエンジニアの役割は曖昧で、自分で役割を見つけ、決める必要がある
  • 役割の範囲を明確にし、価値あるものと実用的なものを理解する
  • すでにシニアが多いプロジェクトを選ぶときには注意する
    • シニアじゃないエンジニアの機会を奪ってしまっていないか
  • 会社にとって重要なことに時間を費やすことを意識的に行う
  • 自分の時間は自分で守る
  • 品質、効率、秩序を維持し、ソフトウェアが機能するようにシニアが必要
  • シニアエンジニアは、マネージャーまたはスタッフエンジニアに昇格するスキルを身につける選択ができる

Videos

The LangChain Cookbook - Beginner Guide To 7 Essential Concepts

www.youtube.com

  • LangChain Cookbookは以下7つの言語モデル開発のための基本概念を紹介する初心者向けガイド
    • テキスト
    • メッセージタイプ
    • メタデータ
    • プロンプトテンプレート
    • 埋め込み
    • レスポンススキーマ
    • 要約チェーン

Tweets

  • Distractions fill the space we give them.
  • Empathy lifts you and the other person up; judgment pulls you and the other person down.
  • Repetition is the father of learning.
  • Proficiency is just pattern recognition.
  • The goal is to grow forever, not to grow fast.
  • Action is the only thing between you and your future self.
  • Set your own priority list to avoid being dictated by others.
  • Create and play your own game rather than competing in someone else's.
  • Focus on doing something you are intrinsically interested in, rather than something that is popular but you hate.
  • Fundamentals are the doorway to mastery.

自分もAI関連のものに投資していかないとなー


料理考えてもらうのとか、買い物するものの提案とか、実用性めちゃ高そう

ハイライト 2023-04-05

Articles

Staff archetypes

oreil.ly

  • スタッフエンジニアには4つのタイプがある
    • Tech Lead
      • チームをリードする責任がある
    • Architect
      • 企業内の特定の技術領域の成功に責任を持つ
    • Solver
      • 組織の信頼されていて複雑な問題に深く関わる
    • Right Hand
      • 直接の管理責任を持たない上級組織リーダーに似ていて、リーダーのスタッフミーティングに出席してリーダーたちの影響力を拡大させる

先日 Wantedly さんのエンジニアリングマネージャー座談会に出…

onk.hatenablog.jp

  • 開発生産性に関しては、ディスカバリーとデリバリーの2軸で考える
  • 開発チームを改善するためには、高速にアウトプットしリリースを繰り返せるチームを目指す
    • そのためには、各軸(デリバリー、ディスカバリー)それぞれ80点を取ることを目指す
  • チームを改善するためには、イテレーションを回してコミュニケーションのトラブルを解決し、改善された実感を得るのが重要
    • 良い企画が当たったときには爆速でリリースする

You Are Not Too Old (To Pivot Into AI)

www.latent.space

  • 挑戦する姿勢を忘れずに改善あるのみ!

Learn In Public

www.swyx.io

  • 学びは公にする習慣をつける
  • 正しいことをすることを心がけるが、間違った時には悩まずに自分が初心者であることを表明する
  • 教えることが学ぶための最良の方法であり、コードを書きながら話をすることも重要

Pick Up What They Put Down

www.swyx.io

  • 「pick up what they put down」という方法で、自分が尊敬する人が公開した新しいライブラリ、デモ、動画、ポッドキャスト、書籍、ブログ記事、またはコースを見つける。
  • 見つけたものに基づいてコンテンツを作成し、それに本当に興味を持ち、熱中して取り組むことが重要。
  • ソーシャルメディアで自分が作成したコンテンツのクリエイターにタグ付けし、フィードバックやエンドースメントを受け取る準備をする。
  • 習慣を形成するために、トリガー、アクション、可変報酬、投資のフックドモデルに従う。
  • 興味を持つものを3つ選び、そのうちの1つについてフィードバックを受ける。これを12回繰り返すことで、多くのことを学び、多くの新しい友達を作ることができる。

Growth of AI Through a Cloud Lens

www.latent.space

  • 最近のAIの動きが、クラウドが出てきた頃と似ている
  • クラウドの主な利点は、既存のソフトウェアを移行できる能力であり、AIにも同じ利点がある
  • AIのバズり方はクラウドよりも広い社会的影響力があり、成熟期間がクラウドのときよりも短くなることが予想される

GPT-4時代のエンジニアの生存戦略

qiita.com

  • これにつきます→『エンジニアとして、「顧客/ユーザーがほしいと言っているもの」を定義済みの要件からコードを書いて作るのではなく「ビジネスサイドがそれにより実現したいこと」を探り当て、コーディングを手段として扱うことができれば、科学的、批判的思考スキルを必要とする職業となり、GPTは仕事を奪う敵では無く有能な味方として扱えるようになります。』

Tweets

テンプレにして何かを学ぶときに使える


ChatGPT Pluginが気になる

ハイライト 2023-03-29

Books

Software Architecture: The Hard Parts - 10. Distributed Data Access

learning.oreilly.com

  • Column Schema Replication Pattern
    • 列がテーブル間で複製され、データが他のBounded Contextで利用可能になる
    • データ同期とデータの整合性が問題になる
    • データのOwnershipも難しい
  • Replicated Cache Pattern
    • 複製されたインメモリキャッシュを利用し、他のサービスで必要なデータを各サービスで利用可能にする
    • データは各サービス内のメモリに保持され、常に同期されるため、すべてのサービスで正確なデータを持つ
    • データ同期と整合性が最大の問題
    • 障害耐性、パフォーマンス、外部キャッシュ依存のないところが利点
  • Data Domain Pattern
    • 別サービスのデータを同じSchemaで管理しちゃう
    • 構造が変更された場合、データドメインのテーブルのいずれかの構造が変更された場合、複数のサービスが変更する必要がある

Tweets

ChatGPT Plugin試してみたいなー

ハイライト 2023-03-22

Articles

ChatGPT: 5 Prompt Engineering Secrets For Beginners

youtube.com

  • 文脈的関連性を加えることが重要で、より多くの文脈的関連性を加えることで、一貫性のある正確な回答を生成できる
  • タスク定義を明確にし、曖昧さを避け、整合性を保つことが重要
  • デザイン、テスト、評価のサイクルを通じてプロンプトを改良し、反復的なアプローチを取り、生成コンテンツの改善と最適化を進めることが重要

Cascading vs. aligning OKRs

www.tability.io

  • カスケード型のOKRは、戦略が完璧であることを前提としていて、アジャイルとの相性が微妙
  • カスケード型のOKRは、コストかかり、スピード感を出しにくい

このあたりは確かにそうだなと。経験的にも。

Tweets

ChatGPTを体験してみて、「働き方は確実に変わるな」と確信したので、今後の自分の方向性やキャリアについてはもう少し解像度をあげないとまずいなと思った。

ハイライト 2023-03-15

Articles

Measure What Matters Summary

fourminutebooks.com

youexec.com

改めてMeasure What Mattersを読むにあたって要約記事を見てみた。

Additionally, team members should create half of their own OKRs to promote engagement. Tracking progress is also important, and feedback and recognition are needed to help everyone reach their goals

自分ごとにどうするかという点と、どのようなインパクトが組織にあるのかがうまい具合に噛み合わさると良いんだろうけど、それがふわっとしたまま進むと悶々とした存在になってしまう傾向がある気がする。

How to Implement Cursor Pagination Like a Pro

medium.com

In conclusion, please, please for the love of God, do not concatenate your cursors, especially if you are dealing with large sets of data.

複雑なフィルタリングとソートが必要なエンドポイントの場合どうするんだ?って思ったけど、そもそもカーソルページネーションをやめるという選択肢もあるんだということは納得できた。カーソルで行きたいがためにconcatしちゃうのは、やっちゃいそうな予感。。。

Tweets

A Philosophy of Software Designまだちゃんと読めてないので読みたい。


"Use the Stereotypical Levels of Design"

responsibility-first なアプローチ。すべては:

  • a role
  • with responsibilities
  • that collaborate

Applications are just neighborhoods of abstractions playing roles, filling in responsibilities and collaborating with each other

ハイライト 2023-03-08

Articles

Title: Testing-Library でユーザの気持ちになって書くフロントエンドのテスト

zenn.dev

data-testid で一昔前までフロントエンド側はテストやりまくっていたので、accessibilityも考えて、あるべき姿にDOMを構成していくことが大事だと改めて認識。 Semanticがキーですね。


Ditching useState and useReducer: Why useImmer is the better option

dev.to

useImmer を使って useStateuseReducer から開放されてみようっていう話。使ってみたいけど、依存を増やすこととのトレードオフですね。


Product Pulse #4: New directory and authorizer, evaluator, and more!

www.aserto.com

AsertoのTopazによるOPA+Zanzibarな権限ソリューションは気になっているのですよね。

www.topaz.sh


Engineering growth: framework overview

oreil.ly

Mediumが提唱しているエンジニアのキャリアパス。役職はなんだかんだで意味がある、ということ。


CSS Style Queries

ishadeed.com

Container size queriesはパラダイムシフトだなぁ。Media Queryよりだいぶいい感じに使えるような気がする。

Books

The Staff Engineer's Path - 2. Three Maps

learning.oreilly.com

組織内で何が重要なのかを理解することの重要性について、3つのMapを描くと良さそう。

  • A Locator Map: You are Here
    • 自分の位置づけを把握する
  • A Topographical Map: Learning the Terrain
    • 組織内の地形を把握する(政治的な部分やトラブルが多そうな箇所など)
  • A Treasure Map: X Marks the Spot
    • 宝地図のXにめがけて近づいているのかどうかを把握

Videos

Team Topologies, Cognitive Load & Complex Systems | Matthew Skelton In The Engineering Room Ep. 12

www.youtube.com

全部をコントロール下に置くことを目指すのではなく、コアな部分で意思決定をすることにフォーカスすべきと。また、意思決定するにあたっての指針を提示しておくと良さそう。ある程度の制約も設けることで、より意思決定はしやすくなる可能性もある。

Tweets

素晴らしいイベントでした。そして以下の内容も要ブックマーク。

scrapbox.io


unsatisfied は抽象的な概念にも使える。 dissatisfied を同じように使うと不自然になる。