Skip to content

Instantly share code, notes, and snippets.

@kaushikgopal
kaushikgopal / karabiner.edn
Last active May 16, 2024 00:57
My source Karabiner file in Goku's edn format - Now lives @ https://github.com/kaushikgopal/dotfiles/blob/master/.karabiner.edn
;; File has moved over to https://github.com/kaushikgopal/dotfiles/blob/master/.karabiner.edn
;; Feel free to raise github issues in that repo, if you have questions/comments/edits
@kaushikgopal
kaushikgopal / RoundedBitmapDrawableUsage.java
Last active March 25, 2024 13:55
RoundedImageView - drop dead easy way to do this with RoundedBitmapDrawable
Bitmap batmapBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.batman);
RoundedBitmapDrawable circularBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), batmapBitmap);
// option 1 h/t [Chris Banes](https://chris.banes.me/)
circularBitmapDrawable.setCornerRadius(batmapBitmap.getWidth());
// option 2 h/t @csorgod in the comments
circularBitmapDrawable.setCircular(true);
@kaushikgopal
kaushikgopal / nord.theme
Created October 28, 2021 16:36
Taskwarrior Theme that plays nicely with Nord
# Originally adapted from https://github.com/arcticicestudio/igloo
# License: MIT
# References:
# https://taskwarrior.org/docs/themes.html
# task-color(5)
# taskrc(5)
# rule.precedence.color=deleted,completed,active,keyword.,tag.,project.,overdue,scheduled,due.today,due,blocked,blocking,recurring,tagged,uda.
@kaushikgopal
kaushikgopal / US Plain Keyboard.keylayout
Created February 4, 2024 23:27
US Plain custom keyboard
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE keyboard SYSTEM "file://localhost/System/Library/DTDs/KeyboardLayout.dtd">
<keyboard group="0" id="5000" name="US Plain" maxout="1">
<layouts>
<layout first="0" last="0" modifiers="48" mapSet="312" />
</layouts>
<modifierMap id="48" defaultIndex="0">
<keyMapSelect mapIndex="0">
<modifier keys="" />
</keyMapSelect>
@kaushikgopal
kaushikgopal / android_app_release.rb
Created October 7, 2016 20:04
a ruby release script for android apps
#!/usr/bin/env ruby
require 'highline/import'
require 'nokogiri'
# i suggest looking at this folder and seeing your app prefix ¯\_(ツ)_/¯
$gradle_properties = File.join(File.dirname(__FILE__), "..", "..", "gradle.properties")
$app_directory = "./<App Parent Directory>"
$app_name_prefix = "<Prefix for final apk e.g. uber-release->"
$splash_screen_location = "co.kaush.instashop/co.kaush.instashop.SplashActivity"
@kaushikgopal
kaushikgopal / private-build-plans.toml
Last active August 10, 2023 19:05
Iosevka (KG's customization for Iosevka) see https://blog.jkl.gg/build-iosevka-font-mac-os/
[buildPlans.kg] # <kg> is your plan name
family = "Iosevka KG Terminal" # Font menu family name
design = [
"cv08", "cv11", "cv19", "cv43", "cv49", "cv55", "cv62", "cv92",
# `g`, `l`, `y`, `G`, `Q`, `*`, `$` and `%`
"no-ligation"
] # Customize styles
hintParams = ["-a", "sss"] # Optional custom parameters for ttfautohint
@kaushikgopal
kaushikgopal / RxSchedulerHook.java
Created July 8, 2016 16:50
Lazy man's RxJava Espresso Scheduler Hooks
public class RxSchedulerHook {
private ISRxSchedulerHook() {
// no instances
}
/**
* this makes sure that when we run the tests all of RxJava
* operates on a single thread (Scheduler.immediate)
*/
@kaushikgopal
kaushikgopal / pre-commit
Last active April 19, 2023 09:22
pre-commit git hook - no "hacking"
#!/usr/bin/env ruby
# This pre-commit hook will prevent any commit to forbidden branches
# (by default, "staging" and "production").
# Put this file in your local repo, in the .git/hooks folder
# and make sure it is executable.
# The name of the file *must* be "pre-commit" for Git to pick it up.
def current_branch()
branches = `git branch --no-color`.split(/\n/)
@kaushikgopal
kaushikgopal / awk0.sh
Last active September 9, 2022 00:30
awk explainer example
# General pattern
#
# awk '
# BEGIN { a1; a2; a3; }
# <pattern> { a1; a2; a3; }
# END { a4; a6; }
# ' <filename>
# space - default file separator
# $0 - entire line
@kaushikgopal
kaushikgopal / android_lifecycle_recommendations.md
Last active February 2, 2022 07:28
Notes on opportune moments to do "stuff" in the Android Lifecycle
  • In general you want to try and put things in onStart and onStop for logical start and stops.

Activity

onCreate

  • Dagger inject self into graph
  • setContentView(R.layout.xxx)
  • Butterknife.bind(this)
  • RxJava CompositeSubscription.add (if NON UI related work being done)
  • realm = Realm.getDefaultInstance();