Intro to programming: "callables"

How would I introduce someone to the idea of functions? When you want a room painted, you call a painter. When you want a sink unclogged, you call a plumber. When you want something done, you call someone who can do it. Let's create a word that means "someone you…

Parsing custom binary formats in Clojure

Table of Contents Parsing custom binary formats Exploration Binary Format Basics Reading the MNIST data files Misc I/O An alternative higher-level API, ByteBuffer -> asIntBuffer Parsing custom binary formats This is a rough draft of some notes on working with binary data in Clojure. I’m going to…

Clojure deps.edn hot-loading project dependencies without a restart

Alembic is fine if you're using Leiningen, but I've been using deps.edn and Clojure's built-in project/dependency management. deps.edn {:deps {org.clojure/tools.deps.alpha {:git/url "https://github.com/clojure/tools.deps.alpha.git" :sha "d492e97259c013ba401c5238842cd3445839d020"}}} user.clj (ns user (:require [clojure.tools.…

Clojure, SQLite, and the problems with Booleans.

SQLite doesn't have a true "boolean" affinity. https://www.sqlite.org/datatype3.html#affname 3.1. Determination Of Column Affinity The affinity of a column is determined by the declared type of the column, according to the following rules in the order shown: If the declared type contains the string…

SSL vs TLS vs STARTTLS - What's what with email encryption?

TLS is a successor to SSL. SSL was developed in 1995 and while dealing with security issues went through 3 versions before someone wrote a similar but new protocol to try to address some of the issues inherent in SSL. This new protocol was TLS. You should be using TLS.…

How to delete whitespace around cursor in Emacs

I often get into a spot where I have a bunch of whitespace and newlines separating a couple of closed parentheses. (defun fib (n) (if (< n 2) n (+ (fib (- n 1)) (fib (- n 2)) ))) Lets assume your cursor is anywhere between the end of line 4 and…

On Common Knowledge of Pi

Eric Ihli 2018 Funding for this study was provided by Ezmonic. AbstractPi is a constant that not only surrounds us but continues to surprise us with unexpected appearances. For all of Pi's ubiquitousness, how much does the average person really know about it? This study aims to shed light on…

Words vs Music and Minimal-loss Encoding for Communication

Robert Greenberg has some amazing lectures on music from The Great Courses. Even if the subject matter (classical music) doesn't interest you, he's an excellent lecturer and his enthusiasm is infectious. Regardless of topic, he's entertaining. Something from the beginning of Lecture 2 of "How to Listen to and Understand…

Python Web Scraping Best Practices

I've been scraping the web a lot as part of my quest to find the best scratch-off lottery ticket. I want to share some of the practices that I've discovered. I'll do so by posting the code itself in a style of "literate programming". (It's actually just heavily commented code.…