# 株式会社KDOT > コーポレートサイトとエンジニアリングブログ(KDOT Engineering)。各記事は URL 末尾に .md を付けると Markdown 本文を取得できる。 ## コーポレート - [ホーム](https://kdot.co.jp/): 株式会社KDOTのコーポレートトップ - [事業企業向け](https://kdot.co.jp/business): 経営・事業課題を技術で解く支援 - [会社情報](https://kdot.co.jp/company): 会社概要・所在地 - [お問い合わせ](https://kdot.co.jp/inquiry): 一般のお問い合わせ - [営業のお問い合わせ](https://kdot.co.jp/inquiry/sales): 営業・提案のご相談 - [フィロソフィー](https://kdot.co.jp/philosophy): ミッション・ビジョン・バリュー - [プライバシーポリシー](https://kdot.co.jp/privacy): 個人情報の取り扱い - [技術企業向け](https://kdot.co.jp/tech): 技術を事業成長につなげる支援 - [サービス](https://kdot.co.jp/service): 個別サービスの一覧 - [データ分析](https://kdot.co.jp/service/data-analysis): データ分析サービスの紹介 - [データ基盤](https://kdot.co.jp/service/data-platform): データ基盤構築サービスの紹介 - [PdM支援](https://kdot.co.jp/service/pdm): プロダクトマネジメント支援の紹介 - [プロダクト / Webシステム開発](https://kdot.co.jp/service/web-system-dev): 要件定義から本番運用までのプロダクト開発支援の紹介 ## KDOT Engineering - [KDOT Engineering](https://kdot.co.jp/kdotdev): エンジニアリングブログのトップ - [技術スタック](https://kdot.co.jp/kdotdev/technology-stack): 利用技術のカタログ - [テーマ一覧](https://kdot.co.jp/kdotdev/tag): 記事タグ(テーマ)一覧 - [tsc v7対応記録](https://kdot.co.jp/kdotdev/typescript-7-migration-record): TypeScript 7はコンパイラがネイティブ実装に変わり、Compiler APIを提供しない。7系tscと6系互換APIを別々の依存名で共存させる構成、周辺ツールのpeer範囲、tsconfigの削除された設定と変わった既定値への対応。 - [Next.js上のPayload CMSでリアルタイムpreviewを組み立てる](https://kdot.co.jp/kdotdev/payload-cms-live-preview): Payload CMSのlive previewを構成する2部品を最小構成で整理し、iframe cross-siteでCookieが消える原因と、SameSite=None書き換えとURL secretという2経路の選び方を示す。 - [Storybookで画面操作説明の画像をAI Agentに作らせる](https://kdot.co.jp/kdotdev/storybook-ai-agent-screenshot): 画面操作説明のスクショをStorybookのstoryファイルとして扱い、番号バッジをDOM識別子から実測してportalする。AI Agentへの1回の依頼で説明画像を更新できる最小構成を示す。 - [rayonとtokioの使い分け](https://kdot.co.jp/kdotdev/rayon-tokio-choose): rayonはCPU-boundなデータ並列、tokioはI/O-boundなタスク並行のためのライブラリ。実行モデルが違うので速度比較ではなく仕事の性質で選び、混在する処理はtokio外皮 + spawn_blocking + rayonの入れ子で組む。 - [Payload CMSをCloudflare Workers/D1/R2で動かす](https://kdot.co.jp/kdotdev/payload-cms-cloudflare-stack-components): Payload CMSをCloudflare Workers/D1/R2/Access/Wranglerに割り当てて動かす構成の解説。SSGの扱い、料金と性能の見方、pros/consまで。 - [Metabaseの権限モデル入門](https://kdot.co.jp/kdotdev/metabase-permission-model): Metabaseの権限設計を、元データ・意味付け・保存済み分析・collectionの4層と、data permissions・collection permissionsの2軸で整理する。OSSとPro/Enterpriseの権限差も示す。 - [dylintでRustの自前lintを運用する](https://kdot.co.jp/kdotdev/dylint-custom-rust-lints): Clippy既存lintだけでは足りない組織固有ルールを、dylintのlint crate、workspace metadata、ui_test、nightly固定で運用する手順として整理する。 - [RustでMarkdownをパースする — parserの選び方](https://kdot.co.jp/kdotdev/rust-markdown-parser-comparison): RustのMarkdown parser 4 crate(pulldown-cmark・comrak・markdown-rs・tree-sitter-md)のAPI形状・位置モデル・GFM対応を同一fixtureで比較し、用途別の選定手順を示す。 - [Rustで日本語lintのために使用できる技術](https://kdot.co.jp/kdotdev/japanese-markdown-lint-architecture): Rustで日本語Markdownをlintする4つの課題と、各層の入出力で技術(pulldown-cmark・rowan・lindera・serde-sarif)を選ぶ設計を解説する。 - [rowanでロスレス構文木を作る — 原文を捨てない構文表現と使い方](https://kdot.co.jp/kdotdev/rowan-lossless-syntax-tree): rowanのロスレス構文木を、green/red二層からGreenNodeBuilder、走査、型付きビュー、checkpointまで、Markdownを題材にした動くPoCで解説する。 - [Pyrightの静的型付け:上級者向け解説](https://kdot.co.jp/kdotdev/type-concepts-advanced): こちらの記事では、Pyrightを用いた型の特定技術「type narrowing」を紹介しています。型チェッカーによる型の絞り込み、型ガードの利用方法などを取り上げています。これにより、プログラマはコードの安全性と効率を向上させることができます。 - [型推論についての理解](https://kdot.co.jp/kdotdev/type-inference): こちらの記事では、Pythonにおける型推論のプロセスについて紹介しています。シンボルとスコープの概念や型宣言の方法、型推論の機構などについて詳細に解説しています。 - [Pylance: VS Codeにおいて最も優れたPython拡張機能](https://kdot.co.jp/kdotdev/pylance-the-best-python-extension-for-vs-code): こちら記事では、MicrosoftのPython言語サーバー「Pylance」について解説しています。PylanceはVisual Studio Code内でPython開発をサポートするための高速で機能豊富なツールです。この記事は、PylanceがVS Code用Python言語サーバーの将来を担っていることを強調し、その利用を推奨しています。 - [Rust Webフレームワーク比較 Actix Web / Axum / Rocket / Poem](https://kdot.co.jp/kdotdev/rust-web-framework-comparison): Axum、Actix Web、Rocket、Warp、Tide、Poem、Pavex の7つをコード例とともに比較します。初学者には資料の揃った Actix Web と Axum を勧めます。 - [Hypothesis: 適切なデータの生成](https://kdot.co.jp/kdotdev/generating-the-right-data): こちらの記事では、Hypothesisを使用して複雑なデータモデルに合致するテストデータを生成する方法について解説しています。様々な例をもとに、データ生成のためのHypothesisの機能や戦略の適用方法を紹介した上で、生成されたデータが要件を満たすことを保証するテスト戦略についても説明しています。 - [ForeignKeyを正しく設定しているのにsqlalchemy.exc.NoReferencedTableErrorが出る](https://kdot.co.jp/kdotdev/foreignkey-sqlalchemy-exc-noreferencedtableerror): このエラーはsqlalchemy ormのDeclarativeスタイルでのForeignKey定義が間違っているときに出る。 例えばForeignKeyの指定先の他のテーブルが存在しないときなど。 ただしその設定が正しい場合でもこのエラー... - [SQLAlchemy ORMの宣言的モデル定義でMany to Manyのrelationshipがある際にモデルファイルを複数に分ける](https://kdot.co.jp/kdotdev/sqlalchemy-orm-many-to-many-relationship): SQLAlchemyで宣言的モデルを複数のファイルで定義する際に生じる 型エラー 実行時エラー の解決について書く。 宣言的モデルとは ORMのモデルをPythonのクラスを用いて宣言的(Declarative)に書ける機能。 この様に書く... - [PythonのCallableで関数に型を付ける](https://kdot.co.jp/kdotdev/python-callable): Pythonでは関数というのは重要な役割を果たし、当然だがtype hintでは関数に対して型をつけることができる。 そのためにはCallableという型を使って型アノテーションを行う。 この記事ではCallableを使用して関数に型をつけ... - [Hypothesisを用いたテスト最適化の探求](https://kdot.co.jp/kdotdev/testing-optimizers-with-hypothesis): この記事では、Hypothesisを使用してコードの最適化をテストする方法を紹介し、ナップサック問題を例に説明しています。 - [テストパフォーマンスの最適化](https://kdot.co.jp/kdotdev/testing-performance-optimizations): こちらの記事では、Hypothesisを用いたテストパフォーマンスの最適化についての筆者の見解を紹介しています。 - [合成に基づいた縮小処理](https://kdot.co.jp/kdotdev/compositional-shrinking): こちらの記事では、ソフトウェアテストで型に依存しない値の縮小手法について議論し、ライブラリ「theft」や「QuickTheories」を例に挙げています。このアプローチは、生成された値に依存しない縮小プロセスに焦点を当て、より柔軟で堅牢なテストケース生成を可能にすると説明しています。 - [Hypothesisについて(研究者向け)](https://kdot.co.jp/kdotdev/hypothesis-for-researchers): こちらの記事では、今後、Hypothesisに関する研究を深めようとする著者による、Hypothesisの解説が行われています。 - [Hypothesisの仕組み](https://kdot.co.jp/kdotdev/how-hypothesis-works): この記事では、Hypothesisの仕組みが解説されています。従来のシステムとは異なり、テストケースを安全に変更・保存可能で、かつ縮小する能力を持つHypothesisは、生成されたデータを効率的に管理し、過去の失敗を記録して再現する機能を持ち合わせています。テストデータの生成と縮小を行うための複雑なメカニズムが詳細に説明されています。 - [統合された縮小処理](https://kdot.co.jp/kdotdev/integrated-shrinking): この記事では、HypothesisとHaskellのQuickCheckとの間にある縮小処理方法の違いについて詳述しています。Hypothesisでは、縮小処理が値の生成過程の一部として統合され、生成時と同じ不変条件を満たすことが保証されます。これにより、テストの失敗がより理解しやすくなるとともに、テストに制約ロジックを導入する必要性が軽減されます。 - [段階的なプロパティベースドテスト](https://kdot.co.jp/kdotdev/incremental-property-based-testing): この記事では、著者が従来のPythonユニットテストから、段階的にプロパティベースドテストへ移行する過程を紹介しています。最初は基本的なテストから始めて、徐々にHypothesisを使ってより高度なテストへと進んでいったプロセスを通じて、開発者たちはテストの意図が明確になるとともに、より包括的なテスト戦略を構築することができました。 - [完全な仕様に基づいたテスト](https://kdot.co.jp/kdotdev/tests-as-complete-specifications): この記事では、Hypothesisを使用してバイナリサーチの問題をテストする方法を紹介しています。問題が特定のシンプルな特性によって完全に定義される場合、Hypothesisはその特性を捉えるテストを簡単に作成できることが強調されています。しかし、テストが有限の例のセットに限られるため、すべてのバグを検出することはできないと指摘しています。そのため、追加のテストケースを検討することが重要であると結論づけています。 - [CloudflareはVercelの代替なりうるのか](https://kdot.co.jp/kdotdev/cloudflare-vs-vercel): previewデプロイができるか Image Optimize ISR 値段 結論 ISRと画像最適化の互換性がない(未調査だが頑張ればCloudflareでも再現できるかも) コラボレーターごとの課金がない分、値段はCloudflareの... - [閾値問題に関する考察](https://kdot.co.jp/kdotdev/threshold-problem): こちらの記事では、テスト中に小さなエラーを発見する際の閾値の問題に焦点を当てています。Hypothesisは、特定の閾値をわずかに超える最小のエラーケースを特定しますが、これにより実際の問題が過小評価されることがあります。この問題の解決策として、テストの期限を調整する方法や、将来的な改善策としてスコアリング概念の導入が提案されています。 - [sopsの使い方](https://kdot.co.jp/kdotdev/how-to-use-sops): .envなどのクレデンシャルを含むファイルを安全な方法でエンコードしたりデコードする一連のワークフローを提供するコマンドラインツール 暗号化のための鍵との接続方式としてAWS KMS、GCP KMSなど複数用意している この記事ではAWS... - [マルチバグ発見](https://kdot.co.jp/kdotdev/multi-bug-discovery): この記事では、Hypothesisがバグを発見し、それを単純化するプロセスや、異なるバグをどのように管理するかについて詳しく説明しています。また、最近リリースされたHypothesis 3.29.0の新機能と、それがユーザー体験に与える影響についても触れています。 - [型とプロパティ](https://kdot.co.jp/kdotdev/types-and-properties): この記事では、プロパティベースドテストにおけるデータ生成と型システムの利用に関する著者の考えを紹介しています。特に、Pythonでのデータジェネレーターの活用や、型とプロパティの相互作用について触れています。 - [Hypothesisから学ぶ「ダイ・ハード」で生き残る方法](https://kdot.co.jp/kdotdev/how-not-to-die-hard-with-hypothesis): この記事では、著者がHypothesisを用いて「ダイ・ハード3」において出題された問題を解決する過程について考察しています。 - [Pyright(Pylance)のtype check ruleの設定全部解説する: その2](https://kdot.co.jp/kdotdev/pyright-pylance-type-check-rule-2): その1はこちら https://kdotdev.com/kdotdev/pyright-pylance-type-check-rule 各ルール解説 reportUninitializedInstanceVariable 概要 report... - [Pyright(Pylance)のtype check ruleの設定全部解説する: その1](https://kdot.co.jp/kdotdev/pyright-pylance-type-check-rule): Pythonの型チェックツールPyrightは設定によって静的型解析の挙動を変えることができる。 具体的には以下のページにある「Type Check Diagnostics Settings 」の値をいじる。 https://github.... - [ソフトウェアの正確性にまつわる経済学](https://kdot.co.jp/kdotdev/economics-of-software-correctness): この記事は、完璧に正確なソフトウェアを開発する困難さと、ユーザーを品質向上のための協力者として活用することの問題点について著者の見解を述べています。高品質なソフトウェア開発の高いコストや、バグを発見するコストを減らすことの重要性を指摘しています。 - [ルールベースドステートフルテスティング](https://kdot.co.jp/kdotdev/rule-based-stateful-testing): ルールベースドステートフルテスティングについて、著者の見解をまとめた記事です。 - [OpenAPIからフォームのバリデーションまでの型とコードを生成する](https://kdot.co.jp/kdotdev/between-api-and-form): この記事はTypeScriptアドベントカレンダー21日目の記事です。 はじめに 弊社ではいろいろ生成して開発の効率化を図っています。 今回はその中でも、OpenAPIからフォームまで一気通貫で型を合わせる方法を紹介します。 この記事の内容... - [プロパティベースドテスティングとは何か](https://kdot.co.jp/kdotdev/what-is-property-based-testing): プロパティベースドテスティングに関して、筆者の現段階の見解をまとめています。 - [私がNext.jsを使用しない理由](https://kdot.co.jp/kdotdev/why-i-wont-use-nextjs): 筆者がNext.jsを使用しない理由について、様々な観点から解説しています。 - [SlackAppをVercelにデプロイする](https://kdot.co.jp/kdotdev/slackapp-vercel): とある事情からSlackAppが欲しくなりました。 今回はSlackAppをVercelにデプロイしたのでそのやり方を説明します。 SlackAppとは 簡単に概念を説明するとSlackのAPIに叩かれたり叩いたりするやつのこと チャットを... - [ts-morphを使ってコンポーネントとstorybookのファイルを自動生成](https://kdot.co.jp/kdotdev/ts-morph-react-storybook): ts-morphを使ってファイルの自動生成をできるようにしたので紹介します。 ファイル自動生成系のツールは山のようにありますが、ts-morphを使いたかったので、ts-morphを使います。 コード全体は以下から見れます。 https:/... - [React サーバーコンポーネントへの50,000行のコード移行前に知っておきたかったこと](https://kdot.co.jp/kdotdev/what-are-react-server-components): Reactサーバーコンポーネントについての基本的な説明と、その利点と欠点を著者の実体験に基づいて解説する記事です。 - [ts-morphを使ってtailwindのレスポンシブ対応](https://kdot.co.jp/kdotdev/ts-morph-tailwind): 最近弊社ではts-morphを使って様々なコードを生成し、開発の効率化を図っています。 今回はtailwindでのレスポンシブ対応をts-morphで自動生成する方法を解説します。 前置きが長いのでさっさと実装を知りたい人は 実装 まで飛ん... - [NdArrayを例にPythonのTypeVarTupleの力を確認する](https://kdot.co.jp/kdotdev/ndarray-python-typevartuple): 簡単に言えば可変長なtype parameter. 複数の型を一つの型変数で表現できる。 例えば下の例ではtupleの長さによって戻り値の型が変わっている。 TypeVarTupleのモチベーション 大きなユースケースの一つはnumpyなど... - [npm・yarn・pnpm と npx の違い - どれをいつ使うか](https://kdot.co.jp/kdotdev/npm-yarn-pnpm-npx): npm、yarn、pnpm はいずれもパッケージマネージャーで、npx は package.json に追加せずインストールと実行をまとめて行うツールです。それぞれの役割と使い分けを整理します。 - [Python: ジェネレーター、コルーチン、ネイティブコルーチン、そしてasync/await](https://kdot.co.jp/kdotdev/python-generators-coroutines-native-coroutines-and-async-await): ジェネレーター、コルーチン、ネイティブコルーチン、そしてasync/awaitに関してまとめました。 - [FastAPIリスエストごとのログ識別方法](https://kdot.co.jp/kdotdev/identifying-fastapi-requests-in-logs): 識別子の生成方法、Loguruによるログの記録、そしてHTTPヘッダーを介してIDを返すプロセスなどを解説しています。 - [polarsでstrのcapture groupを参照しつつreplaceする](https://kdot.co.jp/kdotdev/polars-str-capture-group-replace): polarsにはstringのカラムに対してreplaceをするための仕組みが備わっている。 pythonなどいろんな言語でよくやるstringの部分をマッチさせて、その部分を対象の文字列に置き換えたりする処理。 polarsではexpr.... - [Lyftでのリアルタイム機械学習基盤の構築](https://kdot.co.jp/kdotdev/lyft): 以下の文章は、執筆者のお二方(Konstantin Gizdarski Martin Liu )から許可を得て翻訳したものです。 https://eng.lyft.com/building-real-time-machine-learnin... - [WTF Python!😱(Python、まじかよ!)後編](https://kdot.co.jp/kdotdev/wtf-python-2): GitHubプロジェクト「What the f*ck Python! 😱」を日本語に翻訳したものです。予想外のコードスニペットを通じてPythonを探求し、理解することを目指しています。前編と後編に分かれています。 - [WTF Python!😱 (Python、まじかよ!)前編](https://kdot.co.jp/kdotdev/wtf-python-1): GitHubプロジェクト「What the f*ck Python! 😱」を日本語に翻訳したものです。予想外のコードスニペットを通じてPythonを探求し、理解することを目指しています。前編と後編に分かれています。 - [Scalaで型レベルfizzbuzz](https://kdot.co.jp/kdotdev/scala-fizzbuzz): 昔作ったやつのメモ。 Scala2でshapelessを使ってる。 - [nextjs×reg-suitで画像が読み込まれない問題を解決する](https://kdot.co.jp/kdotdev/nextjs-reg-suit-image): 次のissueのコメントを参考にした。 issue link リンク先で説明してることを少しアレンジして ↓こういうコンポーネントを作ってnext/imageをラップして、プロジェクト全体のnext/imageを使っているところを置き換える... - [FastAPIのAsyncClientでのテストで、50xのレスポンスが例外として投げられるのを防ぐ](https://kdot.co.jp/kdotdev/fastapi-asyncclient-50x): fastapiではasyncな関数をテスト関数にしたいときはAsyncClientという、httpxのhttp clientを使用する必要がある。 よく使うTestClientが使えない。 このクライアントは50x系のレスポンスが返却された... - [fastapi-cacheでUnion型をキャッシュした際にdictが返却される問題](https://kdot.co.jp/kdotdev/fastapi-cache-union-dict): fastapiでのキャッシュ機構をよしなに提供してくれるライブラリ。 fastapiとの使用のためにjsonのシリアライズを考慮したキャッシュの仕組みや、asyncな関数のサポートを提供してくれている。 バックエンド=キャッシュ機構の実態と... - [Auth0のログをDatadogへ飛ばす with terraform](https://kdot.co.jp/kdotdev/auth-datadog): Auth0のログをDatadogに飛ばそうとして困ったのでメモ Auth0のログをDatadogに飛ばす Auth0にはDatadogにログを飛ばすためのIntegrationがある Datadog Integration しかし弊社のDa... - [FastapiのテストでAsyncClientを使った際にlifespan eventsが走らない問題を解決する](https://kdot.co.jp/kdotdev/fastapi-asyncclient-lifespan-events): fastapiの起動前、起動後に何らかの処理を仕組みたいときに利用する機構。 例えばロードに時間がかかる機械学習モデルの用意などに使える。 他にもロガーのセットアップなど、起動前後に行いたい処理を良く行う。 startup/shutdown... - [GitHub Actionsをなるべく安く使う](https://kdot.co.jp/kdotdev/github-actions): GitHub Actionsは便利だが使いすぎると普通にお金がかかる。 特にrenovateなどで頻繁にPRを出すようにしていると、その分だけ頻繁にactionsが回って料金がかかる。 月に数万ほどは気にせずにお金をジャブジャブ投下できる会... - [Aurora PostgreSQLからSlowQueryをログに出す with terraform](https://kdot.co.jp/kdotdev/aurora-postgresql-slowquery-with-terraform): ↓こんな感じです。 実装方法 前提条件 3秒以上かかってるステートメントをログに出力する 使うAurora PostgreSQLのパラメータグループを調べてパラメータグループファミリーを特定する terraformのリソースであるawsrd... - [GOでのロードバランサー作成](https://kdot.co.jp/kdotdev/building-a-load-balancer-in-go): この記事は、Go言語を使用してロードバランサーを実装する方法について紹介しています。ロードバランサーは、ウェブサイトやアプリケーションが大量のユーザーリクエストを均等に処理するのに役立つツールです。ロードバランサーの基本機能や選択戦略に焦点を当て、バックエンドの実装方法やエラー処理についても説明しています。Go言語を使用してロードバランサーを構築したい人に役立つ情報が提供されています。 - [2023年版・プロダクトマネージャー面接のポイント](https://kdot.co.jp/kdotdev/interviewing-for-product-manager-roles-in-2023): 「2023年版・プロダクトマネージャー面接のポイント」では、最新の面接の傾向や求められるスキル、実際の面接でのアプローチ方法など、成功への鍵となる情報を網羅的に提供します。この記事を通じて、次世代のプロダクトマネージャーとして求められる資質や能力を磨き、面接での成功を手に入れましょう。 - [SQLAlchemy基本的なRelationshipパターン](https://kdot.co.jp/kdotdev/sqlalchemy-relationship): SQLAlchemyはPythonの中核となるSQL操作ライブラリであり、その評価は特にORMツールとして高まっています。本稿では、SQLAlchemyの高度なマッピングテクニックやデータベース操作の各シナリオをまとめています。Pythonを用いたデータベースの深い理解と実践的な応用を求める方々にとって、価値ある情報源となることでしょう。 - [TypeScriptのanyはなぜ良くないのか、またその回避方法](https://kdot.co.jp/kdotdev/typescript-any): 基本的にTypeScriptを書くときにはeslintによってTypeScriptのanyの使用を原則禁止にしていることが多いです。 ただTypeScriptでは型の健全性の観点でanyを使用しなければならない場面が多々あります。 anyの... - [pytest高速化の秘訣](https://kdot.co.jp/kdotdev/pytest-speedup): 本記事では、ハードウェアの選定から、コレクションの最適化、ネットワークやディスクへのアクセス制限、そしてテストの並列処理に至るまで、幅広くかつ具体的な方法を紹介します。pytestの実行速度を最大限に高めるためのヒントが満載です。 - [Rust対Go:実践的な比較](https://kdot.co.jp/kdotdev/rust-go): この記事では、RustとGoの比較を行いながら、実際のプログラム作成のプロセスに焦点を当てています。具体的には、両言語を使用して、天気予報を表示するWEBサービスを開発し、その過程と結果について詳しく検証します。両言語の特徴や利点について深く掘り下げてみましょう。 - [Auth0の`403: User to be acted on does not match subject in bearer token.`にハマった話](https://kdot.co.jp/kdotdev/auth0-403-user-to-be-acted-on-does-not-match-subject-in-bearer-token): auth0のmanagement apiにアクセスするためのclient applicationを作成してそこからアクセスしようと思っていた auth0の設定・構築自体はすべてterraformで行っている client applicati... - [「Apache Arrow: データエンジニアリングの未来」](https://kdot.co.jp/kdotdev/Apache-Arrow-The-Future-of-Data-Engineering): Apache Arrowは、データエンジニアリングに革命をもたらすオープンソースプロジェクトです。異なるデータ形式やシステム間のデータ処理を高速かつ効率的に行うことができ、多くの言語やツールとの統合もサポートしています。これにより、データの一貫性と効率が大幅に向上します。 - [データからストーリーを引き出すためのテクニック9選](https://kdot.co.jp/kdotdev/9-techniques-to-discover-data-narratives): この記事では、データからストーリーを引き出すための9つの具体的なテクニックについて紹介しています。時系列分析、変数間の関係、交点、予測、比較・対照、ドリルダウン、ズーム機能、クラスタリング、そして外れ値の探求といったテーマを中心に、データ解析時のアプローチや方法を解説しています。これらのテクニックを駆使することで、データセットの中のストーリーや情報を効果的に伝えることができます。 - [めんどくさがり屋なデータサイエンティストのためのPythonライブラリ5選](https://kdot.co.jp/kdotdev/Python-Libraries-for-Lazy-Data-Scientists): 以下の文章は執筆者のPrathamesh Gadekarさんからの許可を得て翻訳したものです。 https://medium.com/p/c1287eb794ec#6545-37b5bc6457bb はじめに データサイエンスは多くの面で興... - [レートリミットアルゴリズムの世界](https://kdot.co.jp/kdotdev/the-world-of-rate-limit-algorightm): 以下の文章は執筆者のEthiraj Srinivasan さんからの許可を得て翻訳したものです。 https://bootcamp.uxdesign.cc/the-world-of-rate-limit-algorithms-54fb907... - [Pythonのジェネリクスで型が抽象化されたクラスやデータを定義する](https://kdot.co.jp/kdotdev/python): Pythonのジェネリクスで型が抽象化されたクラスやデータを定義する - [Pythonの型ヒントと共変性(covariance)と反変性(contravariance)、変性(variance)](https://kdot.co.jp/kdotdev/python-covariance-contravariance-variance): Pythonだけでなくジェネリクスを持つ型システムを保有するプログラミング言語を触ると共変と反変という概念が出てくる。 これは型の表現力を最大限上げつつ同時に実行時にエラーを起こさないための機能である。 一方これはジェネリクスの上に乗っかっ... - [Pythonの型エイリアス(type alias)で複雑な型をシンプルに扱う](https://kdot.co.jp/kdotdev/python-type-alias): type aliasを使用すれば型シグネチャが複雑なtype hintを簡約にすることが出来る。 この記事ではtype aliasに関して使用方法、メリット、使用上の注意について書く Type Aliasとは 簡単に言うと、複雑な型に別名を... - [PythonとNewType](https://kdot.co.jp/kdotdev/python-newtype): PythonとNewType - [fp-tsとoption](https://kdot.co.jp/kdotdev/fp-ts-option): fp-tsとoption - [TypeScriptとHigher Kinded Type(高階型)](https://kdot.co.jp/kdotdev/typescript-higher-kinded-type): TypeScriptとHigher Kinded Type(高階型) - [ZStream companion object API](https://kdot.co.jp/kdotdev/zstream-companion-object-api): ZStream companion object API - [fp-tsとMonoid](https://kdot.co.jp/kdotdev/fp-ts-monoid): fp-tsとMonoid - [fp-tsとOrd](https://kdot.co.jp/kdotdev/fp-ts-ord): fp-tsとOrd - [fp-tsとEq](https://kdot.co.jp/kdotdev/fp-ts-eq): fp-tsとEq - [fp-tsとSemigroup](https://kdot.co.jp/kdotdev/fp-ts-semigroup): fp-tsとSemigroup - [TypeScriptと型クラス](https://kdot.co.jp/kdotdev/typescript-typeclass): TypeScriptと型クラス - [型レベル多項式の微分](https://kdot.co.jp/kdotdev/dotty-typelevel-derivative): 型レベル多項式の微分 - [Polyfunctionでpartially applied typeを改善する](https://kdot.co.jp/kdotdev/dotty-polyfunction-partially-applied-type): Polyfunctionでpartially applied typeを改善する - [型レベル多項式](https://kdot.co.jp/kdotdev/dotty-typelevel-polynomial): 型レベル多項式 - [Match Type](https://kdot.co.jp/kdotdev/dotty-match-type): Match Type - [コンパイル時オペレーション](https://kdot.co.jp/kdotdev/dotty-compiletime-ops): コンパイル時オペレーション - [リテラル型(literal type)](https://kdot.co.jp/kdotdev/dotty-literal-type): リテラル型(literal type) - [今までに読んだ技術書まとめ(随時更新)](https://kdot.co.jp/kdotdev/tech-books): 今までに読んだ技術書まとめ(随時更新) - [[書評]Docker/Kubernetes 実践コンテナ開発入門](https://kdot.co.jp/kdotdev/docker-kubernetes-intro-bookreview): [書評]Docker/Kubernetes 実践コンテナ開発入門 - [ScalaでAuxパターンをするときにはimplicitの順番に気をつけよう](https://kdot.co.jp/kdotdev/scala-aux-implicit-order-error): ScalaでAuxパターンをするときにはimplicitの順番に気をつけよう - [Googleがinterfaceを好む理由](https://kdot.co.jp/kdotdev/google-typescript-interface): Googleがinterfaceを好む理由 - [代数的データ型Deep Dive in Scala](https://kdot.co.jp/kdotdev/adb-scala): 関数型やってるとよく聞く代数的データ型(ADT)について。 Scalaやってるとよく使うがHaskellほどこの話題について掘った記事はあんまりないのでdigっていきたい。 そもそも代数的データ型とは 具体例 こういうやつ。 なぜ代数的デー... - [Ordersky先生が説明してくれたdottyに入るかもしれないchecked exceptionのモチベ](https://kdot.co.jp/kdotdev/dotty-checked-exception-motivation): Ordersky先生が説明してくれたdottyに入るかもしれないchecked exceptionのモチベ - [Chrome × ReactでonMouseLeaveがうまく動かない問題](https://kdot.co.jp/kdotdev/chrome-x-reactでonmouseleaveがうまく動かない問題): Chrome × ReactでonMouseLeaveがうまく動かない問題 - [[書評]シェルスクリプト基本リファレンス](https://kdot.co.jp/kdotdev/shellscript-reference-review): [書評]シェルスクリプト基本リファレンス - [[書評]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識](https://kdot.co.jp/kdotdev/linux-os-book): [書評]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識 - [pandasメモ](https://kdot.co.jp/kdotdev/pandas-memo): pandasメモ - [PySpark DataFrameメモ](https://kdot.co.jp/kdotdev/pyspark-dataframeメモ): PySpark DataFrameメモ - [AWS Glue色々](https://kdot.co.jp/kdotdev/aws-glue-some): AWS Glue色々 - [VPCエンドポイント](https://kdot.co.jp/kdotdev/vpc-endpoint): VPCエンドポイント - [PySpark on AWS Glue](https://kdot.co.jp/kdotdev/pyspark-on-aws-glue): PySpark on AWS Glue - [react digraph使い方](https://kdot.co.jp/kdotdev/react-digraph使い方): react digraph使い方 - [非同期概略](https://kdot.co.jp/kdotdev/非同期概略): 非同期概略 - [DynamoDB色々](https://kdot.co.jp/kdotdev/dynamodb): DynamoDB色々 - [Python typehintテクニック](https://kdot.co.jp/kdotdev/python-typehint): Python typehintテクニック - [Amplify使い方色々](https://kdot.co.jp/kdotdev/amplify-usage): Amplify使い方色々 - [GOのテストフレームワークtestifyの使い方](https://kdot.co.jp/kdotdev/goのテストフレームワークtestifyの使い方): GOのテストフレームワークtestifyの使い方 - [ラズパイ向けにCGO_ENABLEDしながらGoをクロスコンパイルするDockerfile例](https://kdot.co.jp/kdotdev/ラズパイ向けにcgo_enabledしながらgoをクロスコンパイル): ラズパイ向けにCGO_ENABLEDしながらGoをクロスコンパイルするDockerfile例 - [Go tips](https://kdot.co.jp/kdotdev/go-tips): Go tips - [amchartsとjestの併用](https://kdot.co.jp/kdotdev/amchartsとjestの併用): amchartsとjestの併用 - [Pythonのproperty based testingライブラリhypothesisの使い方](https://kdot.co.jp/kdotdev/pythonのproperty-based-testingライブラリhypothesisの使い方): Pythonのproperty based testingライブラリhypothesisの使い方 - [monocle-tsでtraverse](https://kdot.co.jp/kdotdev/monocle-tsでtraverse): monocle-tsでtraverse - [Reactパフォーマンス・チューニングチートシート](https://kdot.co.jp/kdotdev/react-performance): Reactパフォーマンス・チューニングチートシート - [ramda.jsでよく使う関数](https://kdot.co.jp/kdotdev/ramda-js-heavyuse): ramda.jsでよく使う関数 - [pytestでよく使うプラグイン](https://kdot.co.jp/kdotdev/pytest-plugin): pytestでよく使うプラグイン - [styled-components ドキュメント日本語訳② Advanced(Theming / Refs / SSR)](https://kdot.co.jp/kdotdev/styled-components-documentationadvanced): styled-components 公式ドキュメント Advanced Usage の日本語訳です。ThemeProvider によるテーマ、React.createRef と innerRef の使い分け、Media Templates、サーバーサイドレンダリングまでを扱います。 - [styled components documentation日本語訳①ーBasicsー](https://kdot.co.jp/kdotdev/styled-components-documentationbasics): styled components documentation日本語訳①ーBasicsー - [PythonでJavascriptの様な分割代入](https://kdot.co.jp/kdotdev/python-distruction): PythonでJavascriptの様な分割代入 - [systemctlの使い方](https://kdot.co.jp/kdotdev/systemctl-usage): systemctlの使い方 - [【初めてのGraphQL】解決できる課題とそのユースケースについて](https://kdot.co.jp/kdotdev/graphql-intro): 【初めてのGraphQL】解決できる課題とそのユースケースについて - [Pipenvの使い方](https://kdot.co.jp/kdotdev/pipenv-usage): Pipenvの使い方 - [redux-sagaまとめ](https://kdot.co.jp/kdotdev/redux-sage): redux-sageまとめ - [pyrightの使い方](https://kdot.co.jp/kdotdev/pyright-usage): pyrightの使い方 - [Scalaでcsvをexcelで開くときにUTF-8で解釈させ文字化けを防ぐ方法](https://kdot.co.jp/kdotdev/scalaでcsvをexcelで開くときにutf-8で解釈させ文字化けを防ぐ): Scalaでcsvをexcelで開くときにUTF-8で解釈させ文字化けを防ぐ方法 - [pythonでdynamo dbをORM風に扱えるpynamodbの使い方](https://kdot.co.jp/kdotdev/pynamodb): pythonでdynamo dbをORM風に扱えるpynamodbの使い方 - [TypedDictでpythonのtype hintでdictのkeyとvalueに厳格に型をつける](https://kdot.co.jp/kdotdev/python-typed-dict): TypedDictでpythonのtype hintでdictのkeyとvalueに厳格に型をつける - [PythonでPhantom Type(幽霊型)を使って静的にプログラムの欠陥を発見する](https://kdot.co.jp/kdotdev/pythonphantom-type): PythonでPhantom Type(幽霊型)を使って静的にプログラムの欠陥を発見する - [[初級-中級向け]Scala基本APIを完全に理解するシリーズ② -Either編-](https://kdot.co.jp/kdotdev/scalaapi-either): [初級-中級向け]Scala基本APIを完全に理解するシリーズ② -Either編- - [[初級-中級向け]Scala基本APIを完全に理解するシリーズ① -Option編-](https://kdot.co.jp/kdotdev/scalaapi-option): [初級-中級向け]Scala基本APIを完全に理解するシリーズ① -Option編- - [「意識」読んだ](https://kdot.co.jp/kdotdev/read-consciousness): 「意識」読んだ - [0からScalaを本番導入して感じたこと・考えたこと](https://kdot.co.jp/kdotdev/scala-introduction): 0からScalaを本番導入して感じたこと・考えたこと - [ZIO小史](https://kdot.co.jp/kdotdev/zio-history): ZIO小史 - [ZIOへの環境Rのprovide方法各種](https://kdot.co.jp/kdotdev/ziorprovide): ZIOへの環境Rのprovide方法各種 - [Goにproperty based testingを布教したい](https://kdot.co.jp/kdotdev/go-pbt-testing): Goにproperty based testingを布教したい - [技術書を読む技術](https://kdot.co.jp/kdotdev/技術書を読む技術): 技術書を読む技術 - [SSHの使い方](https://kdot.co.jp/kdotdev/sshの使い方): SSHの使い方 - [爆速python-fire](https://kdot.co.jp/kdotdev/爆速python-fire): 爆速python-fire - [Scalaへの移行 -ウォルマート・カナダへの導入で学んだこと-](https://kdot.co.jp/kdotdev/scala-walmart): Scalaへの移行 -ウォルマート・カナダへの導入で学んだこと- - [ScalaのF[_]と高カインド型(Higher Kinded Type)を完全に理解していく](https://kdot.co.jp/kdotdev/scala-higher-kinded-type): ScalaのF[_]と高カインド型(Higher Kinded Type)を完全に理解していく - [VPC内で動くGlue開発エンドポイントでPyCharmを使用する方法](https://kdot.co.jp/kdotdev/vpc-glue-pycharm): VPC内で動くGlue開発エンドポイントでPyCharmを使用する方法 - [Scalaのシングルトン型(~.type)について](https://kdot.co.jp/kdotdev/scala-singleton-type): Scalaのシングルトン型(~.type)について - [Scala summoner pattern](https://kdot.co.jp/kdotdev/scala-summoner-pattern): Scala summoner pattern - [shapelessでフィールドの順番の違うcase classを自動で変換する](https://kdot.co.jp/kdotdev/shapeless-convert-with-field): shapelessでフィールドの順番の違うcase classを自動で変換する - [サルでもわかるカリー化とそのメリット](https://kdot.co.jp/kdotdev/monkey_curry): サルでもわかるカリー化とそのメリット - [Rubyの型解析ライブラリSorbet事始め](https://kdot.co.jp/kdotdev/ruby_sorbet): Rubyの型解析ライブラリSorbet事始め - [cats-effectv3.0.0がリリースされたらしい](https://kdot.co.jp/kdotdev/cats-effectv3-0-0): cats-effectv3.0.0がリリースされたらしい - [shapelessを使って同じ様なcase classを自動で変換する](https://kdot.co.jp/kdotdev/shapelessを使って同じ様なcase-classを自動で変換する): shapelessを使って同じ様なcase classを自動で変換する - [ScalaのAuxパターン](https://kdot.co.jp/kdotdev/scalaのauxパターン): ScalaのAuxパターン - [Scalaのジェネリックライブラリshapelessの基本](https://kdot.co.jp/kdotdev/scalaのジェネリックライブラリshapelessの基本): Scalaのジェネリックライブラリshapelessの基本 - [タイミング攻撃の仕組み](https://kdot.co.jp/kdotdev/タイミング攻撃の仕組み): タイミング攻撃の仕組み - [ZStreamとFs2Streamを相互変換する](https://kdot.co.jp/kdotdev/ziostreamとfs2streamを相互変換する): ZStreamとFs2Streamを相互変換する - [PythonのEllipsis(...)とtype hints](https://kdot.co.jp/kdotdev/python-ellipsis-type-hints): PythonのEllipsis(...)とtype hints