Schaduw verwijderen van MacOS schermafbeeldingen

Bij het maken van een schermafdruk van een venster in macos is er standaard een schaduw aanwezig. Dit vind ik best iritant. Gelukkig kan je deze eenvoudig uitzetten

#disable
defaults write com.apple.screencapture disable-shadow -bool true ; killall SystemUIServer
#enable
defaults write com.apple.screencapture disable-shadow -bool false ; killall SystemUIServer

App defaults

Gebaseerd op aflevering 97 van Hemisphericviews, hier zijn mijn “app defaults”

Update: 2025-10-02

  • Mail client: Thunderbird
  • Mail server: Fastmail
  • notes: Een DokuWiki instance
  • photo management: Synology photo’s
  • Calendar: Thunderbird
  • cloud storage: Een Synology Nas
  • RSS: Momenteel niets …
  • Browser: Firefox
  • Chat: IRC, Matrix, Discord
  • Office Suite: Libre office
  • Budgetting: A libre office sheet
  • Music: Spotify
  • Podcasts: Spotify

Jails gebruiken in FreeBSD

FreeBSD heeft standaard een functie waarmee je jails kan aanmaken (vergelijkbaar met Linux containers). In freebsd zijn deze zeer uitgebreid: Er zijn “Thick Jails” waar elke jail zijn eigen bestandssysteem heeft, “Thin jails” waar maar een paar mappen verschillen en de rest word overgenomen van het basissysteem, en zelfs Linux Jails, waarmee je Linux applicaties kan draaien op een freeBSD kernel! In deze post leg ik uit hoe je Thick Jails kan gebruiken, maar je kan meer lezen over de andere soorten jails in de FreeBSD documentatie.

Lees verder

UFW basics

Op een server is een firewall onmisbaar. Op Debian & Ubuntu is UFW de eenvoudigste manier om een firewall in te stellen. UFW staat voor “The Uncomplicated Firewall” en is dan ook zeer eenvoudig in gebruik. In deze post leg ik de basis uit van UFW.

Lees verder

Freebsd Installeren

Ik heb altijd “FreeBSD” zien staan als optie als ik een VM aanmaakte bij een cloudprovider, maar ik heb er nooit mee geëxperimenteerd. Ik heb besloten om er mee te experimenteren in een VM. In deze post zal ik de installatie van FreeBSD toelichten

Lees verder

Nat instellen in proxmox

Binnen proxmox word standaard gebruik gemaakt van briding. Dit is echter niet altijd handig (we hebben bijvoorbeeld maar 1 IP adres tot onze beschikking. Gelukkig kunnen we met iptables aan maquerading doen.

Voeg het volgende toe aan /etc/network/interfaces:

auto vmbr1
iface vmbr1 inet static
        address  10.0.0.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0

        post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o enp35s0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o enp35s0 -j MASQUERADE
        ## do do a port-forward to the VM with "lan" ip 10.0.0.3 from the host port 8080 the VM port 80
        ## you can use a line like this.
        # post-up   iptables -t nat -A PREROUTING -i enp35s0 -p tcp --dport 8080 -j DNAT --to 10.10.10.3:80

vervolgens kunnen we het netwerk herladen met

ifreload -a

 

Pelican & Jenkins

Met de volgende jenkinsfile kan je automatisch een Pelican site bouwen met Jenkins. Dit maakt gebruik van deSFTP publish en Docker plugins

pipeline {
  agent {
    docker {
      image 'python:3.8'
    }
  }
  stages {
    stage('setup') {
      steps {
        withEnv(["HOME=${env.WORKSPACE}"]) {
          sh 'python -m pip install --user --upgrade pip "pelican[markdown]"'
          sh 'python --version'
          sh 'python -m pelican --version'
        }
      }
    }
    stage('publish - web') {
      steps {
        withEnv(["HOME=${env.WORKSPACE}"]) {
          sh 'python -m pelican content -s publishconf.py'
        }
        sshPublisher(
          publishers: [
            sshPublisherDesc(
              configName: 'vincentlammens.be',
              sshRetry: [retries: 5, retryDelay: 10000],
              transfers: [
                sshTransfer(
                  remoteDirectory: '',
                  removePrefix: 'output/',
                  sourceFiles: 'output/**/*'
                )
              ]
            )
          ]
        )
      }
    }
  }
  
  post {
    always {
      cleanWs()
    }
  }
}