Skip to content

Instantly share code, notes, and snippets.

View Daniel15's full-sized avatar

Daniel Lo Nigro Daniel15

View GitHub Profile
Daniel15 / BlueIrisAI-NodeRedFunctionNode.js
Last active October 13, 2023 18:56
Blue Iris AI alerts in Node-RED
View BlueIrisAI-NodeRedFunctionNode.js
const {img, ...otherPayloadFields} = msg.payload;
const objectsToFilter = new Set([
'sports ball',
let formattedObjectNames = 'Nothing';
View gist:e4d896da67677c302d235985eaa7770a
container_name: zigbee2mqtt
restart: unless-stopped
image: koenkk/zigbee2mqtt:latest
- /var/local/docker/zigbee2mqtt:/app/data
- /run/udev:/run/udev:ro
- 8080:8080
Daniel15 / slack-invite-link-security-issue.txt
Last active July 17, 2023 01:16
Slack invite link security issue
View slack-invite-link-security-issue.txt
Daniel15 / WithHovercard.tsx
Created October 17, 2021 00:24
React Bootstrap tooltip with Popper.js
View WithHovercard.tsx
import React, {useEffect, useState} from 'react';
import ReactDOM from 'react-dom';
import {Placement} from '@popperjs/core';
import useMouseOver from '../hooks/useMouseOver';
import useLazyRef from '../hooks/useLazyRef';
import {usePopper} from 'react-popper';
type Props = Readonly<{
children: React.ReactNode;
Daniel15 / _common.conf
Created May 1, 2020 16:33
WordPress config with WP Super Cache for Nginx
View _common.conf
# /etc/nginx/snippets/wordpress/common.conf
index index.php;
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
# Block PHP files in uploads, content, and includes directory.
location ~* /(?:uploads|files|wp-content|wp-includes)/.*\.php$ {
Daniel15 / gist:27b31f4f223ddeb110226b0f5ce78ce9
Created November 28, 2019 09:28
WireGuard build output
View gist:27b31f4f223ddeb110226b0f5ce78ce9
root@it01:/usr/local/src/wireguard-go# make
go build -v -o "wireguard-go"
Parsing meta tags from (status code 200)
get "": found meta tag get.metaImport{Prefix:"", VCS:"git", RepoRoot:""} at
Parsing meta tags from (status code 200)
get "": found meta tag get.metaImport{Prefix:"", VCS:"git", RepoRoot:""} at
Daniel15 / ProcessExtensions.cs
Created October 26, 2019 20:18
C# WaitForExitAsync implementation
View ProcessExtensions.cs
using System;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;
namespace Daniel15.Extensions
/// <summary>
/// Extensions for <see cref="Process"/>
/// </summary>
Daniel15 / npm-output.txt
Created March 13, 2019 03:48
npm output - segfault on install
View npm-output.txt
npm info it worked if it ends with ok
npm verb cli [ '/usr/bin/node',
npm verb cli '/usr/local/bin/npm',
npm verb cli 'install',
npm verb cli '--loglevel',
npm verb cli 'verbose' ]
npm info using npm@6.9.0
npm info using node@v10.15.2
npm verb npm-session cad68cd73009e571
npm info lifecycle sitename@0.0.0~preinstall: sitename@0.0.0
Daniel15 / gist:c8c31b9e46d8c2eea6385d7dd1ba6c40
Created February 8, 2019 06:35
Debugging GPGME with WinDbg
View gist:c8c31b9e46d8c2eea6385d7dd1ba6c40
Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
CommandLine: "C:\Users\danlo\Dropbox (Personal)\src\gpgme-sharp\Examples\PgpEncryptDecrypt\bin\Debug\net40\PgpEncryptDecrypt.exe"
Symbol search path is: srv*
Executable search path is:
ModLoad: 00000000`00070000 00000000`00078000 PgpEncryptDecrypt.exe
ModLoad: 00007ffb`d88c0000 00007ffb`d8aad000 ntdll.dll
ModLoad: 00000000`774a0000 00000000`7763c000 ntdll.dll
Daniel15 / log.txt
Last active February 5, 2019 18:18
GPGME full session log
View log.txt
GPGME 2019-02-04 23:24:27 <0x48bc> gpgme_debug: level=9
GPGME 2019-02-04 23:24:27 <0x48bc> gpgme_debug: gpgme='C:\Program Files (x86)\GnuPG\bin'
GPGME 2019-02-04 23:24:27 <0x48bc> gpgme_check_version: call: 0=00000000, req_version=(null), VERSION=1.12.1-beta43
GPGME 2019-02-04 23:24:27 <0x48bc> gpgme_new: enter: r_ctx=02D7E194
GPGME 2019-02-04 23:24:27 <0x48bc> gpgme-dinfo: gpgconf='C:\Program Files (x86)\GnuPG\bin\gpgconf.exe'
GPGME 2019-02-04 23:24:27 <0x48bc> _gpgme_io_pipe: enter: filedes=02D7DB7C, inherit_idx=1 (GPGME uses it for reading)
GPGME 2019-02-04 23:24:27 <0x48bc> _gpgme_io_pipe: leave: read=0x0 (hdd=039F3740,hd=000003C0), write=0x1 (hdd=039F4AF8,hd=000003C8)
GPGME 2019-02-04 23:24:27 <0x48bc> _gpgme_io_spawn: enter: path=039F4AC0, path=C:\Program Files (x86)\GnuPG\bin\gpgconf.exe
GPGME 2019-02-04 23:24:27 <0x48bc> _gpgme_io_spawn: check: path=039F4AC0, argv[ 0] = C:\Program Files (x86)\GnuPG\bin\gpgconf.exe
GPGME 2019-02-04 23:24:27 <0x48bc> _gpgme_io_spawn: check: path=039F