Category Theory for Programmers
I haven’t read it yet, but I just added Category Theory for Programmers to my “need to read” list.
I haven’t read it yet, but I just added Category Theory for Programmers to my “need to read” list.
Here’s a “99 bugs in the code” t-shirt.
Programmers can celebrate Christmas on Halloween:
31 oct = 25 dec
(3*8 + 1) == (2*10 + 5)
Apparently at some point Alan Kay said, “Lisp is the greatest single programming language ever designed,” and in this Quora post he writes about what he meant.
Boolean algebra was named after George Boole (1815-1864), which I just learned while reading A Book of Abstract Algebra.
Mark Burgess has a long article based on the keynote address for the Reactive Summit 2017 titled, Microservices, the future of society, and all that.
underscore.io has a nice article about code reviews titled, Getting into other people’s code.
“Show me your flowcharts (source code), and conceal your tables (domain model), and I shall continue to be mystified; show me your tables (domain model) and I won’t usually need your flowcharts (source code): they’ll be obvious.”
~ Fred Brooks, “The Mythical Man Month”
(text in parentheses added by me)
This image telling where the name “lambda” (in lambda calculus) comes from is currently floating around on Twitter.
I don’t know the original source of this image about “delegation” in computer programming (starring Inigo Montoya of The Princess Bride), but I like it.
“Designing APIs is a subtle blend of craft and engineering. It is the one area we should carefully refine our design skills for.”
deelay.me looks like a good website to use if you’re writing network-access code and want to simulate accessing a slow web server.
Jonas Bonér has put together a list of “latency numbers every programmer should know” as this gist. Peter Norvig put together a much earlier version of this list, and this berkeley.edu page has a bit of a graphic related to Norvig’s work.
If you’re interested in Domain-Driven Design (DDD), here is a link to an article titled “Effective Aggregate Design” by Vaughn Vernon.
(The article is available as three short PDFs that form the basis for his book, Implementing Domain-Driven Design.)
“The lurking suspicion that something could be simplified is the world’s richest source of rewarding challenges.”
~ Edsger Dijkstra (as seen on twitter yesterday)
I was reminded of “Imposter Syndrome” yesterday. (Image from Wikipedia.)
“No matter how slow you are writing clean code, you will always be slower if you make a mess.”
~ Bob Martin (via this tweet)
Here’s a link to Github’s 2017 Open Source Survey.
“Erlang has single-assignment variables. As the name suggests, they can be given a value only once. If you try to change the value of a variable once it has been set, you’ll get an error.”
(“Single-assignment variables” are the same as val
fields in Scala. Using them can make your code more like algebra.)
Joe Armstrong, in his book,
Programming Erlang: Software for a Concurrent World
(Scala comment added by me)
“In Erlang, processes share no memory and can interact with each other only by sending messages. This is exactly how objects in the real world behave.”
Joe Armstrong, in his book,
Programming Erlang: Software for a Concurrent World