Skip to content

Instantly share code, notes, and snippets.

@kylewlacy
kylewlacy / 57-add-emoji-support.conf
Last active November 12, 2024 14:14 — forked from ssaavedra/57-add-emoji-support.conf
Add Emoji to Linux Fontconfig (edited to fix broken fonts for Zoom video conference)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!--
Author: Santiago Saavedra <[email protected]>, Kyle Lacy
License: CC0
Year: 2016-2017
Install:
Copy to $XDG_CONFIG_DIR/fontconfig/conf.d/57-add-emoji-support.conf
Run fc-cache -f
@kylewlacy
kylewlacy / triangle.rs
Created December 9, 2016 00:04
Rust gfx triangle example using SDL2
// Copyright 2014 The Gfx-rs Developers.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@kylewlacy
kylewlacy / subshell.fish
Created June 5, 2016 08:48
fish subshell substitution
# bash:
# # <(some_command) returns a file (technically a named pipe) for the result of some_command
# $ echo <(echo "hi")
# /dev/fd63
# $ cat <(echo "hi")
# hi
#
# fish:
# # (some_command | psub) returns a file for the result of some_command
# $ echo (echo "hi" | psub)
@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;