Skip to content

Instantly share code, notes, and snippets.

Avatar

Morten Piibeleht mortenpi

  • Massey University
  • Auckland, New Zealand
View GitHub Profile
@mortenpi
mortenpi / pcniter.py
Created Mar 17, 2014
Previous / current / next iterator in Python
View pcniter.py
def previous_current_next(iterable):
"""Make an iterator that yields an (previous, current, next) tuple per element.
Returns None if the value does not make sense (i.e. previous before
first and next after last).
"""
iterable=iter(iterable)
prv = None
cur = iterable.next()
try:
View FindGSL.cmake
# Try to find gnu scientific library GSL
# See
# http://www.gnu.org/software/gsl/ and
# http://gnuwin32.sourceforge.net/packages/gsl.htm
#
# Based on a script of Felix Woelk and Jan Woetzel
# (www.mip.informatik.uni-kiel.de)
#
# Available at: http://www.miscdebris.net/blog/2010/06/21/cmake-module-to-find-gnu-scientific-library-findgsl-cmake/
#
@mortenpi
mortenpi / read_urandom.cc
Created Mar 24, 2014
Short generic C++ function to read random data of any type from /dev/urandom.
View read_urandom.cc
#include <fstream>
#include <cstdlib>
template<class T>
T read_urandom()
{
union {
T value;
char cs[sizeof(T)];
} u;
@mortenpi
mortenpi / Timer.cc
Created Apr 28, 2014
C++ Timer class using POSIX times()
View Timer.cc
#include "Timer.hh"
#include <iostream>
#include <sys/times.h>
#include <unistd.h>
// ---------------------------------------------------------------------
// class Time
// ---------------------------------------------------------------------
const long Time::sc_clk_tck = sysconf(_SC_CLK_TCK);
View sizeof.cc
#include <iostream>
using namespace std;
struct type_t {
int i;
};
void function()
{
@mortenpi
mortenpi / acbh-audio.py
Created Aug 21, 2015
Assassin's Creed: Brotherhood audio puzzle solver
View acbh-audio.py
#!/usr/bin/env python3
import itertools
def powerset(iterable):
xs = list(iterable)
return itertools.chain.from_iterable(
itertools.combinations(xs,n) for n in range(len(xs)+1)
)
samples = [
@mortenpi
mortenpi / range.cc
Created Aug 28, 2015
Function to create a vector of evenly spaced numbers in C++.
View range.cc
// Create a vector of evenly spaced numbers.
vector<double> range(double min, double max, size_t N) {
vector<double> range;
double delta = (max-min)/double(N-1);
for(int i=0; i<N; i++) {
range.push_back(min + i*delta);
}
return range;
}
@mortenpi
mortenpi / yumhelp-dbgen.py
Last active Sep 6, 2015
A quick hack to generate a sqlite database from yumdb and repository cache to ease understanding what packages are installed and available.
View yumhelp-dbgen.py
#!/usr/bin/env python3
import argparse
import os
import os.path
import re
import sqlite3
def yumdb_packages(path):
dirs = os.listdir(path)
dirs.sort()
@mortenpi
mortenpi / NoninteractiveGadfly.jl
Created Sep 7, 2015
Makes the plots in Gadfly non-interactive (Juno lags with interactive plots)
View NoninteractiveGadfly.jl
module NoninteractiveGadfly
import Compose
import Compose: writemime
import Gadfly
export @noninteractive
type NoninteractivePlot
p::Gadfly.Plot
end
@mortenpi
mortenpi / ComposeHacks.jl
Last active Sep 21, 2015
A collection of helper macros and stuff for Julia's Compose and Gadfly packages.
View ComposeHacks.jl
# ComposeHacks module
#
# This module is a collection of hacks to make working with Compose and Gadfly
# more convenient (in Julia).
#
# The MIT License (MIT)
#
# Copyright (c) 2015 Morten Piibeleht
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
You can’t perform that action at this time.