Skip to content

Instantly share code, notes, and snippets.

@bmaupin
bmaupin / modern-native-compiled-languages.md
Last active October 14, 2024 23:38
Modern high-level languages that compile to native binaries

Goal

A simple way to write native applications (particularly CLI applications but optionally GUI applications) in a modern language (e.g. not C++/Qt) that's fun to use (e.g. not Go). This is primarily for small utilities where speed isn't a big concern. Binary size is a mild concern. Most of the rest is just icing on the cake (cross-compile support, etc).

Summary

Language High-level Garbage-collected Cross-compiling REPL Backed by large organization Cross-platform GUI library Comments
👉 TypeScript with pkg yes yes yes yes yes yes This isn't really "native" but may be the best option for something quick and dirty without having to resort to less-fun languages (like Go). See test-javascript-executables for ways to get the binary as small as possible.
Kotlin with GraalVM yes yes ⚠ [no](https://github.com/oracle/graal/
@bmaupin
bmaupin / kobo-support.md
Last active October 4, 2021 19:08
Kobo support
@bmaupin
bmaupin / wii-remote-powering-off.md
Last active January 29, 2024 16:09
Wii remote intermittently powering off

Symptoms

Wii remote will randomly power off when in use.

Cause

This is most often caused by a bad connection between the batteries and the contacts, which is frequently due to corrosion from current or past battery leakage. This is fairly common with standard non-rechargeable alkaline batteries.

Prevention

@bmaupin
bmaupin / ankidroid-clean-ui.md
Last active May 28, 2021 14:36
AnkiDroid clean UI config

General configuration

Here are some general tips to make AnkiDroid have a cleaner UI that's a little bit less distracting:

  1. Go to Settings > Reviewing

  2. Uncheck Show button time

    (This shows the next interval for the card above each answer button)

  3. Uncheck Show Top Bar

@bmaupin
bmaupin / nsui-ssl-error.md
Last active May 25, 2021 12:27
New Super Ultimate Injector SSL error fix
@bmaupin
bmaupin / android-llama-alternatives.md
Last active December 11, 2024 17:21
Alternatives to Llama for Android

Goal

Find a replacement for Llama (R.I.P. 😢)

Conclusion

🦙 Keep using Llama! 🦙

  • Llama still works and no other application seems to match Llama in terms of ease of use and cell-tower location (Llama's killer feature)
  • Cell-tower location UX seems to be unmatched by the alternatives (training new locations, ignoring towers, seeing location events)
@bmaupin
bmaupin / ade-document-too-short.md
Last active September 3, 2021 12:35
Adobe Digital Editions E_ADEPT_DOCUMENT_TOO_SHORT

Problem

Opening some .acsm files (e.g. those from archive.org) with Adobe Digital Editions will show the following error message: E_ADEPT_DOCUMENT_TOO_SHORT

Cause

Uncertain. Some have theorized it's because Adobe Digital Editions 2.0.1 requires .NET 3.5, which does not support TLS 1.2 out of the box.

There is a Windows patch to add TLS 1.2 support to .NET 3.5.1: https://support.microsoft.com/en-us/topic/support-for-tls-system-default-versions-included-in-the-net-framework-3-5-1-on-windows-7-sp1-and-server-2008-r2-sp1-5ef38dda-8e6c-65dc-c395-62d2df58715a

@bmaupin
bmaupin / docker-container-network-access.md
Last active May 23, 2024 03:33
Docker container network access

Incoming access from local network

Method Docker iptables setting Firewall on? Accessible from local network
docker run --network=host -p 3306:3306 false No Yes
docker run --network=host -p 3306:3306 false Yes No
docker run -p 3306:3306 Default Yes ⚠️ Yes
docker run -p 127.0.0.1:3306:3306 Default Yes No

An alternative option would be to leave the Docker iptables as the default, leave the firewall on, and modify iptables itself à la https://stackoverflow.com/a/51741599/399105

@bmaupin
bmaupin / nsui-via-wine.md
Last active August 26, 2025 21:11
Run New Super Ultimate Injector with Wine

Installation

Prerequisites

Install NSUI

@bmaupin
bmaupin / tl-wr841n-range-extender.md
Last active November 18, 2023 20:21
Make TP-Link TL-WR841N a wireless range extender

Using the stock firmware

  1. Connect to the primary router and set the 2.4 GHz network to a specific channel
    • The channels must be the same for WDS to work
  2. Connect to the router using a network cable
  3. If you're running OpenWrt, you'll need to flash the stock firmware
    1. Download the latest firmware for your hardware version from TP-Link's website
    2. Strip the stock firmware using dd; see the steps here: https://openwrt.org/toh/tp-link/tl-wr841nd#go_back_to_original_firmware
    3. Flash the stock firmware from LUCI
  4. Browse to the stock firmware web interface (192.168.0.1)