Skip to content

Instantly share code, notes, and snippets.

View leobm's full-sized avatar

Felix Wittmann leobm

  • Hamburg, Germany
View GitHub Profile
@leobm
leobm / JSONParser.hs
Created December 14, 2020 13:31 — forked from zearen/JSONParser.hs
A simple haskell demonstation showing parsing JSON with Parsec
{-
Zachary Weaver <[email protected]>
JSONParser.hs
Version 0.1.1
A simple example of parsing JSON with Parsec in haskell. Note that
since the primary point of this excersize is demonstration,
Text.Parsec.Token was avoided to expose more of the grammar. Also,
complicated optimizations and shorcuts were avoided (mostly).
@leobm
leobm / RAF.purs
Created December 5, 2020 19:02 — forked from garyb/RAF.purs
requestAnimationFrame looping subscription in Halogen 5
module RAF where
import Prelude
import Data.Foldable (traverse_)
import Data.Maybe (Maybe(..))
import Effect.Aff.Class (class MonadAff)
import Effect.Ref as Ref
import Halogen as H
import Halogen.HTML as HH
@leobm
leobm / melon.bas
Created October 24, 2020 14:39
Locomotive Basic, Amstrad CPC, Melon slice
100 MODE 1
110 ORIGIN 320,200
120 GREEN=9:BGREEN=18:BRED=6:BLACK=0
130 INK 1,GREEN:INK 2,BGREEN:INK 3,BRED:INK 4,0
140 DEG
150 SW=60:EW=240:ST=10
160 R=190:FC=1
170 GOSUB 300
180 R=175:FC=2
190 GOSUB 300
@leobm
leobm / echo-ws-server.pl
Created June 21, 2020 15:52 — forked from willprice/echo-ws-server.pl
SWI-Prolog echo server with some JSON manipulation using websockets.
% INSTRUCTIONS
% =swipl echo-server.pl=
% =:- start_server.=
%
% Then navigate to http://localhost:3000 in your browser
:- module(echo_server,
[ start_server/0,
stop_server/0
@leobm
leobm / 1_promise.cljc
Created April 4, 2020 16:05 — forked from jaidetree/1_promise.cljc
A WIP library of promise macros for ClojureScript
(ns cljs.promise
(:refer-clojure :exclude [resolve]))
(defmacro promise
"
Example:
(promise (resolve 5))
(promise (reject (js/Error. \"oops\")))
"
@leobm
leobm / math.asm
Created January 10, 2020 12:24 — forked from hausdorff/math.asm
mod and div implemented in 6502 asm
; load some data up
LDA #$7
STA $00 ; memory addr A
LDA #$05
STA $01 ; memory addr B
JMP Divide
;modulus, returns in register A
Mod:
LDA $00 ; memory addr A
@leobm
leobm / mini-promise.cljc
Created August 7, 2019 12:56 — forked from beders/mini-promise.cljc
Super minimal macro to simplify dealing with promise/async/await code in ClojureScript
(defn create-function-call [param expr]
"Create an sexp for calling expr with a first argument provided by a promise.
If expr is a list (already in form suitable for a function call), insert the first argument at second position,
otherwise turn expr into a function call expression, unless the function is an fn, which is simply returned.
println -> (fn [param] (println param))
(* 2) -> (fn [param] (* param 2))
@leobm
leobm / detect_colors.py
Last active March 2, 2019 12:57
software that can name colors
# Use the tool
# python detect_color.py --image source.png
#
# Install the opencv and numpy packages before
# python -m pip install numpy
# python -m pip install opencv-python
# python -m pip install scikit-learn
# import the necessary packages
import numpy as np
@leobm
leobm / elementChange.js
Created September 21, 2018 11:14 — forked from psyrendust/elementChange.js
Add and remove MutationObserver events to a registered DOM element.
/**
* @typedef MutationCallback
* @param {NodeList} addedNodes A NodeList of elements that have been added to the DOM.
* @param {NodeList} removedNodes A NodeList of elements that have been removed from the DOM.
*/
/**
* Add a MutationObserver to a DOM node.
*
* @example
*

The project can be built using Lumo

npm install -g lumo-cljs
lumo build.cljs