arrow_back_ios Software menu group

Software

Various notes about different software I use

List of software etc.

Some of the software, file formats etc. that I use (and various tips):

  • Firefox with ublock-origin – browsing the web without adds/tracking. Settings: auto-delete cookies, localstorage etc. on exit.
  • Anki – great tool for learning, – open source flash-cards
  • protonmail – seems to be the best privacy-aware email
  • Vim – the text editor that I am most efficient in
  • Brave – privacy-aware chrome-based browser – better default privacy/adblocking than firefox without plugins (usable on iOS, where Apple disallows firefox plugins etc.).
  • libreoffice – good-enough office-suite
  • Gimp – good-enough image editing
  • Blender – great 3d program, with good-enough video editor
  • Syncthing – synchronising files between computers – cloud-alternative
  • Signal – instant messenging
  • Facebook/messenger – worst software – but needs to use it due to things only communicated there 🙁

VR:

  • Thrill of the fight – Best cardio exercise – but brutal
  • Beat Saber – good cardio exercise with fast version of song "FitBeat" – includes squads and jumps to the side
  • HoloPoint – decent cardio exercise
  • Gorilla tag – good arm exercise
  • Google Earth – good for learning geography
  • TiltBrush – creative drawing

Progamming languages:

  • Clojure – nice / favourite programming language
  • JavaScript – fastest language for me to build something in, as I have lots of experience with this.
    • serverside: node or deno (prefer deno due to sandboxing, but often use node due to
    • the web platform!
  • Python
    – data science! Jupyter Lab

    • micropy – for scripting on embedded devices
    • scripting blender etc.
  • Lua – good/easy to embed in other applications

Operating systems I use:

  • Linux – clearly the best for my use cases. Always using this on server (although would also be tempted to return to FreeBSD), – and often on laptop/desktop (prefer i3 as window manager). Great!
  • MacOS – lots of small bugs, but runs on the new Apple ARM processors, and allows web development/testing on Safari, and possibility to develop for iOS, – good enough, but not great.
  • iOS – locked-down operating system (You don't control your device, Apple does, which is bad). But Android is worse, – and you need to have Android or iOS to function in modern society (payment, school-apps, sign-in, authentification, coronapas, etc. (Open-standard web-applications are unfortunatly often only developed as an afterthought if at all)).
  • Windows – needed for some use cases (best VR-support, playing certain games with my son that is unsupported on Linux/MacOS).
  • Android – developed by a company whoose business model is to sell your attention to highest bidder (and collect information about you to be able to do that).

File formats:

  • SQLite – database, – data can easily be accessed from different programming languages, and it is really easy to backup an share the database with others, as it is just single file.
  • Markdown – simple, good-enough plain-text format, – can also be converted to print etc (pandoc).

todo:

  • etherpad – really good for collaboration on text (need to re-install this asap).
  • gitea – self-hosted simple github-alternative (github was taken over by Microsoft, – currently using gitlab but want to shift to this).

Individual Applications

VIM

Fireplace:

  • :connect 3333
  • :CljEval (shadow/repl :build-id)
  • K :Doc :FindDoc
  • [d ]d – show source
    • [<c-d> – jump
  • gf – goto namespace
  • g] – goto symbol + tag
  • c-w prefix = in window
  • cp... cpp – eval-print
  • cm... cmm – fully macro expand
  • c!... c!! – eval replace
  • c1m... c1mm – macro expand once
  • cqp – eval prompt
  • cq... cqq cqc – command-line window
  • insert-mode
    • C-R ( eval+insert
    • C-X C-O omnicomplete

ParEdit:

  • ,< ,> – move paren
  • ,J ,O – join / open(split)
  • ,w( ,w[ ,w{ ,w\" – wrap with parens
  • ,S ,[up] ,[down] ,I – splice / remove parens]– splice / remove parens

Completion:

  • C-p / C-n - next
  • C-x C-o language. C-x C-f file C-x C-p / C-x C-n context aware C-x C-l line-complete

todo:

  • add .vimrc notes
  • check up on neovim
  • check out vim-matchup vim-sneak vim-lastplace ctrlp.vim ctrlsf.vom vim-textbj-user aklt/vim-substitute vim-clap + fzf

Pandoc

Running:

pandoc doc.md -d defaults.yaml --toc --toc-depth=3 -o out.pdf; open out.pdf

sample defaults.yaml

citeproc: true
metadata:
  bibliography: bibliography.bib
top-level-division: section
pdf-engine: lualatex

sample preamble:

---
title: title
author: Rasmus Erik Voel Jensen (hdb853)
fontsize: 12pt
lang: da
date: 2023
papersize: a4
documentclass: article
geometry: margin=3.8cm
header-includes: |
    \renewcommand{\baselinestretch}{1.5}
#https://tex.stackexchange.com/questions/598690/including-diverse-unicode-symbols-inside-latex-document
#\babelprovide[onchar=fonts]{arabic}
#\babelfont{rm}{FreeSerif}
---

SQLite

Performance-optimizations:

  • PRAGMA journal_mode=WAL; faster, but requires vfs-shared-memory-primitives. =DELETE is normal. =OFF even faster, but risks corruption on OS-crash.
  • PRAGMA synchronous=normal; less sync than =full. =off disable fsync but risks corruptions if Operating System crashes during write.
  • PRAGMA page_size= set page-size, – power of 2 <= 65536, defaults to 4K. Do PRAGMA VACUUM in journal_mode=DELETE to apply to existing DB.
  • PRAGMA analysis_limit= reduce optimize time/depth, – somewhere between a few hundreds to a few thousands.
  • PRAGMA optimize; good to run, – for instance before closing db.

VSCode

Shortcuts:

  • cmd+b hides explore
  • cmd+shift+p command palette
  • cmd+shift+e focus explorer

Extensions:

  • Vim (vim emulation) – which folding worked better...
  • Prettier – code formatting

    MariaDB/mySQL

    Various notes...

CREATE USER 'username'@'localhost' IDENTIFIED BY 'passwd';
DROP USER 'username'@'localhost';
CREATE DATABASE dbname;
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';
FLUSH PRIVILEGES; -- commit privileges cahnges
SELECT user, host FROM mysql.user;
mariabackup --backup --target-dir=some-backup --user=... --password=...

rsync -avrP some-backup /var/lib/mysql-new/
chown -R mysql:mysql /var/lib/mysql-new/
rm /var/lib/mysql-new/ib_logfile*
systemctl stop mariadb
mv /var/lib/mysql /var/lib/mysql-old
mv /var/lib/mysql-new /var/lib/mysql
systemctl start mariadb

Operating systems

Linux

TODO move applist etc. from scripts here
TODO: ansible

Windows

  • ubuntu 🙂

  • firefox

  • brave

  • vlc

  • syncthing

  • sharpkey remap caps to esc

  • uninstall bloatware

  • disable various tracking

    Mac

  • iTerm2

  • azul java

  • vlc

  • xcode

  • firefox

  • brave

  • homebrew

    • tmux
    • vim
    • node
    • git
  • settings

    • map caps to esc
    • disable fast sleep
    • safari enable developer mode

Settings

Keyboard

Replace CapsLock with Esc

"US-Mac" keyboard layout under linux has the following keys with Alt Gr down:

\` ¡  ™  £  ¢  ∞  §  ¶  •  ª  º  –  ≠
    œ  ∑ \´  ®  †  ¥ \¨ \^  ø  π  “  ‘
     å  ß  ∂  ƒ  © \˙  ∆ \°  ¬  …  æ  «
   §  Ω  ≈  ç  √  ∫ \~  µ  ≤  ≥  ÷

\ ̛ ⁄  €  ‹  ›  fi  fl  ‡  °  ·  ‚  —  ±
    Œ  „ \´  ‰ \ˇ  ¼ \¨ \ˆ  Ø  ∏  ”  ’
     Å \/  ð \ ̉ \˝ \ ̣  ½    Þ  þ  Æ  »
   ± \¸ \˛  Ç  ◊  ı  ˜  ¾ \¯ \˘  ¿

This is my favourite keyboard, – the "real" US-Mac keyboard, is almost as good but missing ¼ ½ ¾.