Skip to content

Instantly share code, notes, and snippets.

@kylewlacy
kylewlacy / fn_clone.rs
Last active July 18, 2017 16:17
Rust macro for creating a closure that implements the `Clone` trait. (Dual licensed under MIT/Unlicense; see below)
#![feature(unboxed_closures)]
#![feature(fn_traits)]
use std::time;
use std::thread;
use std::sync::{Arc, RwLock};
macro_rules! fn_clone {
// Normalized form
(
@kylewlacy
kylewlacy / cartesian_product.scala
Created November 17, 2015 07:38
Cartesian product function in Scala
import scala.reflect.ClassTag
object CartesianProduct {
/**
* Given an array containing a partial Cartesian product, and an array of
* items, return an array adding the list of items to the partial
* Cartesian product.
*
* {{{
* val partialProduct = Array(Array(1, 4), Array(1, 5), Array(2, 4), Array(2, 5))
@kylewlacy
kylewlacy / cartesian_product.rs
Created November 17, 2015 07:28
Cartesian product function in Rust
/// Given a vector containing a partial Cartesian product, and a list of items,
/// return a vector adding the list of items to the partial Cartesian product.
///
/// # Example
///
/// ```
/// let partial_product = vec![vec![1, 4], vec![1, 5], vec![2, 4], vec![2, 5]];
/// let items = &[6, 7];
/// let next_product = partial_cartesian(partial_product, items);
/// assert_eq!(next_product, vec![vec![1, 4, 6],
@kylewlacy
kylewlacy / LICENSE.txt
Last active August 29, 2015 14:13
MinTest - A bare-bones testing "library" for C (based on MinUnit)
Copyright (c) 2015 Kyle Lacy
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
@kylewlacy
kylewlacy / java_interop.clj
Last active November 8, 2020 18:53
Small DSL for making Java classes in Clojure, using ASM
; Based on https://gist.github.com/athos/1033052
(ns cljl.java-interop
(:require [clojure.string :as str])
(:import (clojure.asm Opcodes Type ClassWriter)
(clojure.asm.commons Method GeneratorAdapter)))
(def ^:dynamic *version* Opcodes/V1_6)
(def modifier->opcode
@kylewlacy
kylewlacy / fizzbuzz
Created June 28, 2013 06:20
Fizzbuzz in FALSE
[$2ø\]d:
[[d;!>][d;!-@%\]#d;!=[%0\]?%]m:
0[1+$101\>][$15m;!0=$["FizzBuzz "]?~[$5m;!0=$["Buzz "]?~[$3m;!0=$["Fizz "]?~[$ . " "]?]?]?]#
@kylewlacy
kylewlacy / Block.cs
Last active December 15, 2015 04:20
A `Block` class for use with MonoGame/XNA. Provides the verticies and indicies for drawing a BoundingBox using `GraphicsDevice.DrawIndexedPrimitives()`
using System;
using System.Linq;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Graphics;
public class Block {
public BoundingBox Box;
public Color Color;
@kylewlacy
kylewlacy / TwilightSparkle.mdpolicy
Created March 16, 2013 20:39
Good code formatting for Xamarin Studio (which is secretly just MonoDevelop in disguise)
<?xml version="1.0" encoding="utf-8"?>
<PolicySet name="TwilightSparkle.mdpolicy">
<TextStylePolicy inheritsSet="null" scope="text/x-csharp" />
<CSharpFormattingPolicy inheritsSet="Mono" inheritsScope="text/x-csharp" scope="text/x-csharp">
<AlignEmbeddedUsingStatements>False</AlignEmbeddedUsingStatements>
<AlignEmbeddedIfStatements>False</AlignEmbeddedIfStatements>
<NamespaceBraceStyle>EndOfLine</NamespaceBraceStyle>
<ClassBraceStyle>EndOfLine</ClassBraceStyle>
<InterfaceBraceStyle>EndOfLine</InterfaceBraceStyle>
<StructBraceStyle>EndOfLine</StructBraceStyle>
@kylewlacy
kylewlacy / ab.rb
Created November 10, 2012 22:14
Apache Bench Homebrew Formula
# Based on https://github.com/simonair/homebrew-dupes
# That repo seems to be dead, and I don't really feel like making a pull request.
require 'formula'
class Ab < Formula
homepage 'http://httpd.apache.org/docs/trunk/programs/ab.html'
url 'http://www.apache.org/dist/httpd/httpd-2.4.3.tar.bz2'
sha1 '0ef1281bb758add937efe61c345287be2f27f662'
depends_on 'libtool' => :build
@kylewlacy
kylewlacy / README.md
Created October 7, 2012 22:45
Mirroring an SVN Repo to GitHub

Certainly everyone has run into countless projects featured a source code repo that you wanted to clone (to build from source, for example). And certainly some of those repos were SVN-based. Now, if you're like me, you prefer the almighty git to this archaic and decrepit format that coding dinosaurs eons ago once used. So, what do you do? Go to GitHub, search for <project name>, and clone that. But wait, what if you run into a repo that doesn't have a GitHub mirror? What to do? Well, my friend, have you come to the right place:

The De-Facto SVN Mirroring Guide

I'm gonna go out on a limb and assume that you are UNIX-y, so if you am Windows, go here immediately to remedy that. Now then, fire up your terminal emulator, and follow along:

1.) Clone the repo with git as follows: git svn clone <repo url> -T trunk -t tags -b branches <project name> 2.) Add a GitHub repo for the project ('cuz, you know, sharing and whatnot) 3.) cd an