Skip to content

Instantly share code, notes, and snippets.

View tvwerkhoven's full-sized avatar

Tim van Werkhoven tvwerkhoven

  • ASML
  • Netherlands
View GitHub Profile
@tvwerkhoven
tvwerkhoven / routeros-config.rsc
Created February 7, 2023 19:06
Mikrotik RouterOS RB2011/RB3011 home configuration with VLAN/QoS/Firewall
###############################################################################
# Topic: Using RouterOS to VLAN your network
# Example: Router-Switch-AP all in one device
# Web: https://forum.mikrotik.com/viewtopic.php?t=143620
# RouterOS: 6.43.12
# Date: Mar 28, 2019
# Notes: Start with a reset (/system reset-configuration)
# Thanks: mkx, sindy
###############################################################################
@tvwerkhoven
tvwerkhoven / notify-high-sensor-value.yaml
Last active December 7, 2021 21:38
Home Assistant automation to notify at high sensor values
blueprint:
name: High sensor value notification
description: Notify users of high sensor values (e.g. CO2, temp, PM2.5), and again when value drops below acceptable level
domain: automation
input:
trigger_sensor:
name: Trigger sensor
description: E.g. CO2, PM2.5, temperature
selector:
entity:
@tvwerkhoven
tvwerkhoven / notify-or-do-something-when-an-appliance-like-a-dishwasher-or-washing-machine-finishes.yaml Home Assistant Blueprint: Notify or do something when an appliance like a dishwasher or washing machine finishes
blueprint:
name: Appliance has finished+
description: Do something when an appliance (like a washing machine or dishwasher)
has finished as detected by a power sensor, and show power consumption.
domain: automation
input:
power_sensor:
name: Power Sensor
description: 'Power sensor entity (e.g. from a smart plug device).'
selector:
@tvwerkhoven
tvwerkhoven / dedupe.sh
Last active March 14, 2024 17:38
De-duplicate using APFS clonefile(2) and jdupes in zsh
#!/usr/bin/env zsh
#
# # About
#
# Since APFS supports de-duplication on block-level, it can be useful to
# manually de-duplicate your files if you've migrated/upgrade to APFS not
# using a fresh install.
#
# I've written this simple script with the aim to:
# - Be simple, easy to read and understand (for users to check)
@tvwerkhoven
tvwerkhoven / spotify-kodi
Last active November 9, 2018 21:44
spotify kodi startup script
#!/bin/bash
# spotify-kodi startup script
#
# Start spotify, wait for display, start kodi, bring kodi window into focus (again)
#
# # USAGE
# 1. Install somewhere (e.g. /snap/bin/)
# 2. Run as startup item on Linux
#
# # ABOUT
@tvwerkhoven
tvwerkhoven / kMeans.py
Created June 2, 2018 13:31 — forked from bistaumanga/kMeans.py
KMeans Clustering Implemented in python with numpy
'''Implementation and of K Means Clustering
Requires : python 2.7.x, Numpy 1.7.1+'''
import numpy as np
def kMeans(X, K, maxIters = 10, plot_progress = None):
centroids = X[np.random.choice(np.arange(len(X)), K)]
for i in range(maxIters):
# Cluster Assignment step
C = np.array([np.argmin([np.dot(x_i-y_k, x_i-y_k) for y_k in centroids]) for x_i in X])
@tvwerkhoven
tvwerkhoven / whatsapp.pm
Last active November 8, 2017 01:50
Whatsapp chat log parser for pisg
# Whatsapp log parser for pisg, made by Tim van Werkhoven
# Features: parses logs, detects subject changes
# Known issues: only works without images, does not filter out 'image omitted' texts
# Use Charset = "utf-8" in config file to enable emoji
package Pisg::Parser::Format::whatsapp;
use strict;
$^W = 1;
sub new
@tvwerkhoven
tvwerkhoven / rsync_backup.sh
Last active July 5, 2023 05:30 — forked from necolas/rsync_backup
Improved script: - Check if run as root - Clarify rsync(1) flags - Add --inplace for performance, extra preservation flags - Check bless(8) target before setting Improved exclusion file: - Included files listed by Carbon Copy Cloner
#!/bin/bash
#
# This script backups an OS X system to an external volume, effectively
# cloning it. It is based on [0], [1] and [2] for OS X and [3] and [4] for
# Linux. One could also use commercial tools like SuperDuper! or Carbon Copy
# Cloner. The latter website has an interesting list[5] on what files to
# exclude when cloning.
#
# Exclusions (from CCC[5]), see rsync_excludes_osx.txt
#
@tvwerkhoven
tvwerkhoven / MultiMarkdown_guide.md
Last active December 7, 2020 23:21
Brief introduction to MultiMarkdown highlighting features that were hard to find.
@tvwerkhoven
tvwerkhoven / milieudata_januari.json
Last active December 10, 2015 13:48
Produce energy label for Albert Heijn recipes
{"Framboos": [["C", "Spanje"], ["E", "Mexico"]], "Nectarine": [["B", "Chili"]], "Limoen": [["A", "Brazili\u00eb"]], "Avocado": [["B", "Isra\u00ebl"], ["C", "Chili"], ["C", "Spanje"]], "Wortelen (breekpeen/waspeen)": [["A", "Nederland"]], "Carambola": [["D", "Isra\u00ebl"], ["E", "Maleisi\u00eb"]], "Radijs (los)": [["B", "Nederland"]], "Sperzieboon": [["B", "Marokko"], ["B", "Spanje"], ["C", "Senegal"], ["D", "Egypte"], ["E", "Kenia"]], "Kokosnoot": [["C", "Ivoorkust"], ["C", "Sri Lanka"], ["D", "Algerije"]], "Broccoli": [["B", "Frankrijk"], ["B", "Spanje"]], "Witte kool": [["A", "Nederland"]], "Lychee": [["C", "Madagaskar"], ["C", "Zuid-Afrika"]], "Rabarber": [["C", "Nederland"]], "Asperge (groen)": [["E", "Peru"]], "Courgette": [["A", "Spanje"]], "Rode biet": [["A", "Nederland"]], "Andijvie (gewoon)": [["A", "Spanje"], ["E", "Nederland"]], "Spitskool": [["A", "Nederland"], ["A", "Spanje"], ["B", "Portugal"]], "Ananas": [["B", "Costa Rica"], ["B", "Ecuador"]], "Kersen": [["E", "Chili"]], "Artisjok": [["B", "S