Keybase proof

I hereby claim:

  • I am danielsz on github.
  • I am danielsz ( on keybase.
  • I have a public key whose fingerprint is BA33 576B 24FF 371B E024 5E3E D2DD 64F0 A30E 1DD6

To claim this, I am signing this object:

View notify-erc.el
(defvar notify-command (executable-find "terminal-notifier") "The path to terminal-notifier")
(defun notify (title message)
"Shows a message through the Notification center system using
`notify-command` as the program."
(flet ((encfn (s) (encode-coding-string s (keyboard-coding-system))) )
(let* ((process (start-process "notify" nil
"-title" (encfn title)
"-message" (encfn message))))))
View automation-proof-of-concept.clj
(ns node-test.core
(:require [cljs.nodejs :as nodejs]))
(def cp (.-spawn (nodejs/require "child_process")))
(defn run-cmd [cmd args call-back]
(let [child (cp cmd args)]
(.on (.-stdout child) "data" call-back)
(.on (.-stdout child) "end" #(println (str cmd " process ended")))))
View germain.clj
(require '[clojure.math.numeric-tower :refer [sqrt]])
(defn smallest-divisor [n]
(find-divisor n 2))
(defn divides? [a b]
(= (mod b a) 0))
(defn find-divisor [n test-divisor]
(cond (> (sqrt test-divisor) n) n
View guidelines.txt
The task of this Dojo is to play a tune with Overtone, namely "In the Summertime" by Mungo Jerry.
Wifi password: Elc0Campus
The instructions on how to set up a working overtone environment are detailed in this excellent guide:
View pushState.cljs
(def history (Html5History.))
(.setUseFragment history false)
(.setPathPrefix history "")
(.setEnabled history true)
(let [navigation (listen history EventType/NAVIGATE)]
(while true
(let [token (.-token (<! navigation))]
(secretary/dispatch! token)))))
View workflow
Stuart Sierra has written an article describing how he works with Clojure interactively using the REPL, tools.namespace, and Leiningen.
Commentary on Hacker News:
The process described there constitute best practices with a very broad application field. It is so fundamental, in fact, that most Clojure applications would probably benefit from adopting this model.
I'm interested to provide a fleshed out example of that workflow to benefit new users/beginners. The blog post, while eye-opening, still isn't enough to get started for a whole range of users. I'm saying this because I'm struggling myself.
I would like the example to be web oriented. I was thinking to use liberator to provide a REST API with one resource that can be created/edited/updated/deleted, and db persistence. DB would be either datomic or mongodb.

The premise of this exercise is contained in Daniel Himelein's quote:

"The first thing I always do when playing around with a new software platform is to write a concurrent "Hello World" program. The program works as follows: One active entity (e.g. thread, Erlang process, Goroutine) has to print "Hello " and another one "World!\n" with the two active entities synchronizing with each other so that the output always is "Hello World!\n". Here is the concurrent Hello World program in Go, Erlang and in C++ using the Mindroid framework."

Original post

Here is a Hello World example in Ruby/Celluloid. Five, actually.

View gist:4017605
require 'celluloid'
class Hello
include Celluloid
def say_hello
View canonical_el-get.el
;; canonical list
(defvar my-packages
'(ack haskell-mode ruby-mode coffee-mode deft expand-region
gist inf-ruby magit yaml-mode)
"Canonical list of packages.")
(el-get-cleanup my-packages)
(el-get 'sync my-packages)