Linux Command Reference

# Linux Command Reference

A categorized reference guide for common Linux/Unix shell commands.

---

## 1. Basic Output & System Info

| Command | Description |
|--------|-------------|
| `echo Hello World` | Prints `Hello World` to the terminal |
| `date` | Displays the current date and time |
| `whoami` | Prints the current logged-in username |

---

## 2. Navigation

| Command | Description |
|--------|-------------|
| `pwd` | Print Working Directory — shows the full path of the current direc

NVM Command Reference

# NVM Command Reference

A reference guide for [NVM (Node Version Manager)](https://github.com/nvm-sh/nvm) — a tool for managing multiple Node.js versions on the same machine.

---

## Installation

```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
```

Downloads and runs the NVM install script via `curl`. After installation, restart your terminal or source your shell config (e.g. `source ~/.bashrc`).

---

## Verify Installation

| Command | Description |
|-

Elasticsearch Commands Reference

# Elasticsearch Commands Reference

> Reference: [Complete Guide to Elasticsearch](https://github.com/codingexplained/complete-guide-to-elasticsearch)

---

## Table of Contents

1. [Cluster & Node Monitoring](#1-cluster--node-monitoring)
2. [Index Management](#2-index-management)
3. [Document CRUD](#3-document-crud)
4. [Scripted Updates](#4-scripted-updates)
5. [Upserts](#5-upserts)
6. [Bulk Operations](#6-bulk-operations)
7. [Multi-Get](#7-multi-get)
8. [Search Queries](#8-search-queries)
9. [

Batcher Generator — Both Implementations

# Batcher Generator — Both Implementations

A private TypeScript generator method that splits an array of string tuples into chunks of a given size. Two implementations exist, each with different trade-offs.

---

## Implementation A — Index-based (`slice`)

```ts
private* batcher(aggs: [string, string][] = [], batchSize: number = 5) {
  let j = 0;
  for (let i = 0; i < aggs.length; i += batchSize) {
    j = i + batchSize;
    yield aggs.slice(i, j);
  }
}
```

### How It Works

1. Iterates over

Performance Measurement — Node.js

# ⏱️ Performance Measurement — Node.js

Utilities for measuring execution time of async service calls using the `perf_hooks` API.

---

## Snippet 1 — Single Call Measurement

Wraps a single async operation to measure its execution time in milliseconds.

```typescript
import { performance } from 'perf_hooks';

const start = performance.now();

// Replace with your async service call
const result = await myService.doSomething(params);

const end = performance.now();
const elapsed = end - start;

Commit Workflow

# Commit Workflow — Toolchain & Execution Flow

> Enforced formatting · Standardized commit messages · Mandatory JIRA traceability

---

## Toolchain Overview

| Tool | Role |
|---|---|
| **Commitizen** (`cz`) | Interactive prompt to build a conventional commit message |
| **@commitlint/cz-commitlint** | Adapter that powers the Commitizen prompt with commitlint rules |
| **Husky** | Manages and runs Git hooks at the right lifecycle points |
| **lint-staged** | Runs Prettier on staged `.ts` files

VS Code Workspace Setup - Windows

# VS Code Workspace Setup

## Prerequisites

Open a Linux terminal and run the following:

```bash
cd projects
nano core-api.code-workspace
```

Paste the following configuration:

```json
{
    "folders": [
        {
            "path": "./core-api"
        }
    ],
    "settings": {
        "terminal.integrated.cwd": "${workspaceFolder}",
        "terminal.integrated.defaultProfile.linux": "bash"
    },
    "remoteAuthority": "wsl+Ubuntu"
}
```

Save and exit: `Ctrl + X` → `Y` → `Enter`

---

(grid)カードレイアウトでボタンを揃える

(参考サイト) https://qiita.com/yosei_ikegami/items/530ab46a3e6d3650b0d7
<div class="card-grid">
  <div class="card">
    <div class="card-header">カードタイトル1</div>
    <div class="card-body">カードの内容がここに入ります。長いテキストでも高さが揃います。長いテキストでも高さが揃います。長いテキストでも高さが揃います。長いテキストでも高さが揃います。</div>
    <div class="card-footer">フッター</div>
  </div>
  
  <div class="card">
    <div class="card-header">カードタイトル2</div>
    <div class="card-body">短い内容</div>
    <div class="card-footer">フッター</div>
  </div>
  
  <div class="card">
    <div class="card-header">カードタイトル3</div>
    <div class="card-body"

【プラグイン】 Peek:ページの途中で上方向にスクロールするとヘッダを上部から表示

(参考サイト) https://coliss.com/articles/build-websites/operation/javascript/headroom-style-scroll-intent-library.html
(Peek)
https://adesignl.github.io/Peek/

フッターを画面最下部に固定(コンテンツ量が少ない状態)

body {
  min-height: 100dvh;
}

footer {
  position: sticky;
  top: 100%;
}

子要素を画面幅いっぱいに表示

(参考サイト) https://zenn.dev/necscat/articles/bc9bba54babaf5
/* 画面幅いっぱいに表示 */
.photo {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
}

/* 画面幅左半分に表示 */
.photo {
  width: 50vw;
  margin-left: calc((50vw - 50%) * -1);
}

/* 画面幅右半分に表示 */
.photo {
  width: 50vw;
  margin-right: -50vw;
}

完全な角丸(大きさによる変化なし)

.button {
  border-radius: 100vmax;
}

左右中央寄せ(横幅指定なし)

(参考サイト) https://zenn.dev/tonkotsuboy_com/articles/css-grid-centering
.parent {
  display: grid;
  place-content: center;
}

3567. Minimum Absolute Difference in Sliding Submatrix

You are given an m x n integer matrix grid and an integer k. For every contiguous k x k submatrix of grid, compute the minimum absolute difference between any two distinct values within that submatrix. Return a 2D array ans of size (m - k + 1) x (n - k + 1), where ans[i][j] is the minimum absolute difference in the submatrix whose top-left corner is (i, j) in grid. Note: If all elements in the submatrix have the same value, the answer will be 0. A submatrix (x1, y1, x2, y2) is a matrix that is formed by choosing all cells matrix[x][y] where x1 <= x <= x2 and y1 <= y <= y2.
/**
 * @param {number[][]} grid
 * @param {number} k
 * @return {number[][]}
 */
var minAbsDiff = function(grid, k) {
    const m = grid.length;
    const n = grid[0].length;

    // The result matrix has (m - k + 1) rows and (n - k + 1) columns,
    // because that's how many k×k windows can slide across the grid.
    const ans = Array.from({ length: m - k + 1 }, () =>
        Array(n - k + 1).fill(0)
    );

    // Slide a k×k window over every valid top-left corner (i, j)
    for (let i = 0; 

LEDController

package com.legendss.backend.controllers;

import com.legendss.backend.entities.LED;
import com.legendss.backend.services.LEDService;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/leds")
@CrossOrigin("*")
public class LEDController {
    private final LEDService ledService;

    public LEDController(LEDService ledService) {
        this.ledService = ledService;
    }

    @GetMapping("/get/color/{id}")
    public LED getLEDColorController(@PathVariable Long

LEDService

package com.legendss.backend.repositories;

import com.legendss.backend.entities.LED;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface LEDRepository extends JpaRepository<LED, Long> {

}