Skip to content

Instantly share code, notes, and snippets.

View loverdos's full-sized avatar

Christos KK Loverdos loverdos

View GitHub Profile
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 / 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 {
@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)
java -Dapple.laf.useScreenMenuBar=true -Dcom.apple.mrj.application.apple.menu.about.name="App Name" -jar theJar.jar
@loverdos
loverdos / gist:2146330
Created March 21, 2012 11:35
[SBT] Keep managed libs in lib_managed
retrieveManaged := true
@loverdos
loverdos / gist:2021574
Created March 12, 2012 12:41
Currency Converter
curl -s http://www.google.com/finance/converter\?a\=1\&from\=USD\&to\=EUR | sed '/res/!d;s/<[^>]*>//g'
@loverdos
loverdos / show_path_lines.ml
Created March 7, 2012 13:35
Show PATH elements in separate lines
(* My second Ocaml program ever *)
(* *)
(* @author Christos KK Loverdos *)
open Str
(* Version 1 *)
(* ========= *)
(* let () = *)
(* let colon_re = Str.regexp ":" *)