Skip to content

Instantly share code, notes, and snippets.

View krishnabhargav's full-sized avatar

Krishna Vangapandu krishnabhargav

View GitHub Profile
@krishnabhargav
krishnabhargav / DiffMerge as Default GIT tool
Created January 24, 2016 23:42
For Windows : Git config commands to set up DiffMerge as default GIT tool.
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd 'c:/tools/diffmerge/sgdm.exe \"$LOCAL\" \"$REMOTE\"'
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd 'c:/tools/diffmerge/sgdm.exe --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"'
git config --global mergetool.diffmerge.trustExitCode true

static T[] Rotate(int n, T[] arr) { var temp = new T[arr.Length]; for (int i = 0; i < arr.Length; i++) { var destIndex = i - n; if (destIndex < 0) { var mul = -1 * destIndex / arr.Length; destIndex = (arr.Length * mul) + destIndex;

type State<'S,'a> = 'S -> ('a * 'S)
module State =
let unit a : State<_,_> = fun s -> (a, s)
let map<'s,'a,'b> (f : 'a -> 'b) (r : State<'s,'a>) =
fun s ->
let a,next = r(s)
f(a), next
@krishnabhargav
krishnabhargav / Validations.fs
Last active April 18, 2017 22:04
a quick validation description library in F#
type ValidationResult<'a> =
| Success of 'a
| Failure of string array //you can also make a ValidationFailure DU which is more "typesafe"
type Validate<'a> = ValidationResult<'a> -> ValidationResult<'a>
module Validators =
let bind<'a,'b> (f : 'a -> ValidationResult<'b>) =
function
| Success x ->
@krishnabhargav
krishnabhargav / maths.fsx
Created April 21, 2017 14:08
Snippet to download Math textbooks from APSCERT .. for personal use only.
let path r c =
[
sprintf "http://apscert.gov.in/ebookapp/NewServlet?name=/home/wscontent/apscert/ebooks/pdf/English/%s/maths/Mathematics%%20%d/cover.pdf" r c, sprintf "%s-cover.pdf" r
sprintf "http://apscert.gov.in/ebookapp/NewServlet?name=/home/wscontent/apscert/ebooks/pdf/English/%s/maths/Mathematics%%20%d/introduction.pdf" r c, sprintf "%s-intro.pdf" r
] @
(['a'..'z']
|> List.take 15
|> List.map (fun ch ->
sprintf "http://apscert.gov.in/ebookapp/NewServlet?name=/home/wscontent/apscert/ebooks/pdf/English/%s/maths/Mathematics%%20%d/unit%%20%c.pdf" r c ch,
sprintf "%s-unit-%c.pdf" r ch))
bin\windows\kafka-topics.bat --create --topic consumer-topic --partitions 3 --replication-factor 1 --zookeeper localhost
bin\windows\kafka-server-start.bat config\server.properties
bin\windows\zookeeper-server-start.bat config\zookeeper.properties
bin\windows\kafka-producer-perf-test.bat --topic joker-walmart-order-injection --payload-file "C:\\temp\\small.json" --num-records 200 --throughput 100 --producer-props acks=1 bootstrap.servers=localhost:9092
bin\windows\kafka-consumer-groups.bat --bootstrap-server shared.kafka.eastus2.qa.jet.network:9092 --group mytopic-consumer-group --reset-offsets --to-earliest --topic mytopic --execute
@krishnabhargav
krishnabhargav / some commands
Created February 6, 2019 16:02
Git Repo Summary
git log --pretty=format:"%ad - %an: %s" --after="2018-01-01" --until="2019-01-31" --author="Krishna Vangapandu" --date=format:'%Y-%m' > c:\temp\krishna-prs.txt
@krishnabhargav
krishnabhargav / kotlin-sealedclass-serialization.kt
Last active October 28, 2024 20:10
Using GSON to support serialization and deserialization of Kotlin Sealed Classes.
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.google.gson.TypeAdapter
import com.google.gson.TypeAdapterFactory
import com.google.gson.reflect.TypeToken
import com.google.gson.stream.JsonReader
import com.google.gson.stream.JsonWriter
import kotlin.jvm.internal.Reflection
import kotlin.reflect.KClass
@krishnabhargav
krishnabhargav / Retry.kt
Last active September 25, 2019 23:01
An attempt to support retry functions in Kotlin
import Retry.retry
import Retry.retryForever
import kotlinx.coroutines.*
import kotlin.math.pow
import kotlin.math.roundToLong
import kotlin.random.Random
private fun funcThatFails(i: Int): Int {
if (i > 100 || Random.nextBoolean())
@krishnabhargav
krishnabhargav / EventstoreExample.kt
Created September 27, 2019 01:00
Example of using Eventstore.JVM client from a kotlin program without fully subscribing to Akka actors.
import akka.actor.ActorSystem
import eventstore.core.*
import eventstore.j.EsConnectionFactory
import eventstore.j.SettingsBuilder
import kotlinx.coroutines.future.await
import kotlinx.coroutines.runBlocking
import scala.compat.java8.FutureConverters
import scala.concurrent.Future
import java.net.InetSocketAddress
import java.util.*