Skip to content

Instantly share code, notes, and snippets.

View chrisyco's full-sized avatar

Chris Wong chrisyco

View GitHub Profile
@chrisyco
chrisyco / leak.c
Created April 8, 2012 06:46
Memory leak in 10 lines of code
#include <stdlib.h>
#include <unistd.h>
int main() {
size_t sz = sysconf(_SC_PAGESIZE);
for (;;) {
char *leak = malloc(sz);
leak[0] = 'a';
}
@chrisyco
chrisyco / OldExp.hs
Created March 25, 2012 20:47
Initial attempt at lambda expression data structure
-- |
-- Module : Saliva.Model.OldExp
-- Copyright : GPLv3
--
-- Maintainer : [email protected]
-- Portability : portable
--
-- The 'Exp' data type, for representing lambda expressions.
module Saliva.Model.OldExp
@chrisyco
chrisyco / FizzBuzz.hs
Created February 22, 2012 03:38
FizzBuzz variations
-- | FizzBuzz: an example program, similar in purpose to the infamous
-- Hello World, that serves to demonstrate the features and syntax of
-- the language in which it is written.
--
-- The rules of the game are as follows:
--
-- 1. If the number is divisible by 3, return \"Fizz\";
--
-- 2. If the number is divisible by 5, return \"Buzz\";
--
@chrisyco
chrisyco / BirdTree.hs
Created January 19, 2012 04:16
Bird tree solution in linear time
import Data.ByteString.Char8 ( ByteString )
import qualified Data.ByteString.Char8 as B
import Control.Applicative ( (<$>), (<*>) )
import Data.Char ( isSpace )
import Data.List ( intercalate )
import Data.Maybe ( catMaybes )
import Data.Ratio ( (%), numerator, denominator )
{-
@chrisyco
chrisyco / BirdTree.hs
Created January 17, 2012 01:39
Bird tree solution (simplified)
import Data.ByteString.Char8 ( ByteString )
import qualified Data.ByteString.Char8 as B
import Data.Char ( isSpace )
import Data.Functor ( (<$>) )
import Data.List ( intercalate, unfoldr )
import Data.Maybe ( fromJust )
import Data.Ratio ( (%) )
{-
@chrisyco
chrisyco / BirdTree.hs
Created January 1, 2012 05:05
Bird tree solution
module BirdTree where
import Control.Monad.Maybe
import Control.Monad.State
import Data.ByteString.Char8 ( ByteString )
import qualified Data.ByteString.Char8 as B
import Data.Char ( isSpace )
import Data.Functor ( (<$>) )
@chrisyco
chrisyco / desmume-compiling.md
Created December 13, 2011 05:01
How to compile DeSmuME on Debian or Ubuntu

How to compile DeSmuME on Debian or Ubuntu

(with a mildly condescending tone)

Step 0 (optional)

You can enable fancy optimizations by creating a config.site file. To do this, open your favorite text editor and type:

@chrisyco
chrisyco / gist:1276918
Created October 11, 2011 00:01
Autoboxing is not foolproof
// Duck.java
class Duck {
public static void quack(Integer num) {
System.out.println(num);
}
}
// Main.java
class Main {
public static void main(String[] args) {
@chrisyco
chrisyco / interactive_sort.py
Created October 2, 2011 00:38
Sort a list of items interactively
yes_letters = set('yt')
no_letters = set('nf')
def read_bool(prompt):
'''Read a boolean value from standard input.'''
answer = None
while answer not in yes_letters and answer not in no_letters:
answer = raw_input(prompt).strip()[0].lower()
return answer in yes_letters
@chrisyco
chrisyco / Frangipani.scala
Created September 10, 2011 06:18
LWJGL test
object Frangipani {
// Add path to native libraries
val jarName = getClass.getProtectionDomain.getCodeSource.getLocation.getPath
val nativeDir = new File(new File(jarName).getParent, "natives").getPath
System.setProperty("org.lwjgl.librarypath", nativeDir)
def start() {
// Initialize the display
try {
Display.setDisplayMode(new DisplayMode(800, 600))