Skip to content

Instantly share code, notes, and snippets.

Avatar

Ivan Morgillo hamen

View GitHub Profile
@hamen
hamen / UriExts.kt
Last active Oct 14, 2021
A couple of extensions on String and File to safely convert toUri()
View UriExts.kt
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")
View HereBeDragons.kt
@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)
View Telegram - Jump to first unread message
// ==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==
View Run tests with Git Pre-Push hook
#!/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 Aug 9, 2018
KeyValueStorage - How to decouple SharedPreferences on Android
View KeyValueStorage.kt
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 Jun 30, 2016 — 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)
View demo.sh
#!/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
View keybase.md

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:

@hamen
hamen / MockStrings.java
Last active May 13, 2016
Utility placeholder strings
View MockStrings.java
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
@hamen
hamen / gist:9fcb2c2fae8892172320
Last active Jun 28, 2021
Raspberry Pi T Cobbler GPIO Extension Board v2.2 PINs
View gist:9fcb2c2fae8892172320
ExtB -> GPIO
P0 = 17
P1 = 18
P2 = 27
P3 = 22
P4 = 23
P5 = 24
P6 = 25
P7 = 4
View Identi.ca Ubiquity command
// 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}
],