Skip to content

Instantly share code, notes, and snippets.

View nickva's full-sized avatar

Nick Vatamaniuc nickva

  • USA
View GitHub Profile
@nickva
nickva / repscript.sh
Created February 27, 2022 20:43
Simple CouchDB replication setup
#!/bin/bash
set -xe
DB=http://adm:pass@localhost:15984
http $DB
http -b delete $DB/_replicator
http -b delete $DB/source
http -b delete $DB/target
@nickva
nickva / read_only_replication_source.sh
Last active February 10, 2022 19:45
Prevent regular doc writes to the replication source
#!/bin/sh
# Prevent regular doc writes to the replication source. Used, for example, when
# migrating to a new instance and we want to prevent clients writing to the old
# instance by accident. Design doc writes and all doc reads can still take
# place.
#
# (`http` is the httpie client https://httpie.io/)
DB="http://adm:pass@localhost:15984"
@nickva
nickva / monitor_nodes.erl
Created November 11, 2021 20:05
Erlang net_kernel:monitor_nodes/1 snippet
spawn(fun () ->
net_kernel:monitor_nodes(true),
F = fun Loop() ->
receive Msg ->
io:format("~n *** mon msg:~p~n", [Msg]),
Loop()
end
end,
F()
end).
@nickva
nickva / validate_erlang_install.md
Last active November 8, 2021 22:34
Validate Erlang Install By Running Custom Tests Suites
#!/usr/bin/env python
# Run with an n=1 dev/run test cluster
# Needs python 3.7 minimum
#
# $ virtualenv -p python3 venv3
# $ . venv3/bin/activate
# $ pip install requests
import base64
@nickva
nickva / viewsize_fdb.py
Created March 5, 2020 20:17
View size testing script adapted for CouchDB 4.0
#!/usr/bin/env python
import argparse
import sys
import couchdb
import random
import string
import uuid
import time
import copy
@nickva
nickva / add_docs.py
Created November 13, 2019 23:29
Add and read docs from CouchDB
#!/usr/bin/env python
import sys, socket, hashlib, base64, itertools, time, random, string, couchdb
DEBUG = True
PORT = 15984
DATABASE = 'db'
def lg(*args):
if DEBUG:
@nickva
nickva / couch_job_bench.erl
Created June 24, 2019 13:30
Benchmark for couch_jobs branch
% Licensed under the Apache License, Version 2.0 (the "License"); you may not
% use this file except in compliance with the License. You may obtain a copy of
% the License at
%
% http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
% License for the specific language governing permissions and limitations under
@nickva
nickva / progbar.py
Created October 15, 2018 19:21 — forked from jhlb/progbar.py
progbar.py : Print current position in file versus file length.
#!/bin/env python
import sys, os
USAGE="""
./progbar.py PROCESS_ID [FILE_DESCRIPTOR_NUMBER]
Usage:
./progbar.py PROCESS_ID
@nickva
nickva / build_otp.sh
Created October 10, 2018 22:26 — forked from gburd/build_otp.sh
Shell script to build a debug or valgrind enabled Erlang OTP release and other helpful notes.
#!/usr/bin/env bash
# Note: erlang depends on ncurses, openssl at a minimum
usage ()
{
echo "usage: $0 <release> <type>"
echo " release: R14B01|R14B02|R14B03|R14B04|R15B|R15B01|R15B02|R15B03|R16B|R16B01|R16B02"
echo " type: normal, opt, gcov, gprof, debug, valgrind, or lcnt"