Skip to content

Instantly share code, notes, and snippets.


Venkatesh-Prasad Ranganath rvprasad

View GitHub Profile
rvprasad / update_packages_to_new_r_version.r
Last active Jun 17, 2020
Update existing packages to new version of R
View update_packages_to_new_r_version.r
update <- function(p) {
pd <- packageDescription(p, fields=c('Built'))
pd <- gsub(";.*", "", pd)
if (! && pd != 'R 4.0.1') { # mention the target versions here
for (d in getDependencies(p)) {
rvprasad / hostfile
Last active Jan 31, 2020
Compare map's performance of mpi4py module and Python's multiprocessing module
View hostfile
localhost slots=9
rvprasad /
Last active Dec 24, 2019
Compare performance of set and list in identifying unique values
import random
import statistics
from timeit import default_timer as timer
def time_function(f, data):
times = []
for _ in range(0, 20):
start = timer()
times.append(timer() - start)
rvprasad /
Last active Dec 23, 2019
Group files based on the their modification time. Great for organizing photos and videos. Requires Python 3.7+.
import argparse
import glob
import hashlib
import logging
import os
import pathlib
import re
import shutil
import sys
import time
rvprasad / config.txt
Last active Dec 19, 2019
Configure a Raspberry Pi cluster using cloud-init and then install few packages
View config.txt
rvprasad /
Last active Oct 20, 2019
Explores performance of shared memory support available in multiprocessing library in Python 3.8.
# Python -- v3.8
from multiprocessing import Process, Queue, managers
import time
def worker(id, data, queue, *args):
tmp1 = time.time()
if args:
for i in range(args[0], args[1]):
rvprasad / variance.kt
Last active Apr 21, 2019
Understanding Contravariance and Covariance via Kotlin
View variance.kt
class Producer<out T: Any>(val e:T) {
fun read(): T = e
class Consumer<in T: Any>() {
private lateinit var e: T
fun write(v: T): Unit { e = v }
fun main() {
rvprasad / howManyLongsCanWeLoad.scala
Last active Mar 7, 2019
A script to identify how many longs can we store at a time with given heap size on JVM
View howManyLongsCanWeLoad.scala
import scala.collection.mutable.ArrayBuffer
import scala.util.Random
object M {
def main(args: Array[String]) {
val t = new ArrayBuffer[Long]()
while (true) {
t += Random.nextLong
if (t.length % 10000 == 0) {
rvprasad / parallelStreamAndAsSequence.kts
Last active Feb 21, 2019
Java parallel stream is significantly faster than the same stream converted into a Kotlin sequence
View parallelStreamAndAsSequence.kts
import kotlin.streams.asSequence
import kotlin.system.measureTimeMillis
val k = 500000000L
println(measureTimeMillis {, k)
.map { it.toString().length.toLong() }
rvprasad / permutations.kt
Last active Feb 19, 2019
Permutation Generator (Algorithm from Cameron's "Combinatorics: Topics, Techniques, Algorithms")
View permutations.kt
class PermutationGenerator(numOfValues:Int) : Iterator<List<Int>> {
private val maxPos = numOfValues - 1
private val values = (0..maxPos).shuffled()
private var currPerm = (0..maxPos).toMutableList()
@Synchronized override fun hasNext() = currPerm.isNotEmpty()
@Synchronized override fun next(): List<Int> {
val perm = currPerm.toList()
val j = (maxPos - 1 downTo 0).find { currPerm[it] < currPerm[it + 1] }