COPY can read/write data not only from/to CSV, but also from/to binary files. For the import, the table must exist along with its columns matching CSV columns.
COPY <table> TO 'file.csv' DELIMITER ',' CSV HEADER;
#!/bin/bash | |
# input: log lines prefixed with "[YYYY-MM-DD" e.g. "[2024-02-13]", "[2024-02-13 00:00:41]" etc. | |
# output: YYYY-MM-DD.log files, with entries for respective dates | |
# Input file | |
input_file=$1 | |
gawk ' | |
# For each line |
addEventListener('scheduled', event => { | |
event.waitUntil(handleSchedule(event.scheduledTime)) | |
}) | |
async function handleSchedule(scheduledDate) { | |
const url = `https://api.github.com/repos/${OWNER}/${REPO}/actions/workflows/${WORKFLOW_ID}/dispatches` | |
await fetch(url, { | |
method: 'POST', | |
headers: { | |
'Accept': 'application/vnd.github+json', |
# pip3 install openai | |
import openai | |
import time | |
OPENAI_API_KEY = "your_api_key_here" | |
openai.api_key = OPENAI_API_KEY | |
prompt = """French: La semaine dernière, quelqu’un m’a fait part de sa gratitude envers notre travail. |
// Variables used by Scriptable. | |
// These must be at the very top of the file. Do not edit. | |
// icon-color: orange; icon-glyph: quote-right; | |
// Change these to your usernames! | |
const user = "spencer" | |
const jike = "4DDA0425-FB41-4188-89E4-952CA15E3C5E" | |
const telegram = "realSpencerWoo" | |
const github = "spencerwooo" |
# concise version: | |
# 'map(def flatten($prefix): . as $in | reduce keys[] as $key ({}; . + (if ($in[$key] | type) == "object" then $in[$key] | flatten(($prefix + $key + ".")) else {($prefix + $key): $in[$key]} end));flatten(""))' | |
# unwrapped for readabiliy: | |
map( | |
# Recursive function to flatten an object | |
def flatten($prefix): | |
. as $in | |
| reduce keys[] as $key ( | |
{}; . + ( |
import revHash from 'rev-hash' | |
import { readFileSync, statSync } from 'fs' | |
import { resolve } from 'path' | |
/** | |
* Calculate the rev hash for a file | |
* | |
* @param {string} file The path to the file to hash | |
* @returns {string} | |
*/ |
Attribute VB_Name = "basUnReplicate" | |
Option Compare Database | |
Option Explicit | |
Public Function UnReplicate() As Boolean | |
' This function copies or imports all the objects and database startup | |
' properties from a replicated database into an un-replicated database. | |
' It removes tablename_Conflict tables and removes replication-related | |
' fields like s_GUID, etc. |
When VPNs Just Work™, they're a fantastic way of allowing access to a private network from remote locations. When they don't work it can be an experience in frustration. I've had situations where I can connect to a VPN from my Mac, but various networking situations cause routing conflicts. Here are a couple of cases and how I've been able to get around them.
In this example the VPN we are connecting to has a subnet that does not conflict with our local IP, but has additional routes that conflict in some way with our local network's routing. In my example the remote subnet is 10.0.x.0/24, my local subnet is 10.0.y.0/24, and the conflicting route is 10.0.0.0/8. Without the later route, I can't access all hosts on the VPN without manually adding the route after connecting to the VPN:
launchctl unload /Library/LaunchAgents/com.tuxera.ntfs.agent.plist | |
sudo trash -Fv /Applications/Tuxera\ Disk\ Manager.app | |
sudo trash -Fv /Library/Application\ Support/Tuxera\ NTFS | |
sudo trash -Fv /Library/Filesystems/fusefs_txantfs.fs | |
sudo trash -Fv /Library/LaunchAgents/com.tuxera.ntfs.agent.plist | |
sudo trash -Fv /Library/PreferencePanes/Tuxera\ NTFS.prefPane | |
sudo trash -Fv /Library/Preferences/com.tuxera.NTFS.plist |