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`

🦑 Git - git diff

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

## Principe

`git diff` compare deux états. Tout l'enjeu est de savoir **quels deux états** tu compares.

---

## Les 3 comparaisons fondamentales

| Commande | Compare quoi → avec quoi | Question à laquelle ça répond |
|---|---|---|
| `git diff` | Working dir → Staging | "Qu'est-ce que j'ai modifié mais **pas encore stagé** ?" |
| `git diff --staged` | Staging → Dernier commit (HEAD) | "Qu'est-ce que j'ai stagé et qui **entrera dans mon prochain commit** ?"

ブロックエディター 見出しレベルを設定

// ==============================================
// 見出しレベル設定
//==============================================
function example_modify_heading_levels_globally($args, $block_type)
{

	if ('core/heading' !== $block_type) {
		return $args;
	}

	// H2,H3,H4,H5のみ
	$args['attributes']['levelOptions']['default'] = [2, 3, 4, 5];

	return $args;
}
add_filter('register_block_type_args', 'example_modify_heading_levels_globally', 10, 2);

videoタグ 属性 オプション

controls コントロールパネルを表示する<br> autoplay 動画の自動再生を有効にする<br> muted 動画に含まれる音声を消す<br> playsinline 動画のインライン再生を有効にする<br> →iOSで全画面表示をさせずに動画を再生させたい場合に設定する preload 動画ファイルを事前に読み込むかどうかを設定する<br>  none 事前に動画ファイルを読み込まない(再生ボタンを押した際に読み込みを開始する)<br>  metadata 動画のメタデータ (長さやサイズなど) のみ事前に読み込む<br>  auto(初期値) 動画ファイルを事前に読み込む<br> poster 動画が読み込まれている間に表示する画像を指定する<br>
<video controls autoplay muted playsinline preload="none" poster="thumbnail.jpg">
  <source src="" type="video/mp4">
</video>

PC Repair Website Template

<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <title>Untitled</title>
      <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css">

<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.0.2/css/bootstrap.min.css'><link rel="stylesheet" href="./style.css">

  </head>
    
  <bo

get every digit of a num

vector<int> digits;
while (n){
	digits.push_back(n % 10);
	n /= 10;
}

benchmark count execute time

void benchmark(const string &name, const auto &func) {
  auto start = chrono::high_resolution_clock::now();
  func();
  auto end = chrono::high_resolution_clock::now();
  auto duration = chrono::duration_cast<chrono::milliseconds>(end - start);
  cout << format("{} execution time: {} ms\n", name, duration.count());
}