Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

  • I am duelinmarkers on github.
  • I am duelinmarkers (https://keybase.io/duelinmarkers) on keybase.
  • I have a public key whose fingerprint is D0C8 9C93 956C 3726 B402 5ED3 7C52 19A2 B058 E31C

To claim this, I am signing this object:

@duelinmarkers
duelinmarkers / sessions.clj
Created May 9, 2014 22:00
Surprising behavior w/ Clojure vs Java data structures
user=> (-> {} (assoc [1 2] "vec") (assoc (java.util.ArrayList. [1 2]) "alist"))
{[1 2] "alist"}
user=> (-> #{} (conj [1 2]) (conj (java.util.ArrayList. [1 2])))
#{[1 2]}
user=> *clojure-version*
{:major 1, :minor 5, :incremental 1, :qualifier nil}
;;;;;;;;;;;;;;;;;;;;;
user> (-> {} (assoc [1 2] "vec") (assoc (java.util.ArrayList. [1 2]) "alist"))
@duelinmarkers
duelinmarkers / gist:a027446d56ee8dcb6c0d
Last active August 29, 2015 14:03
Idris install via cabal fails
$ cabal install idris
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: idris-0.9.13.1 (user goal)
trying: optparse-applicative-0.9.0 (dependency of idris-0.9.13.1)
trying: transformers-compat-0.3.3.4 (dependency of optparse-applicative-0.9.0)
trying: transformers-compat-0.3.3.4:-three
trying: trifecta-1.4.2 (dependency of idris-0.9.13.1)
next goal: transformers (dependency of idris-0.9.13.1)
rejecting: transformers-0.2.2.0/installed-367... (conflict:
; Thoughts on a query API for clj-record.
(require '[clj-record.query :as q)
(manufacturer/find-records {
:founded "1910" ; still just a simple equality
:grade (q/between 85 95)
:name (q/in "Ford" "GM")})
; where between and in return functions that know what they're about ...
(ns clj-record.query
(:require [clojure.contrib.str-utils :as str-utils]))
(defn- clause-and-parameters [join-with values]
[(str-utils/str-join join-with (reduce (fn [v1 v2] (conj v1 (if (nil? v2) "NULL" "?"))) [] values)) (filter (complement nil?) values)])
(defn between [value1 value2]
(fn [attribute]
(let [[clause parameters] (clause-and-parameters " AND " [value1 value2])]
# Allows you to specify the position of a column in your migrations' add_column and change_column calls.
ActiveRecord::ConnectionAdapters::MysqlAdapter.class_eval do
def add_column_options!(sql, options)
super
if options[:after]
sql << " AFTER #{quote_column_name(options[:after])}"
elsif options[:first]
sql << " FIRST"
end
end
@duelinmarkers
duelinmarkers / preso-stuff.el
Created September 6, 2015 15:19
Presentation-related excerpt of my emacs setup.
(add-to-list 'load-path "~/Projects/preso/org-present")
(autoload 'org-present "org-present" nil t)
(eval-after-load "org-present"
'(progn
(add-hook 'org-present-mode-hook
(lambda ()
(org-present-big)
(org-display-inline-images)
(toggle-frame-fullscreen)
@duelinmarkers
duelinmarkers / gist:1528186
Created December 28, 2011 14:48
Weird Jruby error
A #&lt;Class:0x44e38467&gt; occurred in controller_name_was_here#show:
org.jruby.javasupport.JavaClass.installClassFields(JavaClass.java:843)
org.jruby.javasupport.JavaClass.installClassFields(JavaClass.java:843)
org.jruby.javasupport.JavaClass.setupProxy(JavaClass.java:710)
org.jruby.javasupport.Java.createProxyClass(Java.java:520)
org.jruby.javasupport.Java.getProxyClass(Java.java:449)
org.jruby.javasupport.Java.getInstance(Java.java:358)
@duelinmarkers
duelinmarkers / couchdb.rake
Created September 11, 2012 16:23
Migrations spike for RapidFTR
# in lib/tasks
namespace :couchdb do
task :migrate => :environment do
migration_files = Dir[Rails.root.join('db/migrate/*.rb')]
migration_files_by_id = Hash[*migration_files.map {|path| [migration_number_from_file(path), path] }.flatten]
applied_migration_ids = SchemaMigration.all.map(&:id)
migration_ids_to_apply = migration_files_by_id.except(*applied_migration_ids).sort
if migration_ids_to_apply.empty?
puts "DB already up to date."
else
@duelinmarkers
duelinmarkers / first.clj
Created November 5, 2012 22:19
Testing multi-file gist embedding
(ns example.first)