Skip to content

Instantly share code, notes, and snippets.

Avatar

Richard Banasiak banasiak

View GitHub Profile
View links.php
@banasiak
banasiak / SemanticVersionComparator.kt
Last active May 10, 2022
A version string comparator that adheres to the SemVer standard (https://semver.org)
View SemanticVersionComparator.kt
class SemanticVersionComparator: Comparator<String> {
private val nonDigits: Regex = Regex("[^\\d.]")
private val onPeriods: Regex = Regex("\\.")
override fun compare(currentVersion: String, otherVersion: String): Int {
// remove everything after the "+" character, sanitize non-digits, then split on the periods
val semVerCurrent: MutableList<String> = currentVersion
.substringBefore("+")
View BanasiakCat.xml
<scheme name="BanasiakCat" version="142" parent_scheme="Darcula">
<metaInfo>
<property name="created">2021-11-04T15:11:45</property>
<property name="ide">AndroidStudio</property>
<property name="ideVersion">2020.3.1.24</property>
<property name="modified">2021-11-04T15:11:52</property>
<property name="originalScheme">BanasiakCat</property>
</metaInfo>
<attributes>
<option name="LOGCAT_ASSERT_OUTPUT">
@banasiak
banasiak / DefaultUncaughtExceptionHandler.java
Created Jan 16, 2018
Absolute last chance to log an exception and it's stack trace to logcat for an Android app.
View DefaultUncaughtExceptionHandler.java
public class MyApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
if(BuildConfig.DEBUG) {
final Thread.UncaughtExceptionHandler handler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(
(t, e) -> {
Timber.wtf(e);
handler.uncaughtException(t, e);
@banasiak
banasiak / KotlinEchoServer.kt
Created Nov 23, 2017
An example echo server written in Kotlin.
View KotlinEchoServer.kt
import java.io.BufferedReader
import java.io.InputStreamReader
import java.io.PrintWriter
import java.net.ServerSocket
import kotlin.concurrent.thread
const val SERVER_PORT = 1337
fun main(args: Array<String>) {
@banasiak
banasiak / cheerlights.py
Last active Nov 23, 2019
A python script that polls the CheerLights API and sets the LEDs of a Blinkt! hat.
View cheerlights.py
# curl https://get.pimoroni.com/blinkt | bash
import blinkt
import requests
from collections import deque
from requests.adapters import HTTPAdapter
from requests.exceptions import ConnectionError
from sys import exit
from time import sleep
View pepperbot2.py
# pip3 install RPI.GPIO
# pip3 install adafruit-circuitpython-ads1x15
import board
import busio
import adafruit_ads1x15.ads1115 as ADS
import RPi.GPIO as GPIO
from adafruit_ads1x15.analog_in import AnalogIn
from board import SCL, SDA
from math import floor
View ReplaceNotepadWindows10.bat
@echo off
echo Create Backup copies of the original notepad.exe
copy C:\Windows\notepad.exe C:\Windows\notepad.exe.bak
copy C:\Windows\System32\notepad.exe C:\Windows\System32\notepad.exe.bak
copy C:\Windows\SysWOW64\notepad.exe C:\Windows\SysWOW64\notepad.exe.bak
echo Take Ownership of the files
takeown /F C:\Windows\notepad.exe /A
takeown /F C:\Windows\System32\notepad.exe /A
takeown /F C:\Windows\SysWOW64\notepad.exe /A
View DebugModeTapListener.java
private class DebugModeTapListener implements View.OnClickListener {
private int tapCount = 0;
private long lastTap = SystemClock.elapsedRealtime();
@Override
public void onClick(final View v) {
final Context context = getApplicationContext();
long currentTap = SystemClock.elapsedRealtime();
if (currentTap - lastTap < 500) {
@banasiak
banasiak / DefaultKeyBindings.dict
Last active Oct 29, 2018 — forked from Jimbly/DefaultKeyBindings.dict
Mac OSX keybindings to more closely match Windows
View DefaultKeyBindings.dict
/* ~/Library/KeyBindings/DefaultKeyBinding.Dict
This file remaps the key bindings of a single user on Mac OS X 10.5 to more closely
match default behavior on Windows systems.
You must log out and back in to see these changes.
Here is a rough cheatsheet for syntax.
Key Modifiers
^ : Ctrl
$ : Shift