Skip to content

Instantly share code, notes, and snippets.

@rwarren
rwarren / pgcon2020_irc_announce,py
Last active May 28, 2020 18:41
Massive hack to automate talk announcements for pgcon 2020. There is DEFINITELY a better way to do this.
#!/usr/bin/env python
# THIS FILE IS A MAAAAAAAAAAAASSIVE HACK QUICKLY MADE FOR THE ONLINE PGCON_2020
# There is DEFINITELY a better way to do this.
import argparse
import datetime
import sched
import socket
import sys
import time
@rwarren
rwarren / telegraf.conf
Created May 22, 2021 15:47
Stripped version of my telegraf.conf for chia
[global_tags]
srv_loc="home"
srv_vtype="real"
srv_purpose="chia-plotter"
srv_owner="internal"
[agent]
interval = "60s"
round_interval = true
metric_batch_size = 1000
@rwarren
rwarren / xfer_plots.py
Last active September 12, 2021 15:07
Chia plot copying script -- To copy from the "final" plot location to farm disks, safely filling farm disks
#!/usr/bin/env python3
import os
from pprint import pprint as pp
import shutil
import socket
import sys
import typing as th
# Largest plot size seen is 108,935,751,977, and smallest is 108,232,347,648. For
@rwarren
rwarren / chia_stats.py
Created May 27, 2021 14:26
Chia stats estimator functions
def daysToWin(netspaceFraction, confidence = 0.95, challengesPerDay = 4608):
losingProbability = 1 - netspaceFraction
challengesToWin = math.log(1 - confidence, losingProbability)
return challengesToWin / challengesPerDay
def earningsPerYear(xchValue_USD, netspaceFraction, confidence = 0.95, challengesPerDay = 4608, xchPerWin = 2):
xchPerDay = xchPerWin / daysToWin(netspaceFraction, confidence, challengesPerDay)
dailyUSD = xchValue_USD * xchPerDay
return dailyUSD * 365
@rwarren
rwarren / yaml_pathlib_fun.py
Last active September 13, 2021 15:14
Getting PyYaml's `yaml.safe_load` to support `pathlib.Path`
import pathlib
import yaml
def _path_representer(dumper, data):
return dumper.represent_scalar("!Path", str(data))
def _path_constructor(loader, node):
value = loader.construct_scalar(node)
return pathlib.Path(value)