# Focus : Modes de Sortie (Append, Update, Complete)
> **Prérequis** : Guide principal, notions de watermark
> **Objectif** : Choisir le bon mode selon le use case
> **Format** : Focus pratique (~250 lignes)
---
## 1. Les trois modes en une image
```
┌─────────────────────────────────────────────────────────────┐
│ MODES DE SORTIE │
├─────────────────────────────────────────────────────────────┤
│ # Deep Dive : Architecture Médaillon (Bronze / Silver / Gold)
> **Prérequis** : Guide principal, Deep Dives Watermarks et Checkpointing
> **Objectif** : Implémenter un pipeline Médaillon robuste en streaming
> **Contexte** : Pipelines IoT avec Delta Lake
---
## Table des matières
1. [Philosophie et principes](#1-philosophie-et-principes)
2. [Couche Bronze : ingestion brute](#2-couche-bronze--ingestion-brute)
3. [Couche Silver : conformité et qualité](#3-couche-silver--conformité-et-quali# Deep Dive : Checkpointing et Tolérance aux Pannes
> **Prérequis** : Lecture du guide principal (section 4), Deep Dive Watermarks
> **Objectif** : Maîtriser la persistance d'état et la reprise sur erreur
> **Contexte** : Pipelines IoT en production
---
## Table des matières
1. [Pourquoi le checkpoint est vital](#1-pourquoi-le-checkpoint-est-vital)
2. [Anatomie d'un checkpoint](#2-anatomie-dun-checkpoint)
3. [Configuration et stockage](#3-configuration-et-stockage)
4. [Scénarios de recov# Deep Dive : Fenêtres Temporelles et Watermarks
> **Prérequis** : Lecture du guide principal (sections 1, 6)
> **Objectif** : Maîtriser la gestion du temps en streaming
> **Approche** : Complexité croissante, du cas simple aux scénarios avancés
---
## Table des matières
1. [Pourquoi c'est difficile](#1-pourquoi-cest-difficile)
2. [Les deux temps du streaming](#2-les-deux-temps-du-streaming)
3. [Anatomie d'un Watermark](#3-anatomie-dun-watermark)
4. [Fenêtres en profondeur](#4-fenêtres-e# Spark Structured Streaming : Guide Fondamental
> **Contexte** : Formation Data Engineer
> **Cas d'usage** : Traitement de logs IoT
> **Prérequis** : Python solide, bases Spark SQL/DataFrame
> **Suite du cursus** : Kafka, Delta Lake
---
## Table des matières
1. [Principe du Streaming Structuré](#1-principe-du-streaming-structuré)
2. [Lecture et Écriture de Flux](#2-lecture-et-écriture-de-flux)
3. [Modes de Sortie](#3-modes-de-sortie-append-update-complete)
4. [Checkpointing et ToléranRewriteEngine on
Redirect 301 /bbb.html https://aaa.jp/bb/ccc# git revert
```
# 1. 使用 --no-commit 参数 revert 所有 commits(不立即提交)
git revert --no-commit -m 1 <commit3> # merge commit 需要 -m 1
git revert --no-commit -m 1 <commit2> # merge commit 需要 -m 1
git revert --no-commit <commit1> # 普通 commit
# 2. 一次性提交所有 revert 更改
git commit -m "Revert to commit <commit> - 回滚到上个版本"
```
`-m 1` 的含义:
普通 commit 只有一个父分支,merge commit 有两个父分支。
* `-m 1`:保留第一个父分支(被合并到的分支,例如 prod)
* `-m 2`:保留第二个父分支(被合并进来的分支,例如 test)
所以几乎 git rever merge commit 时都会带上 `-m 1`# class-wooviet-currency.php
```php
public function convert_price_thousand_to_k( $thousand_text = ' K' ) {
$this->thousand_text = $thousand_text;
add_filter( 'formatted_woocommerce_price', array( $this, 'filter_formatted_woocommerce_price' ), 10, 5 );
}
public function filter_formatted_woocommerce_price( $formatted_price, $price, $decimals, $decimal_separator, $thousand_separator ) {
if ( $price < 1000 ) {
return $formatted_price;
} else {
$decimals=2;
$suffix = $this->thousan# TXT COMMANDS
##### Show Unconstrained Geo:
```
Sketch.ShowUnderconstrained
```
# Xdebug Setup for Joomla and VS Code on Windows
## Step 1: Install Xdebug
1. Copy `phpinfo()` output and paste it into [Xdebug Wizard](https://xdebug.org/wizard).
2. Download `xdebug.dll`.
3. Copy the DLL to your PHP `ext` folder.
4. Add the following configuration to your `php.ini`:
```ini
[xdebug]
zend_extension = xdebug
xdebug.mode = develop,debug
xdebug.start_with_request = yes
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.var_display_max_depth = 5
xdebug.var_display_ma/* Per Elementor che su Register non va neanche a spinta e in discesa,
* in php extension:
* disattivato: ioncube_loader
* e attivato: opcache
*/
define('ELEMENTOR_LOAD_ICON_MANAGER_EARLY', true);
define('ELEMENTOR_EDITOR_BREAKPOINTS', true);
define('ELEMENTOR_DISABLE_ISOLATION', true);
/* E se serve
* imposta Memory Limit
*/
define('WP_MEMORY_LIMIT', '512M');
define('WP_MAX_MEMORY_LIMIT', '512M');
Source: https://docs.nosto.com/shopify/styling-options-dynamic-product-cards
# Styling Options - Dynamic Product Cards
## What Dynamic Product Cards are
Our `DynamicCard` Web Component offers a clean, flexible way to render Shopify product cards within Nosto-powered experiences, by fully deferring product markup to Shopify. This is especially useful for merchants who want their storefront's visual identity and product logic to remain unified, whilte still utilising Nosto's Personalization cap/**
* @param {number} n
* @param {number[]} present
* @param {number[]} future
* @param {number[][]} hierarchy
* @param {number} budget
* @return {number}
*/
var maxProfit = function(n, present, future, hierarchy, budget) {
const employeeCount = n;
const budgetLimit = budget;
const budgetStride = budgetLimit + 1;
// Sentinel value for unreachable DP states
const MIN_PROFIT = -1_000_000_000;
// Price arrays (1-indexed by employee ID for convenience)
const presentPrice = newsalesorderID = salesorder.get("salesorder_id");
organizationID = organization.get("organization_id");
invTot = 0.0;
resp = zoho.books.getRecordsByID("Salesorders",organizationID,salesorderID).get("salesorder");
for each invoice in resp.get("invoices")
{
invTot = invTot + invoice.toMap().get("total");
}
balance = salesorder.get("total").toDecimal() - invTot;
updateMap = Map();
updateMap.put("custom_fields",{{"customfield_id":"337859000000099002","value":balance}});
zoho.books.updateRsalesorderID = salesorder.get("salesorder_id");
organizationID = organization.get("organization_id");
updateMap = Map();
updateMap.put("custom_fields",{{"customfield_id":"337859000000099002","value":salesorder.get("total")}});
info zoho.books.updateRecord("Salesorders",organizationID,salesorderID,updateMap);void invokeCRMFunction(int custID)
{
organizationID = "20085137075";
contactResp = zoho.books.getRecordsByID("Contacts",organizationID,custID,"books").get("contact");
zcrmID = contactResp.toMap().get("zcrm_account_id");
paramMap = Map();
paramMap.put("crmID",zcrmID);
paramMap.put("booksCustID",custID);
// info zcrmID;
resp = invokeurl
[
url :"https://www.zohoapis.eu/crm/v2/functions/update_account_pending_amount/actions/execute?auth_type=apikey&zapikey=1003.05128f2623f44bb2f32c77a730