Skip to content

Instantly share code, notes, and snippets.

void example()
{
A *a;
B *b;
a = a_new();
b = b_new(a);
use_b(b);
b_delete(b);
a_delete(a);
@gcmurphy
gcmurphy / proxy.go
Last active December 12, 2015 00:08
A rather crappy HTTP proxy
package main
import (
"flag"
"log"
"io"
"os"
"net/url"
"net/http"
"strings"
@gcmurphy
gcmurphy / pom_patch.rb
Last active December 17, 2015 20:28
Patch all supplied pom.xml files to use the victims-enforcer plugin.
#!/usr/bin/env ruby
require 'nokogiri'
ARGV.each do |file|
puts "Patching #{file}.."
f = File.open(file)
doc = Nokogiri::XML(f)
f.close
#doc.remove_namespaces!
@gcmurphy
gcmurphy / github_pom.rb
Created June 3, 2013 11:31
Search github for pom.xml files and extract the dependencies.
#!/usr/bin/env ruby
require 'pp'
require 'uri'
require 'net/http'
require 'octokit'
require 'nokogiri'
require 'celluloid'
require 'mongo'
require 'logger'
@gcmurphy
gcmurphy / mkflask.sh
Created July 5, 2013 06:55
Automation of some boilerplate flask setup
#!/bin/bash
mkenv(){
virtualenv env
source env/bin/activate
pip install Flask \
Flask-WTF\
Flask-SQLAlchemy\
Flask-Classy\
Flask-Assets\
@gcmurphy
gcmurphy / gist:6217834
Last active February 6, 2017 23:50
Templates for loop unrolling / metaprogramming.
#include <iostream>
#include <cstdint>
template<int i, uint64_t val, typename Function>
class Loop {
public:
static inline void call(Function f){
f(i, val);
Loop<i-1, val, Function>::call(f);
}
# save as ~/.pythonstartup.py
# export PYTHONSTARTUP=$HOME/.pythonstartup.py
# (gives you tab completion / history)
import readline
import rlcompleter
import atexit
import os
readline.parse_and_bind('tab: complete')
@gcmurphy
gcmurphy / debug_imports.py
Created October 3, 2013 06:03
Tracing all imports
import sys
import __builtin__
real_import = __builtin__.__import__
def debug_import(name, locals=None, globals=None, fromlist=None, level=-1):
glob = globals or sys._getframe(1).f_globals
importer_name = glob and glob.get('__name__') or 'unknown'
print('{} imports {}'.format(importer_name, name))
return real_import(name, locals, globals, fromlist, level)
@gcmurphy
gcmurphy / child-pom.xml
Created November 9, 2013 05:05
Basic submodule project configuration for victims. Configuration from simple-web example in this book http://books.sonatype.com/mvnex-book/reference/
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>parent</artifactId>
<groupId>org.sonatype.mavenbook.simpleweb</groupId>
<version>0.8-SNAPSHOT</version>
@gcmurphy
gcmurphy / scoping.c
Created December 18, 2013 22:35
Things that I didn't know you could do with GNU C
#include <stdio.h>
#include <stdlib.h>
#define nil NULL
#define ScopedFile FILE * __attribute__((cleanup(fclosep)))
#define ScopedMemory void * __attribute__((cleanup(freep)))
void fclosep(FILE **f){
if (*f){
fclose(*f);