Painting in Clojure
Learning Clojure by building a digital Jackson Pollock. This article and the source code backing it can be found on GitHub . Below is an example of what we will be building, running the code found in this page.
Beginner's guide to OCaml beginner's guides
Alex Clemmer is a computer programmer. Other programmers love Alex, excitedly describing him as "employed here" and "the boss's son".
Fat JSON
Most server-side APIs these days are JSON-over-HTTP. Developers are generally comfy with this, but I notice when I look at the JSON that it’s often, uh, what’s the tactful term these days? Let’s say “generously proportioned”. And I see clumsy code being written to walk through it. The options for dealing with this are…
Unicode in Python 3
A list of things about unicode on Linux and Python 3 you really did not want to know.
Queues Don't Fix Overload
People misuse queues all the time. The most egregious case being to fix issues with slow apps, and consequently, with overload. But to say why, I'll need to take bits of talks and texts I have around the place, and content that I have written in more details about in Erlang in Anger .
Make your program slower with threads
Years ago, while taking a numerical methods course, I wrote some code to calculate the expected number of shared birthdays in a group. The code is very simple: each attempt constructs a vector of N birthdays, then counts the duplicates. The outer loop runs millions of attempts, and calculates the mean number of shared…
A quick tutorial on implementing C memory management functions
This is basically an expanded explanation of what I did after reading this tutorial by Marwan Burelle and then sitting down and trying to write my own implementation, so the steps are going to be fairly similar. The main implementation differences are that my version is simpler and more vulnerable to memory…
How to become a programmer, or the art of Googling well
*Note: Please read all italicized technical words as if they were in a foreign language. The fall semester of my senior year, I was having some serious self-confidence issues. I had slowly come to …
Overkilling the 8-queens Problem
Last night, a fellow Hacker Schooler challenged me to a running-time contest on the classic eight queens puzzle. Naturally, I pulled up my trusty …
The Case for React.js and ClojureScript
A comparison of MVC web frameworks with React.js and ClojureScript circa 2014.
Functional Programming using JavaScript
There is no clear, widely-accepted definition of Functional Programming. It is a collection of related featues which cohere well into a very useful style of programming.
Rust for functional programmers
This post follows up on OCaml for Haskellers from Edward Z. Yang (2010) and my own Haskell for OCaml programmers from earlier this year. Note The latest version of this document can be found online at https://dr-knz.net/rust-for-functional-programmers.html. Alternate formats: Source, PDF. Prologue Rust for C…
OCaml: what you gain
Way back in June, in Replacing Python: second round, I wrote: The big surprise for me in these tests was how little you lose going from Python to …
My new favorite vim/tmux bug
This week, I'm grateful that my coworkers know to come grab me if something seriously weird is going on, because it...
Emacs standing alone on a Linux Kernel
Nano How-To explaining how to setup a root file system with only emacs.
Proposal For An Interactive Introduction to Graphics Programming
This is a proposal and proof-of-concept for an interactive book about programming the graphics processor.
The Beauty of LaTeX (2011)
There are several reasons why one should prefer L A T E X to a WYSIWYG word processor like Microsoft Word: portability, lightness, security are just a few of them (not to mention that L A T E X is free ). There is still a further reason that definitely convinced me to abandon MS Word when I wrote my dissertation: you…
A performance comparison between Java and C on the Nexus 5
Android phones have been growing ever more powerful with time, with the Nexus 5 sporting a quad-core 2.3 GHz Krait 400; this is a very powerful CPU for a mobile …