Skip to content

Instantly share code, notes, and snippets.

@hraban
hraban / static-int-functions-O0.s
Created June 28, 2012 11:56
Initialize variables using static functions instead of macros
.file "test.c"
.text
.type a, @function
a:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
movq %rsp, %rbp
.cfi_offset 6, -16
.file "test.c"
.text
.p2align 4,,15
.globl my_test
.type my_test, @function
my_test:
.LFB11:
.cfi_startproc
subq $8, %rsp
.cfi_def_cfa_offset 16
@hraban
hraban / test-O3.s
Created July 4, 2012 23:05
Inlining through namespaces
.file "test.c"
.text
.p2align 4,,15
.globl inline_value_proper
.type inline_value_proper, @function
inline_value_proper:
.LFB7:
.cfi_startproc
movl $5000, %eax
ret
@hraban
hraban / prune-spaces.c
Created July 8, 2012 16:52
Example of a function that does not like overlapping buffers
#include <assert.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#define BUF_SIZE 256
/* source and destination buffers MUST NOT overlap */
char *
prune_spaces(char * dst, size_t dst_len, const char * src)
#!/usr/bin/env python
class Node(object):
def __init__(self, name, next=None):
self.next = next
self.name = name
self.l = 1 if next is None else next.l + 1
def __iter__(self,):
cur = self
@hraban
hraban / weakrefmainloop.go
Created November 5, 2013 22:53
poc to clean up a mainloop goroutine when the "public pointer" runs out and is garbage collected
package main
import (
"fmt"
"runtime"
"time"
"unsafe"
)
type foo struct {
@hraban
hraban / gist:3017681
Last active August 15, 2016 12:25
My .emacs (hraban)
(add-to-list 'load-path "~/.emacs.d/plugins")
;; cl-* functions and macros
(require 'cl)
(cl-defmacro if-exists ((var fname) &rest body)
`(let ((,var ,fname))
(when (file-exists-p ,var)
,@body)))
@hraban
hraban / a.sh-session
Last active August 16, 2016 13:07
code snippets for Ravelin blog post
/tmp $ git clone -q github.com/unravelin/tomono
/tmp $ cat sub-repositories.txt
https://github.com/outr/scalarelational.git scalarelational
https://github.com/realph/gulp-zero.git zero
https://github.com/reaxis/mu µ
/tmp $ cat sub-repositories.txt | ./tomono/tomono.sh
… crunch crunch crunch
/tmp $ cd core
/tmp/core $ git branch
2.0.0
@hraban
hraban / vectorized-arrays.js
Last active November 10, 2016 15:12
Vectorized .all method on arrays to transparently access all members
Object.defineProperty(Array.prototype, 'all', {
get: function () {
return new Proxy(this, {
get: function(target, name, receiver) {
return target.map(x => x[name]);
},
set: function (target, name, value) {
target.forEach(x => x[name] = value);
},
// ... call:, etc.
@hraban
hraban / potential_json.go
Last active January 7, 2017 23:26
safe, human readable nested JSON encoding in Go
package main
import (
"encoding/json"
)
// PotentialJSON acts as a JSON encoding wrapper for []byte. The encoding is
// tentative:
//
// * if the contents already happen to be valid JSON, then it is represented