FSM Data Migration from ServiceChannel

!Important! Don't judge this code as though it should be optimized. It's not. This process was subject to a number of urgent last minute requirement changes/additions and evolved from the bottom-up into spaghetti. It's not perfectly orchestrated from the top-down, so don't evaluate it in those terms. When reusing any of this code, optimize it from the top-down at that time.
// Modify these start and end variables for the dates you wish to load
var startDate = '2026-02-24';
var endDate = '2026-02-27';
// Optionally use deltaStart when loading work orders to only load records which have been updated since this date
var deltaStart = '2026-02-25';

var gdtStartDate = new GlideDate(startDate);
var gdtEndDate = new GlideDate(endDate);

var daysIncrement = 1;

var startDateCurrent = startDate;
var endDateCurrent = addDays(startDateCurrent, daysIncrement);
var

NodeJS + Redis

services:
  app:
    image: node:20-alpine
    working_dir: /app
    # Si usas package.json, cambia esto a: npm start
    command: sh -c "npm install && node server.js"
    environment:
      - DB_HOST=db
      - DB_USER=${DB_USER:-app_user}
      - DB_PASSWORD=${DB_PASSWORD:-secret}
      - DB_NAME=${DB_NAME:-app_db}
      - REDIS_HOST=redis
      - PORT=80
      - NODE_ENV=${NODE_ENV:-production}
    volumes:
      - app_data:/app
    depends_on:
      - db
      - redis

  db:
    image: mari

Gunicorn + Redis

services:
  app:
    image: python:3.11-slim
    working_dir: /app
    # Instala dependencias y lanza Gunicorn en el puerto 80 con 4 workers
    command: sh -c "pip install --no-cache-dir -r requirements.txt && gunicorn -w 4 -b 0.0.0.0:80 app:app"
    environment:
      - DB_HOST=db
      - DB_USER=${DB_USER:-app_user}
      - DB_PASSWORD=${DB_PASSWORD:-secret}
      - DB_NAME=${DB_NAME:-app_db}
      - REDIS_HOST=redis
      - PYTHONUNBUFFERED=1
    volumes:
      - app_data:/app
    depends_on

ASPNet + Redis

services:
  app:
    image: mcr.microsoft.com/dotnet/sdk:8.0
    working_dir: /app
    # Asume que tienes un archivo .csproj en la raĂ­z del volumen
    command: dotnet run --urls "http://0.0.0.0:80"
    environment:
      - ASPNETCORE_ENVIRONMENT=${ASPNETCORE_ENVIRONMENT:-Production}
      - DB_HOST=db
      - DB_USER=${DB_USER:-app_user}
      - DB_PASSWORD=${DB_PASSWORD:-secret}
      - DB_NAME=${DB_NAME:-app_db}
      - REDIS_HOST=redis
    volumes:
      - app_data:/app
    depends_on:
     

LAMP + Redis

services:
  app:
    image: webdevops/php-apache:8.2
    environment:
      - DB_HOST=db
      - DB_USER=${DB_USER:-lamp_user}
      - DB_PASSWORD=${DB_PASSWORD:-secret}
      - DB_NAME=${DB_NAME:-lamp_db}
      - REDIS_HOST=redis
      - WEB_DOCUMENT_ROOT=${WEB_DOCUMENT_ROOT:-/app}
      - PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT:-256M}
      - PHP_UPLOAD_MAX_FILESIZE=${PHP_UPLOAD_MAX:-50M}
      - PHP_POST_MAX_SIZE=${PHP_UPLOAD_MAX:-50M}
      - PHP_DISPLAY_ERRORS=${PHP_DISPLAY_ERRORS:-0}
      - T

vector db key

al-ln0RebtDf8yq_XlUnSEX9oZtnlidtmVIyOW8NjLnTuE

1356. Sort Integers by The Number of 1 Bits

You are given an integer array arr. Sort the integers in the array in ascending order by the number of 1's in their binary representation and in case of two or more integers have the same number of 1's you have to sort them in ascending order. Return the array after sorting it.
/**
 * @param {number[]} arr
 * @return {number[]}
 */
