Skip to content

Instantly share code, notes, and snippets.

K. kaja47

Block or report user

Report or block kaja47

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@kaja47
kaja47 / XMLSW.scala
Created Aug 27, 2018
nicer javax.xml.stream.XMLStreamWriter
View XMLSW.scala
object XMLSW {
private val f = XMLOutputFactory.newInstance
def document(encoding: String = "utf-8", version: String = "1.0")(body: XMLSW => Unit) = {
val out = new StringWriter()
val w = f.createXMLStreamWriter(out)
val ww = new XMLSW(w)
ww.document(encoding, version)(body)
w.flush()
w.close()
View gist:f1804142577495beae13041c9d9094d8
import scala.util.matching.Regex
import java.util.regex.Matcher
def replaceAllByString(r: Regex, s: String, f: Matcher => String) = {
val m = r.pattern.matcher(s)
m.reset()
var lastAppendPos = 0
var result = m.find()
if (result) {
View artisan-log-parser.scala
def parseLine(l: String) = {
def march(l: String, pos: Int, ch: Char): Int = {
var i = pos; while (i < l.length) {
if (l.charAt(i) == ch) return i
i += 1
}
sys.error("")
}
def marchUntilStringEnds(l: String, pos: Int): Int = {
@kaja47
kaja47 / gist:4407844
Created Dec 29, 2012
React.PHP promise timeout
View gist:4407844
<?php
use React\Promise\Deferred;
function timeout($time, $promise, $loop) {
$defer = new Deferred;
$r = $defer->resolver();
$sig = $loop->addTimer($time, function() use($r) {
$r->reject('timeout');
});
@kaja47
kaja47 / regex-api-is-really-intuitive.scala
Last active Jun 28, 2017
scala.util.matching.Regex.replaceAll
View regex-api-is-really-intuitive.scala
val matchAll = new Regex(".*")
matchAll.replaceAllIn("I have no money", m => m.matched)
// I have no money
matchAll.replaceAllIn("I have $0", m => m.matched)
// I have I have $0
matchAll.replaceAllIn("I have $1", m => m.matched)
// java.lang.IndexOutOfBoundsException: No group 1
@kaja47
kaja47 / parallelRadixsort.d
Last active Jun 6, 2017
parallel radix sort
View parallelRadixsort.d
import std.range;
import std.parallelism;
import core.atomic;
import gcc.builtins;
T[] parallelRadixsort(T)(T[] arr, T[] tmparr) {
assert(arr.length == tmparr.length, "lengths");
alias Histo = int[256];
alias Histo4 = int[256][T.sizeof];
@kaja47
kaja47 / radix-sort.d
Last active May 27, 2017
radix sort in D
View radix-sort.d
T[] radixsort(T)(T[] arr, T[] tmparr) {
assert(arr.length == tmparr.length);
int[256][T.sizeof] counts;
foreach (v; arr) {
foreach (b; 0 .. T.sizeof) {
uint c = (v >> (b * 8)) & 0xff;
counts[b][c] += 1;
}
View gist:31e741552085437dc367
<?php
// really really fast loop (0.008s)
$arr = range(1, pow(2, 24)+1);
for ($i = 1; $i < 200000; $i++) {
unset($arr[$i]);
$arr[] = 1;
}
@kaja47
kaja47 / mm.c
Last active Dec 1, 2016
matrix multiplication
View mm.c
__attribute__((always_inline)) inline float hadd(__m256 x) {
x = _mm256_hadd_ps(x, x);
x = _mm256_hadd_ps(x, x);
return ((float*)&x)[0] + ((float*)&x)[4];
}
#define PAD 16
void square_mat_mul_tiered(float *a, float *b, const int len, float *res) {
@kaja47
kaja47 / phash.go
Last active Nov 6, 2016
Perceptual hashing + locality-sensitive hashing example
View phash.go
package main
import (
"fmt"
"image"
"image/color"
"os"
"math"
"path/filepath"
_ "image/gif"
You can’t perform that action at this time.