You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
But there are much more horrific <ahref="https://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001yB">examples</a>.
979
-
These structual implications are part of the underyling reason behind why companies like Amazon are
979
+
These structural implications are part of the underlying reason behind why companies like Amazon are
980
980
<ahref="https://www.inc.com/carmine-gallo/jeff-bezos-bans-powerpoint-in-meetings-his-replacement-is-brilliant.html">forsaking PowerPoint in favor of the written
Copy file name to clipboardExpand all lines: _posts/2021-2-21-numbers-programmers-should-know.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,23 +10,23 @@ Many well known great software engineers believe that it takes more than a
10
10
solid understanding of the [run time complexity](https://en.wikipedia.org/wiki/Big_O_notation)
11
11
of the algorithms being used to write performant software. In particular they claim that
12
12
the latency numbers associated with computer hardware are essential knowledge. Despite the claimed
13
-
importance there is little factful information about this topic readily available online.
13
+
importance there is little factual information about this topic readily available online.
14
14
15
15
The general assumption has been that the first viral spread of published numbers, originally
16
16
posted in 2010, have changed, but not by a magnitude which would change our intuition.
17
17
The current updates to the number which are popularly
18
18
shared online are not the actual numbers, but numbers produced by a model. The degree to which
19
-
they match reality has not been tested and primae facie investigation of the models claims
19
+
they match reality has not been tested and prima facie investigation of the model's claims
20
20
makes me skeptical that the model is accurate especially as of 2021.
21
21
22
-
This post is intended to [increase factfullness][destiny instinct] in software engineering by refreshing our knowledge of these now outdated numbers.
22
+
This post is intended to [increase factfulness][destiny instinct] in software engineering by refreshing our knowledge of these now outdated numbers.
23
23
24
24
It is also not just merely an update to these numbers, but an update with context. In prior
25
25
times when these numbers have been shared they have been shared without much context being
26
26
given to what the numbers mean in practice. What I hope to show is not just what the numbers
27
27
are, but the changes in decision making that these numbers are supposed to motivate.
28
28
29
-
Althought the numers have changed, there importance has only increased with time. In the
29
+
Although the numbers have changed, their importance has only increased with time. In the
30
30
past these numbers were important and we were also seeing our software become faster and
31
31
faster on account of advances in hardware. In recent years the free lunch of hardware speed
32
32
increases has been slowing.
@@ -98,7 +98,7 @@ Send packet CA->Netherlands->CA | 150,000,000 ns | 150,000 us | 150 ms
98
98
99
99
## Why The Numbers Matter
100
100
101
-
First lets start with the L1 cache and put it in context
101
+
First let's start with the L1 cache and put it in context
102
102
with main memory reference. If data is already in the cache it can be fetched in 0.5 ns, but if it
103
103
isn't in either the L1 cache or the L2 cache then the CPU is going to be busy fetching data for
104
104
100-200 times longer than it would have if the data was in the cache.
@@ -112,7 +112,7 @@ hit and we can start to see some of why it is that these numbers are so importan
112
112
write your low level code so that the computer has a good idea of what data it needs and what paths
113
113
it might be taking it can [speed up execution by a considerable constant factor][so: speedy].
114
114
115
-
Next lets break down compression and relate it to reading data. It takes 3000 ns to compress
115
+
Next let's break down compression and relate it to reading data. It takes 3000 ns to compress
116
116
1K bytes, but it takes 10,000 ns to send that many bytes over the network. We can assume that
117
117
compressing 4k bytes is going to take 12000 ns, but reading 4k bytes from an SSD will take
118
118
150,000 ns. That is an ideal for reading from storage devices and via the network. Things
@@ -128,15 +128,15 @@ your bag before you hop on a flight is a bit faster than taking a plane trip per
128
128
129
129
The exact amount of when it becomes worthwhile to do this is a bit hard to say without knowing
130
130
your data. Some data formats are already compressed so you don't get as much utility from
131
-
compresing them. For Snappy in particular as a compression mechanism the Google repo for the project
131
+
compressing them. For Snappy in particular as a compression mechanism the Google repo for the project
132
132
says it performs as follows:
133
133
134
134
<divclass="p">
135
135
<blockquote>
136
136
Typical compression ratios (based on the benchmark suite) are about 1.5-1.7x for plain text, about 2-4x for HTML, and of course 1.0x for JPEGs, PNGs and other already-compressed data. Similar numbers for zlib in its fastest mode are 2.6-2.8x, 3-7x and 1.0x, respectively. More sophisticated algorithms are capable of achieving yet higher compression rates, although usually at the expense of speed. Of course, compression ratio will vary significantly with the input.
Copy file name to clipboardExpand all lines: _posts/2022-07-19-notebooks.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,10 +6,10 @@ author: joshuacole
6
6
---
7
7
8
8
This essay is about some philosophical motivations behind a tool I'm building to help intelligences which think via language.
9
-
The idea it to help think lazily, efficiently, and in accordance with principles which help to produce thoughtful output.
9
+
The idea is to help think lazily, efficiently, and in accordance with principles which help to produce thoughtful output.
10
10
So to start I'm going to explain the basic idea behind the tool.
11
11
12
-
The basic idea is templatize known to be good structures: things like Polya's guide to reasoning about how to solve a problem, the Eisenhower matrix for thinking about prioritization, or the laws of probabilities. Then using those templates we transform away from linear documents to a graph representation whose continuations are in accordance with the templates. In some cases, like with the laws of probability, the templatized continuations are an automatic regurgitation of known to be structurally correct reasoning. In other cases as when solving a novel problem a great deal of creativity will need to be exercised by the document writer. Regardless the writer is expected to fill in the template if they care about reasoning correctly - or leave a path empty if they are too lazy to complete the work of thinking. After writing they can then walk a path through their graph to materialize a thoughtful and well structured document which explores the topic which is of interest to them in a manner optimized according to their intended use of the document.
12
+
The basic idea is to templatize known‑good structures: things like Polya's guide to reasoning about how to solve a problem, the Eisenhower matrix for thinking about prioritization, or the laws of probability. Then, using those templates, we transform away from linear documents to a graph representation whose continuations are in accordance with the templates. In some cases, like with the laws of probability, the templatized continuations are an automatic regurgitation of known‑to‑be‑structurally‑correct reasoning. In other cases, as when solving a novel problem, a great deal of creativity will need to be exercised by the document writer. Regardless, the writer is expected to fill in the template if they care about reasoning correctly — or leave a path empty if they are too lazy to complete the work of thinking. After writing they can then walk a path through their graph to materialize a thoughtful and well‑structured document which explores the topic which is of interest to them in a manner optimized according to their intended use of the document.
13
13
14
14
Breaking down the above there are three important things to call attention to:
15
15
@@ -27,9 +27,9 @@ Letters compose to form morphemes which compose to form words which compose to f
27
27
28
28
Tragically - apparently not.
29
29
30
-
We run into two problems. The first is cultural: attribution. People who craft a nice paragraph like to be recognized for it and feel cheated if you reuse it. Putting aside their theft of our shared language for their own selfish gain we still have another problem. Copying paragraph after paragraph in writing isn't especially tractable. Words are juts a few characters. Paragraphs are many. Writing a document which copies many paragraph would mean doing a lot of writing - a lot of work.
30
+
We run into two problems. The first is cultural: attribution. People who craft a nice paragraph like to be recognized for it and feel cheated if you reuse it. Putting aside their theft of our shared language for their own selfish gain we still have another problem. Copying paragraph after paragraph in writing isn't especially tractable. Words are just a few characters. Paragraphs are many. Writing a document which copies many paragraphs would mean doing a lot of writing - a lot of work.
31
31
32
-
We can solve both problems by using a graph structure. The first problem is solved because we can attribute the author of the paragraph as metadata on the graph path that describes a document. Plagarism is not citation. Documents are path descriptions through a graph - not claims to the writing along the content of the path description. The second problem is solved for much the same reason. Since we are giving a path description through the graph we don't have to worry about the character cost of typing out each paragraph. We just have to write out the edge.
32
+
We can solve both problems by using a graph structure. The first problem is solved because we can attribute the author of the paragraph as metadata on the graph path that describes a document. Plagiarism is not citation. Documents are path descriptions through a graph - not claims to the writing along the content of the path description. The second problem is solved for much the same reason. Since we are giving a path description through the graph we don't have to worry about the character cost of typing out each paragraph. We just have to write out the edge.
0 commit comments