code quality is about coupling.
coupling is not a technical property of the code bytes.
code acquires its meaning in contact with the cultural environment, and coupling is about meaning.
two constants with no semantic relationship are nonetheless coupled in pragmatics if they refer to the same domain concept.
if your goal is to minimise the time integral of future work, you must understand your domain: it decides which lines will need changing.
to carve up a codebase is to carve up the world.
Any conversation
Economist Lant Pritchett describes shifts in ideas as silly, controversial, progressive, then obvious.
Also:
"Radio has no future. X-rays are clearly a hoax. The aeroplane is scientifically impossible." - Lord Kelvin
". No wireless. Less space than a nomad. Lame." - CmdrTaco
โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ โโโโโโ โโโโโโ โโโ
โโโ โโโโโโ โโโโโโ โโโ
โโโ โโโโโโโโโโโโ โโโ โโโ
โโโ โโโโโโโโโโโ โโโ โโโ
๐
let N=6,D0=[0,1,0,-1],D1=[1,0,-1,0],s=[],g={},d=x=y=xa=xb=ya=yb=0;
for(let n=0;n<N;n++){s=s.concat([1]).concat(s.map(x=>!x).reverse())}
for(let i=0;i<s.length;i++) {
x<xa && (xa=x);y<ya && (ya=y);x>xb && (xb=x);y>yb && (yb=y);
let t=s[i]?1:-1,e=(d+t+4)%4;
g[x]||(g[x]={});
g[x][y]=g[x][y]?"โผ":"โโโโ"[(t*(D0[d]+D0[e])>0?0:2)+(t*(D1[d]+D1[e])>0?0:1)];
x+=D0[e];y+=D1[e];d=e;
}
for(j=yb;j>=ya;j--) {
let u=""; for(i=xa;i<=xb;i++){u+=(g[i][j]||"ยท")} console.log(u);
}ยทโโโโยทยทยทยทยทยทยท
โโโโผโยทยทยทยทโโยท
โยทยทโโโโยทยทยทโโ
ยทยทยทโโผโผโยทยทยทโโ
ยทยทยทโโผโผโโโโโผโ
ยทยทยทโโผโโโผโผโโโ
ยทยทยทโโผโยทโโผโยทยท
ยทยทยทยทโโยทยทโโยทยท
