i18n - Localization

LANGUAGE_CODE = "en"
USE_I18N = True

LOCALE_PATHS = [
    BASE_DIR / "locale",
]

# Settings for PerAppLanguageMiddleware
HEBREW_LANGUAGE_APPS = [
    "fbi",
]

ENGLISH_LANGUAGE_APPS = [
    "admin",
    "api",
]

RTL_LANGUAGE_APPS = [
    "fbi",
]

LTR_LANGUAGE_APPS = [
    "admin",
]

# to use the direction in html template:
# <body dir="{{ request.TEXT_DIRECTION }}">

DEFAULT_TEXT_DIRECTION = "ltr"

# Optional (if omitted, LANGUAGE_CODE will be used)
PER_APP_LA

new prompts

you are a world class javascript engineer , who has been razer focued on the intigration of ai into the applications and experiances that you build. mostly because you love to do that kind of bleeding edge work , the fact that it pays well holds no bearing to you, you do it because you love it and your good at it, no you are better than good at it. you are the absolute freeking best. people wait for your blog posts to come out, when you speak at conferences they sell out, fast! But those are nic

VueJS - Post Listing with Create, View, Edit

<script setup lang="ts">
import { Form, Link } from '@inertiajs/vue3';
import type { ComputedRef } from 'vue';
import { inject, ref } from 'vue';
import {
    index,
    show,
    store,
    update,
} from '@/actions/App/Http/Controllers/PostController';
import InputError from '@/components/InputError.vue';
import Modal from '@/components/Modal.vue';
import Pagination from '@/components/Pagination.vue';
import { Button } from '@/components/ui/button';
import { Input } from '@/compo

VueJS - Watch

  const perform = useDebounceFn(() => {
      router.get(
          url,
          { search: search.value },
          {
              preserveState: true,
              replace: true,
              ...(only.length > 0 && { only }),
          },
      );
  }, delay);

  watch(search, perform);

Githubリポジトリ作成時チェックリスト

# GitHub リポジトリ初期セットアップチェックリスト

## リポジトリ設定

- [ ] ブランチ保護ルールを設定(main への直 push 禁止、レビュー必須など)
- [ ] マージ後のブランチ自動削除を有効化(Settings → General → Automatically delete head branches)

## ブランチ戦略

- [ ] ブランチ運用ルールの策定と共有

> **例:Git-flow**
>
> | ブランチ | 用途 |
> |---|---|
> | `main` | 本番リリース用。常にデプロイ可能な状態 |
> | `develop` | 開発統合ブランチ。次リリースの最新状態 |
> | `feature/*` | 機能開発。develop から切って develop へマージ |
> | `release/*` | リリース準備。develop から切って main + develop へマージ |
> | `hotfix/*` | 緊急修正。main から切って main + develop へマージ |

## アクセ

Composable - Search

import { router } from '@inertiajs/vue3';
import { useDebounceFn } from '@vueuse/core';
import type { Ref } from 'vue';
import { ref, watch } from 'vue';

