Skip to content

Instantly share code, notes, and snippets.

View mitchwongho's full-sized avatar
Build > Test > Deploy

Mitchell Wong Ho mitchwongho

Build > Test > Deploy
View GitHub Profile
mitchwongho / Docker
Last active November 29, 2023 06:36
Docker 'run' command to start an interactive BaSH session
View Docker
# Assuming an Ubuntu Docker image
$ docker run -it <image> /bin/bash
mitchwongho / HelloWorld.kt
Last active November 6, 2023 15:03
A trivial Gradle build file for a Kotlin application
View HelloWorld.kt
fun main(args: Array<String>) {
MyFirstClass("Hello, My First Class").out()
class MyFirstClass(val message: String) {
fun out() {
mitchwongho / osmc_expressvpn_openvpn.md5
Last active January 17, 2023 20:38
Setting Up TunnelBear or ExpressVPN (using OpenVPN) On OSMC
View osmc_expressvpn_openvpn.md5
# Setting Up ExpressVPN (OpenVPN) On OSMC
## References
- [Brian Hornsby' Kodi OpenVPN plugin](
- [Install and Configure OpenVPN on OSMC/Kodi](
- [ExpressVPN - High speed, ultra secure, and easy to use. Instant setup.](
- [[HOWTO] OSMC/Rasp Pi as OpenVPN client](
## Steps
mitchwongho /
Created May 17, 2021 10:37 — forked from henriquemenezes/
Android: Generate Release/Debug Keystores

Android: Generate Release/Debug Keystores

Generate Keystores

Debug Keystore

$ keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "C=US, O=Android, CN=Android Debug"
mitchwongho / brew-ruby.txt
Created May 13, 2021 09:40
Brew Caveat: Ruby
View brew-ruby.txt
==> ruby@2.7
By default, binaries installed by gem will be placed into:
You may want to add this to your PATH.
ruby@2.7 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have ruby@2.7 first in your PATH, run:
mitchwongho /
Created May 8, 2021 09:48
#DynamoDB #JavaSDK #AWS
private Result getPeopleByGSI(@NotNull final String indexedReference, final String... attributes) {
// make reference the index
final DynamoDbIndex<People> index = DynamoUtil.peopleTable.index("someIndexedAttribute-index");
// Apply value to the indexed attribute (as the PartitionKey)
final QueryConditional queryConditional = QueryConditional.keyEqualTo(
// Compose Filter expressions
final List<String> expressions = new ArrayList<>();
final Expression.Builder expressionBuilder = Expression.builder();
mitchwongho / git-pull.txt
Last active May 7, 2021 08:58
CodeCommit - Git Checkout - Detached HEAD
View git-pull.txt
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint: git config pull.rebase false # merge (the default strategy)
hint: git config pull.rebase true # rebase
hint: git config pull.ff only # fast-forward only
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
View gist:812c3b5b09eefe3b6e6ba4a207918218
G28 ; Home all axes
G29 ; Auto bed-level (BL-Touch)
;G1 Z15.0 F6000 ;Move the platform down 15mm
;Prime the extruder
G92 E0
G1 F200 E3
G92 E0
; Linear advance
M900 K0.11
mitchwongho /
Created July 13, 2019 20:33
Raspberry Pi OpenVPN Tips

OpenVPN host config files:

$ cd /etc/openvpn

OpenVPN config file:

$ sudo nano /etc/default/openvpn
mitchwongho /
Created October 16, 2015 11:01
An example of comparing two double values with an epsilon.
* Compare two {@code double} values
* @param a some <i>double</i> value
* @param b some other <i>double</i> value
* @return {@code true} if the two values are equal
public static boolean equals (final double a, final double b) {
if (a==b) return true;
return Math.abs(a - b) < EPSILON; //EPSILON = 0.0000001d