Skip to content

Instantly share code, notes, and snippets.

Avatar

Darien DHager

  • Seattle, WA
View GitHub Profile
View prepare-commit-msg
#!/bin/bash
branchPath=$(git symbolic-ref -q HEAD) #Somthing like refs/heads/myBranchName
branchName=${branchPath##*/} #Get text behind the last / of the branch path
if [[ $branchName =~ tickety([[:digit:]]+) ]]; then
bnum=${BASH_REMATCH[1]};
heading="TICKETY-$bnum \/\/";
else
heading="($branchName) ";
@DHager
DHager / ErrorCase.java
Created Mar 26, 2011
FileChannel bug in Sun's code
View ErrorCase.java
package com.technofovea.packbsp;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
/**
* This quick test shows a bug in the SUN/Oracle FileChannel class.
*
View Preon46.java
import org.codehaus.preon.Codec;
import org.codehaus.preon.Codecs;
import org.codehaus.preon.annotation.Bound;
import org.codehaus.preon.annotation.BoundNumber;
import org.codehaus.preon.annotation.If;
import org.junit.Assert;
import org.junit.Test;
public class Preon46 {
@DHager
DHager / unmolder.html
Created Apr 2, 2011
Reddit anti-mold
View unmolder.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<style>
textarea{
width:500px;
height:150px;
clear:both;
}
</style>
@DHager
DHager / StringArrayTest.java
Created Apr 5, 2011
Problem with simple String lists in Preon
View StringArrayTest.java
import java.nio.charset.Charset;
import java.util.LinkedList;
import java.util.List;
import org.codehaus.preon.Codec;
import org.codehaus.preon.Codecs;
import org.codehaus.preon.DecodingException;
import org.codehaus.preon.annotation.BoundList;
import org.codehaus.preon.annotation.BoundNumber;
import org.codehaus.preon.annotation.BoundString;
import org.junit.AfterClass;
@DHager
DHager / OverridablePropertiesConfiguration.java
Created Jun 17, 2011
Overrides behavior on Apache commons-configuration so that the property-file include mechanism "overwrites" older values
View OverridablePropertiesConfiguration.java
package com.technofovea.springtest;
import java.io.File;
import java.lang.reflect.Array;
import java.net.URL;
import java.util.Collection;
import java.util.Iterator;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
View lockfile_check.php
#!/usr/bin/env php
<?php
/**
* If composer.json references a project that has a git directory in the vendor
* folder, and that depdencency is set to track the "latest" of a branch, then
* try to validate that the lockfile-version hasn't been outpaced.
*/
class GitUtils{
@DHager
DHager / day2.py
Created Dec 2, 2015
Advent of Code Day 2
View day2.py
#http://adventofcode.com/day/2
from itertools import combinations
import operator
def wrapNeeded(dims):
sides = combinations(dims,2)
halfAreas = map(lambda (a,b): a*b, sides)
return sum(halfAreas)*2 + min(halfAreas)
@DHager
DHager / aoc_day3.py
Created Dec 3, 2015
Advent of Code Day 3
View aoc_day3.py
from collections import Counter
class Santa:
def __init__(self):
self.position = [0,0]
self.path = [tuple(self.position)]
def move(self, char):
@DHager
DHager / openssl_rc4_poc.py
Created Aug 4, 2016
An experiment to try to reproduce part of the "openssl" command line tool's behavior through Python. See blog post: http://technofovea.com/blog/archives/1054
View openssl_rc4_poc.py
#!/usr/bin/python
import sys
import itertools
import binascii
import StringIO
from Crypto.Hash import SHA, MD5
from Crypto.Cipher import AES, ARC4
from Crypto import Random