SQLの実践は退屈で、何も現実に感じないからです。 , グリーンチェックマークを取得し、進めます. データは何の意味もありません. クエリはどこにも行きません. あなたは真空でシンタクスを練習しています。 SELECT * FROM users 実際のSQLの仕事はそうではありません。3つのテーブルに加わり、異常を発見することによって2時に生産バグを見つける - それは探偵の仕事のように感じます。 だから僕は建てた あなたがケースを解決するとき、あなたの携帯電話は物理ファイルを閉じるように重いハプティックダンプを提供します. 4週間で、月間15,000ユーザーは彼らのクエリで犯罪を解決しています. バッジなし、ストリップなし、ただのSQLが調査する価値のある何かを調査しています。 SQL Case ファイル SQL を物理的に感じさせる方法は、すべてを変え、それを機能させた技術的な選択肢です。 Sensory Coding: Why Your Terminal Should Thump 「QUERY_VERIFIED」のスタンプ効果は午前2時に行われた実験です. あなたのクエリが検証に合格すると、3つのことが同時に起こります:ターミナルが緑色になり、スタンプグラフィックが紙スタンプのサウンド効果で崩壊し、あなたのデバイスはTaptic Engineを通じて重いハプティックパルスを提供します。 そのハプスティックなフィードバックは、仕事が重要だと考えるようにあなたの脳を騙します. ドーパミンヒットの方法ではなく - 「あなたはただ実際のケースファイルを閉じた」方法で. 感覚ループは、「+10 XP」の通知が決してしないメモリアンカーを作成します。 私はこれをすべてのインタラクションに拡張しました。ナビゲーションのための軽いタップ。エラーを打ったときにより重い衝撃。証拠カードはランダムの回転角度、落下の影、およびカルクのテクスチャを有するポラロイドのように見えます。それらの上にホバーし、物理的なピンのようにボンクします。ターミナルは繊細なCRTの輝きを持っています。ターミナルはそのように見え、それが正しいと感じました。 これらの方法のいずれも、SQL をより速く教えることはありません. It makes the experience feel less like software and more like being in a room, solving something real. それは、体験をソフトウェアのように感じるよりも、部屋の中にいるようなものにします。 「Join」を言わずに教える The Evidence Board is where I am teaching. 証拠ボードは私が教えている場所です。 手続きは、関係を物理的にすることによってです。 あなたが SQL を書く前に、あなたは証拠カードを持つコルクボードを見ます。 1 枚のカード: "Flight 404 departed at 08:15." もう 1 枚のカード: "Credit card charge at airport Starbucks, 08:03." あなたの脳は仕事をします - これらの 2 枚の場所とタイムフレームを共有し、それらが接続します。 JOIN ほとんどのプラットフォームは、SQLを後ろ向きに教えています:最初にシンタックスを覚え、その後、それをいつ使うべきかを把握します。 Technically this is a visual query planner. I built it in React with custom JavaScript handling the physics. アニメーションは実行されます。 すべてが古いAndroidデバイスでスムーズに保たれるように、カスタム緩和曲線を搭載しています。Pushpinsは3D変換と衝突検出を備えていますので、あなたがそれらと相互作用するときに自然にボンクします。カードは、漸進的にロードするヴィンテージの紙のテクスチャで崩壊可能なフォルダーアニメーションを使用します。 requestAnimationFrame 機械的な機能は、実行前に計画を強制するためです. You can't just start typing. あなたは証拠を見て、関係をマップし、あなたがすでに推論したものを表現するクエリを書く必要があります。 SELECT * The Validator: Result Sets, Not SQL Text を参照 クエリ検証は、予想されるデータセットに設定された結果を比較し、SQL を SQL に比べるのではなく、複数のソリューションが機能することを意味します。 フィルター with または . 異なるテーブルアライアス. 異なる列順序. 結果が一致する限り、あなたは通過します。 JOIN WHERE HAVING SQL データベースは、指定しない限り、予測不可能な順序で結果を返します。 . 列名は異なる場合があります. 浮動点の精度はシステムによって異なります. NULL 処理は、通常の比較操作を破る 3 つの値の論理(TRUE、FALSE、NULL)に従います。 ORDER BY 解決策:比較前に両方の結果セットを正常化する. コンテンツハッシュで行を分類. 列をアルファベットで分類. 周りの浮動ポイント値を6個のデシマルにします。 セマンティクス. 次に比較するだけです. これは、検証者が正確性について厳密に留まる一方で、シンタクスについて許すことを可能にします。 IS NULL 検証は 2 つの段階で実行されます。まず、クエリは SQLite WASM を使用してマックデータに対してローカルに実行されます。効果があれば、即座にフィードバックを得て、結果が即座に表示されます。その後、クエリはサーバーに対して検証されます(サーバー側の検証のセキュリティを使用して、実際のデータセットを使用して詐欺を防止します。このハイブリッドアプローチは、サーバー側の検証のセキュリティでローカルな実行速度を提供します。 モバイルコーディング:6インチの問題を解決する ユーザーの60%がモバイルで、最初はSQLを電話で書くのは不幸なことだったが、私は攻撃的なUX最適化を通じて機能させた。 データベースのスケジュールは、底部のドライブに存在します。必要なときに上にスワイプし、必要ないときに下にスワイプします。SQL キーワードにはキーボードの上に自動完成ツールバーがありますので、入力しません。 キャラクターごとにキャラクター クエリログは、上部に貼り付けられていますので、現在の作業から離れてスロールすることなく、以前の試みを参照できます。 SELECT チュートリアルシステムは習慣を用いる。 滑らかなスローリング中にUI要素にロックされたハイライトコールアウトを保持するためのループ. Most web apps have "drifting highlights" where the pointer ends up 50px away from the element it is supposed to indicate. I fixed this by recalculating element positions on each animation frame during scroll events and dynamically adjusting the highlight offset to compensate. スローリングイベント中にすべてのアニメーションフレームの要素の位置を再計算し、ハイライトオフセットをダイナミックに調整することで、これを修正しました。 requestAnimationFrame 結果のドライブは柔軟なオーバーレイヤーとして底からスライドします。モバイルでは、エディターをスクリーンから押す余裕がありませんので、結果はワークスペースを妨げない拡張パネルで表示されます。 The AI Assistant: Rate Limited Because I'm Paying for It オリジナルタイトル 「The Analyst」と呼ばれるAIヒントシステムがあります - 区内で上級探偵として構成されています. それはジェミニ APIを使用しています. それはポケットからAPIコストを支払っているため、1日あたり20通話に制限されています。 しかし、制約は機能に変わった。あなたが助けを求めるチャンスが20しかないことを知るとき、あなたはまず自分の思考を枯渇させます。あなたは証拠を再読します。あなたは異なるクエリで実験します。あなたはAIを検索バーのように扱うのではなく、闘いを通じて学びます。 これは偶然の良いデザインでした。コストの理由で料金制限が必要でした。それは結局、SQLで人々をよりよくすることにしました。 テクニカルな実装はシンプルです - frontend POST リクエストは、文脈に気付くプロンプトを構築し、Gemini API を呼び出すNetlify機能です。複雑さはプロンプトエンジニアリングでした。私は学習の課題を維持するのに十分な暗号化を訓練しなければならず、実際に助けるのに十分に明確です。あまりに曖昧でユーザーは失望します。あまりに明確で、あなたは彼らに答えを提供しています。 反応は、本部からのラジオ通話のようなモダルなスタイルで、静的サウンドエフェクトで完了します。不足は緊張を生みます。プレゼンテーションは浸透を生みます。 タイトル:Seasons vs. The Vault SQL Case Files には 2 つのモードがあります。The Academy (Seasons) は学習パスです。 シーズン2はフィルタリングと集計を教えます。シーズン8はウィンドウ機能に入ります。それぞれのシーズンには8~12個の独自のケースが含まれています。 JOIN 「The Midnight Train」はタイムシリーズデータのレッスンではありません。それは、タイムスタンプクエリを使用して彼らの最後の動きを再構築する欠落した乗客のケースです。 複数の比較オペレーター BETWEEN Case Vault は、すでに SQL を知っており、インタビューレベルの課題を求めている人々のために設計されています。 チュートリアルはありません。 ガードレイルはありません。 どの SQL 機能が必要かについてのヒントはありません。 データと質問だけです。 これらのケースはプレミアムまたはロック解除可能なコンテンツです。 あなたはそれらを解決するか、そうでないかです。 報酬の構造は、これが他のすべての学習プラットフォームと異なる場所です。あなたはポイントを獲得しません。あなたはレベルアップしません。あなたは業績を解除しません。あなたがケースを解決すると、物語は進化します。容疑者は告白します。証人は破ります。謎は解決されます。複雑な書き込みのためのあなたの報酬 クエリは、ナラティブが支払われているということです。 GROUP BY SQLはプロットを進める唯一の方法です. コードはクイズではありません. それは調査ツールです. Framing shift makes all the difference. テクニカル Stack Frontend: React、Tailwind CSS(コアユーティリティのみ)、物理やアニメーション用のカスタムJavaScript データベース:SQLite WASM for local execution、PostgreSQL for server validation Validation: Netlify serverless functions running result set comparisons (検証) AI: Gemini API with context-aware prompting(コンテキスト意識の促進) オフライン: Progressive Web App Architecture、最初のロードですべての資産をキャッシュ オフラインファーストデザインは、最初の訪問後、すべてが接続なしで動作することを意味します。ケース、証拠、SQLite WASM ランタイム - すべてがローカルにキャッシュされます。サーバーレス機能は、オンラインで確認する準備ができているときにのみ起動します。これは、飛行機、列車、またはSQL ミステリーを解決したい場所で動作する高速で応答性の高いインターフェイスを提供します。 テクノロジーの選択は意図的でした コンポーネントの再利用性のために反応します Tailwind コアユーティリティは、ブラウザでコンパイラを実行できないためです アニメーションのためのカスタマイズJavaScriptは、曲線やタイミングの緩和を正確にコントロールする必要があるためです SQLite WASMは、高速でクライアント側で完全に動作します。 Netlify機能は、単純で安価で自動的にスケールするためです。 なぜこの存在 SQL Case Files を構築したのは、スティッカー グラフを必要とする子供のような有能な大人を扱う学習プラットフォームに飽きたからである。 しかし、開発者はそのように動作しません。我々は問題が興味深いので問題を解決します。我々は好奇心があるため、あるいは何かを完了する必要があるため、新しいことを学びます。 SQL Case Filesは、私自身が望んだ学習プラットフォームです。挑戦的な問題、クリーンなインターフェイス、物語構造、保護的な報酬システムはありません。 4週間で、毎月15,000人のアクティブなユーザーは、私がこれを望むのは1人ではないことを示唆しています. 彼らは「ゲーム化された学習」を嫌う開発者です. データサイエンティストは、本当の問題を望んでいます. 七歳のように扱われることに疲れている人々。 彼らは3日間のAI呼び出しを戦略的に使用しており、「ついに、バカのように私を扱わないSQLゲーム」や「ケースを閉じるときのハプティックなフィードバックは奇妙に満足する」などのフィードバックを残しています。 お試し♪ No signup. No credit card. No email capture. Just go to ケースを開いて、クエリを書き始める。 フィルムフィルム.com あなたのターミナルは良い SQL を書くときに振動します. That's not a metaphor.