Skip to content

Instantly share code, notes, and snippets.

View pauca's full-sized avatar

Pau Carrió pauca

  • Barcelona, Spain
View GitHub Profile
@pauca
pauca / gz.scala
Last active April 30, 2022 06:14
scala read / write from compressed gz
import java.io._
import java.util.zip._
import scala.io.Source
var in = new GZIPInputStream(new FileInputStream("test.gz"))
// write setup in different objects to close later properly (important for big files )
var fos = new FileOutputStream("test2.gz")
var gzos = new GZIPOutputStream( fos )
var w = new PrintWriter(gzos)
@pauca
pauca / StoreRocksDB.scala
Last active January 24, 2022 17:11
Template for testing: RocksDB with Scala
import java.io.File
import org.rocksdb._
import org.rocksdb.util.SizeUnit
import scala.collection.JavaConversions._
// build.sbt
// name := "RocksDB"
// version := "0.1"
// scalaVersion := "2.12.0"
// libraryDependencies += "org.rocksdb" % "rocksdbjni" % "5.0.1"
@pauca
pauca / akkaQueueExample.scala
Created March 5, 2020 12:17
akkaQueueExample.scala
import akka.actor._
import akka.actor.ActorLogging
import akka.actor.ActorSystem
import akka.stream._
import akka.stream.actor.ActorSubscriberMessage._
import akka.stream.actor._
import akka.stream.scaladsl._
import akka.{ NotUsed, Done }
import scala.io.Source
@pauca
pauca / fileToMd5.scala
Created June 14, 2019 09:18
get md5sum from path with scala
//inspired by http://www.michaelpollmeier.com/2018/12/10/checksum-files-scala
import java.io.File
import java.nio.file.Files
import java.security.{DigestInputStream, MessageDigest}
import scala.collection.JavaConverters._
def md5(roots: File*): String = {
val md = MessageDigest.getInstance("MD5")
roots.foreach { root =>
@pauca
pauca / elapsedTime.scala
Last active January 22, 2019 11:57
measure and show elapsed time
// from https://biercoff.com/easily-measuring-code-execution-time-in-scala/
def time[R](block: => R): R = {
val t0 = System.nanoTime()
val result = block // call-by-name
val t1 = System.nanoTime()
println("Elapsed time: " + (t1 - t0) + "ns")
result
}
@pauca
pauca / gist:24a194c867e11f1730bd4f172da97a0d
Created March 15, 2018 14:42
scala php crypto ciper match
import javax.crypto._
import javax.crypto.spec._
import java.util.Base64
val message= "Hello"
val secret = "eGkmaYd3PE9x3Z221x7b2nXmJ7ACGrjf"
val ivString = "0123456789012345"
val ciper: Cipher = Cipher.getInstance("AES/CBC/PKCS5Padding")
@pauca
pauca / get_script_dir.sh
Created January 23, 2018 14:28
get_script_dir with bash
#!/bin/bash
set -e
set +u
get_script_dir () {
SOURCE="${BASH_SOURCE[0]}"
# While $SOURCE is a symlink, resolve it
while [ -h "$SOURCE" ]; do
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$( readlink "$SOURCE" )"
@pauca
pauca / GzipCompressor.scala
Last active September 22, 2017 12:51
Gist to stream strings to a akka queue that gzips and stores
import akka.actor._
import akka.actor.ActorLogging
import akka.actor.ActorSystem
import akka.stream._
import akka.stream.actor.ActorSubscriberMessage._
import akka.stream.actor._
import akka.stream.scaladsl._
import akka.{ NotUsed, Done }
import akka.util.ByteString
import java.io._
@pauca
pauca / binaryDistances.R
Last active June 19, 2017 12:28
binary distances R ( tanimoto)
# http://www.sequentix.de/gelquest/help/distance_measures.htm
bdist <- function( x, y , method ){
a <- sum( x == 1 & y == 1)
b <- sum( x == 1 & y == 0)
c <- sum( x == 0 & y == 1)
d <- sum( x == 0 & y == 0)
switch(method,
tanimoto = (a+d)/(a+2*(b+c)+d),
@pauca
pauca / AkkaStreamTemplate.scala
Created June 9, 2017 15:34
Basic Akka Stream Template: read, transform, write
/*
build.sbt
name := "AkkaStreamTemplate"
version := "0.1-SNAPSHOT"
scalaVersion := "2.12.2"
libraryDependencies ++= {
Seq(