Skip to content

Instantly share code, notes, and snippets.

View derrickturk's full-sized avatar
💭
(Come in under the shadow of this red rock)

Derrick Turk derrickturk

💭
(Come in under the shadow of this red rock)
View GitHub Profile
@derrickturk
derrickturk / doggr.py
Created January 29, 2014 21:46
In the game of web scraping, you win... or you die.
from urllib import request
from sys import argv, stdout, stderr
from time import sleep
from random import randrange
import re
def main(argv):
if len(argv) == 1:
try:
with open(argv[0], 'r') as f:
@derrickturk
derrickturk / hsv_scale.R
Last active August 29, 2015 13:56
Handy function for HSV-scale-izing real-valued data.
hsv.scale <- function (var, hmin, hmax=hmin, smin=1, smax=smin, vmin=1, vmax=vmin,
na.col=rgb(0.75, 0.75, 0.75))
{
var.min <- min(var, na.rm=TRUE)
var.max <- max(var, na.rm=TRUE)
h.f <- approxfun(c(var.min, var.max), c(hmin, hmax))
s.f <- approxfun(c(var.min, var.max), c(smin, smax))
v.f <- approxfun(c(var.min, var.max), c(vmin, vmax))
tmp <- var
@derrickturk
derrickturk / iife.R
Created February 6, 2014 00:27
Javascript style "immediately invoked function expressions" plus on.exit for scope guards in R. Cleanup actions get carried out regardless of clean or error exit from block.
(function() {
pdf("example.pdf")
on.exit(dev.off())
plot(some.data)
})()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
body {
-moz-columns: 20em;
-webkit-columns: 20em;
columns: 20em;
-moz-column-gap: 2em;
@derrickturk
derrickturk / build.bat
Created February 25, 2014 21:43
Dinking around with building windows DLLs with MinGW again. And figured out where the [[gnu::stdcall]] goes.
g++ -std=c++11 -Wall -Wextra -c dlltest.cpp
g++ -shared -static-libgcc -static-libstdc++ -o dlltest.dll dlltest.o -Wl,--add-stdcall-alias
#include <iostream>
constexpr int fac(int n)
{
return n <= 0 ? 1 : n * fac(n - 1);
}
struct [[weenie]] C {
void f() && { std::cout << "dying C's last gasp!\n"; }
void f() & { std::cout << "living, breathing C\n"; }
#include <iostream>
#include <ios>
#include <iomanip>
#include <cstring>
#include <cstdlib>
int main(int argc, char **argv)
{
if (argc != 2) {
std::cerr << "Usage: " << (argc ? argv[0] : "double") << " <number>\n";
Option Explicit
Public Function arrayAddress(ByRef arr() As Double) As Long
arrayAddress = VarPtr(arr(0))
End Function
Public Sub investigateArrays()
Dim d(0 To 9) As Double
Dim x() As Double
@derrickturk
derrickturk / Makefile
Created March 6, 2014 05:05
Callback functions in VBA: VBA calls DLL calls VBA.
CXX=g++
CXXOPTS=-std=c++11 -pedantic -Wall -Wextra -Werror -static-libgcc -static-libstdc++
OPTOPTS=-O3 -fno-exceptions -fno-rtti -ffast-math -mfpmath=387 -msse3 -mtune=core2 -funroll-loops -s
DLLOPTS=-shared
LINKOPTS=-Wl,--add-stdcall-alias
LOG=
#LOG=-DLOGGING="log.txt"
callback.dll: callback.o
$(CXX) $(CXXOPTS) $(LOG) $(OPTOPTS) $(DLLOPTS) -o callback.dll callback.o $(LINKOPTS)