Skip to content

Instantly share code, notes, and snippets.

View petrosagg's full-sized avatar

Petros Angelatos petrosagg

View GitHub Profile
@petrosagg
petrosagg / generate-certs.sh
Created October 22, 2021 12:00
Materialized verify-full certificate setup
export SSL_SECRET=mzmzmz
mkdir secrets tmp
# Create CA
openssl req \
-x509 \
-days 36500 \
-newkey rsa:4096 \
-keyout secrets/ca.key \
@petrosagg
petrosagg / main.mjs
Created July 14, 2021 15:36
Consuming a stream with pg-cursor
import { Readable } from 'stream'
import pg from 'pg'
import Cursor from 'pg-cursor'
class TailStream extends Readable {
constructor(client, text, values) {
super({
highWaterMark: 5,
objectMode: true
});
@petrosagg
petrosagg / upsert-reduce.rs
Created January 28, 2021 13:21
Computed an arranged collection from a stream of upserts
use differential_dataflow::AsCollection;
use differential_dataflow::operators::arrange::ArrangeByKey;
use timely::dataflow::operators::Input;
use differential_dataflow::operators::reduce::ReduceCore;
use differential_dataflow::trace::implementations::ord::OrdValSpine as DefaultKeyTrace;
fn main() {
timely::execute_from_args(std::env::args(), move |worker| {
let mut input = timely::dataflow::InputHandle::<_, ((usize, Option<String>), _, _)>::new();
let mut probe = timely::dataflow::ProbeHandle::new();
@petrosagg
petrosagg / Cargo.toml
Created January 27, 2021 09:56
postgres full dump and atomic switch to replication
[package]
name = "postgres-replication-poc"
version = "0.1.0"
authors = ["Petros Angelatos <petrosagg@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
tokio-postgres = { path = "../rust-postgres/tokio-postgres" }
@petrosagg
petrosagg / date-tests.csv
Last active November 20, 2020 12:15
PostgreSQL date/time positive testcases
Input Date Style Parsed
January 8, 1999 ymd 1999-01-08
1999-01-08 ymd 1999-01-08
1999-01-18 ymd 1999-01-18
01/02/03 ymd 2001-02-03
19990108 ymd 1999-01-08
990108 ymd 1999-01-08
1999.008 ymd 1999-01-08
J2451187 ymd 1999-01-08
99-Jan-08 ymd 1999-01-08
@petrosagg
petrosagg / keybase.md
Created November 2, 2019 11:02
keybase.md

Keybase proof

I hereby claim:

  • I am petrosagg on github.
  • I am petrosagg (https://keybase.io/petrosagg) on keybase.
  • I have a public key ASAXnGBNMuM_F6dk6LZiMowZvaaf_ba8tFJ7jtT2Qb7yvQo

To claim this, I am signing this object:

@petrosagg
petrosagg / stop_modemmanager.sh
Created April 3, 2018 05:39
utility script to stop ModemManager from inside a resin container
#!/bin/sh
set -o errexit
export DBUS_SYSTEM_BUS_ADDRESS=unix:path=/host/run/dbus/system_bus_socket
dbus-send \
--system \
--print-reply \
--dest=org.freedesktop.systemd1 \
@petrosagg
petrosagg / write.js
Created November 1, 2017 01:58
NodeJS write speed test
const fs = require('fs')
const crypto = require('crypto')
// Create 4MB buffer
const buf = crypto.randomBytes(4 * 1024 * 1024)
const drives = [
'/dev/sda',
'/dev/sdb',
'/dev/sdc',
@petrosagg
petrosagg / schema.txt
Created October 7, 2017 21:16
Harmonise.it schema
# Schema V1 #
user(id, name)
--------------
1, petros
2, eva
themes(id, difficulty, description, theme_data)
--------------
1, hard, { stave: ... }
@petrosagg
petrosagg / Makefile
Created June 29, 2017 02:54
libext2fs emscripten
V =
ifeq ($(strip $(V)),)
E = @echo
Q = @
else
E = @echo
Q =
endif
srcdir=../..