win10 输入wsl报错:不支持该请求

# win10 输入`wsl`报错:不支持该请求

# 解决:
- `控制面板` -> `程序和功能` -> `启用或关闭Windows功能` 勾选`虚拟机平台`和`适用于Linux的Windows子系统`

Github Actions报错:remote: Permission to nomeqc/naiveproxy-server-build.git denied to github-actions[bot].

## Github Actions报错:remote: Permission to nomeqc/naiveproxy-server-build.git denied to github-actions[bot].
- **解决:**
在仓库首页:
 `Settings` -> `Actions` -> `General` -> `Workflow permissions` -> 
`Read and write permissions`

NAV2016 to Cloud

#modules
Import-module "${env:ProgramFiles}\Microsoft Dynamics NAV\90\Service\NavAdminTool.ps1”


#global vars
$username = 'user1'
$PartnerLicense = 'C:\Temp\BC14DEV.flf'
$ServerInstance = 'BC140_CIF'
$ExtName = 'CIF - BC14 Temp Extension'

#Kick out users
#Stop Job Queues
#Disable CRM
#Create a Backup
#Restose Database
#Map user to Database
#Setup Serice Tier
#Add User to Database SQL 
#if the finsql gives driver error on temp server, install 
https://www.microsoft.com/en-US/

Tips Disk Usage Ubuntu

https://linuxconfig.org/how-to-check-disk-usage-by-folder-on-linux

2554. Maximum Number of Integers to Choose From a Range I

You are given an integer array banned and two integers n and maxSum. You are choosing some number of integers following the below rules: The chosen integers have to be in the range [1, n]. Each integer can be chosen at most once. The chosen integers should not be in the array banned. The sum of the chosen integers should not exceed maxSum. Return the maximum number of integers you can choose following the mentioned rules.
/**
 * @param {number[]} banned
 * @param {number} n
 * @param {number} maxSum
 * @return {number}
 */
var maxCount = function(banned, n, maxSum) {
    // Convert banned array to a set for O(1) lookups
    const bannedSet = new Set(banned);
    let currentSum = 0; // Initialize the sum of chosen integers
    let count = 0; // Initialize the count of chosen integers

    // Iterate through integers from 1 to n
    for (let i = 1; i <= n; i++) {
        // Skip if the integer is in the banned set

debounce - Выполнять колбэк только по прошествии указанного времени (с момента последнего вызова)

/**
 * Выполнять колбэк только по прошествии указанного времени (с момента последнего вызова)
 *
 * @param func
 * @param delay
 *
 * @returns
 */
function debounce(func, delay) {
	let timeout;
	return function (...args) {
		clearTimeout(timeout);
		timeout = setTimeout(() => {
			func.apply(this, args);
		}, delay);
	};
}

const handleInput = debounce(() => {
	console.log('Функция вызвана после задержки');
}, 300);

document.querySelector('input').addEventListener('input', handleInput);

Closure modifier

<?php
//  TransportListResolver
class {
    public function getList(Order\Order $order, ?\Closure $transportListResolverModifier = null): array {
  .
  .
  .
  
    if ($transportListResolverModifier) {
    	$transportListResolverModifier($transportListResolver);
    }
  .
  .
  .
  
  }
}


// usage in another class
// we can modify object via closure
$transportList = $this->transportListResolver->getList($order, function (TransportEshopOrderSelectionResolver $transportListResolver) {
			$trans

Language Validation Service

public static class DocumentLanguageValidator
    {
        // Language validation regexes
        private static readonly string[] RestrictedLanguagePatterns = new string[]
        {
            // Arabic (Includes Persian and Urdu)
            @"[\u0600-\u06FF\u0750-\u077F]", // Arabic Script and Supplement

            // Chinese (Unified Han Characters)
            @"[\u4E00-\u9FFF]", // Mandarin and Cantonese

            // Tagalog (Philippines)
            @"[\u1700-\u171F]", 

Alfred Workflow: Lookup IP Address from selection

<?php
//
// Do NOT USE OPENING <?php TAG IN ALFRED APP
//

/**
 * Open 1 or more (comma or new line separated) issue number URLs from selection.
 *
 * @link https://github.com/cliffordp/alfred-app-workflows Download this Alfred App Workflow's code (and more).
 * @link https://gist.github.com/cliffordp/8473186110d6274d6bc6552a22cdfd24 This Alfred App Workflow's code snippet.
 *
 * Example multi-selections (without quotes) and single selections also work:
 *   "1.2.3.45,2.8.19.28" // comma without

YUP helper

[YUP Documentation](https://github.com/jquense/yup) ``` npm i yup ```
const validationSchema = yup.object().shape({
  name: yup.string().required(),
});

FormList.tsx

import { Alert, Stack, Tooltip } from '@mui/material';
import Fab from '@mui/material/Fab';
import AddIcon from '@mui/icons-material/Add';
import { useFieldArray, FieldValues, Control, ArrayPath, FieldArray, useWatch, Path } from 'react-hook-form';
import FormListItem from './FormListItem';
import { Account, Accounts } from '@openapi';
import { NAME_KEY } from '@constants';

type FormListProps<T extends FieldValues> = {
  control: Control<T>;
  name: ArrayPath<T>;
};

const FormList

JS, Liquid - Load More Products

class LoadMoreProducts extends HTMLElement {
  constructor() {
    super();

    this.productsGrid = document.getElementById('product-grid');
    this.paginationNextUrl = this.dataset.nextUrl;
    this.button = this.querySelector('[data-collection-more="button"]');
    this.spinner = this.querySelector('[data-collection-more="loading"]');
    this.perPage = this.dataset.loadPerpage

    this.checkVisibility();
    this.onLoadMoreProducts = this.handleLoadMoreProducts.bind(this);
  }

Setup react-hook-form

import { forwardRef } from 'react';
import { yupResolver } from '@hookform/resolvers/yup';
import * as yup from 'yup';
import { useForm, SubmitHandler, SubmitErrorHandler, FormProvider, Controller } from 'react-hook-form';
import { UTCDate } from '@date-fns/utc';
import { UIButton, FormTextField } from '@gui/components';
import { Grid } from '@mui/material';

export enum <%= fileName %>NamesEnum {
  name = 'name',
}

export interface I<%= fileName %> {
  [<%= fileName %>NamesEnum.na

Queue

QueueHandle_t eventqueue = NULL;

eventqueue = xQueueCreate(1,sizeof(main_app_t));

main_app_t mainobj;
mainobj.event = REQUEST_TO_SENSORS;

xQueueSend(eventqueue, &mainobj, pdMS_TO_TICKS(10000));

while (1)
    {
        if (xQueueReceive(eventqueue, &mainobj, portMAX_DELAY))
        {
            switch (mainobj.event)
            {
            case REQUEST_TO_SENSORS:
                ESP_LOGI(TAG, "REQUEST_TO_SENSORS");
                break;
            
            case G