diff --git a/README.md b/README.md index 54eb2b4..3298f76 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,8 @@ * [**JavaScript / Pseudocode**: _Computer Graphics from scratch_](http://www.gabrielgambetta.com/computer-graphics-from-scratch/introduction.html) * [**Python**: _A 3D Modeller_](http://aosabook.org/en/500L/a-3d-modeller.html) +[Back to top](#table-of-contents) + #### Build your own `Augmented Reality` * [**C#**: _How To: Augmented Reality App Tutorial for Beginners with Vuforia and Unity 3D_](https://www.youtube.com/watch?v=uXNjNcqW4kY) [video] @@ -56,6 +58,8 @@ * [**C#**: _How to Augmented Reality AR Tutorial: ARKit Portal to the Upside Down_](https://www.youtube.com/watch?v=Z5AmqMuNi08) [video] * [**Python**: _Augmented Reality with Python and OpenCV_](https://bitesofcode.wordpress.com/2017/09/12/augmented-reality-with-python-and-opencv-part-1/) +[Back to top](#table-of-contents) + #### Build your own `BitTorrent Client` * [**C#**: _Building a BitTorrent client from scratch in C#_](https://www.seanjoflynn.com/research/bittorrent.html) @@ -63,6 +67,8 @@ * [**Node.js**: _Write your own bittorrent client_](https://allenkim67.github.io/programming/2016/05/04/how-to-make-your-own-bittorrent-client.html) * [**Python**: _A BitTorrent client in Python 3.5_](http://markuseliasson.se/article/bittorrent-in-python/) +[Back to top](#table-of-contents) + #### Build your own `Blockchain / Cryptocurrency` * [**ATS**: _Functional Blockchain_](https://beta.observablehq.com/@galletti94/functional-blockchain) @@ -88,6 +94,8 @@ * [**TypeScript**: _Naivecoin: a tutorial for building a cryptocurrency_](https://lhartikk.github.io/) * [**TypeScript**: _NaivecoinStake: a tutorial for building a cryptocurrency with the Proof of Stake consensus_](https://naivecoinstake.learn.uno/) +[Back to top](#table-of-contents) + #### Build your own `Bot` * [**Haskell**: _Roll your own IRC bot_](https://wiki.haskell.org/Roll_your_own_IRC_bot) @@ -108,6 +116,8 @@ * [**R**: _Build A Cryptocurrency Trading Bot with R_](https://towardsdatascience.com/build-a-cryptocurrency-trading-bot-with-r-1445c429e1b1) * [**Rust**: _A bot for Starcraft in Rust, C or any other language_](https://habr.com/en/post/436254/) +[Back to top](#table-of-contents) + #### Build your own `Command-Line Tool` * [**C**: _Rewriting the cat command from scratch_](https://learnto.computer/screencasts/bsd-cat) [video] @@ -117,6 +127,8 @@ * [**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) +[Back to top](#table-of-contents) + #### Build your own `Database` * [**C**: _Let's Build a Simple Database_](https://cstack.github.io/db_tutorial/) @@ -128,6 +140,8 @@ * [**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/) +[Back to top](#table-of-contents) + #### Build your own `Docker` * [**C**: _Linux containers in 500 lines of code_](https://blog.lizzie.io/linux-containers-in-500-loc.html) @@ -137,6 +151,8 @@ * [**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) +[Back to top](#table-of-contents) + #### Build your own `Emulator / Virtual Machine` * [**C**: _Virtual machine in C_](https://blog.felixangell.com/virtual-machine-in-c/) @@ -150,6 +166,8 @@ * [**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) +[Back to top](#table-of-contents) + #### Build your own `Front-end Framework / Library` * [**JavaScript**: _WTF is JSX (Let's Build a JSX Renderer)_](https://jasonformat.com/wtf-is-jsx/) @@ -169,6 +187,8 @@ * [**JavaScript**: _Building a frontend framework, from scratch, with components (templating, state, VDOM)_](https://mfrachet.github.io/create-frontend-framework/) * [**JavaScript**: _Build your own React_](https://pomb.us/build-your-own-react/) +[Back to top](#table-of-contents) + #### Build your own `Game` * [**C**: _Handmade Hero_](https://handmadehero.org/) @@ -207,6 +227,8 @@ * [**Rust**: _Adventures in Rust: A Basic 2D Game_](https://a5huynh.github.io/posts/2018/adventures-in-rust/) * [**Rust**: _Roguelike Tutorial in Rust + tcod_](https://tomassedovic.github.io/roguelike-tutorial/) +[Back to top](#table-of-contents) + #### Build your own `Git` * [**Haskell**: _Reimplementing “git clone” in Haskell from the bottom up_](http://stefan.saasen.me/articles/git-clone-in-haskell-from-the-bottom-up/) @@ -216,12 +238,16 @@ * [**Python**: _Write yourself a Git!_](https://wyag.thb.lt/) * [**Ruby**: _Rebuilding Git in Ruby_](https://robots.thoughtbot.com/rebuilding-git-in-ruby) +[Back to top](#table-of-contents) + #### Build your own `Network Stack` * [**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/) * [**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) +[Back to top](#table-of-contents) + #### Build your own `Neural Network` * [**C#**: _Neural Network OCR_](https://www.codeproject.com/Articles/11285/Neural-Network-OCR) @@ -239,6 +265,8 @@ * [**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/) +[Back to top](#table-of-contents) + #### Build your own `Operating System` * [**Assembly**: _Writing a Tiny x86 Bootloader_](http://joebergeron.io/posts/post_two.html) @@ -259,6 +287,8 @@ * [**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/) +[Back to top](#table-of-contents) + #### Build your own `Physics Engine` * [**C**: _Video Game Physics Tutorial_](https://www.toptal.com/game/video-game-physics-part-i-an-introduction-to-rigid-body-dynamics) @@ -271,6 +301,8 @@ * [**JavaScript**: _Broad Phase Collision Detection Using Spatial Partitioning_](http://buildnewgames.com/broad-phase-collision-detection/) * [**JavaScript**: _Build a simple 2D physics engine for JavaScript games_](https://www.ibm.com/developerworks/library/wa-build2dphysicsengine/index.html) +[Back to top](#table-of-contents) + #### Build your own `Programming Language` * [**(any)**: _mal - Make a Lisp_](https://github.com/kanaka/mal#mal---make-a-lisp) @@ -315,6 +347,8 @@ * [**Swift**: _Building a LISP from scratch with Swift_](https://www.uraimo.com/2017/02/05/building-a-lisp-from-scratch-with-swift/) * [**TypeScript**: _Build your own WebAssembly Compiler_](https://blog.scottlogic.com/2019/05/17/webassembly-compiler.html) +[Back to top](#table-of-contents) + #### Build your own `Regex Engine` * [**C**: _A Regular Expression Matcher_](https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html) @@ -324,6 +358,8 @@ * [**Perl**: _How Regexes Work_](https://perl.plover.com/Regex/article.html) * [**Scala**: _No Magic: Regular Expressions_](https://rcoh.svbtle.com/no-magic-regular-expressions) +[Back to top](#table-of-contents) + #### Build your own `Search Engine` * [**CSS**: _A search engine in CSS_](https://stories.algolia.com/a-search-engine-in-css-b5ec4e902e97) @@ -333,6 +369,8 @@ * [**Python**: _Making text search learn from feedback_](https://medium.com/filament-ai/making-text-search-learn-from-feedback-4fe210fd87b0) * [**Python**: _Finding Important Words in Text Using TF-IDF_](https://stevenloria.com/tf-idf/) +[Back to top](#table-of-contents) + #### Build your own `Shell` * [**C**: _Tutorial - Write a Shell in C_](https://brennan.io/2015/01/16/write-a-shell-in-c/) @@ -343,6 +381,8 @@ * [**Ruby**: _A Unix Shell in Ruby_](https://www.jstorimer.com/blogs/workingwithcode/7766107-a-unix-shell-in-ruby) * [**Rust**: _Build Your Own Shell using Rust_](https://www.joshmcguigan.com/blog/build-your-own-shell-rust/) +[Back to top](#table-of-contents) + #### Build your own `Template Engine` * [**JavaScript**: _JavaScript template engine in just 20 lines_](http://krasimirtsonev.com/blog/article/Javascript-template-engine-in-just-20-line) @@ -351,6 +391,8 @@ * [**Python**: _A Template Engine_](http://aosabook.org/en/500L/a-template-engine.html) * [**Ruby**: _How to write a template engine in less than 30 lines of code_](http://bits.citrusbyte.com/how-to-write-a-template-library/) +[Back to top](#table-of-contents) + #### Build your own `Text Editor` * [**C**: _Build Your Own Text Editor_](https://viewsourcecode.org/snaptoken/kilo/) @@ -359,22 +401,30 @@ * [**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/) +[Back to top](#table-of-contents) + #### Build your own `Visual Recognition System` * [**Python**: _Developing a License Plate Recognition System with Machine Learning in Python_](https://blog.devcenter.co/developing-a-license-plate-recognition-system-with-machine-learning-in-python-787833569ccd) * [**Python**: _Building a Facial Recognition Pipeline with Deep Learning in Tensorflow_](https://hackernoon.com/building-a-facial-recognition-pipeline-with-deep-learning-in-tensorflow-66e7645015b8) +[Back to top](#table-of-contents) + #### 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] +[Back to top](#table-of-contents) + #### Build your own `Web Search Engine` * [**PHP**: _Code a Search Engine in PHP_](https://boyter.org/2013/01/code-for-a-search-engine-in-php-part-1/) * [**Ruby**: _Write an Internet search engine with 200 lines of Ruby code_](https://blog.saush.com/2009/03/17/write-an-internet-search-engine-with-200-lines-of-ruby-code/) +[Back to top](#table-of-contents) + #### Build your own `Web Server` * [**C#**: _Writing a Web Server from Scratch_](https://www.codeproject.com/Articles/859108/Writing-a-Web-Server-from-Scratch) @@ -388,6 +438,7 @@ * [**Python**: _Implementing a RESTful Web API with Python & Flask_](http://blog.luisrei.com/articles/flaskrest.html) * [**Ruby**: _Building a simple websockets server from scratch in Ruby_](http://blog.honeybadger.io/building-a-simple-websockets-server-from-scratch-in-ruby/) +[Back to top](#table-of-contents) #### Uncategorized @@ -446,6 +497,8 @@ * [**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) +[Back to top](#table-of-contents) + ## How to contribute * Contributions are very welcome: [Submit tutorial](https://github.com/danistefanovic/build-your-own-x/issues/new)