This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Remove posts marked as "Ad" | |
(() => { | |
const adSel = `[data-testid=placementTracking]` | |
const targetNode = document.querySelector(`body`) | |
const observer = new MutationObserver((mutations) => { | |
for (const m of mutations) { | |
m.addedNodes.forEach(node => { | |
if (ad = node.querySelector(adSel)) { | |
ad.remove(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const WebSocketProxy = new Proxy(window.WebSocket, { | |
construct(target, args) { | |
console.log("Proxying WebSocket connection", ...args); | |
const ws = new target(...args); | |
// Configurable hooks | |
ws.hooks = { | |
beforeSend: () => null, | |
beforeReceive: () => null | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Function to automatically create a user_id column for new tables with name starting with user_ | |
create or replace function create_user_id_column() | |
returns event_trigger | |
language plpgsql volatile as | |
$$ | |
declare | |
obj record; | |
identity text[]; | |
begin | |
for obj in select * from pg_event_trigger_ddl_commands() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# A simple assertion library for jq (https://github.com/stedolan/jq) | |
# Author: Srinath Sankar | |
def assert(level; expr; msg): | |
if expr then | |
. | |
else | |
. |= . + [{ level: level, message: msg }] | |
end; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# git | |
alias gs='git status' | |
alias gd='git diff' | |
alias gds='git diff --staged' | |
alias gcom='git checkout master' | |
alias gco='git checkout' | |
alias gp='git pull' | |
alias git-deleted='git log --diff-filter=D --summary' | |
# utils |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
neolink | [2023-05-01T06:39:38Z INFO neolink::rtsp::states::loggedin] backyard: Camera time is already set: 2023-05-01 16:39:31.0 -10:00:00 | |
neolink | [2023-05-01T06:39:39Z INFO neolink::rtsp::states::loggedin] backyard: Camera reports firmware version v3.0.0.1045_22061301 | |
neolink | [2023-05-01T06:39:39Z INFO neolink::rtsp::states::streaming] backyard: Starting video stream Sub Stream (Fluent) | |
neolink | [2023-05-01T06:39:39Z DEBUG neolink::rtsp::gst::sender] New IFrame for buffer @ 3.608911s | |
neolink | [2023-05-01T06:39:39Z DEBUG neolink::rtsp::gst::sender] Pushed iFrame to buffer at 3.608911s | |
neolink | [2023-05-01T06:39:39Z DEBUG neolink::rtsp::gst::sender] Iframes left in the buffer: 1 | |
neolink | [2023-05-01T06:39:39Z DEBUG neolink::rtsp::gst::sender] New PFrame for buffer @ 3.675577s | |
neolink | [2023-05-01T06:39:39Z DEBUG neolink::rtsp::gst::sender] New PFrame for buffer @ 3.742247s | |
neolink | [2023-05-01T06:39:39Z DEBUG neolink::rtsp::gst::sender] New PFrame for buffer @ 3.80891s | |
neolink | [2023-0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8"> | |
<title>Fit canvas to viewport for mobile devices</title> | |
<style> | |
* { | |
margin: 0; | |
padding: 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local function key_patterns() | |
local uniq = {} | |
for _, key in ipairs(redis.call('keys', '*')) do | |
local pattern = string.match(key, "(.-):") | |
if pattern ~= nil and pattern ~= "" then | |
if uniq[pattern] == nil then | |
table.insert(uniq, pattern) | |
uniq[pattern]=1 | |
else | |
uniq[pattern]=uniq[pattern]+1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Dynamic bracket expansion | |
eval echo "{1..3}" | |
eval echo "foo-{bar,baz}-{1..3}" | |
# Merge JSON objects | |
merged="$(jq -ers '.[0] * .[1]' <(echo '{"name": "foo"}') <(echo '{"age": "baz"}') 2>/dev/null)" | |
# Check if string is valid JSON |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# JSON diff and patch for jq (https://stedolan.github.io/jq/) | |
# Author: Srinath Sankar | |
# | |
# Usage: | |
# diff: jq -sS 'include "diff-patch"; diff' a.json b.json > patch.json | |
# patch: jq -sS 'include "diff-patch"; patch' a.json patch.json | |
# | |
# Caveats: tested only with top level objects using jq 1.6 | |
def flatten_obj: |
NewerOlder