Identify event emitter in dev tools

const orig = EventTarget.prototype.dispatchEvent
EventTarget.prototype.dispatchEvent = function(event) {
  if (event.type === 'event:name') {
    console.trace('Dispatched:', event.type, 'on', this)
  }
  return orig.call(this, event)
}

b2b-order-information v11

// /b2b-order-confirmation.js
import wixLocation from 'wix-location';
import { session } from 'wix-storage-frontend';
import { getOrderLogData } from 'backend/b2bCheckout.jsw';

const DEBUG = true;
function clog(...a){ if (DEBUG) console.log('[b2b-order-confirmation]', ...a); }
function cerr(...a){ console.error('[b2b-order-confirmation]', ...a); }

// Unterstützt sowohl TextBox (#logTextBox.value) als auch Text-Element (#logTextBox.text)
function setLog(msg) {
  const el = /** @type 

b2b-checkout v11

// /b2b-checkout.js
import wixLocation from 'wix-location';
import { session } from 'wix-storage-frontend';
import { computeDiscount } from 'public/discount.js';
// Optional: weiterhin für Anzeige, Checkout/Order bleibt im Backend:
import { calculateShipping } from 'backend/shipping.web.js';
import { getMemberCheckoutProfile, getCheckoutView, placeOrderFromCheckout } from 'backend/b2bCheckout.jsw';
import { loadB2BCart } from 'backend/b2bCartStorage.jsw';

const TAX_RATE = 0.10;
const 

b2b-cart v11

// /b2b-cart.js
import { session } from 'wix-storage-frontend';
import wixLocation from 'wix-location';
import { loadB2BCart, saveB2BCart } from 'backend/b2bCartStorage.jsw';
// Optional: Wenn du deine Versandberechnung behalten willst, kannst du sie hier weiterverwenden.
// Achte nur darauf, dass Checkout/Order ausschließlich wix-ecom-backend nutzt.
import { calculateShipping } from 'backend/shipping.web.js';
import { computeDiscount } from 'public/discount.js';
import { createCheckoutF

b2bCheckout.jsw v11

/**************************************
 * backend/b2bCheckout.jsw (klassisch) *
 *************************************/

import { checkout, orders, orderTransactions } from 'wix-ecom-backend';
import wixData from 'wix-data';
import { currentMember } from 'wix-members-backend';
import { contacts } from 'wix-crm-backend';
import { elevate } from 'wix-auth'; // ⬅️ NEU

// ⬆️ Elevated Kopien der restriktiven Methoden:
const createCheckoutElev = elevate(checkout.createCheckout);
const ge

⛁ Concepts Avancés Kimball - Référence Rapide

# Concepts Avancés Kimball - Référence Rapide

**Objectif :** Guide des concepts non présents dans Skill V1 PURE  
**Usage :** Référence pour savoir QUAND enrichir la Skill  
**Date :** 4 Novembre 2024

---

## Table des Matières

1. [Factless Fact Tables](#1-factless-fact-tables)
2. [Bridge Tables (Many-to-Many)](#2-bridge-tables-many-to-many)
3. [Conformed Dimensions](#3-conformed-dimensions)
4. [SCD Type 4 (Mini-Dimension)](#4-scd-type-4-mini-dimension)
5. [SCD Type 6 (Hybride)]

⛁ Data Marts & Kimball Methodology

# Crash Course : Data Marts & Kimball Methodology

**Durée estimée :** 30-40 minutes de lecture active  
**Objectif :** Comprendre les fondamentaux pour utiliser intelligemment la Skill  
**Date :** 4 Novembre 2024

---

## Table des Matières

1. [Pourquoi Data Marts ?](#1-pourquoi-data-marts)
2. [Kimball : Les 5 Principes](#2-kimball--les-5-principes-fondamentaux)
3. [Fact vs Dimension Tables](#3-fact-tables-vs-dimension-tables)
4. [Les 3 Types de Fact Tables](#4-les-3-types-de-fac

iOS开发:UI问题排查

# iOS开发:UI问题排查
- ## 是否在主线程更新UI
- ## 是否在正确的时机初始化UI,比如是否在viewDidLoad方法

Component Based Servicing Remediation Process

# Component Based Servicing Remediation Process

1. Scan/Repair COMPONENTS registry corruption (Get-CBSRegistryStatus)
2. Revert pending actions (/revertpendingactions)
3. Reboot
4. Start Component Cleanup (/startcomponentcleanup)
5. Start Component Cleanup and Reset Base (/startcomponentcleanup /resetbase)
6. [Loop - Start]
7. RestoreHealth (/restorehealth)
8. Scan/Repair WinSxS file system contents (SFC/DISM/Get-BrokenComponent)
9. Get files
10. Restore manifest files
11. Restore WinSxS files

eks


```
aws eks update-kubeconfig --region us-east-2 --name meda-eks-qa-cluster-wallet-v1
```

Rutas Dinamicas Anidadas

# Rutas Dinamicas Anidadas

Como crear rutas dinamicas anidadas:

**1 - Creamos las rutas en el app routes:** imaginemos que queremos la siguiente
ruta: `/products/1/review/2`

![](https://cdn.cacher.io/attachments/u/3et4fzjwu3jo7/ricHp98irNLppl3jCZD814DQFgvRfWmj/ufdclwj8c.png)

```js
export default async function ProductReview({params}: {
  params: Promise<{ productId: string, reviewId: string }>;
}) {
  const {productId, reviewId} = await params;

  return (
    <h1>This is the review {reviewI

Project planning custom LLM commands

---
description: Interactive planning session for creating a PRD from {{project-highlevel}}.
---

You are an experienced product manager whose task is to help create a comprehensive Product Requirements Document (PRD) based on the provided information. Your goal is to generate a list of questions and recommendations that will be used in subsequent prompting to create a complete PRD.

Please carefully review the following information:

<project_description>
{{project-highlevel}}
</proje

dynamic routes

# Rutas Dinámicas:

Las rutas dinámicas se utilizan con los parámetros de la URL:

En este ejemplo: tenemos la ruta **/products/productId**

![](https://cdn.cacher.io/attachments/u/3et4fzjwu3jo7/wSxliXsZ0bX5frMbScXjU_MPgFeJVNbB/nepmp2w4u.png)

En la página de `productId` usamos el parámetro que llega desde la URL para llamar
registros dinamicamente.

La función debe ser `async` y debemos recibir el prop `params`, este prop es
de tipo promesa.
```tsx
export default async function ProductDetail({p

1578. Minimum Time to Make Rope Colorful

Alice has n balloons arranged on a rope. You are given a 0-indexed string colors where colors[i] is the color of the ith balloon. Alice wants the rope to be colorful. She does not want two consecutive balloons to be of the same color, so she asks Bob for help. Bob can remove some balloons from the rope to make it colorful. You are given a 0-indexed integer array neededTime where neededTime[i] is the time (in seconds) that Bob needs to remove the ith balloon from the rope. Return the minimum time Bob needs to make the rope colorful.
/**
 * Removes balloons to ensure no two adjacent balloons have the same color,
 * minimizing the total removal time.
 *
 * @param {string} colors - A string where each character represents a balloon's color.
 * @param {number[]} neededTime - An array where each element is the time to remove the corresponding balloon.
 * @return {number} - The minimum total time to remove balloons to satisfy the condition.
 */
var minCost = function(colors, neededTime) {
    let totalTime = 0; // Total time to r

expo remote update

# eas update --channel [channel] --message "Description of your update"
# When you run `eas update --channel qa`, it publishes your current local working directory** to the QA channel, including the variables set on .env!!
# CLEAR CACHE is abosolute fundamental!!!!
eas update --channel qa --message "Description of your update" --clear-cache



Card

console.table(new hire({
  "name": "Arthur Janson",
  "role": "Software Developer",
  "skills": ["js", "html", "css", "json", "php", "sql"],
  "url": "https:\/\/linkedin.com\/in\/iegik"
}));
function hire ($ = {}) {
  setTimeout(() => hire.d.invite(), 300);
  if (hire.d) return hire.d;
    Object.assign(hire.d = this, $, { invite(){
      location.href = hire.d.url } });
}