🔗 DBT - 03 - ECART - Marts réduits à une couche d'exposition

# Écart 03 — Les marts réduits à une couche d'exposition

| | |
|---|---|
| **Type** | Décalage de vocabulaire et d'architecture |
| **Doctrine de référence** | *Les trois couches d'un projet dbt*, §5.1 et §5.8 |
| **Statut** | À instruire |
| **Dernière révision** | Juillet 2026 |

> **En une phrase :** l'architecture est probablement correcte et seuls les noms sont faux — mais tant qu'ils le sont, la gouvernance se pose sur des projections plutôt que sur les définitions.

---

## 1. La pratiqu

🔗 DBT - 02 - ECART - Décomposition de l'intermediate en étapes techniques

# Écart 02 — Décomposition de l'intermediate en étapes techniques

| | |
|---|---|
| **Type** | Écart à un principe de découpage dbt |
| **Doctrine de référence** | *Les trois couches d'un projet dbt*, §4.4 et §6.5 |
| **Statut** | À instruire |
| **Dernière révision** | Juillet 2026 |

> **En une phrase :** dbt découpe l'intermediate selon le **concept métier préparé**, jamais selon l'**opération SQL effectuée** ; et le critère qui promeut une étape en modèle est la réutilisation, pas la nature

🔗 DBT - 01 - ECART - Ephemeral comme matérialisation au staging

# Écart 01 — `ephemeral` comme matérialisation du staging

| | |
|---|---|
| **Type** | Écart à une recommandation dbt explicite |
| **Doctrine de référence** | *Les trois couches d'un projet dbt*, §3.7 |
| **Statut** | À instruire |
| **Dernière révision** | Juillet 2026 |

> **En une phrase :** dbt recommande `view` au staging et énonce pour `ephemeral` trois conditions d'usage cumulatives dont l'une est incompatible par construction avec la fonction de la couche.

---

## 1. La pratique

La c

🔗 DBT - Semantic Layer et Modélisation Kimball

# Le dbt Semantic Layer — et pourquoi il réconcilie dbt avec Kimball

> Note de synthèse construite à partir de la documentation dbt Labs (pages *About MetricFlow*, *Joins*, *Semantic models*, *Measures*, *Creating metrics*, guide *How we build our metrics*, FAQ Semantic Layer) et de la page d'intégration Power BI. Sources consultées fin juillet 2026.

---

## 0. La réponse en cinq lignes

Le Semantic Layer déplace la définition des **métriques** hors de l'outil de BI et hors des tables figées, 

đź”— DBT - Best Practises Couches

# Les trois couches d'un projet dbt : préconisations, recommandations et interdits

> Note de synthèse construite à partir des sources primaires dbt Labs (guides *How we structure our dbt projects*, *How we style our dbt projects*, *Materialization best practices*) et du package d'audit `dbt_project_evaluator`. État des pages consultées : mise à jour juin–juillet 2026.
>
> **Révision 5** — ajouts : sélection des colonnes en staging (§3.4), `ephemeral` au staging (§3.7), critère identité/préparat

đź”— DBT - 00 - Index

# Corpus dbt — index

Dernière mise à jour : août 2026

---

## Les trois genres

Le corpus distingue trois types de documents. Confondre les genres est la principale cause de dérive documentaire : une référence qui juge cesse d'être une référence, une note d'écart qui recopie la doctrine se périme à la première révision.

| Genre | Répond à | Longueur | Se met à jour |
|---|---|---|---|
| **Référence** | Que dit dbt ? | Long, exhaustif | Quand dbt évolue |
| **Note thématique** | Comment foncti

🔗 DBT - Choix d'une matérialisation

# Choix d'une matérialisation dbt — arbre de décision

| | |
|---|---|
| **Type** | Doctrine — synthèse des conseils officiels |
| **Doctrine de référence** | *Les trois couches d'un projet dbt*, §3.7, §4.6, §5.4 |
| **Dernière révision** | Juillet 2026 |

> ⚠️ **dbt ne publie aucun arbre de décision de ce type.** Ce diagramme est une synthèse des blocs « Advice » de la page *Materializations* croisés avec les matérialisations par défaut de chaque couche. Chaque nœud est traçable à une recommand

877. Stone Game

Alice and Bob play a game with piles of stones. There are an even number of piles arranged in a row, and each pile has a positive integer number of stones piles[i]. The objective of the game is to end with the most stones. The total number of stones across all the piles is odd, so there are no ties. Alice and Bob take turns, with Alice starting first. Each turn, a player takes the entire pile of stones either from the beginning or from the end of the row. This continues until there are no more piles left, at which point the person with the most stones wins. Assuming Alice and Bob play optimally, return true if Alice wins the game, or false if Bob wins.
/**
 * @param {number[]} piles
 * @return {boolean}
 */
