Skip to content

Instantly share code, notes, and snippets.

@simonholgate
simonholgate / gist:1632764
Created January 18, 2012 12:22
clojure.java.jdbc Oracle clob
(defn clob-to-string [clob]
"Turn an Oracle Clob into a String"
(with-open [rdr (java.io.BufferedReader. (.getCharacterStream clob))]
(apply str (line-seq rdr))))
(with-connection mydb
(transaction
(with-query-results rs ["select documentation from station"]
; rs will be a sequence of maps,
; one for each record in the result set.
@clojens
clojens / re.clj
Created December 12, 2013 17:58
A few clojure java regex samples
(def ptrn
{
:a {:pattern #"a(?!b)"
:purpose "Only allow a if it is not preceded by a 'b' (negative lookahead)"
:samples ["acdefg" ; ok
"abcdef" ; nil
]}
:b {:pattern #"(?i)(<title.*?>)(.+?)(</title>)"
(ns datascript-to-datomic-util
(:require [datascript :as d]))
;;;; a utility to help with a datomic-datascript roundtrip process involving:
;;; 1. export some data from a datomic database and transact into a datascript instance.
;;; 2. perform one or more transactions against datascript.
;;; 3. transact the sum of all changes made against datascript back into datomic in a single tx
;;; this namespace contains two public functions:
;;; listen-for-changes: listen to datascript transactions and build up a record of changes
@pesterhazy
pesterhazy / minimalist-migration-framerwork.sql
Created October 19, 2017 14:59
Minimalist migration framework for PostgreSQL
create table if not exists migrations (
key text CONSTRAINT pkey PRIMARY KEY
);
create or replace function idempotent(migration_name text,code text) returns void as $$
begin
if exists (select key from migrations where key=migration_name) then
raise notice 'Migration already applied: %', migration_name;
else
raise notice 'Running migration: %', migration_name;
@ridercz
ridercz / House-animated.scad
Last active December 15, 2025 10:03
OpenSCAD House
/*****************************************************************************
** OpenSCAD Example Code by Michal Altair Valasek - https://www.rider.cz **
** Licensed under terms of Creative Commons Attribution License (cc-by) **
** https://creativecommons.org/licenses/by/4.0/ **
*****************************************************************************/
base_width = 40; // X
base_depth = 30; // Y
base_height = 20; // Z
wall = 1;
(require '[clojure.string :as s])
(declare print-maze)
;; Maze GENERATION
(defn create-grid [rows cols]
(vec (repeat rows (vec (repeat cols #{})))))
(defn north-of [[row col]] [(dec row) col])
(defn south-of [[row col]] [(inc row) col])
@mohanpedala
mohanpedala / bash_strict_mode.md
Last active March 28, 2026 20:04
set -e, -u, -o, -x pipefail explanation
@ian-moore
ian-moore / dev_server.clj
Created November 27, 2019 20:10
shadow-cljs dev http server with conditional proxy requests
(ns my-shadow-app.dev-server
(:require [clj-http.client :as client]
[clojure.string :as string]
[shadow.http.push-state :as push-state])
(:import [org.apache.http NoHttpResponseException]))
(defn handler
[{:keys [uri http-config body headers request-method] :as request}]
(if-not (string/starts-with? uri "/api")
(push-state/handle request)
@yogthos
yogthos / clojure-beginner.md
Last active February 27, 2026 19:12
Clojure beginner resources

Introductory resources