Skip to content

Instantly share code, notes, and snippets.

View devstopfix's full-sized avatar

James Every devstopfix

View GitHub Profile
@devstopfix
devstopfix / passwordy.rb
Created May 4, 2015 12:46
Dumb Ruby password generator
# Returns an enumerator that generates password from the standard dictionary
# Only parameter is the number of words to use.
# Example: passwordy(2).next -> "GarlicUngulp"
def passwordy(wc=4)
words = File.readlines('/usr/share/dict/words')
.select {|w| w.size>5 && w.size<=9}
.shuffle
Enumerator.new do |yielder|
yielder.yield(words
@devstopfix
devstopfix / elite-planet-names.rb
Created May 10, 2015 20:39
Ruby planet name generator
PAIRS="..LEXEGEZACEBISOUSESARMAINDIREA.ERATENBERALAVETIEDORQUANTEISRION"
planet = (3+rand(2)).times.map { PAIRS[rand(32) * 2,2] }.join.gsub('.', '').capitalize
;
; Generate a table of the products of prime numbers
;
(defn √ [x]
"Integer square root of x"
(int (Math/sqrt x)))
(defn prime? [x]
"Return true if x is a prime number, using naïve trial division algorithm."
@devstopfix
devstopfix / planets.clj
Created October 26, 2015 20:42
Elite planet names generated by Clojure's test.check generators
(require '[clojure.test.check.generators :as gen])
; Elite planet name letter pairs (http://www.iancgbell.clara.net/elite/text/index.htm)
(def pair (gen/elements [[ ] [\L \E] [\X \E] [\G \E] [\Z \A] [\C \E] [\B \I] [\S \O]
[\U \S] [\E \S] [\A \R] [\M \A] [\I \N] [\D \I] [\R \E] [\A ]
[\E \R] [\A \T] [\E \N] [\B \E] [\R \A] [\L \A] [\V \E] [\T \I]
[\E \D] [\O \R] [\Q \U] [\A \N] [\T \E] [\I \S] [\R \I] [\O \N]]))
; Generator of Elite-like planet names. Uses a similar algorithm but replaces the use
; of a seeded series of numbers with test.check generators.
defmodule RomanNumerals do
# Roman Numerals (Elixir)
@digits %{"I" => 1,
"V" => 5,
"X" => 10,
"L" => 50,
"C" => 100,
"D" => 500,
"M" => 1000}
module RomanNumeral exposing (numeral_to_number)
type Digit = I | V | X | L | C | D | M
value : Digit -> number
value d =
case d of
I -> 1
V -> 5
; Neo4J CREATE
(defn- format-props [props]
"Format a map of {:symbol String} to Cypher format"
(->>
props
seq
(map (fn [[k v]] (format "%s: %s" (name k) (pr-str v))))
(clojure.string/join ", ")))
@devstopfix
devstopfix / midpoint-circle-algorithm.clj
Created August 18, 2016 13:59
Midpoint Circle Algorithm (Bresenham)
; https://en.wikipedia.org/wiki/Midpoint_circle_algorithm
(defn mirror-point [x0 y0 x y]
[[(+ x0 x) (+ y0 y)]
[(+ x0 y) (+ y0 x)]
[(- x0 y) (+ y0 x)]
[(- x0 x) (+ y0 y)]
[(- x0 x) (- y0 y)]
[(- x0 y) (- y0 x)]
[(+ x0 y) (- y0 x)]
@devstopfix
devstopfix / scrabble.cljs
Created December 14, 2016 22:44
Zuhlke UK Coding Night - Scrabble word score in ClojureScript
#!/usr/bin/env planck
;
; Coding night challenge - Scrabble
; Generate a rack of tiles and find highest scoring word
;
; Written in ClojureScript running on Planck
; http://planck-repl.org/guide-all.html
;
; To run on OS X:
@devstopfix
devstopfix / binary.clj
Created December 15, 2016 20:36
Zuhlke UK coding night - parse binary string
(ns zuhlke.codingnight.binary)
;
; Coding night challenge - Binary
; Convert string of binary digits to int
;
(defn binary-str-to-int [s]
(loop [s (reverse s)
acc 0
pwr 1]