Useful snippets

    Task warrior (CLI todo app)

    Sun 22. October 2023 | 2023-10-22

    Installer på Ubuntu (WSL)

    sudo apt-get install taskwarrior
    

    https://taskwarrior.org/download/

    Oppstart

    task version
    

    yes for å lage config file (.taskrc)

    Bruk

    📍 Legg til task

    task add bla bla bla bla
    

    📌 - med priority

    task priority:H add bla bla bla bla
    

    📅📃 List opp alle tasks

    task next
    

    next kan sløyfes

    ✔ Gjennomfør task nr X

    task X done
    

    ❌ 🗑 Slett

    task X delete
    

    https://taskwarrior.org/docs/30second/

    💬🗨 Se og rediger alle detalljer

    task X edit
    

    🗃 Opprett i prosjekter

    task add project:Kitchen Select floor tiles
    task add project:Kitchen Measure counter-top
    task add project:Kitchen Design placement of electrical outlets
    task add project:Kitchen Locate ideal placement for extractor duct
    task add project:Kitchen Select and order counter-top material
    task add project:Kitchen Talk to the Electrician about when the work can start
    

    https://taskwarrior.org/docs/best-practices/

    Interessant

    table of contents with IntersectionOvserver (not perfect)

    Sun 22. October 2023 | 2023-10-22

    useScrollSpy.ts

    import { useEffect, useRef, useState } from "react";
    
    export function useScrollSpy(ids: string[]) {
      const [activeId, setActiveId] = useState();
      const observer = useRef();
    
      useEffect(() => {
        const elements = ids.map((id) => document.getElementById(id));
    
        observer.current?.disconnect();
    
        elements.forEach((heading) => {
          if (heading) {
            observer.current?.observe(heading);
          }
        });
    
        observer.current = new IntersectionObserver(
          (entries) => {
            console.group("executing intersectionobserver callback");
    
            entries.forEach((entry) => {
              if (entry?.isIntersecting) {
                console.log(entry.target.id, "is intersecting");
    
                setActiveId(entry.target.id);
              }
            });
            console.groupEnd();
          },
          { rootMargin: "0% 0% -80% 0%", threshold: 0.1 }
        );
    
        return () => observer.current?.disconnect();
      }, [ids]);
      return activeId;
    }

    TableOfContents.tsx

    import React, { useEffect, useState } from "react";
    import classes from "./TableOfContents.module.css";
    import { useScrollSpy } from "@/hooks/useScrollSpy";
    
    interface TableOfContentsProps {
      isLoading: boolean;
    }
    
    export type heading = { text: string | null; id: string };
    
    export const TableOfContents = ({ isLoading }: TableOfContentsProps) => {
      const [headings, setHeadings] = useState<heading[]>([]);
      const activeId = useScrollSpy(headings.map(({ id }) => id));
      useEffect(() => {
        if (!isLoading) {
          const elements: heading[] = Array.from(
            document.querySelectorAll("h3")
          ).map((element) => ({ text: element.textContent, id: element.id }));
          setHeadings(elements);
        }
      }, [isLoading]);
    
      return (
        <div
          className={`${classes.root} d-none d-lg-block sticky-with-gutter list-group small`}
        >
          <nav>
            {headings.map((heading) => {
              const maybeActive = activeId === heading.id ? "active" : "";
              return (
                <li key={heading.id}>
                  <a
                    className={`list-group-item list-group-item-action ${maybeActive}`}
                    href={`#${heading.id}`}
                  >
                    {heading.text}
                  </a>
                </li>
              );
            })}
          </nav>
        </div>
      );
    };

    show commit hash

    Sun 22. October 2023 | 2023-10-22

    Vise kort commit hash

    git rev-parse --short HEAD

    PHP White screen

    Sun 22. October 2023 | 2023-10-22

    echo "<pre>";
    ini_set('display_errors', 'On');
    ini_set('html_errors', 0);

    Skal kanskje være ini_set('html_errors', 'On');?

    fordeler/ulemper med Windows/MacOS

    Sun 22. October 2023 | 2023-10-22

    mislikte/misliker med mac:

    1. man må ha app store account og derav også registrere bankkort for å oppdatere OS. (Tror denne er utdatert)
    2. Finder (filutforsker) sorterer filtyper helt alfabetisk i stedet for å putte mapper over alt annet dette kan endres i innstillinger nå
    3. man må aktivt rydde opp filene hele tiden for å få det på stell, og hvis man vil ha auto sortering på noe annet enn filnavn må man takke seg til å gruppere filene i forskjellige rader dette er også mulig nå!
    4. kryss og minifiser og det er på feil side, dessuten er knappene veldig små
      1. dette bryr jeg meg ikke noe om lenger. fungerer helt greit å bruke tastatursnarveier
    5. skrivebordet plasserer alltid programmer på feil side (og man må flytte over programmene manuelt og stille inn grid slik at det går. Det resettes når man velger sortering og nye programmer dukker opp til høyre)
      1. samme her
    6. savner muligheten til å raskt forvandle vindu til å oppta halvparten av skjermen det er mulig nå!
    7. fullscreen-uten-å-ta-bort-dock er upraktisk man trenger ikke bruke denne fullscreen varianten
    8. På Mac XAMPP versjonen må man aktivt mounte xampp/lampp-mappa. Slitsomt
      1. bruker ikke dette programmet mer
    9. launchpad (listen over alle appene) kan noen ganger ta lang tid på å laste inn noen programmer. i hvert fall etter seks år.
    10. Teit at menyelementer ofte finnes på to steder: Både i menylinje og i selve programvinduet. Er for det meste windows programvarer dette gjelder.
    11. ja, det er litt fjollete, men det blir man vandt til
    12. Hvis derimot menyelement kun finnes på det ene stedet (i VSCode så vises den bare i overmenyen, i XAMPP vises nesten ingenting der) så ender man opp med mye ubrukt luft som bare opptar skjermplass
    13. Man kan ikke trykke fn + esc for å slå på og av funksjonstaster
    14. når man kobler til et kamera så går macen bare ut i fra at du vil bruke den fotogalleri-appen. Det er så irriterende! Hvis man kopierer camera raw file derfra så blir de til jpg når man limer dem inn! Jeg trenger å åpne i Finder!

    For å få vinduet til venstre, må man først hover'e over den knøttlille grønne knappen, vente et kvart sekund og så klikke. enkelt å bruke tastatursnarvei i dag eller klikke og dra vinduet til venstre eller høyre side slik som på windows

    Man kan forresten legge til egen app shortcut, så lenge man vet hva man skal gjøre (må følge en tutorial)

    Men det er jo nesten ingen tastastursnarveier igjen!

    https://www.paulsahner.com/posts/window-movement

    Mislikte/misliker med windows:

    1. Den hadde forferdelige problemer mellom Endnote og Word og sitering (se diarium og komprimerte tanker bok) men fikk fikset det til slutt, da
    2. Noe forbanna herk å få ekstern harddisk til å faktisk kopiere alt jeg ba den om å kopiere. fikk fikset det til slutt, da
    3. Ting brekker. GUI er brukken. Ting funker ikke. Lyd, PC-frys, PC bestemmer seg bare for å slukne helt uten videre. Task-bar sin ekstern harddisk symbol fungerer ikke alltid
    4. Windows' Adobe Bridge ser ut som en vits. Meny og greier er for store.
    5. Word har ikke like behagelig søkefelt, og man kan ikke åpne det med ctrl+F
    6. Elendige tastatursnarveier
    7. Litt irriterende uten egen PDF app. Når du åpner et dokument så åpner den automatisk MS Edge for å vise PDF-en. Og selv om du ikke har tenkt å bruke nettleseren til noe nettspesifikt, kommer den med meldinger som at "du må sikre nettleseren" eller hva det nå var det sto. Og det er ikke relevant hvis du bare skal se på en PDF! Distraherende!
    8. I filutforsker, hvis man prøver å navigere opp fra "Pål Stakvik"-mappa, så kommer man ikke til Users, men til desktop. Og når man klikker i addressefeltet, så står det bare "Pål Stakvik" - som om det er øverste mappa. Man må navigere seg inn en mappe, og først da får man den fulle og hele addresselinjen: "C:\Users\Pål Stakvik\Postman".
    9. Særlig hvis du jobber med typografi. Windows' "tastatursnarveier" for ekte anførselstegn er en vits og blir fullstendig grust av de til mac. Gjelder også:
      1. ellipse
      2. binde- og tankestrek
      3. Ellers gir tastatursnarveiene til mac generelt mer mening (f.eks. så er "/", "|" og "" alle samlet under samme knapp).
      4. men man kan installere Autohotkey på Windows for å lage bedre snarveier
    10. McAfee kommer med sine dialog-bokser og avbryter deg i arbeidet ditt

    Ohmybash

    Sun 22. October 2023 | 2023-10-22

    Hvordan starte med ohmybash, velge theme og laste ned nødvendig font icons

    Installasjon

    bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"
    

    Du får med masse aliases med dette. List alle med alias

    Velge theme

    nano ~/.bashrc
    
    OSH_THEME="agnoster"
    

    Save & exit: ctrl + x, y, [Enter]

    Reload:

    . ~/.bashrc
    

    Hvis du har mellomrom i path to oh-my-bash insallation, slik:

    # Path to your oh-my-bash installation.
    export OSH=/c/Users/Pål Stakvik/.oh-my-bash
    

    Må du enkapsulere path-en i quotes, ellers får du error

    skaffe nødvendige font icons

    evt. se på agnoster-zsh-theme

    last ned Hack-fonten

    1. Gå til https://sourcefoundry.org/hack/ og last ned font. Windows executable funker for WSL og VS Code
    2. Kjør executable i nedlastninger
    3. Godta restart

    Sette WSL til å bruke riktig font

    1. Åpne WSL
    2. høyreklikk toppmeny, velg 'properties'
    3. velg "Hack" fonten

    ubuntu-omb

    Sette VS Code til å bruke riktig font

    1. ctrl + shift + p
    2. settings.json
    3. lim inn "terminal.integrated.fontFamily": "Hack", https://stackoverflow.com/questions/37895501/display-issue-with-oh-my-zsh-agnoster-theme#answer-38475948

    vscode-omb

    Erstatte user @ hostname

    ...Med kun hostname:

    prompt_context() {
      if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
        prompt_segment black default "$USER"
      fi
    }

    Eller hva det skal være:

    prompt_segment black default "P"

    image (9)

    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER" skal visstnok også funke, men jeg får bare slik tekst da:

    image (8)

    Git bash merknader

    Får du permission denied ved git add .?

    • Kjør VS Code som administrator

    Får du

    hint: Waiting for your editor to close the file... 'C:\Users\Pål' is not recognized as an internal or external command,
    operable program or batch file.
    error: There was a problem with the editor '"C:\Users\Pål Stakvik\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd" --wait'.
    Please supply the message using either -m or -F option.
    

    ved git commit (-v)

    • Prøv å kjør git config --global core.editor "code --wait". Les mer https://stackoverflow.com/questions/52195877/how-can-i-fix-git-commit-error-waiting-for-your-editor-to-close-the-file-wi

    Oh my bash adding missing code completions

    Sun 22. October 2023 | 2023-10-22

    source /usr/share/bash-completion/completions/git
    __git_complete gco _git_checkout
    __git_complete gb _git_branch
    __git_complete gbs _git_bisect
    __git_complete ga _git_add
    __git_complete gcmsg _git_commit
    __git_complete gcs _git_commit
    __git_complete gd _git_diff
    __git_complete gl _git_pull
    __git_complete gp _git_push
    __git_complete gm _git_merge

    Syntax highlighting i Nano commit diff

    Sun 22. October 2023 | 2023-10-22

    nano ~/.nanorc

    sett inn

    https://gist.github.com/keithamus/736220/5e069767b22841610ee18fd2f92bd6026f5eb41d

    syntax "gitcommit" "COMMIT_EDITMSG$"
    color white "#.*"
    color green "#.(modified|added|deleted|unmerged|copy-edit|rename).*"
    color yellow start="# Changes.*" end="# Changed.*"
    color brightgreen "^\+.*"
    color brightred "^-.*"
    color brightyellow "(diff|index|---|\+\+\+).*"
    color brightmagenta "@@.*"
    color white "# Changes .*"
    color white "# Changed .*"
    color white "#.*\(use .*"
    color white "#$"
    

    =

    farger i git commit vinduet!

    Links

    Sun 22. October 2023 | 2023-10-22

    Links