umbrel os

# list all apps 
umbreld client apps.list.query

#stop app
umbreld client apps.stop.mutate --appId appname

#restart app after changing docker-compose.yml
umbreld client apps.restart.mutate --appId appname

umbrel os

# list all apps 
umbreld client apps.list.query

#stop app
umbreld client apps.stop.mutate --appId appname

#restart app after changing docker-compose.yml
umbreld client apps.restart.mutate --appId appname

z-indexが下の要素のクリック判定を検知する

<div class="fixed"></div>
<div class="cards-container">
  <div class="card">
    <h2>Card 1</h2>
  </div>
  <div class="card">
    <h2>Card 2</h2>
  </div>
  <div class="card">
    <h2>Card 3</h2>
  </div>
  <div class="card">
    <h2>Card 4</h2>
  </div>
</div>

Ubuntu Package Manager

# UBUNTU

## PACKAGE MANAGER & PYTHON STUFF

### Understanding PEP 668

For most use, it's recomended to use virtual environements for python apps or library. Online, we have some people saying it's silly and annoying, some saying this is the way !

#### Applications:
Try first with native package manager, `apt install xyz` or 'apt install python3-xyz'
Pipx is strongly recommended for installing applications, i.e., when you will primarily use the installed code from the command line. On Debian s

画像のスクランブル・デスクランブル処理

<canvas id="scrambledCanvas"></canvas>
<canvas id="unscrambledCanvas"></canvas>

暗号化・復号サンプル

/**
 * @fileoverview 暗号化・復号ロジック
 */

// =============================================================================
// 暗号化・復号ロジック
// =============================================================================

/**
 * シーザー暗号による暗号化
 * アルファベット各文字を指定数分後ろにずらして暗号化する古典的換字暗号
 * @param {string} text - 暗号化対象のテキスト
 * @param {number} shift - シフト数(A-Zを何文字分ずらすか)
 * @returns {string} 暗号化されたテキスト
 */
function encryptText(text, shift) {
  return text
    .split("")
    .map((char) => {
      const code = char

オープンリダイレクト脆弱性

/**
 * @fileoverview オープンリダイレクト脆弱性のサンプルコード
 * 脆弱性のあるパターンと検証を行う安全な実装を示す
 */

// =============================================================================
// 脆弱性のあるパターン: ユーザー入力を検証せずにリダイレクト先として使用
// =============================================================================

/**
 * パターン1: URLパラメータを検証なしで使用
 * 問題: 攻撃者が任意のサイトにユーザーを誘導可能
 * 攻撃例: example.com/page?redirect=http://malicious-site.com
 */
function unsafeRedirectFromParams() {
  const urlParams = new URLSearchParams(window.location.sear

Routes - web - laravel


## Verbos HTTP (Los Tipos de Solicitud)

Laravel ofrece métodos expresivos para cada verbo HTTP.

```php
Route::get('/productos', [ProductController::class, 'index']);  // Obtener datos
Route::post('/productos', [ProductController::class, 'store']); // Guardar nuevo
Route::put('/productos/{id}', [ProductController::class, 'update']); // Actualizar completo
Route::patch('/productos/{id}', [ProductController::class, 'updatePartial']); // Actualizar parcial
Route::delete('/productos/{id}', [Produc

3512. Minimum Operations to Make Array Sum Divisible by K

You are given an integer array nums and an integer k. You can perform the following operation any number of times: Select an index i and replace nums[i] with nums[i] - 1. Return the minimum number of operations required to make the sum of the array divisible by k.
/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number}
 */
var minOperations = function(nums, k) {
    // Step 1: Calculate the sum of the array
    let sum = 0;
    for (let num of nums) {
        sum += num;
    }

    // Step 2: Find the remainder when divided by k
    let remainder = sum % k;

    // Step 3: If remainder is 0, sum is already divisible by k
    // Otherwise, we need 'remainder' operations to fix it
    return remainder;
};

TS - Transpiler - Compiler - Interpréter

# Clarification: Compiler - Interprêter - Transpiler

Pour faire simple :
* **Compiler**, c'est traduire vers le **bas** (vers la machine).
* **Transpiler**, c'est traduire **latéralement** (vers un autre langage humain).

## 1. La définition précise
Le terme "Transpilation" est un mot-valise pour **"Transformation + Compilation"**.
On l'appelle aussi **compilation source-à-source**.

Un transpilateur prend le code source d'un langage de haut niveau (ex: TypeScript) et produit le code source d'u

TS - Comparaison avec l'environnement Python



### 1. Node.js ~ Python ? (Oui, mais...)

**La nuance technique :**
* **Python** est à la fois le langage (syntaxe) et l'interprète.
* **Node.js** n'est *pas* le langage. Le langage est **JavaScript** (ou TypeScript).
    * Node.js est un **Runtime** (environnement d'exécution). Il arrache le moteur V8 de Google Chrome (qui exécute le JS dans le navigateur) pour le faire tourner sur un serveur.
    * *Différence clé :* En Python, la "Standard Library" (`os`, `sys`, `json`) est immense et fait 

🐧 cURL - Flags pour l'output

Voici les différents flags possibles pour l'output avec cURL:

### 1. `-o <fichier>` (minuscule : output)
**"Tu décides du nom."**
Tu ordonnes à `curl` d'écrire le contenu téléchargé dans un fichier spécifique que **tu nommes**.
* *Exemple :* `curl -o mon_script.sh https://example.com/install_v4.sh`
* *Résultat :* Crée un fichier `mon_script.sh`.

### 2. `-O` (majuscule : Remote Name)
**"Il garde le nom original."**
Tu dis à `curl` d'écrire le contenu dans un fichier local qui portera **le même 

📜 TypeScript - Installation Robust d'un Environnement Moderne sur Linux (zsh)

# Installation Robuste d'un Environnement TypeScript Moderne (Linux/Zsh)

Ce guide détaille l'installation de Node.js via **NVM** (Node Version Manager) 
et du gestionnaire de paquets **pnpm**.

**Objectif**: Obtenir un environnement de développement isolé dans l'espace 
utilisateur (sans `sudo`), stable et économe en espace disque.

## 1. Nettoyage Préventif
Si une version de Node.js a été installée via le gestionnaire de paquets du 
système (APT), elle:
- est probablement obsolète,
- nécessite

UIScrollView关键公式

# UIScrollView关键公式

![](https://static.dingtalk.com/media/lALPM2acqqOYeCvNAvTNBj4_1598_756.png)

Jupiter Playground

FROM python:alpine
EXPOSE 8888

RUN apk update && apk upgrade
RUN apk add gcc g++ build-base python3-dev musl-dev linux-headers
RUN apk add --no-cache git 

WORKDIR /workspace
COPY requirements.txt .
RUN python3 -m venv .venv && .venv/bin/pip install -r ./requirements.txt && rm -rf requirements.txt

Browser caching in .htaccess in 2025

Browser caching in .htaccess in 2025
## BEGIN EXPIRES CACHING ##
<IfModule mod_expires.c>
	ExpiresActive on

	# Perhaps better to whitelist expires rules? Perhaps.
	ExpiresDefault "access plus 1 year"

	# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
	ExpiresByType text/cache-manifest "access plus 0 seconds"

	# Your document html
	ExpiresByType text/html "access plus 0 seconds"

	# Data
	ExpiresByType text/xml "access plus 0 seconds"
	ExpiresByType application/xml "access plus 0 seconds"
	ExpiresByTyp