[Powershell] Podman/Docker image clearup

#!/usr/bin/env pwsh
<#
.SYNOPSIS
    Removes outdated podman or docker images, keeping only the newest tag(s) per repository.

.DESCRIPTION
    Groups every tagged image by repository, orders each group by creation date and
    removes everything past the newest -Keep tags. Repositories with a single tag
    (base images such as mcr.microsoft.com/dotnet/sdk) are therefore never touched.

    Images referenced by a container - running or stopped - are always skipped, and
    untagged <none> lefto

Similarweb × Ahrefs × SEMrush 实战教程

# Similarweb × Ahrefs × SEMrush 实战教程

> 面向初学者的完整操作指南 · 以 PetSourcingAgent(B2B 宠物用品代采平台,面向欧美买家)为实战案例
> 最后更新:2026 年 7 月

---

## 第 0 章 · 先建立正确的心智模型

初学者最容易犯的错误,是把这三个工具当成"三个差不多的东西",结果每个都学了一点、每个都不会用。它们其实分工不同,记住下面这句话你就不会迷路:

**Similarweb 帮你看"整个市场和对手长什么样",Ahrefs 帮你把"关键词和外链这两件事做到最深",SEMrush 帮你把"从调研到执行到追踪的全流程串起来"。**

| 工具 | 一句话定位 | 最强的地方 | 在你的 SEO 流程中主要负责 |
|------|-----------|-----------|------------------------|
| **Similarweb** | 市场与流量情报 | 估算任意网站的总流量、流量来源构成、受众画像、行业大盘 | 竞品调研、市场规模判断、找到"真正的对手是谁" |
| **A

1081. Smallest Subsequence of Distinct Characters

Given a string s, return the lexicographically smallest subsequence of s that contains all the distinct characters of s exactly once.
/**
 * @param {string} s
 * @return {string}
 */
var smallestSubsequence = function(s) {
    // Step 1: Record the last index where each character appears
    const lastIndex = {};
    for (let i = 0; i < s.length; i++) {
        lastIndex[s[i]] = i;
    }

    const stack = [];        // will hold the final subsequence
    const used = new Set();  // tracks which characters are already in the stack

    for (let i = 0; i < s.length; i++) {
        const c = s[i];

        // If we've already us

1979. Find Greatest Common Divisor of Array

Given an integer array nums, return the greatest common divisor of the smallest number and largest number in nums. The greatest common divisor of two numbers is the largest positive integer that evenly divides both numbers.
/**
 * @param {number[]} nums
 * @return {number}
 */
var findGCD = function(nums) {
    // Find the smallest number in the array
    let mn = Math.min(...nums);

    // Find the largest number in the array
    let mx = Math.max(...nums);

    // Euclid's algorithm for computing GCD
    const gcd = (a, b) => {
        // Base case: when b becomes 0, a is the GCD
        if (b === 0) return a;

        // Recursive step: compute GCD of (b, a % b)
        return gcd(b, a % b);
    };

    // The p

VIM Tips

Vi Tips

1) Para reemplazar en todo el buffer con nada

:%s/''//ge


2) ^G (control G) Muestra info del buffer

3) :n Pasa al siguiente buffer

4) :N Pasa al buffer anterior

5) Marca una posicion del buffer con una letra

   m Letra  
   Ejemplo: mt 
   Luego presionando t uno va a la posicion donde se puso la marca.

6) Para traducir TABs a espacios poner
   :set expandtab

7) Si la linea no entra en la pantalla porque es muy larga, en vez de mostrarla abajo q continue.

   :set nowrap

8) Par

Promt

I'm learning for Azure Certification AI-200. Summarize the following learning material, but not too short. keep all the relevant terms and explanations. Highlight the most relevant exam points.

 

Python SQL

### SQLAlchemy
- Wrapper used to connect python code to a database via SQL
- `pip install Flask-SQLAlchemy`

### Workflow
- Connect to SQLite database
- Set up a model in Flask app
- Perform basic CRUD operations

