Skip to content

Instantly share code, notes, and snippets.

View yogthos's full-sized avatar
🤷‍♂️

Dmitri Sotnikov yogthos

🤷‍♂️
View GitHub Profile
@yogthos
yogthos / model.clj
Created April 16, 2012 02:32
dead simple web app
(ns model
(:require [clojure.java.jdbc :as sql]))
(def db {:classname "org.hsqldb.jdbcDriver"
:subprotocol "hsqldb"
:subname "user.db"
:create true})
(defn db-read [query]
(sql/with-connection db
@yogthos
yogthos / gist:3201386
Created July 29, 2012 19:42
Guestbook in Clojure

Install Leiningen and create a project

wget https://raw.github.com/technomancy/leiningen/preview/bin/lein
lein self-install
lein plugin install lein-noir 1.2.1
lein noir new guestbook
cd guestbook
@yogthos
yogthos / gist:3260456
Created August 4, 2012 23:01
RSS in Clojure
(ns rss
(:use [clojure.xml :only [emit]])
(:import java.util.Date))
(defn format-time [time]
(.format (new java.text.SimpleDateFormat
"EEE, dd MMM yyyy HH:mm:ss ZZZZ") time))
(defmacro tag [id attrs & content]
`{:tag ~id :attrs ~attrs :content [~@content]})
@yogthos
yogthos / gist:3411102
Created August 21, 2012 02:59
Metaballs without optimizations
(ns metaballs
(:import
[javax.swing JFrame]
[java.awt Canvas Graphics Color]
java.awt.image.BufferStrategy))
(def SIZE 250)
(defn direction [p v]
(if (or (> p SIZE) (neg? p)) (- v) v))
@yogthos
yogthos / gist:3411106
Created August 21, 2012 03:00
Metaballs with optimizations
(ns metaballs
(:import
[javax.swing JFrame]
[java.awt Canvas Graphics Color]
java.awt.image.BufferStrategy))
(set! *warn-on-reflection* true)
(def ^:const SIZE 250)
(defn direction [p v]
@yogthos
yogthos / gist:4229822
Created December 7, 2012 00:55
Guestbook app
wget https://raw.github.com/technomancy/leiningen/preview/bin/lein
chmod +x lein
lein self-install
lein new noir guestbook
cd guestbook

#Add dependencies

(defn sorted-key-list
[& maps]
(or
(->>
(mapcat keys maps)
set
(map str)
sort
(clojure.string/join ", ")
not-empty)
(function() {
var colorChooser, AlbumImage, AlbumColors;
/* colorChooser
* A series of function that is used to pick up 3 colors among 10 dominating colors
*/
colorChooser = {
colorStringToRGBArray: function(colorString) {
var n, arr = colorString.split(',');
@yogthos
yogthos / metaballs.clj
Created December 4, 2013 23:11
Metaballs examples
(ns metaballs
(:import
[javax.swing JFrame]
[java.awt Canvas Graphics Color]
java.awt.image.BufferStrategy))
(set! *warn-on-reflection* true)
(def SIZE 250)
(ns parser)
(defn read-char [rdr]
(let [ch (.read rdr)]
(if-not (== -1 ch) (char ch))))
(def expr-tags
{:if #(str "if tag args: " (clojure.string/join ", " %1))})
(defn expr-tag [{:keys [tag-name args] :as tag} rdr]