Skip to content

Instantly share code, notes, and snippets.

@djKianoosh
djKianoosh / interfaces.groovy
Created June 30, 2011 01:48
List out network interfaces
def interfaces = NetworkInterface.getNetworkInterfaces()
while (interfaces.hasMoreElements()) {
def addresses = interfaces.nextElement().getInetAddresses()
while (addresses.hasMoreElements()) {
println addresses.nextElement().getHostAddress()
}
}
@djKianoosh
djKianoosh / altTitleFindr.groovy
Created June 30, 2011 03:05
List out all alt/title tags in jsp files under a src directory
import java.util.regex.Matcher
import java.util.regex.Pattern
basedir="src"
new File(basedir).eachDirRecurse() { dir ->
dir.eachFileMatch(~/.*.jsp/) { file ->
println "Examining ${file.getPath()}"
file.eachLine { line, number ->
alts = line =~ /(?s)alt=\"(.*?)\"/
@djKianoosh
djKianoosh / listCompare
Created August 10, 2011 18:22
compare lists of multiline strings in groovy
def first = """item1
item2
item3"""
def second = """item2
item3
item4
item5
item6"""
List list1 = makeList(first)
@djKianoosh
djKianoosh / tcp-chat.js
Created August 30, 2011 22:27
Simple node tcp chat server
// simple chat server listening on port 8000
// connect as a client with, for example, "netcat localhost 8000"
var net = require ('net');
var sockets = [];
var s = net.Server(function(socket) {
sockets.push(socket);
@djKianoosh
djKianoosh / gist:1431997
Created December 5, 2011 02:02
4Clojure Problem 33 : Replicate a Sequence
;; djclojure's solution to Replicate a Sequence
;; https://4clojure.com/problem/33
;; start off with repeat to repeat an item x, n times
;; e.g. (repeat 3 1) results in (1 1 1)
;; then mapcat (map and concat), a given collection onto that in place of x
(fn replicate-seq [coll n]
(mapcat #(repeat n %) coll))
@djKianoosh
djKianoosh / gist:1432162
Created December 5, 2011 03:21
Oh the many ways to interpose a list in Clojure
;; 4Clojure problem 40: Interpose a Seq
;; http://www.4clojure.com/problem/40
;; oh yeah, don't use interpose ;)
;; my first attempt..
(fn my-interpose [separator col]
(butlast (flatten
(map list col (repeat (count col) separator)))))
@djKianoosh
djKianoosh / build.gradle
Created December 5, 2011 16:49 — forked from kellyrob99/build.gradle
build.gradle for setting up a new gradle-based project for use with clojure & clojuresque
apply plugin:'groovy'
apply plugin:'project-report'
buildscript {
repositories {
maven {
name 'clojars'
url 'http://clojars.org/repo'
}
}
@djKianoosh
djKianoosh / gist:1444995
Created December 7, 2011 22:20
4Clojure #41 - Drop every Nth Item
(= (__ [1 2 3 4 5 6 7 8] 3) [1 2 4 5 7 8])
(= (__ [:a :b :c :d :e :f] 2) [:a :c :e])
(= (__ [1 2 3 4 5 6] 4) [1 2 3 5 6])
(fn drop-every-n [col n]
(keep-indexed
(fn [index item]
(if
(not= 0 (mod (inc index) n))
item
@djKianoosh
djKianoosh / gist:1867375
Created February 20, 2012 02:34
javascript timer for ngml online draft
var JQ = document.createElement('script');
JQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
JQ.type= 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(JQ);
jQuery.noConflict();
var ngml = {};
ngml.msgBox = jQuery('div[id^="[ngml]"] form textarea');
ngml.maxTime=45;
ngml.timer=0;
@djKianoosh
djKianoosh / gist:1978188
Created March 5, 2012 12:46
gunzip a bunch of log files, sort them by the file name, then concat them into one log file
gunzip $1$2
cat $(find ./ -name "$1$2" | sort -V) > $1.log
rm $1$2