Skip to content

Instantly share code, notes, and snippets.

Working from home

Erik Hellman ErikHellman

Working from home
View GitHub Profile
View personer.json
{id: 1, name: "Erik", hometown: "Stockholm"},
{id: 2, name: "Anna", hometown: "Malmö"},
{id: 3, name: "Per", hometown: "Göteborg"},
{id: 4, name: "Lisa", hometown: "Umeå"},
{id: 5, name: "Johan", hometown: "Falun"},
ErikHellman / VisualizationRenderer
Last active Aug 29, 2015
Simple renderer for a pixel shader on Android
View VisualizationRenderer
public class VisualizationRenderer implements GLSurfaceView.Renderer {
private static final int FLOAT_SIZE_BYTES = Float.SIZE / Byte.SIZE;
private final FloatBuffer mRectData;
private final Context mContext;
private String mVertexShader;
private String mFragmentShader;
public VisualizationRenderer(Context context) {
mContext = context;

Keybase proof

I hereby claim:

  • I am ErikHellman on github.
  • I am erikhellman ( on keybase.
  • I have a public key whose fingerprint is D0CC 217D A17A 94D5 FDD4 BC03 6765 F7D5 70C3 E561

To claim this, I am signing this object:

ErikHellman /
Last active Aug 29, 2015
Boosting the performance for Gradle in your Android projects

Boosting the performance for Gradle in your Android projects

Ever feel like all you do is waiting for the builds to complete in Android Studio all day? Me too. Fortunately, there are a number of improvements you can do to speed things up. Some of these are still experimental and could be unsafe, but it is probably worth a try in case you’re suffering from long build times. I’ve seen project go down to 2.5 seconds when building after small code changes using the stuff I describe below. Hope it works for you as well.

Android uses Gradle for building. The default version of Gradle at the time of writing is 2.2. The latest version is 2.4 and has a huge performance boost over previous versions. In order to make your Android project use this version, add the following at the end of your root build.grade script.

task wrapper(type: Wrapper) {
    gradleVersion = '2.4'
ErikHellman /
Created Sep 24, 2015
A base for a wrapper for the Bluetooth LE API on Android
public final class RxGattWrapper {
private SerializedSubject<BluetoothGattEvent, BluetoothGattEvent> eventSubject = new SerializedSubject<>(PublishSubject.<BluetoothGattEvent>create());
private BluetoothDevice bluetoothDevice;
private BluetoothGatt bluetoothGatt;
public RxGattWrapper(BluetoothDevice bluetoothDevice) {
this.bluetoothDevice = bluetoothDevice;
public void connect(Context context) {
ErikHellman / gist:6055718
Created Jul 22, 2013
GLES Shader for edge detection
View gist:6055718
#extension GL_OES_EGL_image_external : require
precision mediump float;
varying vec2 vTextureCoord;
uniform samplerExternalOES sTexture;
uniform float uResS;
uniform float uResT;
void main() {
vec3 irgb = texture2D(sTexture, vTextureCoord).rgb;
float ResS = uResS;
ErikHellman /
Created Mar 23, 2016
Demo of using Handlers for async operations in Android
public class MainActivity extends AppCompatActivity {
private static final int MSG_LONG_RUNNING_OPERATION = 101;
private static final int MSG_UPDATE_UI = 102;
private static final long THRITY_SECONDS = 30000;
private Handler bgHandler;
private Handler uiHandler;
private Handler.Callback callback;
private boolean doAgain = false;
View gist:fec71cc0635897a15d97f8bb050475e5
Verifying that "" is my Blockstack ID.
ErikHellman / twig.kt
Last active Nov 21, 2017
Twig - A logcat wrapper using Kotlin reified generics
View twig.kt
package se.hellsoft.twig
import android.util.Log
import se.hellsoft.kotlinhacks.BuildConfig
* Verbose logging. Will be stripped from release builds.
inline fun <reified T> T.logv(error: Throwable? = null, m: () -> String) {
if (BuildConfig.DEBUG) {
ErikHellman / BackgroundThreadFunction.kt
Last active Jan 16, 2018
Background Thread Function
View BackgroundThreadFunction.kt
fun launchBackgroundJob(job: () -> Unit) {
thread { job() }