Skip to content

Instantly share code, notes, and snippets.

(def vars ['a 'b])
(def equation '(+ 1 a b))
;; I want to create a let environemnt such that
;; (let [ [a b] [1 2]] equation)
;; such that in this expression when evaluated, the variables in the quation have been bound
(bindvars vars [1 2] equation)
@tgoossens
tgoossens / gist:10584633
Created April 13, 2014 13:40
org mode bibtex latex process config
#+begin_src emacs-lisp :exports none
(setq reftex-default-bibliography '("bib/references.bib"))
(setq org-latex-pdf-process
'("pdflatex -interaction nonstopmode -output-directory %o %f"
"/usr/bin/bibtex %b"
"pdflatex -interaction nonstopmode -output-directory %o %f"
"pdflatex -interaction nonstopmode -output-directory %o %f"))
@tgoossens
tgoossens / StreamMock.java
Created March 30, 2013 16:15
needs mockito library
public class StreamMock {
/**
* Will create a mock object. When one of the methods of this mock object is
* invoked, it will write information about this method-call to the given
* printstream.
*
* @param clazz
* @param out
* @return
@tgoossens
tgoossens / aimd.clj
Created March 29, 2013 17:16
AIMD (Additive Increment Multiplicative Decrement) simulator for my assignment of Computer Networks. I used encanter to visualise the results. A possible extensions of this small piece of software would be to have the "maxbandwidth" to be variable over time so that the dynamic properties of AIMD can be studied.
(ns aimd.core
(:require [incanter.core :as ic]
[incanter.stats :as stats]
[incanter.charts :as charts]))
(defn increase-rate
"Additive incrementation of the rate of sender s with a factor n"
[n s]
(update-in s [:rate] + n))
@tgoossens
tgoossens / Person.java
Last active December 15, 2015 02:59
Immutable classes with public fields. because what the heck?
package p2;
/**
* Person with string address
*/
public final class Person{
public final String name;
public final String address; //addres defined in the same manner as person
public final JodaDate birthdate; //because java date suck
@tgoossens
tgoossens / SampleInterface.java
Last active December 13, 2015 19:08
A specialised method that creates a mock object. When a mock object's method is invoked information about its arguments is written a string (in bytes) to the outputstream
package meta.nxt;
public interface SampleInterface {
public void singleint (int a);
public void twiceint (int a, int b);
@tgoossens
tgoossens / BTInitiator.java
Created February 14, 2013 11:19
TestClasses for BTProtocol of p&o project 2013. BTInitiator runs on the PC and initiaties the bluetoothconnection. And opens a DataInputStream CommTest (receiver) runs on NXT and waits for incoming connection. USAGE: 1) startup NXT with CommTest 2) Press Right arrow to let CommTest wait for bluetooth connection 3) Startup BTInitiator
import java.io.IOException;
import java.io.OutputStream;
import lejos.pc.comm.NXTComm;
import lejos.pc.comm.NXTCommException;
import lejos.pc.comm.NXTCommFactory;
import lejos.pc.comm.NXTInfo;
/*
* RUNS ON PC
@tgoossens
tgoossens / piece.clj
Created December 4, 2012 22:22
Board game
Idea
------
I'm redesigning last years project in java (course: OOP)
Long story short:
I have a "board" ,"robot" "item", "wall"
a board contains pieces at certain positions
Name: V(i), i=1..6, domain: 0..9
Name: E(i), i=1..9, domain: 1..9
Constraint: V(i) \= V(j), range: i < j
Constraint: E(i) \= E(j), range: i < j
Constraint: E(i) = abs(V(b)-V(a)) /\ E(j) = abs(V(c)-V(d)) /\ E(k) = abs(V(e)-V(f)), range: i >= 0, i =< 3, a=i, b = (a mod 3) + 1, b <= 3 , j=i+3, c=a+3,d=b+3, k=i+6, e=a, f=d
@tgoossens
tgoossens / gist:4131595
Created November 22, 2012 15:02
mazeexplore quick fix
* Drives the robot in the requested direction. As always the direction is in the relative axis of the robot,
* instead of the absolute one.
* @param reqDir
*/
private void driveSectorLengthInDirection(Orientation reqDir) {
if(reqDir == currentOrientation.turnClockWise()){
getRobot().rotate(90, Rotation.CLOCKWISE);
}else if(reqDir == currentOrientation.turnAntiClockWise()){
getRobot().rotate(90, Rotation.COUNTERCLOCKWISE);
}else if(reqDir == currentOrientation.opposite() ) {