複数行の下線が流れるアニメーション

  .ly_form_section_inner_content_border_wrap_text_link {
    position: relative;
    display: inline;
    background-image: linear-gradient(var(--blue-color), var(--blue-color));
    background-position: 100% 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size 0.3s;
    padding-bottom: 2px; /* テキストと下線の間隔を調整 */
  }

  .ly_form_section_inner_content_border_wrap_text_link:hover {
    background-size: 100% 1px;
    background-position: 0 100%;
  }

setIntervalは実行後に時間間隔を変更できない

// setIntervalの場合
let intervalTime = 1000;
const intervalId = setInterval(() => {
  console.log(`インターバル`);
  // 変数は上書きされているが、setIntervalが呼び出された後に変更しても時間間隔は変わらない
  intervalTime = 2000;
}, intervalTime);

// setTimeoutの場合
let timeoutTime = 1000;
const timeoutLoop = () => {
  console.log(`タイムアウト`);
  // setTimeoutでは時間感覚を変更できる
  timeoutTime = 5000;
  setTimeout(timeoutLoop, timeoutTime);
};

// 最初のループを開始
setTimeout(timeoutLoop, timeoutTime);

1684. Count the Number of Consistent Strings

You are given a string allowed consisting of distinct characters and an array of strings words. A string is consistent if all characters in the string appear in the string allowed. Return the number of consistent strings in the array words.
/**
 * @param {string} allowed
 * @param {string[]} words
 * @return {number}
 */
var countConsistentStrings = function(allowed, words) {
    // Create a set of allowed characters for quick lookup
    const allowedSet = new Set(allowed);

    // Initialize the count of consistent strings
    let consistentCount = 0;

    // Iterate through each word in the words array
    for (const word of words) {
        // Assume the word is consistent
        let isConsistent = true;

        // Check each 

Global Footer Fragment

<mvt:if expr="ISNULL g.Session:shadows:checkout_hidden">
    <mvt:fragment code="global_footer" />
</mvt:if>

Global Header Fragment

<mvt:if expr="ISNULL g.Session:shadows:checkout_hidden">
    <mvt:fragment code="global_header" />
</mvt:if>

LLM - Files associated with a HF Model

### Files Downloaded for LLMs and Embeddings Models

When you load an LLM or an embeddings model using the `AutoModel` class, several key files are downloaded. The new Hugging Face cache structure places these files in specific directories under `~/.cache/huggingface/hub/`.

Here’s a breakdown of the files and their locations:

1. **Model Weights (`pytorch_model.bin` or `tf_model.h5`)**:
   - This file contains the pre-trained weights for the model.
   - **Location**:
     ```
     ~/.

LLM - Tokenizer Under the Hood

### Tokenizer Files Downloaded

When you load a tokenizer using `AutoTokenizer` from the Hugging Face `transformers` library, several files are downloaded to support tokenization. These files are essential for ensuring that the input text is processed in the same way the model was trained. 

Here's a list of typical files downloaded and their locations in the new cache structure:

1. **Tokenizer Configuration (`tokenizer_config.json`)**:
   - This file contains information about how the t

BankMidBatchProcessor_LatestWorkingVersionFullBackup

// Author   : Jay Daltrey
// Title    : BankMidBatchProcessor
// Method Purpose : Process bank accounts to create or update MID Banking records

public class BankMidBatchProcessor implements Database.Batchable<SObject>, Database.Stateful {
    
    private Map<String, Id> masterBankAccountMap;
    private List<MID_Banking__c> midBankingList = new List<MID_Banking__c>();
    private List<Banking__c> nonMasterBankListToUpdate = new List<Banking__c>();
    
    public Database.QueryLocato

Files - Iterating on many files within folder

To open files with an iterator from a given folder in Python, you can use the `os` or `pathlib` libraries to list the files in the folder and then use an iterator to process them one by one. Here's an example using both approaches.

### Approach 1: Using `os` and a generator

```python
import os

def file_iterator(folder_path):
    for filename in os.listdir(folder_path):
        file_path = os.path.join(folder_path, filename)
        if os.path.isfile(file_path):
            with open(file_path

Clickable-parent

%root% {
  position: relative;
}

%root%__heading a::after {
  content: '';
  position: absolute;
  inset: 0;
  display: flex;
  z-index: 1;
}

GCP - Cloud Shell - `gsutils`

Here’s a concise, pedagogical overview of the **5 most fundamental uses of `gsutil`**, with clear explanations of how each command is typically used:

### 1. **Copy files (`cp`)**
   - **Command:** `gsutil cp [source] [destination]`
   - **What it does:** Copies files between your local machine and Google Cloud Storage (GCS), or between two locations in GCS.
   - **Example:** 
     ```bash
     # Copy a file from local machine to GCS
     gsutil cp ./file.txt gs://my-bucket/folder/file.txt
     

Linux - Check Memory Usage

To check basic memory usage on a Linux system, you can use the following commands:

1. **`free` command:**
   This is the most common command to check memory usage.
   ```bash
   free -h
   ```
   The `-h` option shows the output in human-readable format (MB, GB).

   Example output:
   ```
                 total        used        free      shared  buff/cache   available
   Mem:           15Gi       2.3Gi        9.7Gi      120Mi      3.1Gi         12Gi
   Swap:          2.0Gi      0.0Ki        

OS - Check OS

You can check the hosting operating system within a shell by using any of the following commands, depending on the system you're working on:

### For Linux or macOS:
1. **Basic OS Information:**
   ```bash
   uname -a
   ```
   This shows general system information, including the OS name, kernel version, and more.

2. **OS Version:**
   ```bash
   cat /etc/os-release
   ```
   This will give you detailed information about the operating system version and distribution (for Linux).

3. **Kernel Ve

VertexAI - Embeddings (Without LangChain)

[**Corresponding Doc**](https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text-embeddings-api?hl=fr#python)
PROJECT_ID = PROJECT_ID
REGION = "europe-west1"
MODEL_ID = MODEL_ID

import vertexai
from vertexai.language_models import TextEmbeddingModel

vertexai.init(project=PROJECT_ID, location=REGION)

model = TextEmbeddingModel.from_pretrained(MODEL_ID)
embeddings = model.get_embeddings(...)

LLM- Randomness in Embeddings and Retrieval Steps

☝️ There is some level of randomness involved in both the embedding and retrieval steps of a RAG (Retrieval-Augmented Generation) model, but the randomness can be controlled or reduced, depending on how the system is set up. Let me break it down step by step:

### 1. **Embedding Step**
In this step, the input (like a question or text) is transformed into a vector representation using an embedding model. This process is usually deterministic, meaning that for the same input, the same embedding

Find matching string from stored procedure

SELECT 
  OBJECT_NAME(object_id) AS name
  OBJECT_DEFINITION(object_id) AS Body
FROM
  sys.procedures
WHERE   
  OBJECT_DEFINITION(object_id) LIKE '%ALEX%'
  
SELECT * FROM DOCVIEWER.INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
AND LEFT (ROUTINE_NAME, 3) IN ('sp_','usp_','usp')