Skip to content

Instantly share code, notes, and snippets.

@neomantra
neomantra / taskset_child_threads.sh
Created March 11, 2019 03:20
Invokes `taskset` on the child threads of the specified processes.
#!/bin/bash
# Copyright 2013-2019 Neomantra BV. All rights reserved.
# Released under the MIT License.
usage()
{
cat >&2 <<EOF
usage: $0 [-h] [-v] [-c cpulist] ppid1 [ppid2 [...]]
Given a list of parent process IDs, this script finds their child
# Builds lua_ipython_kernel on centos
ARG IMAGE_BASE="centos"
ARG IMAGE_TAG="7"
FROM ${IMAGE_BASE}:${IMAGE_TAG}
RUN yum install -y \
epel-release \
&& yum install -y \
@neomantra
neomantra / Dockerfile_cpp
Created September 19, 2017 21:11
Aeron C++ Dockerfile
# Dockerfile for Aeron C++ SDK
#
# Copyright (c) 2017 Neomantra BV
# Released under the MIT License, see LICENSE.txt
FROM debian:stretch-slim
MAINTAINER Evan Wies <[email protected]>
ARG AERON_VERSION="master"
@neomantra
neomantra / bson_float_test.c
Created June 13, 2017 05:38
BSON Float test
/// cc -o bson_float_test bson_float_test.c -lbson-1.0.0
#include <stdio.h>
#include <libbson-1.0/bson.h>
int main(int argc, const char* argv[])
{
bson_t b;
bson_init(&b);
@neomantra
neomantra / tuple_iter_inline.cpp
Created December 15, 2016 17:04
experiment with tuple iteration, boost::fusion versus manual template recursion.
#include <iostream>
#include <boost/fusion/adapted/std_tuple.hpp>
#include <boost/fusion/algorithm/iteration/for_each.hpp>
struct One {
int value() const { return 1+rand(); }
};
struct Two {
int value() const { return 2+rand(); }
@neomantra
neomantra / tuple_iter_inline.cpp
Created December 15, 2016 17:04
experiment with tuple iteration, boost::fusion versus manual template recursion.
#include <iostream>
#include <boost/fusion/adapted/std_tuple.hpp>
#include <boost/fusion/algorithm/iteration/for_each.hpp>
struct One {
int value() const { return 1+rand(); }
};
struct Two {
int value() const { return 2+rand(); }
local ffi = require("ffi")
local new = ffi.new
--[[
All numeric calculations are performed with doubles. Using
floats for storage saves memory (for big arrays). But arithmetic
is usually slower due to the required float<->double conversions.
]]
local Matrix
local MatrixStructure = ffi.typeof("double[16]")
@neomantra
neomantra / bcname.lua
Created April 10, 2014 15:00
Convert LuaJIT bytecode number to name.
-- Converts a LuaJIT bytecode number to name
--
-- usage: luajit bcname.lua bytecode_number [bytecode_number2 [...]]
--
-- example:
-- $ luajit-2.1 bcname.lua 71 72
-- VARG
-- ISNEXT
--
-- From: http://www.freelists.org/post/luajit/frames-and-tail-calls,1
@neomantra
neomantra / output.txt
Last active August 29, 2015 13:56
FFI serializer fake metamethod
$ luajit ~/Desktop/serialize_metamethod.lua
2 =%= 3
cdata<struct 98>: 0x0004d738
@neomantra
neomantra / FFI_metamethod_play.lua
Created February 27, 2014 14:35
Exploring accessing metamethods with FFI objects
local ffi = require 'ffi'
local C = ffi.C
-- in reality this would be some hashing library,
-- but for this example they are dumb functions
local hasher = function(x) return tonumber(x) end
local H = {
hash = hasher,