Skip to content

Instantly share code, notes, and snippets.

View vinaysshenoy's full-sized avatar

Vinay Shenoy vinaysshenoy

View GitHub Profile
@vinaysshenoy
vinaysshenoy / bootstrap.sh
Last active November 1, 2023 07:03
Bootstrap file to setup a new account on macOS (10.15+)
#!/bin/zsh
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git
brew install jenv
brew install nvm
mkdir ~/.nvm
brew cask install gpg-suite
brew tap AdoptOpenJDK/openjdk
@vinaysshenoy
vinaysshenoy / ImageApprover.kt
Created October 2, 2019 13:10
Image similarity approvals for Java Approvals (https://github.com/approvals/ApprovalTests.Java)
package com.vinaysshenoy
import org.approvaltests.Approvals
import org.approvaltests.approvers.ApprovalApprover
import org.approvaltests.core.ApprovalFailureReporter
import org.approvaltests.core.ApprovalReporterWithCleanUp
import org.approvaltests.core.ApprovalWriter
import org.approvaltests.namer.ApprovalNamer
import org.approvaltests.writers.ImageApprovalWriter
import java.awt.image.BufferedImage
@vinaysshenoy
vinaysshenoy / gist:f531e603cac0ef872220e7a86132f54b
Created August 31, 2019 13:58
Headless emulator - Android
./emulator-headless -avd -list-avds
./emulator-headless -avd Nexus_5_API_28
@vinaysshenoy
vinaysshenoy / coloredLogcat.md
Created July 1, 2019 03:25 — forked from ravidsrk/coloredLogcat.md
Colored Logcat - Android Studio

#####Logcat Colors for IntelliJ Darcula Theme (original post)

  • Preferences -> Editor -> Android Logcat
  • "Save As" scheme
  • Uncheck "Use inherited attributes" option
  • Edit foreground color with the following
Debug   : #6897BB 
Info : #6A8759 
@vinaysshenoy
vinaysshenoy / uitest.py
Last active June 27, 2019 11:22
Run UI tests
# Prerequisites
# - Python 3
# - *nix OS
# - git must be available on the command line
# - Android SDK and Java 8 must be setup
# - Repository SSH fingerptint must be added to ~/.ssh/known_hosts
# - ANDROID_SDK_ROOT env variable must be set
# - An AVD with the name "uitest" must be pre-created
# - mongodb started and running on port 27017
@vinaysshenoy
vinaysshenoy / build.gradle
Last active November 25, 2018 07:23
Publish To Maven (S3 Backed) using new plugin
apply from: 'secrets.gradle'
group 'com.vinaysshenoy'
version '1.0-SNAPSHOT'
buildscript {
ext {
common = [
kotlin: '1.3.10'
]
@vinaysshenoy
vinaysshenoy / TextAnnotations.kt
Created October 12, 2018 11:19
Android Resource Annotation Applier
package com.vinaysshenoy.util
import android.content.Context
import android.graphics.Typeface
import android.support.annotation.StringRes
import android.support.v4.content.res.ResourcesCompat
import android.text.Annotation
import android.text.Spannable
import android.text.SpannableString
import android.text.SpannedString
@vinaysshenoy
vinaysshenoy / README.md
Created May 21, 2018 09:22 — forked from tombigel/README.md
How to Change Open Files Limit on OS X and macOS Sierra (10.8 - 10.12)

How to Change Open Files Limit on OS X and macOS

This text is the section about OS X Yosemite (which also works for macOS Sierra) from https://docs.basho.com/riak/kv/2.1.4/using/performance/open-files-limit/#mac-os-x

The last time i visited this link it was dead (403), so I cloned it here from the latest snapshot in Archive.org's Wayback Machine https://web.archive.org/web/20170523131633/https://docs.basho.com/riak/kv/2.1.4/using/performance/open-files-limit/

Mac OS X

To check the current limits on your Mac OS X system, run:

@vinaysshenoy
vinaysshenoy / Contract.kt
Last active May 8, 2018 07:08
MVP-Rx-Kotlin
sealed class PresenterToViewMsg
data class Msg1(val prop: Int): PresenterToViewMsg()
data class Msg2(val prop: String): PresenterToViewMsg()
sealed class ViewToPresenterMsg
data class Msg3(val prop: Int): ViewToPresenterMsg()
data class Msg4(val prop: String): ViewToPresenterMsg()
@vinaysshenoy
vinaysshenoy / ReduceTest.kt
Created April 28, 2018 06:49
Using reduce to find a single element in an Observable chain
import io.reactivex.Observable
data class Item(val priority: Int)
Observable.fromArray(Item(10), Item(5), Item(25))
.reduce { first, next -> if(first.priority < next.priority) first else next }
.toSingle() //This converts a Maybe to a Single that will emit an error if there are no elements in the stream
.subscribe({ println("Least priority: $it") }, {})