Skip to content

Instantly share code, notes, and snippets.

View ballpointcarrot's full-sized avatar
💭
Perpetually confused.

Christopher Kruse ballpointcarrot

💭
Perpetually confused.
View GitHub Profile
@ballpointcarrot
ballpointcarrot / content.rb
Created May 23, 2012 06:38
Generic substitution with Procs
class Content
MATCHERS = [{:regex => /\[Contact\]/i, :proc => Proc.new{|options| options[:contact].name}},
{:regex => /\[Site\]/i, :proc => Proc.new{|options| options[:site].name}}]
attr_accessor :body
def prepare_form_letter(contact, site)
parsed = self.body
MATCHERS.each do |matcher|
parsed.gsub!(matcher[:regex], matcher[:proc].call({:contact => contact, :site => site}))
@ballpointcarrot
ballpointcarrot / ingestor.clj
Created August 28, 2015 06:05
Page scraper
(ns clj.image-db-clj.ingestor
(:use net.cgrand.enlive-html)
(:import java.net.URL))
(defn parse_page
"Retrieve all link references from the specified url"
[url]
(-> url URL. html-resource select [:a] ))
(defn folder-filter [anchor-tag]

Keybase proof

I hereby claim:

  • I am ballpointcarrot on github.
  • I am ballpointcarrot (https://keybase.io/ballpointcarrot) on keybase.
  • I have a public key whose fingerprint is 3ACB 1562 B92F BD0E 50A9 1985 B1E5 55FB 2A02 1EC4

To claim this, I am signing this object:

@ballpointcarrot
ballpointcarrot / aoc1.clj
Created December 2, 2018 23:45
Advent of Code - 2018 - Day 1
(ns aoc1)
(defn calibrate-1
"Simple solution for part 1 of AoC 2018 Day 1"
[input-file]
(let [raw-input (slurp input-file)
freqs (map #(Integer. %) (clojure.string/split-lines raw-input))]
(reduce + freqs)))
;; Below contents are from part 2, which didn't work well.
@ballpointcarrot
ballpointcarrot / aoc2.clj
Created December 3, 2018 04:53
Advent of Code 2018 - Day 2
(ns aoc.aoc2)
(defn reduce-twos-threes
"check the given frequency map n for twos or threes matches, and update
the memo map to indicate if the string has a match. Used for a reducer."
[memo n]
(let [t-memo (transient memo)]
(if (some (fn [[k v]] (= v 2)) n) (assoc! t-memo :twos (inc (:twos t-memo))))
(if (some (fn [[k v]] (= v 3)) n) (assoc! t-memo :threes (inc (:threes t-memo))))
(persistent! t-memo)))
@ballpointcarrot
ballpointcarrot / aoc3.clj
Last active December 3, 2018 13:13
Advent of Code 2018 - Day 3
(ns aoc.aoc3
(:require [clojure.string :as s]
[clojure.set :as set]))
(defrecord Claim [claim-number squares])
(defn convert-to-grid
"Converts a claim into a sequence of 'taken' squares."
[claim grid-width]
;; Named groups would be great here, but Clojure doesn't support this natively.
@ballpointcarrot
ballpointcarrot / aoc5.clj
Created December 6, 2018 01:41
Advent of Code 2018 - Day 5
(ns aoc.aoc5)
(defn polymer-drop [[c1 c2]]
(cond
(= c1 c2) false
(or (nil? c1) (nil? c2)) false
(= (Character/toLowerCase c1) (Character/toLowerCase c2)) true
:else false))
(defn shrink [input]
@ballpointcarrot
ballpointcarrot / example.json
Created April 10, 2020 22:21
example for reading json from JS
{
"calculatedValue": 14
}