539. Minimum Time Difference

Given a list of 24-hour clock time points in "HH:MM" format, return the minimum minutes difference between any two time-points in the list.
/**
 * @param {string[]} timePoints
 * @return {number}
 */
var findMinDifference = function(timePoints) {
    // Helper function to convert "HH:MM" time format to minutes since midnight
    const timeToMinutes = (time) => {
        const [hours, minutes] = time.split(":").map(Number);
        return hours * 60 + minutes; // Convert hours to minutes and add the minutes
    };

    // Step 1: Convert each time point to its corresponding minutes since midnight
    const minutesArray = timePoints.m

Application by Content ID

declare @ContentID varchar (100) = 'Content_87e243b6-960d-4efe-ac89-d4f211b4277b'
select * from v_Content where Content_UniqueID = @ContentID
select * from v_Package where PackageID = (select PkgID from v_Content where Content_UniqueID = @ContentID)

regexp utils js

/**
 * @version 16.09.2024
 * import { getClearPhone } from "/src/utils/regexp.js"
 */
export function getClearPhone(str) {
  return str.replace(/[^+0-9]/g, "")
}

🚧 TO DO

- Chercher une méthode pour réaliser de gros exports de données du local vers un 
bucket Cloud Storage

Perspective Hover Images with Lightbox

Add some images, and have the cursor mouse-over change the perspective. Neat lil interactivity. Includes Glightbox for image click. [eg: https://jam.dev/c/b96a8557-bddb-4c5e-9134-5628cfb06a22]
<div class="pp-home-about-us animate-in">
   <div class="meta-side">{{Module.FieldValues.Copy}}</div>
   <ul class="images-list">
      {% for Item in List.Items %}
      <li class="hover-img">
         <a href="{{Item.FieldValues.Image.Src}}" data-glightbox="title: {{Item.FieldValues.Image.Alt}}" class="glightbox" data-gallery="gallery-{{ Matrix.MatrixId }}">
            <img class="lazyimg" data-src="{{Item.FieldValues.Image.Src}}" alt="{{Item.FieldValues.Image.Alt}}">
         </a>
  

Perspective Hover Images with Lightbox

Add some images, and have the cursor mouse-over change the perspective. Neat lil interactivity. Includes Glightbox for image click. [eg: https://jam.dev/c/b96a8557-bddb-4c5e-9134-5628cfb06a22]
<div class="pp-home-about-us animate-in">
   <div class="meta-side">{{Module.FieldValues.Copy}}</div>
   <ul class="images-list">
      {% for Item in List.Items %}
      <li class="hover-img">
         <a href="{{Item.FieldValues.Image.Src}}" data-glightbox="title: {{Item.FieldValues.Image.Alt}}" class="glightbox" data-gallery="gallery-{{ Matrix.MatrixId }}">
            <img class="lazyimg" data-src="{{Item.FieldValues.Image.Src}}" alt="{{Item.FieldValues.Image.Alt}}">
         </a>
  

GCP - IAM

## Different Types of Identities in Google Cloud
### Predifined
### Custom
### Basic
- Owner
- Editor
- Viewer

> ☝️ **NOTE**
> - **Powerful and convenient for a development environment**, 
> - **shouldn't be considered in production**.

Google Cloud is really good at suggesting relevant, fine-grained permissions.

## View Predifined Roles and Permissions in Google Cloud
You can see them launching the IAM service.

> **VIEW BY PRINCIPALS** (default)

Identities are referred to as *"Principals"*

親要素の幅を超えて画面いっぱいに単色背景

(参考サイト) https://www.tak-dcxi.com/article/summary-of-css-techniques-posted-on-x-in-june-2024/
section {
  --_background: #1c1c1c;

  border-image: linear-gradient(var(--_background) 0 0) fill 0 / /0 100lvi;
}

(フォーム)テキストエリア自動拡張

(参考サイト) https://www.tak-dcxi.com/article/summary-of-css-techniques-posted-on-x-in-june-2024/
textarea {
  --_min-rows: 5; /* デフォルトの行数 */
  --_max-rows: 20; /* 最大行数 */
  --_padding: 1em;

  box-sizing: border-box;
  inline-size: 100%;
  min-block-size: calc(var(--_min-rows) * 1lh + var(--_padding) * 2);
  max-block-size: calc(var(--_max-rows) * 1lh + var(--_padding) * 2);
  padding: var(--_padding);
  field-sizing: content;

  @supports (field-sizing: content) {
    resize: none; /* field-sizing有効時にはリサイズ機能を無効にする */
  }
}

(雛形・grid)トップ新着デザイン

(参考サイト) https://www.tak-dcxi.com/article/summary-of-css-techniques-posted-on-x-in-june-2024/
<div class="input-group">
  <label>
    <input type="radio" name="display" value="flex" />
    display: flex
  </label>
  <label>
    <input type="radio" name="display" value="grid" checked />
    display: grid
  </label>
</div>

<ul>
  <li>
    <p class="date">2024.05.31</p>
    <p class="category">Markup</p>
    <p class="title">input[type="checkbox"]要素のswitch属性を使用したスイッチUIの実装例</p>
  </li>
  <li>
    <p class="date">2024.05.29</p>
    <p class="category">Coding Techniques</p>
    <p class="titl

テキスト中央寄せ(複数行は均等に折り返し・見出し専用・英語)

(参考サイト) https://www.tak-dcxi.com/article/summary-of-css-techniques-posted-on-x-in-june-2024/ (留意事項) text-wrap:balanceはバランスを取るために処理負荷がかかるため、数行(環境によってバラツキあり、Chromeでは6行以下)のテキストブロックにのみ対応
h1 {
  text-align: center;
  text-wrap: balance;
}

テキスト中央寄せ(複数行は左寄せ・日本語)

(参考サイト) https://www.tak-dcxi.com/article/summary-of-css-techniques-posted-on-x-in-june-2024/
h1 {
  inline-size: fit-content;
  margin-inline: auto;
}

GCP - Colab Enterprise VS Vertex AI Workbench

There are a few changes when working with Colab Enterprise compared to Vertex AI Workbench, particularly in how authentication and environment setup are handled.

## Key Differences and Changes

1. **Authentication Setup**:
   - **Vertex AI Workbench**: Provides built-in authentication via the default service account associated with the notebook instance. This allows seamless access to Google Cloud services (like GCS) without additional setup.
   - **Colab Enterprise**: You'll need to hand

GCP - 🗒️ Object Storage in Google Cloud

# When to Use Cloud Storage?
## Cloud Native Applications
Sharing large amounts of data between applications
## Analytics and Machine Learning
- Complimentary to database storage
- Storing data to preprocess it later
- Machine learning may require large amounts of data
## Backup and Archive
- Long-term storage of logs for example
- We like to have a low-cost storage service
## Media
- Can be very large and hence be expensive to store
- Convenient to access media without needing a specific servic

1371. Find the Longest Substring Containing Vowels in Even Counts

Given the string s, return the size of the longest substring containing each vowel an even number of times. That is, 'a', 'e', 'i', 'o', and 'u' must appear an even number of times.
/**
 * @param {string} s
 * @return {number}
 */
var findTheLongestSubstring = function(s) {
    // Initialize the bitmask and result variables
    let bitmask = 0; // This will track the parity (even/odd) of vowels using 5 bits.
    let maxLength = 0; // This will store the longest valid substring length.

    // Create a map to store the first occurrence of each bitmask state.
    let map = {0: -1}; // Starting bitmask 0 means all vowels have appeared an even number of times.

    // Iterate o