Image for post
Image for post
Claude Monet, Cart on the Snow Covered Road with Saint-Simeon Farm, 1865

Why are competent people often so bad at teaching? It turns out that expertise comes with a cognitive handicap which makes it difficult to transfer the superior knowledge to others.

“A three-year-old boy comes into a lab, sits down at a table. The experimenter gives him a box of Smarties. He’s all excited. He opens it, and he finds that instead of containing Smarties, the box contains pencils. So the child is surprised. And the experimenter puts the pencils back in the box, closes it, puts it back down on the table. And he says: OK, Well, now another little boy is going to come in, Jason. What does Jason think is in the box? And the boy will say pencils. Even though, of course, Jason has no way of knowing that the box contains pencils, the boy knows it, but a newcomer would not. And in fact, if you ask him, well, when you came into the room, what did you think was in the box? And he’ll say pencils. Now that he knows it, he can no longer recover the innocent state in which he once did not know it.” …

Image for post
Image for post
Claude Monet (1840–1926) Poppies

The brain is nothing more than some organic matter in your skull. It is an organ and it serves a variety of functions through complex chemical and electrical interactions. Because all of those interactions are deterministic, human beings do not have free will. Or, at least, Sam Harris thinks that way. Assuming he’s right, should we be worried? Is it actually bad for us? Can we articulate why we think that way?

The state of affairs

For centuries, philosophers, theologians, and scientists have almost unanimously held that an absolute prerequisite for civilization and progress as we know it is free will. From where our culture stands, it seems that everything of value depends on free will. Without accepting a priori that every person is one and only source of his or her thoughts and actions, there seems to be no point in talking about morality, law, politics, or even love. The U.S. Supreme Court considers free will “universal and persistent” foundation for the system of law, distinct from “a deterministic view of human conduct that is inconsistent with the underlying precepts of our criminal justice system” (United States v. Grayson, 1978). Immanuel Kant asserted the relation between freedom and virtue by arguing that if we were not free to choose, then it would make no sense to say we ought to choose the path of righteousness. …

In this short essay, I present a brief discussion on the challenges of contemporary software engineering practice, identifying some of the potential causes of its current state. In subsequent essays, I will present and discuss strategies mainstream paradigms employ to minimize the complexity of the software. Observations laid here are mostly drawn from my own experience in the field. The examination undertaken here, therefore, makes no claim to be exhaustive. Readers who are stimulated to pursue the subject further are strongly recommended to study the works mentioned in the references.

Image for post
Image for post
Monet’s Rouen Cathedral (cropped). It reminds me of Concepts, Techniques, and Model of Computer Programming.

It comes as no surprise that software engineering involves significant cognitive effort. To take all aspects of software and come up with a finished product, it requires an interdisciplinary endeavor: from the requirement analysis to the specification, to the design, to the code, to the testing, to the evaluation, and the maintenance. Software engineering uses computer science to devise and analyze algorithms, engineering tools to build infrastructures, and management techniques to define trade-offs, risks, to oversee personnel, and monitor progress. E. E. …

Image for post
Image for post

Hiccup is a Clojure DSL for writing HTML. Here is a quick tutorial for the busy. It contains most of the information you’re going to need in a typical project.


Hiccup is a domain-specific language for generating HTML in Clojure. In other words, it turns Clojure into HTML. Let’s look at an example:

As you can see, it uses literal data structures — in fact, it’s just Clojure’s vectors containing keywords (representing tags) and maps (for HTML properties). The above example compiles down to:

…which is simple div with a single button which increments some atom counter. …

Image for post
Image for post

LISP is simple and difficult, elegant and ad hoc; it is a beautiful blend of foresight and fortuity.¹

Whether you agree with this statement or not, Lisp’s historical importance is indisputable. Even though a beautiful language in its own right, Lisp turned to be one of the most influential models of computer programming. It also gave birth to many widespread concepts in the industry today and, as mainstream is steadily shifting from von Neumann style to λ-calculus, we can suspect many to be adopted in the future. In effect, Lisp is of interest to both a historian and a futurist. Paul Graham suggested that what John McCarthy did for programming was something like what Euclid did for geometry². What is so important that McCarthy discovered? To answer this question we have to put aside decades’ worth of Internet mythos and take a look at Lisp’s humble beginnings — Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I³ by John McCarthy. …

Yep, this is another introductory-level article about pdb— sue me! The goal is to teach the essentials (and to give a few helpful tips) to those who don’t feel like reading the docs (or get heebie-jeebies when thinking about the console). It is intended for Python 3.

You can watch recorded demonstrations for selected commands on asciinema (links are in the text).

Image for post
Image for post

Why bother?

Skip to Getting started if you get bored easily.

As with every console tool, pdb may seem a bit intimidating. It doesn’t have a nice GUI to hold your hand, and it can feel very cryptic at times.


Iwo Herka

Senior software developer at Functional programming enthusiast. You can find me on

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store