Skip to content

Instantly share code, notes, and snippets.

View jroyalty's full-sized avatar

James Royalty jroyalty

View GitHub Profile
@jroyalty
jroyalty / CMakeLists.txt
Last active April 28, 2023 03:52
Work in progress CMake file for Redis simply for use in CLion
# vim: set ai expandtab:
cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
# The following must be set BEFORE doing project() or eanble_language().
# ::-------------------------------------------------------------------------::
if (NOT CMAKE_BUILD_TYPE)
message(STATUS "No build type defined; defaulting to 'Debug'")
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
"The type of build. Possible values are: Debug, Release, RelWithDebInfo and MinSizeRel.")
@jroyalty
jroyalty / crack.sh
Created July 19, 2014 21:43
Open an OS X PKG file
## If the package won't let you "Show Package Content" on right-click then...
pkgutil --expand Foo.pkg some/path
## This will probably yield one more more child .pkg files. Inside them
## look for the Payload file. Then...
mv Payload Payload.gz
gunzip Payload.gz
## Which results in Payload uncompressed. Use 'cpio' to extract files...
cpio -iv < Payload
@jroyalty
jroyalty / frugal.py
Created June 2, 2016 20:26
Python implemention of frugal streaming algorithms for estimating quantiles. See: http://arxiv.org/abs/1407.1121
class frugal1_estimator(object):
def __init__(self, qtile):
self.qtile_target = qtile
self.m = 0.0
def add(self, new_data):
r = random.random()
if new_data > self.m and r > (1.0 - self.qtile_target):
self.m += 1
elif new_data < self.m and r > self.qtile_target:
@jroyalty
jroyalty / one_pass_wrs.py
Last active August 16, 2019 20:18
One-pass weighted random sample (without replacement). Based on *Weighted Random Sampling* (2005; Efraimidis, Spirakis) [https://utopia.duth.gr/~pefraimi/research/data/2007EncOfAlg.pdf]. Longer treatment here: https://krlmlr.github.io/wrswoR/articles/internal/wrswoR.html
import math
import random
class Item(object):
def __init__(self, label, weight):
self.label = label
self.weight = weight
self.nonce = 0.0
@jroyalty
jroyalty / CMakeLists.txt
Created May 5, 2017 04:23
Little CMake config for LMDB
# vim: set ai ts=4 expandtab:
# ::=========================================================================::
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
# The following must be set BEFORE doing project() or enable_language().
if (NOT CMAKE_BUILD_TYPE)
message(STATUS "No build type defined; defaulting to 'Debug'")
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
"The type of build. Possible values are: Debug, Release, RelWithDebInfo and MinSizeRel.")
@jroyalty
jroyalty / nfqlistener.py
Created December 28, 2016 20:14
Twisted listener for NFQ
import logging
import socket
from twisted.internet import abstract, address, interfaces, defer
from zope.interface import implementer
try:
import netfilterqueue
except:
netfilterqueue = None
@jroyalty
jroyalty / CMakeLists.txt
Last active February 29, 2016 15:53
dhewm3neo/CMakeLists.txt ... Patches to builds on OS X.
project(dhewm3)
cmake_minimum_required(VERSION 2.6)
# TODO
# osx: place game .dylib's in the bundle (next to the binary)
# osx: -weak_framework ?
# maybe add these as options:
# TARGET_MONO
@jroyalty
jroyalty / test.c
Created January 19, 2016 20:36
Netmask for IPv4 source
#include <stdio.h>
#include <stdlib.h>
#include <maxminddb.h>
int main(int argc, const char * argv[]) {
MMDB_s *mmdb = (MMDB_s *)malloc(sizeof(MMDB_s));
MMDB_open("/tmp/GeoIP2-City_20160105/GeoIP2-City.mmdb",
MMDB_MODE_MMAP, mmdb);
int gai_error = 0;
@jroyalty
jroyalty / pyKairosDB-graphite.py
Created January 2, 2014 21:48
Snippet from that takes time-series data without a fixed interval and returns it bucketed by a configurable size (interval_seconds). This is abstracted from: https://github.com/pcn/pyKairosDB/blob/master/pyKairosDB/graphite.py ... This would be easily adapted for use by an OpenTSDB reader for Graphite.
def read_absolute(conn, metric_name, start_time, end_time):
"""
:type conn: pyKairosDB.KairosDBConnection
:param conn: The connection to KairosDB
:type metric_name: string
:param metric_name: The name of the metric to query (graphite does one at a time, though KairosDB can do more)
:type start_time: float
UP