{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":648774225,"defaultBranch":"main","name":"free-programming-books","ownerLogin":"KairoQalb","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2023-06-02T19:27:10.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/91794365?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1690312958.0","currentOid":""},"activityList":{"items":[{"before":"ccd4f2caa2420ef77375b8d76a6b2ce0d434de4b","after":"bf60979aa3e5cccfca357e4240a63de37ca89a3c","ref":"refs/heads/main","pushedAt":"2023-10-29T17:42:27.000Z","pushType":"push","commitsCount":566,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Update free-courses-en.md (#10875)\n\n* Update free-courses-en.md\r\n\r\n## What does this PR do?\r\nAdd web accessibility resource(s)\r\n\r\n## For resources\r\n### Description\r\nWeb Accessibility – What It Is and How to Design for It\r\n\r\n### Why is this valuable (or not)?\r\nYes, this is valuable.\r\n\r\n### How do we know it's really free?\r\nIt is available on YouTube.\r\n\r\n### For book lists, is it a book? For course lists, is it a course? etc.\r\nIt is a tutorial.\r\n\r\n## Checklist:\r\n- [ ] Read our [contributing guidelines](https://github.com/EbookFoundation/free-programming-books/blob/main/docs/CONTRIBUTING.md).\r\n- [ ] [Search](https://ebookfoundation.github.io/free-programming-books-search/) for duplicates.\r\n- [ ] Include author(s) and platform where appropriate.\r\n- [ ] Put lists in alphabetical order, correct spacing.\r\n- [ ] Add needed indications (PDF, access notes, under construction).\r\n- [ ] Used an informative name for this pull request.\r\n\r\n## Follow-up\r\n\r\n- Check the status of GitHub Actions and resolve any reported warnings!\r\n\r\n* Update free-courses-en.md","shortMessageHtmlLink":"Update free-courses-en.md (EbookFoundation#10875)"}},{"before":"4663ebb9ced86fb65963877b3b316cdd8563e1f9","after":"ccd4f2caa2420ef77375b8d76a6b2ce0d434de4b","ref":"refs/heads/main","pushedAt":"2023-09-23T13:48:06.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Added Bangla C programming course (#9516)\n\n* Update free-programming-books-bn.md\r\n\r\n* Update books/free-programming-books-bn.md\r\n\r\nCo-authored-by: Eric Hellman \r\n\r\n---------\r\n\r\nCo-authored-by: Eric Hellman ","shortMessageHtmlLink":"Added Bangla C programming course (EbookFoundation#9516)"}},{"before":"d4f0fd0322c0448f91543395cde312eded1a114d","after":"4663ebb9ced86fb65963877b3b316cdd8563e1f9","ref":"refs/heads/main","pushedAt":"2023-08-26T21:18:45.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Update free-programming-books-zh.md (#9507)\n\n* Update free-programming-books-zh.md\r\n\r\n* Update free-programming-books-zh.md\r\n\r\n* Update free-programming-books-zh.md\r\n\r\n* Update free-programming-books-zh.md\r\n\r\n* Update free-programming-books-zh.md\r\n\r\n* Update free-programming-books-zh.md","shortMessageHtmlLink":"Update free-programming-books-zh.md (EbookFoundation#9507)"}},{"before":"b4faec505d89ebd52fbee60c5e6763531345f582","after":"d4f0fd0322c0448f91543395cde312eded1a114d","ref":"refs/heads/main","pushedAt":"2023-08-07T15:36:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"chore(deps): bump tj-actions/changed-files from 37.4.0 to 37.5.1 (#9484)\n\nBumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 37.4.0 to 37.5.1.\r\n- [Release notes](https://github.com/tj-actions/changed-files/releases)\r\n- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)\r\n- [Commits](https://github.com/tj-actions/changed-files/compare/v37.4.0...v37.5.1)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: tj-actions/changed-files\r\n dependency-type: direct:production\r\n update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"chore(deps): bump tj-actions/changed-files from 37.4.0 to 37.5.1 (Ebo…"}},{"before":"97eaefc0d3260f1fdbcaa78743122dad3eb59f16","after":"b4faec505d89ebd52fbee60c5e6763531345f582","ref":"refs/heads/main","pushedAt":"2023-07-27T15:15:59.751Z","pushType":"push","commitsCount":1,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Add course: Python for OSINT. 21 day course for beginners (#9362) (#9483)\n\n* Add course: Python for OSINT. 21 day course for beginners (#9362)\r\n\r\n* Fix alphabetical ordering in free-courses-en.md\r\n\r\n* Update courses/free-courses-en.md\r\n\r\nCo-authored-by: Eric Hellman \r\n\r\n* Update free-courses-en.md\r\n\r\n* Update free-courses-en.md\r\n\r\n---------\r\n\r\nCo-authored-by: Eric Hellman ","shortMessageHtmlLink":"Add course: Python for OSINT. 21 day course for beginners (EbookFound…"}},{"before":"97eaefc0d3260f1fdbcaa78743122dad3eb59f16","after":"b4faec505d89ebd52fbee60c5e6763531345f582","ref":"refs/heads/main","pushedAt":"2023-07-27T15:15:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Add course: Python for OSINT. 21 day course for beginners (#9362) (#9483)\n\n* Add course: Python for OSINT. 21 day course for beginners (#9362)\r\n\r\n* Fix alphabetical ordering in free-courses-en.md\r\n\r\n* Update courses/free-courses-en.md\r\n\r\nCo-authored-by: Eric Hellman \r\n\r\n* Update free-courses-en.md\r\n\r\n* Update free-courses-en.md\r\n\r\n---------\r\n\r\nCo-authored-by: Eric Hellman ","shortMessageHtmlLink":"Add course: Python for OSINT. 21 day course for beginners (EbookFound…"}},{"before":"ecc77d02f6dab6a5c4204b3a537c8b25f6bed02e","after":"f440bb87dc2cecb6640ed3fab7c1eb701ab41192","ref":"refs/heads/add-python-for-osint-course","pushedAt":"2023-07-27T11:39:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Update free-courses-en.md","shortMessageHtmlLink":"Update free-courses-en.md"}},{"before":"45dfd4af5d4827f482a4c80f13313a43a7d46977","after":"ecc77d02f6dab6a5c4204b3a537c8b25f6bed02e","ref":"refs/heads/add-python-for-osint-course","pushedAt":"2023-07-26T21:37:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Update free-courses-en.md","shortMessageHtmlLink":"Update free-courses-en.md"}},{"before":"3f12d187ef0ac8ee0270c8feacb95e8b5b7cd4d7","after":"45dfd4af5d4827f482a4c80f13313a43a7d46977","ref":"refs/heads/add-python-for-osint-course","pushedAt":"2023-07-26T16:22:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Update courses/free-courses-en.md\n\nCo-authored-by: Eric Hellman ","shortMessageHtmlLink":"Update courses/free-courses-en.md"}},{"before":"cfdbbc8e595d1e96ccb19b7e7684c770757ce061","after":"3f12d187ef0ac8ee0270c8feacb95e8b5b7cd4d7","ref":"refs/heads/add-python-for-osint-course","pushedAt":"2023-07-25T21:04:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Fix alphabetical ordering in free-courses-en.md","shortMessageHtmlLink":"Fix alphabetical ordering in free-courses-en.md"}},{"before":null,"after":"cfdbbc8e595d1e96ccb19b7e7684c770757ce061","ref":"refs/heads/add-python-for-osint-course","pushedAt":"2023-07-25T19:22:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Add course: Python for OSINT. 21 day course for beginners (#9362)","shortMessageHtmlLink":"Add course: Python for OSINT. 21 day course for beginners (EbookFound…"}},{"before":"871b19d964570608a767ec85642f41267ba5cad6","after":"97eaefc0d3260f1fdbcaa78743122dad3eb59f16","ref":"refs/heads/main","pushedAt":"2023-07-25T18:43:45.851Z","pushType":"push","commitsCount":3,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"This link seems like it's stale since 2021 (#9442)\n\n* This link seems like it's stale since 2021\r\n\r\n* Update more/problem-sets-competitive-programming.md\r\n\r\nCo-authored-by: Leithen \r\n\r\n* Update problem-sets-competitive-programming.md\r\n\r\n---------\r\n\r\nCo-authored-by: Leithen ","shortMessageHtmlLink":"This link seems like it's stale since 2021 (EbookFoundation#9442)"}},{"before":"871b19d964570608a767ec85642f41267ba5cad6","after":"97eaefc0d3260f1fdbcaa78743122dad3eb59f16","ref":"refs/heads/main","pushedAt":"2023-07-25T18:43:45.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"This link seems like it's stale since 2021 (#9442)\n\n* This link seems like it's stale since 2021\r\n\r\n* Update more/problem-sets-competitive-programming.md\r\n\r\nCo-authored-by: Leithen \r\n\r\n* Update problem-sets-competitive-programming.md\r\n\r\n---------\r\n\r\nCo-authored-by: Leithen ","shortMessageHtmlLink":"This link seems like it's stale since 2021 (EbookFoundation#9442)"}},{"before":"dec793ad1ef860a2bda3ffe97b8420d3c62f669c","after":"871b19d964570608a767ec85642f41267ba5cad6","ref":"refs/heads/main","pushedAt":"2023-07-23T14:42:40.640Z","pushType":"push","commitsCount":1,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Some Delphi and Pascal programing resources (#9459)\n\n* added Pascal language section with the new book from Gilles Vasseur and Jean-Luc Gofflot\r\n\r\n* added a 70 hours free Delphi/Pascal/programming learning course in French\r\n\r\n* added a Delphi 7 book from Ole Witt-Hansen\r\n\r\n* updated link for Danish Delphi 7 book\r\n\r\n* updated text for DVLP download link\r\n\r\n* removed the FR Pascal Object book","shortMessageHtmlLink":"Some Delphi and Pascal programing resources (EbookFoundation#9459)"}},{"before":"dec793ad1ef860a2bda3ffe97b8420d3c62f669c","after":"871b19d964570608a767ec85642f41267ba5cad6","ref":"refs/heads/main","pushedAt":"2023-07-23T14:42:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Some Delphi and Pascal programing resources (#9459)\n\n* added Pascal language section with the new book from Gilles Vasseur and Jean-Luc Gofflot\r\n\r\n* added a 70 hours free Delphi/Pascal/programming learning course in French\r\n\r\n* added a Delphi 7 book from Ole Witt-Hansen\r\n\r\n* updated link for Danish Delphi 7 book\r\n\r\n* updated text for DVLP download link\r\n\r\n* removed the FR Pascal Object book","shortMessageHtmlLink":"Some Delphi and Pascal programing resources (EbookFoundation#9459)"}},{"before":"cb7f6bf488c8296f3fe98fcf7488ec3881f72d9b","after":"dec793ad1ef860a2bda3ffe97b8420d3c62f669c","ref":"refs/heads/main","pushedAt":"2023-07-21T15:23:41.107Z","pushType":"push","commitsCount":6,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"add a vpc course (#9461)\n\n* added a course\r\n\r\n* changed course title\r\n\r\n---------\r\n\r\nCo-authored-by: joko ","shortMessageHtmlLink":"add a vpc course (EbookFoundation#9461)"}},{"before":"cb7f6bf488c8296f3fe98fcf7488ec3881f72d9b","after":"dec793ad1ef860a2bda3ffe97b8420d3c62f669c","ref":"refs/heads/main","pushedAt":"2023-07-21T15:23:41.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"add a vpc course (#9461)\n\n* added a course\r\n\r\n* changed course title\r\n\r\n---------\r\n\r\nCo-authored-by: joko ","shortMessageHtmlLink":"add a vpc course (EbookFoundation#9461)"}},{"before":"7f2c2d1cd4422de82f85e454d20b36922e8eedea","after":"cb7f6bf488c8296f3fe98fcf7488ec3881f72d9b","ref":"refs/heads/main","pushedAt":"2023-07-19T16:40:00.843Z","pushType":"push","commitsCount":7,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Update free-programming-books-id.md (#9454)","shortMessageHtmlLink":"Update free-programming-books-id.md (EbookFoundation#9454)"}},{"before":"7f2c2d1cd4422de82f85e454d20b36922e8eedea","after":"cb7f6bf488c8296f3fe98fcf7488ec3881f72d9b","ref":"refs/heads/main","pushedAt":"2023-07-19T16:40:00.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Update free-programming-books-id.md (#9454)","shortMessageHtmlLink":"Update free-programming-books-id.md (EbookFoundation#9454)"}},{"before":"0f34928ff96cc3eb784a5fb7bd51739b0ec36028","after":"7f2c2d1cd4422de82f85e454d20b36922e8eedea","ref":"refs/heads/main","pushedAt":"2023-07-14T14:50:56.587Z","pushType":"push","commitsCount":5,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Add ISL in Python (#9437)\n\nThe pdf first published on July 5, 2023.","shortMessageHtmlLink":"Add ISL in Python (EbookFoundation#9437)"}},{"before":"0f34928ff96cc3eb784a5fb7bd51739b0ec36028","after":"7f2c2d1cd4422de82f85e454d20b36922e8eedea","ref":"refs/heads/main","pushedAt":"2023-07-14T14:50:56.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"Add ISL in Python (#9437)\n\nThe pdf first published on July 5, 2023.","shortMessageHtmlLink":"Add ISL in Python (EbookFoundation#9437)"}},{"before":"072b8c9935321cfad7c2502166146eb86f90af60","after":"0f34928ff96cc3eb784a5fb7bd51739b0ec36028","ref":"refs/heads/main","pushedAt":"2023-07-12T16:01:27.531Z","pushType":"push","commitsCount":9,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"resolves #9327: Added the \"Node.JS Best Practices\" resource. (#9429)\n\n* Added the \"Node.JS Best Practices\" resource. resolves #9327\r\n\r\n* Added resource description\r\n\r\n* Removed resource \"Node.JS Best Practices\" from the list\r\n\r\n* Added the \"Node.JS Best Practices\" resource.\r\n\r\n* Fixed linter error\r\n\r\n* Removed the \"(GitHub Repository)\" label.\r\n\r\nCo-authored-by: Eric Hellman \r\n\r\n---------\r\n\r\nCo-authored-by: Eric Hellman ","shortMessageHtmlLink":"resolves EbookFoundation#9327: Added the \"Node.JS Best Practices\" res…"}},{"before":"072b8c9935321cfad7c2502166146eb86f90af60","after":"0f34928ff96cc3eb784a5fb7bd51739b0ec36028","ref":"refs/heads/main","pushedAt":"2023-07-12T16:01:27.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"resolves #9327: Added the \"Node.JS Best Practices\" resource. (#9429)\n\n* Added the \"Node.JS Best Practices\" resource. resolves #9327\r\n\r\n* Added resource description\r\n\r\n* Removed resource \"Node.JS Best Practices\" from the list\r\n\r\n* Added the \"Node.JS Best Practices\" resource.\r\n\r\n* Fixed linter error\r\n\r\n* Removed the \"(GitHub Repository)\" label.\r\n\r\nCo-authored-by: Eric Hellman \r\n\r\n---------\r\n\r\nCo-authored-by: Eric Hellman ","shortMessageHtmlLink":"resolves EbookFoundation#9327: Added the \"Node.JS Best Practices\" res…"}},{"before":"3062e6d864830c123a8bca186e6f0118b88ef102","after":"072b8c9935321cfad7c2502166146eb86f90af60","ref":"refs/heads/main","pushedAt":"2023-06-20T15:34:46.962Z","pushType":"push","commitsCount":7,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"chore(deps): bump tj-actions/changed-files from 36.1.0 to 36.4.0 (#9404)\n\nBumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 36.1.0 to 36.4.0.\r\n- [Release notes](https://github.com/tj-actions/changed-files/releases)\r\n- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)\r\n- [Commits](https://github.com/tj-actions/changed-files/compare/v36.1.0...v36.4.0)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: tj-actions/changed-files\r\n dependency-type: direct:production\r\n update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"chore(deps): bump tj-actions/changed-files from 36.1.0 to 36.4.0 (Ebo…"}},{"before":"3062e6d864830c123a8bca186e6f0118b88ef102","after":"072b8c9935321cfad7c2502166146eb86f90af60","ref":"refs/heads/main","pushedAt":"2023-06-20T15:34:46.897Z","pushType":"push","commitsCount":7,"pusher":{"login":"KairoQalb","name":"Namra Ishrat","path":"/KairoQalb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91794365?s=80&v=4"},"commit":{"message":"chore(deps): bump tj-actions/changed-files from 36.1.0 to 36.4.0 (#9404)\n\nBumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 36.1.0 to 36.4.0.\r\n- [Release notes](https://github.com/tj-actions/changed-files/releases)\r\n- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)\r\n- [Commits](https://github.com/tj-actions/changed-files/compare/v36.1.0...v36.4.0)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: tj-actions/changed-files\r\n dependency-type: direct:production\r\n update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"chore(deps): bump tj-actions/changed-files from 36.1.0 to 36.4.0 (Ebo…"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADoni18gA","startCursor":null,"endCursor":null}},"title":"Activity · KairoQalb/free-programming-books"}