Skip to content

Instantly share code, notes, and snippets.

@kaja47
kaja47 / rachel-riley.scala
Last active August 29, 2015 13:55
Contdown's number game solver for all freaks who like me watched too much British panel shows.
sealed trait Tree {
def eval: Option[Int]
}
case class Leaf(n: Int) extends Tree {
override def toString = n.toString
def eval = Some(n)
}
case class Node(op: String, l: Tree, r: Tree) extends Tree {
@kaja47
kaja47 / gist:482a80a4054bb4572cc5
Last active August 29, 2015 14:02
scala vs. swift (round 1)
let yetAnotherPoint = (1, -1)
switch yetAnotherPoint {
case let (x, y) where x == y:
println("(\(x), \(y)) is on the line x == y")
case let (x, y) where x == -y:
println("(\(x), \(y)) is on the line x == -y")
case let (x, y):
println("(\(x), \(y)) is just some arbitrary point")
}
@kaja47
kaja47 / matcher-obvious.php
Last active August 29, 2015 14:07
Matcher examples
<?php
$m = Matcher::multi('//table[@id="egmFixtureList"]/tr[@class]', [
'datum' => 'td[@colspan]',
'spielnr' => 'td[1]',
'anpfiff' => 'td[2]',
'team1' => 'td[3]/a/text()',
'team2' => 'td[5]/a/text()',
'spielbericht' => 'td[7]/a/@href',
])->fromHtml()->map(function ($rows) {
@kaja47
kaja47 / branch-test.c
Last active August 29, 2015 14:09
branch prediction test
#include <stdio.h>
#include <stdlib.h>
#include <immintrin.h>
// gcc -std=c99 -D IS_RAND=0 branch-test.c ; for i in -1 -2 1 3 2 4 8 16; do echo '### ' $i; perf stat -r5 -o _stats_pred_base --append ./a.out $i; echo; done
// gcc -O3 -std=c99 -D IS_RAND=0 branch-test.c ; for i in -1 -2 1 3 2 4 8 16; do echo '### ' $i; perf stat -r5 -o _stats_pred_o3 --append ./a.out $i; echo; done
// gcc -std=c99 -D IS_RAND=1 branch-test.c ; for i in 8 16 32 64 128 256; do echo '### ' $i; perf stat -r5 -o _stats_rand_base --append ./a.out $i; echo; done
// gcc -O3 -std=c99 -D IS_RAND=1 branch-test.c ; for i in 8 16 32 64 128 256; do echo '### ' $i; perf stat -r5 -o _stats_rand_o3 --append ./a.out $i; echo; done
./ext/date/lib/parse_date.c:10272
./Zend/zend_language_scanner.c:1533
./Zend/zend_ini_scanner.c:1350
./ext/sqlite3/libsqlite/sqlite3.c:636
./sapi/phpdbg/phpdbg_lexer.c:373
./ext/date/lib/parse_iso_intervals.c:250
./ext/standard/var_unserializer.c:189
./ext/mbstring/oniguruma/regexec.c:157
./ext/pcre/pcrelib/pcre_compile.c:119
./ext/standard/url_scanner_ex.c:100
val runes = "ᚨᛒᚳᛞᛖᚠᚷᚺᛁᛃᚲᛚᛗᚾᛟᛈᛩᚱᛋᛏᚣᚢᚹᛤᛣᛉ"
def runize(str: String) = str.toLowerCase map (l => if (runes.isDefinedAt(l-'a')) runes(l-'a') else ' ')
@kaja47
kaja47 / gist:bddc1403d6a182264029
Created January 2, 2015 11:21
little matcher css selector example
<?php
Matcher::multi('div.article', [
'title' => 'h2'
'date' => 'span.date'
])->fromHtml(new CssMatcherContext)
try {
throw new Exception("E2")
} catch {
case ex: Exception if ex.getMessage == "E1" =>
println("caught E1")
case ex: Exception if ex.getMessage == "E2" =>
println("caught E2")
}
@kaja47
kaja47 / gist:fd426c8c21ddb07bb617
Last active August 29, 2015 14:17
PHP puzzler
$size = 512*1024;
$keys = range(1, $size);
//shuffle($keys);
$arr = [];
foreach ($keys as $k) {
$arr[$k] = $k;
}
$s = microtime(1);
@kaja47
kaja47 / sepukku.scala
Created May 5, 2015 16:31
sudoku solver
val boardStr = """
53 7 |
6 195 |
98 6 |
8 6 3|
4 8 3 1|
7 2 6|
6 28 |
419 5|
8 79|