January 9, 2016

How Programming is Like Cooking

Peter Naur, famous in the programming world for his contributions to ALGOL and the Backus-Naur Form (BNF) notation for expressing grammars, passed away last week. (For those who are not in the programming world, ALGOL’s grammatical syntax inspired most of today’s most popular programming languages, like C, C++, Java, and Python). As a very young millennial programmer, I’d of course heard Naur’s name from the BNF notation, but didn’t really get to appreciate just how prescient his work was at the time. ...

November 22, 2015

IaaS and PaaS Explained: A Food Analogy

The other night, I was meditating about my various options for deploying applications at work, including “Infrastructure as a Service” (IaaS) and “Platform as a Service” (PaaS). Amidst my musing, I came up with an analogy for explaining the difference between these various ways of deploying programming solutions, in addition to the much more conventional approaches which were used formerly (and are often still necessary). The Analogy Suppose you want to get into the food services industry. ...

November 17, 2015

The Clojure “Reductions” Function

Tonight, while attempting a problem at 4 Clojure (problem number omitted so as not to give too many hints), I was struck by the following problem: What if I need a Clojure function which can take a sequence of functions and can sequentially call them on some seed value? I’m specifically looking at something like: (defn some-fun [seed-val & funs] ; Keep passing the calculated value through, while also appending to sequence (list ((first funs) seed-val) ((second funs) ((first funs) seed-val)) . ...

November 5, 2015

Clojure Zippers Emulate Object-Oriented Programming?

Yesterday, I posted about using Clojure zippers to solve the problem of automatically generating a Table of Contents. During my work with Clojure’s implementation of zippers, I noticed something interesting. The zipper function creates (and returns) a new zipper object. Its parameters are the following (lifted straight from the documentation): branch? – a function that takes a node of the zipper and returns a true/false if it is capable of having children (even if it currently does not). ...

November 5, 2015

Coding: Debugging the Gender Gap

On Monday, I had the chance to view a private screening of the newish documentary “Code: Debugging the Gender Gap”. The premise of the documentary, lifted straight from IMDB: CODE documentary exposes the dearth of female and minority software engineers and explores the reasons for this gender gap and digital divide. The film highlights breakthrough efforts that are producing more diverse programmers and shows how this critical gap can be closed. ...

© Jeff Rabinowitz, 2023