{"id":19653054,"url":"https://github.com/babkock/learning","last_synced_at":"2025-04-28T17:31:17.939Z","repository":{"id":64813709,"uuid":"208707309","full_name":"Babkock/learning","owner":"Babkock","description":"A collection of small programs, to be used as references and learning material. Covers a variety of techniques.","archived":false,"fork":false,"pushed_at":"2025-02-07T18:07:32.000Z","size":162,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-05T10:01:41.359Z","etag":null,"topics":["beginner-friendly","bootloader","c","cpp17","http-server","linux-app","linux-shell","multithreading","mutex-lock","ncurses","pointers","socket-io","tcp-client","tcp-server","tutorial","tutorials","x11","xcb"],"latest_commit_sha":null,"homepage":"https://gitlab.com/Babkock/learning","language":"C","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Babkock.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"Babkock","patreon":"babkock"}},"created_at":"2019-09-16T04:08:05.000Z","updated_at":"2025-03-10T11:19:14.000Z","dependencies_parsed_at":"2023-02-12T19:16:03.755Z","dependency_job_id":"8aa2b0c3-55f9-4c39-b972-c7b3553384ac","html_url":"https://github.com/Babkock/learning","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Babkock%2Flearning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Babkock%2Flearning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Babkock%2Flearning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Babkock%2Flearning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Babkock","download_url":"https://codeload.github.com/Babkock/learning/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251355349,"owners_count":21576340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beginner-friendly","bootloader","c","cpp17","http-server","linux-app","linux-shell","multithreading","mutex-lock","ncurses","pointers","socket-io","tcp-client","tcp-server","tutorial","tutorials","x11","xcb"],"created_at":"2024-11-11T15:13:02.613Z","updated_at":"2025-04-28T17:31:17.927Z","avatar_url":"https://github.com/Babkock.png","language":"C","readme":"#+TITLE: learning\n#+AUTHOR: Tanner Babcock\n#+EMAIL: babkock@protonmail.com\n#+LANGUAGE: en\n\n[[https://gitlab.com/Babkock/learning/-/commits/master][https://gitlab.com/Babkock/learning/badges/master/pipeline.svg]]\n[[https://github.com/Babkock/learning/actions/workflows/c-cpp.yml/badge.svg]]\n[[https://img.shields.io/badge/License-GPL_v2-blue.svg]]\n\nVery old C and C++ programs, with some new C programs, and some assembly code. Goes over a variety of Unix/Linux programming techniques. Some of these programs require the linking of external libraries. Instructions on how to compile these programs are included in the source code and in the lessons.\nSome programs utilize command-line arguments. Remember, if you ever see =int main(int argc, char *argv[])= instead of =int main(void)= , that means the program accepts command-line arguments. Each of these programs are noted in the lessons.\n\n* Lessons\n\n- [[https://github.com/Babkock/learning/tree/master/boot][Bootloader]]\n- [[https://github.com/Babkock/learning/tree/master/etc][Curses/Colors/C++ Classes]]\n- [[https://github.com/Babkock/learning/tree/master/network][Networking/Communication]]\n- [[https://github.com/Babkock/learning/tree/master/point][Pointers]]\n- [[https://github.com/Babkock/learning/tree/master/sys][System Calls]]\n- [[https://github.com/Babkock/learning/tree/master/thread][Threads]]\n- [[https://github.com/Babkock/learning/tree/master/x][X Window System]]\n\n* Examples\n\n- *[[https://github.com/Babkock/learning/blob/master/boot/disk.asm][Bootloader]] and [[https://github.com/Babkock/learning/blob/master/boot/kernel/bootsect.asm][kernel]]* for use with QEMU\n- TCP [[https://github.com/Babkock/learning/blob/master/network/client.c][client]] and [[https://github.com/Babkock/learning/blob/master/network/multiserver.c][server]] with multiple requests\n- *[[https://github.com/Babkock/learning/blob/master/network/http.c][Working HTTP server]]*\n- [[https://github.com/Babkock/learning/blob/master/x/xft.c][XFT font drawing]]\n- [[https://github.com/Babkock/learning/blob/master/sys/tick.c][Reading]] and [[https://github.com/Babkock/learning/blob/master/sys/speak.c][writing]] FIFO\n- [[https://github.com/Babkock/learning/blob/master/point/linklist.c][Linked list]] with [[https://github.com/Babkock/learning/blob/master/point/linkpush.c][push]] and [[https://github.com/Babkock/learning/blob/master/point/linkpop.c][pop]] functions\n- [[https://github.com/Babkock/learning/blob/master/etc/curses.c][Simple Ncurses program]] that writes vertically in the terminal\n- [[https://github.com/Babkock/learning/blob/master/thread/threads.c][Threads]] with [[https://github.com/Babkock/learning/blob/master/thread/mutex.c][mutex]]\n- [[https://github.com/Babkock/learning/blob/master/point/hashmap.c][Hash map]] and [[https://github.com/Babkock/learning/blob/master/point/hashtable.c][hash table]]\n- [[https://github.com/Babkock/learning/blob/master/time.c][Time calculator]]\n- [[https://github.com/Babkock/learning/blob/master/sys/shell.c][Simple shell]]\n- [[https://github.com/Babkock/learning/blob/master/sys/symlink.c][Symbolic links]]\n- [[https://github.com/Babkock/learning/blob/master/bits.c][Bitwise operations]]\n- [[https://github.com/Babkock/learning/blob/master/point/bitfield.c][Bit field]]\n\nThanks for checking these out.\n\n","funding_links":["https://github.com/sponsors/Babkock","https://patreon.com/babkock"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabkock%2Flearning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbabkock%2Flearning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabkock%2Flearning/lists"}