Skip to content

Instantly share code, notes, and snippets.

@hamen
hamen / gist:9fcb2c2fae8892172320
Last active October 24, 2023 13:22
Raspberry Pi T Cobbler GPIO Extension Board v2.2 PINs
ExtB -> GPIO
P0 = 17
P1 = 18
P2 = 27
P3 = 22
P4 = 23
P5 = 24
P6 = 25
P7 = 4
@hamen
hamen / UriExts.kt
Last active October 14, 2021 13:21
A couple of extensions on String and File to safely convert toUri()
import android.net.Uri
import java.io.File
/**
* Tries to convert a [String] to a [Uri].
* Differently from the "I'm 5 years old" implementation that comes with Android
* that throws a temper tantrum, i.e. exception, if the conversion fails,
* this implementation returns a [null], like an adult would do.
*/
@Suppress("SwallowedException", "TooGenericExceptionCaught")
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.SOURCE)
/**
* Friendly reminder that this might not be the best place to do major changes. Or any changes at all.
* Use the [reason] arg to point your teammates and your future-self to some documentation.
*/
annotation class HereBeDragons(val reason: String)
// ==UserScript==
// @name Telegram - Jump to first unread message
// @namespace https://ivanmorgillo.com/
// @version 0.1
// @description Kinda Slack shortcut
// @author Ivan Morgillo
// @match https://web.telegram.org/*
// @grant none
// ==/UserScript==
#!/bin/bash
CMD="./gradlew clean test"
# Check if we actually have commits to push
commits=`git log @{u}..`
if [ -z "$commits" ]; then
exit 0
fi
$CMD
RESULT=$?
if [ $RESULT -ne 0 ]; then
@hamen
hamen / KeyValueStorage.kt
Created August 9, 2018 13:34
KeyValueStorage - How to decouple SharedPreferences on Android
interface KeyValueStorage {
fun getAll(): Map<String, *>
fun contains(key: String): Boolean
fun remove(key: String): Boolean
fun getBoolean(key: String, defaultValue: Boolean): Boolean
fun putBoolean(key: String, value: Boolean): Boolean
@hamen
hamen / demo.sh
Created June 30, 2016 10:49 — forked from rock3r/README.md
A simple bash script to enable demo mode on a Marshmallow+ device via ADB (based on http://bit.ly/295BHLx)
#!/bin/sh
# License for any modification to the original (linked below):
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# Sebastiano Poggi wrote this file. As long as you retain
# this notice you can do whatever you want with this stuff. If we meet some day,
# and you think this stuff is worth it, you can buy us a beer in return.
#
# Based on http://bit.ly/295BHLx
@hamen
hamen / MockStrings.java
Last active May 13, 2016 14:40
Utility placeholder strings
public class MockStrings {
public static final String s
= "Non si intrometta! No, aspetti, mi porga l'indice; ecco lo alzi così... guardi, guardi, guardi; lo vede il dito? Lo vede che stuzzica, che prematura anche. E lei.. cosa si sente? Professore, non le dico. Antani come trazione per due anche se fosse supercazzola bitumata, ha lo scappellamento a destra.";
public static final String m
= "Ma che antifurto, mi faccia il piacere! Questi signori qui stavano sonando loro. Sorella? Eh!? Col tarapia tapioco come se fosse la supercazzola per lei. Voglio il cappellano, il cappellano! Ho visto la Madonna! Non si intrometta!No, aspetti, mi porga l'indice; ecco lo alzi così... guardi, guardi, guardi; lo vede il dito? Lo vede che stuzzica, che prematura anche.";
public static final String l
= "Ah, pardon. Tarapio tapioco come se fosse Antani, la supercazzola prematurata con dominus reveriscum blinda. Come, prego? Tarapio sulla supercazzola con scappellamento destro o

Keybase proof

I hereby claim:

  • I am hamen on github.
  • I am ivanmorgillo (https://keybase.io/ivanmorgillo) on keybase.
  • I have a public key whose fingerprint is 618F 9A54 DF87 E499 676E E6A1 852F 1BC9 1EC6 94CC

To claim this, I am signing this object:

// This is just a customization of original Twitter Ubiquity command by Mozilla
// I just replaced some strings. For credits refer to mozilla.com
const IDENTICA_STATUS_MAXLEN = 140;
CmdUtils.CreateCommand({
names: ["identi.ca", "share using identi.ca"],
arguments: [
{role: "object", label: 'status', nountype: noun_arb_text},
{role: "alias", nountype: noun_type_twitter_user}
],