├── LICENSE ├── Notebooks ├── Beginner's Guide to React - Kent C Dodds - egghead │ ├── react-tutorial.html │ ├── react-tutorial2.html │ ├── react-tutorial3.html │ ├── react-tutorial4.html │ ├── react-tutorial5-time-rerender.html │ ├── react-tutorial6-events.html │ ├── react-tutorial7-statefull-stopwatch.html │ └── react-tutorial8-dynamic-input.html ├── JavaScript & React for Developers - Cassidy Williams - Udemy │ ├── ajax example │ │ ├── ajax.js │ │ └── ajaxExample.html │ ├── notes.md │ └── toggle theme │ │ ├── index.html │ │ ├── themes.css │ │ └── toggle.js └── JavaScript30 - Wes Bos │ ├── Array Cardio 2 │ └── index.html │ ├── Array Cardio │ ├── index.html │ └── script.js │ ├── Hold shift to check multiple checkboxes │ └── index.html │ ├── Konami Key Sequence Detection │ └── index.html │ └── Slide in on scroll │ └── index.html ├── README.md ├── index.html ├── log-index.md └── log.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Syk Houdeib 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 | -------------------------------------------------------------------------------- /Notebooks/Beginner's Guide to React - Kent C Dodds - egghead/react-tutorial.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Notebooks/Beginner's Guide to React - Kent C Dodds - egghead/react-tutorial2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Notebooks/Beginner's Guide to React - Kent C Dodds - egghead/react-tutorial3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 59 | 60 | -------------------------------------------------------------------------------- /Notebooks/Beginner's Guide to React - Kent C Dodds - egghead/react-tutorial4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 71 | 72 | -------------------------------------------------------------------------------- /Notebooks/Beginner's Guide to React - Kent C Dodds - egghead/react-tutorial5-time-rerender.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | -------------------------------------------------------------------------------- /Notebooks/Beginner's Guide to React - Kent C Dodds - egghead/react-tutorial6-events.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 54 | 55 | -------------------------------------------------------------------------------- /Notebooks/Beginner's Guide to React - Kent C Dodds - egghead/react-tutorial7-statefull-stopwatch.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 80 | 81 | -------------------------------------------------------------------------------- /Notebooks/Beginner's Guide to React - Kent C Dodds - egghead/react-tutorial8-dynamic-input.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 66 | 67 | -------------------------------------------------------------------------------- /Notebooks/JavaScript & React for Developers - Cassidy Williams - Udemy/ajax example/ajax.js: -------------------------------------------------------------------------------- 1 | // The callback method 2 | /* let a = new XMLHttpRequest(); 3 | 4 | a.addEventListener('readystatechange', function(r) { 5 | if (r.target.status === 200) { 6 | console.log(r.target.response); 7 | } 8 | }); 9 | 10 | a.open('GET', 'https://api.github.com/users/syknapse', true); 11 | a.send(); */ 12 | 13 | //The promises method 14 | fetch('https://api.github.com/users/syknapse') 15 | .then(function(r) { 16 | console.log(r.status); 17 | return r.json(); 18 | }) 19 | .then(function(j) { 20 | console.log(j); 21 | }) -------------------------------------------------------------------------------- /Notebooks/JavaScript & React for Developers - Cassidy Williams - Udemy/ajax example/ajaxExample.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |Open up the console :)
11 |
11 | Now this is a story all about how
12 | My JavaScript flipped turned upside down
13 | And I'd like to take an event, just sit right there
14 | I'll tell you how I became the queen of the web and software
15 |
Psst: have a look at the JavaScript Console 💁
9 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /Notebooks/JavaScript30 - Wes Bos/Array Cardio/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |console
8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Notebooks/JavaScript30 - Wes Bos/Array Cardio/script.js: -------------------------------------------------------------------------------- 1 | const inventors = [ 2 | { first: 'Albert', last: 'Einstein', year: 1879, passed: 1955 }, 3 | { first: 'Isaac', last: 'Newton', year: 1643, passed: 1727 }, 4 | { first: 'Galileo', last: 'Galilei', year: 1564, passed: 1642 }, 5 | { first: 'Marie', last: 'Curie', year: 1867, passed: 1934 }, 6 | { first: 'Johannes', last: 'Kepler', year: 1571, passed: 1630 }, 7 | { first: 'Nicolaus', last: 'Copernicus', year: 1473, passed: 1543 }, 8 | { first: 'Max', last: 'Planck', year: 1858, passed: 1947 }, 9 | { first: 'Katherine', last: 'Blodgett', year: 1898, passed: 1979 }, 10 | { first: 'Ada', last: 'Lovelace', year: 1815, passed: 1852 }, 11 | { first: 'Sarah E.', last: 'Goode', year: 1855, passed: 1905 }, 12 | { first: 'Lise', last: 'Meitner', year: 1878, passed: 1968 }, 13 | { first: 'Hanna', last: 'Hammarström', year: 1829, passed: 1909 } 14 | ]; 15 | 16 | const people = ['Beck, Glenn', 'Becker, Carl', 'Beckett, Samuel', 'Beddoes, Mick', 'Beecher, Henry', 'Beethoven, Ludwig', 'Begin, Menachem', 'Belloc, Hilaire', 'Bellow, Saul', 'Benchley, Robert', 'Benenson, Peter', 'Ben-Gurion, David', 'Benjamin, Walter', 'Benn, Tony', 'Bennington, Chester', 'Benson, Leana', 'Bent, Silas', 'Bentsen, Lloyd', 'Berger, Ric', 'Bergman, Ingmar', 'Berio, Luciano', 'Berle, Milton', 'Berlin, Irving', 'Berne, Eric', 'Bernhard, Sandra', 'Berra, Yogi', 'Berry, Halle', 'Berry, Wendell', 'Bethea, Erin', 'Bevan, Aneurin', 'Bevel, Ken', 'Biden, Joseph', 'Bierce, Ambrose', 'Biko, Steve', 'Billings, Josh', 'Biondo, Frank', 'Birrell, Augustine', 'Black, Elk', 'Blair, Robert', 'Blair, Tony', 'Blake, William']; 17 | 18 | // Array.prototype.filter() 19 | // 1. Filter the list of inventors for those who were born in the 1500's 20 | 21 | // const fifteen = inventors.filter(function(inventor){ 22 | // if (inventor.year >= 1500 && inventor.year <= 1599) { 23 | // return true; //keep it 24 | // } 25 | // }); 26 | // console.table(fifteen); 27 | // refacotored to this: 28 | const fifteen = inventors.filter(inventor => inventor.year >= 1500 && inventor.year <= 1599); 29 | 30 | console.table(fifteen); 31 | 32 | // B Filter the list of inventors for those who passed in the 1900's 33 | const nine = inventors.filter(inventor => inventor.passed > 1899); 34 | 35 | console.table(nine); 36 | 37 | 38 | // Array.prototype.map() 39 | // 2. Give us an array of the inventors' first and last names 40 | 41 | const fullNames = inventors.map(inventor => `${inventor.first} ${inventor.last}`); 42 | 43 | console.log(fullNames); 44 | 45 | // B Give us an array of the inventors' first names and year of birth 46 | 47 | const firstAndYear = inventors.map(inventor => `${inventor.first} ${inventor.year}`); 48 | 49 | console.log(firstAndYear); 50 | 51 | 52 | // Array.prototype.sort() 53 | // 3. Sort the inventors by birthdate, oldest to youngest 54 | 55 | // const orderList = inventors.sort(function(a, b){ 56 | // if(a.year > b.year){ 57 | // return 1; 58 | // } else { 59 | // return -1; 60 | // } 61 | // }); 62 | 63 | // console.table(orderList); 64 | // refactored to this: 65 | const orderList = inventors.sort((a, b) => a.year > b.year ? 1 : -1); 66 | console.table(orderList); 67 | 68 | // B Sort the inventors by death, earliest to latest 69 | const earliestDeath = inventors.sort((a, b) => a.passed > b.passed ? 1 : -1); 70 | console.table(earliestDeath); 71 | 72 | // Array.prototype.reduce() 73 | // 4. How many years did all the inventors live? 74 | const totalYears = inventors.reduce((total, inventor) => { 75 | return total + (inventor.passed - inventor.year); 76 | }, 0); 77 | console.log(totalYears); 78 | 79 | // 5. Sort the inventors by years lived 80 | const oldest = inventors.sort(function(a, b){ 81 | const lastGuy = a.passed - a.year; 82 | const nextGuy = b.passed - b.year; 83 | return lastGuy > nextGuy ? -1 : 1; 84 | }); 85 | console.table(oldest); 86 | 87 | // 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name 88 | // https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris 89 | 90 | // const category = document.querySelector('.mw-category'); 91 | // const links = Array.from(category.querySelectorAll('a')); 92 | // const de = links 93 | // .map(link => link.textContent) 94 | // .filter(streetName => streetName.includes('de')); 95 | 96 | 97 | // 7. sort Exercise 98 | // Sort the people alphabetically by last name 99 | 100 | const alpha = people.sort((lastOne, nextOne) => { 101 | const [aLast, aFirst] = lastOne.split(', '); 102 | const [bLast, bFirst] = nextOne.split(', '); 103 | return aLast > bLast ? 1 : -1; 104 | }); 105 | console.log(alpha); 106 | 107 | // 8. Reduce Exercise 108 | // Sum up the instances of each of these 109 | const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck' ]; 110 | 111 | const transportation = data.reduce(function(obj, item){ 112 | if(!obj[item]) { 113 | obj[item] = 0; 114 | } 115 | obj[item]++; 116 | return obj; 117 | }, {}); 118 | 119 | console.log(transportation); -------------------------------------------------------------------------------- /Notebooks/JavaScript30 - Wes Bos/Hold shift to check multiple checkboxes/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |This is an inbox layout.
66 |Check one item
70 |Hold down your Shift key
74 |Check a lower item
78 |Everything inbetween should also be set to checked
82 |Try do it with out any libraries
86 |Just regular JavaScript
90 |Good Luck!
94 |Don't forget to tweet your result!
98 |Consectetur adipisicing elit. Tempore tempora rerum, est autem cupiditate, corporis a qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis quod quas laborum nam! Fuga ad tempora in aspernatur pariaturlores sunt esse magni, ut, dignissimos.
14 |Lorem ipsum cupiditate, corporis a qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis quod quas laborum nam! Fuga ad tempora in aspernatur pariatur fugit quibusdam dolores sunt esse magni, ut, dignissimos.
15 |Adipisicing elit. Tempore tempora rerum..
16 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore tempora rerum, est autem cupiditate, corporis a qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis quod quas laborum nam! Fuga ad tempora in aspernatur pariatur fugit quibusdam dolores sunt esse magni, ut, dignissimos.
17 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore tempora rerum, est autem cupiditate, corporis a qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis quod quas laborum nam! Fuga ad tempora in aspernatur pariatur fugit quibusdam dolores sunt esse magni, ut, dignissimos.
18 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore tempora rerum, est autem cupiditate, corporis a qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis quod quas laborum nam! Fuga ad tempora in aspernatur pariatur fugit quibusdam dolores sunt esse magni, ut, dignissimos.
19 | 20 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptates, deserunt facilis et iste corrupti omnis tenetur est. Iste ut est dicta dolor itaque adipisci, dolorum minima, veritatis earum provident error molestias. Ratione magni illo sint vel velit ut excepturi consectetur suscipit, earum modi accusamus voluptatem nostrum, praesentium numquam, reiciendis voluptas sit id quisquam. Consequatur in quis reprehenderit modi perspiciatis necessitatibus saepe, quidem, suscipit iure natus dignissimos ipsam, eligendi deleniti accusantium, rerum quibusdam fugit perferendis et optio recusandae sed ratione. Culpa, dolorum reprehenderit harum ab voluptas fuga, nisi eligendi natus maiores illum quas quos et aperiam aut doloremque optio maxime fugiat doloribus. Eum dolorum expedita quam, nesciunt
23 | 24 |at provident praesentium atque quas rerum optio dignissimos repudiandae ullam illum quibusdam. Vel ad error quibusdam, illo ex totam placeat. Quos excepturi fuga, molestiae ea quisquam minus, ratione dicta consectetur officia omnis, doloribus voluptatibus? Veniam ipsum veritatis architecto, provident quas consequatur doloremque quam quidem earum expedita, ad delectus voluptatum, omnis praesentium nostrum qui aspernatur ea eaque adipisci et cumque ab? Ea voluptatum dolore itaque odio. Eius minima distinctio harum, officia ab nihil exercitationem. Tempora rem nemo nam temporibus molestias facilis minus ipsam quam doloribus consequatur debitis nesciunt tempore officiis aperiam quisquam, molestiae voluptates cum, fuga culpa. Distinctio accusamus quibusdam, tempore perspiciatis dolorum optio facere consequatur quidem ullam beatae architecto, ipsam sequi officiis dignissimos amet impedit natus necessitatibus tenetur repellendus dolor rem! Dicta dolorem, iure, facilis illo ex nihil ipsa amet officia, optio temporibus eum autem odit repellendus nisi. Possimus modi, corrupti error debitis doloribus dicta libero earum, sequi porro ut excepturi nostrum ea voluptatem nihil culpa? Ullam expedita eligendi obcaecati reiciendis velit provident omnis quas qui in corrupti est dolore facere ad hic, animi soluta assumenda consequuntur reprehenderit! Voluptate dolor nihil veniam laborum voluptas nisi pariatur sed optio accusantium quam consectetur, corrupti, sequi et consequuntur, excepturi doloremque. Tempore quis velit corporis neque fugit non sequi eaque rem hic. Facere, inventore, aspernatur. Accusantium modi atque, asperiores qui nobis soluta cumque suscipit excepturi possimus doloremque odit saepe perferendis temporibus molestiae nostrum voluptatum quis id sint quidem nesciunt culpa. Rerum labore dolor beatae blanditiis praesentium explicabo velit optio esse aperiam similique, voluptatem cum, maiores ipsa tempore. Reiciendis sed culpa atque inventore, nam ullam enim expedita consectetur id velit iusto alias vitae explicabo nemo neque odio reprehenderit soluta sint eaque. Aperiam, qui ut tenetur, voluptate doloremque officiis dicta quaerat voluptatem rerum natus magni. Eum amet autem dolor ullam.
27 | 28 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio maiores adipisci quibusdam repudiandae dolor vero placeat esse sit! Quibusdam saepe aperiam explicabo placeat optio, consequuntur nihil voluptatibus expedita quia vero perferendis, deserunt et incidunt eveniet temporibus doloremque possimus facilis. Possimus labore, officia dolore! Eaque ratione saepe, alias harum laboriosam deserunt laudantium blanditiis eum explicabo placeat reiciendis labore iste sint. Consectetur expedita dignissimos, non quos distinctio, eos rerum facilis eligendi. Asperiores laudantium, rerum ratione consequatur, culpa consectetur possimus atque ab tempore illum non dolor nesciunt. Neque, rerum. A vel non incidunt, quod doloremque dignissimos necessitatibus aliquid laboriosam architecto at cupiditate commodi expedita in, quae blanditiis. Deserunt labore sequi, repellat laboriosam est, doloremque culpa reiciendis tempore excepturi. Enim nostrum fugit itaque vel corporis ullam sed tenetur ipsa qui rem quam error sint, libero. Laboriosam rem, ratione. Autem blanditiis
laborum neque repudiandae quam, cumque, voluptate veritatis itaque, placeat veniam ad nisi. Expedita, laborum reprehenderit ratione soluta velit natus, odit mollitia. Corporis rerum minima fugiat in nostrum. Assumenda natus cupiditate hic quidem ex, quas, amet ipsum esse dolore facilis beatae maxime qui inventore, iste? Maiores dignissimos dolore culpa debitis voluptatem harum, excepturi enim reiciendis, tempora ab ipsam illum aspernatur quasi qui porro saepe iure sunt eligendi tenetur quaerat ducimus quas sequi omnis aperiam suscipit! Molestiae obcaecati officiis quo, ratione eveniet, provident pariatur. Veniam quasi expedita distinctio, itaque molestiae sequi, dolorum nisi repellendus quia facilis iusto dignissimos nam? Tenetur fugit quos autem nihil, perspiciatis expedita enim tempore, alias ab maiores quis necessitatibus distinctio molestias eum, quidem. Delectus impedit quidem laborum, fugit vel neque quo, ipsam, quasi aspernatur quas odio nihil? Veniam amet reiciendis blanditiis quis reprehenderit repudiandae neque, ab ducimus, odit excepturi voluptate saepe ipsam. Voluptatem eum error voluptas porro officiis, amet! Molestias, fugit, ut! Tempore non magnam, amet, facere ducimus accusantium eos veritatis neque.
34 | 35 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio maiores adipisci quibusdam repudiandae dolor vero placeat esse sit! Quibusdam saepe aperiam explicabo placeat optio, consequuntur nihil voluptatibus expedita quia vero perferendis, deserunt et incidunt eveniet temporibus doloremque possimus facilis. Possimus labore, officia dolore! Eaque ratione saepe, alias harum laboriosam deserunt laudantium blanditiis eum explicabo placeat reiciendis labore iste sint. Consectetur expedita dignissimos, non quos distinctio, eos rerum facilis eligendi. Asperiores laudantium, rerum ratione consequatur, culpa consectetur possimus atque ab tempore illum non dolor nesciunt. Neque, rerum. A vel non incidunt, quod doloremque dignissimos necessitatibus aliquid laboriosam architecto at cupiditate commodi expedita in, quae blanditiis. Deserunt labore sequi, repellat laboriosam est, doloremque culpa reiciendis tempore excepturi. Enim nostrum fugit itaque vel corporis ullam sed tenetur ipsa qui rem quam error sint, libero. Laboriosam rem, ratione. Autem blanditiis laborum neque repudiandae quam, cumque, voluptate veritatis itaque, placeat veniam ad nisi. Expedita, laborum reprehenderit ratione soluta velit natus, odit mollitia. Corporis rerum minima fugiat in nostrum. Assumenda natus cupiditate hic quidem ex, quas, amet ipsum esse dolore facilis beatae maxime qui inventore, iste? Maiores dignissimos dolore culpa debitis voluptatem harum, excepturi enim reiciendis, tempora ab ipsam illum aspernatur quasi qui porro saepe iure sunt eligendi tenetur quaerat ducimus quas sequi omnis aperiam suscipit! Molestiae obcaecati officiis quo, ratione eveniet, provident pariatur. Veniam quasi expedita distinctio, itaque molestiae sequi, dolorum nisi repellendus quia facilis iusto dignissimos nam? Tenetur fugit quos autem nihil, perspiciatis expedita enim tempore, alias ab maiores quis necessitatibus distinctio molestias eum, quidem. Delectus impedit quidem laborum, fugit vel neque quo, ipsam, quasi aspernatur quas odio nihil? Veniam amet reiciendis blanditiis quis reprehenderit repudiandae neque, ab ducimus, odit excepturi voluptate saepe ipsam. Voluptatem eum error voluptas porro officiis, amet! Molestias, fugit, ut! Tempore non magnam, amet, facere ducimus accusantium eos veritatis neque.
38 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio maiores adipisci quibusdam repudiandae dolor vero placeat esse sit! Quibusdam saepe aperiam explicabo placeat optio, consequuntur nihil voluptatibus expedita quia vero perferendis, deserunt et incidunt eveniet temporibus doloremque possimus facilis. Possimus labore, officia dolore! Eaque ratione saepe, alias harum laboriosam deserunt laudantium blanditiis eum explicabo placeat reiciendis labore iste sint. Consectetur expedita dignissimos, non quos distinctio, eos rerum facilis eligendi. Asperiores laudantium, rerum ratione consequatur, culpa consectetur possimus atque ab tempore illum non dolor nesciunt. Neque, rerum. A vel non incidunt, quod doloremque dignissimos necessitatibus aliquid laboriosam architecto at cupiditate commodi expedita in, quae blanditiis. Deserunt labore sequi, repellat laboriosam est, doloremque culpa reiciendis tempore excepturi. Enim nostrum fugit itaque vel corporis ullam sed tenetur ipsa qui rem quam error sint, libero. Laboriosam rem, ratione. Autem blanditiis laborum neque repudiandae quam, cumque, voluptate veritatis itaque, placeat veniam ad nisi. Expedita, laborum reprehenderit ratione soluta velit natus, odit mollitia. Corporis rerum minima fugiat in nostrum. Assumenda natus cupiditate hic quidem ex, quas, amet ipsum esse dolore facilis beatae maxime qui inventore, iste? Maiores dignissimos dolore culpa debitis voluptatem harum, excepturi enim reiciendis, tempora ab ipsam illum aspernatur quasi qui porro saepe iure sunt eligendi tenetur quaerat ducimus quas sequi omnis aperiam suscipit! Molestiae obcaecati officiis quo, ratione eveniet, provident pariatur. Veniam quasi expedita distinctio, itaque molestiae sequi, dolorum nisi repellendus quia facilis iusto dignissimos nam? Tenetur fugit quos autem nihil, perspiciatis expedita enim tempore, alias ab maiores quis necessitatibus distinctio molestias eum, quidem. Delectus impedit quidem laborum, fugit vel neque quo, ipsam, quasi aspernatur quas odio nihil? Veniam amet reiciendis blanditiis quis reprehenderit repudiandae neque, ab ducimus, odit excepturi voluptate saepe ipsam. Voluptatem eum error voluptas porro officiis, amet! Molestias, fugit, ut! Tempore non magnam, amet, facere ducimus accusantium eos veritatis neque.
39 | 40 | 41 | 42 | 43 |YouTube playlist with the latest tutorials I have watched/done
23 | 24 |YouTube playlist with the latest interesting videos I have watched
30 | 31 |