### Connecting to SQLite DB
```py
import os # allows to read file paths
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

# set up db
basedir = os.path.abspath(os.path.dirname(__file__))
# __file__ -> when loaded into python, this variable is assigned 
# to the filename 

using cookies to show or hide styles

This uses the javascript api for setting and retrieving cookies. it's an asyc function since retrieving cookies is a task that can delay other scripts? [here's cookieStore API documentation](https://developer.mozilla.org/en-US/docs/Web/API/CookieStore). It uses "use strict" because the cookies weren't being set in mobile devices - if you wanna learn more about strict mode, [see this documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode) the original context was to hide a intro animation on load if the user had visited the page within a week from their first/previous visit date
async function setCookieHomeAnimation() {
  // console.log('setCookieHomeAnimation')
  "use strict";
  let homeShowCookie = await cookieStore.get("homeShowCookie");

  // if cookie exists, hide element (or perform other code)
  if (homeShowCookie) {
    document.getElementById('intro-view').classList.add('hidden');
    return;
  }
  // otherwise, show animation
  document.querySelector('body.home header.banner .text-wrapper').classList.add('intro-show');
  document.querySelector('section.hero > 

3312. Sorted GCD Pair Queries

You are given an integer array nums of length n and an integer array queries. Let gcdPairs denote an array obtained by calculating the GCD of all possible pairs (nums[i], nums[j]), where 0 <= i < j < n, and then sorting these values in ascending order. For each query queries[i], you need to find the element at index queries[i] in gcdPairs. Return an integer array answer, where answer[i] is the value at gcdPairs[queries[i]] for each query. The term gcd(a, b) denotes the greatest common divisor of a and b.
/**
 * @param {number[]} nums
 * @param {number[]} queries
 * @return {number[]}
 */
var gcdValues = function(nums, queries) {

    // The maximum value in nums determines how far we need to compute divisors.
    // Using Math.max(...nums) is CRITICAL — using a fixed 50000 breaks correctness.
    const maxValue = Math.max(...nums);

    // freq[x] = how many times value x appears in nums
    const freq = Array(maxValue + 1).fill(0);
    for (const num of nums) {
        freq[num]++;
    }

    /

Rust Hello, world!

fn main() {
    println!("Hello, world!");
}

kimik3 api key

sk-YrIwXJL3QAImtUYLHvK43mw2J0j8yo68yUVmPcDEox8ox06n

ดูซีรี่ย์ Key to the Phoenix Heart ชะตารักกระดูกปักษา (2026) ซับไทย/พากย์ไทย EP.1-28 จบ (ครบทุกตอน) .

ดูซีรี่ย์ Key to the Phoenix Heart ชะตารักกระดูกปักษา (2026) ซับไทย/พากย์ไทย EP.1-28 จบ (ครบทุกตอน) .
# ดูซีรี่ย์ Key to the Phoenix Heart ชะตารักกระดูกปักษา (2026) ซับไทย/พากย์ไทย EP.1-28 จบ (ครบทุกตอน) .
 
ดูซีรี่ย์ Key to the Phoenix Heart ชะตารักกระดูกปักษา (2026) ซับไทย/พากย์ไทย EP.1-28 จบ  (ครบทุกตอน) .ชวนดู ชะตารักกระดูกปักษา (Key to the Phoenix Heart) เป็นซีรีส์จีนย้อนยุคที่ผสมหลายรสชาติไว้ในเรื่องเดียว ทั้งโรแมนติก ดราม่า การเมือง และการชิงไหวชิงพริบในราชสำ
 
ดูซีรี่ย์ ชะตารักกระดูกปักษา Key to the Phoenix Heart EP.1-28 จบ ซับไทย/พากย์ไทย (ครบทุกตอน) เป็นซีรี่ส์แนวโรแมนติก ดราม่า ย้

IELTS Listennig 3-15

Marshall
592
21
Mornings
restaurant
reference
staff reception
special hut
cantine
training
park
3
dogs
vegetables
rubber boots
telephone number
a 17
f - 18
19-D
C 20
C
C
A
B
A ?
fossil fuel
production values
?
warranty
technology
rare fenomenon
model
invented words

general order
prolonged
Speech therapie
risk factor
sentence
Reading

ai powerd platform

PRD: V1 Agent-Powered Agency Platform

Status: Implemented (V1 prototype)
Project: fabel
Version: 1.1
Last updated: 2026-07-15



1. Problem Statement

Design/development agencies spend significant manual effort on repeatable knowledge work: researching prospects and clients, drafting outreach, composing project briefs, planning technical builds, and QA-ing deliverables. Each of these tasks is well-suited to a specialized AI agent, but ad-hoc scripts and one-off prompts don't compose: outputs ar

research

# React Router v7 + RSC Deep Dive

**Stack:** React Router v7 (unstable RSC Framework Mode) · React 19 (`Suspense`, `use`, `ViewTransition`) · Better Auth · MongoDB Atlas · Mastra.ai RAG agent

**Research date:** 2026-07-15  
**Audience:** Engineers scaffolding a production-shaped app that can also become a multi-post teaching series  
**Status note:** React Router’s RSC APIs are **experimental** (`unstable_*`). Pin versions tightly and re-read release notes on every bump.

---

## Exe

3867. Sum of GCD of Formed Pairs

You are given an integer array nums of length n. Construct an array prefixGcd where for each index i: Let mxi = max(nums[0], nums[1], ..., nums[i]). prefixGcd[i] = gcd(nums[i], mxi). After constructing prefixGcd: Sort prefixGcd in non-decreasing order. Form pairs by taking the smallest unpaired element and the largest unpaired element. Repeat this process until no more pairs can be formed. For each formed pair, compute the gcd of the two elements. If n is odd, the middle element in the prefixGcd array remains unpaired and should be ignored. Return an integer denoting the sum of the GCD values of all formed pairs. The term gcd(a, b) denotes the greatest common divisor of a and b.
/**
 * @param {number[]} nums
 * @return {number}
 */
var gcdSum = function(nums) {
    const n = nums.length;
    const prefixGcd = new Array(n);

    // Running maximum of nums[0..i]
    let mx = 0;

    // Build prefixGcd[i] = gcd(nums[i], max(nums[0..i]))
    for (let i = 0; i < n; i++) {
        mx = Math.max(mx, nums[i]);   // update running maximum
        prefixGcd[i] = gcd(nums[i], mx);  // gcd with current max
    }

    // Sort prefixGcd in non-decreasing order
    prefixGcd.sort((a,