Skip to content

Instantly share code, notes, and snippets.

View matjahs's full-sized avatar

Matjah Sonneveld matjahs

View GitHub Profile
@matjahs
matjahs / mongo_prune.js
Created April 24, 2025 06:19
Prune stale data from Unifi Controller
/**
Usage:
1. ssh root@<UDM-Pro IP or hostname>
2. wget -O /tmp/mongo_prune.js https://gist.github.com/matjahs/bc895b6ae5b3e796783d306f7f7fde09/raw/30e1a8cf1c63c62e28e690d0dbc730e30b3d75de/mongo_prune.js
3. mongo --port 27117 --quiet --eval "var days=14, dryrun=true" /tmp/mongo_prune.js
**/
if (!days) {
throw new Error('days not defined');
exit(1);
export function isObj(arg: unknown): arg is Record<string, unknown> {
return Object.prototype.toString.call(arg) === '[object Object]';
}
export function hasOwn<T = unknown>(arg: Record<string, unknown>, key: unknown): arg is Record<string, T> {
return (
isObj(arg) &&
Boolean(key) &&
typeof key === 'string' &&
key.length > 0 &&
@matjahs
matjahs / rumc-splunk-to-data-input.md
Created October 25, 2023 13:53
Splunk TO - Data Input
sequenceDiagram
    F5->>F5: Event
    F5->>SC4S: Forward (UDP)
    SC4S->>SC4S: Parse
    SC4S->>SC4S: Add metadata
    SC4S->>Indexer: Forward (HTTP)
    Indexer->>Indexer: Index
@matjahs
matjahs / machine.js
Created June 20, 2022 14:25
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
// - XState (all XState exports)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC21RLsD+juh7Kp3zIbB/1dHLE1oMaDx4JXLgPnnJDLz2KJgkv4qlKSmbMWF2HVP3YfXbRFCvJ5mkkgMjsa4N5mAnBo2vQlnJU0r/6FZ14p+mH4EiEfHU4j3UO1MHRNr9MMpJJiC2OPzDnNDpIATwlxaosbfstBl0aDlVYsyPmwSCtAjf1obkIeXdh51sCkmOs1d3hClZ6x/SX+YTEo2M16zhUfM9nT96VYk2y6lReBrPvusNATu5ii8TWR2ebIb43pFlNJhN3UlfINCIdTxi4TR4LGdppOGaHSMjcfRAlPrJnhrcbLbtbaqI9G3/dv+100DOJwPivv6FQvAPe4uGTZ4+nNt1+TPlMsGILZLzkhqdNe64YpUZFqU9bT9jVbA79+m+morigF1aSPOsNDIiw1afwdR6A8hU/uL7VTBX8SVuDOd8k8alXpQaf7fnGicQ1mwLSG4PYjXaLco0eB1dnK+1zFsKmZoHMRv9kLfHq+k9OZCtXNuE1HIgyFiH8HkIoyZdvLvYNEaVeeK0chCmGLg+LPMrZP3eJikHvG/oW/6dRtaiNbDGUhgAwyNDDXsR4d1J2YsDPWrPwSJBgzFU3X5EDAS8dJ39ma9ffPswTUNQ53x0pNnQL6BJHSids5RbQhZjusxKRf6OOajaf12rZ3Y2mBt4j3gG9PAdLECOzGzw== [email protected]
@matjahs
matjahs / index.js
Created January 2, 2022 13:26
Async Generators
async function * generateInput() {
yield 1;
yield 2;
yield 3;
}
async function * addOne (input) {
for await (const value of input) {
yield value + 1;
}
@matjahs
matjahs / keybase.md
Created March 31, 2020 12:07
Keybase Proof

Keybase proof

I hereby claim:

  • I am raven283 on github.
  • I am raven283 (https://keybase.io/raven283) on keybase.
  • I have a public key ASAksVhMcG7QIjvduZpy2YT0FX1GhVFVFakoD2Z-LvBdtgo

To claim this, I am signing this object:

{
"meta": {
"canonical": "https://matjah.nl",
"version": "1.2.0",
"lastModified": "2022-01-09T00:00:00.000Z"
},
"basics": {
"label": "Platform Engineer",
"email": "[email protected]",
"website": "https://matjah.nl",
{
"doses": [
{
timetime: "13:32",
date: "2018-03-01",
amount: "3",
unit: "mg",
substance: "bla"
},
{