Skip to content

Commit

Permalink
Merge branch 'main' into maintenance/homogenize-in-process-notes
Browse files Browse the repository at this point in the history
  • Loading branch information
eshellman authored Nov 15, 2022
2 parents fbe86b1 + 60111c6 commit c3d5495
Show file tree
Hide file tree
Showing 118 changed files with 5,237 additions and 832 deletions.
12 changes: 11 additions & 1 deletion .github/actions/awesomebot-gh-summary-action/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,18 @@ runs:
# Loop ForEach files
$env:INPUT_FILES -split $env:INPUT_SEPARATOR | ForEach {
$file = $_
if ($file -match "\s+" ) {
continue # is empty string
}
$abr_file = $env:INPUT_AB_ROOT + "/ab-results-" + ($file -replace "[/\\]","-") + "-markdown-table.json"
$json = Get-Content $abr_file | ConvertFrom-Json
try {
$json = Get-Content $abr_file | ConvertFrom-Json
} catch {
$message = $_
echo "::error ::$message" # Notify as GitHub Actions annotation
continue # Don't crash!!
}
$text += "`n`n"
if ("true" -eq $json.error) {
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/check-urls.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ on:
permissions:
contents: read

# This allows a subsequently queued workflow run to interrupt previous runs
# This allows a subsequently queued workflow run to interrupt/wait for previous runs
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref || github.run_id }}'
cancel-in-progress: true
group: '${{ github.workflow }} @ ${{ github.run_id }}'
cancel-in-progress: false # true = interrupt, false = wait

jobs:
check-urls:
Expand All @@ -24,14 +24,14 @@ jobs:
# NOTE: tj-actions/changed-files.
# For push events you need to include fetch-depth: 0 | 2 depending on your use case.
# 0: retrieve all history for all branches and tags
# 1: retrieve current commit (by default)
# 2: retrieve the preceding commit
# 1: retrieve only current commit (by default)
# 2: retrieve until the preceding commit
- name: Determine workflow parameters
id: init-params
run: |
echo "::set-output name=fetch_depth::0";
if [ "${{ github.event_name }}" == "pull_request" ]; then
echo "::set-output name=fetch_depth::1";
echo "::set-output name=fetch_depth::0";
fi
- uses: actions/checkout@v3
Expand All @@ -40,7 +40,7 @@ jobs:

- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v29.0.7
uses: tj-actions/changed-files@v30.0.0
with:
separator: " "

Expand Down
71 changes: 71 additions & 0 deletions .github/workflows/detect-conflicting-prs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: "Detect conflicting PRs"

on:
workflow_dispatch: # manually
# So that PRs touching the same files as the push are updated
push:
# So that the `dirtyLabel` is removed if conflicts are resolved
pull_request_target: # - A pull request (even with conflicts)
types:
- synchronize # pushing more commits

permissions:
# no checkouts/branching needed
contents: none
# need by "eps1lon/actions-label-merge-conflict" to manage PR label/comments
pull-requests: write

# This allows a subsequently queued workflow run to interrupt/wait for previous runs
concurrency:
group: '${{ github.workflow }}'
cancel-in-progress: false # true: interrupt, false = wait for

jobs:
detect-prs:
name: Detect
if: ${{ github.actor != 'dependabot[bot]' }} # avoid dependabot PRs
runs-on: ubuntu-latest
steps:

- name: Label conflicting PRs that are open
id: pr-labeler
uses: eps1lon/[email protected]
with:
repoToken: ${{ secrets.GITHUB_TOKEN }}
retryAfter: 30 # seconds
retryMax: 5 # atemps
dirtyLabel: conflicts
commentOnDirty: |
Oh no 😟! Conflicts have been found.
Please 🙏, take a moment and [address the merge conflicts](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts) of your pull request before we can evaluate it again.
Thanks in advance for your effort and patience ❤️!
continueOnMissingPermissions: true

- name: Print outputs
run: echo ${{ join(steps.pr-labeler.outputs.*, ',') }}

