From 0b3e50491ec7de00064e106736d159014b7530fa Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 22:03:20 -0700 Subject: [PATCH 01/26] add awesome_bot to check urls --- .travis.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 781ab558e44b0..2be2e6263fc38 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,11 @@ language: node_js sudo: false node_js: - 6 +rvm: + - 2.2 before_script: - npm install -g free-programming-books-lint -script: fpb-lint . + - gem install awesome_bot +script: + - fpb-lint . + - awesome_bot free-programming-books.md --allow-redirect From a182057f64173abbb86a1009e58198c4235d1cfe Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 22:21:43 -0700 Subject: [PATCH 02/26] allow dupes --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2be2e6263fc38..3678876432358 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,4 +9,4 @@ before_script: - gem install awesome_bot script: - fpb-lint . - - awesome_bot free-programming-books.md --allow-redirect + - awesome_bot free-programming-books.md --allow-redirect --allow-dupe From ce8cb160c67975b31fae2e37694f1842154f3e99 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 22:32:27 -0700 Subject: [PATCH 03/26] make url checking dependent on commit message --- .travis.yml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3678876432358..8d0c93061b6dd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,11 +2,18 @@ language: node_js sudo: false node_js: - 6 -rvm: - - 2.2 before_script: - npm install -g free-programming-books-lint - - gem install awesome_bot script: - fpb-lint . - - awesome_bot free-programming-books.md --allow-redirect --allow-dupe + +jobs: + include: + - + if: commit_message =~ /check urls/ + rvm: + - 2.2 + before_script: + - gem install awesome_bot + script: + - awesome_bot free-programming-books.md --allow-redirect --allow-dupe From f2fa50f4d6a50041406ab024e0ca37b47c36d547 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 22:42:15 -0700 Subject: [PATCH 04/26] add web.archive.org to whitelist cuz awesome_bot is having trouble with those links --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8d0c93061b6dd..2c4b71a309e0c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,4 +16,4 @@ jobs: before_script: - gem install awesome_bot script: - - awesome_bot free-programming-books.md --allow-redirect --allow-dupe + - awesome_bot free-programming-books.md --allow-redirect --allow-dupe --white-list web.archive.org From bcb76739b008a3a7fe80e9b745ac33ddaa16fe8a Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 22:44:03 -0700 Subject: [PATCH 05/26] fix travis.yaml --- .travis.yml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2c4b71a309e0c..4e4aba0f5f7af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,17 @@ -language: node_js -sudo: false -node_js: - - 6 -before_script: - - npm install -g free-programming-books-lint -script: - - fpb-lint . +language: minimal jobs: include: + - + language: node_js + sudo: false + node_js: + - 6 + before_script: + - npm install -g free-programming-books-lint + script: + - fpb-lint . + - if: commit_message =~ /check urls/ rvm: From f5a5d27504607d71592fd2b7a79b9b41a464a7fe Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 22:46:07 -0700 Subject: [PATCH 06/26] check urls --- a | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 a diff --git a/a b/a new file mode 100644 index 0000000000000..e69de29bb2d1d From 261b1360bb845dc0a8c587f9fcd0d04369028e28 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 22:48:21 -0700 Subject: [PATCH 07/26] need ruby --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4e4aba0f5f7af..ae1366b2ddc25 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,9 +13,9 @@ jobs: - fpb-lint . - + language: ruby if: commit_message =~ /check urls/ - rvm: - - 2.2 + rvm: 2.4.1 before_script: - gem install awesome_bot script: From 522be1b03e4c77cd7edaa513e3a3929afe592322 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 22:53:05 -0700 Subject: [PATCH 08/26] another site to avoid --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ae1366b2ddc25..186e803ce6a6c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,4 +19,4 @@ jobs: before_script: - gem install awesome_bot script: - - awesome_bot free-programming-books.md --allow-redirect --allow-dupe --white-list web.archive.org + - awesome_bot free-programming-books.md --allow-redirect --allow-dupe --white-list web.archive.org,makinggameswithtypescript.com From 5c2eaf4253caf15409698d24bf6bd9ee84184fd1 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 22:53:46 -0700 Subject: [PATCH 09/26] check urls --- a | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 a diff --git a/a b/a deleted file mode 100644 index e69de29bb2d1d..0000000000000 From daba23793e5c7309acbb20ed0fdf39ffdacaca90 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 22:55:21 -0700 Subject: [PATCH 10/26] make regex more generic --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 186e803ce6a6c..23810cf589cc0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,7 @@ jobs: - language: ruby - if: commit_message =~ /check urls/ + if: commit_message =~ /check url/ rvm: 2.4.1 before_script: - gem install awesome_bot From 1ea62085c95f4cced030d9cba636c572c315bea8 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 22:55:54 -0700 Subject: [PATCH 11/26] sudo deprecated --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 23810cf589cc0..cd7647ac84ff1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ jobs: include: - language: node_js - sudo: false node_js: - 6 before_script: From aa28d728aee1471ef5ff25019d53c0d32af83d4d Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 22:56:29 -0700 Subject: [PATCH 12/26] make travis linter happy check url --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index cd7647ac84ff1..5d57ba4fa1143 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,6 @@ -language: minimal +language: shell +dist: xenial +os: linux jobs: include: From 5d79c33aeed0745471023a58dd1bed9f91c71dd2 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 23:05:50 -0700 Subject: [PATCH 13/26] try skip results check url --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5d57ba4fa1143..00d8f7572cc5c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,4 +20,4 @@ jobs: before_script: - gem install awesome_bot script: - - awesome_bot free-programming-books.md --allow-redirect --allow-dupe --white-list web.archive.org,makinggameswithtypescript.com + - awesome_bot free-programming-books.md --allow-redirect --allow-dupe --skip-save-results From 9582eb65149e508a918b80b8c0a643fcd2ce0db4 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 23:12:50 -0700 Subject: [PATCH 14/26] timeout was what was killing us check url --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 00d8f7572cc5c..4203a86af0ec0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,4 +20,4 @@ jobs: before_script: - gem install awesome_bot script: - - awesome_bot free-programming-books.md --allow-redirect --allow-dupe --skip-save-results + - awesome_bot free-programming-books.md --allow-redirect --allow-dupe --skip-save-results --allow-timeout --set-timeout 10 From a940d4b640c4ee0a56b6a1e574274a53aad77ba3 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 31 Jul 2020 23:23:13 -0700 Subject: [PATCH 15/26] testing fixing urls check url --- free-programming-books.md | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/free-programming-books.md b/free-programming-books.md index 76fed651e4ee8..93dd752c54f5f 100644 --- a/free-programming-books.md +++ b/free-programming-books.md @@ -391,7 +391,6 @@ * [Compiling Techniques (1969)](http://www.chilton-computing.org.uk/acl/literature/books/compilingtechniques/overview.htm) - F.R.A. Hopgood, Macdonald * [Crafting Interpreters (:construction:)](http://www.craftinginterpreters.com) - Bob Nystrom (HTML) * [Implementing Functional Languages: A Tutorial](http://research.microsoft.com/en-us/um/people/simonpj/Papers/pj-lester-book/) - Simon Peyton Jones, David Lester -* [Let's Build a Compiler](http://www.stack.nl/~marcov/compiler.pdf) (PDF) * [Practical and Theoretical Aspects of Compiler Construction](http://web.stanford.edu/class/archive/cs/cs143/cs143.1128/) (class lectures and slides) * [The ANTLR Mega Tutorial](https://tomassetti.me/antlr-mega-tutorial/) @@ -439,7 +438,6 @@ * [Introduction to Data Science](https://docs.google.com/file/d/0B6iefdnF22XQeVZDSkxjZ0Z5VUE/edit?pli=1) - Jeffrey Stanton * [Introduction to Data Science](https://leanpub.com/datasciencebook) - Rafael A Irizarry *(Leanpub account or valid email requested)* * [Mining of Massive Datasets](http://www.mmds.org) -* [School of Data Handbook](http://schoolofdata.org/handbook/) * [Statistical inference for data science](https://leanpub.com/LittleInferenceBook/read) - Brian Caffo * [Theory and Applications for Advanced Text Mining](http://www.intechopen.com/books/theory-and-applications-for-advanced-text-mining) @@ -484,7 +482,6 @@ * [Reinforcement Learning: An Introduction](http://incompleteideas.net/book/bookdraft2017nov5.pdf) - Richard S. Sutton, Andrew G. Barto (PDF) * [Speech and Language Processing (3rd Edition Draft)](https://web.stanford.edu/~jurafsky/slp3/ed3book.pdf) - Daniel Jurafsky, James H. Martin (PDF) * [The Elements of Statistical Learning](https://web.stanford.edu/~hastie/ElemStatLearn/) - Trevor Hastie, Robert Tibshirani, and Jerome Friedman -* [The LION Way: Machine Learning plus Intelligent Optimization](https://intelligent-optimization.org/LIONbook/lionbook_3v0.pdf) - Roberto Battiti, Mauro Brunato (PDF) * [The Python Game Book](http://thepythongamebook.com/en%3Astart) @@ -517,7 +514,6 @@ * [Knapsack Problems - Algorithms and Computer Implementations](http://www.or.deis.unibo.it/knapsack.html) - Silvano Martello and Paolo Toth * [Lecture Notes of Linear Algebra](http://home.iitk.ac.in/~psraj/mth102/lecture_notes.html) - Dr. P. Shunmugaraj, IIT Kanpur (PDF) * [Linear Algebra](http://home.iitk.ac.in/~arlal/book/la.pdf) - Dr. Arbind K Lal, Sukant Pati (PDF) (:construction: *in process*) -* [Linear Algebra](https://www.math.ucdavis.edu/~linear/linear-guest.pdf) (PDF) * [Linear Algebra by Jim Hefferon](http://joshua.smcvt.edu/linearalgebra) - Jim Hefferon * [Mathematical Logic - an Introduction](http://www.ii.uib.no/~michal/und/i227/book/book.pdf) (PDF) * [Mathematics, MTH101A](http://home.iitk.ac.in/~psraj/mth101/) - P. Shunmugaraj, IIT Kanpur @@ -759,7 +755,6 @@ Kerridge (PDF) (email address *requested*, not required) * [Developing Reactive Microservices](https://info.lightbend.com/COLL-20XX-Developing-Reactive-Microservices_Landing-Page.html) (email address *requested*, not required) * [Domain Driven Design Quickly](http://www.infoq.com/minibooks/domain-driven-design-quickly) * [DSL Engineering: Designing, Implementing and Using Domain-Specific Languages](http://dslbook.org) - Markus Voelter -* [Exploring CQRS and Event Sourcing](https://msdn.microsoft.com/en-us/library/jj554200.aspx) - (EPUB, PDF) * [Guide to the Software Engineering Body of Knowledge](https://www.computer.org/education/bodies-of-knowledge/software-engineering/v3) (email adddress *requested*) * [How to Design Programs](http://www.htdp.org) * [How to Write Unmaintainable Code](http://mindprod.com/jgloss/unmain.html) @@ -975,7 +970,6 @@ Kerridge (PDF) (email address *requested*, not required) * [Beej's Guide to C Programming](http://beej.us/guide/bgc/) - B. Hall * [Beej's Guide to Network Programming - Using Internet Sockets](http://beej.us/guide/bgnet/) - B. Hall * [Build Your Own Lisp](http://www.buildyourownlisp.com) - Daniel Holden -* [C Elements of Style](http://www.oualline.com/books.free/style/) - Steve Oualline * [C for Python Programmers - Carl Burch](http://www.toves.org/books/cpy/) * [C Notes](https://goalkicker.com/CBook) (PDF) * [C Programming](https://en.wikibooks.org/wiki/Programming%3AC) - Wikibooks @@ -1072,7 +1066,6 @@ Kerridge (PDF) (email address *requested*, not required) * [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html) * [Clojure for the Brave and True](http://www.braveclojure.com) * [Clojure in Small Pieces](http://daly.axiom-developer.org/clojure.pdf) - Rich Hickey (PDF) -* [Clojure Koans](http://clojurekoans.com) * [Clojure Programming](https://en.wikibooks.org/wiki/Clojure_Programming) - Wikibooks * [ClojureScript Koans](http://clojurescriptkoans.com) * [ClojureScript Unraveled](https://funcool.github.io/clojurescript-unraveled/) (HTML) @@ -1623,7 +1616,6 @@ Kerridge (PDF) (email address *requested*, not required) #### Backbone.js -* [A Complete guide for learning Backbone.js](http://codebeerstartups.com/2012/12/a-complete-guide-for-learning-backbone-js/) * [A pragmatic guide to Backbone.js apps](http://pragmatic-backbone.com) * [Backbone Tutorials: Beginner, Intermediate and Advanced](https://leanpub.com/backbonetutorials) - Thomas Davis *(Leanpub account or valid email requested)* * [Backbonejs Tutorials](https://cdnjs.com/libraries/backbone.js/tutorials/) @@ -1690,7 +1682,6 @@ Kerridge (PDF) (email address *requested*, not required) #### Meteor -* [BulletProof Meteor](https://bulletproofmeteor.com) * [Your First Meteor Application, A Complete Beginner’s Guide to the Meteor JavaScript Framework](http://meteortips.com/book/) @@ -1852,8 +1843,6 @@ Kerridge (PDF) (email address *requested*, not required) * [On Lisp](http://www.paulgraham.com/onlisp.html) - P. Graham * [Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp](https://github.com/norvig/paip-lisp) - Peter Norvig (PDF, epub, markdown) * [Practical Common Lisp](http://www.gigamonkeys.com/book/) - P. Seibel -* [SOLID Design Principles in Common Lisp](https://common-lisp-reserve.github.io/solid-design-principles-in-common-lisp/solid-design-principles-in-common-lisp.pdf) - Momozor (PDF) -* [Successful Lisp: How to Understand and Use Common Lisp](https://github.com/clojurians-org/lisp-ebook/blob/master/Successful%20Lisp%20How%20to%20Understand%20and%20Use%20Common%20Lisp%20-%20David%20B.%20Lamkins.pdf) - David Lamkins (PDF) * [The Common Lisp Cookbook](https://lispcookbook.github.io/cl-cookbook/) * [The Evolution of Lisp](http://www.dreamsongs.com/Files/HOPL2-Uncut.pdf) - Guy L. Steele Jr., Richard P. Gabriel (PDF) @@ -2151,7 +2140,6 @@ Kerridge (PDF) (email address *requested*, not required) * [Secrets of PowerShell Remoting](https://www.gitbook.com/book/devopscollective/secrets-of-powershell-remoting/details) (PDF, ePub, MOBI) * [The Big Book of PowerShell Error Handling](https://www.gitbook.com/book/devopscollective/the-big-book-of-powershell-error-handling/details) (PDF, ePub, MOBI) * [The Big Book of PowerShell Gotchas](https://www.gitbook.com/book/devopscollective/the-big-book-of-powershell-gotchas/details) (PDF, ePub, MOBI) -* [The DSC Book](https://www.penflip.com/powershellorg/the-dsc-book) (PDF, ePub, HTML) * [The Monad Manifesto - Annotated](https://www.gitbook.com/book/devopscollective/the-monad-manifesto-annotated/details) (PDF, ePub, MOBI) * [Why PowerShell?](https://www.gitbook.com/book/devopscollective/why-powershell-/details) (PDF, ePub, MOBI) * [Windows PowerShell Networking Guide](https://www.gitbook.com/book/devopscollective/windows-powershell-networking-guide/details) (PDF, ePub, MOBI) @@ -2231,7 +2219,6 @@ Kerridge (PDF) (email address *requested*, not required) * [Introduction to Programming with Python](http://opentechschool.github.io/python-beginners/en/) (3.3) * [Introduction to Programming Using Python](http://python-ebook.blogspot.co.uk) - Cody Jackson (1st edition) (2.3) * [Introduction to Python](http://kracekumar.com/post/71171551647/introduction-to-python) - Kracekumar (2.7.3) -* [Invent Your Own Computer Games With Python](http://inventwithpython.com/chapters/) - Al Sweigart (3.1) * [Learn Python, Break Python](http://learnpythonbreakpython.com) * [Learn Python in Y minutes](https://learnxinyminutes.com/docs/python/) * [Learn Python Programming, Second Edition](https://www.packtpub.com/free-ebooks/learn-python-programming-second-edition) - Fabrizio Romano (Packt account *required*) @@ -2620,7 +2607,6 @@ Kerridge (PDF) (email address *requested*, not required) ### Swift * [Hacking with Swift](https://www.hackingwithswift.com) -* [Learn Swift](http://books.aidanf.net/learn-swift) * [The Swift Programming Language](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html) (HTML) [(iBook)](https://itunes.apple.com/us/book/swift-programming-language/id881256329?mt=11) * [Using Swift with Cocoa and Objective-C](https://developer.apple.com/library/content//documentation/Swift/Conceptual/BuildingCocoaApps/index.html) (HTML) [(iBook)](https://itunes.apple.com/us/book/using-swift-cocoa-objective/id888894773?mt=11) @@ -2634,7 +2620,6 @@ Kerridge (PDF) (email address *requested*, not required) ### Tcl * [Tcl Programming](https://en.wikibooks.org/wiki/Programming%3ATcl) - Richard.Suchenwirth, et. al. -* [TclWise](http://www.invece.org/tclwise/index.html) - Salvatore Sanfilippo ### TEI @@ -2659,7 +2644,6 @@ Kerridge (PDF) (email address *requested*, not required) ### TypeScript -* [Making games with TypeScript](https://makinggameswithtypescript.com) - Øyvind (HTML) (:construction: *in process*) * [TypeScript Accelerated](https://accelerated.amimetic.co.uk) - James Porter * [TypeScript Deep Dive](https://basarat.gitbooks.io/typescript/) * [TypeScript for C# Programmers](http://www.infoq.com/minibooks/typescript-c-sharp-programmers) From b67d49cea4265d1356a590c3cb1c0a0fa25f90d1 Mon Sep 17 00:00:00 2001 From: borgified Date: Sat, 1 Aug 2020 00:09:17 -0700 Subject: [PATCH 16/26] dont allow timeout check url --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4203a86af0ec0..00d8f7572cc5c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,4 +20,4 @@ jobs: before_script: - gem install awesome_bot script: - - awesome_bot free-programming-books.md --allow-redirect --allow-dupe --skip-save-results --allow-timeout --set-timeout 10 + - awesome_bot free-programming-books.md --allow-redirect --allow-dupe --skip-save-results From 790057ba6c41c2e45ac206de4547bd20d6b91b6e Mon Sep 17 00:00:00 2001 From: borgified Date: Sat, 1 Aug 2020 00:17:43 -0700 Subject: [PATCH 17/26] testing timeout check url --- free-programming-books.md | 1 - 1 file changed, 1 deletion(-) diff --git a/free-programming-books.md b/free-programming-books.md index 93dd752c54f5f..61a20bcb00f9d 100644 --- a/free-programming-books.md +++ b/free-programming-books.md @@ -383,7 +383,6 @@ * [An Introduction to GCC](https://web.archive.org/web/20170326232435/http://www.network-theory.co.uk/docs/gccintro/index.html) - Brian Gough * [Basics of Compiler Design (Anniversary Edition)](http://www.diku.dk/~torbenm/Basics/) - Torben Mogensen -* [Compiler Construction](http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf) (PDF) * [Compiler Design in C (1990)](http://www.holub.com/software/compiler.design.in.c.html) - Allen Holub, Prentice Hall * [Compiler Design: Theory, Tools, and Examples, C/C++ Edition](http://elvis.rowan.edu/~bergmann/books/cd/c_cpp/) - Seth D. Bergmann * [Compiler Design: Theory, Tools, and Examples, Java Edition](http://elvis.rowan.edu/~bergmann/books/cd/java/) - Seth D. Bergmann From 5c527184269a3b4c44785b4b268582d5d3f32364 Mon Sep 17 00:00:00 2001 From: borgified Date: Sat, 1 Aug 2020 00:23:45 -0700 Subject: [PATCH 18/26] put fpb back check url --- free-programming-books.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/free-programming-books.md b/free-programming-books.md index 61a20bcb00f9d..76fed651e4ee8 100644 --- a/free-programming-books.md +++ b/free-programming-books.md @@ -383,6 +383,7 @@ * [An Introduction to GCC](https://web.archive.org/web/20170326232435/http://www.network-theory.co.uk/docs/gccintro/index.html) - Brian Gough * [Basics of Compiler Design (Anniversary Edition)](http://www.diku.dk/~torbenm/Basics/) - Torben Mogensen +* [Compiler Construction](http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf) (PDF) * [Compiler Design in C (1990)](http://www.holub.com/software/compiler.design.in.c.html) - Allen Holub, Prentice Hall * [Compiler Design: Theory, Tools, and Examples, C/C++ Edition](http://elvis.rowan.edu/~bergmann/books/cd/c_cpp/) - Seth D. Bergmann * [Compiler Design: Theory, Tools, and Examples, Java Edition](http://elvis.rowan.edu/~bergmann/books/cd/java/) - Seth D. Bergmann @@ -390,6 +391,7 @@ * [Compiling Techniques (1969)](http://www.chilton-computing.org.uk/acl/literature/books/compilingtechniques/overview.htm) - F.R.A. Hopgood, Macdonald * [Crafting Interpreters (:construction:)](http://www.craftinginterpreters.com) - Bob Nystrom (HTML) * [Implementing Functional Languages: A Tutorial](http://research.microsoft.com/en-us/um/people/simonpj/Papers/pj-lester-book/) - Simon Peyton Jones, David Lester +* [Let's Build a Compiler](http://www.stack.nl/~marcov/compiler.pdf) (PDF) * [Practical and Theoretical Aspects of Compiler Construction](http://web.stanford.edu/class/archive/cs/cs143/cs143.1128/) (class lectures and slides) * [The ANTLR Mega Tutorial](https://tomassetti.me/antlr-mega-tutorial/) @@ -437,6 +439,7 @@ * [Introduction to Data Science](https://docs.google.com/file/d/0B6iefdnF22XQeVZDSkxjZ0Z5VUE/edit?pli=1) - Jeffrey Stanton * [Introduction to Data Science](https://leanpub.com/datasciencebook) - Rafael A Irizarry *(Leanpub account or valid email requested)* * [Mining of Massive Datasets](http://www.mmds.org) +* [School of Data Handbook](http://schoolofdata.org/handbook/) * [Statistical inference for data science](https://leanpub.com/LittleInferenceBook/read) - Brian Caffo * [Theory and Applications for Advanced Text Mining](http://www.intechopen.com/books/theory-and-applications-for-advanced-text-mining) @@ -481,6 +484,7 @@ * [Reinforcement Learning: An Introduction](http://incompleteideas.net/book/bookdraft2017nov5.pdf) - Richard S. Sutton, Andrew G. Barto (PDF) * [Speech and Language Processing (3rd Edition Draft)](https://web.stanford.edu/~jurafsky/slp3/ed3book.pdf) - Daniel Jurafsky, James H. Martin (PDF) * [The Elements of Statistical Learning](https://web.stanford.edu/~hastie/ElemStatLearn/) - Trevor Hastie, Robert Tibshirani, and Jerome Friedman +* [The LION Way: Machine Learning plus Intelligent Optimization](https://intelligent-optimization.org/LIONbook/lionbook_3v0.pdf) - Roberto Battiti, Mauro Brunato (PDF) * [The Python Game Book](http://thepythongamebook.com/en%3Astart) @@ -513,6 +517,7 @@ * [Knapsack Problems - Algorithms and Computer Implementations](http://www.or.deis.unibo.it/knapsack.html) - Silvano Martello and Paolo Toth * [Lecture Notes of Linear Algebra](http://home.iitk.ac.in/~psraj/mth102/lecture_notes.html) - Dr. P. Shunmugaraj, IIT Kanpur (PDF) * [Linear Algebra](http://home.iitk.ac.in/~arlal/book/la.pdf) - Dr. Arbind K Lal, Sukant Pati (PDF) (:construction: *in process*) +* [Linear Algebra](https://www.math.ucdavis.edu/~linear/linear-guest.pdf) (PDF) * [Linear Algebra by Jim Hefferon](http://joshua.smcvt.edu/linearalgebra) - Jim Hefferon * [Mathematical Logic - an Introduction](http://www.ii.uib.no/~michal/und/i227/book/book.pdf) (PDF) * [Mathematics, MTH101A](http://home.iitk.ac.in/~psraj/mth101/) - P. Shunmugaraj, IIT Kanpur @@ -754,6 +759,7 @@ Kerridge (PDF) (email address *requested*, not required) * [Developing Reactive Microservices](https://info.lightbend.com/COLL-20XX-Developing-Reactive-Microservices_Landing-Page.html) (email address *requested*, not required) * [Domain Driven Design Quickly](http://www.infoq.com/minibooks/domain-driven-design-quickly) * [DSL Engineering: Designing, Implementing and Using Domain-Specific Languages](http://dslbook.org) - Markus Voelter +* [Exploring CQRS and Event Sourcing](https://msdn.microsoft.com/en-us/library/jj554200.aspx) - (EPUB, PDF) * [Guide to the Software Engineering Body of Knowledge](https://www.computer.org/education/bodies-of-knowledge/software-engineering/v3) (email adddress *requested*) * [How to Design Programs](http://www.htdp.org) * [How to Write Unmaintainable Code](http://mindprod.com/jgloss/unmain.html) @@ -969,6 +975,7 @@ Kerridge (PDF) (email address *requested*, not required) * [Beej's Guide to C Programming](http://beej.us/guide/bgc/) - B. Hall * [Beej's Guide to Network Programming - Using Internet Sockets](http://beej.us/guide/bgnet/) - B. Hall * [Build Your Own Lisp](http://www.buildyourownlisp.com) - Daniel Holden +* [C Elements of Style](http://www.oualline.com/books.free/style/) - Steve Oualline * [C for Python Programmers - Carl Burch](http://www.toves.org/books/cpy/) * [C Notes](https://goalkicker.com/CBook) (PDF) * [C Programming](https://en.wikibooks.org/wiki/Programming%3AC) - Wikibooks @@ -1065,6 +1072,7 @@ Kerridge (PDF) (email address *requested*, not required) * [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html) * [Clojure for the Brave and True](http://www.braveclojure.com) * [Clojure in Small Pieces](http://daly.axiom-developer.org/clojure.pdf) - Rich Hickey (PDF) +* [Clojure Koans](http://clojurekoans.com) * [Clojure Programming](https://en.wikibooks.org/wiki/Clojure_Programming) - Wikibooks * [ClojureScript Koans](http://clojurescriptkoans.com) * [ClojureScript Unraveled](https://funcool.github.io/clojurescript-unraveled/) (HTML) @@ -1615,6 +1623,7 @@ Kerridge (PDF) (email address *requested*, not required) #### Backbone.js +* [A Complete guide for learning Backbone.js](http://codebeerstartups.com/2012/12/a-complete-guide-for-learning-backbone-js/) * [A pragmatic guide to Backbone.js apps](http://pragmatic-backbone.com) * [Backbone Tutorials: Beginner, Intermediate and Advanced](https://leanpub.com/backbonetutorials) - Thomas Davis *(Leanpub account or valid email requested)* * [Backbonejs Tutorials](https://cdnjs.com/libraries/backbone.js/tutorials/) @@ -1681,6 +1690,7 @@ Kerridge (PDF) (email address *requested*, not required) #### Meteor +* [BulletProof Meteor](https://bulletproofmeteor.com) * [Your First Meteor Application, A Complete Beginner’s Guide to the Meteor JavaScript Framework](http://meteortips.com/book/) @@ -1842,6 +1852,8 @@ Kerridge (PDF) (email address *requested*, not required) * [On Lisp](http://www.paulgraham.com/onlisp.html) - P. Graham * [Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp](https://github.com/norvig/paip-lisp) - Peter Norvig (PDF, epub, markdown) * [Practical Common Lisp](http://www.gigamonkeys.com/book/) - P. Seibel +* [SOLID Design Principles in Common Lisp](https://common-lisp-reserve.github.io/solid-design-principles-in-common-lisp/solid-design-principles-in-common-lisp.pdf) - Momozor (PDF) +* [Successful Lisp: How to Understand and Use Common Lisp](https://github.com/clojurians-org/lisp-ebook/blob/master/Successful%20Lisp%20How%20to%20Understand%20and%20Use%20Common%20Lisp%20-%20David%20B.%20Lamkins.pdf) - David Lamkins (PDF) * [The Common Lisp Cookbook](https://lispcookbook.github.io/cl-cookbook/) * [The Evolution of Lisp](http://www.dreamsongs.com/Files/HOPL2-Uncut.pdf) - Guy L. Steele Jr., Richard P. Gabriel (PDF) @@ -2139,6 +2151,7 @@ Kerridge (PDF) (email address *requested*, not required) * [Secrets of PowerShell Remoting](https://www.gitbook.com/book/devopscollective/secrets-of-powershell-remoting/details) (PDF, ePub, MOBI) * [The Big Book of PowerShell Error Handling](https://www.gitbook.com/book/devopscollective/the-big-book-of-powershell-error-handling/details) (PDF, ePub, MOBI) * [The Big Book of PowerShell Gotchas](https://www.gitbook.com/book/devopscollective/the-big-book-of-powershell-gotchas/details) (PDF, ePub, MOBI) +* [The DSC Book](https://www.penflip.com/powershellorg/the-dsc-book) (PDF, ePub, HTML) * [The Monad Manifesto - Annotated](https://www.gitbook.com/book/devopscollective/the-monad-manifesto-annotated/details) (PDF, ePub, MOBI) * [Why PowerShell?](https://www.gitbook.com/book/devopscollective/why-powershell-/details) (PDF, ePub, MOBI) * [Windows PowerShell Networking Guide](https://www.gitbook.com/book/devopscollective/windows-powershell-networking-guide/details) (PDF, ePub, MOBI) @@ -2218,6 +2231,7 @@ Kerridge (PDF) (email address *requested*, not required) * [Introduction to Programming with Python](http://opentechschool.github.io/python-beginners/en/) (3.3) * [Introduction to Programming Using Python](http://python-ebook.blogspot.co.uk) - Cody Jackson (1st edition) (2.3) * [Introduction to Python](http://kracekumar.com/post/71171551647/introduction-to-python) - Kracekumar (2.7.3) +* [Invent Your Own Computer Games With Python](http://inventwithpython.com/chapters/) - Al Sweigart (3.1) * [Learn Python, Break Python](http://learnpythonbreakpython.com) * [Learn Python in Y minutes](https://learnxinyminutes.com/docs/python/) * [Learn Python Programming, Second Edition](https://www.packtpub.com/free-ebooks/learn-python-programming-second-edition) - Fabrizio Romano (Packt account *required*) @@ -2606,6 +2620,7 @@ Kerridge (PDF) (email address *requested*, not required) ### Swift * [Hacking with Swift](https://www.hackingwithswift.com) +* [Learn Swift](http://books.aidanf.net/learn-swift) * [The Swift Programming Language](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html) (HTML) [(iBook)](https://itunes.apple.com/us/book/swift-programming-language/id881256329?mt=11) * [Using Swift with Cocoa and Objective-C](https://developer.apple.com/library/content//documentation/Swift/Conceptual/BuildingCocoaApps/index.html) (HTML) [(iBook)](https://itunes.apple.com/us/book/using-swift-cocoa-objective/id888894773?mt=11) @@ -2619,6 +2634,7 @@ Kerridge (PDF) (email address *requested*, not required) ### Tcl * [Tcl Programming](https://en.wikibooks.org/wiki/Programming%3ATcl) - Richard.Suchenwirth, et. al. +* [TclWise](http://www.invece.org/tclwise/index.html) - Salvatore Sanfilippo ### TEI @@ -2643,6 +2659,7 @@ Kerridge (PDF) (email address *requested*, not required) ### TypeScript +* [Making games with TypeScript](https://makinggameswithtypescript.com) - Øyvind (HTML) (:construction: *in process*) * [TypeScript Accelerated](https://accelerated.amimetic.co.uk) - James Porter * [TypeScript Deep Dive](https://basarat.gitbooks.io/typescript/) * [TypeScript for C# Programmers](http://www.infoq.com/minibooks/typescript-c-sharp-programmers) From 9173c4dccf9dda8afc21ca18bc042629df243b79 Mon Sep 17 00:00:00 2001 From: borgified Date: Thu, 6 Aug 2020 23:53:00 -0700 Subject: [PATCH 19/26] enable to check_urls on arbitrary files check_urls:free-programming-books.md --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 00d8f7572cc5c..67fba06487aac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,9 +15,11 @@ jobs: - language: ruby - if: commit_message =~ /check url/ + if: commit_message =~ /check_urls:/ rvm: 2.4.1 before_script: - gem install awesome_bot script: - - awesome_bot free-programming-books.md --allow-redirect --allow-dupe --skip-save-results + - echo $TRAVIS_COMMIT_MESSAGE + - echo $(echo $TRAVIS_COMMIT_MESSAGE | cut -d: -f2) + - awesome_bot $(echo $TRAVIS_COMMIT_MESSAGE | cut -d: -f2) --allow-redirect --allow-dupe --skip-save-results From dacedbb14d4281de29fbbb0e28fd2cf5fa231b47 Mon Sep 17 00:00:00 2001 From: borgified Date: Thu, 6 Aug 2020 23:57:27 -0700 Subject: [PATCH 20/26] try again check_urls:free-programming-books.md --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 67fba06487aac..95c901dab4622 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,4 @@ jobs: before_script: - gem install awesome_bot script: - - echo $TRAVIS_COMMIT_MESSAGE - - echo $(echo $TRAVIS_COMMIT_MESSAGE | cut -d: -f2) - - awesome_bot $(echo $TRAVIS_COMMIT_MESSAGE | cut -d: -f2) --allow-redirect --allow-dupe --skip-save-results + - awesome_bot $(echo $TRAVIS_COMMIT_MESSAGE | awk -F: '{print $2}') --allow-redirect --allow-dupe --skip-save-results From 4cd90d0e7314494f301f982e3f12a9dc74e15d5d Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 7 Aug 2020 00:00:09 -0700 Subject: [PATCH 21/26] test again check_urls:free-programming-books.md --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 95c901dab4622..8abb4642fa5df 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,4 +20,6 @@ jobs: before_script: - gem install awesome_bot script: - - awesome_bot $(echo $TRAVIS_COMMIT_MESSAGE | awk -F: '{print $2}') --allow-redirect --allow-dupe --skip-save-results + - FILENAME=$(echo $TRAVIS_COMMIT_MESSAGE | awk -F: '{print $2}') + - echo $FILENAME + - awesome_bot "$FILENAME" --allow-redirect --allow-dupe --skip-save-results From bffcbd98d076a00102cdb988aa91bb88171df281 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 7 Aug 2020 00:12:38 -0700 Subject: [PATCH 22/26] travis doesnt like : check_urls=free-programming-books.md --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8abb4642fa5df..7103749923490 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,6 @@ jobs: before_script: - gem install awesome_bot script: - - FILENAME=$(echo $TRAVIS_COMMIT_MESSAGE | awk -F: '{print $2}') + - FILENAME=$(echo $TRAVIS_COMMIT_MESSAGE | awk -F= '{print $2}') - echo $FILENAME - awesome_bot "$FILENAME" --allow-redirect --allow-dupe --skip-save-results From c4a5bc533ef5b188355962d81edb66bcce936e1d Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 7 Aug 2020 00:15:54 -0700 Subject: [PATCH 23/26] allow arbitrary number of files to be checked check_urls=free-programming-books.md --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7103749923490..333862497833e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,6 @@ jobs: before_script: - gem install awesome_bot script: - - FILENAME=$(echo $TRAVIS_COMMIT_MESSAGE | awk -F= '{print $2}') - - echo $FILENAME - - awesome_bot "$FILENAME" --allow-redirect --allow-dupe --skip-save-results + - INPUT=$(echo $TRAVIS_COMMIT_MESSAGE | awk -F= '{print $2}') + - echo $INPUT + - awesome_bot --allow-redirect --allow-dupe --skip-save-results | xargs $INPUT From 167ce9f8092b90358f75711791d755c4e4f2c3f2 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 7 Aug 2020 00:18:03 -0700 Subject: [PATCH 24/26] woops forgot to fix the trigger regex check_urls=free-programming-books.md free-programming-books-en.md --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 333862497833e..068e1b9e06f5d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ jobs: - language: ruby - if: commit_message =~ /check_urls:/ + if: commit_message =~ /check_urls=/ rvm: 2.4.1 before_script: - gem install awesome_bot From 52c0a3aa6f8d7c9f4f1c4fa33aa48a2df2bdbf93 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 7 Aug 2020 00:22:15 -0700 Subject: [PATCH 25/26] use for loop instead of xargs check_urls=free-programming-books.md free-programming-books-en.md --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 068e1b9e06f5d..579e59474755b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,5 +21,4 @@ jobs: - gem install awesome_bot script: - INPUT=$(echo $TRAVIS_COMMIT_MESSAGE | awk -F= '{print $2}') - - echo $INPUT - - awesome_bot --allow-redirect --allow-dupe --skip-save-results | xargs $INPUT + - for i in $INPUT; do echo "processing $i"; awesome_bot $i --allow-redirect --allow-dupe --skip-save-results; done From a558cbd41522a4adc08deac1694994de55e73613 Mon Sep 17 00:00:00 2001 From: borgified Date: Fri, 7 Aug 2020 08:55:39 -0700 Subject: [PATCH 26/26] add documentation --- CONTRIBUTING.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dd5680fadbd43..b0bbf2115807e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -118,3 +118,15 @@ GOOD: * [A Very Awesome Book (1970)](https://example.org/book.html) - Jane Roe ``` GOOD: * [Will Be Awesome Soon Book](http://example.com/book2.html) - John Doe (HTML) (:construction: *in process*) ``` + +### Automation +- Formatting rules enforcement is automated via [Travis CI](https://travis-ci.com) using [fpb-lint](https://github.com/vhf/free-programming-books-lint) (see [.travis.yml](.travis.yml)) +- URL validation uses [awesome_bot](https://github.com/dkhamsing/awesome_bot) +- To trigger URL validation, push a commit that includes a commit message containing `check_urls=file_to_check`: + +``` +check_urls=free-programming-books.md free-programming-books-en.md +``` + +- You may specify more than one file to check, using a single space to separate each entry. +- If you specify more than one file, results of the build is based on the result of the last file checked. You should be aware that you may get passing green builds due to this so be sure to inspect the build log at the end of the pull request by clicking on "Show all checks" -> "Details".