Skip to content

Instantly share code, notes, and snippets.

View loverdos's full-sized avatar

Christos KK Loverdos loverdos

View GitHub Profile
@loverdos
loverdos / Logger.scala
Last active July 7, 2022 11:14
Logger with nested contexts
// Author: github.com/loverdos
// SPDX-License-Identifier: Apache-2.0
import java.io.PrintStream
final class Logger(out: PrintStream = System.out) {
private var ctx = List[String]()
private val indent_chunk = " "
private def ctx_size = ctx.length
@loverdos
loverdos / mvn-project-version.sh
Created May 20, 2015 10:07
Get maven project version from the shell
mvn help:evaluate -Dexpression=project.version | grep -e '^[^\[]'
@loverdos
loverdos / par-port-scanner.scala
Created April 2, 2013 09:50
Parallel port scanner in Scala
// Parallel port scanner using parallel collections (just for the side-effect)
// @author = @loverdos
(1 to 65536).par.map { case port ⇒
try {
val socket = new java.net.Socket("127.0.0.1", port)
socket.close()
println(port)
port
} catch {

Keybase proof

I hereby claim:

  • I am loverdos on github.
  • I am loverdos (https://keybase.io/loverdos) on keybase.
  • I have a public key ASAi41-Ewm_fgf0UGtN1aQEgDix-sDJp3LSsEyuXv4kgRgo

To claim this, I am signing this object:

@loverdos
loverdos / pbquote
Created March 1, 2016 15:54
Re-copy text as email-quoted
#!/bin/sh
# Re-copy text as email-quoted
pbpaste | sed 's/^/>/' | pbcopy
git log --since=2012-10-01 --until=2012-10-31 --author=loverdos --reverse --pretty=format:"%H%x09%ae%x09%ad%x09%s" --date=short
@loverdos
loverdos / pipe.ml
Last active December 18, 2015 03:59
external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
@loverdos
loverdos / gist:5584254
Created May 15, 2013 14:10
Recursive file path construction of a single user for Old Pithos filesystem. PostgreSQL 8.4
-- All files (and the folders they belong to) recursively
with recursive q as (
select folder,
1 as level,
'' || folder.name as folder_path,
'' || folder.name || '/' || file.name as file_path,
folder.id as folder_id,
folder.parent_id as parent_folder_id,
file.id as file_id
from folder,
@loverdos
loverdos / aquarium.md
Created June 29, 2012 09:38
Aquarium

The official project page is here. For convience, the code repo is represented here and if you prefer Github, I maintain a synchronized copy. The following code-related links are from the github repo, for convenience.

I setup Akka using a special service. Note that all the main functionality is represented as services. An example of an actor is our UserActor. It handles the messages reflectively via logic defined in ReflectiveActor, so our receive() is defined once and for all there.

What an actor can handle is defined in an [ActorR

@loverdos
loverdos / gist:2287450
Created April 2, 2012 21:43
Boolean decision
class RichValueD[T](value: T) {
def decide[V](f: T => Boolean)
(gTrue: T => V)
(gFalse: T => V):V = if(f(value)) gTrue(value) else gFalse(value)
}
implicit def anyToRichValueD[T](value: T): RichValueD[T] = new RichValueD(value)