From bc7af89fc101945ffbca6f41091b7ba30bebdd73 Mon Sep 17 00:00:00 2001 From: Nikita Leshenko Date: Sun, 11 Oct 2020 14:27:30 +0300 Subject: [PATCH 01/51] Add link to "ugit: Building Git Yourself" --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d5e7500..93a8992 100644 --- a/README.md +++ b/README.md @@ -215,6 +215,7 @@ * [**JavaScript**: _Build GIT - Learn GIT_](https://kushagragour.in/blog/2014/01/build-git-learn-git/) * [**Python**: _Just enough of a Git client to create a repo, commit, and push itself to GitHub_](https://benhoyt.com/writings/pygit/) * [**Python**: _Write yourself a Git!_](https://wyag.thb.lt/) +* [**Python**: _ugit: Learn Git Internals by Building Git Yourself_](https://www.leshenko.net/p/ugit/) * [**Ruby**: _Rebuilding Git in Ruby_](https://robots.thoughtbot.com/rebuilding-git-in-ruby) #### Build your own `Network Stack` From dd7f3f7f9b7994a3c3864e37ee72d44e5bb9d7dd Mon Sep 17 00:00:00 2001 From: Vyas Alwar Date: Mon, 16 Nov 2020 20:34:55 -0600 Subject: [PATCH 02/51] Update README.md Add Ray Tracing in One Weekend --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d5e7500..15db9f5 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ * [**C++**: _How OpenGL works: software rendering in 500 lines of code_](https://github.com/ssloy/tinyrenderer/wiki) * [**C++**: _Raycasting engine of Wolfenstein 3D_](http://lodev.org/cgtutor/raycasting.html) * [**C++**: _Physically Based Rendering:From Theory To Implementation_](http://www.pbr-book.org/) +* [**C++**: [Ray Tracing in One Weekend] (https://raytracing.github.io/books/RayTracingInOneWeekend.html) * [**C++**: _Rasterization: a Practical Implementation_](https://www.scratchapixel.com/lessons/3d-basic-rendering/rasterization-practical-implementation/overview-rasterization-algorithm) * [**C# / TypeScript / JavaScript**: _Learning how to write a 3D soft engine from scratch in C#, TypeScript or JavaScript_](https://www.davrous.com/2013/06/13/tutorial-series-learning-how-to-write-a-3d-soft-engine-from-scratch-in-c-typescript-or-javascript/) * [**Java / JavaScript**: _Build your own 3D renderer_](https://avik-das.github.io/build-your-own-raytracer/) From 415445a9f642cb224e09fc2d4d81fdb28c0606f7 Mon Sep 17 00:00:00 2001 From: fake-rookie <61480354+fake-rookie@users.noreply.github.com> Date: Sun, 26 Dec 2021 23:38:14 +0800 Subject: [PATCH 03/51] delete a useless item that item is nothing. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 1250990..e26c06a 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,6 @@ #### Build your own `Database` * [**C**: _Let's Build a Simple Database_](https://cstack.github.io/db_tutorial/) -* [**C++**: _Implementing a Key-Value Store_](http://codecapsule.com/2012/11/07/ikvs-implementing-a-key-value-store-table-of-contents/) * [**C#**: _Build Your Own Database_](https://www.codeproject.com/Articles/1029838/Build-Your-Own-Database) * [**Clojure**: _An Archaeology-Inspired Database_](http://aosabook.org/en/500L/an-archaeology-inspired-database.html) * [**Crystal**: _Why you should build your own NoSQL Database_](https://medium.com/@marceloboeira/why-you-should-build-your-own-nosql-database-9bbba42039f5) From 33fa557b9ec7e9579edfd238f24cb564cdcb74d3 Mon Sep 17 00:00:00 2001 From: Lakshay Tyagi Date: Sun, 4 Sep 2022 08:29:11 +0530 Subject: [PATCH 04/51] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f767a57..98b3b6e 100644 --- a/README.md +++ b/README.md @@ -189,6 +189,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre * [**C#**: _Creating a Roguelike Game in C#_](https://roguesharp.wordpress.com/) * [**C#**: _Build a C#/WPF RPG_](https://scottlilly.com/build-a-cwpf-rpg/) * [**Go**: _Games With Go_](https://www.youtube.com/playlist?list=PLDZujg-VgQlZUy1iCqBbe5faZLMkA3g2x) [video] +* [**Java**: _ Code a 2D Game Engine using Java - Full Course for Beginners_](https://www.youtube.com/watch?v=025QFeZfeyM) [video] * [**Java**: _3D Game Development with LWJGL 3_](https://lwjglgamedev.gitbooks.io/3d-game-development-with-lwjgl/content/) * [**JavaScript**: _2D breakout game using Phaser_](https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_breakout_game_Phaser) * [**JavaScript**: _How to Make Flappy Bird in HTML5 With Phaser_](http://www.lessmilk.com/tutorial/flappy-bird-phaser-1) From 9d6f7b7e94296bd8ce37b06ca1b7ebea1eee4b67 Mon Sep 17 00:00:00 2001 From: Lakshay Tyagi Date: Sun, 4 Sep 2022 08:30:17 +0530 Subject: [PATCH 05/51] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 98b3b6e..79a16c5 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre * [**C#**: _Creating a Roguelike Game in C#_](https://roguesharp.wordpress.com/) * [**C#**: _Build a C#/WPF RPG_](https://scottlilly.com/build-a-cwpf-rpg/) * [**Go**: _Games With Go_](https://www.youtube.com/playlist?list=PLDZujg-VgQlZUy1iCqBbe5faZLMkA3g2x) [video] -* [**Java**: _ Code a 2D Game Engine using Java - Full Course for Beginners_](https://www.youtube.com/watch?v=025QFeZfeyM) [video] +* [**Java**: _Code a 2D Game Engine using Java - Full Course for Beginners_](https://www.youtube.com/watch?v=025QFeZfeyM) [video] * [**Java**: _3D Game Development with LWJGL 3_](https://lwjglgamedev.gitbooks.io/3d-game-development-with-lwjgl/content/) * [**JavaScript**: _2D breakout game using Phaser_](https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_breakout_game_Phaser) * [**JavaScript**: _How to Make Flappy Bird in HTML5 With Phaser_](http://www.lessmilk.com/tutorial/flappy-bird-phaser-1) From 88780ad7ab9f8f40b6a13cdb91f7583a4736d2f6 Mon Sep 17 00:00:00 2001 From: Antonio Galindo Date: Mon, 12 Sep 2022 20:11:02 +0200 Subject: [PATCH 06/51] chore: remove unavailable tutorial --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 79a16c5..8f10c39 100644 --- a/README.md +++ b/README.md @@ -402,7 +402,6 @@ This repository is a compilation of well-written, step-by-step guides for re-cre * [**JavaScript**: _Implementing promises from scratch (TDD way)_](https://www.mauriciopoppe.com/notes/computer-science/computation/promises/) * [**JavaScript**: _Implement your own — call(), apply() and bind() method in JavaScript_](https://blog.usejournal.com/implement-your-own-call-apply-and-bind-method-in-javascript-42cc85dba1b) * [**JavaScript**: _JavaScript Algorithms and Data Structures_](https://github.com/trekhleb/javascript-algorithms) -* [**JavaScript**: _How to Make an Evolutionary Tetris AI_](https://www.youtube.com/watch?v=xLHCMMGuN0Q) [video] * [**JavaScript**: _Build a ride hailing app with React Native_](https://pusher.com/tutorials/ride-hailing-react-native) * [**Kotlin**: _Build Your Own Cache_](https://github.com/kezhenxu94/cache-lite) * [**Nim**: _Writing a Redis Protocol Parser_](https://xmonader.github.io/nimdays/day12_resp.html) From 3ae36986b216193a6f031f9e462cad229423b130 Mon Sep 17 00:00:00 2001 From: Umair Bussi Date: Wed, 28 Sep 2022 18:08:42 +0500 Subject: [PATCH 07/51] Build a DNS Server in Node.js --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8f10c39..b90dc4b 100644 --- a/README.md +++ b/README.md @@ -414,6 +414,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre * [**Node.js**: _Build a static site generator in 40 lines with Node.js_](https://www.webdevdrops.com/en/build-static-site-generator-nodejs-8969ebe34b22/) * [**Node.js**: _Building A Simple Single Sign On(SSO) Server And Solution From Scratch In Node.js._](https://codeburst.io/building-a-simple-single-sign-on-sso-server-and-solution-from-scratch-in-node-js-ea6ee5fdf340) * [**Node.js**: _How to create a real-world Node CLI app with Node_](https://medium.freecodecamp.org/how-to-create-a-real-world-node-cli-app-with-node-391b727bbed3) +* [**Node.js**: _Build a DNS Server in Node.js_](https://engineerhead.github.io/dns-server/) * [**PHP**: _Write your own MVC from scratch in PHP_ ](https://chaitya62.github.io/2018/04/29/Writing-your-own-MVC-from-Scratch-in-PHP.html) * [**PHP**: _Make your own blog_](https://ilovephp.jondh.me.uk/en/tutorial/make-your-own-blog) * [**PHP**: _Modern PHP Without a Framework_](https://kevinsmith.io/modern-php-without-a-framework) From dcc4092441455d7998cad310eb8c9d8f0f5daad4 Mon Sep 17 00:00:00 2001 From: Yair Haimo Date: Wed, 5 Oct 2022 20:55:05 +0300 Subject: [PATCH 08/51] add nodejs cli tool --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b90dc4b..3091a30 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre * [**Go**: _Building a cli command with Go: cowsay_](https://flaviocopes.com/go-tutorial-cowsay/) * [**Go**: _Go CLI tutorial: fortune clone_](https://flaviocopes.com/go-tutorial-fortune/) * [**Nim**: _Writing a stow alternative to manage dotfiles_](https://xmonader.github.io/nimdays/day06_nistow.html) +* [**Node.js**: _Create a CLI tool in Javascript_](https://citw.dev/tutorial/create-your-own-cli-tool) #### Build your own `Database` From 64afb51bfacb3197488c447017267c2f3b6129e8 Mon Sep 17 00:00:00 2001 From: JoseCutileiro <72456290+JoseCutileiro@users.noreply.github.com> Date: Sat, 29 Oct 2022 10:08:11 +0100 Subject: [PATCH 09/51] REMOVED DEAD LINK (#817) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 3091a30..6f25494 100644 --- a/README.md +++ b/README.md @@ -364,7 +364,6 @@ This repository is a compilation of well-written, step-by-step guides for re-cre #### Build your own `Voxel Engine` * [**C++**: _Let's Make a Voxel Engine_](https://sites.google.com/site/letsmakeavoxelengine/home) -* [**Java**: _Let's make a voxel engine_](https://www.youtube.com/watch?v=C_Fo9PcrVXA&list=PLXa65xzz2vplye7cn1HH4GyE6_FjnDSug&index=1) [video] * [**Java**: _Java Voxel Engine Tutorial_](https://www.youtube.com/watch?v=QZ4Vk2PkPZk&list=PL80Zqpd23vJfyWQi-8FKDbeO_ZQamLKJL) [video] #### Build your own `Web Server` From 1edad6cabbfd240c0f20357740c8546ec240fe58 Mon Sep 17 00:00:00 2001 From: Sujal Singh Date: Thu, 10 Nov 2022 22:26:48 +0530 Subject: [PATCH 10/51] create a category for web browsers --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6f25494..365a5f1 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre * [Text Editor](#build-your-own-text-editor) * [Visual Recognition System](#build-your-own-visual-recognition-system) * [Voxel Engine](#build-your-own-voxel-engine) +* [Web Browser](#build-your-own-web-browser) * [Web Server](#build-your-own-web-server) * [Uncategorized](#uncategorized) @@ -366,6 +367,11 @@ This repository is a compilation of well-written, step-by-step guides for re-cre * [**C++**: _Let's Make a Voxel Engine_](https://sites.google.com/site/letsmakeavoxelengine/home) * [**Java**: _Java Voxel Engine Tutorial_](https://www.youtube.com/watch?v=QZ4Vk2PkPZk&list=PL80Zqpd23vJfyWQi-8FKDbeO_ZQamLKJL) [video] +#### Build your own `Web Browser` + +* [**Rust**: _Let's build a browser engine_](https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html) +* [**Python**: _Browser Engineering_](https://browser.engineering) + #### Build your own `Web Server` * [**C#**: _Writing a Web Server from Scratch_](https://www.codeproject.com/Articles/859108/Writing-a-Web-Server-from-Scratch) @@ -432,7 +438,6 @@ This repository is a compilation of well-written, step-by-step guides for re-cre * [**Python**: _JSON Decoding Algorithm_](https://github.com/cheery/json-algorithm) * [**Ruby**: _A Pedometer in the Real World_](http://aosabook.org/en/500L/a-pedometer-in-the-real-world.html) * [**Ruby**: _Creating a Linux Desktop application with Ruby_](https://iridakos.com/tutorials/2018/01/25/creating-a-gtk-todo-application-with-ruby) -* [**Rust**: _Let's build a browser engine_](https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html) * [**Rust**: _Building a DNS server in Rust_](https://github.com/EmilHernvall/dnsguide/blob/master/README.md) * [**Rust**: _Writing Scalable Chat Service from Scratch_](https://nbaksalyar.github.io/2015/07/10/writing-chat-in-rust.html) * [**TypeScript**: _Tiny Package Manager: Learns how npm or Yarn works_](https://github.com/g-plane/tiny-package-manager) From 68634bfe2caea425351859dd1c03b753d67e9c9d Mon Sep 17 00:00:00 2001 From: Sarup Banskota Date: Thu, 24 Nov 2022 17:41:51 +0700 Subject: [PATCH 11/51] Update banner + tweak header format --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6f25494..0e811cf 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ -[![CodeCrafters.io](https://codecrafters.vercel.app/for/github-repo-banner.png)](https://codecrafters.io/github-banner) +[![Banner](https://codecrafters.io/landing/images/byox-banner.png)](https://codecrafters.io/github-banner) -This repository is a compilation of well-written, step-by-step guides for re-creating our favorite technologies from scratch. It's a great way to learn. Submissions welcome, just send a PR. +## Table of Contents: Build your own X + +This repository is a compilation of well-written, step-by-step guides for re-creating our favorite technologies from scratch. > *What I cannot create, I do not understand — Richard Feynman.* -## Table of Contents: Build your own X +It's a great way to learn. * [3D Renderer](#build-your-own-3d-renderer) * [Augmented Reality](#build-your-own-augmented-reality) From 31bac798ccc2ea16be3c3d906a9cd1d0af6d5a29 Mon Sep 17 00:00:00 2001 From: Josh Burns <83684810+joshburnsxyz@users.noreply.github.com> Date: Fri, 25 Nov 2022 13:16:07 +1100 Subject: [PATCH 12/51] add link to git plugin tutorial --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0e811cf..59cf793 100644 --- a/README.md +++ b/README.md @@ -216,6 +216,7 @@ It's a great way to learn. * [**JavaScript**: _Build GIT - Learn GIT_](https://kushagra.dev/blog/build-git-learn-git/) * [**Python**: _Just enough of a Git client to create a repo, commit, and push itself to GitHub_](https://benhoyt.com/writings/pygit/) * [**Python**: _Write yourself a Git!_](https://wyag.thb.lt/) +* [**Python**: _Build your own Git plugin with python_](https://www.joshburns.xyz/posts/byo_git_plugin_tutorial) * [**Ruby**: _Rebuilding Git in Ruby_](https://robots.thoughtbot.com/rebuilding-git-in-ruby) #### Build your own `Network Stack` From 8e628eb428a55ea4909de4af9a82e99db346ed83 Mon Sep 17 00:00:00 2001 From: Sarup Banskota Date: Sat, 26 Nov 2022 17:57:18 +0700 Subject: [PATCH 13/51] Update banner to use GIF --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e811cf..7e6e16c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Banner](https://codecrafters.io/landing/images/byox-banner.png)](https://codecrafters.io/github-banner) +[![Banner](https://codecrafters.io/landing/images/byox-banner.gif?v=1)](https://codecrafters.io/github-banner) ## Table of Contents: Build your own X From b5e5bb677ba6502eb521612924febec239ae8b82 Mon Sep 17 00:00:00 2001 From: Josh Burns <83684810+joshburnsxyz@users.noreply.github.com> Date: Sun, 27 Nov 2022 17:55:46 +1100 Subject: [PATCH 14/51] moved git plugin tutorial to uncategorised --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 59cf793..0a1b142 100644 --- a/README.md +++ b/README.md @@ -216,7 +216,6 @@ It's a great way to learn. * [**JavaScript**: _Build GIT - Learn GIT_](https://kushagra.dev/blog/build-git-learn-git/) * [**Python**: _Just enough of a Git client to create a repo, commit, and push itself to GitHub_](https://benhoyt.com/writings/pygit/) * [**Python**: _Write yourself a Git!_](https://wyag.thb.lt/) -* [**Python**: _Build your own Git plugin with python_](https://www.joshburns.xyz/posts/byo_git_plugin_tutorial) * [**Ruby**: _Rebuilding Git in Ruby_](https://robots.thoughtbot.com/rebuilding-git-in-ruby) #### Build your own `Network Stack` @@ -433,6 +432,7 @@ It's a great way to learn. * [**Python**: _Building a simple Generative Adversial Network (GAN) using Tensorflow_](https://blog.paperspace.com/implementing-gans-in-tensorflow/) * [**Python**: _Learn ML Algorithms by coding: Decision Trees_](https://lethalbrains.com/learn-ml-algorithms-by-coding-decision-trees-439ac503c9a4) * [**Python**: _JSON Decoding Algorithm_](https://github.com/cheery/json-algorithm) +* [**Python**: _Build your own Git plugin with python_](https://www.joshburns.xyz/posts/byo_git_plugin_tutorial) * [**Ruby**: _A Pedometer in the Real World_](http://aosabook.org/en/500L/a-pedometer-in-the-real-world.html) * [**Ruby**: _Creating a Linux Desktop application with Ruby_](https://iridakos.com/tutorials/2018/01/25/creating-a-gtk-todo-application-with-ruby) * [**Rust**: _Let's build a browser engine_](https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html) From 85d6aacb3a26ca2d154672c16118ae7219df351f Mon Sep 17 00:00:00 2001 From: Ishuah E Kariuki Date: Tue, 29 Nov 2022 17:04:38 +0300 Subject: [PATCH 15/51] Add link to Golang terminal emulator article --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ebfb8e4..41c4a3f 100644 --- a/README.md +++ b/README.md @@ -397,6 +397,7 @@ It's a great way to learn. * [**C#**: _C# Networking: Create a TCP chater server, TCP games, UDP Pong and more_](https://16bpp.net/tutorials/csharp-networking) * [**C#**: _Loading and rendering 3D skeletal animations from scratch in C# and GLSL_](https://www.seanjoflynn.com/research/skeletal-animation.html) * [**Clojure**: _Building a spell-checker_](https://bernhardwenzel.com/articles/clojure-spellchecker/) +* [**Go**: _Build A Simple Terminal Emulator In 100 Lines of Golang_](https://ishuah.com/2021/03/10/build-a-terminal-emulator-in-100-lines-of-go/) * [**Go**, _Let's Create a Simple Load Balancer_](https://kasvith.github.io/posts/lets-create-a-simple-lb-go/) * [**Java**: _How to Build an Android Reddit App_](https://www.youtube.com/playlist?list=PLgCYzUzKIBE9HUJU-upNvl3TRVAo9W47y) [video] * [**JavaScript**: _Build Your Own Module Bundler - Minipack_](https://github.com/ronami/minipack) From 41d95d81c1e054d830e8a2f116aeb58793d1ec92 Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Fri, 2 Dec 2022 20:52:58 -0800 Subject: [PATCH 16/51] Add Video Encoding from Scratch --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 41c4a3f..9fc4b44 100644 --- a/README.md +++ b/README.md @@ -399,6 +399,7 @@ It's a great way to learn. * [**Clojure**: _Building a spell-checker_](https://bernhardwenzel.com/articles/clojure-spellchecker/) * [**Go**: _Build A Simple Terminal Emulator In 100 Lines of Golang_](https://ishuah.com/2021/03/10/build-a-terminal-emulator-in-100-lines-of-go/) * [**Go**, _Let's Create a Simple Load Balancer_](https://kasvith.github.io/posts/lets-create-a-simple-lb-go/) +* [**Go**: _Video Encoding from Scratch_](https://github.com/kevmo314/codec-from-scratch) * [**Java**: _How to Build an Android Reddit App_](https://www.youtube.com/playlist?list=PLgCYzUzKIBE9HUJU-upNvl3TRVAo9W47y) [video] * [**JavaScript**: _Build Your Own Module Bundler - Minipack_](https://github.com/ronami/minipack) * [**JavaScript**: _Learn JavaScript Promises by Building a Promise from Scratch_](https://levelup.gitconnected.com/understand-javascript-promises-by-building-a-promise-from-scratch-84c0fd855720) From 25b8f74fe022ed41c42c5b1f25bcdaddcb9e145c Mon Sep 17 00:00:00 2001 From: Cedric Martens Date: Mon, 5 Dec 2022 10:15:46 -0800 Subject: [PATCH 17/51] Remove broken link (#830) This link is broken and lands on a 404 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 41c4a3f..ba8615f 100644 --- a/README.md +++ b/README.md @@ -141,7 +141,6 @@ It's a great way to learn. #### Build your own `Emulator / Virtual Machine` -* [**C**: _Virtual machine in C_](https://blog.felixangell.com/virtual-machine-in-c/) * [**C**: _Write your Own Virtual Machine_](https://justinmeiners.github.io/lc3-vm/) * [**C**: _Writing a Game Boy emulator, Cinoop_](https://cturt.github.io/cinoop.html) * [**C++**: _How to write an emulator (CHIP-8 interpreter)_](http://www.multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/) From 608ac57ebfe25f888dff1aa169de3cfeb0911b92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bezd=C4=9Bk=20Miroslav?= Date: Sun, 11 Dec 2022 09:34:18 +0100 Subject: [PATCH 18/51] Added two links (one previously available). --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 998a159..305da82 100644 --- a/README.md +++ b/README.md @@ -141,6 +141,8 @@ It's a great way to learn. #### Build your own `Emulator / Virtual Machine` +* [**C**: _Home-grown bytecode interpreters_](https://medium.com/bumble-tech/home-grown-bytecode-interpreters-51e12d59b25c) +* [**C**: _Virtual machine in C_](http://web.archive.org/web/20200121100942/https://blog.felixangell.com/virtual-machine-in-c/) * [**C**: _Write your Own Virtual Machine_](https://justinmeiners.github.io/lc3-vm/) * [**C**: _Writing a Game Boy emulator, Cinoop_](https://cturt.github.io/cinoop.html) * [**C++**: _How to write an emulator (CHIP-8 interpreter)_](http://www.multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/) From 0bea81df3a3877a4f9f07426bfcb3c1f869505f4 Mon Sep 17 00:00:00 2001 From: David Adi Nugroho Date: Sat, 17 Dec 2022 17:20:55 +0700 Subject: [PATCH 19/51] Add linux from scratch --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 305da82..27f11c7 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,7 @@ It's a great way to learn. * [**C++**: _Write your own Operating System_](https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M) [video] * [**C++**: _Writing a Bootloader_](http://3zanders.co.uk/2017/10/13/writing-a-bootloader/) * [**Rust**: _Writing an OS in Rust_](https://os.phil-opp.com/) +* [**(any)**: Linux from scratch v11.2](https://linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-11.2.pdf) #### Build your own `Physics Engine` From 69be78cf70be9d4d779776b66cee755acb9edc89 Mon Sep 17 00:00:00 2001 From: David Adi Nugroho Date: Mon, 19 Dec 2022 17:20:01 +0700 Subject: [PATCH 20/51] Update LFS link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 27f11c7..90abe97 100644 --- a/README.md +++ b/README.md @@ -260,7 +260,7 @@ It's a great way to learn. * [**C++**: _Write your own Operating System_](https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M) [video] * [**C++**: _Writing a Bootloader_](http://3zanders.co.uk/2017/10/13/writing-a-bootloader/) * [**Rust**: _Writing an OS in Rust_](https://os.phil-opp.com/) -* [**(any)**: Linux from scratch v11.2](https://linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-11.2.pdf) +* [**(any)**: Linux from scratch](https://linuxfromscratch.org/lfs) #### Build your own `Physics Engine` From 03c7dda0656a9794d9a1b7fac7808e5361aade72 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 1 Jan 2023 00:10:43 +0800 Subject: [PATCH 21/51] Add Build Your Own Redis from Scratch with C/C++ --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 90abe97..ebc7a3e 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,7 @@ It's a great way to learn. * [**JavaScript**: _Dagoba: an in-memory graph database_](http://aosabook.org/en/500L/dagoba-an-in-memory-graph-database.html) * [**Python**: _DBDB: Dog Bed Database_](http://aosabook.org/en/500L/dbdb-dog-bed-database.html) * [**Python**: _Write your own miniature Redis with Python_](http://charlesleifer.com/blog/building-a-simple-redis-server-with-python/) +* [**C++**: _Build Your Own Redis from Scratch_](https://build-your-own.org/) #### Build your own `Docker` From 987a60720cdeaa067bd8a12f02f1954dba949620 Mon Sep 17 00:00:00 2001 From: Conan Date: Thu, 19 Jan 2023 20:31:56 -0500 Subject: [PATCH 22/51] update the link for Hecto: Build your own text editor in Rust --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ebc7a3e..3705550 100644 --- a/README.md +++ b/README.md @@ -359,7 +359,7 @@ It's a great way to learn. * [**Python**: _Python Tutorial: Make Your Own Text Editor_](https://www.youtube.com/watch?v=xqDonHEYPgA) [video] * [**Python**: _Create a Simple Python Text Editor!_](http://www.instructables.com/id/Create-a-Simple-Python-Text-Editor/) * [**Ruby**: _Build a Collaborative Text Editor Using Rails_](https://blog.aha.io/text-editor/) -* [**Rust**: _Hecto: Build your own text editor in Rust_ ](https://www.philippflenker.com/hecto/) +* [**Rust**: _Hecto: Build your own text editor in Rust_ ](https://www.flenker.blog/hecto/) #### Build your own `Visual Recognition System` From 0f4d4640e472b2bc09a35c565b3bb5b9e7c7dc7a Mon Sep 17 00:00:00 2001 From: Sarup Banskota Date: Mon, 23 Jan 2023 21:27:38 +0800 Subject: [PATCH 23/51] Update banner --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b0e92b..26ed6b4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Banner](https://codecrafters.io/landing/images/byox-banner.gif?v=1)](https://codecrafters.io/github-banner) +[![Banner](https://codecrafters.io/landing/images/byox-banner.png)](https://codecrafters.io/github-banner) ## Table of Contents: Build your own X From 4219a10894c9e4d75557b365bc77270a8d59eebf Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Mon, 30 Jan 2023 06:36:36 +0000 Subject: [PATCH 24/51] Add build your own CDN link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bbf09dd..a432b4c 100644 --- a/README.md +++ b/README.md @@ -443,6 +443,7 @@ It's a great way to learn. * [**Rust**: _Building a DNS server in Rust_](https://github.com/EmilHernvall/dnsguide/blob/master/README.md) * [**Rust**: _Writing Scalable Chat Service from Scratch_](https://nbaksalyar.github.io/2015/07/10/writing-chat-in-rust.html) * [**TypeScript**: _Tiny Package Manager: Learns how npm or Yarn works_](https://github.com/g-plane/tiny-package-manager) +* [**Various**: Building a CDN from Scratch to Learn about CDN](https://github.com/leandromoreira/cdn-up-and-running) ## Contribute * Submissions welcome, just send a PR, or [create an issue](https://github.com/codecrafters-io/build-your-own-x/issues/new) From cb884b674eab20d9d4710420dd46bf0c17dab1f1 Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Mon, 30 Jan 2023 06:38:17 +0000 Subject: [PATCH 25/51] Update primary programming language --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a432b4c..0eedaed 100644 --- a/README.md +++ b/README.md @@ -410,6 +410,7 @@ It's a great way to learn. * [**JavaScript**: _JavaScript Algorithms and Data Structures_](https://github.com/trekhleb/javascript-algorithms) * [**JavaScript**: _Build a ride hailing app with React Native_](https://pusher.com/tutorials/ride-hailing-react-native) * [**Kotlin**: _Build Your Own Cache_](https://github.com/kezhenxu94/cache-lite) +* [**Lua**: Building a CDN from Scratch to Learn about CDN](https://github.com/leandromoreira/cdn-up-and-running) * [**Nim**: _Writing a Redis Protocol Parser_](https://xmonader.github.io/nimdays/day12_resp.html) * [**Nim**: _Writing a Build system_](https://xmonader.github.io/nimdays/day11_buildsystem.html) * [**Nim**: _Writing a MiniTest Framework_](https://xmonader.github.io/nimdays/day08_minitest.html) @@ -443,7 +444,6 @@ It's a great way to learn. * [**Rust**: _Building a DNS server in Rust_](https://github.com/EmilHernvall/dnsguide/blob/master/README.md) * [**Rust**: _Writing Scalable Chat Service from Scratch_](https://nbaksalyar.github.io/2015/07/10/writing-chat-in-rust.html) * [**TypeScript**: _Tiny Package Manager: Learns how npm or Yarn works_](https://github.com/g-plane/tiny-package-manager) -* [**Various**: Building a CDN from Scratch to Learn about CDN](https://github.com/leandromoreira/cdn-up-and-running) ## Contribute * Submissions welcome, just send a PR, or [create an issue](https://github.com/codecrafters-io/build-your-own-x/issues/new) From 334e91d3d42574c2c9d59b2abaaeabd6fc4f6ac1 Mon Sep 17 00:00:00 2001 From: Mohamed Zahran Date: Mon, 30 Jan 2023 14:24:08 +0200 Subject: [PATCH 26/51] [ADD] Adding Andrej Karpathy series Adding [Andrej Karpathy's series Neural Networks: Zero to Hero ]( https://www.youtube.com/playlist?list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ ) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0eedaed..83bd341 100644 --- a/README.md +++ b/README.md @@ -240,6 +240,7 @@ It's a great way to learn. * [**Python**: _Traffic signs classification with a convolutional network_](https://navoshta.com/traffic-signs-classification/) * [**Python**: _Generate Music using LSTM Neural Network in Keras_](https://towardsdatascience.com/how-to-generate-music-using-a-lstm-neural-network-in-keras-68786834d4c5) * [**Python**: _An Introduction to Convolutional Neural Networks_](https://victorzhou.com/blog/intro-to-cnns-part-1/) +* [**Python**: Neural Networks: Zero to Hero_](https://www.youtube.com/playlist?list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ) #### Build your own `Operating System` From 68f98553249e53006fcf891cb032135981bda3eb Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Tue, 31 Jan 2023 07:24:54 +0000 Subject: [PATCH 27/51] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0eedaed..2412fba 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ It's a great way to learn. * [**JavaScript**: _Dagoba: an in-memory graph database_](http://aosabook.org/en/500L/dagoba-an-in-memory-graph-database.html) * [**Python**: _DBDB: Dog Bed Database_](http://aosabook.org/en/500L/dbdb-dog-bed-database.html) * [**Python**: _Write your own miniature Redis with Python_](http://charlesleifer.com/blog/building-a-simple-redis-server-with-python/) -* [**C++**: _Build Your Own Redis from Scratch_](https://build-your-own.org/) +* [**C++**: _Build Your Own Redis from Scratch_](https://build-your-own.org/redis) #### Build your own `Docker` From 534ee2cd6567e9d24424cbfd20cdb0354d0bdc91 Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Tue, 31 Jan 2023 07:27:58 +0000 Subject: [PATCH 28/51] Add https://www.chinedufn.com/3d-webgl-basic-water-tutorial/ --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2412fba..32ac641 100644 --- a/README.md +++ b/README.md @@ -443,6 +443,7 @@ It's a great way to learn. * [**Rust**: _Let's build a browser engine_](https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html) * [**Rust**: _Building a DNS server in Rust_](https://github.com/EmilHernvall/dnsguide/blob/master/README.md) * [**Rust**: _Writing Scalable Chat Service from Scratch_](https://nbaksalyar.github.io/2015/07/10/writing-chat-in-rust.html) +* [**Rust**: _WebGL + Rust: Basic Water Tutorial_](https://www.chinedufn.com/3d-webgl-basic-water-tutorial/) * [**TypeScript**: _Tiny Package Manager: Learns how npm or Yarn works_](https://github.com/g-plane/tiny-package-manager) ## Contribute From 6c64825a99688e223907f17433f7294fa3c1c0a6 Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Tue, 31 Jan 2023 07:30:25 +0000 Subject: [PATCH 29/51] Minor formatting change --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 83bd341..3b98c97 100644 --- a/README.md +++ b/README.md @@ -240,7 +240,7 @@ It's a great way to learn. * [**Python**: _Traffic signs classification with a convolutional network_](https://navoshta.com/traffic-signs-classification/) * [**Python**: _Generate Music using LSTM Neural Network in Keras_](https://towardsdatascience.com/how-to-generate-music-using-a-lstm-neural-network-in-keras-68786834d4c5) * [**Python**: _An Introduction to Convolutional Neural Networks_](https://victorzhou.com/blog/intro-to-cnns-part-1/) -* [**Python**: Neural Networks: Zero to Hero_](https://www.youtube.com/playlist?list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ) +* [**Python**: _Neural Networks: Zero to Hero_](https://www.youtube.com/playlist?list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ) #### Build your own `Operating System` From 6d4108551a82cdf65def292761ef6ec589448ef0 Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Tue, 31 Jan 2023 07:42:00 +0000 Subject: [PATCH 30/51] Add https://osblog.stephenmarz.com/ --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a8e9126..7142e4e 100644 --- a/README.md +++ b/README.md @@ -263,6 +263,7 @@ It's a great way to learn. * [**C++**: _Write your own Operating System_](https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M) [video] * [**C++**: _Writing a Bootloader_](http://3zanders.co.uk/2017/10/13/writing-a-bootloader/) * [**Rust**: _Writing an OS in Rust_](https://os.phil-opp.com/) +* [**Rust**: _Add RISC-V Rust Operating System Tutorial_](https://osblog.stephenmarz.com/) * [**(any)**: Linux from scratch](https://linuxfromscratch.org/lfs) #### Build your own `Physics Engine` From 37e9e694b86b57f0e30a09b949c859490d42f35c Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Tue, 31 Jan 2023 07:44:24 +0000 Subject: [PATCH 31/51] Minor formatting changes --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 15db9f5..17e2590 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ * [**C++**: _How OpenGL works: software rendering in 500 lines of code_](https://github.com/ssloy/tinyrenderer/wiki) * [**C++**: _Raycasting engine of Wolfenstein 3D_](http://lodev.org/cgtutor/raycasting.html) * [**C++**: _Physically Based Rendering:From Theory To Implementation_](http://www.pbr-book.org/) -* [**C++**: [Ray Tracing in One Weekend] (https://raytracing.github.io/books/RayTracingInOneWeekend.html) +* [**C++**: _Ray Tracing in One Weekend_](https://raytracing.github.io/books/RayTracingInOneWeekend.html) * [**C++**: _Rasterization: a Practical Implementation_](https://www.scratchapixel.com/lessons/3d-basic-rendering/rasterization-practical-implementation/overview-rasterization-algorithm) * [**C# / TypeScript / JavaScript**: _Learning how to write a 3D soft engine from scratch in C#, TypeScript or JavaScript_](https://www.davrous.com/2013/06/13/tutorial-series-learning-how-to-write-a-3d-soft-engine-from-scratch-in-c-typescript-or-javascript/) * [**Java / JavaScript**: _Build your own 3D renderer_](https://avik-das.github.io/build-your-own-raytracer/) From 2d75e52debb63d04332f4b08e129828636ee9216 Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Thu, 2 Feb 2023 09:11:47 +0000 Subject: [PATCH 32/51] Add Rust CLI tools entries --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 89eea96..406039d 100644 --- a/README.md +++ b/README.md @@ -120,6 +120,9 @@ It's a great way to learn. * [**Go**: _Go CLI tutorial: fortune clone_](https://flaviocopes.com/go-tutorial-fortune/) * [**Nim**: _Writing a stow alternative to manage dotfiles_](https://xmonader.github.io/nimdays/day06_nistow.html) * [**Node.js**: _Create a CLI tool in Javascript_](https://citw.dev/tutorial/create-your-own-cli-tool) +* [**Rust**: _Command line apps in Rust_](https://rust-cli.github.io/book/index.html) +* [**Rust**: _Writing a Command Line Tool in Rust_](https://mattgathu.github.io/2017/08/29/writing-cli-app-rust.html) + #### Build your own `Database` From 2ca60944c16020f7c95b9217e4c5c3770a8a85fd Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Thu, 2 Feb 2023 09:15:50 +0000 Subject: [PATCH 33/51] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 406039d..50f0651 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,7 @@ It's a great way to learn. * [**Common Lisp**: _CHIP-8 in Common Lisp_](http://stevelosh.com/blog/2016/12/chip8-cpu/) * [**JavaScript**: _GameBoy Emulation in JavaScript_](http://imrannazar.com/GameBoy-Emulation-in-JavaScript) * [**Python**: _Emulation Basics: Write your own Chip 8 Emulator/Interpreter_](http://omokute.blogspot.com.br/2012/06/emulation-basics-write-your-own-chip-8.html) +* [**Rust**: _0dmg: Learning Rust by building a partial Game Boy emulator_](https://jeremybanks.github.io/0dmg/) #### Build your own `Front-end Framework / Library` From 15066dd894703a2bb6b48cbfae10b9d54ef4a139 Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Thu, 2 Feb 2023 09:19:31 +0000 Subject: [PATCH 34/51] Add let's write a Lisp --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 50f0651..b35dbcb 100644 --- a/README.md +++ b/README.md @@ -308,6 +308,7 @@ It's a great way to learn. * [**JavaScript**: _The Super Tiny Interpreter_](https://github.com/keyanzhang/the-super-tiny-interpreter) * [**JavaScript**: _Little Lisp interpreter_](https://maryrosecook.com/blog/post/little-lisp-interpreter) * [**JavaScript**: _How to implement a programming language in JavaScript_](http://lisperator.net/pltut/) +* [**JavaScript**: _Let’s go write a Lisp_](https://idiocy.org/lets-go-write-a-lisp/part-1.html) * [**OCaml**: _Writing a C Compiler_](https://norasandler.com/2017/11/29/Write-a-Compiler.html) * [**OCaml**: _Writing a Lisp, the series_](https://bernsteinbear.com/blog/lisp/) * [**Pascal**: _Let's Build a Compiler_](https://compilers.iecc.com/crenshaw/) From 8f780cba353c1d404ff09fbcd2aa69105c176538 Mon Sep 17 00:00:00 2001 From: Hyung-Taik Choi Date: Sat, 4 Feb 2023 15:45:40 +0900 Subject: [PATCH 35/51] Fix typo Fixed a simple punctuation error --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b35dbcb..fa9040f 100644 --- a/README.md +++ b/README.md @@ -415,7 +415,7 @@ It's a great way to learn. * [**C#**: _Loading and rendering 3D skeletal animations from scratch in C# and GLSL_](https://www.seanjoflynn.com/research/skeletal-animation.html) * [**Clojure**: _Building a spell-checker_](https://bernhardwenzel.com/articles/clojure-spellchecker/) * [**Go**: _Build A Simple Terminal Emulator In 100 Lines of Golang_](https://ishuah.com/2021/03/10/build-a-terminal-emulator-in-100-lines-of-go/) -* [**Go**, _Let's Create a Simple Load Balancer_](https://kasvith.github.io/posts/lets-create-a-simple-lb-go/) +* [**Go**: _Let's Create a Simple Load Balancer_](https://kasvith.github.io/posts/lets-create-a-simple-lb-go/) * [**Go**: _Video Encoding from Scratch_](https://github.com/kevmo314/codec-from-scratch) * [**Java**: _How to Build an Android Reddit App_](https://www.youtube.com/playlist?list=PLgCYzUzKIBE9HUJU-upNvl3TRVAo9W47y) [video] * [**JavaScript**: _Build Your Own Module Bundler - Minipack_](https://github.com/ronami/minipack) From ece0157b3c9d8907ff4d0735e036a08a5fa9c604 Mon Sep 17 00:00:00 2001 From: dineshgowda24 Date: Wed, 15 Feb 2023 01:17:20 +0530 Subject: [PATCH 36/51] Add kv store in ruby --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fa9040f..4d998a8 100644 --- a/README.md +++ b/README.md @@ -143,6 +143,7 @@ It's a great way to learn. * [**Python**: _A workshop on Linux containers: Rebuild Docker from Scratch_](https://github.com/Fewbytes/rubber-docker) * [**Python**: _A proof-of-concept imitation of Docker, written in 100% Python_](https://github.com/tonybaloney/mocker) * [**Shell**: _Docker implemented in around 100 lines of bash_](https://github.com/p8952/bocker) +* [**Ruby**: _Build your own fast, persistent KV store in Ruby_](https://dinesh.wiki/posts/build-your-own-persistent-kv-store/) #### Build your own `Emulator / Virtual Machine` From d43fcaeda42c39295491b3d8ad023daf91ca2b48 Mon Sep 17 00:00:00 2001 From: dineshgowda24 Date: Wed, 15 Feb 2023 02:37:15 +0530 Subject: [PATCH 37/51] move the listing from docker to database --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d998a8..7ff0f57 100644 --- a/README.md +++ b/README.md @@ -134,6 +134,7 @@ It's a great way to learn. * [**Python**: _DBDB: Dog Bed Database_](http://aosabook.org/en/500L/dbdb-dog-bed-database.html) * [**Python**: _Write your own miniature Redis with Python_](http://charlesleifer.com/blog/building-a-simple-redis-server-with-python/) * [**C++**: _Build Your Own Redis from Scratch_](https://build-your-own.org/redis) +* [**Ruby**: _Build your own fast, persistent KV store in Ruby_](https://dinesh.wiki/posts/build-your-own-persistent-kv-store/) #### Build your own `Docker` @@ -143,7 +144,6 @@ It's a great way to learn. * [**Python**: _A workshop on Linux containers: Rebuild Docker from Scratch_](https://github.com/Fewbytes/rubber-docker) * [**Python**: _A proof-of-concept imitation of Docker, written in 100% Python_](https://github.com/tonybaloney/mocker) * [**Shell**: _Docker implemented in around 100 lines of bash_](https://github.com/p8952/bocker) -* [**Ruby**: _Build your own fast, persistent KV store in Ruby_](https://dinesh.wiki/posts/build-your-own-persistent-kv-store/) #### Build your own `Emulator / Virtual Machine` From 675af15d79ac982150fd09c8b00a4e4921d77137 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 28 Feb 2023 01:29:53 +0800 Subject: [PATCH 38/51] Add the database, regex, and interpreter links from build-your-own.org. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 7ff0f57..8d4a9d6 100644 --- a/README.md +++ b/README.md @@ -134,6 +134,7 @@ It's a great way to learn. * [**Python**: _DBDB: Dog Bed Database_](http://aosabook.org/en/500L/dbdb-dog-bed-database.html) * [**Python**: _Write your own miniature Redis with Python_](http://charlesleifer.com/blog/building-a-simple-redis-server-with-python/) * [**C++**: _Build Your Own Redis from Scratch_](https://build-your-own.org/redis) +* [**Golang**: _Build Your Own Database from Scratch: Persistence, Indexing, Concurrency_](https://build-your-own.org/database/) * [**Ruby**: _Build your own fast, persistent KV store in Ruby_](https://dinesh.wiki/posts/build-your-own-persistent-kv-store/) #### Build your own `Docker` @@ -318,6 +319,7 @@ It's a great way to learn. * [**Python**: _How to Write a Lisp Interpreter in Python_](http://norvig.com/lispy.html) * [**Python**: _Let’s Build A Simple Interpreter_](https://ruslanspivak.com/lsbasi-part1/) * [**Python**: _Make Your Own Simple Interpreted Programming Language_](https://www.youtube.com/watch?v=dj9CBS3ikGA&list=PLZQftyCk7_SdoVexSmwy_tBgs7P0b97yD&index=1) [video] +* [**Python**: _Build Your Own Interpreter/Compiler: The Pretty Laughable Compiler_](https://build-your-own.org/b2a/p0_intro) * [**Racket**: _Beautiful Racket: How to make your own programming languages with Racket_](https://beautifulracket.com/) * [**Ruby**: _A Compiler From Scratch_](https://www.destroyallsoftware.com/screencasts/catalog/a-compiler-from-scratch) * [**Ruby**: _Markdown compiler from scratch in Ruby_](https://blog.beezwax.net/2017/07/07/writing-a-markdown-compiler/) @@ -334,6 +336,7 @@ It's a great way to learn. * [**JavaScript**: _How to implement regular expressions in functional javascript using derivatives_](http://dpk.io/dregs/toydregs) * [**JavaScript**: _Implementing a Regular Expression Engine_](https://deniskyashif.com/2019/02/17/implementing-a-regular-expression-engine/) * [**Perl**: _How Regexes Work_](https://perl.plover.com/Regex/article.html) +* [**Python**: _Build Your Own Regular Expression Engines: Backtracking, NFA, DFA_](https://build-your-own.org/b2a/r0_intro) * [**Scala**: _No Magic: Regular Expressions_](https://rcoh.svbtle.com/no-magic-regular-expressions) #### Build your own `Search Engine` From 4c645a433a727d87688327dd1872ba430b95f41a Mon Sep 17 00:00:00 2001 From: HexadecimalByte <119161197+HexadecimalByte@users.noreply.github.com> Date: Tue, 7 Mar 2023 08:02:37 +0100 Subject: [PATCH 39/51] Add the Game Engine Series by The Cherno --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8d4a9d6..91de803 100644 --- a/README.md +++ b/README.md @@ -415,6 +415,7 @@ It's a great way to learn. * [**C++**: _How X Window Managers work and how to write one_](https://seasonofcode.com/posts/how-x-window-managers-work-and-how-to-write-one-part-i.html) * [**C++**: _Writing a Linux Debugger_](https://blog.tartanllama.xyz/writing-a-linux-debugger-setup/) * [**C++**: _How a 64k intro is made_](http://www.lofibucket.com/articles/64k_intro.html) +* [**C++**: _Make your own Game Engine_](https://www.youtube.com/playlist?list=PLlrATfBNZ98dC-V-N3m0Go4deliWHPFwT) * [**C#**: _C# Networking: Create a TCP chater server, TCP games, UDP Pong and more_](https://16bpp.net/tutorials/csharp-networking) * [**C#**: _Loading and rendering 3D skeletal animations from scratch in C# and GLSL_](https://www.seanjoflynn.com/research/skeletal-animation.html) * [**Clojure**: _Building a spell-checker_](https://bernhardwenzel.com/articles/clojure-spellchecker/) From 086afcac196eeb82e057f53ab94411c5c9922e8b Mon Sep 17 00:00:00 2001 From: 9bany Date: Tue, 9 May 2023 08:18:18 +0700 Subject: [PATCH 40/51] add Build Your Own AdBlocker in (Literally) 10 Minutes --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 91de803..4c23a46 100644 --- a/README.md +++ b/README.md @@ -429,6 +429,7 @@ It's a great way to learn. * [**JavaScript**: _Implement your own — call(), apply() and bind() method in JavaScript_](https://blog.usejournal.com/implement-your-own-call-apply-and-bind-method-in-javascript-42cc85dba1b) * [**JavaScript**: _JavaScript Algorithms and Data Structures_](https://github.com/trekhleb/javascript-algorithms) * [**JavaScript**: _Build a ride hailing app with React Native_](https://pusher.com/tutorials/ride-hailing-react-native) +* [**JavaScript**: _Build Your Own AdBlocker in (Literally) 10 Minutes_](https://levelup.gitconnected.com/building-your-own-adblocker-in-literally-10-minutes-1eec093b04cd) * [**Kotlin**: _Build Your Own Cache_](https://github.com/kezhenxu94/cache-lite) * [**Lua**: Building a CDN from Scratch to Learn about CDN](https://github.com/leandromoreira/cdn-up-and-running) * [**Nim**: _Writing a Redis Protocol Parser_](https://xmonader.github.io/nimdays/day12_resp.html) From 87d0bea7ec48510a077102a27267bf27373075fb Mon Sep 17 00:00:00 2001 From: Liu Peiyuan Date: Tue, 9 May 2023 04:11:22 +0800 Subject: [PATCH 41/51] Build your own VPN/Virtual Switch --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 91de803..be4cc33 100644 --- a/README.md +++ b/README.md @@ -232,6 +232,7 @@ It's a great way to learn. * [**C**: _Beej's Guide to Network Programming_](http://beej.us/guide/bgnet/) * [**C**: _Let's code a TCP/IP stack_](http://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/) +* [**C / Python**: _Build your own VPN/Virtual Switch_](https://github.com/peiyuanix/build-your-own-zerotier) * [**Ruby**: _How to build a network stack in Ruby_](https://medium.com/geckoboard-under-the-hood/how-to-build-a-network-stack-in-ruby-f73aeb1b661b) #### Build your own `Neural Network` From 1ab690c24f6d6609cd1e863fb9e82d438e0eefec Mon Sep 17 00:00:00 2001 From: Louis Nguyen <118785298+louisnguyencreative@users.noreply.github.com> Date: Thu, 18 May 2023 16:40:46 +0700 Subject: [PATCH 42/51] Update README.md with banner GIF --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9f35f1b..54a5fb5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Banner](https://codecrafters.io/landing/images/byox-banner.png)](https://codecrafters.io/github-banner) +[![Banner](https://codecrafters.io/landing/images/byox-banner.gif)](https://codecrafters.io/github-banner) ## Table of Contents: Build your own X From 995b06d4cd361e0c681f68c7bb04f153509182b7 Mon Sep 17 00:00:00 2001 From: Louis Nguyen <118785298+louisnguyencreative@users.noreply.github.com> Date: Thu, 18 May 2023 16:44:19 +0700 Subject: [PATCH 43/51] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 54a5fb5..9f35f1b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Banner](https://codecrafters.io/landing/images/byox-banner.gif)](https://codecrafters.io/github-banner) +[![Banner](https://codecrafters.io/landing/images/byox-banner.png)](https://codecrafters.io/github-banner) ## Table of Contents: Build your own X From e77a3edcdb7eb1febddf90e5c085e42282c60c6a Mon Sep 17 00:00:00 2001 From: Vencyr Laurence Imbo Amores <98305566+VENCYR@users.noreply.github.com> Date: Thu, 18 May 2023 17:53:25 +0800 Subject: [PATCH 44/51] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9f35f1b..54a5fb5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Banner](https://codecrafters.io/landing/images/byox-banner.png)](https://codecrafters.io/github-banner) +[![Banner](https://codecrafters.io/landing/images/byox-banner.gif)](https://codecrafters.io/github-banner) ## Table of Contents: Build your own X From 1d60feb58553d83401ef6bd3f3b695e913a63e01 Mon Sep 17 00:00:00 2001 From: Saeed Hasani Borzadaran Date: Sat, 20 May 2023 21:01:31 +0330 Subject: [PATCH 45/51] Add Write a `Shell` in `C` --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 54a5fb5..edcfc2f 100644 --- a/README.md +++ b/README.md @@ -355,6 +355,7 @@ It's a great way to learn. * [**C**: _Let's build a shell!_](https://github.com/kamalmarhubi/shell-workshop) * [**C**: _Writing a UNIX Shell_](https://indradhanush.github.io/blog/writing-a-unix-shell-part-1/) * [**C**: _Build Your Own Shell_](https://github.com/tokenrove/build-your-own-shell) +* [**C**: Write a shell in C](https://danishpraka.sh/posts/write-a-shell/) * [**Go**: _Writing a simple shell in Go_](https://sj14.gitlab.io/post/2018-07-01-go-unix-shell/) * [**Rust**: _Build Your Own Shell using Rust_](https://www.joshmcguigan.com/blog/build-your-own-shell-rust/) From 193c40cb68432b3c890a42392e8b295553dcdcf9 Mon Sep 17 00:00:00 2001 From: Louis Nguyen <118785298+louisnguyencreative@users.noreply.github.com> Date: Mon, 22 May 2023 13:18:39 +0700 Subject: [PATCH 46/51] update banner's link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 54a5fb5..a719184 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Banner](https://codecrafters.io/landing/images/byox-banner.gif)](https://codecrafters.io/github-banner) +[![Banner](https://codecrafters.io/landing/images/byox-banner.gif)](https://app.codecrafters.io/tracks) ## Table of Contents: Build your own X From 0db9fcbd82727ce355c3af38799538c83ee48d77 Mon Sep 17 00:00:00 2001 From: "build-your-own.org" Date: Mon, 22 May 2023 18:50:58 +0800 Subject: [PATCH 47/51] Update the Build Your Own Compiler book URL. (#904) Co-authored-by: root --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a719184..459f80a 100644 --- a/README.md +++ b/README.md @@ -320,7 +320,7 @@ It's a great way to learn. * [**Python**: _How to Write a Lisp Interpreter in Python_](http://norvig.com/lispy.html) * [**Python**: _Let’s Build A Simple Interpreter_](https://ruslanspivak.com/lsbasi-part1/) * [**Python**: _Make Your Own Simple Interpreted Programming Language_](https://www.youtube.com/watch?v=dj9CBS3ikGA&list=PLZQftyCk7_SdoVexSmwy_tBgs7P0b97yD&index=1) [video] -* [**Python**: _Build Your Own Interpreter/Compiler: The Pretty Laughable Compiler_](https://build-your-own.org/b2a/p0_intro) +* [**Python**: _From Source Code To Machine Code: Build Your Own Compiler From Scratch_](https://build-your-own.org/compiler/) * [**Racket**: _Beautiful Racket: How to make your own programming languages with Racket_](https://beautifulracket.com/) * [**Ruby**: _A Compiler From Scratch_](https://www.destroyallsoftware.com/screencasts/catalog/a-compiler-from-scratch) * [**Ruby**: _Markdown compiler from scratch in Ruby_](https://blog.beezwax.net/2017/07/07/writing-a-markdown-compiler/) From 5981ca72d4077a48f6c316e2ec9ae8e477be580b Mon Sep 17 00:00:00 2001 From: Kasun Vithanage Date: Sun, 28 May 2023 19:26:01 +0530 Subject: [PATCH 48/51] Update URL for Let's Create a Simple Load Balancer With Go (#878) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 459f80a..1072d6a 100644 --- a/README.md +++ b/README.md @@ -421,7 +421,7 @@ It's a great way to learn. * [**C#**: _Loading and rendering 3D skeletal animations from scratch in C# and GLSL_](https://www.seanjoflynn.com/research/skeletal-animation.html) * [**Clojure**: _Building a spell-checker_](https://bernhardwenzel.com/articles/clojure-spellchecker/) * [**Go**: _Build A Simple Terminal Emulator In 100 Lines of Golang_](https://ishuah.com/2021/03/10/build-a-terminal-emulator-in-100-lines-of-go/) -* [**Go**: _Let's Create a Simple Load Balancer_](https://kasvith.github.io/posts/lets-create-a-simple-lb-go/) +* [**Go**: _Let's Create a Simple Load Balancer_](https://kasvith.me/posts/lets-create-a-simple-lb-go/) * [**Go**: _Video Encoding from Scratch_](https://github.com/kevmo314/codec-from-scratch) * [**Java**: _How to Build an Android Reddit App_](https://www.youtube.com/playlist?list=PLgCYzUzKIBE9HUJU-upNvl3TRVAo9W47y) [video] * [**JavaScript**: _Build Your Own Module Bundler - Minipack_](https://github.com/ronami/minipack) From 4fbbb9570ee5d99a122eb529ad6769ae2fe8e936 Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Wed, 31 May 2023 15:05:02 +0100 Subject: [PATCH 49/51] Update link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1072d6a..7448822 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Banner](https://codecrafters.io/landing/images/byox-banner.gif)](https://app.codecrafters.io/tracks) +[![Banner](https://codecrafters.io/images/byox-banner.gif)](https://app.codecrafters.io/tracks) ## Table of Contents: Build your own X From 52c8e0801ff2e3fb83778e604046a7f7a559c869 Mon Sep 17 00:00:00 2001 From: Louis Nguyen <118785298+louisnguyencreative@users.noreply.github.com> Date: Mon, 5 Jun 2023 23:29:06 +0700 Subject: [PATCH 50/51] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7448822..f1a932d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Banner](https://codecrafters.io/images/byox-banner.gif)](https://app.codecrafters.io/tracks) +[![Banner](https://codecrafters.io/images/byox-banner.gif)](https://codecrafters.io/github-banner) ## Table of Contents: Build your own X From 647f2a440244aee06922f238023eacdf1d725935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=2E=20Tolga=20Cang=C3=B6z?= <46008593+standardAI@users.noreply.github.com> Date: Wed, 12 Jul 2023 05:42:29 +0300 Subject: [PATCH 51/51] Update README.md (#916) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 242d3cc..dbf0d96 100644 --- a/README.md +++ b/README.md @@ -457,7 +457,7 @@ It's a great way to learn. * [**Python**: _A Simple Content-Based Recommendation Engine in Python_](http://blog.untrod.com/2016/06/simple-similar-products-recommendation-engine-in-python.html) * [**Python**: _Stock Market Predictions with LSTM in Python_](https://www.datacamp.com/community/tutorials/lstm-python-stock-market) * [**Python**: _Build your own error-correction fountain code with Luby Transform Codes_](https://franpapers.com/en/algorithmic/2018-introduction-to-fountain-codes-lt-codes-with-python/) -* [**Python**: _Building a simple Generative Adversial Network (GAN) using Tensorflow_](https://blog.paperspace.com/implementing-gans-in-tensorflow/) +* [**Python**: _Building a simple Generative Adversarial Network (GAN) using Tensorflow_](https://blog.paperspace.com/implementing-gans-in-tensorflow/) * [**Python**: _Learn ML Algorithms by coding: Decision Trees_](https://lethalbrains.com/learn-ml-algorithms-by-coding-decision-trees-439ac503c9a4) * [**Python**: _JSON Decoding Algorithm_](https://github.com/cheery/json-algorithm) * [**Python**: _Build your own Git plugin with python_](https://www.joshburns.xyz/posts/byo_git_plugin_tutorial)