Skip to content

Commit

Permalink
Merge branch 'main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
eshellman authored Nov 22, 2023
2 parents 4f4bd76 + ec2b79a commit 5f1ec2d
Show file tree
Hide file tree
Showing 69 changed files with 1,334 additions and 326 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/check-urls.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
fetch-depth: ${{ steps.set-params.outputs.fetch-depth }}
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v39.2.0
uses: tj-actions/changed-files@v40.1.1
with:
separator: " "
json: true
Expand Down
55 changes: 55 additions & 0 deletions .github/workflows/comment-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Comment on the pull request

on:
workflow_run:
workflows: ["free-programming-books-lint"]
types:
- completed

jobs:
upload:
permissions:
pull-requests: write
runs-on: ubuntu-latest
if: >
${{ github.event.workflow_run.event == 'pull_request' &&
github.event.workflow_run.conclusion == 'success' }}
steps:
- name: 'Download artifact'
uses: actions/github-script@v7
with:
script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.payload.workflow_run.id,
});
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
return artifact.name == "pr"
})[0];
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
let fs = require('fs');
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr.zip`, Buffer.from(download.data));
- name: 'Unzip artifact'
run: unzip pr.zip

- name: 'Comment on PR'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
if [ -s error.log ]
then
gh pr comment $(<PRurl) -b "Linter failed, fix the error(s):
\`\`\`
$(cat error.log)
\`\`\`"
gh pr edit $(<PRurl) --add-label "linter error"
else
gh pr edit $(<PRurl) --remove-label "linter error"
fi
25 changes: 19 additions & 6 deletions .github/workflows/fpb-lint.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: free-programming-books-lint

on: [push, pull_request]
on: [pull_request]

permissions:
contents: read
Expand All @@ -13,11 +13,24 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '16.x'
- run: npm install -g free-programming-books-lint
- run: fpb-lint ./books/
- run: fpb-lint ./casts/
- run: fpb-lint ./courses/
- run: fpb-lint ./more/

- name: Pull Request
run: |
fpb-lint books casts courses more &> output.log
- name: Clean output and create artifacts
if: always()
run: |
mkdir -p ./pr
echo ${{ github.event.pull_request.html_url }} > ./pr/PRurl
cat output.log | sed -E 's:/home/runner/work/free-programming-books/|⚠.+::' | uniq > ./pr/error.log
- uses: actions/upload-artifact@v3
if: always()
with:
name: pr
path: pr/
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,11 @@ Click on these badges to see how you might be able to help:
## How to Share

<div align="left" markdown="1">

<a href="http://twitter.com/intent/tweet?text=https://github.com/EbookFoundation/free-programming-books%0AFree%20Programming%20Books">Share on Twitter</a><br>
<a href="https://www.facebook.com/share.php?u=https%3A%2F%2Fgithub.com%2FEbookFoundation%2Ffree-programming-books&p[images][0]=&p[title]=Free%20Programming%20Books&p[summary]=">Share on Facebook</a><br>
<a href="http://www.linkedin.com/shareArticle?mini=true&url=https://github.com/EbookFoundation/free-programming-books&title=Free%20Programming%20Books&summary=&source=">Share on LinkedIn</a><br>
<a href="https://toot.kytta.dev/?mini=true&url=https://github.com/EbookFoundation/free-programming-books&title=Free%20Programming%20Books&summary=&source=">Share on Mastodon/Fediverse</a><br>
<a href="https://t.me/share/url?url=https://github.com/EbookFoundation/free-programming-books">Share on Telegram</a><br>

<a href="https://twitter.com/intent/tweet?text=https://github.com/EbookFoundation/free-programming-books%0AFree%20Programming%20Books">Share on 𝕏 (Twitter)</a><br>
</div>

## Resources
Expand All @@ -81,6 +80,7 @@ This project lists books and other resources grouped by genres:
#### Other Languages

+ [Arabic / al arabiya / العربية](books/free-programming-books-ar.md)
+ [Armenian / Հայերեն](books/free-programming-books-hy.md)
+ [Azerbaijani / Азәрбајҹан дили / آذربايجانجا ديلي](books/free-programming-books-az.md)
+ [Bengali / বাংলা](books/free-programming-books-bn.md)
+ [Bulgarian / български](books/free-programming-books-bg.md)
Expand All @@ -103,6 +103,7 @@ This project lists books and other resources grouped by genres:
+ [Japanese / 日本語](books/free-programming-books-ja.md)
+ [Korean / 한국어](books/free-programming-books-ko.md)
+ [Latvian / Latviešu](books/free-programming-books-lv.md)
+ [Malayalam / മലയാളം](books/free-programming-books-ml.md)
+ [Norwegian / Norsk](books/free-programming-books-no.md)
+ [Persian / Farsi (Iran) / فارسى](books/free-programming-books-fa_IR.md)
+ [Polish / polski / język polski / polszczyzna](books/free-programming-books-pl.md)
Expand Down Expand Up @@ -130,6 +131,7 @@ This project lists books and other resources grouped by genres:
+ [Arabic / al arabiya / العربية](courses/free-courses-ar.md)
+ [Bengali / বাংলা](courses/free-courses-bn.md)
+ [Bulgarian / български](courses/free-courses-bg.md)
+ [Burmese / မြန်မာဘာသာ](courses/free-courses-my.md)
+ [Chinese / 中文](courses/free-courses-zh.md)
+ [English](courses/free-courses-en.md)
+ [Finnish / suomi / suomen kieli](courses/free-courses-fi.md)
Expand Down Expand Up @@ -170,9 +172,8 @@ This project lists books and other resources grouped by genres:

+ [Chinese / 中文](more/free-programming-interactive-tutorials-zh.md)
+ [English](more/free-programming-interactive-tutorials-en.md)
+ [German](more/free-programming-interactive-tutorials-de.md)
+ [German / Deutsch](more/free-programming-interactive-tutorials-de.md)
+ [Japanese / 日本語](more/free-programming-interactive-tutorials-ja.md)
+ [Portuguese (Brazil)](more/free-programming-interactive-tutorials-pt_BR.md)
+ [Russian / Русский язык](more/free-programming-interactive-tutorials-ru.md)


Expand All @@ -186,6 +187,7 @@ This project lists books and other resources grouped by genres:
Free Podcasts and Screencasts:

+ [Arabic / al Arabiya / العربية](casts/free-podcasts-screencasts-ar.md)
+ [Burmese / မြန်မာဘာသာ](casts/free-podcasts-screencasts-my.md)
+ [Chinese / 中文](casts/free-podcasts-screencasts-zh.md)
+ [Czech / čeština / český jazyk](casts/free-podcasts-screencasts-cs.md)
+ [Dutch / Nederlands](casts/free-podcasts-screencasts-nl.md)
Expand All @@ -212,7 +214,7 @@ Write, compile and run your code within a browser. Try it out!

+ [Chinese / 中文](more/free-programming-playgrounds-zh.md)
+ [English](more/free-programming-playgrounds.md)
+ [German](more/free-programming-playgrounds-de.md)
+ [German / Deutsch](more/free-programming-playgrounds-de.md)

## Translations

Expand Down
4 changes: 3 additions & 1 deletion books/free-programming-books-bn.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
### C

* [বাংলায় C প্রোগ্রামিং ল্যাঙ্গুয়েজ শেখার কোর্স](https://c.howtocode.dev) - Jakir Hossain, et al.
* [Computer Programming «কম্পিউটার প্রোগ্রামিং ১ম খণ্ড»](https://cpbook.subeen.com) - Tamim Shahriar Subeen (HTML)


### <a id="cpp"></a>C++
Expand All @@ -46,6 +47,7 @@
### JavaScript

* [জাভাস্ক্রিপ্ট ল্যাঙ্গুয়েজের এর ব্যাসিক, অ্যাডভান্স](https://js.howtocode.dev) - Nuhil Mehdi (howtocode.dev)
* [হাতেকলমে জাভাস্ক্রিপ্ট: সম্পূর্ণ বাংলায় হাতেকলমে জাভাস্ক্রিপ্ট শিখুন](https://zonayed.js.org) - Zonayed Ahmed (HTML)


### Machine Learning
Expand All @@ -64,6 +66,7 @@

### Python

* [পাইথন প্রোগ্রামিং বই](http://pybook.subeen.com) - Tamim Shahriar Subeen
* [বাংলায় পাইথন](https://python.howtocode.dev) - Nuhil Mehdy
* [সহজ ভাষায় পাইথন ৩](https://python.maateen.me) - Maksudur Rahman Maateen
* [হুকুশ পাকুশের প্রোগ্রামিং শিক্ষা](https://hukush-pakush.com) - Ikram Mahmud (HTML)
Expand All @@ -73,4 +76,3 @@

* [এসকিউএল পরিচিতি(SQL Introduction in Bangla)](https://www.sattacademy.com/sql/sql-intro.php) - Satt Academy
* [বাংলায় SQL টিউটোরিয়াল](https://sql.howtocode.dev) - Saiful, et al.

3 changes: 1 addition & 2 deletions books/free-programming-books-de.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,9 +205,8 @@
### Python

* [A Byte of Python - Einführung in Python](https://sourceforge.net/projects/abop-german.berlios/files) - Swaroop C H, Bernd Hengelein, Lutz Horn, Bernhard Krieger, Christoph Zwerschke (PDF)
* [Einführung in Python](http://www.mschimmels.de/eigeneDateien/Python-Kurs.pdf) - Martin Schimmels (PDF)
* [Programmiereinführung mit Python](http://opentechschool.github.io/python-beginners/de) (Online)
* [PyQt und PySide: GUI und Anwendungsentwicklung mit Python und Qt](https://github.com/pbouda/pyqt-und-pyside-buch) - Peter Bouda, Michael Palmer, Dr. Markus Wirz (TeX, [PDF](https://github.com/pbouda/pyqt-und-pyside-buch/releases/latest)) *(:construction: in process)*
* [PyQt und PySide: GUI und Anwendungsentwicklung mit Python und Qt](https://github.com/pbouda/pyqt-und-pyside-buch) - Peter Bouda, Michael Palmer, Markus Wirz (TeX, [PDF](https://github.com/pbouda/pyqt-und-pyside-buch/releases/latest)) *(:construction: in process)*
* [Python 3 - Das umfassende Handbuch](http://openbook.rheinwerk-verlag.de/python) - Johannes Ernesti, Peter Kaiser (Online)


Expand Down
5 changes: 2 additions & 3 deletions books/free-programming-books-es.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
#### Algoritmos y Estructuras de Datos

* [Algoritmos y Programación (Guía para docentes)](http://www.eduteka.org/pdfdir/AlgoritmosProgramacion.pdf) - Juan Carlos López García (PDF)
* [Análisis, Diseño e Implantación de Algoritmos](http://fcasua.contad.unam.mx/apuntes/interiores/docs/20181/informatica/1/LI_1164_06097_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdf) - Universidad Nacional Autónoma de México, Dr. Juan Alberto Adam Siade, Gilberto Manzano Peñaloza, René Montesano Brand, Luis Fernando Zúñiga López, et al. (PDF)
* [Análisis, Diseño e Implantación de Algoritmos](http://fcasua.contad.unam.mx/apuntes/interiores/docs/20181/informatica/1/LI_1164_06097_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdf) - Universidad Nacional Autónoma de México, Juan Alberto Adam Siade, Gilberto Manzano Peñaloza, René Montesano Brand, Luis Fernando Zúñiga López, et al. (PDF)
* [Apuntes de Algoritmos y Estructuras de Datos](https://openlibra.com/en/book/download/apuntes-de-algoritmos-y-estructuras-de-datos) - Alejandro Santos (PDF)
* [Breves Notas sobre Análisis de Algoritmos](https://lya.fciencias.unam.mx/jloa/publicaciones/analisisdeAlgoritmos.pdf) - Universidad Nacional Autónoma de México, Jorge L. Ortega Arjona (PDF)
* [Fundamentos de Informática y Programación](https://informatica.uv.es/docencia/fguia/TI/Libro/Libro_Fundamentos_Inform_Program.htm) - Gregorio Martín Quetglás, Francisco Toledo Lobo, Vicente Cerverón Lleó (HTML)
Expand Down Expand Up @@ -104,7 +104,6 @@

#### Metodologías de desarrollo de software

* [Compendio de Ingeniería del Software](http://www.navegapolis.com/files/cis.pdf) (PDF)
* [Ingeniería de Software: Una Guía para Crear Sistemas de Información](https://web.archive.org/web/20150824055042/http://www.wolnm.org/apa/articulos/Ingenieria_Software.pdf) - Alejandro Peña Ayala (PDF)
* [Scrum & Extreme Programming (para programadores)](https://web.archive.org/web/20140209204645/http://www.cursosdeprogramacionadistancia.com/static/pdf/material-sin-personalizar-agile.pdf) - Eugenia Bahit (PDF)
* [Scrum Level](https://scrumlevel.com/files/scrumlevel.pdf) - Juan Palacio, Scrum Manager (PDF) [(EPUB)](https://scrumlevel.com/files/scrumlevel.epub)
Expand All @@ -125,7 +124,7 @@
#### Sistemas Operativos

* [Fundamentos de Sistemas Operativos](http://sistop.org/pdf/sistemas_operativos.pdf) - Gunnar Wolf, Esteban Ruiz, Federico Bergero, Erwin Meza, et al. (PDF)
* [Sistemas Operativos](http://sistop.gwolf.org/html/biblio/Sistemas_Operativos_-_Luis_La_Red_Martinez.pdf) - Dr. David Luis la Red Martinez (PDF)
* [Sistemas Operativos](http://sistop.gwolf.org/html/biblio/Sistemas_Operativos_-_Luis_La_Red_Martinez.pdf) - David Luis la Red Martinez (PDF)


### Android
Expand Down
3 changes: 2 additions & 1 deletion books/free-programming-books-fa_IR.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@

### Java

* [آموزش برنامه‌نویسی جاوا](https://javacup.ir/javacup-training-videos/)
* [آموزش اسپرينگ](https://github.com/raaminz/training/tree/master/slides/spring)
* [آموزش جاوا از صفر](https://toplearn.com/courses/85/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B2-%D8%B5%D9%81%D8%B1)
* [آموزش هايبرنيت](https://github.com/raaminz/training/tree/master/slides/hibernate)


### JavaScript
Expand Down
29 changes: 18 additions & 11 deletions books/free-programming-books-fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
* [IDE et éditeurs de texte](#ide-et-editeurs-de-texte)
* [Logiciels libres](#logiciels-libres)
* [Makefile](#makefile)
* [Mathématiques](#mathématiques)
* [Pédagogie pour les enfants et adolescents](#pédagogie-pour-les-enfants-et-adolescents)
* [Théorie des langages](#théorie-des-langages)
* [Ada](#ada)
Expand All @@ -19,7 +20,7 @@
* [Git](#git)
* [Go](#go)
* [Haskell](#haskell)
* [HTML and CSS](#css)
* [HTML and CSS](#html-and-css)
* [Java](#java)
* [JavaScript](#javascript)
* [jQuery](#jquery)
Expand All @@ -31,7 +32,6 @@
* [TeX](#tex)
* [Lisp](#lisp)
* [Lua](#lua)
* [Mathématiques](#math%C3%A9matiques)
* [Meteor](#meteor)
* [Perl](#perl)
* [PHP](#php)
Expand All @@ -47,7 +47,7 @@
* [Scratch](#scratch)
* [SPIP](#spip)
* [SQL](#sql)
* [Systèmes d'exploitation](#systemes-d-exploitation)
* [Systèmes d'exploitation](#systèmes-dexploitation)
* [TEI](#tei)


Expand Down Expand Up @@ -76,7 +76,7 @@

#### Logiciels libres

* [Histoires et cultures du Libre](http://framabook.org/histoiresetculturesdulibre/)
* [Histoires et cultures du Libre](https://archives.framabook.org/histoiresetculturesdulibre/) - Camille Paloque-Berges, Christophe Masutti, `edt.:` Framasoft (coll. Framabook)
* [Option libre. Du bon usage des licences libres](http://framabook.org/optionlibre-dubonusagedeslicenceslibres/) - Jean Benjamin
* [Produire du logiciel libre](http://framabook.org/produire-du-logiciel-libre-2/) - Karl Fogel
* [Richard Stallman et la révolution du logiciel libre](http://framabook.org/richard-stallman-et-la-revolution-du-logiciel-libre-2/) - R.M. Stallman, S. Williams, C. Masutti
Expand All @@ -88,9 +88,14 @@
* [Introduction aux Makefile](http://eric.bachard.free.fr/UTBM_LO22/P07/C/Documentation/C/make/intro_makefile.pdf) (PDF)


#### Mathématiques

* [Approfondissements de lycée](https://fr.wikibooks.org/wiki/Approfondissements_de_lycée) - Wikibooks contributors, Zhuo Jia Dai, `ctb.:` R3m0t, `ctb.:` Martin Warmer (HTML) (:construction: *in process*)


#### Pédagogie pour les enfants et adolescents

* [Activités débranchées](https://pixees.fr/?cat=612) Catalogue de ressource pour apprendre l'informatique sans ordinateur.
* [Activités débranchées](https://pixees.fr/?cat=612)
* [Apprendre l'informatique sans ordinateur](https://interstices.info/enseigner-et-apprendre-les-sciences-informatiques-a-lecole/) - Tim Bell, Ian H. Witten, `trl.:` Mike Fellows


Expand All @@ -108,7 +113,7 @@

### Bash / Shell

* [Guide avancé d'écriture des scripts Bash](http://abs.traduc.org/abs-fr/)
* [Guide avancé d'écriture des scripts Bash](https://abs.traduc.org/abs-fr/) - Mendel Cooper, `trl.:` Adrien Rebollo et al.
* [La programmation Shell](https://frederic-lang.developpez.com/tutoriels/linux/prog-shell/) - Frederic Lang, Idriss Neumann


Expand All @@ -130,7 +135,7 @@
### Chaîne de blocs / Blockchain

* [Maîtriser Bitcoin: Programmer la chaîne de blocs publique](https://bitcoin.maitriser.ca) - Andreas M. Antonopoulos, Serafim Dos Santos (asciidoc, HTML)
* [Maîtriser Ethereum: Développer des contrats intelligents et des DApps](https://ethereum.maitriser.ca) - Andreas M. Antonopoulos, Dr. Gavin Wood, Serafim Dos Santos (asciidoc, HTML)
* [Maîtriser Ethereum: Développer des contrats intelligents et des DApps](https://ethereum.maitriser.ca) - Andreas M. Antonopoulos, Gavin Wood, Serafim Dos Santos (asciidoc, HTML)


### Coq
Expand Down Expand Up @@ -179,12 +184,12 @@
### Haskell

* [A Gentle Introduction to Haskell](http://gorgonite.developpez.com/livres/traductions/haskell/gentle-haskell/) - Paul Hudak, John Peterson, Joseph Fasel, `trl.:` Nicolas Vallée, Gnux, ggnore, fearyourself, Joyeux-oli, Kikof, khayyam90
* [Apprendre Haskell vous fera le plus grand bien !](http://lyah.haskell.fr)
* [Apprendre Haskell vous fera le plus grand bien !](https://lyah.haskell.fr) - Miran Lipovača, `trl.:` Valentin Robert


### HTML and CSS

* [Apprendre les mises en page CSS](http://fr.learnlayout.com)
* [Apprendre les mises en page CSS](https://fr.learnlayout.com) - Greg Smith, `dsr.:` Isaac Durazo, `trl.:` Joël Matelli (HTML)


### (La)TeX et associés
Expand Down Expand Up @@ -269,6 +274,7 @@
* [Apprendre à programmer avec Python](http://inforef.be/swi/python.htm) - Gerard Swinnen
* [Introduction à la programmation](https://self-learning.info.ucl.ac.be/index/info1-exercises) (Inscription gratuite sur le site. Pour réaliser les exercices sur INGInious.org, créez-vous un compte gratuitement et liez ensuite votre compte self-learning à votre compte INGInious. )
* [Le guide de l’auto-stoppeur pour Python!](https://python-guide-fr.readthedocs.io/fr/latest/) - Kenneth Reitz
* [Python Programming in French](https://www.youtube.com/playlist?list=PL0mGkrTWmp4ugGM9fiZjEuzMFeKD6Rh5G) - Data Scientist Nigeria
* [Une introduction à Python 3](https://perso.limsi.fr/pointal/python:courspython3) - Bob Cordeau, Laurent Pointal


Expand Down Expand Up @@ -312,17 +318,18 @@

### Scratch

* [Informatique Créative](https://pixees.fr/programmation-creative-en-scratch/)
* [Informatique Créative](https://pixees.fr/programmation-creative-en-scratch/) - Christan Balch, Michelle Chung, Karen Brennan, `trl.:` Inria, Provence Traduction (PDF, PPTX)


### SPIP

* [Programmer avec SPIP](http://programmer.spip.net) - Matthieu Marcimat, collectif SPIP
* [Programmer avec SPIP](https://programmer.spip.net) - Matthieu Marcimat, collectif SPIP


### SQL

* [Cours complet pour apprendre les différents types de bases de données et le langage SQL](https://sgbd.developpez.com/tutoriels/cours-complet-bdd-sql/) - Jacques Le Maitre
* [Cours de SQL base du langage SQL et des bases de données](https://sql.sh) - Tony Archambeau
* [Only SQL. Tout ce que vous avez toujours voulu savoir sur les SGBD sans jamais avoir osé le demander.](https://framabook.org/not-only-sql/) - Vincent Lozano, Éric Georges


Expand Down
6 changes: 6 additions & 0 deletions books/free-programming-books-hi.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
* [Computer architecture](#computer-architecture)
* [Data Structure and Algorithms](#data-structure-and-algorithms)
* [Java](#java)
* [JavaScript](#javascript)
* [Linux](#linux)
* [Networking](#networking)
* [Php](#php)
Expand Down Expand Up @@ -40,6 +41,11 @@
* [Java \| Hindi](https://www.learnhindituts.com/java) - LearnHindiTuts.com


### JavaScript

* [JavaScript \| Hindi](https://www.tutorialinhindi.com/javascript-tutorial-hindi/) - TutorialinHindi.com


### Linux

* [Linux Commands \| Hindi](https://ehindistudy.com/2022/06/24/linux-commands-hindi/) - Vinay Bhatt
Expand Down
8 changes: 8 additions & 0 deletions books/free-programming-books-hy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
### Index

* [Python](#python)


### Python

* [Python Ուղեցույց](https://armath.am/uploads/E-learning/Robotics/RaspberryPi/python.pdf) - Վարդուհի Անդրեասյան (PDF)
Loading

0 comments on commit 5f1ec2d

Please sign in to comment.