HSL is problematic for uses such as randomly generating colour schemes because the human eye does not perceive all hues the same way. With HUSL it is much easier to, say, compare the lightness of two colours to determine if there is adequate contrast. Very interesting!
From "People have exactly one canonical full name" to "People have names": names are hard.
Isaac Schlueter:
[O]ur conventions for naming things should take into consideration the limitations of the human brain. The length of a variable's name should be proportional to the distance between its definition and its use, and inversely proportional to its frequency of use.
Global config setting that gets specified once and used in 4 places throughout the program? 10-20 characters is probably appropriate. Might wanna go with UPPER_SNAKE_CASE to make it stand out a bit more, even.
Iterator variable that you define in a 3-line for loop and then never see again outside of it? Call it "i".
Another way to look at this: The first time you meet someone, you learn their full name. When discussing them with someone else who knows them, you use just a single name. If they're standing right there, you don't bother using their name, but just make eye contact, and maybe a "Hey". Should be the same way with variables.
Easy introduction to the Python logging module by its author. Short version: it's great.
The Advanced obfuscated JavaScript analysis he links to at SANS is just as impressive/scary.
Hiding the hard work in a magic number:
(1..100).map {|i| srand(1781773465) if (i%15)==1; [i, "Fizz", "Buzz", "FizzBuzz"][rand(4)]}
Some people, when confronted with a problem think "I know, I'll make it distributed!" Now they have 2 million problems.
So I decided to take the abstraction up another notch and make the core of my interpreter be an ASCII diagram of logic gates.