- name: Set PRs outputs
id: set-prs
run: |
echo "$INPUT_PRS" \
| jq --compact-output --raw-output 'to_entries | map({number: .key, dirty: .value})' \
| sed -e 's/^/::set-output name=prs::/'
echo "$INPUT_PRS" \
| jq --raw-output 'to_entries | length' \
| sed -e 's/^/::set-output name=prs-len::/'
env:
INPUT_PRS: ${{ steps.pr-labeler.outputs.prDirtyStatuses }}

- name: Write job summary
run: |
echo "### Pull Request statuses" \
>> $GITHUB_STEP_SUMMARY
# render json array to a Markdown table with an optional "No records" message if empty
echo "$INPUT_PRS" \
| jq --raw-output 'map("| [#\(.number)](\(env.GITHUB_PUBLIC_URL)/\(.number)) | \(if (.dirty) then "❌" else "✔️" end) |") | join("\n") | if (. == "") then "\nNo records.\n" else "\n| PR | Mergeable? |\n|---:|:----------:|\n\(.)\n" end' \
>> $GITHUB_STEP_SUMMARY
env:
GITHUB_PUBLIC_URL: ${{ format('{0}/{1}/pull', github.server_url, github.repository) }}
INPUT_PRS: ${{ steps.set-prs.outputs.prs }}
4 changes: 2 additions & 2 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
pull-requests: write
steps:
- name: Stale issues
uses: actions/stale@v5
uses: actions/stale@v6
id: stale-issues
with:
debug-only: ${{ github.event.inputs.debug-only == 'true' }}
Expand Down Expand Up @@ -84,7 +84,7 @@ jobs:
run: echo ${{ join(steps.stale-issues.outputs.*, ',') }}

