Skip to content

Instantly share code, notes, and snippets.

View adeshmukh-quizlet's full-sized avatar

Amol Deshmukh adeshmukh-quizlet

View GitHub Profile
@adeshmukh-quizlet
adeshmukh-quizlet / awk_netstat.sh
Created September 3, 2020 01:21 — forked from staaldraad/awk_netstat.sh
AWK to get details from /proc/net/tcp and /proc/net/udp when netstat and lsof are not available
# Gawk version
# Remote
grep -v "rem_address" /proc/net/tcp | awk '{x=strtonum("0x"substr($3,index($3,":")-2,2)); for (i=5; i>0; i-=2) x = x"."strtonum("0x"substr($3,i,2))}{print x":"strtonum("0x"substr($3,index($3,":")+1,4))}'
# Local
grep -v "rem_address" /proc/net/tcp | awk '{x=strtonum("0x"substr($2,index($2,":")-2,2)); for (i=5; i>0; i-=2) x = x"."strtonum("0x"substr($2,i,2))}{print x":"strtonum("0x"substr($2,index($2,":")+1,4))}'
# No Gawk
# Local
grep -v "rem_address" /proc/net/tcp | awk 'function hextodec(str,ret,n,i,k,c){
@adeshmukh-quizlet
adeshmukh-quizlet / md5b64
Created April 25, 2020 00:41
kscript to generate base64 of md5 values
#!/usr/bin/env kscript
import java.security.MessageDigest
import java.util.Base64
val md5 = MessageDigest.getInstance("MD5")
println(args.map { Base64.getEncoder().encodeToString(md5.digest(it.toByteArray())) }.joinToString(" "))
@adeshmukh-quizlet
adeshmukh-quizlet / bitrev
Created April 23, 2020 17:42
Kotlin script to generate bitrev values
#!/usr/bin/env kscript
println(args.map { java.lang.Long.reverse(it.toLong()) }.joinToString(" "))

Keybase proof

I hereby claim:

  • I am adeshmukh-quizlet on github.
  • I am adeshmukh_qz (https://keybase.io/adeshmukh_qz) on keybase.
  • I have a public key ASBWRTbbokm4Kr9FuY7H4YeyHCyeqJLJyB1Yh-NUQI9wfwo

To claim this, I am signing this object:

@adeshmukh-quizlet
adeshmukh-quizlet / ShardIdGenerator.kt
Last active July 16, 2019 00:39
Distributed ID Generation in Kubernetes
// 32-bit value will overflow in 2038. Migrate to 64-bit support by then.
// Ref: https://en.wikipedia.org/wiki/Year_2038_problem
private const val TIME_PART_MASK = 0x0000_0000_FFFF_FFFF
const val SHARD_PART_WIDTH = 5
const val SEQ_PART_WIDTH = 15
const val SEQ_PART_LIMIT_EXCLUSIVE = 1.shl(SEQ_PART_WIDTH)
/**
* A distributed, thread-safe ID generator that generates