Skip to content

Instantly share code, notes, and snippets.

View raboof's full-sized avatar

Arnout Engelen raboof

View GitHub Profile
{ pkgs ? import <nixpkgs> {} }:
let
texlive = pkgs.texlive.combined.scheme-basic;
python = pkgs.python3;
textext = python.pkgs.buildPythonPackage rec {
pname = "textext";
version = "1.3.1";
src = pkgs.fetchFromGitHub {
owner = "textext";
package playground
import scala.concurrent.duration._
import scala.concurrent.{ExecutionContext, Future}
import scala.util.{Failure, Success, Try}
import akka.actor.{Actor, ActorLogging, ActorRef, Props}
import akka.util.Timeout
import akka.pattern.{ask, pipe}
import playground.Parent.{BulkTasks, Finish, TaskCompleted, TaskFailed}
@raboof
raboof / fixfontsizes.pl
Created May 21, 2016 17:40
Set terminal font size based on screen DPI
#!/usr/bin/perl
use strict;
use warnings;
my $windows = `wmctrl -l -G`;
my $processes = `ps faux`;
my $xrandr = `xrandr | grep " connected"`;
my @displays = ();
@raboof
raboof / CompileTimeFactorial.scala
Created March 24, 2016 19:06
Small Scala macros example: compile-time calculation of factorials
object CompileTimeFactorial {
import scala.language.experimental.macros
// This function exposed to consumers has a normal Scala type:
def factorial(n: Int): Int =
// but it is implemented as a macro:
macro factorial_impl
import scala.reflect.macros.blackbox.Context
@raboof
raboof / nametrainer.js
Created October 27, 2015 07:41
Poor man's Xebia name-trainer
/*
* Usage:
* - open https://updates.xebia.com/smoelenboek/
* - paste this file into chrome developer tools js console
* - look at the picture in the top-left corner and choose from the names in the js console
*/
images = jQuery('dt.portrait img')
answer = [ , , , ]
@raboof
raboof / jdk8binderror.patch
Created October 9, 2015 20:17
What if... java BindExceptions would actually tell you *which* address is already in use?
diff -r d3b0a91b15b3 make/mapfiles/libjava/mapfile-vers
--- a/make/mapfiles/libjava/mapfile-vers Tue Oct 06 12:54:22 2015 +0300
+++ b/make/mapfiles/libjava/mapfile-vers Fri Oct 09 22:15:40 2015 +0200
@@ -56,6 +56,7 @@
JNU_ThrowArrayIndexOutOfBoundsException;
JNU_ThrowByName;
JNU_ThrowByNameWithLastError;
+ JNU_ThrowByNameWithLastErrorAndMsg;
JNU_ThrowClassNotFoundException;
JNU_ThrowIllegalAccessError;
@raboof
raboof / onename.txt
Created September 15, 2015 23:06
onename verification
Verifying that +raboof is my blockchain ID. https://onename.com/raboof
@raboof
raboof / styles.css
Last active February 2, 2016 09:07
Atom.io styles for use on a high-DPI screen
html {
font-size: 22px
}
linter-message {
font-size: 22px
}
@media (min-width: 1920px) {
[theme-one-dark-ui-layoutmode="auto"] { font-size: @font-size + 10px; }
}
@raboof
raboof / .ctags
Last active November 8, 2019 12:40
--fields=+l
--verbose=no
--recurse=yes
--tag-relative=yes
--tag-relative=yes
--exclude=target
--exclude=.git
--langdef=scala
--langmap=scala:.scala
--regex-scala=/^[ \t]*((abstract|final|sealed|implicit|lazy)[ \t]*)*(private|protected)?[ \t]*class[ \t]+([a-zA-Z0-9_]+)/\4/c,classes/
@raboof
raboof / MultiMap.scala
Last active February 23, 2016 21:03
MultiMap
type ListMultiMap[A, B] = Map[A, List[B]]
implicit class ListMultiMapOps[A, B](val map: ListMultiMap[A, B]) extends AnyVal {
/** May be overridden */
def makeList: List[B] = Nil
def addBinding(key: A, value: B): ListMultiMap[A, B] = map + (key -> { value :: map.getOrElse(key, makeList) })
def removeBinding(key: A, value: B): ListMultiMap[A, B] = map.get(key) match {
case None => map