Skip to content

Instantly share code, notes, and snippets.

View LeifAndersen's full-sized avatar

Leif Andersen LeifAndersen

View GitHub Profile
@LeifAndersen
LeifAndersen / gst.rkt
Created December 22, 2016 15:35
GST FFI binding
#lang racket/base
(require ffi/unsafe
ffi/unsafe/define
racket/stxparam
racket/splicing
(for-syntax racket/base
syntax/parse
racket/syntax
racket/string))
#lang racket/gui
(require video/private/editor
data/queue)
(define q (make-queue))
(define vid-snip%
(class editor-snip%
(init-field editor)
#lang racket
(module foo racket
(provide A%)
(define A%
(class object%
(super-new)
(field [state 0])
(define/public (foo)
"world"))))
@LeifAndersen
LeifAndersen / a-file.rkt
Created January 9, 2017 20:07
Paramters and Eval
#lang racket
(provide (struct-out foo)
my-param)
(require file/convertible)
(define my-param (make-parameter "hello"))
(struct foo ()
#lang racket
(define-syntax (fuck me)
(syntax-case me ()
[(_)
(begin
(define dr #'dict-ref)
(define dr* (local-expand #'dict-ref 'expression '()))
#`(list #,dr #,dr*))]))
@LeifAndersen
LeifAndersen / ill-formed.rkt
Last active January 18, 2017 20:51
Ill formed bytecode
#lang racket/base
(define ill
(let ((base (string-append "a")))
(λ () base)))
(ill)
(define (grayscale-pict s)
(define buf (pict->argb-pixels s))
(define gray-buf
(apply bytes
(append*
(for/list ([i (in-range 0 (bytes-length buf) 4)])
(define a (bytes-ref buf i))
(define r (bytes-ref buf (+ i 1)))
(define g (bytes-ref buf (+ i 2)))
(define b (bytes-ref buf (+ i 3)))
@LeifAndersen
LeifAndersen / travis-debug.sh
Last active March 10, 2017 16:29
Travis Debug Script for Video
#!/usr/bin/env bash
export RACKET_DIR=~/racket
export RACKET_VERSION=HEAD
sudo apt-get -qq update
sudo apt-get install -y libmlt6
sudo apt-get install -y libav-tools
sudo apt-get install -y ladspa-sdk
sudo apt-get install -y libgdk-pixbuf2.0-*
@LeifAndersen
LeifAndersen / fact.rkt
Created April 16, 2017 14:25
Heavy Contracts
#lang scratch
(module u racket
(define (fact t-fact x acc lookup mk)
(if (= x 0)
(lookup acc)
(t-fact fact (- x 1) (mk (* (lookup acc) x)) lookup mk)))
(provide fact))
(module t typed/racket
#lang racket/base
(require racket/set
racket/list)
(define (P event space)
(/ (for/fold ([acc 0])
([x (in-list space)]
#:when (event x))
(add1 acc))