# Articles & Posts

Introduction to Geometric Algebra, Part 1 Geometric Algebra (GA) is one of those things that we should have all learned in high school because it would have made physics and mathematics in college so much easier. Hyperbolic Geometry & Special Relativity While studying An Introduction to Particle Physics on a recent flight to Japan – studying math that is way above my head is a nerdy hobby of mine – I came across a simple viewpoint on special relativity that really stunned me: Reviving the Dead...Content From 2003 until 2016, I had a personal website at roboloco.net. It lasted until last year, when I finally grew tired of upgrading applications, keeping comments free of spam, and the servers secure from hackers and the occasional website defacement. Thank you, GitHub, for providing this terrible sysadmin a free place to store this content, and one that requires no regular maintanance! Project Euler Problem 89 Problem 89 was kind of fun: we needed to convert some sloppily written roman-numerals into their more efficient, minimal representations. Project Euler Problem 87 Problem 87 asks us to find how many numbers below 50 million that can be expressed as the sum of a prime square, cube, and fourth power. Project Euler Problem 86 Despite it’s relative simplicity, I wasted hours on problem 86. One important thing that I learned is: Project Euler Problem 85 Problem 85 asks us to find the number of rectangles that can be drawn in a grid of size m by n. Project Euler Problem 84 Problem 84 asks us to implement the classic game Monopoly and find the most-visited spaces on the board…if we used two 4-sided dice instead of 6-sided ones. Project Euler Problem 83 Problem 83 can be solved with A* exactly like the we did in problem 81. The only code that needs to be changed is the neighbors function neigh and the estimated cost-to-goal function est. Everything else can be reused from problem 81.(defn euler-83 [] (let [mat (load-matrix "/zzz/work/matrix.txt") m (count mat) n (count (first mat)) cost (fn [[i j]] (nth (nth mat (dec i)) (dec j))) start [1 1] goal [m n] goal? (fn [e] (= e goal)) est (fn [[i j]] 0) neigh (fn [[i j]] (merge (when (< i m) {[(inc i) j] (cost [(inc i) j])}) (when (< j n) {[i (inc j)] (cost [i (inc j)])}) (when (< 1 i) {[(dec i) j] (cost [(dec i) j])}) (when (< 1 j) {[i (dec j)] (cost [i (dec j)])}))) path (a*-search est neigh start goal?)] (reduce + (map cost path)))) Project Euler Problem 82 As I mentioned in the previous post (#81), we can use [A](http://en.wikipedia.org/wiki/A) to easily solve problem 82 as well.