Skip to content

Instantly share code, notes, and snippets.

@vorce
vorce / gist:9791756
Created March 26, 2014 19:53
ObservableCondition
/**
* Observes an {@link Observable<T>} and returns a new Observable<R> that emits
* items based on the predicate<T> and the <R> onTrue and <R> onFalse functions.
*/
public class ObservableCondition<R, T> {
private final rx.Observable<T> condition;
private Func0<? extends R> onTrue = {}
private Func0<? extends R> onFalse = {}
private Predicate<T> predicate;
@vorce
vorce / gist:9709863
Last active August 29, 2015 13:57
Conditional Observable stuff
// First sketch, with just functions.
// Usage:
// Observable<Boolean> myCondition = ...
// Observable<List<Foo>> foos = onCondition(myCondition,
// fetchFoos(a1, a2, a3), // returns a Func0<Observable<List<Foo>>>
// { empty() })
// .flatMap({it})
public final static <R> Observable<R> onCondition(Observable<Boolean> observable,
final Func0<? extends R> onTrue,
final Func0<? extends R> onFalse) {
@vorce
vorce / gist:8718599
Created January 30, 2014 21:02
Compojure example
(ns webpoints.handler
(:use compojure.core)
(:require [compojure.handler :as handler]
[compojure.route :as route]))
;; Our "database"
(def mydb (atom {}))
(defn set-points
"Update hostname with points"
@vorce
vorce / gist:5817721
Created June 19, 2013 20:25
Spazmo-qore, contribution to the 4k source compo 2004
#include "g.h"
#define f float
f P=3.1415,X= 500,Y=400, o;
#define e glEnd
#define g glVertex3d
#define n glEnable
#define N glNormal3d
#define fl for(
#define i int
c(f h) { f j; glBegin(6); N(0,0,-1);g(0,0,0);
@vorce
vorce / gist:5748534
Created June 10, 2013 13:02
hex-to-rgb
(defn hex-to-rgb
"Convert hex strings to rgb list. Ex: 'FF0000' -> (255 0 0)"
[hex]
(let [ hex-pairs (partition 2 hex) ]
(for [p hex-pairs]
(java.lang.Integer/parseInt (apply str p) 16))))
@vorce
vorce / gist:5373385
Created April 12, 2013 16:46
SHahara. Shell script sandbox for VirtualBox. Basically just a wrapper for VBoxManage snapshot.
#!/bin/sh
# SHahara
# Inspired by: https://github.com/jedi4ever/sahara
#
# Sandbox for virtualbox for shell scripts
# Wrapper for VBoxManage and snapshots
SH_TEST_SNAPSHOT=sh_test_snapshot
VBOX=VBoxManage
@vorce
vorce / gist:5227527
Last active December 15, 2015 07:59
Roman numerals kata in Elixir lang. My very first use of the language >_<
Code.require_file "../test_helper.exs", __FILE__
defmodule ElixirRoman1Test do
@moduledoc "Tests number to roman numerals"
use ExUnit.Case
defp romans_list do
HashDict.new [ {10, "X"}, {9, "IX"}, {5, "V"},
{4, "IV"}, {1, "I"}]
@vorce
vorce / Elixir ExUNit error message
Created March 23, 2013 11:22
Test case failure from Elixir's ExUnit
% elixir test/elixir_roman1_test.exs
1) test roman 1 should return I (ElixirRoman1Test)
** (ExUnit.ExpectationError)
expected: "I"
to be equal to (==): ""
at /home/vorce/code/elixir_roman1/test/elixir_roman1_test.exs:19
3 tests, 1 failures.