Open in app

Sign In

Write

Sign In

Kevlin Henney
Kevlin Henney

2.9K Followers

Home

About

3 days ago

Programmers Have a Lot on Their Minds

Preface to 97 Things Every Programmer Should Know — The newest computer can merely compound, at speed, the oldest problem in the relations between human beings, and in the end the communicator will be confronted with the old problem, of what to say and how to say it. — Edwin R Murrow Programmers have a lot on their minds…

Programming

2 min read

Programmers Have a Lot on Their Minds
Programmers Have a Lot on Their Minds
Programming

2 min read


Jul 27, 2022

The Right Tool for the Job?

The seemingly self-evident advice to “use the right tool for the job” is more subtle and more complex than it first appears — What I want to explore is this idea that you should “use the right tool for the job.” We see this phrase used in software development. We also see it used elsewhere, in other disciplines, but I’m going to focus on software development for now.

Software Development

8 min read

Software Development

8 min read


Mar 21, 2022

The Most Bogus Sort

Random fun with the esoteric bogosort ‘algorithm’ — Surely, there can be nothing worse than permutation sort in terms of performance? Don’t be so sure. And that’s the essence of bogosort: uncertainty. Permutation sort, which I explored previously, has (staggeringly) poor performance, but it does at least offer two guarantees bogosort does not: (1) it is deterministic and…

Sorting Algorithms

14 min read

The Most Bogus Sort
The Most Bogus Sort
Sorting Algorithms

14 min read


Nov 22, 2021

Agility ≠ Speed

Software development benefits from a sense of direction — I was changing a lightbulb this morning and was struck by a shift that has occurred in recent years. Lightbulbs used to be sold according to their power consumption. People were entrained to buy bulbs according to power rating — what the bulb consumed from the electrical grid — rather…

Agile Development

9 min read

Agility ≠ Speed
Agility ≠ Speed
Agile Development

9 min read


Sep 17, 2021

Lifting the Recurse of Factorial

Recursion? Iteration? Or a third (or fourth) way? — It has been said that if you want to create something unique, something likely never seen in the universe, shuffle a pack of cards. The probability that the particular arrangement of cards has ever existed before is vanishingly small. The number of permutations of a 52-card deck is 52×51×50×…×2×1, which…

Python

12 min read

Lifting the Recurse of Factorial
Lifting the Recurse of Factorial
Python

12 min read


Sep 6, 2021

The Recurse of Factorial

Deconstructing factorial implementations in unnecessary detail, from iterative to recursive, from control structure to data structure, from one language to another — Factorial played a walk-on part in a previous blog post. I’m not saying the reason many programmers are hesitant about recursion is because factorial is their introductory example… but I’m sure it doesn’t help. Now it gets to star in its own mini-series of articles. I want to examine what…

C

12 min read

The Recurse of Factorial
The Recurse of Factorial
C

12 min read


Aug 30, 2021

Getting over the Waterfall

Deconstructing sequential development to better understand more continuous development — Sequential development, as typified by the waterfall model, is the common punching bag of anyone supporting a more adaptive approach to the creation of software. In spite of the increased popularity of iterative and incremental approaches over recent decades — from the classic spiral model to agile development, from RAD…

Waterfall

9 min read

Getting over the Waterfall
Getting over the Waterfall
Waterfall

9 min read


Aug 23, 2021

A Sort of Permutation

Practical lessons in the impractical permutation sort — We’ve previously explored esoteric sorting algorithms that either purport to be linear in execution time but are hugely inefficient or actually are linear but are lossy. It’s time to find ourselves at the other end of the scale: lossless and profoundly non-linear. Permutation sort takes us from O(n) to O(n!)…

Sorting Algorithms

6 min read

A Sort of Permutation
A Sort of Permutation
Sorting Algorithms

6 min read


Aug 16, 2021

Carbonated Air

Figuring out the mass of carbon in the atmosphere with some back-of-the-envelope number crunching — Following on from a previous post, where I looked at how to estimate the mass of Earth’s atmosphere, there’s a question that inevitably suggests itself in this era of climate crisis and the most recent IPCC assessment report: how much carbon is there in the atmosphere? Again this is an…

Atmosphere

8 min read

Carbonated Air
Carbonated Air
Atmosphere

8 min read


Aug 9, 2021

Get the Drop on Sorting

Dropsort adventures in algorithm design, programming languages and sequential and concurrent control flow — In a previous post I explored sleep sort, a somewhat pathological sorting algorithm that reframes spatial rearrangement as temporal. There is no sense in which the algorithm is intended for practical work, but such esoteric algorithms are useful in what they can teach us about paradigms, performance and programming languages…

Dropsort

16 min read

Get the Drop on Sorting
Get the Drop on Sorting
Dropsort

16 min read

Kevlin Henney

Kevlin Henney

2.9K Followers

consultant · father · husband · itinerant · programmer · speaker · trainer · writer

Following
  • Darius Foroux

    Darius Foroux

  • Nancy Friedman

    Nancy Friedman

  • Writer’s Relief

    Writer’s Relief

  • May Pang

    May Pang

  • Jurgen Appelo

    Jurgen Appelo

See all (273)

Help

Status

Writers

Blog

Careers

Privacy

Terms

About

Text to speech