Demo Mode

Android has a “demo mode” where you can change some parts of the system UI. This is great for screenshots. You can interface with the demo mode settings via adb or broadcast Intents (with the android.permission.DUMP permission). I have a library for sending these Intents. I also have an app to showcase the library and to let me take nice screenshots.

Library: https://github.com/NightlyNexus/DemoMode

App: https://play.google.com/store/apps/details?id=com.nightlynexus.demomodesettings

Demo Mode screenshot

Gutencraft

Guetencraft is my popular text-and-line-measurement and pagination tool for Minecraft to make copying and pasting books easy. Available in a JavaFX desktop app and a web page.

Use the webpage: https://nightlynexus.github.io/Gutencraft

See the demo: https://youtu.be/yOT-ZSNCexg

Read the source: https://github.com/NightlyNexus/Gutencraft


Grackle, the first-to-market Grok app

Anything with “AI” gets a bunch of downloads on Google Play. Great stuff.

https://play.google.com/store/apps/details?id=com.nightlynexus.groktheapp


WebSocket Remote Controller

Use WebSockets and an app to control your robots. Privately licensed. Email me. Eric@

WebSocket Remote Controller landscape orientation WebSocket Remote Controller portrait orientation


Application-Layer Network Logging on Android

Every app that uses Retrofit should use my library to inspect application-layer data totally transparently and easily.

https://github.com/NightlyNexus/logging-retrofit


Crash Logging to Disk on Android

I throw it into development builds of every app I build before I have set up a remote crash logging service because if I am not connected to my computer and my app crashes, I will never see that crash log without DiskCrashReporter. No setup required.

https://github.com/NightlyNexus/DiskCrashReporter


Transparent Widget

I like to have a sparse home screen on my phone, but I also want to be only a click away from my apps. So, I made a transparent home screen widget to open apps.

Get the app: https://play.google.com/store/apps/details?id=com.nightlynexus.transparentwidget

Read the source: https://github.com/NightlyNexus/TransparentWidget

Transparent Widget screenshot

Touch Blocker

Touch Blocker puts an invisible view over your screen to intercept touches. You can enable and disable it by long-pressing the power button or with a persistent floating view. My Touch Blocker app is the only app I found on the Play Store that actually works correctly and handles screen insets.

Get the app: https://play.google.com/store/apps/details?id=com.nightlynexus.touchblocker

Read the source: https://github.com/NightlyNexus/TouchBlocker

Touch Blocker screenshot

Algorithm to Get Few Random Items From Many Items

Select k items from a list of n items with equal probability. Other algorithms run at O(n * k), but depending on n is horrible when you only need a few items from a large list. My algorithm runs simply at O(k). The algorithm emulates a Fisher–Yates shuffle by using a hash table to point to swapped indices.

// O(selectCount)
fun <T> uniqueRolls(
availableOptions: List<T>,
selectCount: Int,
random: RandomNumberGenerator
): List<T> {
require(availableOptions.isNotEmpty())
require(availableOptions.size >= selectCount)
require(selectCount >= 0)
val selection = ArrayList<T>(selectCount)
val usedIndices = LinkedHashMap<Int, Int>(selectCount)
for (i in 0 until selectCount) { // O(selectCount)
val remainingSize = availableOptions.size - i
val roll = random.integer(remainingSize) // [0, availableOptions.size - i)
var resultingRoll = roll
while (true) { // Will not loop more than once per preceding iteration, so O(1).
val reroutedRoll = usedIndices[resultingRoll]
if (reroutedRoll == null) {
break
}
resultingRoll = reroutedRoll
}
usedIndices[roll] = remainingSize - 1
selection += availableOptions[resultingRoll]
}
return selection
}

Monty Hall Problem Visualizer

A webpage to show the Monty Hall problem probabilities with any door and reveal counts.

Play the game: https://nightlynexus.github.io/MontyHallProblem

Read the source: https://github.com/NightlyNexus/MontyHallProblem

Monty Hall Problem screenshot

UtF-8 Size Measurer

A webpage for measuring the byte count of text when encoded with UTF-8.

Use the webpage: https://nightlynexus.github.io/utf8size

Read the source: https://github.com/NightlyNexus/utf8size

UTF-8 Size screenshot

Carcassonne Tile Counter

Carcassonne Tile Counter is a webpage that lets you mark Carcassonne tiles as used as you play, so you know which tiles are still in the deck.

Use the webpage: https://nightlynexus.github.io/CarcassonneTileCounter

Read the source: https://github.com/NightlyNexus/CarcassonneTileCounter

Carcassonne Tile Counter screenshot

Tongiaki Tile Counter

Tongiaki Tile Counter is a webpage that lets you mark Tongiaki tiles as used as you play, so you know which tiles are still in the deck.

Use the webpage: https://nightlynexus.github.io/TongiakiTileCounter

Read the source: https://github.com/NightlyNexus/TongiakiTileCounter

Tongiaki Tile Counter screenshot

Hue Lockscreen

Hue Lockscreen is an app that controls my Hue lightbulbs from my Android home controls interface, an interface Android allows you to launch over the lock screen. This app shows a usage of Android’s esoteric and out-of-place ControlsProviderService API that allows apps to use the home controls interface.

Read the source: https://github.com/NightlyNexus/Hue-Lockscreen

Hue Lockscreen screenshot

Background Remover

Background Remover is an Android app that uses Google’s ML Kit to select only the foreground subject of an image using only your Android device’s CPU. I made this to scan the tiles for Tongiaki Tile Counter.

Get the app: Coming soon.

Read the source: Coming soon.


Exif Data Remover

Exif Data Remover is an Android app that makes copies of jpeg picture files without their Exif metadata file sections.

Read the source: https://github.com/NightlyNexus/ExifDataRemover


Search-n-Swipe

Licensed.