History always repeats itself and sometimes that's good. Here's a second chance to be part of it: tmdtc.com

Tuesday, 10 March 2009

Generate a random string in Clojure

In my quest to learn Lisp, I discovered Clojure, a List inspired language on the JVM. I really like it and hope to be able to use it more and more.
Here's a code snippet to generate a random string in Clojure. This is something I end up using a many projects. This is a version that is not made to be the shortest, but the most readable. And as you can see, access to Java's classes and libraries is very easy:

:use java's random generator
(def random (java.util.Random.))
;define characters list to use to generate string
(def chars
(map char (concat (range 48 58) (range 66 92) (range 97 123))))
;generates 1 random character
(defn random-char []
(nth chars (.nextInt random (count chars))))
; generates random string of length characters
(defn random-string [length]
(apply str (take length (repeatedly random-char))))

Suggestions to improve the code are welcome, I'm still a newbie in Lisp-style programming and Clojure!

Monday, 9 March 2009

Linkedin problems

The last weeks I've had serious problems to access linkedin: I can't accept group memberships, send invitations, accept invitations, etc: when attempting this, the browser waits and waits and doesn't get any answer from the server. And today I can't even access their homepage:

Very annoying...