Skip to content

Instantly share code, notes, and snippets.

View sphrak's full-sized avatar
🐱
hax

Niclas sphrak

🐱
hax
  • Stockholm, Sverige
  • 03:51 (UTC +02:00)
View GitHub Profile
@sphrak
sphrak / latency.txt
Created October 4, 2020 11:16 — forked from jboner/latency.txt
Latency Numbers Every Programmer Should Know
Latency Comparison Numbers (~2012)
----------------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
Send 1K bytes over 1 Gbps network 10,000 ns 10 us
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD
@sphrak
sphrak / MainActivity.kt
Last active July 19, 2020 13:09
MVI Example 2 -- StateModel
class MainActivity : AppCompatActivity(R.layout.activity_main) {
@Inject
lateinit var viewModel: MainActivityViewModel
private var isInitialised: Boolean = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@sphrak
sphrak / MainActivity.kt
Last active July 19, 2020 13:08
MVI -- Example 1 -- ConflatedBroadcastChannel
class MainActivity : AppCompatActivity(R.layout.activity_main) {
@Inject
lateinit var viewModel: MainActivityViewModel
@Inject
lateinit eventChannel: ConflatedBroadcastChannel<MainActivityView.Event>
private var isInitialised: Boolean = false
@sphrak
sphrak / kotlin-snippets.md
Last active May 14, 2020 18:05
kotlin-snippets

Kotlin Snippets

A tiny collection of Kotlin snippets that I find useful.

Measure Execution time

Keep in mind this is not an end all be all measurement since the jvm has indeterministic garbage collection but it can give you a general idea of whats taking time.

With return value

@sphrak
sphrak / semverdiff.sh
Last active March 5, 2020 09:55
a tiny script for outputting changelog diff between releases for (semver)
#!/bin/bash
# Usage
# chmod +x semverdiff.sh
# Get diff between 1.0.0..1.0.1
# ./semverdiff 1.0.1
get_diff() {
sed -n "/^## \[$1\]/,/^## /p" CHANGELOG.md | egrep "^(-|\s+)"
}
@sphrak
sphrak / MaskExtension.kt
Created February 8, 2020 20:52 — forked from maiconhellmann/MaskExtension.kt
MaskExtension wrote in Kotlin
import android.support.annotation.StringDef
import android.text.Editable
import android.text.TextWatcher
import android.widget.EditText
@StringDef(PHONE_9_MASK, PHONE_8_MASK, CPF_MASK, ZIP_CODE_PT_BR, MONTH_YEAR, CREDIT_CARD)
@Retention(AnnotationRetention.SOURCE)
annotation class MaskType
const val PHONE_9_MASK = "(##) #####-####"
@sphrak
sphrak / benchmark.sh
Last active March 31, 2022 11:58
measure android app startup time
#!/bin/bash
# Simple bash script runs adb to measure startup time of android apps
trap ctrl_c INT
time=()
function ctrl_c() {
total=0
@sphrak
sphrak / terminal.md
Last active February 15, 2022 11:21
List of useful unix commands

Useful unix commands

recursively search files matching *.fileExt for pattern in current directory

grep --color -inr --include \*.kt 'SDK_INT' .

Detect how many gradle daemons are running

@sphrak
sphrak / pkglist.txt
Created September 19, 2019 06:12
Archlinux package list
acpi
acpid
alsa-firmware
alsa-utils
android-studio
android-studio-beta
android-studio-canary
android-tools
atop
audacity
import random
from time import sleep
import pygame
class CarRacing:
def __init__(self):
pygame.init()