Skip to content

Instantly share code, notes, and snippets.

View joa's full-sized avatar

Joa Ebert joa

View GitHub Profile
@joa
joa / Madness.java
Last active December 22, 2015 11:08
package;
public final class Madness {
public static void main(final String[] args) {
final Stack<Integer> stack = new Stack<>();
stack.add(1);
stack.add(2);
stack.add(3);
stack.push(4);
@joa
joa / StackBlur.java
Last active February 20, 2018 12:28
Stackblur algorithm by Mario Klingemann (http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html) Based on C++ implementation by Victor Laskin (http://vitiy.info/stackblur-algorithm-multi-threaded-blur-for-cpp/)
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
/**
*
*/
public final class StackBlur {
private static final int PARALLEL_THRESHOLD = 2048 * 2048;
@joa
joa / Unchecked.java
Created October 7, 2013 17:37
Unchecked exception handling in Java 8
package brutus.compiler.util;
/**
* import static Unchecked.unchecked
* unchecked(() -> throw new IOException());
*/
public final class Unchecked {
@FunctionalInterface
public static interface UncheckedFunction {
public void apply() throws Throwable;
@joa
joa / gist:7446637
Created November 13, 2013 10:07 — forked from anonymous/gist:7446622
static int[] t = {0, 5, 1, 6, 4, 3, 2, 7};
int foo(final byte value) {
int x = value & 0xff;
x |= x >> 1;
x |= x >> 2;
x |= x >> 4;
x *= 0x1d;
x &= 0xff;
x >>= 5;
@joa
joa / Shadowing.java
Created December 15, 2013 17:20
Shadowing fun in Java The first references to x are this.x and afterwards the local variable. The code looks exactly the same but does something completely different.
class Shadowing {
private float x;
public Shadowing(float x) {
this.x = x;
}
public void foo() {
if(x < 0.5f) {
x = Math.round(x);
@joa
joa / gist:8472165
Created January 17, 2014 11:47
Calling super method of an instance does not work in Java, unless you call it on the this pointer from within a Class. C++ even allows you to do this: Derived* x = new Derived(); x->Base::meth();
class Base {
void meth() {
System.out.println("Base::meth");
}
}
class Derived extends Base {
public static void main(String[] args) {
Base x = new Derived();
x.meth();
@joa
joa / Main.java
Created February 7, 2014 12:28
Selecting JVM arguments for a simple Hello World program
class Main {
public static void main(final String[] args) {
System.out.println("Hello World!");
}
}
server {
listen 80;
server_name konklone.com;
return 301 https://$host$request_uri;
}
# optional: the 'spdy' at the end of the listen command below turns on SPDY support.
server {
listen 443 ssl spdy;
// this will optimize-deoptimize leading to v8 giving
// up on the function
String.prototype.hashCode = function() {
var n = this.length;
var hash = 0;
if(n != 0) {
for(var i = 0; i < n; ++i)
hash = Math.imul(31, hash) + this.charCodeAt(i) | 0;
return hash;
@joa
joa / HTMLOptionElement.js
Created August 1, 2014 12:23
Little JavaScript gem I found
// what does the following code print?
//
// a) false, true
// b) true, true
// c) true, false
// d) none of the above
console.log(new Option() instanceof HTMLOptionElement)
console.log(new HTMLOptionElement() instanceof HTMLOptionElement)