I'm compiling a collection of software engineering principles. The idea is to have them in a document with longer explanations and examples. Other than that, they're meant to be cited as justifications for this or that choice we make and left as comments in code or in conversations. Some are special cases or consequences of more generic principles. Here's what I have so far:
- simplicity
- least surprise
- separation of concerns
- design for the worst-case scenario
- explain the intentions behind any piece of code
- minimize future maintenance efforts
- minimize time to fix future problems
- no code duplication
- fail early
Note that this list is limited to "technical" principles in the sense that they're valid even for a team of one. There are more principles and guidelines for the interactions between team members but here I'm limiting myself to what could be or should be written down as part of a code base.
*my interpretation assumes a continuously ascending path from the imaginary sea level to the mountain top. I believe it's almost always the case in practice.
A counterexample is a peak within a crater.
I find the definition of the prominence of a mountain peak very interesting:
"The prominence of a peak is the minimum height of climb to the summit on any route from a higher peak, or from sea level if there is no higher peak. The lowest point on that route is the col."
It's the peak's height minus how much the sea level would have to rise to make this peak the highest on its island.
For intuition, see the examples at https://en.wikipedia.org/wiki/List_of_mountain_peaks_by_prominence
Years ago, I was in a web company whose business was people search. The biggest takeaway from this particular industry is that people love to find details about others but hate to have their details available to others.
#privacy
Xu Hongming exhibit at Qualia in Palo Alto. I recommend seeing this in person if you have a chance. It's huge.
#art #maximalism
@dragonarchitect interesting. I've been doing surprisingly ok in California with only knowing this incomplete and approximate table:
32°F = 0°C (freezing)
70°F =~ 20°C (human-friendly)
100°F =~ 37°C (body)
(212°F) = 100°C (boiling)
350°F = (175°C) (oven)
The values in parentheses are those I had to look up for this post.
Kelvin Kiptum died today in a car crash in Kenya, at age 24. He was the world record holder for the marathon in 2:00:35.
Une devinette que nous envoie René D.:
J'y pisse donc j'y suis. Où suis-je ?
Linea Aspera - Entropy (2020)
https://youtu.be/4cP9_8fPP4A
#music #darkwave
mad scientist/artist
Interests: cognition, artificial cognition, epistemology, machines, history, understanding most things.
Academic and professional credentials: 3D structure of proteins (PhD), program analysis with OCaml, free software author.
Hobbies: trail running, mushrooms, art.
Location: San Francisco Bay Area, originally from Orléans, France
Ancien rameur à l'ACOO. Ancien élève du Lycée Saint-Louis et de l'École normale supérieure de Lyon.