var stoneGame = function(piles) {
    const n = piles.length;

    // dp[i][j] = max score difference current player can achieve
    const dp = Array.from({ length: n }, () => Array(n).fill(0));

    // Base case: when i == j, only one pile is available
    // The current player takes it, so the difference is piles[i]
    for (let i = 0; i < n; i++) {
        dp[i][i] = piles[i];
    }

    // Fill DP table for increasing lengths of subarra

Simu alpha 28 rue du Foix p9syzn8r6s 2 PAC

{
    "custom_renovation_plan": [
        {
            "category_technical_id": "heating",
            "gesture_technical_id": "air_air_heat_pump_with_external_unit_complete",
            "quantity": {
                "default_value": null,
                "error_margin": 0,
                "unit": "unit",
                "value": 1
            },
            "pricing": {
                "price_per_unit": "100.0"
            },
            "spec": {
                "service_technical_id": "air_

Qwen3-Coder-Next QLoRA SFT smoke for HF Jobs

Qwen3-Coder-Next QLoRA SFT smoke for HF Jobs
# /// script
# requires-python = ">=3.10"
# dependencies = [
#     "trl>=1.9.0,<2.0.0",
#     "peft>=0.17.0",
#     "bitsandbytes>=0.45.0",
#     "trackio",
#     "transformers>=4.57.0",
#     "accelerate>=1.0.0",
# ]
# ///
"""LoRA SFT smoke test for Qwen3-Coder-Next on Hugging Face Jobs.

Goal: prove the hybrid `qwen3_next` architecture loads under TRL + PEFT and
survives a handful of optimizer steps before we spend on distillation / GRPO.

Defaults to 4-bit QLoRA so an 80B-total MoE can fit on

smithaery toolbox

{
  "mcpServers": {
    "toolbox": {
      "type": "http",
      "url": "https://mcp.smithery.run/pwdesignhtx",
      "headers": {
        "Authorization": "Bearer <api-key>"
      }
    }
  }
}

486. Predict the Winner

You are given an integer array nums. Two players are playing a game with this array: player 1 and player 2. Player 1 and player 2 take turns, with player 1 starting first. Both players start the game with a score of 0. At each turn, the player takes one of the numbers from either end of the array (i.e., nums[0] or nums[nums.length - 1]) which reduces the size of the array by 1. The player adds the chosen number to their score. The game ends when there are no more elements in the array. Return true if Player 1 can win the game. If the scores of both players are equal, then player 1 is still the winner, and you should also return true. You may assume that both players are playing optimally.
/**
 * @param {number[]} nums
 * @return {boolean}
 */
var predictTheWinner = function(nums) {
    const n = nums.length;

    // memo[l][r] will store the maximum score difference
    // the current player can achieve over the opponent
    // when playing optimally on nums[l..r].
    const memo = Array.from({ length: n }, () => Array(n).fill(null));

    function dp(l, r) {
        // Base case: only one number left
        // The current player takes it, so the difference is nums[l].
        i

aiml demo project

import asyncio
from sqlalchemy import text
from database import engine

async def get_question_counts(conn):
    result = await conn.execute(
        text(
            "SELECT COUNT(*) AS total_questions, "
            "SUM(CASE WHEN embedding IS NOT NULL THEN 1 ELSE 0 END) AS questions_with_embedding "
            "FROM questions"
        )
    )
    return result.fetchone()

async def delete_all_question_data():
    async with engine.begin() as conn:
        counts = await get_

3014. Minimum Number of Pushes to Type Word I

You are given a string word containing distinct lowercase English letters. Telephone keypads have keys mapped with distinct collections of lowercase English letters, which can be used to form words by pushing them. For example, the key 2 is mapped with ["a","b","c"], we need to push the key one time to type "a", two times to type "b", and three times to type "c" . It is allowed to remap the keys numbered 2 to 9 to distinct collections of letters. The keys can be remapped to any amount of letters, but each letter must be mapped to exactly one key. You need to find the minimum number of times the keys will be pushed to type the string word. Return the minimum number of pushes needed to type word after remapping the keys. An example mapping of letters to keys on a telephone keypad is given below. Note that 1, *, #, and 0 do not map to any letters.
/**
 * @param {string} word
 * @return {number}
 */
var minimumPushes = function(word) {
    // Each letter is distinct, so frequency doesn't matter.
    // We have 8 keys (2–9), and each key can type:
    // - 8 letters with 1 push
    // - 8 letters with 2 pushes
    // - 8 letters with 3 pushes
    // ...and so on.
    //
    // The optimal strategy is to assign the cheapest push counts first.
    // That means:
    // - letters 0–7 cost 1 push
    // - letters 8–15 cost 2 pushes
    // - let

BB LOOP Query Args > append 'featured events' to existing LOOP filters

The BB LOOP module already filters out past events. The settings already are ordering them by EventDate. This snippet includes ONLY Featured events.
function upcomingFeaturedEventsOnHomepage_fl_builder_loop_query_args( $args ) {
	if ( $args['settings']->id == 'bbloop--upcoming-featured-public-events' ) {
		$args['meta_query'][]     = array(
			'key'     	=> '_tribe_featured',
			'compare' 	=> '=',
			'value' 	=> 1,
			'type'  	=> 'NUMERIC' 
		);
	}
	return $args; 
} 
add_filter( 'fl_builder_loop_query_args', 'upcomingFeaturedEventsOnHomepage_fl_builder_loop_query_args', 20, 1 );

WSL2: increase virtual disk

# Increase virtual disk WSL2 via `diskpart`

## 1. Shutdown WSL instance
```ps
wsl --shutdown
```

## 2. Check name of WSL distr
```ps
wsl -l -v
```

## 3. Check WSL path to .vhdx file
```ps
& {
    # Collect installed WSL distribution names
    $wslDistros = wsl -l -v |
        Select-Object -Skip 1 |
        ForEach-Object -Process {
            ($_ -replace "`0", "" -replace "\*", "").Trim() -split '\s+' |
            Select-Object -First 1
        } |
        Where-Object -FilterScript {