var sortByBits = function(arr) {
    // Helper: count how many 1-bits are in the binary representation
    function bitCount(n) {
        // Convert to binary string and count '1' characters
        return n.toString(2).split('1').length - 1;
    }

    // Sort using a custom comparator
    return arr.sort((a, b) => {
        const bitsA = bitCount(a);
        const bitsB = bitCount(b);

        // Primary sort: by number of 1-bits
        i

dev stack in ubuntu

#!/usr/bin/env bash
set -euo pipefail

# Installs on Ubuntu:
# - Docker Engine + Compose plugin
# - MongoDB Community Edition (7.0)
# - Redis
# - PostgreSQL
# - nvm (plus latest LTS Node)
# - Astral uv
#
# Usage:
#   chmod +x setup-dev-stack.sh
#   ./setup-dev-stack.sh

if ! command -v apt-get >/dev/null 2>&1; then
  echo "This script supports Ubuntu/Debian systems with apt-get."
  exit 1
fi

if [[ -f /etc/os-release ]]; then
  # shellcheck disable=SC1091
  . /etc/os-release
  if [[ "${ID:-}" !=

openai api key

OPENAI_API_KEY="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"

Prompt to analyze PRs

# Prompt d'Analyse de Pull Requests

## 🎯 Objectif Principal

**Faire ressortir les GROS TRAVAUX** : identifier et mettre en évidence les contributions majeures, les projets de fond et les efforts importants investis sur la période.


## Instructions pour l'IA

Analyse le fichier CSV `[NOM_FICHIER].csv` qui contient mes Pull Requests GitHub et génère un résumé structuré **en mettant l'accent sur les travaux d'envergure**.

Un fichier JSON associé `[NOM_FICHIER_FILES].json` (même préfixe que le C

Fingerprint config doc

# Increasing Fingerprint Retry Attempts on Ubuntu 24.04 (Dell XPS 15 9530)

## Overview

On Ubuntu 24.04, fingerprint authentication is handled through **PAM
(Pluggable Authentication Modules)** and **GDM (GNOME Display
Manager)**.

If you unlock your session using the fingerprint reader (e.g., power
button sensor on Dell XPS 15 9530), the number of allowed fingerprint
attempts can be adjusted by modifying the PAM configuration used by GDM.

------------------------------------------------------

activate gcloud config configuration localy

CLOUDSDK_ACTIVE_CONFIG_NAME=<config_name>
PS: the config name is the one used when run 'gcloud config configuration activate <config_name>' command

Script to fetch PR data from GitHub

"""Export GitHub PRs to CSV.

Exporte toutes les PRs créées par l'utilisateur dans un fichier CSV.

Note:
- Make sure GitHub cli is installed on your machine. Visit https://cli.github.com/ to install it.
- Make sure you are authenticated with GitHub. Run `gh auth login` to authenticate.
- Run the script with:
`poetry run python export_prs_to_csv.py --username <your-username> --output <output-file> --months <number-of-months>`

Examples:
```bash
# Basic usage
poetry run python export_prs_to_csv.p

React TodoList with Redurec

import { createContext, useEffect, useReducer, useState } from "react"
import { NewTodoForm } from "./NewTodoForm"
import "./styles.css"
import { TodoFilterForm } from "./TodoFilterForm"
import { TodoList } from "./TodoList"

const LOCAL_STORAGE_KEY = "TODOS"
const ACTIONS = {
  ADD: "ADD",
  UPDATE: "UPDATE",
  TOGGLE: "TOGGLE",
  DELETE: "DELETE",
}

function reducer(todos, { type, payload }) {
  switch (type) {
    case ACTIONS.ADD:
      return [
        ...todos,
        

Jina api key

JINA_API_KEY="jina_f1b9fd28bbc24908aec83525817ec537o6Uc5Nj8sS3Rxw3oUTLwKsUtJ59E"

🦑 Git - git rebase

# `git rebase` — Référence synthétique

## Principe

Rebase = **ré-appliquer des commits sur une nouvelle base**. Deux usages distincts :

1. **Rebase standard** : déplacer une branche sur la pointe d'une autre (alternative au merge)
2. **Rebase interactif** (`-i`) : réécrire, réordonner, fusionner ou supprimer des commits

---

## 1. Rebase standard — alternative au merge

### Le problème

```
main:      A --- B --- C
                 \
feature:          D --- E
```

`feature` diverge de `main`