Skip to content

Instantly share code, notes, and snippets.

View introspect.clj
(ns introspect
(:require [clindex.api :as clindex]
[clindex.forms-facts.core :as forms-facts]
[clindex.utils :as clindex-utils]
[datascript.core :as d]
[clojure.pprint :as pprint]
[clojure.walk :as w]
[clojure.java.io :as io]
[clojure.string :as str]))
View raymarch_test.glsl
float udBox( vec3 p, vec3 b ) {
return length(max(abs(p)-b,0.0));
}
float sdTorus( vec3 p, vec2 t )
{
vec2 q = vec2(length(p.xz)-t.x,p.y);
return length(q)-t.y;
}
View Background.pde
void setup() {
size(1100, 600);
}
enum Axis { X, Y };
void setGradient(int x, int y, float w, float h, color c1, color c2, Axis axis ) {
noFill();
View circles.pde
class Circle {
PVector center;
float radius;
public Boolean intersects(ArrayList<Circle> circles) {
for(Circle other : circles) {
if(this.center.dist(other.center) <= (other.radius + this.radius)) {
return true;
}
@mharju
mharju / read-numbers.py
Created Jul 20, 2016
Helper script to read a bunch of 4 number codes from the user.
View read-numbers.py
import sys
import argparse
import tty
import termios
def getch():
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
try:
tty.setraw(sys.stdin.fileno())
View spec.clj
; How to accomplish this so that the generator works as well?
(ns voting.core
(:require [clojure.spec :as s]
[clojure.spec.gen :as gen]))
(defn valid-card? [s]
(-> (loop [n 0 s (sort s)]
(if (empty? s) n
(when (= (inc n) (first s)) (recur (inc n) (next s)))))
(integer?)))
View satnav.core.clj
(ns satnav.core
(:require [clojure.string :as string]))
; Helpers
(def radius-earth 6371.0)
(defn degrees [rad] (* rad (/ 180.0 Math/PI)))
(defn radians [deg] (* deg (/ Math/PI 180.0)))
(defn normalize-lat [lat] (mod (+ (* 0.5 Math/PI) lat) (* 2 Math/PI)))
(defn normalize-lon [lon] (mod (+ Math/PI lon) (* 2 Math/PI)))
(defn hav [a] (/ (- 1 (Math/cos a)) 2))
@mharju
mharju / core.clj
Created Dec 7, 2015
Megakolmio solution
View core.clj
(ns megakolmio.core
(:gen-class))
(defn match-side?
"Check if given sides match each other"
[s1 s2]
(case s1
:fox-bottom (= s2 :fox-top)
:deer-bottom (= s2 :deer-top)
:racoon-bottom (= s2 :racoon-top)
@mharju
mharju / pairs.clj
Last active Aug 29, 2015
Yet another fasttrack solution
View pairs.clj
(ns pairs.core
(:require [clojure.string :as str]
[clojure.math.combinatorics :as combo]))
(def letters (map identity "pairs"))
(defn name->counts [name]
(reduce
(fn [acc value]
(if-not (nil? value)
@mharju
mharju / waves.glsl
Created Jun 30, 2014
GLSL shader test
View waves.glsl
void main(void)
{
vec2 n = 2.0 * (gl_FragCoord.xy / iResolution.xy) - 1.0;
vec2 uv = vec2(0,0);
float theta = iGlobalTime * 0.2;
uv.x = cos(theta) * n.x + sin(theta) * n.y;
uv.y = -sin(theta) * n.x + cos(theta) * n.y;
vec4 v = texture2D(iChannel0, vec2(0.0,iChannelTime[0]));