├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Machine-Academy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Resources for Machiners 2 | 3 | ## General links 4 | 5 | ### chris@machine Specific 6 | 7 | - [chris@machine youtube](https://www.youtube.com/channel/UCS97tchJDq17Qms3cux8wcA) 8 | - [LunarVim](https://github.com/LunarVim/LunarVim) 9 | 10 | ### Misc. links 11 | 12 | - [Growing a language](https://www.youtube.com/watch?v=_ahvzDzKdB0&ab_channel=BillPugh) 13 | - [Motivation](https://www.youtube.com/watch?v=JXeJANDKwDc) 14 | - [Missing Semester](https://missing.csail.mit.edu/) 15 | - [self improvement](https://aliabdaal.com/tag/study/) 16 | - [Record with loud noise](https://www.youtube.com/watch?v=lTodCeVAfpI) 17 | - [Talk on Writing Readable Code](https://www.youtube.com/watch?v=wf-BqAjZb8M&ab_channel=PyCon2015) 18 | - [From the guy who wrote "Designing Data Intensive Applications](https://youtube.com/playlist?list=PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB) 19 | - [Guide to writing a README](https://readme.so/) 20 | - [Dev Cheat Sheets](https://devhints.io/) 21 | - [Polya's 4 Step Approach to Problem Solving](http://web.mnstate.edu/peil/M110/Worksheet/PolyaProblemSolve.pdf) 22 | - [Recursion Explained](https://www.youtube.com/playlist?list=PLzH6n4zXuckrnXQ-5AfWUdnCzZOQgft1B) 23 | - [Open Source Cheat sheet](https://opensource.com/downloads/cheat-sheets) 24 | - [Intro to Tmux](https://www.youtube.com/watch?v=kuK9FmC1ZkE&t=1s) 25 | - [the hated one](https://www.youtube.com/watch?v=qhPe3rLEktE) 26 | 27 | ## Interview Prep 28 | 29 | - [Edabit](https://edabit.com/) 30 | - [CodeSignal](https://codesignal.com/) 31 | - [HackerRank](https://www.hackerrank.com/) 32 | - [LeetCode](https://leetcode.com/) 33 | 34 | 35 | ## Git 36 | 37 | - [Web app for git commands / help](https://gitexplorer.com/) 38 | - [Git guide](https://rogerdudler.github.io/git-guide/) 39 | - [Merge Upstream Repo Fork](https://www.chrisatmachine.com/Git/01-Merging-Upstream-Repo-Fork/) 40 | - [interactive git cheatsheet](https://ndpsoftware.com/git-cheatsheet.html) 41 | 42 | ## Modeling, UML, Diagrams 43 | 44 | - [PlantUML Github](https://github.com/plantuml/plantuml) 45 | - [UML diagrams](https://www.umlet.com/changes.htm) 46 | 47 | 48 | ## Integrated Development Environments and Text Editors 49 | 50 | ### Neo/Vim 51 | 52 | - [Pacvim CLI Game to learn vim](https://www.ostechnix.com/pacvim-a-cli-game-to-learn-vim-commands/) 53 | - [Vim-plug-browse](https://github.com/mudassir-ahmed/vim-plug-browse) 54 | - [Vim Key Bindings cheatsheet](https://vim.rtorr.com/) 55 | - [Install Language Servers for Neovim 0.5+](https://ka.codes/posts/nvim-lspinstall#nvim-lspinstall) 56 | 57 | ### Jupyter Notebook/Labs 58 | 59 | - [Install Jupyter labs](https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html) 60 | 61 | ### Emacs 62 | 63 | - Emacs tutorial 64 | https://www.youtube.com/watch?v=48JlgiBpw_I 65 | - https://youtu.be/PVsSOmUB7ic (learn emacs org mode: spacemacs intro) 66 | - For Emacs org-mode : 67 | https://home.fnal.gov/~neilsen/notebook/orgExamples/org-examples.html#sec-19 68 | https://orgmode.org/worg/org-contrib/babel/languages.html 69 | https://orgmode.org/ 70 | 71 | 72 | ## Online Chat Clients 73 | 74 | ### IRC 75 | 76 | - https://irssi.org/documentation/startup/ 77 | 78 | ## Databases 79 | 80 | - [Learn mongoDB](https://university.mongodb.com/) 81 | 82 | ## Linux Guides 83 | 84 | - [The Guy](https://rwx.gg/) 85 | - [The guys stream on learning linux](https://www.youtube.com/playlist?list=PLrK9UeDMcQLrO5fwV5smfNvau0PAP16-I) 86 | - [Linux survival for beginners](https://linuxsurvival.com/linux-change-directory-command/) 87 | - [God Tier Arch install guide](https://arch.d3sox.me/) 88 | 89 | ## TWM, WM, DE, Bars 90 | 91 | - [Plasma KDE but choose what's installed](https://averagelinuxuser.com/plasma-5-on-arch-linux-install-and-configure/) 92 | - [Shadobar](https://github.com/Shadorain/shadobar) 93 | 94 | ## System House Keeping 95 | 96 | - [Timeshift Backups](https://www.youtube.com/watch?v=2FyqpUOLrqs) 97 | - [Recover with Timeshift through Live ISO](https://www.youtube.com/watch?v=3YSeMxiXi7c) 98 | - [Grsync (for home folder backups)](https://www.youtube.com/watch?v=Ne_hHj8S1QQ) 99 | - [Rsync (terminal based)](https://www.youtube.com/watch?v=G2gbun8LEC4) 100 | - Rsync w/ CRON (backup automation) 101 | - https://www.youtube.com/watch?v=dPwssteyDXU 102 | - https://www.youtube.com/watch?v=cREJHcu5G80 103 | 104 | ## Language Guides 105 | 106 | ### REGEX 101 107 | 108 | - To learn about regex : https://www.rexegg.com/regex-quickstart.html 109 | - There is also web version of books from this site : https://learnbyexample.github.io/books/ 110 | - To try to regex : https://regex101.com/ 111 | 112 | ### JavaScrpit (JS/JSX) 113 | 114 | - [JS Questions](https://github.com/lydiahallie/javascript-questions) 115 | - [Ramda Tutorial on JS](https://youtube.com/playlist?list=PLs0HJRuXPAqu6OLH_2K0K6jlxFP7erHDy) 116 | - [Five ways to average with JS reduce](https://jrsinclair.com/articles/2019/five-ways-to-average-with-js-reduce/) 117 | 118 | ### Java 119 | 120 | - Java Thread Sync and Monior -- https://www.artima.com/insidejvm/ed2/threadsynchP.html 121 | 122 | ### Python 123 | 124 | - [Python Async/Await](https://youtu.be/t5Bo1Je9EmE) 125 | - [Python AI/ML with sentdex] https://www.youtube.com/c/sentdex/playlists 126 | - [Python PyTorch Course](https://docs.microsoft.com/en-us/learn/paths/pytorch-fundamentals/) 127 | - [Python Dev](https://realpython.com/) 128 | - [Discord.py Tutorial series for beginners](https://www.youtube.com/watch?v=nW8c7vT6Hl4&list=PLW3GfRiBCHOhfVoiDZpSz8SM_HybXRPzZ) 129 | - [cadCad](https://cadcad.org/) 130 | - If you are interested to create and host your personal website or blog site using 131 | entirely Python and simple Markdown without having to learn HTML and CSS, check out the following series of blog posts in my website, which was also created using only Python, specifically the Pelican library. 132 | https://shahayush.com/2020/03/web-pelican-intro/ 133 | - [tutorial : "Managing Multiple Python Versions With pyenv"](https://realpython.com/intro-to-pyenv/) 134 | - [Python Cheat Sheet & Playground](https://github.com/trekhleb/learn-python#testing-the-code) 135 | 136 | ### Bash 137 | 138 | - https://devhints.io/bash credits: @Xearty 139 | 140 | ### Vimscript 141 | 142 | - [VimScript the Hardway](https://learnvimscriptthehardway.stevelosh.com/) 143 | 144 | ### C/C++ 145 | 146 | - [Projects in C](https://github.com/rby90/project-based-tutorials-in-c) 147 | - [Learn Make files](http://nuclear.mutantstargoat.com/articles/make/) 148 | - [Book Title: C Programming, A Modern Approach, Second Edition (Covers both C89 and C99)](https://drive.google.com/drive/folders/1Aq2awlq0I11tIr5DFIBgj_20BnZPk4oR?usp=sharing) 149 | 150 | ### Lua 151 | 152 | - [Lua basics sheet](http://tylerneylon.com/a/learn-lua/) 153 | 154 | ### Rust 155 | 156 | - [Jon Gjengset Rust dev Youtube](https://youtube.com/c/JonGjengset) 157 | - [OS course in Rust](http://rust-class.org/class-1-what-is-an-operating-system.html) 158 | - [Build an OS in Rust](https://os.phil-opp.com/) 159 | - [Rust by Example book](https://doc.rust-lang.org/stable/rust-by-example/) 160 | - [Rust Book](https://doc.rust-lang.org/stable/book/title-page.html) 161 | - [DNS server Rust](https://github.com/EmilHernvall/dnsguide) 162 | - [Learning Rust! Going through the Rust Language book live](https://www.youtube.com/playlist?list=PLSbgTZYkscaoV8me47mKqSM6BBSZ73El6) 163 | - [Rust Roguelike Tutorial](https://bfnightly.bracketproductions.com/rustbook/chapter_1.html) 164 | 165 | ### Haskell 166 | 167 | - [Learn Haskell](http://learnyouahaskell.com/) 168 | - buyable on leanpub https://leanpub.com/haskell-cookbook 169 | - readable online https://leanpub.com/haskell-cookbook/read 170 | - downloadable (free) from the author site https://markwatson.com/books/ 171 | 172 | ### Nix 173 | 174 | Intro to Nix and NixOS 175 | 176 | - https://www.youtube.com/watch?v=QKoQ1gKJY5A&list=PL-saUBvIJzOkjAw_vOac75v-x6EzNzZq- 177 | - https://www.tweag.io/blog/2020-05-25-flakes/ 178 | 179 | ``` 180 | Why NixOS? 181 | 1. Reproducible - produces exactly the same build every time. sans compiler nondeterminism. 182 | 2. Unless early boot is broken, boots to a consistent state. 183 | 3. Can easily rollback to the previous system configuration state. 184 | 4. Declarative config FOR EVERYTHING! 185 | 5. Integration with a whole bunch of packages. Your beloved GUI rices included. 186 | 6. Cloud integration. Brilliant Docker images, also magic like NixOps 187 | 7. Portability - Nix runs on Linux and macOS, and takes 5 minutes to install (clone config and you're done). 188 | 8. Free of side effects - Actually uninstalls packages and its dependencies 189 | 9. Bleeding and stable - Can run multiple versions of the package without conflicts 190 | 10. Implicit containerization - Lorri and direnv make switching between project-local tooling easy. 191 | 11. Virtual Machines - VFIO is EASY to set up and perform declaratively (much more so than arch). 192 | 12. Kernel hacking - Kernel flags and patches are easy to add to config. 193 | 13. Use flags + source-based - each package has overrides to allow (or disallow) features to be built. Makes for a lean mean machine. Binary caching for speed. 194 | 14. Flakes are sheer awesomesauce: 195 | 1) Pin builds to commits allows for effortless extreme mixing and matching between stable and unstable and anywhere in between. Use what you know is stable, and pin the bleeding edge down to stable commits. 196 | 2) Multiple outputs allow a monolithic repo to manage all your configurations in one place. 197 | 3) Custom sources! Declaratively manage everything with a flake.nix in it and nix will know exactly how to build or override a package. 198 | 4) Can apply arbitrary patches to package builds before building. Not sure why you would want this, but it