Skip to content

Instantly share code, notes, and snippets.

@Gopinathp
Gopinathp / ReferencesDelegates.kt
Last active December 19, 2021 15:20
Idiomatic kotlin delegate method of using weak reference and soft reference in Java.
package delegates
import java.lang.ref.SoftReference
import java.lang.ref.WeakReference
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
fun <T>weakReference(tIn: T? = null): ReadWriteProperty<Any?, T?> {
return object : ReadWriteProperty<Any?, T?> {
@Gopinathp
Gopinathp / atomics.kt
Last active July 14, 2022 22:50
Atomics.kt implementation
import java.util.concurrent.atomic.AtomicReference
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
private fun <T>atomicNullable(tIn: T? = null): ReadWriteProperty<Any?, T?> {
return object : ReadWriteProperty<Any?, T?> {
val t = AtomicReference<T>(tIn)
override fun getValue(thisRef: Any?, property: KProperty<*>): T? {
return t.get()
@Gopinathp
Gopinathp / FoodOrdersManagerTest.kt
Created December 7, 2021 19:47
Added mongodb container test sample
import kotlinx.coroutines.runBlocking
import org.bson.types.ObjectId
import org.junit.*
import org.junit.Assert.*
import org.testcontainers.containers.MongoDBContainer
import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy
import org.testcontainers.utility.DockerImageName
import java.math.BigInteger
@Gopinathp
Gopinathp / hourly.sh
Last active November 25, 2021 17:42
cron schedule bash script
#!/bin/bash
. /home/gopinath/.bashrc
cd $HOME
export JAVA_HOME=/home/gopinath/.sdkman/candidates/java/current
export PATH=/usr/local/bin:$PATH
export PATH=/usr/bin:$PATH
export PATH=/home/gopinath/.sdkman/candidates/java/current/bin:$PATH
export PATH=/home/gopinath/.sdkman/candidates/kotlin/current/bin:$PATH
export PATH=/home/gopinath/.sdkman/candidates/kscript/current/bin:$PATH
kscript /home/gopinath/backupper.kts -b prod_backups -d prod_db,client_db -v -r
@Gopinathp
Gopinathp / ffmpeg-jni-cmakelist.txt
Created October 25, 2017 11:29
Transient dependencies are bundled into the APK but not linked in the jni wrapper
#
# Copyright (C) The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@Gopinathp
Gopinathp / designer.html
Created November 26, 2015 10:00
designer
<link rel="import" href="../paper-radio-group/paper-radio-group.html">
<link rel="import" href="../paper-radio-button/paper-radio-button.html">
<link rel="import" href="../paper-input/paper-input.html">
<link rel="import" href="../paper-button/paper-button.html">
<polymer-element name="my-element">
<template>
<style>
:host {
@Gopinathp
Gopinathp / designer.html
Last active August 29, 2015 14:23
designer
<link rel="import" href="../core-scaffold/core-scaffold.html">
<link rel="import" href="../core-header-panel/core-header-panel.html">
<link rel="import" href="../core-menu/core-menu.html">
<link rel="import" href="../core-item/core-item.html">
<link rel="import" href="../core-icon-button/core-icon-button.html">
<link rel="import" href="../core-toolbar/core-toolbar.html">
<link rel="import" href="../core-menu/core-submenu.html">
<link rel="import" href="../core-input/core-input.html">
<link rel="import" href="../core-ajax/core-ajax.html">
@Gopinathp
Gopinathp / designer.html
Created September 1, 2014 14:42
designer
<link rel="import" href="../google-map/google-map-directions.html">
<link rel="import" href="../cool-clock/cool-clock.html">
<link rel="import" href="../google-map/google-map.html">
<link rel="import" href="../notification-elements/notification-alert.html">
<link rel="import" href="../speech-mic/speech-mic.html">
<link rel="import" href="../yt-video/yt-search-video.html">
<link rel="import" href="../core-icons/core-icons.html">
<link rel="import" href="../core-icon/core-icon.html">
<link rel="import" href="../core-icon-button/core-icon-button.html">
<link rel="import" href="../core-toolbar/core-toolbar.html">
@Gopinathp
Gopinathp / greenloggersampleusages.java
Last active December 19, 2015 09:28
Usage of GreenLogger
// To print an exception in the console in debug builds only and to skip the printing in release builds.
// Instead of e.printStacktrace() use GreenLogger.
L.print(e);
// To print a sharedpreferences file in the console in debug builds only and to skip the printing in release builds.
L.print(mPrefs);
// To print any message only in debug, use
String message = "Your debug time only verbose message";
L.v(message);
@Gopinathp
Gopinathp / L.java
Last active December 19, 2015 09:19
GreenLogger - Smart Logger for Android. 1. Turns off debug/verbose logs on production builds of the app. 2. Logs for the entire app using a single TAG "GreenLogger" which you can modify if you wish to. 3. Helps in easy log filtering on production devices. Filter by "GreenLogger" on adb logcat. (Usage: adb logcat | grep GreenLo) 4. Convenient met…
package com.gopinath.android.util;
import android.content.SharedPreferences;
import android.util.Log;
import com.google.gson.Gson;
/**
* GreenLogger class Features: <br>
* 1. Logging is made easy and manageable <br>