コンテンツへスキップ
uencoder

開発者タスク

ツール名ではなく、解決したい問題ごとに解決策を整理。各タスクは実行可能なツールとパイプラインにリンク——各ステップはローカルでデータを処理。

SQL クエリの実行プランを分析する 1 ツールステップ · 1 パイプライン
EXPLAIN は、データベースがクエリをどのように実行するかを示します。プランの読み方を学び、ボトルネックを特定して最適化しましょう。
タスク
JSON Patch(RFC 6902)のオペレーションを適用する 2 ツールステップ
JSON Patch は、JSON ドキュメントをアトミックに変更する一連のオペレーション(add、remove、replace、move、copy、test)を定義します。
タスク
よくある Base64 デコードエラーを修正する 2 ツールステップ
Base64 文字列がデコードに失敗する理由(パディングの欠落、URL セーフアルファベット、混入した空白文字)と、それぞれのケースを修復する具体的な手順を解説します。
タスク
ネットワークパケットを構築して検査する 2 ツールステップ
テスト・デバッグ・プロトコル開発のための生のネットワークパケットを構築します。Ethernet、IP、トランスポート層のカプセル化を理解しましょう。
タスク
オブジェクトから URL クエリ文字列を構築する 2 ツールステップ · 1 パイプライン
JavaScript オブジェクトから適切にエンコードされたクエリ文字列を構築します。配列、ネストしたオブジェクト、特殊文字を正しく扱います。
タスク
日付間の営業日数を計算する 2 ツールステップ
営業日の計算では週末と祝日を除外します。稼働日数の算出、営業日の加算・減算、祝日の扱い方を学びましょう。
タスク
2 つの日付の差を計算する 2 ツールステップ
2 つの日付の間の期間を、日・時間・分・営業日の単位で求めます。タイムゾーンも考慮します。
タスク
編集距離(Levenshtein)を計算する 2 ツールステップ
編集距離は、ある文字列を別の文字列に変換するのに必要な挿入・削除・置換の最小回数を測る指標です。スペルチェックやあいまい検索に使われます。
タスク
Levenshtein 距離を計算する 2 ツールステップ
Levenshtein 距離は、ある文字列を別の文字列に変換するのに必要な最小の編集回数(挿入・削除・置換)を測る指標です。スペルチェックやあいまい検索に使われます。
タスク
行列演算を計算する 3 ツールステップ
行列の加算、乗算、行列式、逆行列、転置を実行します。線形代数、グラフィックス、機械学習の基礎です。
タスク
累乗剰余を効率的に計算する 2 ツールステップ
square-and-multiply(繰り返し二乗法)を使って base^exponent mod modulus を効率的に計算します。暗号技術の基礎となります。
タスク
サブネットマスクとワイルドカードマスクを計算する 2 ツールステップ
サブネットマスクはネットワーク部とホスト部の境界を定義します。プレフィックス長、ドット 10 進表記のマスク、ワイルドカードマスクの相互変換を学びましょう。
タスク
サブネットとアドレス範囲を計算する 2 ツールステップ
CIDR 表記を使ってネットワークをサブネットに分割します。ネットワークアドレス、ブロードキャスト、ホスト範囲、利用可能なホスト数を計算します。
タスク
テキストの重要度を測る TF-IDF を計算する 2 ツールステップ
TF-IDF(Term Frequency-Inverse Document Frequency)は、コーパスと相対的な文書内の単語の重要度を測る指標です。検索やテキストマイニングに使われます。
タスク
WCAG アクセシビリティのコントラスト比を確認する 2 ツールステップ
前景色と背景色のコントラスト比を測定し、WCAG AA または AAA のしきい値を満たしているか確認します。
タスク
ブロック暗号とストリーム暗号を比較する 3 ツールステップ
ブロック暗号は固定長ブロックをパディング付きで暗号化し、ストリーム暗号はバイト単位で暗号化します。速度、パディング、エラー伝播のトレードオフを理解しましょう。
タスク
各種ハッシュアルゴリズムのスループットを比較する 3 ツールステップ
SHA-256、SHA-3、BLAKE2/3、RIPEMD-160 が同じ入力をハッシュする速度を測定し、スループットの予算に合うアルゴリズムを選びます。
タスク
2 つのテキストを比較して差分を表示する 1 ツールステップ · 1 パイプライン
テキストの 2 つのバージョンを差分比較し、行単位・文字単位の挿入、削除、変更を確認します。
タスク
画像を圧縮・最適化する 3 ツールステップ
適切なフォーマット(WebP/AVIF)の選択、品質調整、リサイズで画像のファイルサイズを削減します。ページの読み込み速度と Core Web Vitals を改善します。
タスク
Web 用に画像を圧縮・最適化する 2 ツールステップ
フォーマット変換(WebP/AVIF)、品質調整、リサイズによって画像のファイルサイズを削減し、ページの読み込みを高速化します。
タスク
テキスト間のコサイン類似度を計算する 2 ツールステップ
コサイン類似度はテキストベクトル間の角度を測り、意味的な類似度を示します。検索、クラスタリング、レコメンデーションに使われます。
タスク
Base32・Base58・Base64・Base85・Base91 間でデータを変換する 3 ツールステップ
同じバイナリデータを、システムごとに異なる Base 系エンコード(Bitcoin、DNS、PDF、コンパクトなシリアライズ)の間で変換します。
タスク
色を hex・RGB・HSL・名前付き形式の間で変換する 2 ツールステップ
色の値を hex(#ff5733)、rgb()、hsl()、CSS の名前付きカラーの間で変換し、さまざまな文脈で使えるようにします。
タスク
CSS を Sass/SCSS に変換する 1 ツールステップ
Sass は CSS を変数、ネスト、mixin、関数で拡張します。プレーンな CSS を SCSS に変換して、これらの機能を段階的に使い始めましょう。
タスク
CSV データを構造化された JSON に変換する 2 ツールステップ · 1 パイプライン
CSV テーブル(ヘッダー付き、引用符付きフィールド、カンマを含む値)を JSON オブジェクトの配列にパースし、プログラムから扱えるようにします。
タスク
CSV を TSV(タブ区切り)に変換する 1 ツールステップ
区切り文字をカンマからタブに変更します。データにカンマが含まれ、引用符を使いたくない場合に TSV が便利です。
タスク
CSV を XML に変換する 2 ツールステップ · 1 パイプライン
表形式の CSV データを XML に変換します。XML 入力を要求するシステム向けで、各行が列の子要素を持つ XML 要素になります。
タスク
CSV を YAML に変換する 2 ツールステップ · 1 パイプライン
表形式の CSV データを YAML に変換し、構造化された設定やドキュメントに使います。各行が列ヘッダーをキーとする YAML のリスト項目になります。
タスク
.env ファイルを JSON に変換する 2 ツールステップ
.env ファイルは環境設定を KEY=VALUE 形式で保存します。JSON に変換すると、構造化されたアクセス、型キャスト、バリデーションが可能になります。
タスク
16 進文字列を Base64 に変換する(逆変換も) 2 ツールステップ · 1 パイプライン
同じバイナリデータの 16 進ダンプと Base64 表現を相互変換します。バイトの欠落やパディングエラーなしに変換できます。
タスク
HTML を React 用の JSX に変換する 2 ツールステップ
JSX は JavaScript 式を埋め込める HTML です。空要素タグを閉じ、class を className に、style 文字列をオブジェクトに変換して HTML を JSX にします。
タスク
HTML を Markdown に変換する 2 ツールステップ · 1 パイプライン
HTML コンテンツを Markdown に変換して、より簡単な編集・保存や、Markdown 対応システムでの表示に使います。見出し、リスト、リンク、画像、コードブロックに対応します。
タスク
INI 設定ファイルを JSON に変換する 2 ツールステップ
INI ファイルは括弧で囲んだセクションと key=value ペアを使います。JSON に変換して、プログラムからのアクセス、バリデーション、モダンツールとの相互運用を実現します。
タスク
IPv4 と IPv6 のアドレス形式を相互変換する 3 ツールステップ
IP アドレスをドット 10 進、16 進、2 進、IPv6 の各表現の間で変換します。IPv4 射影 IPv6 アドレスについても理解します。
タスク
JSON データから TypeScript インターフェースを生成する 1 ツールステップ · 1 パイプライン
JSON サンプルから TypeScript の型を推論し、インターフェースを手書きせずに API レスポンスに型を付けられます。
タスク
JSON と YAML をデータを失わずに相互変換する 1 ツールステップ · 2 パイプライン
設定ファイルのために JSON と YAML を相互変換します。往復変換でもネスト構造、配列、スカラー型を保持します。
タスク
Markdown を HTML に変換する 2 ツールステップ
Markdown(見出し、リスト、コードブロック、表、リンク)を HTML にレンダリングし、ブラウザやメールで表示できるようにします。
タスク
camelCase・snake_case・kebab-case・PascalCase を相互変換する 2 ツールステップ · 1 パイプライン
言語や文脈ごとに使われる命名規則の間で識別子を変換します。
タスク
Apple の plist ファイルを JSON に変換する 2 ツールステップ
Apple のプロパティリスト(plist)はデータを XML またはバイナリ形式でシリアライズします。JSON に変換してクロスプラットフォームでの利用と簡単な操作を実現します。
タスク
Java の .properties ファイルを JSON に変換する 2 ツールステップ
Java の .properties ファイルは、ネストをドット表記で表す key=value ペアを使います。JSON に変換して JavaScript 環境や構造化されたアクセスで使えるようにします。
タスク
Unix タイムスタンプ・ISO 8601・可読日付を相互変換する 2 ツールステップ
時刻の値を Unix エポック秒、ミリ秒、ISO 8601、ローカル/UTC の日付文字列の間で変換します。
タスク
タイムゾーンを正しく変換する 3 ツールステップ
タイムゾーン変換は、夏時間、略称、政治的な変更があるため注意が必要です。IANA タイムゾーン名と Instant/ZonedDateTime パターンの使い方を学びましょう。
タスク
TOML 設定を JSON に変換する 1 ツールステップ · 1 パイプライン
TOML 設定ファイル(Rust や Python プロジェクトで使用)を、JSON 入力を期待するツールのために JSON にパースします。
タスク
XML と JSON を相互変換する 2 ツールステップ · 1 パイプライン
レガシー API との相互運用のために XML と JSON を変換します。属性、名前空間、混合コンテンツを保持します。
タスク
XML を YAML に変換する 2 ツールステップ · 1 パイプライン
XML ドキュメントを読みやすい設定ファイルのために YAML に変換します。人間が書くデータには、XML のタグよりも YAML のインデントベースの構文の方がすっきりします。
タスク
単語数・文字数を数えてテキストを分析する 2 ツールステップ · 1 パイプライン
テキストブロックの単語数、文字数、行数、読了時間、頻度分析を取得します。
タスク
cron 式が実際にいつ実行されるかを理解する 2 ツールステップ
cron 式を貼り付けると、スケジュールフィールドの正確な内容と次回の実行時刻を確認できます。多くの人がつまずく表記についても解説します。
タスク
正規表現パターンをステップごとにデバッグする 2 ツールステップ
サンプル入力に対するテスト、マッチの可視化、パターンがマッチする/しない理由の理解によって正規表現をデバッグします。フラグを正しく使いましょう。
タスク
Base64 テキストをデコードし、欠落・破損したパディングに対処する 1 ツールステップ · 1 パイプライン
末尾の「=」パディングなし、または URL セーフアルファベットで届いた Base64 ペイロードをデコードし、元のバイト列を安全に復元します。
タスク
Basic Auth ヘッダーから資格情報を読み取る 1 ツールステップ
Base64 デコードとコロンによる分割、そして Basic Auth の資格情報が慎重な取り扱いを要する理由をはっきりさせます。
タスク
貼り付けたテキスト内の HTML エンティティを読み取る 1 ツールステップ
&、<、' などを本来の文字に戻します。デコードすべきでないケースも押さえておきましょう。
タスク
multipart MIME メッセージをパースして各パートを取り出す 3 ツールステップ
multipart/form-data や multipart/mixed の MIME メッセージを構成要素のヘッダーとボディに分解し、検査や再処理を行えるようにします。
タスク
Punycode の国際化ドメイン名を Unicode にデコードする 3 ツールステップ
ACE エンコードされたドメイン(xn--...)を読める Unicode 形式に戻し、逆に Unicode ドメインを DNS 参照用にエンコードします。
タスク
パスワードから KDF を使って暗号鍵を導出する 2 ツールステップ
人間が覚えられるパスワードを、ソルト付きの PBKDF2、scrypt、または bcrypt で、AES や HMAC に使える固定長の鍵に変換します。
タスク
不明なテキストのエンコーディングを検出して正しくデコードする 4 ツールステップ
文字化けした文字列や生のバイト列から、UTF-8、Latin-1、Base64、URL エンコードのいずれかを判別し、読めるテキストにデコードします。
タスク
テキストの言語を検出する 3 ツールステップ
言語検出は、文字 n-gram、ストップワード、統計モデルを使ってテキストサンプルの言語を特定します。代表的なアプローチを学びましょう。
タスク
ネットワークをより小さいサブネットに分割する(VLSM) 2 ツールステップ
可変長サブネットマスク(VLSM)は、ネットワークを異なるサイズのサブネットに分割し、必要に応じてアドレス空間を効率的に割り当てます。
タスク
バイナリデータを JSON 安全な文字列にエンコードする 2 ツールステップ · 1 パイプライン
生のバイト列(画像、暗号化されたデータ、ファイルの内容)を、JSON 構造を壊さずにフィールドへ埋め込める Base64 文字列に変換します。
タスク
ファイルを Data URI にエンコードしてインライン埋め込みする 3 ツールステップ
小さな画像、フォント、ファイルを data: URI に変換すると、別々の HTTP リクエストなしで HTML、CSS、Markdown に直接埋め込めます。
タスク
特殊文字を HTML に安全に挿入できるようエンコードする 3 ツールステップ
ユーザーが入力したテキストの <、>、&、"、' をエスケープし、XSS やマークアップの破壊を引き起こさずに HTML 内に配置できるようにします。
タスク
URL クエリ文字列内で安全に使えるようテキストをエンコードする 2 ツールステップ · 1 パイプライン
任意のテキスト(スペース、アンパサンド、Unicode、等号を含む)を、URL の「?key=」の直後に置いてもパースが壊れない値に変換します。
タスク
Unicode テキストを ASCII 安全な表現にエンコードする 2 ツールステップ
非 ASCII 文字(絵文字、CJK、アクセント記号)を含むテキストを、\uXXXX エスケープや HTML エンティティなどの純 ASCII 形式に変換し、ASCII 専用のチャネルを通せるようにします。
タスク
AES でテキストを暗号化して復号する 2 ツールステップ
パスフレーズを使って AES-256-GCM でメッセージを共通鍵暗号化し、同じ鍵で暗号文を復号して原文を取り戻します。
タスク
大きなファイルを AES でチャンクごとに暗号化する 3 ツールステップ
1 回の AES 処理には大きすぎるファイルを、ストリーミングモードでチャンクごとに暗号化し、復号して元に戻します。
タスク
Camellia ブロック暗号でデータを暗号化する 2 ツールステップ
Camellia は三菱電機と NTT が共同開発した 128 ビットブロック暗号で、NESSIE および CRYPTREC の推奨プリミティブとして認定されています。使い方と AES との比較を学びましょう。
タスク
ChaCha20 ストリーム暗号でデータを暗号化する 2 ツールステップ
ChaCha20 は Daniel J. Bernstein が設計した高速な ARX ベースのストリーム暗号で、TLS で採用され、AES のモバイル向け代替としても使われます。
タスク
Twofish ブロック暗号でデータを暗号化する 2 ツールステップ
Twofish は 128 ビットの Feistel ネットワーク型ブロック暗号で、AES 競合のファイナリストです。最大 256 ビットの鍵に対応します。暗号化のワークフローと、AES の代わりに選ぶべき基準を学びましょう。
タスク
テキストブロックからすべての URL を抽出する 3 ツールステップ
非構造化テキストからすべての URL(http、https、ftp)を見つけ出し、検証、重複排除、バッチ処理用のリストを作成します。
タスク
テキストからハッシュタグを抽出する 2 ツールステップ
ハッシュタグは # で始まり、英数字とアンダースコアが続きます。SNS テキストからハッシュタグを抽出、検証、正規化する方法を学びましょう。
タスク
テキストから @メンションを抽出する 2 ツールステップ
メンションは @ にユーザー名が続く形式です。メンションの抽出、ユーザー名の検証、プロフィールへのリンク方法を学びましょう。
タスク
整数を素因数分解する 2 ツールステップ
素因数分解は、数を素因数の積に分解します。試し割り法、Pollard のロー法、そして素因数分解が難しい理由を学びましょう。
タスク
正規表現でテキストを検索して置換する 2 ツールステップ
テキスト内のパターン(単なる文字列一致ではなく)を検索し、キャプチャグループを参照できるテンプレートで置換します。
タスク
JSON をフォーマット・検証し、不正な JSON を修復する 2 ツールステップ · 1 パイプライン
JSON 文字列(圧縮済み、末尾カンマ、コメント混入の可能性があるもの)を受け取り、エラー診断付きの有効なインデント済み JSON を生成します。
タスク
SQL クエリをフォーマットして整形する 1 ツールステップ · 1 パイプライン
圧縮されたりインデントが崩れたりした SQL クエリを受け取り、キーワードを大文字にして句を別の行にした、読みやすく一貫性のある SQL を生成します。
タスク
SQL ステートメントをフォーマットして整形する 1 ツールステップ · 1 パイプライン
SQL フォーマットは可読性と保守性を向上させます。インデントの規則、キーワードの整列、複雑なクエリの一貫したスタイルを学びましょう。
タスク
HMAC を生成してメッセージの真正性を検証する 1 ツールステップ · 1 パイプライン
メッセージのキー付きハッシュ(HMAC)を計算して、秘密鍵を共有する相手から送られたことを証明し、受け取った HMAC を検証します。
タスク
ベースカラーからカラーパレットを生成する 3 ツールステップ
1 つのベースカラーから、補色、類似色、トリアード、シェード/ティントのバリエーションを導出し、デザインシステムに活かします。
タスク
暗号学的な nonce を正しく生成する 2 ツールステップ
nonce(number used once)は、同じ鍵での暗号化ごとに一意でなければなりません。ランダム nonce とカウンタ nonce の使い分けと、再利用がもたらす影響を学びましょう。
タスク
証明書署名要求(CSR)を生成する 2 ツールステップ
CSR には公開鍵と識別情報が含まれ、CA に送って署名済み TLS 証明書を取得します。必須フィールドと検証プロセスを学びましょう。
タスク
サンプルデータから JSON Schema を推論する 2 ツールステップ
JSON インスタンスの構造を記述する JSON Schema を生成し、バリデーションとドキュメントに活用します。
タスク
Lorem Ipsum のプレースホルダーテキストを生成する 1 ツールステップ
レイアウトのプロトタイピングやコンテンツのプレースホルダー用に、ダミーテキスト(段落、文、単語)を生成します。
タスク
コンパクトな一意 ID として NanoID を生成する 3 ツールステップ
NanoID は小さくて URL セーフな一意 ID ジェネレーターです。UUID より小さく高速で、アルファベットとサイズをカスタマイズできます。
タスク
素数を生成する 2 ツールステップ
暗号鍵と整数論のための素数を生成します。篩(ふるい)、素数判定、safe prime の生成を学びましょう。
タスク
URL とデータの QR コードを生成する 2 ツールステップ
QR コードは、カメラでスキャンできる 2 次元バーコードにデータをエンコードします。誤り訂正レベル、容量の上限、ベストプラクティスを学びましょう。
タスク
URL の QR コードを生成する 2 ツールステップ
URL をエンコードしたスキャン可能な QR コードを作成します。サイズ、誤り訂正、フォーマットを制御できます。
タスク
暗号学的に安全なランダムパスワードを生成する 2 ツールステップ
暗号学的に安全な乱数ジェネレーターを使い、長さと文字種を制御して高エントロピーのパスワードを作成します。
タスク
RSA 鍵ペアを生成し、自己署名証明書のフィールドを検査する 2 ツールステップ
テスト用の RSA 鍵ペアを作成し、ローカル開発で使う自己署名 X.509 証明書の構造を理解します。
タスク
暗号学的に安全なセッション鍵を生成する 3 ツールステップ
セッション鍵は予測不可能で、セッションごとに一意でなければなりません。CSPRNG による生成と、HKDF によるサブ鍵の導出を学びましょう。
タスク
分散システム向けに Snowflake ID を生成する 3 ツールステップ
Snowflake ID(Twitter 発)は、タイムスタンプ、マシン ID、シーケンス番号を組み合わせ、調整なしで分散システム内の一意なソート可能 ID を作り出します。
タスク
時刻でソート可能な ID として ULID を生成する 3 ツールステップ
ULID(Universally Unique Lexicographically Sortable Identifier)はタイムスタンプとランダムデータを組み合わせ、作成時刻順にソートされる ID を生成します。
タスク
データベースのデッドロックに対処する 2 ツールステップ
デッドロックは、トランザクションが互いのロックを待ち合うときに発生します。検出、予防、再試行の戦略を学びましょう。
タスク
パスワードをハッシュし、平文を保存せずに後で検証する 2 ツールステップ · 1 パイプライン
遅いパスワードハッシュ関数(bcrypt/PBKDF2/scrypt)でソルト付きハッシュを保存し、入力されたパスワードをそれと照合して検証します。
タスク
CORS を安全に実装する 2 ツールステップ
CORS(Cross-Origin Resource Sharing)は、オリジンをまたぐリクエストを制御付きで許可します。オリジン、メソッド、ヘッダー、資格情報の安全な設定方法を学びましょう。
タスク
Content Security Policy(CSP)を実装する 2 ツールステップ
CSP はページが読み込めるリソース(スクリプト、スタイル、画像)を制限し、XSS やデータ注入を防ぎます。ポリシーディレクティブとレポート機能を学びましょう。
タスク
ECDSA 署名を実装する 2 ツールステップ
ECDSA(楕円曲線デジタル署名アルゴリズム)は、RSA より小さい鍵でデジタル署名を提供します。署名の生成と検証を学びましょう。
タスク
エンドツーエンド暗号化(E2EE)を実装する 3 ツールステップ
エンドツーエンド暗号化は、通信する当事者だけがメッセージを読めることを保証します。中継サーバーは復号鍵を持ちません。これを実現するハイブリッド暗号パターンを学びましょう。
タスク
HSTS(HTTP Strict Transport Security)を実装する 2 ツールステップ
HSTS はブラウザにサイトへのアクセスで常に HTTPS を使わせ、プロトコルのダウングレード攻撃と SSL ストリッピングを防ぎます。
タスク
相互 TLS(mTLS)認証を実装する 2 ツールステップ
mTLS はクライアントとサーバーの両方に証明書の提示を求め、パスワードなしで強力な双方向認証を実現します。サービス間通信やゼロトラストアーキテクチャで一般的です。
タスク
Perfect Forward Secrecy(PFS)を実装する 2 ツールステップ
PFS は、長期鍵が漏洩しても過去のセッション鍵が明らかにならないことを保証します。これを可能にする一時鍵交換のパターンを学びましょう。
タスク
ブルートフォース攻撃を防ぐレート制限を実装する 2 ツールステップ
レート制限は時間あたりのリクエスト数に上限を設け、ブルートフォース、クレデンシャルスタッフィング、DoS 攻撃を防ぎます。トークンバケットとスライディングウィンドウのアルゴリズムを学びましょう。
タスク
パフォーマンスのためにデータベースインデックスを設計する 1 ツールステップ
インデックスは読み取りを高速化する一方、書き込みを遅くします。B-tree、ハッシュ、複合、部分インデックスの特徴と、それぞれを使うべき場面を学びましょう。
タスク
JWT を安全にデコードして検査する 1 ツールステップ
JSON Web Token を貼り付けてヘッダーとクレームを読み取り、有効期限を確認します。デコードで証明できること・できないことを正確に理解しましょう。
タスク
JWT トークンを検査する:検証なしでヘッダーとペイロードをデコード 1 ツールステップ · 1 パイプライン
JSON Web Token の構造を読み取り、アルゴリズム、クレーム、有効期限を確認します。純粋にクライアント側のみの処理で、サーバー検証は行いません。
タスク
サーバーに TLS 証明書をインストールする 2 ツールステップ
CA から署名済み証明書を受け取ったら、正しいチェーン順でインストールし、TLS ハンドシェイクでデプロイを検証します。
タスク
JSON と YAML の間で設定を移行する 1 ツールステップ · 2 パイプライン
JSON 設定を YAML に(またはその逆に)変換します。フォーマット済みの中間ステップを踏み、コミット前に型変換の落とし穴を把握しましょう。
タスク
HTTP ステータスコードの意味を調べる 1 ツールステップ
任意の HTTP ステータスコード(1xx〜5xx)について、カテゴリ、理由フレーズ、一般的な使われ方を取得します。
タスク
MAC アドレスのベンダー(OUI)を調べる 1 ツールステップ
MAC アドレスの先頭 3 バイト(OUI)がメーカーを識別します。ネットワーク機器の特定やインベントリのためにベンダーを調べられます。
タスク
JSON Merge Patch(RFC 7396)を適用する 2 ツールステップ
JSON Merge Patch は部分的な JSON オブジェクトでドキュメントを更新します。null はキーの削除、それ以外の値は置換を意味し、JSON Patch より単純です。
タスク
CSS を圧縮・整形する 2 ツールステップ
本番環境向けに CSS を圧縮し(空白・コメントの削除、ルールの統合)、デバッグ用に圧縮済み CSS を整形します。
タスク
データベーススキーマを正規化する 2 ツールステップ
正規化はデータの冗長性を減らし、整合性を高めます。1NF、2NF、3NF、BCNF を実践的な例で学びましょう。
タスク
正規表現をパフォーマンス向けに最適化する 2 ツールステップ
遅い正規表現は ReDoS(Regular Expression Denial of Service)を引き起こします。破壊的バックトラッキングの特定と修正、アトミックグループ、パターンのアンカーを学びましょう。
タスク
遅い SQL クエリを最適化する 1 ツールステップ · 1 パイプライン
EXPLAIN による分析、インデックスの最適化、クエリの書き換えテクニックを使って、遅い SQL クエリを特定して修正します。
タスク
URL を構成要素に分解し、部品から URL を構築する 3 ツールステップ
URL をプロトコル、ホスト、パス、クエリ、フラグメントに分解し、逆に個々の構成要素から安全に URL を組み立てます。
タスク
cron 式をパースして平易な言葉でスケジュールを説明する 2 ツールステップ
cron 式(例:「0 9 * * 1-5」)を人が読めるスケジュールにデコードし、自然言語から cron 式を生成します。
タスク
DNS レコードをパースして理解する 2 ツールステップ
DNS レコードはドメイン名を IP アドレス、メールサーバーなどのデータに対応付けます。A、AAAA、CNAME、MX、TXT、NS、SOA の各レコードタイプを学びましょう。
タスク
IPv4 パケットヘッダーをパースする 2 ツールステップ
IPv4 ヘッダーには送信元/宛先 IP、TTL、プロトコル、フラグメント情報が含まれます。パケット分析のために IP ヘッダーをデコードする方法を学びましょう。
タスク
JSON5 をパースする:緩い構文の JSON 2 ツールステップ
JSON5 は JSON をコメント、末尾カンマ、引用符なしキー、シングルクォートなどで拡張します。構文拡張と標準 JSON への変換を学びましょう。
タスク
NDJSON(Newline-Delimited JSON)をパースする 2 ツールステップ
NDJSON は 1 行に 1 つの JSON オブジェクトを格納し、ストリーミングと行単位処理を可能にします。ログ、API ストリーミング、ビッグデータパイプラインで一般的です。
タスク
OAuth 2.0 のトークンレスポンスをパースする 2 ツールステップ
OAuth 2.0 は access_token、token_type、expires_in、そして任意で refresh_token を返します。トークンレスポンスを正しくパースして使う方法を学びましょう。
タスク
URL クエリ文字列をパースする 2 ツールステップ · 1 パイプライン
クエリ文字列は、URL の「?」以降でキーと値のペアを渡します。パース、エンコード、配列・ネストしたオブジェクト・特殊文字の扱いを学びましょう。
タスク
TCP セグメントヘッダーをパースする 2 ツールステップ
TCP ヘッダーには送信元/宛先ポート、シーケンス番号、フラグ、ウィンドウサイズが含まれます。ネットワーク分析のために TCP ヘッダーをデコードする方法を学びましょう。
タスク
UDP データグラムヘッダーをパースする 2 ツールステップ
UDP ヘッダーは 8 バイトです:送信元ポート、宛先ポート、長さ、チェックサム。プロトコル分析のために UDP をデコードする方法を学びましょう。
タスク
名前空間付き XML をパースする 2 ツールステップ
XML 名前空間は要素名の衝突を避けるために名前を修飾します。xmlns 宣言、デフォルト名前空間とプレフィックス付き名前空間、正しいパース方法を学びましょう。
タスク
圧縮された JSON を読める(差分も取れる)形に整形する 2 ツールステップ
1 行の API レスポンスをインデント付き JSON に変換します。入力が有効な JSON でない場合も、エラー箇所を正確に示します。
タスク
クリックジャッキング攻撃を防ぐ 2 ツールステップ
クリックジャッキングは、サイトを不可視の iframe に埋め込んでユーザーに誤ったクリックを誘います。X-Frame-Options と CSP の frame-ancestors を学びましょう。
タスク
CSRF(クロスサイトリクエストフォージェリ)攻撃を防ぐ 2 ツールステップ
CSRF は認証済みユーザーを騙して意図しないリクエストを送信させます。anti-CSRF トークン、SameSite Cookie、ダブルサブミットのパターンを学びましょう。
タスク
SQL インジェクション(SQLi)攻撃を防ぐ 2 ツールステップ
SQLi はユーザー入力を通じて悪意のある SQL を注入します。パラメータ化クエリ、入力バリデーション、最小権限の原則を学びましょう。
タスク
暗号操作に対するタイミング攻撃を防ぐ 2 ツールステップ
タイミング攻撃は実行時間の揺らぎを利用して秘密情報を漏洩させます。定数時間比較、均一な処理、ブラインディングの手法を学びましょう。
タスク
XSS(クロスサイトスクリプティング)攻撃を防ぐ 2 ツールステップ
XSS は Web ページに悪意のあるスクリプトを注入します。入力のサニタイズ、出力のエンコード、Content Security Policy による XSS 対策を学びましょう。
タスク
テキストからストップワードを取り除く 2 ツールステップ
ストップワードとは、意味の薄い頻出語(the、is、at、which など)です。除去することで検索や NLP の効率が向上します。
タスク
RGB 色を HEX に変換する(逆変換も) 2 ツールステップ
色の値を rgb() と #rrggbb 表記の間で変換します。CSS 作業に欠かせないアルファチャネルの扱いにも対応します。
タスク
暗号鍵を安全にローテーションする 3 ツールステップ
鍵のローテーションは、鍵が漏洩した場合の被害範囲を限定します。二重暗号化による移行パターンと、ダウンタイムなしでデータを再暗号化する方法を学びましょう。
タスク
メモリ上の機密データを安全に消去する 2 ツールステップ
暗号鍵や平文は、使用後にメモリからゼロクリアしなければなりません。memset では不十分な理由と、コンパイラ最適化を防ぐ方法を学びましょう。
タスク
行をソートして重複を取り除く 1 ツールステップ · 1 パイプライン
項目のリスト(1 行 1 項目)を受け取り、辞書順または自然順でソートし、重複行を削除します。
タスク
単語を語幹形にステミングする 2 ツールステップ
ステミングは単語を語幹に還元します(running → run、better → bet)。Porter ステマーと、代わりにレンマ化を使うべき場面を学びましょう。
タスク
暗号鍵を安全に保管する 3 ツールステップ
鍵をハードコードしたりソース管理にコミットしたりしてはいけません。HSM、KMS、エンベロープ暗号化、鍵導出パターンによる安全な鍵保管を学びましょう。
タスク
メモリ効率のために JSON データをストリーミング処理する 2 ツールステップ
ストリーミング JSON パーサーは、ドキュメント全体をメモリに読み込まずにデータを漸次処理します。大きな JSON ファイルやリアルタイム API に必須です。
タスク
数が素数かどうか判定する 2 ツールステップ
素数判定は、数が素数かどうかを確定します。試し割り、Miller-Rabin、決定的判定法を学びましょう。
タスク
正規表現をリリース前にテストする 2 ツールステップ
パターン構文の検証、キャプチャグループによるすべてのマッチの検査に加え、正規表現を障害に変えてしまうバックトラッキングの落とし穴を学びましょう。
タスク
Unix タイムスタンプを読める日付に変換する 1 ツールステップ
エポックからの秒数・ミリ秒の値を人が読める日付に変換します。単位とタイムゾーンという 2 つの古典的な混乱も解消します。
タスク
NLP 処理のためにテキストをトークン化する 2 ツールステップ
トークン化はテキストをトークン(単語、文、サブワード)に分割します。NLP タスクのための単語・文・サブワードトークン化を学びましょう。
タスク
テキストを大文字・小文字・タイトルケース・文ケースに変換する 1 ツールステップ · 1 パイプライン
見出し、定数、文、表示ラベルなどの用途に合わせてテキストのケースを変換します。
タスク
ネストした URL エンコードパラメータをデコードする(クエリ文字列内の Base64 JSON) 1 ツールステップ · 1 パイプライン
URL パラメータが URL エンコードされた Base64 JSON を運ぶというよくある API パターンをほどきます。1 つのチェーンに 3 つのツール、ページ間のコピペは不要です。
タスク
AES を CTR モードでストリーム暗号として使う 2 ツールステップ
AES-CTR はブロック暗号をキーストリーム生成器に変え、パディングを不要にします。カウンタの正しい管理と、認証を別途追加しなければならない理由を学びましょう。
タスク
AES を GCM モードで認証付き暗号化に使う 2 ツールステップ
AES-GCM は 1 回の操作で機密性と完全性の両方を提供し、別途 HMAC なしで改ざんを検出します。ほとんどのアプリケーションで推奨される AES モードです。
タスク
HTTP Basic 認証を使う 2 ツールステップ · 1 パイプライン
Basic 認証は、Base64 エンコードした username:password を Authorization ヘッダーで送ります。形式、セキュリティ上の要件、代替手段を学びましょう。
タスク
API 認証に Bearer トークンを使う 2 ツールステップ · 1 パイプライン
Bearer トークンは Authorization ヘッダーで「Bearer <token>」の形式で送ります。トークンを持つ者は誰でも API にアクセスできるため、パスワード同様に厳重に保護しましょう。
タスク
集合の所属判定にブルームフィルタを使う 2 ツールステップ
ブルームフィルタは確率的に集合への所属を判定します。偽陰性はありませんが、偽陽性があり得ます。大きな集合に対して省スペースです。
タスク
コンパクトなバイナリ JSON に CBOR エンコードを使う 2 ツールステップ
CBOR(Concise Binary Object Representation、RFC 8949)は JSON ライクなデータ向けのバイナリシリアライズ形式で、JSON より小さく高速です。
タスク
中国剰余定理を使う 2 ツールステップ
中国剰余定理(CRT)は、連立合同式を解きます。アルゴリズムと、RSA の高速化や秘密分散への応用を学びましょう。
タスク
ネットワーク範囲に CIDR 表記を使う 2 ツールステップ
CIDR(Classless Inter-Domain Routing)は IP 範囲を簡潔に表します。プレフィックス長、サブネットマスク、IP が範囲内かどうかの判定方法を学びましょう。
タスク
分散にコンシステントハッシングを使う 2 ツールステップ
コンシステントハッシングは、サーバーの追加・削除時に再割り当てを最小限に抑えてキーをサーバーへ分散します。CDN や分散キャッシュで使われます。
タスク
秘密情報の検証に定数時間比較を使う 2 ツールステップ
秘密(パスワード、トークン、MAC)を比較するときは、値に依存しない一定時間で比較しないとタイミング側信道が生じます。その対策を学びましょう。
タスク
Cookie を安全に使う 2 ツールステップ
Cookie には Secure、HttpOnly、SameSite と適切な有効期限を設定しなければなりません。Cookie の属性とセキュリティのベストプラクティスを学びましょう。
タスク
スケジューリングに cron 式を使う 2 ツールステップ · 1 パイプライン
cron 式は 5 つのフィールド(分、時、日、月、曜日)で定期的なスケジュールを定義します。構文、特殊文字、よくあるパターンを学びましょう。
タスク
暗号学的に安全な擬似乱数生成器を使う 2 ツールステップ
CSPRNG は真の乱数と区別がつかない出力を生成します。正しい API と、セキュリティ文脈で Math.random() が禁止される理由を学びましょう。
タスク
Diffie-Hellman 鍵交換を使う 2 ツールステップ
Diffie-Hellman は、安全でないチャネル上で秘密自体を送信せずに、2 者が共有秘密を確立できるようにします。TLS 鍵交換の基盤です。
タスク
HTTP Digest 認証を使う 2 ツールステップ
Digest 認証はサーバーの nonce と組み合わせて資格情報をハッシュし、HTTPS なしでのパスワード露出を防ぎます。チャレンジ・レスポンスの流れと MD5 の使われ方を学びましょう。
タスク
鍵交換に ECDH を使う 2 ツールステップ
ECDH(楕円曲線 Diffie-Hellman)は楕円曲線を使って共有秘密を確立します。より小さい鍵で DH と同等の安全性を得られます。
タスク
暗号に楕円曲線を使う 2 ツールステップ
楕円曲線暗号(ECC)は、RSA よりはるかに小さい鍵で同等の安全性を提供します。点の演算と鍵交換を学びましょう。
タスク
拡張ユークリッドの互除法を使う 2 ツールステップ
拡張 GCD は ax + by = gcd(a, b) を満たす x, y を求めます。モジュラ逆数と中国剰余定理に不可欠です。
タスク
高速フーリエ変換を使う 2 ツールステップ
FFT は離散フーリエ変換を O(n^2) ではなく O(n log n) で計算します。信号処理、多項式乗算、音声解析に使われます。
タスク
ドキュメントのメタデータに YAML フロントマターを使う 2 ツールステップ
フロントマターは Markdown ファイル先頭の「---」で区切られた YAML メタデータです。静的サイトジェネレーター(Astro、Hugo、Jekyll)でページメタデータとしてよく使われます。
タスク
SQL で全文検索を実装する 2 ツールステップ
全文検索はテキスト内の単語にインデックスを付け、高速な検索を可能にします。FULLTEXT インデックス、tsvector、ランキングの使い方を学びましょう。
タスク
リンクドデータと SEO に JSON-LD を使う 2 ツールステップ
JSON-LD(Linked Data)は RDF トリプルを JSON でシリアライズし、検索エンジンにエンティティ間の関係を理解させます。Schema.org の構造化データに使われます。
タスク
JSON Pointer(RFC 6901)で値を参照する 2 ツールステップ
JSON Pointer は、スラッシュ区切りのパストークンで JSON ドキュメント内の特定の値を指し示す文字列構文を定めます。
タスク
RSA 署名の JWT(RS256)を使う 2 ツールステップ · 1 パイプライン
RS256 は RSA-SHA256 で JWT に署名します。秘密鍵の保持者だけが署名でき、公開鍵を持つ誰でも検証できる非対称な方式です。
タスク
データ検証にマークルツリーを使う 2 ツールステップ
マークルツリーはデータをツリー構造にハッシュし、データセット全体をダウンロードせずに個々の要素を効率的に検証できるようにします。
タスク
IoT メッセージングに MQTT トピック構造を使う 2 ツールステップ
MQTT トピックはスラッシュ区切りの階層とワイルドカードで購読を制御します。トピック設計、QoS レベル、保持メッセージを学びましょう。
タスク
効率的なバイナリシリアライズに MessagePack を使う 2 ツールステップ
MessagePack は JSON ライクなデータをコンパクトなバイナリ形式にパックし、サイズとパース時間を削減します。高性能 API や IoT で人気です。
タスク
TLS ハンドシェイク高速化のために OCSP ステープリングを有効にする 2 ツールステップ
OCSP ステープリングを使うと、サーバーが TLS ハンドシェイク中に最新の失効確認結果をクライアントに提示でき、CA への別途ラウンドトリップを省けます。
タスク
楽観的並行制御を使う 2 ツールステップ
楽観的並行制御は、競合がまれであることを前提に、ロックをかけずコミット時にバージョン確認だけを行います。バージョンカラムのパターンを学びましょう。
タスク
正規表現の後方参照を使う 2 ツールステップ
後方参照 \1、\2 は、以前のキャプチャグループと同じテキストにマッチします。繰り返し単語、対になる区切り文字、回文のマッチングに便利です。
タスク
正規表現の文字クラスを効果的に使う 2 ツールステップ
文字クラス [...] は、集合の中の任意の 1 文字にマッチします。範囲、否定、省略記法クラス、エスケープ規則を学びましょう。
タスク
正規表現のキャプチャグループと非キャプチャグループを使う 2 ツールステップ
グループ (...) は部分マッチをキャプチャし、後方参照や抽出に使えます。非キャプチャ (?:...) はキャプチャせずにグループ化します。名前付きグループ (?<name>...) は可読性を高めます。
タスク
正規表現の先読みアサーションを使う 2 ツールステップ
先読み (?=...) と (?!...) は、現在位置に続く(または続かない)内容を、文字を消費せずにアサートします。幅ゼロのアサーションです。
タスク
正規表現の後読みアサーションを使う 2 ツールステップ
後読み (?<=...) と (?<!...) は、現在位置の前にある内容をアサートします。モダンなエンジン(ES2018+、Java、.NET、PCRE)でサポートされています。
タスク
正規表現の量指定子(*、+、?、{n,m})を使う 2 ツールステップ
量指定子はパターンの繰り返し回数を指定します。貪欲、怠惰、絶対的マッチングを学び、破壊的バックトラッキングを避けましょう。
タスク
iframe の sandbox 属性を使う 2 ツールステップ
sandbox 属性は iframe の機能を制限し、悪意のある埋め込みコンテンツが親ページへアクセスするのを防ぎます。
タスク
鍵を分割するために Shamir の秘密分散を使う 2 ツールステップ
Shamir の秘密分散は、秘密を n 個のシェアに分割し、そのうち任意の k 個で復元できます。キーエスクロー、分散保管、単一障害点の解消に役立ちます。
タスク
水平スケーリングのためにデータベースシャーディングを使う 2 ツールステップ
シャーディングは、シャードキーによってデータを複数のデータベースへ分散します。シャーディング戦略、シャードをまたぐクエリ、トレードオフを学びましょう。
タスク
読みやすい SQL のために CTE を使う 1 ツールステップ · 1 パイプライン
共通テーブル式(WITH 句)は名前付きの一時結果セットを作り、可読性を高め、再帰も可能にします。
タスク
SQL の JOIN 種類を正しく使い分ける 1 ツールステップ · 1 パイプライン
INNER、LEFT、RIGHT、FULL、CROSS の各 JOIN は複数テーブルの行を結合します。それぞれを使うべき場面と、よくある落とし穴の回避方法を学びましょう。
タスク
SQL のサブクエリと CTE を使う 1 ツールステップ · 1 パイプライン
サブクエリは、クエリの中に別のクエリをネストします。CTE(WITH 句)は名前付きで読みやすいサブクエリを提供します。それぞれの使い分けを学びましょう。
タスク
SQL のウィンドウ関数を使う 1 ツールステップ
ウィンドウ関数(OVER)は、グループ化せずに複数行にわたる計算を行います。ROW_NUMBER、RANK、LAG、LEAD、集約ウィンドウを学びましょう。
タスク
ストリーム暗号を正しく理解して使う 2 ツールステップ
ストリーム暗号はキーストリームでバイト単位に暗号化し、高速でパディング不要です。nonce の正しい扱いと、nonce 再利用という致命的な過ちを学びましょう。
タスク
外部リソースに Subresource Integrity(SRI)を使う 2 ツールステップ
SRI は外部スクリプトやスタイルのハッシュを検証することで、改ざんされていないことを保証します。integrity 属性の生成と検証を学びましょう。
タスク
TOML の配列とテーブル配列を使う 2 ツールステップ · 1 パイプライン
TOML はプリミティブの配列とテーブル配列をサポートします。インライン配列、複数行配列、構造化データのための [[table]] 配列の構文を学びましょう。
タスク
データベーストランザクションを正しく使う 1 ツールステップ
トランザクションは操作をアトミックな単位にまとめます。すべて成功するか、すべて失敗するかのどちらかです。ACID 特性と分離レベルを学びましょう。
タスク
VLAN を理解して設定する 2 ツールステップ
VLAN は物理ネットワークを論理的に分割し、分離されたブロードキャストドメインを作ります。VLAN ID、タギング(802.1Q)、トランクポートとアクセスポートを学びましょう。
タスク
WebSocket フレーム形式を理解する 2 ツールステップ
WebSocket フレームには、オペコード、マスキング、ペイロード長からなる固有のバイナリ形式があります。WebSocket フレームのデコードと構築を学びましょう。
タスク
XML ドキュメントを問い合わせるために XPath を使う 2 ツールステップ
XPath は、パス式、述語、関数で XML ツリーを走査します。絶対パスと相対パス、ワイルドカード、よく使う関数を学びましょう。
タスク
実行前に SQL 構文を検証する 2 ツールステップ
SQL クエリをデータベースに送る前に構文エラーを検証します。タイプミス、キーワードの欠落、構造上の問題を早期に発見できます。
タスク
XSD スキーマに対して XML を検証する 2 ツールステップ
XSD(XML Schema Definition)は XML ドキュメントの構造、要素型、制約を定義します。スキーマに対してドキュメントを検証し、正しさを保証しましょう。
タスク
チェックサムでファイルやデータの整合性を検証する 3 ツールステップ
データの CRC32 または SHA-256 チェックサムを計算し、既知の値と比較して破損や改ざんを検出します。
タスク
エンコード・デコードの往復がロスレスであることを検証する 2 ツールステップ · 1 パイプライン
デコードしてから再エンコード(またはその逆)が元の入力と完全に一致するかを確認し、アルファベットやパディングの誤りによる暗黙のデータ破損を検出します。
タスク
ダウンロードしたファイルのチェックサムを検証する 2 ツールステップ
ファイルのハッシュをローカルで計算し、公開元のチェックサムと比較します。どのアルゴリズムを信頼すべきかも理解しましょう。
タスク
堅牢なメールアドレス検証正規表現を書く 2 ツールステップ
メールアドレス検証の正規表現は、RFC 5322 のせいで悪名高いほど複雑です。よくある用途に実用的なパターンと、その限界を学びましょう。
タスク
電話番号検証の正規表現を書く 2 ツールステップ
電話番号の形式は国によって大きく異なります。よくある形式に対する実用的なパターンと、電話番号ライブラリの方が良い場合が多い理由を学びましょう。
タスク
URL 検証の正規表現を書く 2 ツールステップ
URL 検証の正規表現は、プロトコル、ドメイン、ポート、パス、クエリ、フラグメントを扱う必要があります。実用的なパターンと、URL パーサーを使うべき場面を学びましょう。
タスク

詳細ドキュメント

これらのフォーマットやアルゴリズムの仕組みに関する長文の参考ドキュメント。