Skip to content

Instantly share code, notes, and snippets.

View ramn's full-sized avatar

ramn ramn

View GitHub Profile
@ramn
ramn / Deserialization.scala
Last active October 18, 2023 17:42
Object serialization example in Scala
import java.io._
@SerialVersionUID(15L)
class Animal(name: String, age: Int) extends Serializable {
override def toString = s"Animal($name, $age)"
}
case class Person(name: String)
// or fork := true in sbt
@ramn
ramn / socat_http_echo_server.sh
Last active September 26, 2023 12:22
Socat HTTP echo server
#!/bin/bash
socat -v -T0.05 tcp-l:8081,reuseaddr,fork system:"echo 'HTTP/1.1 200 OK'; echo 'Connection: close'; echo; cat"
@ramn
ramn / backup_all_gists_for_a_user.sh
Last active July 21, 2023 13:46
Backup all Gists
#!/bin/bash
# Depends on git, curl, jq
BAK_DIR=$(date +"%y%m%d-%H%M")
GISTS_URL="https://api.github.com/users/$USER/gists?per_page=1000&access_token=$GITHUB_ACCESS_TOKEN"
mkdir "$BAK_DIR" && cd "$BAK_DIR" && curl -s "$GISTS_URL" | jq ".[] | .git_pull_url" | xargs -n1 git clone
@ramn
ramn / serve_file_over_http.sh
Last active May 19, 2023 14:25
Serve file over HTTP with Socat
#!/bin/bash
FILE="$1"
PORT=${PORT:-9999}
MIME_TYPE=$(mimetype "$FILE")
SIZE_BYTES=$(du -b "$FILE" | cut -f1)
FILE_NAME=$(basename "$FILE")
HEADER="\
HTTP/1.1 200 OK
@ramn
ramn / zeromq_demo_publisher.py
Last active August 24, 2022 21:52
Python ZeroMQ pub/sub example
import time.sleep
import zmq
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind('tcp://127.0.0.1:2000')
# Allow clients to connect before sending data
sleep(10)
socket.send_pyobj({1:[1,2,3]})
@ramn
ramn / MinimalSoapServer.scala
Created February 4, 2011 11:06 — forked from kings13y/MinimalSoapServer.scala
Soap server in Scala
/*
CHANGELOG
- add annotation for param names
*/
import javax.jws.{WebService, WebParam}
import javax.jws.soap.SOAPBinding
import SOAPBinding.Style
import javax.xml.ws.Endpoint
@ramn
ramn / .muttrc
Last active February 8, 2022 17:48
Muttrc example with GMail support
##
## IMAP CREDENTIALS
##
set smtp_url = "smtp://some_user@smtp.gmail.com:587/"
#set smtp_pass = "password"
set from = "someuser@example.com"
set realname = "Some User"
##
## IMAP SETTINGS
@ramn
ramn / GetUnsafeClass.scala
Created November 20, 2014 22:02
sun.misc.Unsafe use in Scala
def getUnsafeInstance: sun.misc.Unsafe = {
val f = classOf[sun.misc.Unsafe].getDeclaredField("theUnsafe")
f.setAccessible(true)
val unsafe = f.get(null).asInstanceOf[sun.misc.Unsafe]
unsafe
}
@ramn
ramn / build_command_completions.sh
Last active August 14, 2021 14:56
Bash command completion builder
#!/bin/bash
#
# Build shell command completions
#
function _build_completions {
local current_word
COMPREPLY=()
current_word=${COMP_WORDS[COMP_CWORD]}
@ramn
ramn / netcat_over_ssh.sh
Created September 27, 2012 14:27
Send a file with netcat over ssh tunnel
### Sending a file
# BSD nc syntax
cat myDocument.pdf | ssh me.myserver.com nc -l 20000
# Hobbit nc syntax - try this one if unsure!
cat myDocument.pdf | ssh me.myserver.com nc -l -p 20000
### Receiving a file
nc me.myserver.com 20000 > myDocument.pdf