Skip to content

Instantly share code, notes, and snippets.

View kristianlm's full-sized avatar

Kristian Lein-Mathisen kristianlm

View GitHub Profile
(module grid *
(import chicken scheme ports)
(include "grid.scm"))
;;; example macro for embedding raw data (in this case a font) as a
;;; "binary blob" during compile-time.
(use srfi-1)
(define-syntax make-font
(er-macro-transformer
(lambda (form r t)
;; specs is ((index scanlines ...) ...)
(let ((specs (cdr form)))
modified hello-world.c
@@ -1,6 +1,5 @@
#include <stdio.h>
int main() {
- fprintf(stderr, "Goodbye, ");
- fputs("World!\n", stderr);
+ fprintf(stderr, "Goodbye, World!\n");
return 0;
}
(use matchable hmac sha2 base64 tweetnacl)
(define (base64url-decode m) (base64-decode (string-translate m "-_" "+/")))
(define (base64url-encode m)
(string-trim-right ;; remove = padding (not used/needed in jwt)
(string-translate (base64-encode m) "+/" "-_") #\=))
(define (hs256 secret) (hmac secret (sha256-primitive)))
;; b64header ignored! (read https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/)
@kristianlm
kristianlm / rotating colored square ortho.scm
Last active December 28, 2015 00:59
CHICKEN glls example on android
(use sdl2 miscmacros (prefix opengl-glew gl:) glls-render gl-utils gl-math)
;; unhappy REPL on Android? (import (prefix opengl-glew gl:))
(define window (create-window! "sokoworld" 0 0 640 480 '(resizable opengl)))
(gl-attribute-set! 'context-major-version 3)
(gl-attribute-set! 'context-minor-version 0)
(gl-create-context! window)
(gl:init)
@kristianlm
kristianlm / ota.sh
Last active November 3, 2015 21:31
expected="c109d23ad00e8a50cf33ae1c3d811b2cd7a0bafe"
fn=index.html
curl -s google.com/$fn > /$fn.part
cs=`sha1sum /$fn.part | cut -d " " 1`
if [ "$cs" == "$expected"] ; then
echo "checksum ok $cs"
mv /$fn.part /$fn:$cs
@kristianlm
kristianlm / Xresources
Last active August 29, 2015 14:22
configuration.nix
! Use a nice truetype font and size by default...
! xterm ----------------------------------------------------------------------
xterm*VT100.geometry: 80x25
xterm*faceName: Inconsolata:style=Regular:size=8
!xterm*font: -*-dina-medium-r-*-*-16-*-*-*-*-*-*-*
xterm*dynamicColors: true
xterm*utf8: 2
xterm*eightBitInput: true
xterm*saveLines: 65568
# build nanomsg for Android's aosp
# hope this is useful for someone! :D
LOCAL_PATH := $(ANDROID_BUILD_TOP)/external/nanomsg/src
include $(CLEAR_VARS)
LOCAL_SRC_FILES := core/epbase.c core/sock.c core/poll.c \
core/symbol.c core/ep.c core/pipe.c \
core/sockbase.c core/global.c devices/device.c \
// code from http://paulbourke.net/miscellaneous/dft/
// help from http://www.codeproject.com/Articles/9388/How-to-implement-the-FFT-algorithm
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
/*
This computes an in-place complex-to-complex FFT
x and y are the real and imaginary arrays of 2^m points.
dir = 1 gives forward transform
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := src/core/epbase.c src/core/sock.c src/core/poll.c \
src/core/symbol.c src/core/ep.c src/core/pipe.c \
src/core/sockbase.c src/core/global.c src/devices/device.c \
src/transports/inproc/ins.c src/transports/inproc/inproc.c \
src/transports/inproc/cinproc.c src/transports/inproc/binproc.c \
src/transports/inproc/sinproc.c src/transports/inproc/msgqueue.c \