Skip to content

Instantly share code, notes, and snippets.

@nvartolomei
nvartolomei / gist:1397951
Created November 27, 2011 18:39
Functional C
#define lambda(return_type, function_body) \
({ \
return_type __fn__ function_body \
__fn__; \
})
// Use like this:
int (*max)(int, int) = lambda (int, (int x, int y) { return x > y ? x : y; });
@nvartolomei
nvartolomei / latency.txt
Created June 3, 2012 16:57 — forked from jboner/latency.txt
Latency numbers every programmer should know
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns
Send 1K bytes over 1 Gbps network 10,000 ns 0.01 ms
Read 4K randomly from SSD 150,000 ns 0.15 ms
Read 1 MB sequentially from memory 250,000 ns 0.25 ms
Round trip within same datacenter 500,000 ns 0.5 ms
/**
* A "Left-leaning Red-Black Tree"
*
* http://www.cs.princeton.edu/~rs/talks/LLRB/LLRB.pdf
*/
public class LLRB<K extends Comparable<K>, V> {
public static void main(String[] args) {
LLRB<String, String> llrb = new LLRB<String, String>();
#!/usr/bin/env bash
# Check for jdk
if test ! $(which javac)
then
echo " x JDK not found. Please install it:"
echo " http://goo.gl/7mdf0"
echo
echo " Or check PATH"
exit
@nvartolomei
nvartolomei / gist:4190212
Created December 2, 2012 18:06
bash maze generator
yes 'c=(╱ ╲);printf ${c[RANDOM%2]}'|bash
@nvartolomei
nvartolomei / url.c
Created April 4, 2013 06:50
fast url checking
int is_urlschemechar(int first_flag, int ch)
{
/*
* The set of valid URL schemes, as per STD66 (RFC3986) is
* '[A-Za-z][A-Za-z0-9+.-]*'. But use sightly looser check
* of '[A-Za-z0-9][A-Za-z0-9+.-]*' because earlier version
* of check used '[A-Za-z0-9]+' so not to break any remote
* helpers.
*/
int alphanumeric, special;

The glory of the disconnect key sequence: a newline followed by ~.. It works like a charm.

@nvartolomei
nvartolomei / .gitignore
Created March 28, 2016 11:55
Ignore compiled node_modules artifacts
node_modules/**/*.node
node_modules/**/*.o
node_modules/**/*.a
node_modules/**/*.mk
node_modules/**/*.gypi
node_modules/**/*.target
node_modules/**/.deps/
node_modules/**/build/Makefile
node_modules/**/**/build/Makefile