create nested json from html

$('#saveNewTasklist').on("click", function () {
    const nestedQuery = '.nested-sortable';
    const identifier = 'taskId';
    const root = document.getElementById('tasks');
    function serialize(tasks) {
        var serialized = [];
        var children = [].slice.call(tasks.children); // children == document property
        /**
         * [].slice.call() == Array.prototype.slice.call()
         * 
         * call slice() as if it was a function of NodeList using call(). What slic

JS plugin aka jQuery

class Test {
    constructor(el, options) {
        this.el = el;
        const defaultOptions = {
            onHover: (element, e) => {
                console.log(':)))', element, e);
            },
        };

        this.options = { ...defaultOptions, ...options };
        this.mouseOverHandler = this.handleMouseOver.bind(this); // Vytvoření odkazu na metodu handleMouseOver
    }

    init() {
        this.el.addEventListener('mouseover', this.mouseOverHandler); // Přidání po

jQuery $.data in vanilla js

/* 1 */
var item = document.getElementById("hi");
console.log(item);

item.data = {getType: function(){return this.TYPE},TYPE:"winner"};

var out = item.data.getType();
console.log("out", out);

var two = document.getElementById("hi")
console.log("should say 'winner': ", two.data.getType());



/* 2 */
window.$ = {
    data: function(obj, key, val) {
        if(!obj) {
            return this._data;
        } else if(!key) {
            if(!(obj in this._data)) {
                return {};
     

ODOO QWEB DEBUG

1 : Install IPDB (or PDB)

          pip3 install ipdb
          * WHEN RUNNING ODOO IN DOCKER CONTAINER, PUT THIS LINE TO DOCKER COMPOSE FILE UNDER ODOO CONTAINER DEFINITION
            command: --dev=qweb

2 : Add below code where you want to debug in xml

          t-debug="ipdb" or t-debug="pdb"

3. ATTACH TO RUNNING DCCKER CONTAINER BY FIRST GETTING CONTAINER ID WITH docker ps, THEN ATTACH docker attach container_id

4. RUN THE CODE WHERE XML FILE IS EXECUTED AND EXECUTION WILL PAUSE AT POS

Debug Gradle Task in Android Studio

# Debug Gradle Task in Android Studio

- Click the dropdown near the Run icon > Edit Configuration > (+) icon - Add New Configuration > Remote JVM Debug > leave everything as default > Add a name (Eg. GradleTaskDebug) > OK.
- Add breakpoint(s) to Gradle/Groovy/Kotlin DSL script.
- Append the following to Gradle command:
``` 
-Dorg.gradle.daemon=false -Dorg.gradle.debug=true

// Eg.
./gradlew publishToMavenLocal -Dorg.gradle.daemon=false -Dorg.gradle.debug=true
```
- Select the previous GradleTas

Criar um arquivo

Documentação: - [FSUtil](https://docs.dopus.com/doku.php?id=reference:scripting_reference:scripting_objects:fsutil).OpenFile - usei para criar um novo arquivo e obter o handle dele. - [DOpus.Dlg](https://docs.dopus.com/doku.php?id=reference:scripting_reference:scripting_objects:dialog).GetString - usei para solicitar um novo nome de arquivo para o usuário. Onde usei: **_CLIPBOARD_Paste_Smart** Este código tenta criar um novo arquivo com um nome padrão. Se o arquivo já existir, solicita para o usuário qual o novo nome a ser dado para o arquivo sendo criado. Entra em loop até que o nome do arquivo seja válido (não tenha nenhum arquivo com o nome informado). Aborta se o nome informado for em branco ou se clicar no botão Cancelar.
// Create a new File
var strFile_name = "Site"; // Nome default que quero dar para o arquivo.
objFile = DOpus.FSUtil.OpenFile(clickData.func.sourcetab.path + "\\" + strFile_name + ".url", "wrcf");  // wr = read/write c=create (dá erro se já existir) f=force
// Se o arquivo já existir, pergunta para o usuário qual o novo nome que quer dar para o arquivo.
// Fica em loop enquanto não digitar um nome que não existe, ou até clicar em Cancelar ou clicar em OK com um nome em branco.
while (objFil

Deselect all files

[Select Documentation](https://docs.dopus.com/doku.php?id=reference:command_reference:internal_commands:select)
// Clear file selection
cmd.deselect = true; // Ensure the command deselects files
cmd.RunCommand("Select NONE");

Laravel 11 with Boostrap 5


https://www.techiediaries.com/how-to-add-bootstrap-5-laravel-11/


Ubuntu 22.04 Runs Very Slow And The Solutions

### Solution 1. Upgrade your system

Apparently, upgrading the whole Ubuntu 22.04 system can fix the performance issue. By upgrade we mean updating all installed programs into their latest version, not updating the OS version. We did it and we can confirm Kubuntu works better and faster again after that. Please note that this will cost you time, money (for internet access) and a lot of disk space.

1. Disable all PPA.
2. Do repository refresh:
   `$ sudo apt-get update`
3. Do the first system-wi

Find Min Height Trees

/**
 * @param {number} n
 * @param {number[][]} edges
 * @return {number[]}
 */
var findMinHeightTrees = function(n, edges) {
    // Check if the graph is linear (a straight line)
    edges.sort((a, b) => a[0] - b[0]);
    let linear = true;
    for (let i = 0; i < edges.length - 1; i++) {
        if (edges[i][1] !== edges[i + 1][0]) {
            linear = false;
            break;
        }
    }

    // If the graph is linear, the root is the middle node(s)
    if (linear) {
        let x = Ma

Link2CSV

(()=>{const e=t=>{if(""!==t.id)return`id("${t.id.replace(/"/g,'""')}")`;if(t===document.body)return t.tagName.toLowerCase();let n=0;const o=t.parentNode.childNodes;for(let r=0;r<o.length;r++){const a=o[r];if(a===t)return`${e(t.parentNode)}/${t.tagName.toLowerCase()}[${n+1}]`;1===a.nodeType&&a.tagName===t.tagName&&n++}},t=e=>`"${e.replace(/"/g,'""')}"`,n=document.querySelectorAll("a"),o=[];n.forEach((n=>{const r=t(n.href),a=(e=>{const t={internal:new RegExp(`^https?://${location.host}`,"i"),exter

api-key-authentication asp.net core api

https://code-maze.com/aspnetcore-api-key-authentication/

Lenis Smooth Scrolling

// include Lenis script where appropriate (e.g. enqueued in setup.php).
// https://unpkg.com/lenis@1.0.44/dist/lenis.min.js

// Lenis settings
const lenis = new Lenis({
    duration: 1.2,
    easing: (t) => (t === 1 ? 1 : 1 - Math.pow(2, -10 * t)),
    direction: "vertical",
    gestureDirection: "vertical",
    smooth: true,
    smoothTouch: true,
    touchMultiplier: 2,
});

function raf(time) {
    lenis.raf(time);
    requestAnimationFrame(raf);
}

requestAnimationFrame(raf);

get Param From Url Search | from window.location

/**
 * @source https://gist.github.com/artemsites/8d260ef1682d10c70c2cf1cd256c629d
 */
export default function getParamFromUrlSearch(paramName) {
  if (location.search) {
    let params = location.search.split('?')[1].split("&")
    let param = params.find(p=>p.includes(paramName))
    if (param) return param.split('=')[1]
    return false
  }
  return false
}

Identify media container with extra medias for banner components

select {mediacontainer} from {media} where {mediacontainer} is not null group by {mediacontainer} having count({mediacontainer}) > 4

Airtable - Code to concatenate First and Surname

Saved from https://chat.openai.com/c/f5df1155-d81c-41ba-b6dc-7fa748667568
{First Name} & " " & {Surname}