Skip to content

Instantly share code, notes, and snippets.

@brianmay
brianmay / update_sequences
Created May 2, 2013 02:23
Update postgresql sequences in preparation for asynchronous replication. Ensure sequence numbers by multiple masters never conflict.
#!/usr/bin/python
# translated to python from http://fahodzi.wordpress.com/2010/11/11/generating-even-and-odd-postgresql-databases-for-replication/
import argparse
import psycopg2
parser = argparse.ArgumentParser(description='Update sequences for replication')
parser.add_argument('--host', dest='host', help='Postgresql host')
parser.add_argument('--user', dest='user', help='Postgresql password')
parser.add_argument('--password', dest='password', help='Postgresql password')
parser.add_argument('--port', dest='port', type=int, help='Postgresql port')
@brianmay
brianmay / testldap
Last active December 20, 2015 02:49
Test case for LDAP reconnection issue
#!/usr/bin/env python
import ldap
import ldap.modlist
import time
def debug(*argv):
""" print debugging. """
argv = [str(arg) for arg in argv]
print " ".join(argv)
@brianmay
brianmay / gist:a84407351f9c9f0cb241
Last active February 20, 2024 13:08
learnGitBranching production/development lesson
{
"goalTreeString": "%7B%22branches%22%3A%7B%22master%22%3A%7B%22target%22%3A%22C3%27%22%2C%22id%22%3A%22master%22%2C%22remoteTrackingBranchID%22%3A%22o/master%22%7D%2C%22o/master%22%3A%7B%22target%22%3A%22C3%27%22%2C%22id%22%3A%22o/master%22%2C%22remoteTrackingBranchID%22%3Anull%7D%7D%2C%22commits%22%3A%7B%22C0%22%3A%7B%22parents%22%3A%5B%5D%2C%22id%22%3A%22C0%22%2C%22rootCommit%22%3Atrue%7D%2C%22C1%22%3A%7B%22parents%22%3A%5B%22C0%22%5D%2C%22id%22%3A%22C1%22%7D%2C%22C2%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C2%22%7D%2C%22C3%22%3A%7B%22parents%22%3A%5B%22C2%22%5D%2C%22id%22%3A%22C3%22%7D%2C%22C4%22%3A%7B%22parents%22%3A%5B%22C2%22%5D%2C%22id%22%3A%22C4%22%7D%2C%22C5%22%3A%7B%22parents%22%3A%5B%22C3%22%2C%22C4%22%5D%2C%22id%22%3A%22C5%22%7D%2C%22C6%22%3A%7B%22parents%22%3A%5B%22C4%22%5D%2C%22id%22%3A%22C6%22%7D%2C%22C7%22%3A%7B%22parents%22%3A%5B%22C5%22%2C%22C6%22%5D%2C%22id%22%3A%22C7%22%7D%2C%22C3%27%22%3A%7B%22parents%22%3A%5B%22C6%22%5D%2C%22id%22%3A%22C3%27%22%7D%7D%2C%22tags%22%3A%7B%

Keybase proof

I hereby claim:

  • I am brianmay on github.
  • I am penguin_brian (https://keybase.io/penguin_brian) on keybase.
  • I have a public key whose fingerprint is D636 5126 A92D B560 C627 ACED 1784 577F 811F 6EAC

To claim this, I am signing this object:

prune# radvdump
#
# radvd configuration generated by radvdump 2.11
# based on Router Advertisement from fe80::100:0:0:0
# received by interface wwp0s20u4
#
interface wwp0s20u4
{
AdvSendAdvert on;
@brianmay
brianmay / gist:4351597a43561253544f530b5d23a5a5
Last active February 2, 2021 08:00
teslamate 1.21.0 renewal log
2021-02-02 07:34:27.303 [info] Refreshing access token ...
2021-02-02 07:34:27.499 [info] GET /
2021-02-02 07:34:27.512 [info] Sent 200 in 12ms
2021-02-02 07:34:28.142 [error] GenServer TeslaMate.Api terminating
** (MatchError) no match of right hand side value: {:error, %TeslaApi.Error{env: %Tesla.Env{__client__: %Tesla.Client{adapter: nil, fun: nil, post: [], pre: []}, __module__: TeslaApi, body: %{"response" => "endpoint_deprecated:_please_update_your_app."}, headers: [{"date", "Tue, 02 Feb 2021 07:34:28 GMT"}, {"content-type", "application/json; charset=utf-8"}, {"transfer-encoding", "chunked"}, {"connection", "keep-alive"}, {"x-frame-options", "SAMEORIGIN"}, {"x-xss-protection", "1; mode=block"}, {"x-content-type-options", "nosniff"}, {"cache-control", "no-store"}, {"pragma", "no-cache"}, {"www-authenticate", "Bearer realm=\"Doorkeeper\", error=\"\", error_description=\"translation missing: en.doorkeeper.errors.messages\""}, {"x-request-id", "c4bcdb1c413c45532faaf8da6fdc4d3ac4bcdb1c413c45532faaf8da6fdc4d
@brianmay
brianmay / faulty.rs
Created November 24, 2022 01:30
Why does this not compile? If I inline the get_display function (see comments) it works
use esp_idf_hal::{
gpio::{InputPin, OutputPin},
i2c::{self, I2cDriver},
};
use shared_bus::{BusManager, I2cProxy, NullMutex};
use ssd1306::{
mode::BufferedGraphicsMode, prelude::I2CInterface, size::DisplaySize128x64, Ssd1306,
};
type SharedBus<'a> = BusManager<NullMutex<I2cDriver<'a>>>;
nix build -L '.#robotica-slint'
warning: Git tree '/home/brian/tree/personal/robotica/robotica-rust' is dirty
robotica-rust-clippy> unpacking sources
robotica-rust-clippy> unpacking source archive /nix/store/0rms5j8hjfljizz13i6cngd19sh3v791-p7crrxf7rjyhiiaqys6bhgrir3c3ali0-source
robotica-rust-clippy> source root is p7crrxf7rjyhiiaqys6bhgrir3c3ali0-source
robotica-rust-clippy> patching sources
robotica-rust-clippy> Executing configureCargoCommonVars
robotica-rust-clippy> copying cargo artifacts from /nix/store/840zs1hk1f0li0mdyjbg88rk08gggpa2-robotica-rust-deps-0.1.0/target to target
robotica-rust-clippy> configuring
robotica-rust-clippy> will append /build/p7crrxf7rjyhiiaqys6bhgrir3c3ali0-source/.cargo-home/config.toml with contents of /nix/store/lsvr8fmz0wn2i5f1vvnprzn6flj3pmw2-vendor-cargo-deps/config.toml
nix build -L '.#robotica-slint'
robotica-rust-clippy> unpacking sources
robotica-rust-clippy> unpacking source archive /nix/store/wz3gq94fyyjf3d7a6s06g3nycmvr56vf-30li8cnm8w5rjd20i47m7rz6px5q0sij-source
robotica-rust-clippy> source root is 30li8cnm8w5rjd20i47m7rz6px5q0sij-source
robotica-rust-clippy> patching sources
robotica-rust-clippy> Executing configureCargoCommonVars
robotica-rust-clippy> copying cargo artifacts from /nix/store/wq19dwjs1fzynw06j5phmgmn890qjz4a-robotica-rust-deps-0.1.0/target to target
robotica-rust-clippy> configuring
robotica-rust-clippy> will append /build/30li8cnm8w5rjd20i47m7rz6px5q0sij-source/.cargo-home/config.toml with contents of /nix/store/lsvr8fmz0wn2i5f1vvnprzn6flj3pmw2-vendor-cargo-deps/config.toml
robotica-rust-clippy> default configurePhase, nothing to do
@brianmay
brianmay / freetdm.patch
Last active September 24, 2023 04:00
Ancient freetdm patch
diff --git a/libs/freetdm/src/ftdm_io.c b/libs/freetdm/src/ftdm_io.c
index 96fd235..142bbfd 100644
--- a/libs/freetdm/src/ftdm_io.c
+++ b/libs/freetdm/src/ftdm_io.c
@@ -1240,12 +1240,11 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_send_fsk_data(ftdm_channel_t *ftdmchan, f
}
if (ftdmchan->token_count > 1) {
- ftdm_fsk_modulator_init(&fsk_trans, FSK_BELL202, ftdmchan->rate, fsk_data, db_level, 80, 5, 0, ftdmchan_fsk_write_sample, ftdmchan);
+ ftdm_fsk_modulator_init(&fsk_trans, ftdmchan->span->modem_type, ftdmchan->rate, fsk_data, db_level, 80, 5, 0, ftdmchan_fsk_write_sample, ftdmchan);