Skip to content

Instantly share code, notes, and snippets.

View attentive's full-sized avatar

Tom attentive

View GitHub Profile
@attentive
attentive / conduit.clj
Last active August 29, 2015 14:03
Shows one way to create a "dynamic deftemplate" for Enlive
(ns gist.conduit
(:use [net.cgrand enlive-html tagsoup]))
; The implementations of conduit and defconduit are modified versions of
; the macros template and deftemplate from the guts of Enlive.
; They're named 'conduit' because the selectors and transformations serve as a
; channel between the scaffold of HTML and some data provided as an argument.
; Tagsoup is used to parse a list of HTML nodes from a specified input file at runtime.
@attentive
attentive / leaflet-helloworld.cljs
Last active August 29, 2015 14:00
LeafletJS Hello World in Om and ClojureScript
(ns leaflet-helloworld
(:require [om.core :as om :include-macros true]
[om.dom :as dom :include-macros true]))
(defn map-view [_ owner]
(reify
om/IRender
(render [_]
(dom/div #js {:id "the-map"} nil))
om/IDidMount
@attentive
attentive / postgis.clj
Created October 29, 2012 10:25
PostGIS and Korma
(ns postgis
(:require [clj-json.core :as json])
(:use korma.core korma.db korma.sql.engine))
(defn intersects [first-geom second-geom]
"An extended Korma predicate that uses the PostGIS function ST_Intersects."
(sql-func "ST_Intersects" first-geom second-geom))
(defn from-wkt [wkt]
"Create a PostGIS geometry with geographic SRID from WKT using ST_GeomFromText."
@attentive
attentive / main.js
Created June 7, 2011 15:13
Prettified Mapnificent
window.Mapnificent = (function (window, document, $, undefined) {
var getOSMMapType = function () {
return new google.maps.ImageMapType({
getTileUrl: function (coord, zoom) {
return "http://tile.openstreetmap.org/" + zoom + "/" + coord.x + "/" + coord.y + ".png"
},
tileSize: new google.maps.Size(256, 256),
isPng: true,
maxZoom: 18,
name: "OSM"