diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d15bacbed..72d120d0d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,8 +18,10 @@ By contributing you agree to respect the [Code of Conduct](https://github.com/Eb 4. Make sure to follow the [guidelines below](#guidelines) and respect the [Markdown formatting](#formatting) of the files +5. Travis CI will run tests to make sure your lists are alphabetized and formatting rules are followed. Be sure to check that your changes pass the tests. + ### Guidelines -- make sure a book is free. Double-check if needed +- make sure a book is free. Double-check if needed. It helps the admins if you comment in the PR as to why you think the book is free. - we don't accept files hosted on google drive, dropbox, mega, scribd, issuu and other similar file upload platforms - insert your links in alphabetical order. If you see a misplaced link, please reorder it and submit a PR - use the link with the most authoritative source (meaning author's website is better than editor's website is better than third party website) @@ -38,6 +40,8 @@ By contributing you agree to respect the [Code of Conduct](https://github.com/Eb + use the link with the most authoritative source (meaning author's website is better than editor's website is better than third party website) + if they link to different editions and you judge these editions are different enough to be worth keeping them, add a separate link with a note about each edition - prefer atomic commits (one commit by addition/deletion/modification) over bigger commits. No need to squash your commits before submitting a PR. (We will never enforce this rule as it's just a matter of convenience for the maintainers) +- if the book is older, include the publication date with the title. +- include the author name or names where appropriate. You can shorten author lists with "et al." ### Formatting - All lists are `.md` files. Try to learn [Markdown](https://guides.github.com/features/mastering-markdown/) syntax. It's simple! @@ -68,7 +72,7 @@ BAD : * [Another Awesome Book] (http://example.com/book.html) GOOD: * [Another Awesome Book](http://example.com/book.html) ``` -- If you wish to mention the author, use ` - ` (a dash surrounded by single spaces) +- If you include the author, use ` - ` (a dash surrounded by single spaces) ``` BAD : * [Another Awesome Book](http://example.com/book.html)- John Doe @@ -96,3 +100,10 @@ BAD : * [Another Awesome Book](http://example.com/)- John Doe (HTML) BAD : * [Another Awesome Book](https://downloads.example.org/book.html)- John Doe (download site) GOOD: * [Another Awesome Book](http://example.com/) - John Doe (HTML) [(PDF, EPUB)](https://downloads.example.org/book.html) ``` + +- Include publication year in title for older books: + +``` +BAD: * [Another Awesome Book](http://example.com/book.html) - John Doe - 1970 +GOOD: * [Another Awesome Book (1970)](http://example.com/book.html) - John Doe +``` diff --git a/free-programming-books-pt_PT.md b/free-programming-books-pt_PT.md index 64c956587..6738cad0e 100644 --- a/free-programming-books-pt_PT.md +++ b/free-programming-books-pt_PT.md @@ -10,7 +10,7 @@ ### C/C++ * [Apontamentos de Programação em C/C++](http://www.dei.isep.ipp.pt/~pbsousa/aulas/ano_0/2006_07/c/Sebenta-cpp-03-2006.pdf) - Paulo Baltarejo e Jorge Santos (PDF) -* [Aprenda a Programar - Uma Breve Introdução](https://henriquedias.com/downloads/aprenda_a_programar.pdf) - Henrique Dias, 2015 (PDF) +* [Aprenda a Programar - Uma Breve Introdução (2015)](https://henriquedias.com/downloads/aprenda_a_programar.pdf) - Henrique Dias (PDF) ### CSS diff --git a/free-programming-books.md b/free-programming-books.md index 89bd2bf0d..6c9e7a9dd 100644 --- a/free-programming-books.md +++ b/free-programming-books.md @@ -316,11 +316,11 @@ * [An Introduction to GCC](http://www.network-theory.co.uk/docs/gccintro/) - 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](http://www.holub.com/software/compiler.design.in.c.html) - Allen Holub, Prentice Hall, 1990 +* [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 * [Compiling Scala for the Java Virtual Machine](http://lampwww.epfl.ch/~schinz/thesis-final-A4.pdf) - Michel Schinz (PDF) -* [Compiling Techniques](http://www.chilton-computing.org.uk/acl/literature/books/compilingtechniques/overview.htm) - F.R.A. Hopgood, Macdonald, 1969 +* [Compiling Techniques (1969)](http://www.chilton-computing.org.uk/acl/literature/books/compilingtechniques/overview.htm) - F.R.A. Hopgood, Macdonald * [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) * [Linkers and Loaders](http://www.iecc.com/linker/) - John R. Levine @@ -1306,17 +1306,17 @@ * [3D Programming in Java](http://www.mat.uniroma2.it/~picard/SMC/didattica/materiali_did/Java/Java_3D/Java_3D_Programming.pdf) - Daniel Selman (PDF) * [Apache Jakarta Commons: Reusable Java Components](http://ptgmedia.pearsoncmg.com/images/0131478303/downloads/Iverson_book.pdf) - Will Iverson (PDF) -* [Artificial Intelligence - Foundation of Computational Agents](http://artint.info/html/ArtInt.html) - David Poole and Alan Mackworth 2010 +* [Artificial Intelligence - Foundation of Computational Agents (2010)](http://artint.info/html/ArtInt.html) - David Poole and Alan Mackworth * [Category wise tutorials - J2EE](https://www.mkyong.com/all-tutorials-on-mkyong-com/) - Yong Mook Kim -* [Core Servlets and JavaServer Pages, 2nd Ed.](http://pdf.coreservlets.com) - Marty Hall and Larry Brown 2003 -* [Data Structures in Java for the Principled Programmer](http://dept.cs.williams.edu/~bailey/JavaStructures/Book_files/JavaStructures.pdf) - Duane A. Bailey 2007 (PDF) +* [Core Servlets and JavaServer Pages, 2nd Ed. (2003)](http://pdf.coreservlets.com) - Marty Hall and Larry Brown +* [Data Structures in Java for the Principled Programmer (2007)](http://dept.cs.williams.edu/~bailey/JavaStructures/Book_files/JavaStructures.pdf) - Duane A. Bailey (PDF) * [Google's Java Style Guide](https://google.github.io/styleguide/javaguide.html) * [Introduction to Computer science using Java](http://chortle.ccsu.edu/java5/index.html) - Bradley Kjell * [Introduction to Programming in Java](http://introcs.cs.princeton.edu/java/home/) - Robert Sedgewick and Kevin Wayne * [Introduction to Programming Using Java](http://math.hws.edu/javanotes/) - David J. Eck * [JAAS in Action](https://www.gitbook.com/book/benoit74/jaas-in-action/details) * [Java: A Beginner's Guide](http://www.oracle.com/events/global/en/java-outreach/resources/java-a-beginners-guide-1720064.pdf) - Oracle (PDF) -* [Java Application Development on Linux](https://ptgmedia.pearsoncmg.com/images/013143697X/downloads/013143697X_book.pdf) - Carl Albing and Michael Schwarz 2005 (PDF) +* [Java Application Development on Linux (2005)](https://ptgmedia.pearsoncmg.com/images/013143697X/downloads/013143697X_book.pdf) - Carl Albing and Michael Schwarz (PDF) * [Java Language and Virtual Machine Specifications](https://docs.oracle.com/javase/specs/) - James Gosling, et al * [Java Programming for Kids](https://yfain.github.io/Java4Kids/) - Yakov Fain * [Java: The Legend](https://www.oreilly.com/programming/free/java-the-legend.csp) - Ben Evans *(Just fill the fields with any values)* @@ -1329,7 +1329,7 @@ * [OOP - Learn Object Oriented Thinking & Programming](http://pub.bruckner.cz/titles/oop) - Rudolf Pecinovsky * [Open Data Structures (in Java)](http://opendatastructures.org/ods-java.pdf) - Pat Morin (PDF) * [OSGi in Practice](http://njbartlett.name/osgibook.html) - N. Bartlett (PDF) -* [Processing XML with Java (A Guide to SAX, DOM, JDOM, JAXP, and TrAX)](http://www.cafeconleche.org/books/xmljava/) - Elliotte Rusty Harold 2002 +* [Processing XML with Java (A Guide to SAX, DOM, JDOM, JAXP, and TrAX) (2002)](http://www.cafeconleche.org/books/xmljava/) - Elliotte Rusty Harold * [The ABC of PDF with iText: PDF Syntax essentials](https://leanpub.com/itext_pdfabc) - Bruno Lowagie * [The Java EE6 Tutorial](https://docs.oracle.com/javaee/6/tutorial/doc/javaeetutorial6.pdf) (PDF) * [The Java EE7 Tutorial](https://docs.oracle.com/javaee/7/JEETT.pdf) - Eric Jendrock, et al (PDF) @@ -1337,7 +1337,7 @@ * [Think Java: How to Think Like a Computer Scientist](http://greenteapress.com/thinkapjava/) - Allen B. Downey and Chris Mayfield * [Thinking in Java](http://www.mindview.net/Books/TIJ/) - Bruce Eckel * [Welcome to Java for Python Programmers](https://interactivepython.org/runestone/static/java4python/index.html) - Brad Miller -* [Welcome to the Java Workshop](http://javaworkshop.sourceforge.net) - Trevor Miller 2006 +* [Welcome to the Java Workshop (2006)](http://javaworkshop.sourceforge.net) - Trevor Miller * [What's New in Java 8](https://leanpub.com/whatsnewinjava8/read) - Adam L. Davis