You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

1298 lines
34 KiB

<!DOCTYPE html>
<html style="font-size:20px !important">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width initial-scale=1" />
<title>index</title>
<style type="text/css">
html {
overflow-x: initial !important;
}
:root {
--bg-color: #ffffff;
--text-color: #333333;
--select-text-bg-color: #b5d6fc;
--select-text-font-color: auto;
--monospace: "Lucida Console", Consolas, "Courier", monospace;
}
html {
font-size: 14px;
background-color: var(--bg-color);
color: var(--text-color);
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
}
body {
margin: 0px;
padding: 0px;
height: auto;
bottom: 0px;
top: 0px;
left: 0px;
right: 0px;
font-size: 1rem;
line-height: 1.42857143;
overflow-x: hidden;
background-image: inherit;
background-size: inherit;
background-attachment: inherit;
background-origin: inherit;
background-clip: inherit;
background-color: inherit;
tab-size: 4;
background-position: inherit inherit;
background-repeat: inherit inherit;
}
iframe {
margin: auto;
}
a.url {
word-break: break-all;
}
a:active,
a:hover {
outline: 0px;
}
.in-text-selection,
::selection {
text-shadow: none;
background: var(--select-text-bg-color);
color: var(--select-text-font-color);
}
#write {
margin: 0px auto;
height: auto;
width: inherit;
word-break: normal;
word-wrap: break-word;
position: relative;
white-space: normal;
overflow-x: visible;
padding-top: 40px;
}
#write.first-line-indent p {
text-indent: 2em;
}
#write.first-line-indent li p,
#write.first-line-indent p * {
text-indent: 0px;
}
#write.first-line-indent li {
margin-left: 2em;
}
.for-image #write {
padding-left: 8px;
padding-right: 8px;
}
body.typora-export {
padding-left: 30px;
padding-right: 30px;
}
.typora-export .footnote-line,
.typora-export li,
.typora-export p {
white-space: pre-wrap;
}
.typora-export .task-list-item input {
pointer-events: none;
}
@media screen and (max-width: 500px) {
body.typora-export {
padding-left: 0px;
padding-right: 0px;
}
#write {
padding-left: 20px;
padding-right: 20px;
}
.CodeMirror-sizer {
margin-left: 0px !important;
}
.CodeMirror-gutters {
display: none !important;
}
}
#write li > figure:last-child {
margin-bottom: 0.5rem;
}
#write ol,
#write ul {
position: relative;
}
img {
max-width: 100%;
vertical-align: middle;
image-orientation: from-image;
}
button,
input,
select,
textarea {
color: inherit;
font-family: inherit;
font-size: inherit;
font-style: inherit;
font-variant-caps: inherit;
font-weight: inherit;
font-stretch: inherit;
line-height: inherit;
}
input[type="checkbox"],
input[type="radio"] {
line-height: normal;
padding: 0px;
}
*,
::after,
::before {
box-sizing: border-box;
}
#write h1,
#write h2,
#write h3,
#write h4,
#write h5,
#write h6,
#write p,
#write pre {
width: inherit;
}
#write h1,
#write h2,
#write h3,
#write h4,
#write h5,
#write h6,
#write p {
position: relative;
}
p {
line-height: inherit;
}
h1,
h2,
h3,
h4,
h5,
h6 {
break-after: avoid-page;
break-inside: avoid;
orphans: 4;
}
p {
orphans: 4;
}
h1 {
font-size: 2rem;
}
h2 {
font-size: 1.8rem;
}
h3 {
font-size: 1.6rem;
}
h4 {
font-size: 1.4rem;
}
h5 {
font-size: 1.2rem;
}
h6 {
font-size: 1rem;
}
.md-math-block,
.md-rawblock,
h1,
h2,
h3,
h4,
h5,
h6,
p {
margin-top: 1rem;
margin-bottom: 1rem;
}
.hidden {
display: none;
}
.md-blockmeta {
color: rgb(204, 204, 204);
font-weight: 700;
font-style: italic;
}
a {
cursor: pointer;
}
sup.md-footnote {
padding: 2px 4px;
background-color: rgba(238, 238, 238, 0.7);
color: rgb(85, 85, 85);
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
cursor: pointer;
}
sup.md-footnote a,
sup.md-footnote a:hover {
color: inherit;
text-transform: inherit;
text-decoration: inherit;
}
#write input[type="checkbox"] {
cursor: pointer;
width: inherit;
height: inherit;
}
figure {
overflow-x: auto;
margin: 1.2em 0px;
max-width: calc(100% + 16px);
padding: 0px;
}
figure > table {
margin: 0px;
}
tr {
break-inside: avoid;
break-after: auto;
}
thead {
display: table-header-group;
}
table {
border-collapse: collapse;
border-spacing: 0px;
width: 100%;
overflow: auto;
break-inside: auto;
text-align: left;
}
table.md-table td {
min-width: 32px;
}
.CodeMirror-gutters {
border-right-width: 0px;
background-color: inherit;
}
.CodeMirror-linenumber {
}
.CodeMirror {
text-align: left;
}
.CodeMirror-placeholder {
opacity: 0.3;
}
.CodeMirror pre {
padding: 0px 4px;
}
.CodeMirror-lines {
padding: 0px;
}
div.hr:focus {
cursor: none;
}
#write pre {
white-space: pre-wrap;
}
#write.fences-no-line-wrapping pre {
white-space: pre;
}
#write pre.ty-contain-cm {
white-space: normal;
}
.CodeMirror-gutters {
margin-right: 4px;
}
.md-fences {
font-size: 0.9rem;
display: block;
break-inside: avoid;
text-align: left;
overflow: visible;
white-space: pre;
background-image: inherit;
background-size: inherit;
background-attachment: inherit;
background-origin: inherit;
background-clip: inherit;
background-color: inherit;
position: relative !important;
background-position: inherit inherit;
background-repeat: inherit inherit;
}
.md-diagram-panel {
width: 100%;
margin-top: 10px;
text-align: center;
padding-top: 0px;
padding-bottom: 8px;
overflow-x: auto;
}
#write .md-fences.mock-cm {
white-space: pre-wrap;
}
.md-fences.md-fences-with-lineno {
padding-left: 0px;
}
#write.fences-no-line-wrapping .md-fences.mock-cm {
white-space: pre;
overflow-x: auto;
}
.md-fences.mock-cm.md-fences-with-lineno {
padding-left: 8px;
}
.CodeMirror-line,
twitterwidget {
break-inside: avoid;
}
.footnotes {
opacity: 0.8;
font-size: 0.9rem;
margin-top: 1em;
margin-bottom: 1em;
}
.footnotes + .footnotes {
margin-top: 0px;
}
.md-reset {
margin: 0px;
padding: 0px;
border: 0px;
outline: 0px;
vertical-align: top;
text-decoration: none;
text-shadow: none;
float: none;
position: static;
width: auto;
height: auto;
white-space: nowrap;
cursor: inherit;
line-height: normal;
font-weight: 400;
text-align: left;
box-sizing: content-box;
direction: ltr;
background-position: 0px 0px;
background-repeat: initial initial;
}
li div {
padding-top: 0px;
}
blockquote {
margin: 1rem 0px;
}
li .mathjax-block,
li p {
margin: 0.5rem 0px;
}
li {
margin: 0px;
position: relative;
}
blockquote > :last-child {
margin-bottom: 0px;
}
blockquote > :first-child,
li > :first-child {
margin-top: 0px;
}
.footnotes-area {
color: rgb(136, 136, 136);
margin-top: 0.714rem;
padding-bottom: 0.143rem;
white-space: normal;
}
#write .footnote-line {
white-space: pre-wrap;
}
@media print {
body,
html {
border: 1px solid transparent;
height: 99%;
break-after: avoid;
break-before: avoid;
font-variant-ligatures: no-common-ligatures;
}
#write {
margin-top: 0px;
padding-top: 0px;
border-color: transparent !important;
}
.typora-export * {
-webkit-print-color-adjust: exact;
}
html.blink-to-pdf {
font-size: 13px;
}
.typora-export #write {
break-after: avoid;
}
.typora-export #write::after {
height: 0px;
}
.is-mac table {
break-inside: avoid;
}
}
.footnote-line {
margin-top: 0.714em;
font-size: 0.7em;
}
a img,
img a {
cursor: pointer;
}
pre.md-meta-block {
font-size: 0.8rem;
min-height: 0.8rem;
white-space: pre-wrap;
background-color: rgb(204, 204, 204);
display: block;
overflow-x: hidden;
background-position: initial initial;
background-repeat: initial initial;
}
p > .md-image:only-child:not(.md-img-error) img,
p > img:only-child {
display: block;
margin: auto;
}
#write.first-line-indent p > .md-image:only-child:not(.md-img-error) img {
left: -2em;
position: relative;
}
p > .md-image:only-child {
display: inline-block;
width: 100%;
}
#write .MathJax_Display {
margin: 0.8em 0px 0px;
}
.md-math-block {
width: 100%;
}
.md-math-block:not(:empty)::after {
display: none;
}
[contenteditable="true"]:active,
[contenteditable="true"]:focus,
[contenteditable="false"]:active,
[contenteditable="false"]:focus {
outline: 0px;
box-shadow: none;
}
.md-task-list-item {
position: relative;
list-style-type: none;
}
.task-list-item.md-task-list-item {
padding-left: 0px;
}
.md-task-list-item > input {
position: absolute;
top: 0px;
left: 0px;
margin-left: -1.2em;
margin-top: calc(1em - 10px);
border: none;
}
.math {
font-size: 1rem;
}
.md-toc {
min-height: 3.58rem;
position: relative;
font-size: 0.9rem;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
border-bottom-left-radius: 10px;
}
.md-toc-content {
position: relative;
margin-left: 0px;
}
.md-toc-content::after,
.md-toc::after {
display: none;
}
.md-toc-item {
display: block;
color: rgb(65, 131, 196);
}
.md-toc-item a {
text-decoration: none;
}
.md-toc-inner:hover {
text-decoration: underline;
}
.md-toc-inner {
display: inline-block;
cursor: pointer;
}
.md-toc-h1 .md-toc-inner {
margin-left: 0px;
font-weight: 700;
}
.md-toc-h2 .md-toc-inner {
margin-left: 2em;
}
.md-toc-h3 .md-toc-inner {
margin-left: 4em;
}
.md-toc-h4 .md-toc-inner {
margin-left: 6em;
}
.md-toc-h5 .md-toc-inner {
margin-left: 8em;
}
.md-toc-h6 .md-toc-inner {
margin-left: 10em;
}
@media screen and (max-width: 48em) {
.md-toc-h3 .md-toc-inner {
margin-left: 3.5em;
}
.md-toc-h4 .md-toc-inner {
margin-left: 5em;
}
.md-toc-h5 .md-toc-inner {
margin-left: 6.5em;
}
.md-toc-h6 .md-toc-inner {
margin-left: 8em;
}
}
a.md-toc-inner {
font-size: inherit;
font-style: inherit;
font-weight: inherit;
line-height: inherit;
}
.footnote-line a:not(.reversefootnote) {
color: inherit;
}
.md-attr {
display: none;
}
.md-fn-count::after {
content: ".";
}
code,
pre,
samp,
tt {
font-family: var(--monospace);
}
kbd {
margin: 0px 0.1em;
padding: 0.1em 0.6em;
font-size: 0.8em;
color: rgb(36, 39, 41);
background-color: rgb(255, 255, 255);
border: 1px solid rgb(173, 179, 185);
border-top-left-radius: 3px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px,
rgb(255, 255, 255) 0px 0px 0px 2px inset;
white-space: nowrap;
vertical-align: middle;
background-position: initial initial;
background-repeat: initial initial;
}
.md-comment {
color: rgb(162, 127, 3);
opacity: 0.8;
font-family: var(--monospace);
}
code {
text-align: left;
}
a.md-print-anchor {
white-space: pre !important;
border: none !important;
display: inline-block !important;
position: absolute !important;
width: 1px !important;
right: 0px !important;
outline: 0px !important;
text-shadow: initial !important;
background-position: 0px 0px !important;
background-repeat: initial initial !important;
}
.md-inline-math .MathJax_SVG .noError {
display: none !important;
}
.html-for-mac .inline-math-svg .MathJax_SVG {
vertical-align: 0.2px;
}
.md-math-block .MathJax_SVG_Display {
text-align: center;
margin: 0px;
position: relative;
text-indent: 0px;
max-width: none;
max-height: none;
min-height: 0px;
min-width: 100%;
width: auto;
overflow-y: hidden;
display: block !important;
}
.MathJax_SVG_Display,
.md-inline-math .MathJax_SVG_Display {
width: auto;
margin: inherit;
display: inline-block !important;
}
.MathJax_SVG .MJX-monospace {
font-family: var(--monospace);
}
.MathJax_SVG .MJX-sans-serif {
font-family: sans-serif;
}
.MathJax_SVG {
display: inline;
font-style: normal;
font-weight: 400;
line-height: normal;
zoom: 90%;
text-indent: 0px;
text-align: left;
text-transform: none;
letter-spacing: normal;
word-spacing: normal;
word-wrap: normal;
white-space: nowrap;
float: none;
direction: ltr;
max-width: none;
max-height: none;
min-width: 0px;
min-height: 0px;
border: 0px;
padding: 0px;
margin: 0px;
}
.MathJax_SVG * {
transition: none;
}
.MathJax_SVG_Display svg {
vertical-align: middle !important;
margin-bottom: 0px !important;
margin-top: 0px !important;
}
.os-windows.monocolor-emoji .md-emoji {
font-family: "Segoe UI Symbol", sans-serif;
}
.md-diagram-panel > svg {
max-width: 100%;
}
[lang="flow"] svg,
[lang="mermaid"] svg {
max-width: 100%;
height: auto;
}
[lang="mermaid"] .node text {
font-size: 1rem;
}
table tr th {
border-bottom-width: 0px;
}
video {
max-width: 100%;
display: block;
margin: 0px auto;
}
iframe {
max-width: 100%;
width: 100%;
border: none;
}
.highlight td,
.highlight tr {
border: 0px;
}
svg[id^="mermaidChart"] {
line-height: 1em;
}
mark {
background-color: rgb(255, 255, 0);
color: rgb(0, 0, 0);
background-position: initial initial;
background-repeat: initial initial;
}
.md-html-inline .md-plain,
.md-html-inline strong,
mark .md-inline-math,
mark strong {
color: inherit;
}
mark .md-meta {
color: rgb(0, 0, 0);
opacity: 0.3 !important;
}
@media print {
.typora-export h1,
.typora-export h2,
.typora-export h3,
.typora-export h4,
.typora-export h5,
.typora-export h6 {
break-inside: avoid;
}
}
html {
font-size: 19px;
}
html,
body {
margin: auto;
background: #fefefe;
}
body {
font-family: "CMU Serif";
color: #333;
line-height: 1.4;
text-align: justify;
}
#write {
max-width: 960px;
margin: 0 auto;
margin-bottom: 2em;
line-height: 1.53;
padding-top: 40px;
}
@media only screen and (min-width: 1400px) {
#write {
max-width: 1100px;
}
}
/* Typography
-------------------------------------------------------- */
#write > h1:first-child,
h1 {
margin-top: 1.6em;
font-weight: normal;
}
h1 {
font-size: 3em;
}
h2 {
margin-top: 2em;
font-weight: normal;
}
h3 {
font-weight: normal;
font-style: italic;
margin-top: 3em;
}
h1,
h2,
h3 {
text-align: center;
}
h2:after {
border-bottom: 1px solid #2f2f2f;
content: "";
width: 100px;
display: block;
margin: 0 auto;
height: 1px;
}
h1 + h2,
h2 + h3 {
margin-top: 0.83em;
}
p,
.mathjax-block {
margin-top: 0;
-webkit-hypens: auto;
-moz-hypens: auto;
hyphens: auto;
}
ul {
margin-left: 1.2em;
list-style: disc;
padding-left: 1.2em;
}
ol {
margin-left: 2.4em;
padding-left: 1.2em;
}
blockquote {
margin-left: 1em;
padding-left: 1em;
border-left: 1px solid #ddd;
}
code,
pre {
font-family: "CMU Typewriter Text Variable width", monospace;
font-size: 0.9em;
background: white;
}
.md-fences {
margin-left: 1em;
padding-left: 1em;
border: 1px solid #ddd;
padding-bottom: 8px;
padding-top: 6px;
margin-bottom: 1.5em;
}
a {
color: #2484c1;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a img {
border: none;
}
h1 a,
h1 a:hover {
color: #333;
text-decoration: none;
}
hr {
color: #ddd;
height: 1px;
margin: 2em 0;
border-top: solid 1px #ddd;
border-bottom: none;
border-left: 0;
border-right: 0;
}
.ty-table-edit {
background: #ededed;
padding-top: 4px;
}
table {
margin-bottom: 1.333333rem;
}
table th,
table td {
padding: 8px;
line-height: 1.333333rem;
vertical-align: top;
border-top: 1px solid #ddd;
}
table th {
font-weight: bold;
}
table thead th {
vertical-align: bottom;
}
table caption + thead tr:first-child th,
table caption + thead tr:first-child td,
table colgroup + thead tr:first-child th,
table colgroup + thead tr:first-child td,
table thead:first-child tr:first-child th,
table thead:first-child tr:first-child td {
border-top: 0;
}
table tbody + tbody {
border-top: 2px solid #ddd;
}
.task-list {
padding: 0;
}
.md-task-list-item {
padding-left: 1.6rem;
}
.md-task-list-item > input:before {
content: "\221A";
display: inline-block;
width: 1.33333333rem;
height: 1.6rem;
vertical-align: middle;
text-align: center;
color: #ddd;
background-color: #fefefe;
}
.md-task-list-item > input:checked:before,
.md-task-list-item > input[checked]:before {
color: inherit;
}
.md-tag {
color: inherit;
font: inherit;
}
#write pre.md-meta-block {
min-height: 35px;
padding: 0.5em 1em;
}
#write pre.md-meta-block {
white-space: pre;
background: #f8f8f8;
border: 0px;
color: #999;
width: 100vw;
max-width: calc(100% + 60px);
margin-left: -30px;
border-left: 30px #f8f8f8 solid;
border-right: 30px #f8f8f8 solid;
margin-bottom: 2em;
margin-top: -1.3333333333333rem;
padding-top: 26px;
padding-bottom: 10px;
line-height: 1.8em;
font-size: 0.9em;
font-size: 0.76em;
padding-left: 0;
}
.md-img-error.md-image > .md-meta {
vertical-align: bottom;
}
#write > h5.md-focus:before {
top: 2px;
}
.md-toc {
margin-top: 40px;
}
.md-toc-content {
padding-bottom: 20px;
}
.outline-expander:before {
color: inherit;
font-size: 14px;
top: auto;
content: "\f0da";
font-family: FontAwesome;
}
.outline-expander:hover:before,
.outline-item-open > .outline-item > .outline-expander:before {
content: "\f0d7";
}
/** source code mode */
#typora-source {
font-family: "CMU Typewriter Text Variable width", monospace;
color: #6a6a6a;
}
.html-for-mac #typora-sidebar {
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
}
.cm-s-typora-default .cm-header,
.cm-s-typora-default .cm-property,
.CodeMirror.cm-s-typora-default div.CodeMirror-cursor {
color: #428bca;
}
.cm-s-typora-default .cm-atom,
.cm-s-typora-default .cm-number {
color: #777777;
}
.typora-node .file-list-item-parent-loc,
.typora-node .file-list-item-time,
.typora-node .file-list-item-summary {
font-family: "CMU Bright", sans-serif;
}
.md-task-list-item > input {
margin-left: -1.3em;
margin-top: calc(1rem - 12px);
}
.md-mathjax-midline {
background: #fafafa;
}
.md-fences .code-tooltip {
bottom: -2em !important;
}
.dropdown-menu .divider {
border-color: #e5e5e5;
}
.typora-export li,
.typora-export p,
.typora-export,
.footnote-line {
white-space: normal;
}
</style>
</head>
<body class="typora-export">
<div id="write" class="">
<h1>
<a name="web-surfing" class="md-header-anchor"></a
><span>Web surfing</span>
</h1>
<div class="md-toc" mdtype="toc">
<p class="md-toc-content" role="list">
<span role="listitem" class="md-toc-item md-toc-h1" data-ref="n0"
><a class="md-toc-inner" href="#web-surfing">Web surfing</a></span
><span role="listitem" class="md-toc-item md-toc-h2" data-ref="n3"
><a class="md-toc-inner" href="#about-this-page"
>About this page</a
></span
><span role="listitem" class="md-toc-item md-toc-h2" data-ref="n6"
><a class="md-toc-inner" href="#lists">Lists</a></span
><span role="listitem" class="md-toc-item md-toc-h2" data-ref="n10"
><a class="md-toc-inner" href="#society">Society</a></span
><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n11"
><a class="md-toc-inner" href="#discrimination"
>Discrimination</a
></span
><span role="listitem" class="md-toc-item md-toc-h2" data-ref="n15"
><a class="md-toc-inner" href="#programming">Programming</a></span
><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n16"
><a class="md-toc-inner" href="#c">C++</a></span
><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n20"
><a class="md-toc-inner" href="#haskell">Haskell</a></span
><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n24"
><a class="md-toc-inner" href="#libraries">Libraries</a></span
><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n28"
><a class="md-toc-inner" href="#philosophy">Philosophy</a></span
><span role="listitem" class="md-toc-item md-toc-h2" data-ref="n32"
><a class="md-toc-inner" href="#digital-rights"
>Digital rights</a
></span
><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n33"
><a class="md-toc-inner" href="#dmca">DMCA</a></span
><span role="listitem" class="md-toc-item md-toc-h2" data-ref="n39"
><a class="md-toc-inner" href="#operating-systems"
>Operating Systems</a
></span
><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n40"
><a class="md-toc-inner" href="#unix">UNIX</a></span
>
</p>
</div>
<h2>
<a name="about-this-page" class="md-header-anchor"></a
><span>About this page</span>
</h2>
<p>
<span
>Over the years, I have learned a great deal of things from Dr John N
Shutt. One of the things that Dr Shutt would mention was their surfing
page.</span
>
</p>
<p>
<span
>I was careless to lose that message. Ironically, in that message, Dr
Shutt had explained how he would save a list of all the resources that
he had found helpful over the years. While that message is lost, the
intent is passed on successfully. This is my page of the
resources.</span
>
</p>
<h2><a name="lists" class="md-header-anchor"></a><span>Lists</span></h2>
<ul>
<li>
<a href="https://web.cs.wpi.edu/~jshutt/surfing.html"
><span>Web Surfing</span></a
><span> by Dr John N. Shutt. </span
><a
href="http://web.archive.org/web/20200620195809/https://web.cs.wpi.edu/~jshutt/surfing.html"
><span>Archived link</span></a
><span>.</span>
</li>
</ul>
<h2>
<a name="society" class="md-header-anchor"></a><span>Society</span>
</h2>
<h3>
<a name="discrimination" class="md-header-anchor"></a
><span>Discrimination</span>
</h3>
<ul>
<li>
<a
href="https://www.haydenplanetarium.org/tyson/commentary/2020-06-03-reflections-on-color-of-my-skin.php"
><span>Reflections on the Color of My Skin</span></a
><span> (</span
><strong
><span
>&quot;when you see black kids in the street, think of what they
can be rather than what you think they are&quot;</span
></strong
><span>) by Neil deGrasse Tyson. Dated June 3, 2020. </span
><a
href="http://web.archive.org/web/20200617143634/https://haydenplanetarium.org/tyson/commentary/2020-06-03-reflections-on-color-of-my-skin.php"
><span>Archived link</span></a
><span>.</span>
</li>
</ul>
<h2>
<a name="programming" class="md-header-anchor"></a
><span>Programming</span>
</h2>
<h3><a name="c" class="md-header-anchor"></a><span>C++</span></h3>
<ul>
<li>
<a href="http://harmful.cat-v.org/software/c++/linus"
><span
>Re: [RFC] Convert builin-mailinfo.c to use The Better String
Library.</span
></a
><span> (</span
><strong
><span>Quite frankly, even if the choice of C were to do </span
><em><span>nothing</span></em
><span>
but keep the C++ programmers out, that in itself would be a huge
reason to use C.</span
></strong
><span>) by Linus Torvalds. Dated September 6, 2007 </span
><a
href="https://web.archive.org/web/20201101005415/http://harmful.cat-v.org/software/c++/linus"
><span>Archived link</span></a
><span>.</span>
</li>
</ul>
<h3>
<a name="haskell" class="md-header-anchor"></a><span>Haskell</span>
</h3>
<ul>
<li>
<a
href="https://www.youtube.com/watch?v=pUN3algpvMs&amp;feature=youtu.be"
><span>Haskell for JavaScript programmers</span></a
><span> by Alexey Kutepov. Dated January 19, 2018 </span
><a
href="http://web.archive.org/web/20201120090312/https://www.youtube.com/watch?v=pUN3algpvMs"
><span>Archived link</span></a
><span>.</span>
</li>
</ul>
<h3>
<a name="libraries" class="md-header-anchor"></a><span>Libraries</span>
</h3>
<ul>
<li>
<a
href="https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.xkcd.html"
><span>matplotlib.pyplot.xkcd</span></a
><span> (</span
><strong><span>Turn on xkcd sketch-style drawing mode</span></strong
><span>) by Matplotlib. Date of access November 24, 2020 </span
><a
href="http://web.archive.org/web/20201101014822/https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.xkcd.html"
><span>Archived link</span></a
><span>.</span>
</li>
</ul>
<h3>
<a name="philosophy" class="md-header-anchor"></a
><span>Philosophy</span>
</h3>
<ul>
<li>
<a
href="https://cemerick.com/2009/03/24/why-mit-now-uses-python-instead-of-scheme-for-its-undergraduate-cs-program/"
><span
>Why MIT now uses python instead of scheme for its undergraduate
CS program</span
></a
><span> (</span
><strong
><span
>&quot;what generaly happened was a programmer would think for a
really long time, and then write just a little bit of code [...]
It was a much simpler time&quot;</span
></strong
><span>) by Chas Emerick. Dated March 24, 2009. </span
><a
href="https://web.archive.org/web/20200625002236/https://cemerick.com/2009/03/24/why-mit-now-uses-python-instead-of-scheme-for-its-undergraduate-cs-program/"
><span>Archived link</span></a
><span>.</span>
</li>
</ul>
<h2>
<a name="digital-rights" class="md-header-anchor"></a
><span>Digital rights</span>
</h2>
<h3><a name="dmca" class="md-header-anchor"></a><span>DMCA</span></h3>
<ul>
<li>
<a href="https://pluralistic.net/2020/10/24/1201-v-dl-youtube/#1201"
><span>RIAA kills youtube-dl</span></a
><span> (</span
><strong
><span
>&quot;But from the very first days, it was clear that DMCA1201
was NOT about preventing copyright infringement, it was about
enforcing business models.&quot;</span
></strong
><span>) by Cory Doctorow. Dated October 24, 2020. </span
><a
href="http://web.archive.org/web/20201025091726/https://pluralistic.net/2020/10/24/1201-v-dl-youtube/#1201"
><span>Archived link</span></a
><span>.</span>
</li>
<li>
<a
href="https://games.slashdot.org/comments.pl?sid=151312&amp;cid=12701745"
><span>Parasites by John Carmack</span></a
><span> (</span
><strong
><span
>Why should society reward that? What benefit does it bring? It
doesn&#39;t help bring more, better, or cheaper products to
market. Those all come from competition, not arbitrary
monopolies.</span
></strong
><span>) by John Carmack. Dated June 01, 2005. </span
><a
href="http://web.archive.org/web/20170809054444/https://games.slashdot.org/comments.pl?sid=151312&amp;cid=12701745"
><span>Archived link</span></a
><span>.</span>
</li>
</ul>
<h2>
<a name="operating-systems" class="md-header-anchor"></a
><span>Operating Systems</span>
</h2>
<h3><a name="unix" class="md-header-anchor"></a><span>UNIX</span></h3>
<ul>
<li>
<a href="https://www.youtube.com/watch?v=tc4ROCJYbm0"
><span>AT&amp;T Archives: The UNIX Operating System</span></a
><span> by AT&amp;T Tech Channel. Dated February 22, 2012. </span
><a
href="http://web.archive.org/web/20201007024906if_/https://www.youtube.com/watch?v=tc4ROCJYbm0"
><span>Archived link</span></a
><span>.</span>
</li>
</ul>
</div>
</body>
</html>