Skip to content

Instantly share code, notes, and snippets.

View martintrojer's full-sized avatar
🕺
My hovercraft is full of eels

Martin Trojer martintrojer

🕺
My hovercraft is full of eels
View GitHub Profile
#!/usr/bin/env python3
import argparse
docs = """
orig_data_size uncompressed size of data stored in this disk.
This excludes same-element-filled pages (same_pages) since
no memory is allocated for them.
Unit: bytes
compr_data_size compressed size of data stored in this disk
mem_used_total the amount of memory allocated for this disk. This
@martintrojer
martintrojer / setup.sh
Last active November 6, 2023 14:18
wifi -> eth bridge
#!/usr/bin/env bash
set -e
[ $EUID -ne 0 ] && echo "run as root" >&2 && exit 1
##########################################################
# You should not need to update anything below this line #
##########################################################
@martintrojer
martintrojer / datalog-queries.clj
Created July 20, 2012 14:23
Datalog in core.logic
(ns clog
(:refer-clojure :exclude [==])
(:use clojure.core.logic))
;; ------------------
(def db
#{
[#uuid "9d6280a3-7043-4e7e-9187-ad800743406a" :last-name "Downey"]
[#uuid "9d6280a3-7043-4e7e-9187-ad800743406a" :street "Hanam"]
@martintrojer
martintrojer / app.clj
Last active August 16, 2021 22:49
ring jetty gzip
(ns http-server
(:require [ring.adapter.jetty :as jetty])
(:import [org.eclipse.jetty.server.handler.gzip GzipHandler]))
(defn- add-gzip-handler [server]
(.setHandler server
(doto (GzipHandler.)
(.setIncludedMimeTypes (into-array ["text/css"
"text/plain"
"text/javascript"
@martintrojer
martintrojer / exprPattern.scala
Last active July 2, 2021 06:23
expression problem
object exprPattern extends App {
sealed trait Expr
case class Add(e1: Expr, e2: Expr) extends Expr
case class Sub(e1: Expr, e2: Expr) extends Expr
case class Num(n: Int) extends Expr
def value(e: Expr): Int = e match {
case Add(e1, e2) => value(e1) + value(e2)
case Sub(e1, e2) => value(e1) - value(e2)
case Num(n) => n
@martintrojer
martintrojer / init.el
Last active January 9, 2021 16:12
init.el clojure bits
;; Clojure
(require 'clojure-mode)
(setq auto-mode-alist (cons '("\\.cljs$" . clojure-mode) auto-mode-alist))
(setq inferior-lisp-program "lein repl")
;; clj-refactor
(require 'clj-refactor)
(add-hook 'clojure-mode-hook (lambda ()
(clj-refactor-mode 1)
(cljr-add-keybindings-with-prefix "C-c C-o")))
import itertools
print("Klara is the best")
numbers = map(float,range(1,10))
ops = ['+','-','*','/']
all_ops = list(itertools.product(ops,repeat=8))
print('There are {} different ways to order {} between {}'
.format(len(all_ops), ops, numbers))
@martintrojer
martintrojer / Hello.java
Created May 17, 2012 05:38
clojure-akka-vision
package akka.tutorial.first.java;
import akka.actor.ActorRef;
import akka.actor.UntypedActor;
import akka.actor.UntypedActorFactory;
import akka.actor.ActorSystem;
import akka.actor.Props;
public class Hello {
@martintrojer
martintrojer / blocking.clj
Last active September 4, 2018 13:36
core.async thoughts
;; ------------------------
(defn- log-time [{:keys [ns name line]} f & args]
(let [start (System/nanoTime)
res (apply f args)
elapsed (quot (- (System/nanoTime) start) 1000)]
(log/debug (format "%s/%s:%s %dus" ns name line elapsed))
res))
(defn enable-timing [var]
@martintrojer
martintrojer / blocking-thread.clj
Last active March 4, 2017 20:59
core.async blocking IO
(time
(def data-thread
(let [c (chan)
res (atom [])]
;; fetch em all
(doseq [i (range 10 100)]
(thread (>!! c (blocking-get (format "http://fssnip.net/%d" i)))))
;; gather results
(doseq [_ (range 10 100)]
(swap! res conj (<!! c)))