Skip to content

Instantly share code, notes, and snippets.

View prayagupa's full-sized avatar
💭
Neta

Prayag prayagupa

💭
Neta
View GitHub Profile
@prayagupa
prayagupa / unparsers.scala
Created October 12, 2018 03:49 — forked from ehoner/unparsers.scala
WIP: This is a translation of the examples in haskell to scala through section 4.2.
// script can be loaded by ammonite (http://ammonite.io/)
import $plugin.$ivy.`org.spire-math::kind-projector:0.9.6`
import $ivy.`org.scalaz::scalaz-core:7.2.25`
import scalaz._
import Scalaz._
import scalaz.Maybe.Just
import scala.language.higherKinds
@prayagupa
prayagupa / TLS_Tutorial_Copy.md
Last active September 1, 2017 17:05 — forked from mtigas/gist:952344
Mini tutorial for configuring client-side SSL certificates.

Client-side SSL

For excessively paranoid client authentication.

Using self-signed certificate.

Create a Certificate Authority root (which represents this server)

Organization & Common Name: Some human identifier for this server CA.

openssl genrsa -des3 -out ca.key 4096
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
@prayagupa
prayagupa / certificateKeytool.txt
Created August 25, 2017 21:59 — forked from dahernan/certificateKeytool.txt
generate self signed certificate with keytool
To generate a self-signed SSL certificate using the keytool command on Windows, Mac, or Linux:
1 Open a command prompt or terminal.
2 Run this command:
keytool -genkey -keyalg RSA -alias tomcat -keystore selfsigned.jks -validity <days> -keysize 2048
Where <days> indicate the number of days for which the certificate will be valid.
3 Enter a password for the keystore. Note this password as you require this for configuring the server.
@prayagupa
prayagupa / benchmark-commands.txt
Created February 12, 2017 11:31 — forked from jkreps/benchmark-commands.txt
Kafka Benchmark Commands
Producer
Setup
bin/kafka-topics.sh --zookeeper esv4-hcl197.grid.linkedin.com:2181 --create --topic test-rep-one --partitions 6 --replication-factor 1
bin/kafka-topics.sh --zookeeper esv4-hcl197.grid.linkedin.com:2181 --create --topic test --partitions 6 --replication-factor 3
Single thread, no replication
bin/kafka-run-class.sh org.apache.kafka.clients.tools.ProducerPerformance test7 50000000 100 -1 acks=1 bootstrap.servers=esv4-hcl198.grid.linkedin.com:9092 buffer.memory=67108864 batch.size=8196
@prayagupa
prayagupa / mp3.js
Created October 17, 2016 03:59 — forked from dtrce/mp3.js
streaming mp3 using nodejs
var http = require('http'),
fileSystem = require('fs'),
path = require('path')
util = require('util');
http.createServer(function(request, response) {
var filePath = 'path_to_file.mp3';
var stat = fileSystem.statSync(filePath);
response.writeHead(200, {
@prayagupa
prayagupa / 2.Example.md
Last active July 22, 2016 16:15 — forked from varemenos/1.README.md
Git log in JSON format

Here is an example in Javascript based on a package I'm working on for Atom:

var format = '{%n  "commit": "%H",%n  "abbreviated_commit": "%h",%n  "tree": "%T",%n  "abbreviated_tree": "%t",%n  "parent": "%P",%n  "abbreviated_parent": "%p",%n  "refs": "%D",%n  "encoding": "%e",%n  "subject": "%s",%n  "sanitized_subject_line": "%f",%n  "body": "%b",%n  "commit_notes": "%N",%n  "verification_flag": "%G?",%n  "signer": "%GS",%n  "signer_key": "%GK",%n  "author": {%n    "name": "%aN",%n    "email": "%aE",%n    "date": "%aD"%n  },%n  "commiter": {%n    "name": "%cN",%n    "email": "%cE",%n    "date": "%cD"%n  }%n},';

var commits = [];

new BufferedProcess({
    command: 'git',
 args: [
@prayagupa
prayagupa / README.md
Created April 2, 2016 18:27 — forked from elben/README.md
Using core.async for Producer-consumer Systems

Using core.async for Producer-consumer Systems

# Set up input file
repeat 10000 echo "." >> input

# Run inline
time lein run inline < input > output

# Run async
import akka.actor._
import com.eventstream.PackageArrivedEvent
import com.eventstream.publisher.PackageArrivedPublisher
import com.eventstream.subscriber.PackageArrivedSubscriber
object EventStreamApplication extends App {
implicit val system = ActorSystem("event-stream")
@prayagupa
prayagupa / latency.markdown
Created December 4, 2015 01:47 — forked from hellerbarde/latency.markdown
Latency numbers every programmer should know

Latency numbers every programmer should know

L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs

Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs

@prayagupa
prayagupa / mass_insert_mongo.js
Created December 1, 2015 06:22 — forked from jimeh/mass_insert_mongo.js
Simple MySQL vs. MongoDB Insert benchmark.
for (var i=0; i < 100000; i++) {
db.mass_insert.save({
"first_name": "James",
"middle_name": "Richard",
"last_name": "Windsgate",
"email": "jamesrichardwindsgate@email.com"
});
};