# \[ANN\] Julia Data Science Book and Books.jl

**URL:** https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680
**Category:** Package Announcements
**Tags:** announcement, book
**Created:** [October 31, 2021, 9:13am UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680 "2021-10-31T09:13:44Z")
**Posts on this page:** 16
**Page:** 1

<div class="post-metadata">

### Author: ![Storopoli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/storopoli/32/209278_2.png) [@Storopoli](https://discourse.julialang.org/u/Storopoli)
#### Post date: [October 31, 2021, 9:13am UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/1 "2021-10-31T09:13:45Z")

</div>

@rikh , @lazarusA and I are happy to announce that our book [Julia Data Science](https://juliadatascience.io/) is now available on [Amazon.com](https://www.amazon.com/dp/B09KMRKQ96).

 ![frontcover](https://global.discourse-cdn.com/julialang/original/3X/8/a/8a5689f6ec9701aac91d2029e97c914d7bdd9a51.png)

We ve created this book to make it easier for our collegues and friends to pick up Julia. Especially for people new to Julia, it can be difficult to figure out what package to use and how the packages work together. Therefore, we focussed on Julia basics, `DataFrames.jl` , `CSV.jl` , `XLSX.jl` and `Makie.jl` because these are the main data manipulation and visualization packages that can solve many problems.

To make it easier to create the book, we’ve used [Books.jl](https://github.com/JuliaBooks/Books.jl). This package solves multiple problems that @rikh experienced with similar packages. Specifically:

1. The package can generate HTML and PDF from your text and code. Code is evaluated for you and outputs are embedded (like Jupyter, Rmarkdown, `Weave.jl` or `Franklin.jl` ).
2. The package fully supports code written inside your own package. So, it can grab code definitions from your own package and display them inside the book. Creating a package for your book makes it easy to combine your book with other tools such as `CompatHelper` and `Test` .
3. The package fully supports `Revise.jl` . All code changes are tracked and change your output immediately.
4. The package is aimed at being used in CI. If you set fail on error to true and have missing cross-references, code which throws an error or invalid PDF syntax, then CI will fail. This ensures that if CI passes then you can be quite sure that your book looks good.

Thanks to all the people who provided feedback and sometimes even PRs to the book and Books package.

---

<div class="post-metadata">

### Author: ![lazarusA](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lazarusa/32/6571_2.png) [@lazarusA](https://discourse.julialang.org/u/lazarusA)
#### Post date: [October 31, 2021, 4:26pm UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/2 "2021-10-31T16:26:01Z")

</div>

Thank you @rikh for your additional awesome contribution, [Books.jl](https://github.com/JuliaBooks/Books.jl), a must see package.

---

<div class="post-metadata">

### Author: ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)
#### Post date: [November 1, 2021, 2:36pm UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/3 "2021-11-01T14:36:58Z")

</div>

Purchased. 🙏🏻

---

<div class="post-metadata">

### Author: ![George9000](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/george9000/32/23619_2.png) [@George9000](https://discourse.julialang.org/u/George9000)
#### Post date: [November 2, 2021, 2:38am UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/4 "2021-11-02T02:38:26Z")

</div>

Thank you. This is a well written introduction to working with Julia for data science. I’ve been keeping so many bookmarks to forum posts, to blog posts by Bogumił Kamiński, to package documentation, etc… However, for those beginning with Julia this can be overwhelming. This resource (and others like it) will help introduce new users to this fantastic language.

---

<div class="post-metadata">

### Author: ![floswald](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/floswald/32/195_2.png) [@floswald](https://discourse.julialang.org/u/floswald)
#### Post date: [November 3, 2021, 10:38am UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/5 "2021-11-03T10:38:43Z")

</div>

it’s a great book. Can I leave a suggestion for the next edition? I would add on this page [Data Visualization with Makie.jl - Julia Data Science](https://juliadatascience.io/DataVisualizationMakie) a quick sentence on _how to actually view a plot_ produced with Makie. I wasted a good 30 minutes before i saw here [Basic Tutorial](https://makie.juliaplots.org/stable/tutorials/basic-tutorial/) that I’d best do this in VScode.

---

<div class="post-metadata">

### Author: ![rikh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rikh/32/204104_2.png) [@rikh](https://discourse.julialang.org/u/rikh)
#### Post date: [November 3, 2021, 6:09pm UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/6 "2021-11-03T18:09:49Z")

</div>

Thank you. Good feedback and it’s online: [https://github.com/JuliaDataScience/JuliaDataScience/pull/200](https://github.com/JuliaDataScience/JuliaDataScience/pull/200).

We‘ve discussed how quick we should be updating the physical book. Updating the version on Amazon takes about 10 minutes which will be printed a few hours later. The counterargument is that it wouldn’t be good for readers in a class who all have a slightly different version. So I think it’s a difficult choice and thoughts are welcome

---

<div class="post-metadata">

### Author: ![floswald](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/floswald/32/195_2.png) [@floswald](https://discourse.julialang.org/u/floswald)
#### Post date: [November 3, 2021, 6:12pm UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/7 "2021-11-03T18:12:07Z")

</div>

Great - in fact I was looking for the repo but couldn’t find it. Good it’s in your list. I would do as you suggest ie update the physical book only every couple of months (say) but have a man up to date version online?

---

<div class="post-metadata">

### Author: ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)
#### Post date: [November 3, 2021, 6:26pm UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/8 "2021-11-03T18:26:03Z")

</div>

My copy’s going to be out of date before I’ve even finished reading it… 😂

Still, I’ve got a first edition. 👍🏻

---

<div class="post-metadata">

### Author: ![rikh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rikh/32/204104_2.png) [@rikh](https://discourse.julialang.org/u/rikh)
#### Post date: [November 3, 2021, 6:28pm UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/9 "2021-11-03T18:28:21Z")

</div>

Yes, noted. Another reason to not update it so quickly 🙂

---

<div class="post-metadata">

### Author: ![Storopoli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/storopoli/32/209278_2.png) [@Storopoli](https://discourse.julialang.org/u/Storopoli)
#### Post date: [November 3, 2021, 6:44pm UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/10 "2021-11-03T18:44:59Z")

</div>

We will be updating if frequently in the online version at [juliadatascience.io](http://juliadatascience.io). But the paperback editions will have a different lifetime cycle. We would launch a 2nd edition if we have extra content to put or if `DataFrames.jl`, Julia or `Makie.jl` have been updated/broken the API so that we NEED to do a 2nd edition.

Today I started, with the help of some students here in Brazil, translating the book to Portuguese. It will be the same as the English version (free and opensourced online, with a paperback on Amazon.com.br). We are looking for volunteers to translate it to Spanish (we would aknowledge him/her/they as the translator inside the HTML and PDF).

---

<div class="post-metadata">

### Author: ![rikh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rikh/32/204104_2.png) [@rikh](https://discourse.julialang.org/u/rikh)
#### Post date: [August 15, 2022, 7:58am UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/11 "2022-08-15T07:58:42Z")

</div>

[`Books.jl`](https://github.com/JuliaBooks/Books.jl) v2 was released in the past weekend. Version 2 closes multiple long-standing issues. Most noteworthy:

- Syntax highlighting is disabled for output blocks in both HTML and PDF. This makes the books and websites look much cleaner.
- The output is printed via `ProgressMeter.jl` instead of a dump to the console. This avoids a lot of scrolling when generating the book.
- It is now much easier to decide to run only one code block. Useful, for example, if a code block fails.
- There is now a helper function `entr_gen` which can be used to track your book for changes. With this, you can point the function to a part of your book and start writing code and text. Each time that you save the file, `Books.jl` will evaluate the file and update the live-served webpages.
- All code is now always evaluated in `Main`. There used to be an option to pass another module to `gen` to evaluate the code in, but this turned out to be complex and less useful.
- Yggdrasil is now used for Tectonic so Tectonic will automatically update with Yggdrasil and supports ARM via their build system (pandoc-crossref doesn’t yet unfortunately)
- docx is removed because, well, it’s docx
- `install_dependencies` is avoided by passing JuliaMono directly into the TeX file. This avoids the need for a globally installed JuliaMono
- The conversion of plotting objects to images is now managed via multiple dispatch instead of `Requires.jl`. The drawback is that it takes a bit more logic on the book author side, but given that a book is a long-term project, it is hopefully not too bad. The benefit is that it provides authors with more flexibility.

---

<div class="post-metadata">

### Author: ![henry2004y](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/henry2004y/32/9284_2.png) [@henry2004y](https://discourse.julialang.org/u/henry2004y)
#### Post date: [August 15, 2022, 12:06pm UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/12 "2022-08-15T12:06:36Z")

</div>

Does Books.jl support LaTeX and equation numbering?

---

<div class="post-metadata">

### Author: ![rikh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rikh/32/204104_2.png) [@rikh](https://discourse.julialang.org/u/rikh)
#### Post date: [August 15, 2022, 12:41pm UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/13 "2022-08-15T12:41:10Z")

</div>

Yep, see [https://huijzer.xyz/Books.jl/demo](https://huijzer.xyz/Books.jl/demo).

---

<div class="post-metadata">

### Author: ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)
#### Post date: [August 15, 2022, 12:56pm UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/14 "2022-08-15T12:56:50Z")

</div>

I seem to remember that this project had been put into “maintenance mode”. But I can’t see that message any more… 🤔 But I’m very glad to see so much “maintenance” 😂

---

<div class="post-metadata">

### Author: ![TheCedarPrince](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thecedarprince/32/17323_2.png) [@TheCedarPrince](https://discourse.julialang.org/u/TheCedarPrince)
#### Post date: [August 15, 2022, 3:23pm UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/15 "2022-08-15T15:23:03Z")

</div>

Books is back??? HOORAYY!!! 🎉 🎉 🎉 I loved the project and glad to see it resurrected!

---

<div class="post-metadata">

### Author: ![rikh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rikh/32/204104_2.png) [@rikh](https://discourse.julialang.org/u/rikh)
#### Post date: [August 15, 2022, 3:59pm UTC](https://discourse.julialang.org/t/ann-julia-data-science-book-and-books-jl/70680/16 "2022-08-15T15:59:31Z")

</div>

Haha 😂 Thanks both!