export function useSearch(url: string, options: { initial?: string; delay?: number; only?: string[] } = {}) {
    const { initial = '', delay = 300, only = [] } = options;

    const search: Ref<string> = ref(initial);

    const perform = useDebounceFn(() => {
        router.get(
            url,
            { search: search.valu

VueJS - Form (Portable / Inertia)

<Form
    :action="PostRoutes.store()"
    method="post"
    reset-on-success
    v-slot="{ errors, processing }"
    class="flex flex-col gap-4"
    @success="isCreateOpen = false"
>
    <div class="grid gap-2">
        <Label for="title">Title</Label>
        <Input
            id="title"
            name="title"
            type="text"
            required
            autofocus
            placeholder="Post title"
        />
        <InputError :message="errors.title" />
  

VueJS - Routes (Portable / Inertia)

type PostResource = { id: number };

export const PostRoutes = {
    index: (): string => '/posts',
    show: (post: PostResource | number): string => `/posts/${typeof post === 'number' ? post : post.id}`,
    store: (): string => '/posts',
    update: (post: PostResource | number): string => `/posts/${typeof post === 'number' ? post : post.id}`,
    destroy: (post: PostResource | number): string => `/posts/${typeof post === 'number' ? post : post.id}`,
} as const;

FrontEnd - Pagination Usage

<script setup lang="ts">
import { Form, Link, router } from '@inertiajs/vue3';
import { useDebounceFn } from '@vueuse/core';
import { ref, watch } from 'vue';
import {
    index,
    show,
    store,
    update,
} from '@/actions/App/Http/Controllers/PostController';
import InputError from '@/components/InputError.vue';
import Modal from '@/components/Modal.vue';
import Pagination from '@/components/Pagination.vue';
import { Button } from '@/components/ui/button';
import { Input } 

FrontEnd - TS Interfaces

export * from './pagination';
export * from './post';

Domain Registrars

TRANSFER
• Go to current registrar and unlock domain
• Get authorization code

WordPress - https://wordpress.com/domains/
• Free transfer
• $13 per yr
• Free privacy protection
• Email plugin $35 per yr

GoDaddy - https://www.godaddy.com/offers/domain
• .01 for first year with 3 year registration + Free Transfer (a $22.99 value).
Save $22.98 (Pay $45.99 today).
• $4.99 first year / $22.99 each year after

NameCheap - https://www.namecheap.com/domains/
• $11.28 for transfer
• $11.28 per yr
• Free

3653. XOR After Range Multiplication Queries I

You are given an integer array nums of length n and a 2D integer array queries of size q, where queries[i] = [li, ri, ki, vi]. For each query, you must apply the following operations in order: Set idx = li. While idx <= ri: Update: nums[idx] = (nums[idx] * vi) % (109 + 7) Set idx += ki. Return the bitwise XOR of all elements in nums after processing all queries.
/**
 * @param {number[]} nums
 * @param {number[][]} queries
 * @return {number}
 */
var xorAfterQueries = function(nums, queries) {
    const MOD = 1_000_000_007;

    for (const [l, r, k, v] of queries) {
        let idx = l;
        while (idx <= r) {
            nums[idx] = (nums[idx] * v) % MOD;
            idx += k;
        }
    }

    // Compute XOR of all elements
    let ans = 0;
    for (const x of nums) ans ^= x;
    return ans;
};

Design systems

- Uber https://zeroheight.com/6d2425e9f/p/294ab4-base-design-system
- Mailchimp https://designsystems.surf/design-systems/mailchimp

2069. Walking Robot Simulation II

A width x height grid is on an XY-plane with the bottom-left cell at (0, 0) and the top-right cell at (width - 1, height - 1). The grid is aligned with the four cardinal directions ("North", "East", "South", and "West"). A robot is initially at cell (0, 0) facing direction "East". The robot can be instructed to move for a specific number of steps. For each step, it does the following. Attempts to move forward one cell in the direction it is facing. If the cell the robot is moving to is out of bounds, the robot instead turns 90 degrees counterclockwise and retries the step. After the robot finishes moving the number of steps required, it stops and awaits the next instruction. Implement the Robot class: Robot(int width, int height) Initializes the width x height grid with the robot at (0, 0) facing "East". void step(int num) Instructs the robot to move forward num steps. int[] getPos() Returns the current cell the robot is at, as an array of length 2, [x, y]. String getDir() Returns the current direction of the robot, "North", "East", "South", or "West".
/**
 * @param {number} width
 * @param {number} height
 */
var Robot = function(width, height) {
    this.w = width;
    this.h = height;

    // Perimeter length
    this.P = 2 * (width + height) - 4;

    // Precompute perimeter path
    this.path = [];

    // 1. Bottom edge (east)
    for (let x = 0; x < width; x++) {
        this.path.push([x, 0, "East"]);
    }

    // 2. Right edge (north)
    for (let y = 1; y < height; y++) {
        this.path.push([width - 1, y, "North"]);
    }

    /

ORCL - Mémoire

COL area           FORMAT A6
COL metric         FORMAT A35
COL metric_value   FORMAT A20
COL interpretation FORMAT A70

WITH
pga AS (
  SELECT
    MAX(CASE WHEN name = 'aggregate PGA target parameter' THEN value END) AS pga_target,
    MAX(CASE WHEN name = 'total PGA allocated'            THEN value END) AS pga_alloc,
    MAX(CASE WHEN name = 'maximum PGA allocated'          THEN value END) AS pga_max,
    MAX(CASE WHEN name = 'cache hit percentage'           THEN value END) AS pga_hi

C1 U19

to yield = Vorfahrt gewähren, 
to attribute
frank (=honest) vs outspoken (can't hold back)
bright=smart is only about kids? NO! Also adult
in respect of
hold back


It's gone pear shaped.
shit (poop) just hit the fan

rote learning

there is more than one to skin a cat

H
personality tipes
some ty
reserved
agreeableness
data

average