Skip to content

Instantly share code, notes, and snippets.

View reconbot's full-sized avatar
🏴‍☠️
Building at @github

Francis Gulotta reconbot

🏴‍☠️
Building at @github
View GitHub Profile
View archive-after.js
// label any email with archive-after/2-hours or archive-after/1-day (any number of days or hours) and it does!
// you can optionaly nest the labels eg `archive-after` and make `2-hours` inside the archive after - the script doesn't seem to care!
// Install steps
// create a new project here https://script.google.com/
// create a new file with this contents
// then create a trigger to run it every 10 minutes
// enjoy!
const LABEL_REGEX = /archive-after\/(\d+)-(day|hour)s?/
@reconbot
reconbot / day1.go
Created December 4, 2023 17:42
a broken program for solving day 1
View day1.go
package main
import (
"bufio"
"os"
"regexp"
"strconv"
"strings"
)
@reconbot
reconbot / AsyncDisposableTransaction.test.ts
Last active November 6, 2023 14:38
An example of using Symbol.asyncDispose to easily cleanup remote resources when an execption occures.
View AsyncDisposableTransaction.test.ts
import test, { describe } from 'node:test'
import { AsyncDisposableTransaction } from './AsyncDisposableTransaction'
import assert, { deepEqual, equal, rejects } from 'node:assert'
describe('AsyncDisposableTransaction', () => {
test('should rollback when not committed', async () => {
let rollbackCalled = false
await (async () => {
await using transaction = new AsyncDisposableTransaction()
transaction.rollback(() => {
View baking_jokes.json
[
"Borrowing some flour",
"Waiting for the report to rise",
"Double checking the weights",
"Proofing the report",
"Was that one egg or two?",
"Toasting the oats",
"Loading the kneaded info",
"Reticulating splines",
"Mixing the customers and orders",
View gist:b4bb188515ad58d0255bace9ac476efc
esphome:
name: esphome-web-XXXXXX
friendly_name: XXXXX
esp8266:
board: esp01_1m
# Enable Home Assistant API
api:
encryption:
View home-assistant-wifi-plug.yml
sensor:
- platform: cse7766
current:
name: "current"
accuracy_decimals: 1
voltage:
name: "voltage"
accuracy_decimals: 1
power:
name: "power"
@reconbot
reconbot / hackerchat.rs
Created February 22, 2023 03:35
this time it doesn't crash - doesn't seem to read from the network though
View hackerchat.rs
use std::{net::{SocketAddr, Ipv4Addr}, sync::Arc};
use tokio::net::{UdpSocket}; //UdpFramed
use anyhow::{Context, Result};
// use tokio::time::sleep;
// use std::time::Duration;
use socket2::{Socket, Domain, Type, Protocol};
use serde::{Deserialize, Serialize};
use std::time::{SystemTime, UNIX_EPOCH};
use tokio::sync::mpsc::{self, Receiver, Sender};
use futures::try_join;
View cargo.toml
[package]
name = "hackerchat-rust"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
anyhow = "1.0.69"
async-channel = "1.8.0"
View main.go
package main
import (
"bufio"
"encoding/json"
"fmt"
"net"
"os"
"sync"
"time"
View planetscale workflows.md

Database Workflows

  • local development workflow
    • ensure there's a dev branch that matches the machine ID and force schema, truncate tables, load dev data, write branch name/access keys to envs
    • ensure there's a test branch that matches the machine ID and force schema, truncate tables, write branch name/access keys to envs
  • github branch workflow
    • ensure there's a test branch that matches 'github', branch_name, and force schema, truncate data, write branch name/access keys to envs
  • deployment workflows
    • deploying to staging, create a branch off of staging if schema changed, force schema, try to merge, block code deploy if you can't merge
  • deploying to production, create a branch off of production if schema changed, force schema, try to merge, block code deploy if you can't merge