Readability is the amount of money you're willing to bet that a change you make to the code will work the first time, without breaking anything, without testing it mechanically first.
Readability is the amount of money you're willing to bet that a change you make to the code will work the first time, without breaking anything, without testing it mechanically first.
In the same fashion, I update my design, architecture, and implementation documents concurrently with implementing a prototype if I need to make modifications or add complexity on the fly. They aren't for me, now. They're for the junior engineers I'm going to hand the project over to who need to be able to flesh out parts of a much larger machine.
Finally, whether or not I can read or understand my code, which I generally can, I test it anyway. I test my code not because it is unreadable (it is generally very readable), but because despite my best efforts to minimize complexity, it is generally too complex to fit inside my head, and because whether or not it fits in my head I'm not the only person working on it.
Most people have this subjective definition of "readable" which is basically something between "I can read it" and "people I work with/like can read it".
This definition is difficult to work with for a number of reasons, but if you are trying to convince someone there's value in reading and writing code sufficiently alien, it's at a minimum a massive barrier to progress.
Disclaimer: I can read code like this, and while I've let Aaron try to teach me Tai Chi, I don't use Dyalog or co-dfns.
If the person who wrote it can't pass the 'readability' test above what are the chances that other people, who are less familiar with the code, will?
https://www.youtube.com/watch?v=9xCJ3BCIudI
Lots of good commentary not in the slides.
And here is a way to download the video without Javascript. I have been meaning to try to rewrite this in k.
# Notes
# Works by brute force and has been reliable for years
# Was easily updated when YouTube made changes (rare)
# Zero dependencies except tr, sed and an https client
# Takes a YouTube URL on stdin
# Example usage:
# echo http://www.youtube.com/watch?v=9xCJ3BCIudI|ytd 22 file
# "ytd" is name of the script
# "22" is itag-no in this case large mp4 ("18" is smaller mp4)
# "file" is optional filename, no extension required
# if no filename given video is saved as "1.mp4"
# UNIX-like: url-filter < file-containing-url|ytd 22
# Caution when copying and pasting: line 2 needs to retain the 4 space indent
# N.B. Will not work with restricted videos; *this is not for downloading music or other commercial crap*; use youtube-download if thats what you are after
# N.B. Some videos may require a few tries, most will work on the first try; if get 403 try again
#!/bin/sh
case $# in [123]);;*)exec echo usage: $0 itag-no \[file\];esac;a=$(exec sed 's/http:/https:/;s/m.youtube/www.youtube/;s/youtu.be./www.youtube.com\/watch?v=/;s/hooktube.com/youtube.com/;s/embed./watch?v=/;#etc.;s/?version.*//;s/;.*//'); n=0;while true;do b=$(curl $a|exec tr -cd '\12\40-\176'|exec sed 's/https%3A/\
&/g;s/ *//;/ https%3A%2F%2F/!d;s/%3A/:/g;s/%2C/,/g;s/%2F/\//g;s/%3D/=/g; s/%3B/;/g;s/%3F/?/g;s/%26/\&/g;s/\\u0026/\&/g;s/%252C/,/g;s/%252F/\//g;s/%22/\"/g; s/%255B/[/g;s/%255D/]/g;'|exec sed '/itag='"$1"'/!d;/video.mp4/!d;/webm/d;/ytplayer/d;s/;+codecs.*//;s/&xtags.*//;/timedtext/d;s/&itag=..//2');test ${#b} = 0||break;test $n -le 9||exit;n=$((n+1));done;case $1 in 18|22)ext=mp4;esac;exec echo curl $3 -4o ${2-1}.$ext $b;