- name: Stale Pull Requests
uses: actions/stale@v5
uses: actions/stale@v6
id: stale-prs
with:
debug-only: ${{ github.event.inputs.debug-only == 'true' }}
Expand Down
32 changes: 20 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 
[![License: CC BY 4.0](https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by/4.0/) 
<!-- [![Hacktoberfest 2021 stats](https://img.shields.io/github/hacktoberfest/2021/EbookFoundation/free-programming-books?label=Hacktoberfest+2021)](https://github.com/EbookFoundation/free-programming-books/pulls?q=is%3Apr+is%3Amerged+created%3A2021-10-01..2021-10-31) -->
[![Hacktoberfest 2022 stats](https://img.shields.io/github/hacktoberfest/2022/EbookFoundation/free-programming-books?label=Hacktoberfest+2022)](https://github.com/EbookFoundation/free-programming-books/pulls?q=is%3Apr+is%3Amerged+created%3A2022-10-01..2022-10-31)

</div>

Expand All @@ -20,7 +20,6 @@ This page is available as an easy-to-read website. Access it by clicking on [![h
</form>
</div>


## Intro

This list was originally a clone of [StackOverflow - List of Freely Available Programming Books](https://web.archive.org/web/20140606191453/http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books/392926) with contributions from Karan Bhangui and George Stocker.
Expand Down Expand Up @@ -58,14 +57,16 @@ Click on these badges to see how you might be able to help:

</div>


## How to Share

+ [Share on Twitter](http://twitter.com/intent/tweet?text=https://github.com/EbookFoundation/free-programming-books%0AFree%20Programming%20Books)
+ [Share on Facebook](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 LinkedIn](http://www.linkedin.com/shareArticle?mini=true&url=https://github.com/EbookFoundation/free-programming-books&title=Free%20Programming%20Books&summary=&source=)
+ [Share on Telegram](https://t.me/share/url?url=https://github.com/EbookFoundation/free-programming-books)
<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://t.me/share/url?url=https://github.com/EbookFoundation/free-programming-books">Share on Telegram</a><br>

</div>

## Resources

Expand All @@ -77,7 +78,6 @@ This project lists books and other resources grouped by genres:

[English, By Subject](books/free-programming-books-subjects.md)


#### Other Languages

+ [Arabic / al arabiya / العربية](books/free-programming-books-ar.md)
Expand All @@ -87,6 +87,7 @@ This project lists books and other resources grouped by genres:
+ [Burmese / မြန်မာဘာသာ](books/free-programming-books-my.md)
+ [Chinese / 中文](books/free-programming-books-zh.md)
+ [Czech / čeština / český jazyk](books/free-programming-books-cs.md)
+ [Catalan / catalan/ català](books/free-programming-books-ca.md)
+ [Danish / dansk](books/free-programming-books-da.md)
+ [Dutch / Nederlands](books/free-programming-books-nl.md)
+ [Estonian / eesti keel](books/free-programming-books-et.md)
Expand Down Expand Up @@ -114,24 +115,24 @@ This project lists books and other resources grouped by genres:
+ [Spanish / español / castellano](books/free-programming-books-es.md)
+ [Swedish / Svenska](books/free-programming-books-sv.md)
+ [Tamil / தமிழ்](books/free-programming-books-ta.md)
+ [Telugu / తెలుగు](books/free-programming-books-te.md)
+ [Thai / ไทย](books/free-programming-books-th.md)
+ [Turkish / Türkçe](books/free-programming-books-tr.md)
+ [Ukrainian / Українська](books/free-programming-books-uk.md)
+ [Vietnamese / Tiếng Việt](books/free-programming-books-vi.md)


### Cheat Sheets

+ [All Languages](more/free-programming-cheatsheets.md)


### Free Online Courses

+ [Arabic / al arabiya / العربية](courses/free-courses-ar.md)
+ [Bengali / বাংলা](courses/free-courses-bn.md)
+ [Bulgarian / български](courses/free-courses-bg.md)
+ [Chinese / 中文](courses/free-courses-zh.md)
+ [English](courses/free-courses-en.md)
+ [Finnish](courses/free-courses-fi.md)
+ [Finnish / suomi / suomen kieli](courses/free-courses-fi.md)
+ [French / français](courses/free-courses-fr.md)
+ [German / Deutsch](courses/free-courses-de.md)
+ [Greek / ελληνικά](courses/free-courses-el.md)
Expand All @@ -144,14 +145,18 @@ This project lists books and other resources grouped by genres:
+ [Khmer / ភាសាខ្មែរ](courses/free-courses-km.md)
+ [Korean / 한국어 [韓國語]](courses/free-courses-ko.md)
+ [Malayalam / മലയാളം](courses/free-courses-ml.md)
+ [Nepali / नेपाली](courses/free-courses-ne.md)
+ [Norwegian / Norsk](courses/free-courses-no.md)
+ [Persian / Farsi (Iran) / فارسى](courses/free-courses-fa_IR.md)
+ [Polish / polski / język polski / polszczyzna](courses/free-courses-pl.md)
+ [Portuguese (Brazil)](courses/free-courses-pt_BR.md)
+ [Portuguese (Portugal)](courses/free-courses-pt_PT.md)
+ [Russian / Русский язык](courses/free-courses-ru.md)
+ [Sinhala / සිංහල](courses/free-courses-si.md)
+ [Spanish / español / castellano](courses/free-courses-es.md)
+ [Swedish / svenska](courses/free-courses-sv.md)
+ [Tamil / தமிழ்](courses/free-courses-ta.md)
+ [Telugu / తెలుగు](courses/free-courses-te.md)
+ [Thai / ภาษาไทย](courses/free-courses-th.md)
+ [Turkish / Türkçe](courses/free-courses-tr.md)
+ [Ukrainian / Українська](courses/free-courses-uk.md)
Expand All @@ -176,8 +181,10 @@ This project lists books and other resources grouped by genres:

Free Podcasts and Screencasts:

+ [Arabic / al arabiya / العربية](casts/free-podcasts-screencasts-ar.md)
+ [Arabic / al Arabiya / العربية](casts/free-podcasts-screencasts-ar.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)
+ [English](casts/free-podcasts-screencasts-en.md)
+ [Finnish / Suomi](casts/free-podcasts-screencasts-fi.md)
+ [French / français](casts/free-podcasts-screencasts-fr.md)
Expand All @@ -192,6 +199,7 @@ Free Podcasts and Screencasts:
+ [Spanish / español / castellano](casts/free-podcasts-screencasts-es.md)
+ [Swedish / Svenska](casts/free-podcasts-screencasts-sv.md)
+ [Turkish / Türkçe](casts/free-podcasts-screencasts-tr.md)
+ [Ukrainian / Українська](casts/free-podcasts-screencasts-uk.md)


### Programming Playgrounds
Expand Down
49 changes: 23 additions & 26 deletions books/free-programming-books-ar.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
* [DB & DBMS](#db--dbms)
* [HTML and CSS](#html-and-css)
* [Introduction to Programming in Arabic](#introduction-to-programming-in-arabic)
* [Java](#java)
* [JavaScript](#javascript)
* [Vue.js](#vuejs)
* [Linux](#linux)
* [Open Source Software](#open-source-software)
* [Operating System](#operating-systems)
* [PHP](#php)
* [Symfony](#symfony)
* [Python](#python)
* [Raspberry Pi](#raspberry-pi)
* [Ruby](#ruby)
Expand All @@ -23,7 +23,6 @@
* [SEO](#seo)
* [SQL](#sql)
* [PostgreSQL](#postgresql)
* [UI/UX](#uiux)


### Arduino
Expand Down Expand Up @@ -59,6 +58,12 @@
* [مختصر دليل لغات البرمجة](https://alyassen.github.io/Brief-guide-to-programming-languages-v1.2.4.pdf) - Ali Al-Yassen&rlm; (PDF)


### Java

* [تفهيم الخوارزميات – الجزء الأول](https://librebooks.org/tafheem-alkhawazimyat/) - جمال بن نوار (PDF)
* [تفهيم الخوارزميات – الجزء الثاني](https://librebooks.org/tafheem-alkhawazimyat-p2/) - جمال بن نوار (PDF)


### JavaScript

* [تعلم JavaScript&rlm;](https://itwadi.com/node/3002) - Cody Lindley, عبداللطيف ايمش (PDF)
Expand All @@ -82,28 +87,23 @@

### Open Source Software

* [الأبعاد الاستراتيجية للبرمجيات الحرة مفتوحة المصدر](http://librebooks.org/strategic-dimensions-of-free-and-open-source-software/)
* [الحريات الرقمية - المفاهيم الرئيسية](http://librebooks.org/digital-freedoms-main-concepts/)
* [المصادر المفتوحة خيارات بلا حدود](http://librebooks.org/opensource-ultimate-options/)
* [تعرف على البرمجيات الحرة](http://librebooks.org/know-free-software/)
* [دليل البرمجيات الحرة مفتوحة](http://librebooks.org/free-opensource-guide/)
* [نبذة عن رخص البرمجيات الحرة](http://librebooks.org/bref-about-foss-licenses/)
* [الأبعاد الاستراتيجية للبرمجيات الحرة مفتوحة المصدر](https://librebooks.org/strategic-dimensions-of-free-and-open-source-software/) - فيجن للأنظمة المتقدمة (PDF)
* [الحريات الرقمية - المفاهيم الرئيسية](https://librebooks.org/digital-freedoms-main-concepts/) - محمد الطاهر (PDF)
* [المصادر المفتوحة خيارات بلا حدود](https://librebooks.org/opensource-ultimate-options/) - محمد أنس طويلة (PDF)
* [تعرف على البرمجيات الحرة](https://librebooks.org/know-free-software/) - فهد السعيدي (PDF)
* [دليل البرمجيات الحرة مفتوحة](https://www.freeopensourceguide.com) - أحمد م. أبوزيد (PDF)
* [نبذة عن رخص البرمجيات الحرة](https://librebooks.org/bref-about-foss-licenses/) - جلال شفرور (PDF)


### Operating Systems

* [المقدمة في تحليل وتصميم أنظمة](http://librebooks.org/intro-to-os-analysis-and-design/)
* [أنظمة التشغيل للمبرمجين](https://academy.hsoub.com/files/24-أنظمة-التشغيل-للمبرمجين/) - Allen B. Downey، ترجمة علا عباس (PDF)
* [المقدمة في تحليل وتصميم أنظمة](https://librebooks.org/intro-to-os-analysis-and-design/) - Ahmed Lexis
* [أنظمة التشغيل للمبرمجين](https://academy.hsoub.com/files/24-أنظمة-التشغيل-للمبرمجين/) - Allen B. Downey ,ترجمة علا عباس (PDF)


### PHP

* [تعلم البرمجة بلغة PHP](http://librebooks.org/learn-programming-with-php/)


#### Symfony

* [سيمفوني 5 : المسار السريع](https://symfony.com/doc/5.0/the-fast-track/ar/index.html)
* [تعلم البرمجة بلغة PHP](https://librebooks.org/learn-programming-with-php/) - Ahmed Abu Al-Saud , Abdul Latif Amish


### Python
Expand All @@ -114,30 +114,31 @@
### Raspberry Pi

* [احترف الرازبيري باي](https://www.ev-center.com/uploads/2/1/2/6/21261678/كتاب_احترف_الرازبيري_باي.pdf) (PDF)
* [راسبيري باي السهل](http://librebooks.org/simply-raspberry-pi/)
* [راسبيري باي السهل](https://librebooks.org/simply-raspberry-pi/) - Abdullah Ali Abdullah (PDF)


### Ruby

* [مقدمة في روبي](http://librebooks.org/intro-to-ruby/)
* [مقدمة في روبي](https://librebooks.org/intro-to-ruby/) - Ahmed Youssef (PDF)


### Scratch

* [كتاب احترف سكراتش](http://www.ev-center.com/uploads/2/1/2/6/21261678/scratch.pdf) (PDF)
* [تعلم البرمجة مع القط سكراتش](https://librebooks.org/learn-programming-with-scratch-cat/) - نورا حاتم (PDF)
* [كتاب احترف سكراتش](https://www.ev-center.com/uploads/2/1/2/6/21261678/scratch.pdf) (PDF)


### Security

* [تأمين الشبكات اللاسلكية للمستخدم المنزلي](https://mohamedation.github.io/securing-wifi) - Mohamed Adel&rlm; (HTML)
* [تقنيات الاختراق المادي](http://librebooks.org/physical-hacking-techniques/)
* [تقنيات الاختراق المادي](https://librebooks.org/physical-hacking-techniques/) - Abdullah Ali Abdullah (PDF)
* [دليل الأمان الرقمي](https://academy.hsoub.com/files/20-%D8%AF%D9%84%D9%8A%D9%84-%D8%A7%D9%84%D8%A3%D9%85%D8%A7%D9%86-%D8%A7%D9%84%D8%B1%D9%82%D9%85%D9%8A/)
* [عُدَّة الأمان الرقمي](http://librebooks.org/security-in-a-box/)
* [عُدَّة الأمان الرقمي](https://librebooks.org/security-in-a-box/) - working group


### SEO

* [تحسين محركات البحث SEO - دليل المبتدئين](http://librebooks.org/search-engine-optimization-seo-starter-guide-ar/)
* [تحسين محركات البحث SEO - دليل المبتدئين](https://librebooks.org/search-engine-optimization-seo-starter-guide-ar/) - The Google


### SQL
Expand All @@ -151,8 +152,4 @@
* [بوستجريسكل كتاب الوصفات](https://itwadi.com/PostgreSQL_Cookbook) - Chitij Chauhan&rlm; (PDF)


### UI/UX

* [مدخل إلى تجربة المستخدم](https://academy.hsoub.com/files/11-مدخل-إلى-تجربة-المستخدم-user-experience-ux/)

</div>
Loading

0 comments on commit c3d5495

Please sign in to comment.