Skip to content

Commit b8b13ce

Browse files
committed
Fixes based on first proof reading by publisher.
- Turning 'data set' into 'dataset' - Cover image - 'self taught' => 'self-taught' - Turning 'e.g.' without a comma into 'e.g.,' - 'behaviour' (British) => 'behavior' (Simplified) - Removing stray backquote - Changing verb inflection - Remove duplicate 'and' - 'show' => 'shown' - 'create' => 'creates' - 'mixed' => 'mix' - Inserting missing 'to' - Removing incomplete sentence - Changing phrase to remove specific year - 'a' => 'an' - Turning semi-colon into comma - Removing word to make line justify - Inserting Oxford comma - Combining sentences - Fixing double possessive - 'definite' => 'definitive' - 'sorceror' => 'sorcerer' - Adding missing word in glossary definition - Getting verb inflection right - Full stop at end of definition - Verb inflection - Removing stray 'the' - Verb inflection - Inserting subject for sentence - Pluralizing - inserting 'the'
1 parent b17280e commit b8b13ce

18 files changed

+40
-39
lines changed

basics.tex

+2-2
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ \section{Basic Data Types}\label{s:basics-data-types}
5555
\emph{not} a function:
5656
we apply it to something by typing a space followed by
5757
the name of the thing we'd like to check the type of,
58-
e.g. \texttt{typeof dress}, as opposed to \texttt{typeof(dress)}.)
58+
e.g., \texttt{typeof dress} as opposed to \texttt{typeof(dress)}.)
5959
We use it alongside \texttt{const} below,
6060
which itself is helpful when we want to give a name to a
6161
\gref{g:constant}{constant} value:
@@ -384,7 +384,7 @@ \section{Functions}\label{s:basics-functions}
384384
provided as an \gref{g:argument}{argument} to the function:
385385
if \texttt{values} has no length---i.e.,
386386
it does not consist of multiple entries---the function returns \texttt{[undefined,undefined]}.
387-
(We will address the rationale behind this behaviour in the exercises.)
387+
(We will address the rationale behind this behavior in the exercises.)
388388
389389
\begin{minted}{js}
390390
if (!values.length) {

book.bib

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ @book{Foge2005
2424
publisher = {O'Reilly Media},
2525
isbn = {0596007590},
2626
link = {http://producingoss.com/},
27-
note = {The definite guide to managing open source software development projects.}
27+
note = {The definitive guide to managing open source software development projects.}
2828
}
2929

3030
@article{Free1972,

callbacks.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -665,7 +665,7 @@ \section{Exercises}\label{s:callbacks-exercises}
665665

666666
\begin{itemize}
667667
\item
668-
The \texttt{date} field is replaced with just the `year.
668+
The \texttt{date} field is replaced with just the year.
669669
\item
670670
Only observations of female animals are retained.
671671
\item

capstone.tex

+4-3
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ \section{The Tables}\label{s:capstone-tables}
524524
525525
We will display survey stats as tables,
526526
with a paragraph fallback when there's no data.
527-
First, we display summary statistics for the whole data set
527+
First, we display summary statistics for the whole dataset
528528
(as returned by the \texttt{GET /survey/stats} query we wrote a handler for earlier)
529529
as a table at the top of the page.
530530
(Again, we need parentheses around the HTML fragment so that it will parse properly.)
@@ -801,8 +801,9 @@ \section{Exercises}\label{s:capstone-exercises}
801801
if the range of years requested is invalid
802802
\item
803803
Compare your implementation to someone else's.
804-
Did you define ``invalid'' in the same way?
805-
I.e., will your programs always return the same status codes for every query?
804+
Did you define ``invalid'' in the same way,
805+
i.e.,
806+
will your programs always return the same status codes for every query?
806807
\end{enumerate}
807808
808809
\exercise{Adding More Tests}

collab.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ \section{Licensing Software}\label{s:collab-software}
9393
We recommend the MIT license:
9494
it places the fewest restrictions on future action,
9595
it can be made stricter later on,
96-
and the last thirty years shows that it's good enough to keep work open.
96+
and the last thirty years show that it's good enough to keep work open.
9797

9898
\section{Licensing Data and Documentation}\label{s:collab-datadocs}
9999

dataforge.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -910,7 +910,7 @@ \section{Exercises}\label{s:dataforge-exercises}
910910
\exercise{Revisiting Data Manipulation}
911911
912912
Back in the chapter on data manipulation,
913-
we aggregated \texttt{surveys.csv} to find the minimum, maximum and average values
913+
we aggregated \texttt{surveys.csv} to find the minimum, maximum, and average values
914914
for \texttt{year}, \texttt{hindfoot\_length}, and \texttt{weight}.
915915
Repeat this exercise using the methods of \texttt{data-forge}.
916916

dataman.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ \section{Data Manager}\label{s:dataman-manager}
324324
so we have to conform to their signature.
325325
326326
After some thought we realize that it's possible for \texttt{subset} to be empty---i.e.,
327-
it's possible that there are years that have no data in our data set.
327+
it's possible that there are years that have no data in our dataset.
328328
We should filter these out,
329329
to prevent unnecessary effort being made to render summary statistics
330330
with \texttt{NaN} values.\index{NaN@\texttt{NaN} (Not a Number)}

db.tex

+5-5
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ \section{Starting Point}\label{s:db-start}
178178
\texttt{getAll} was called,
179179
and the result is an array of objects,
180180
one per record,
181-
whose names are the derived in an obvious way from the names of the columns.
181+
whose names are derived in an obvious way from the names of the columns.
182182
183183
\section{In-Memory Database}\label{s:db-in-memory}
184184
@@ -512,7 +512,7 @@ \section{Testing}\label{s:db-testing}
512512
we define the expected result,
513513
create an entirely new database in memory,
514514
and then call the method being tested,
515-
passing it the fixture and the callback that will receives results.
515+
passing it the fixture and the callback that will receive results.
516516
That callback uses \texttt{assert} to check results
517517
and \texttt{done} to signal that the test has completed.
518518
@@ -582,7 +582,7 @@ \section{Updating the Database}\label{s:db-mutate}
582582
and an empty list of rows is passed to the action callback
583583
(since adding and deleting don't return anything).
584584
Testing involves a little more typing,
585-
since want to check that the database is in the right state after the operation:
585+
since we want to check that the database is in the right state after the operation:
586586
587587
\begin{minted}{js}
588588
// ...imports as before...
@@ -660,7 +660,7 @@ \section{Exercises}\label{s:db-exercises}
660660
\exercise{More Filtering}
661661
662662
The SQL query encapsulated in the variable below can be used to
663-
find all workshop whose duration falls within a range.
663+
find all workshops whose duration falls within a range.
664664
665665
\begin{minted}{js}
666666
const Q_WORKSHOP_DURATION_RANGE = `
@@ -689,7 +689,7 @@ \section{Exercises}\label{s:db-exercises}
689689
and I should be ashamed of having done it.
690690
The right thing to do is to \gref{g:throw}{throw}
691691
an \gref{g:exception}{exception}
692-
that main program can \gref{g:catch}{catch}
692+
that the main program can \gref{g:catch}{catch}
693693
and handle however it wants.
694694
695695
\begin{enumerate}

dynamic.tex

+3-3
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ \section{Hello, World}\label{s:dynamic-hello}
8787
When our script runs,
8888
React will put the HTML it generates into this \texttt{div}.
8989
90-
The script itself create an \texttt{h1} with the text ``Hello, React'' using \texttt{React.DOM.h1},
90+
The script itself creates an \texttt{h1} with the text ``Hello, React'' using \texttt{React.DOM.h1},
9191
then finds the document element whose ID is \texttt{"app"}
9292
and uses \texttt{ReactDOM.render} to insert the former into the latter.
9393
This alters the representation of the page in memory,
@@ -170,7 +170,7 @@ \section{JSX}\label{s:dynamic-jsx}
170170
171171
Along with the two React libraries,
172172
this page includes a tool called \hreffoot{https://babeljs.io/}{Babel}\index{Babel}
173-
to translate a mixed of HTML and JavaScript into pure JavaScript.
173+
to translate a mix of HTML and JavaScript into pure JavaScript.
174174
To trigger translation,
175175
we add the attribute \texttt{type="text/babel"} to the \texttt{script} tag.
176176
@@ -291,7 +291,7 @@ \section{Developing with Parcel}\label{s:dynamic-parcel}
291291
The browser will try to load the required files when those statements run,
292292
but who is going to serve them?
293293
294-
The solution is use a \gref{g:bundler}{bundler} to combine everything into one big file,
294+
The solution is to use a \gref{g:bundler}{bundler} to combine everything into one big file,
295295
and to run a \gref{g:local-server}{local server} to preview our application during development.
296296
However,
297297
this solution brings with it another problem:

finale.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ \chapter{Finale}\label{s:finale}
3131
or \hreffoot{https://github.com/software-tools-in-javascript/js4ds/pulls}{submit a pull request}
3232
in \hreffoot{https://github.com/software-tools-in-javascript/js4ds/}{our GitHub repository}.
3333
Everyone whose work is incorporated will be acknowledged.
34-
Please see the contributors's guide for more information,
34+
Please see the contributors' guide for more information,
3535
and please note that all contributors are required to abide by
3636
our Code of Conduct.
3737

glossary.tex

+7-6
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ \chapter{Glossary}\label{s:gloss}
104104
\gitem{g:client}{client}
105105
A program such as a browser that sends requests to a \grefcross{g:server}{server} and
106106
does something with the response. It is sometimes helpful to think of clients
107-
as sorcerors petitioning ancient gods for favors. Sometimes.
107+
as sorcerers petitioning ancient gods for favors. Sometimes.
108108

109109
\gitem{g:client-page-gen}{client-side page generation}
110110
To create an HTML page within a \grefcross{g:client}{client} using data provided by a
@@ -120,7 +120,7 @@ \chapter{Glossary}\label{s:gloss}
120120
A user-defined ``tag'' associated with a call to a function that generates HTML.
121121

122122
\gitem{g:condition}{condition}
123-
The logical test that controls whether or not the \grefcross{g:body-statement}
123+
The logical test that controls whether or not the \grefcross{g:body-statement}{body}
124124
of an \texttt{if} statement executes or not.
125125

126126
\gitem{g:constructor}{constructor}
@@ -551,7 +551,7 @@ \chapter{Glossary}\label{s:gloss}
551551
\grefcross{g:seed}{seed}.
552552

553553
\gitem{g:cc-0}{public domain license (CC-0)}
554-
A license that allow people to re-use material however they want
554+
A license that allows people to re-use material however they want
555555
with no restrictions and no requirement of attribution.
556556

557557
\gitem{g:race-condition}{race condition}
@@ -743,9 +743,10 @@ \chapter{Glossary}\label{s:gloss}
743743

744744
\gitem{g:url}{URL}
745745
A multi-part identifier that specifies something on a computer network. A URL
746-
may contain a protocol (such as \texttt{http}), a hostname (such as \texttt{example.com}), a
747-
port (such as \texttt{80}), a path (such as \texttt{/homepage.html}), and \grefcross{g:query-parameter}{query
748-
parameters}
746+
may contain a protocol (such as \texttt{http}), a hostname (such as \texttt{example.com}),
747+
a port (such as \texttt{80}),
748+
a path (such as \texttt{/homepage.html}),
749+
and \grefcross{g:query-parameter}{query parameters}.
749750

750751
\gitem{g:utf-8}{UTF-8}
751752
A way to store the numeric codes representing Unicode characters in memory

htmlcss.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ \section{Tables}\label{s:htmlcss-tables}
306306
307307
\section{Links}\label{s:htmlcss-links}
308308
309-
Links to other pages are what makes HTML hypertext.\index{link!in HTML page}
309+
Links to other pages are what make HTML hypertext.\index{link!in HTML page}
310310
Confusingly,
311311
the element used to show a link is called \texttt{a}.
312312
The text inside the element is displayed and (usually) highlighted for clicking.

interactive.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ \chapter{Interactive Sites}\label{s:interactive}
8989
9090
\begin{enumerate}
9191
\item
92-
Its constructor passes the properties provided by the user up to \texttt{React.Component}'s constructor.
92+
Its constructor passes the properties provided by the user to \texttt{React.Component}'s constructor.
9393
(There aren't any properties in this case,
9494
but there will be in future examples,
9595
so it's a good habit to get into.)

intro.tex

+2-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ \section{Who You Are}\label{s:intro-personas}
5656
Bhadra's team is developing tools
5757
to detect structural similarities between proteins.
5858
They would like to build a browser interface to their tools
59-
so that people can test different algorithms on various data sets.
59+
so that people can test different algorithms on various datasets.
6060
This book will show Bhadra how to build, test, and deploy that interface.
6161

6262
\item[Efraim]
@@ -101,7 +101,7 @@ \section{Who We Are}\label{s:intro-contributors}
101101
and her passion for data visualization brought her to the weird world of JavaScript.
102102
When she isn't debugging \hreffoot{https://maya.rbind.io/}{or blogging} about code,
103103
she's somewhere remote climbing large mountains.
104-
She dedicates this book to her fellow self taught programmers who were told they weren't good enough
104+
She dedicates this book to her fellow self-taught programmers who were told they weren't good enough
105105
but are too driven and excited to care.
106106

107107
\textbf{\hreffoot{https://tbyhdgs.info/}{Toby Hodges}} is a bioinformatician turned community

pages.tex

+2-2
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,7 @@ \section{Bibliographic Citations}\label{s:pages-citations}
627627
Here,
628628
we are turning each link into an object whose \texttt{"node"} key has the link's DOM node as its value,
629629
and whose \texttt{"text"} key has the node's text,
630-
which we split on commas and and trim to remove leading and trailing whitespace.
630+
which we split on commas and trim to remove leading and trailing whitespace.
631631
632632
But we're not done looking at this stage of our pipeline:
633633
@@ -705,7 +705,7 @@ \section{Bibliographic Citations}\label{s:pages-citations}
705705
\end{minted}
706706
707707
\noindent
708-
(We haven't show the output in commas because typesetting it would overflow the page
708+
(We haven't shown the output in commas because typesetting it would overflow the page
709709
and because our pseudo-HTML notation gets really confusing
710710
once we're showing strings containing HTML that contain strings.)
711711

promises.tex

+4-4
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ \section{Promises}\label{s:promises-promises}
193193
194194
\texttt{fs-extra.stat} will eventually produce some statistics about the file,
195195
but this will take a while,
196-
so \texttt{fs-extra.stat} returns a object of the class \texttt{Promise} right away.
196+
so \texttt{fs-extra.stat} returns an object of the class \texttt{Promise} right away.
197197
\texttt{Promise} has a method \texttt{then} that takes a callback as an argument and stores it in the promise object.
198198
When the \texttt{stat} call completes,
199199
the remembered callback is called,
@@ -262,7 +262,7 @@ \section{Promises}\label{s:promises-promises}
262262
263263
\noindent
264264
Note that we didn't assign our Promise object to a variable in the example above.
265-
We can create promises on the fly if we need them only to define behaviour on
265+
We can create promises on the fly if we need them only to define behavior on
266266
successful completion/exception and won't need to refer to them again later.
267267
268268
\figpdf{figures/promises-object-a.pdf}{Promises as Objects (after creation)}{f:promises-object-a}
@@ -465,7 +465,7 @@ \section{Using Promises}\label{s:promises-usage}
465465
\end{minted}
466466
467467
\noindent
468-
The full path to Node is the first argument;
468+
The full path to Node is the first argument,
469469
the name of our script is the second,
470470
and all of the extra arguments provided by the users follow that.
471471
If we want the first of those,
@@ -850,7 +850,7 @@ \section{Exercises}\label{s:promises-exercises}
850850
\exercise{\texttt{async}, Therefore I Am}
851851
852852
Using \texttt{async} and \texttt{await},
853-
convert the completed function above into an asynchronous function with the same behaviour and output.
853+
convert the completed function above into an asynchronous function with the same behavior and output.
854854
Do you find your solution easier to read and follow than the original version?
855855
Do you think that that is only because you wrote this version?
856856

taylor-francis/cover.pdf

1.61 MB
Binary file not shown.

vis.tex

+3-4
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,7 @@ \section{Vega-Lite}\label{s:vis-vega-lite}
8282
In this case,
8383
we represent a two-dimensional data table as objects with explicit indices \texttt{"a"} and \texttt{"b"}.
8484
We have to do this because JSON (like JavaScript) doesn't have a native representation
85-
of two-dimensional arrays with row and column headers,
86-
because programmers.
85+
of two-dimensional arrays with row and column headers.
8786
8887
Once we have created our spec,
8988
we can call \texttt{vegaEmbed} with the ID of the element that will hold the visualization,
@@ -265,7 +264,7 @@ \section{Local Installation}\label{s:vis-vega-local}
265264
Looking in the browser console,
266265
we see a message telling us that \texttt{vegaEmbed} is not a function.
267266
268-
What we have tripped over is something that's still painful in 2019.
267+
What we have tripped over is a leftover from JavaScript's evolution.
269268
The old method of getting libraries is \texttt{require},
270269
and that's still what Node supports as of Version~10.9.0.
271270
The new standard is \texttt{import},
@@ -319,7 +318,7 @@ \section{Exercises}\label{s:vis-exercises}
319318
Vega-Lite can display
320319
\hreffoot{https://vega.github.io/vega-lite/examples/bar\_grouped.html}{grouped bar charts}
321320
as well as simple ones.
322-
Find or create a simple data set and construct a grouped bar chart.
321+
Find or create a simple dataset and construct a grouped bar chart.
323322
How impressed will your supervisor, your committee, or a future employee be
324323
by your chosen color scheme?
325324

0 commit comments

Comments
 (0)