Урок 1. 00:29:44
1.1. Course Overview
Урок 2. 00:49:41
1.2. Setting Up - For Windows Users Only
Урок 3. 00:59:57
1.3. Setting Up - For Mac Users Only
Урок 4. 00:53:06
1.4. Setting Up - For Linux Users Only
Урок 5. 00:40:47
1.5. Introduction to the Command Line
Урок 6. 00:15:24
1.6. Learning NVM & Node.js Versions
Урок 7. 01:36:02
1.7. Node.js Under the Hood
Урок 8. 00:34:06
2.1. Understanding EventEmitter
Урок 9. 00:06:48
3.1. Introdcution
Урок 10. 00:13:32
3.2. Understanding Binary Numbers
Урок 11. 00:21:10
3.3. Understanding Hexadecimal Numbers
Урок 12. 00:11:49
3.4. Using a Programming Calculator
Урок 13. 00:25:21
3.5. Understanding Character Encodings
Урок 14. 00:07:35
3.6. The Concept of Buffers
Урок 15. 00:38:47
3.7. Buffers in Action
Урок 16. 00:18:15
3.8. Allocating Huge Buffers
Урок 17. 00:20:59
3.9. Fastest Way of Allocating Buffers
Урок 18. 00:14:02
3.10. Reading the Node.js Docs
Урок 19. 00:02:09
3.11. Outro
Урок 20. 00:11:19
4.1. Introduction
Урок 21. 00:07:32
4.2. What Exactly Is a File
Урок 22. 00:04:06
4.3. How Node.js Deals with Files
Урок 23. 00:14:43
4.4. Three Different Ways of Doing the Same Thing
Урок 24. 00:13:33
4.6. Watching the Command File for Changes
Урок 25. 00:18:41
4.7. Reading the Content of the Command File
Урок 26. 00:04:23
4.8. Cleaning Up the Code using EventEmitter
Урок 27. 00:03:54
4.9. Making Sense Out of the Read Data
Урок 28. 00:15:37
4.10. Implementing the Create File Command
Урок 29. 00:15:21
4.11. Defining the Rest of the Commands
Урок 30. 00:11:07
4.12. Solution - Implementing the deleteFile Function
Урок 31. 00:03:39
4.13. Solution - Implementing the renameFile Function
Урок 32. 00:11:07
4.14. Solution - Implementing the addToFile Function
Урок 33. 00:01:07
4.15. Outro
Урок 34. 00:04:52
5.1. Introduction
Урок 35. 00:26:26
5.2. Benchmarking Writing a Million Times to a File
Урок 36. 00:07:58
5.3. Using Streams Naively in Our Solution
Урок 37. 00:08:59
5.4. So What Exactly Are Streams
Урок 38. 00:17:53
5.5. Understanding Different Types of Streams
Урок 39. 00:36:55
5.6. Fixing the Memory Issue in Our Program
Урок 40. 00:09:49
5.7. Reading Writable Streams Node.js Docs and Recap
Урок 41. 00:21:36
5.8. Readable Streams in Action
Урок 42. 00:09:18
5.9. Selectively Writing Our Data from the Readable Stream
Урок 43. 00:16:57
5.10. Understanding the Splitting Issue
Урок 44. 00:16:28
5.11. Implementing the Solution and Resolving the Splitting Issue
Урок 45. 00:08:04
5.12. Reading Node.js Docs and Recap
Урок 46. 00:23:31
5.13. Building Our Own Streaming Solution Using Buffers
Урок 47. 00:25:43
5.14. Understanding Piping
Урок 48. 00:42:29
5.15. Implementing Our Own Writable Stream
Урок 49. 00:20:02
5.16. Implementing Our Own Readable Stream
Урок 50. 00:17:27
5.17. Understanding Duplex and Transform Streams
Урок 51. 00:39:03
5.18. Creating an EncryptionDecryption Application
Урок 52. 00:26:05
5.19. Final Notes
Урок 53. 00:12:00
6.1. Introduction
Урок 54. 00:15:03
6.2. Understanding MAC Addresses and Switches
Урок 55. 00:15:16
6.3. Understanding Routers and How the Internet Works
Урок 56. 00:16:29
6.4. Understanding Networking Layers
Урок 57. 00:24:44
6.6. Creating a Simple TCP Application in Node.js
Урок 58. 00:13:03
6.7. Understanding the Transport Layer - TCPUDP
Урок 59. 00:25:19
6.8. A Networking Scenario in Action
Урок 60. 00:12:03
6.9. Understanding Port Numbers
Урок 61. 00:29:47
6.11. Creating a Chat Application PART 1
Урок 62. 00:34:19
6.12. Creating a Chat Application PART 2
Урок 63. 00:21:35
6.13. Improving the UI of our Chat App
Урок 64. 00:18:47
6.14. Identifying Users in the Chat App
Урок 65. 00:04:10
6.15. Notifying Everyone When Somebody JoinsLeaves the Chat
Урок 66. 00:15:27
6.17. Some Final Notes About the Chat App
Урок 67. 00:34:31
6.18. Deploying our Chat App to AWS
Урок 68. 00:40:10
6.20. Understanding IPv4 Addresses
Урок 69. 00:31:37
6.21. Understanding DNS
Урок 70. 00:26:45
6.22. Understanding IPv6 Addresses
Урок 71. 00:26:03
6.24. Creating an Uploader Application
Урок 72. 00:33:16
6.25. Taking Care of Backpressures in the Uploader App
Урок 73. 00:20:44
6.26. Getting the File Names Dynamically in the Uploader App
Урок 74. 00:16:03
6.27. Displaying the Upload Progress in Our Uploader App
Урок 75. 00:20:06
6.28. Deploying our Uploader App
Урок 76. 00:32:38
6.30. Understanding UDP and the Dgram Module
Урок 77. 00:01:31
6.31. Outro
Урок 78. 00:10:39
7.1. Introduction
Урок 79. 00:07:01
7.2. The Idea of HTTP
Урок 80. 00:15:10
7.3. Creating a Simple HTTP Server in Node
Урок 81. 00:12:52
7.4. Understanding HTTP Messages, Requests & Responses
Урок 82. 00:16:13
7.5. Understanding Connection Types
Урок 83. 00:21:11
7.6. Building our Client and Sending a Request
Урок 84. 00:12:44
7.7. Sending a Response to the Client
Урок 85. 00:25:36
7.8. Learning Postman & Testing Our Server with It
Урок 86. 00:28:34
7.9. Reading Some Docs
Урок 87. 00:20:06
7.10. Sending an HTTP Request Directly on Top of TCP! PART 1
Урок 88. 00:22:06
7.11. Sending an HTTP Request Directly on Top of TCP! PART 2
Урок 89. 00:11:20
7.12. Emulating our HTTP Server Using the Net Module
Урок 90. 00:16:52
7.13. Understanding Media Types (MIME Types)
Урок 91. 00:21:37
7.14. Understanding HTTP Methods
Урок 92. 00:15:05
7.15. Understanding HTTP status codes
Урок 93. 00:18:23
7.16. Creating a Simple Web Server in Node
Урок 94. 00:22:06
7.17. Serving a CSS and JavaScript File
Урок 95. 00:07:55
7.18. Adding Some JSON Routes
Урок 96. 00:13:02
7.19. Adding a File Upload Route
Урок 97. 00:23:19
7.20. Creating our Own Little Mini-Express Framework!
Урок 98. 00:15:05
7.21. Making our Framework More Robust
Урок 99. 00:11:26
7.22. Getting Ready for Our Next Project
Урок 100. 00:16:16
7.23. Using Our Framework to Create a Web App
Урок 101. 00:21:16
7.24. Adding the Login Route
Урок 102. 00:18:19
7.25. Understanding HTTP Proxies
Урок 103. 00:12:58
7.26. HTTP is Stateless
Урок 104. 00:13:08
7.27. Understanding Cookies
Урок 105. 00:18:16
7.28. Recognizing Users for Future Requests after Logging In
Урок 106. 00:09:15
7.29. Sending the User’s Info in Profile
Урок 107. 00:23:05
7.30. Enhancing Our Framework with Middleware Support
Урок 108. 00:18:08
7.31. Defining the Middleware Functions
Урок 109. 00:25:03
7.32. Implementing the Create Post, Update User, and Logout Routes
Урок 110. 00:02:54
7.33. Outro
Урок 111. 00:13:10
8.1. Introduction
Урок 112. 00:10:50
8.2. What Is Unix
Урок 113. 00:04:41
8.3. Why Should We Care About Unix
Урок 114. 00:20:18
8.4. Setting Up Unix on Windows (WSL) - For Windows Users Only
Урок 115. 00:16:07
8.5. A First Look at the Child Process Module
Урок 116. 00:40:07
8.6. Understanding Unix Shells
Урок 117. 00:27:03
8.7. Demystifying Bash Execution Order Aliases, Functions, Built-ins, and Path
Урок 118. 00:14:20
8.8. A Few Notes about Unix File Permissions
Урок 119. 00:05:12
8.9. Sourcing in Bash
Урок 120. 00:38:09
8.10. Understanding Shell Config Files
Урок 121. 00:24:09
8.11. What Exactly is a Child Process
Урок 122. 00:14:10
8.12. Understanding Environment Variables
Урок 123. 00:49:07
8.13. Understanding Unix File System, Paths & CWD
Урок 124. 00:33:03
8.14. Understanding Stdout, Stdin, and Stderr
Урок 125. 00:12:09
8.15. Understanding Pipes and Output Redirection in Bash
Урок 126. 00:17:08
8.16. Building a Command Line Utility with Node.js
Урок 127. 00:18:30
8.17. Building Massive Communication App - Node Part
Урок 128. 00:11:06
8.18. Intro to the C Part
Урок 129. 00:12:33
8.19. Learning C - Our First App
Урок 130. 00:42:34
8.20. Learning C - Static Types & Our Memory
Урок 131. 00:31:15
8.21. Learning C - Memory Allocation
Урок 132. 00:04:37
8.22. Learning C - Reading the Arguments
Урок 133. 00:50:40
8.23. Building Massive Communication App - C Part
Урок 134. 00:09:49
8.24. Only Watch if You Skipped the C Part
Урок 135. 00:21:30
8.25. Another Way of IPC - Unix Domain Sockets
Урок 136. 00:32:59
8.26. Understanding Clustering
Урок 137. 00:45:33
8.27. Clustering in Action
Урок 138. 00:12:12
8.28. Installing & Building FFmpeg from Source Code
Урок 139. 00:38:00
8.29. Video Editor App - Setup & Walkthrough
Урок 140. 00:35:48
8.30. Adding the Upload Route
Урок 141. 00:20:03
8.31. Quick Intro to FFmpeg and Video Files
Урок 142. 00:00:19
8.31. River
Урок 143. 00:25:16
8.32. Making a Thumbnail and Getting the Dimensions After an Upload
Урок 144. 00:04:16
8.33. Returning the List of Uploaded Videos
Урок 145. 00:23:58
8.34. Adding a Route for Returning the Video Assets
Урок 146. 00:15:50
8.35. Adding a Route to Extract the Audio of a Video File
Урок 147. 00:19:21
8.36. Adding the Resize Route
Урок 148. 00:25:28
8.37. Scheduling the Resizes
Урок 149. 00:16:32
8.38. More on Queue-based Processing
Урок 150. 00:19:28
8.39. Resuming Scheduled Resize Operations Upon App Restart
Урок 151. 00:31:17
8.40. Running Our Application in Cluster Mode
Урок 152. 00:07:41
8.41. Refactor from Cpeak to Express in Less than 20 Minutes!
Урок 153. 00:22:43
8.42. Outro
Урок 154. 00:24:04
9.1. Introduction
Урок 155. 00:29:40
9.2. How Does a Lossless Compression Work
Урок 156. 00:21:01
9.3. Lossy Compression
Урок 157. 00:30:50
9.4. Gzip, Brotli and Deflate
Урок 158. 00:18:12
9.5. Compression in HTTP
Урок 159. 00:06:00
9.6. Compression vs. Minification
Урок 160. 00:24:13
9.7. Deploying Compression onto Our Apps
Урок 161. 00:11:38
9.8. Final Notes
Урок 162. 00:12:23
10.1. Introduction
Урок 163. 00:11:16
10.2. Guide for Skilled Multi-Threaded Developers
Урок 164. 00:39:59
10.3. What Exactly Is a Thread
Урок 165. 00:07:50
10.4. How to Monitor Threads on Your Operating System
Урок 166. 00:09:00
10.5. Understanding CPU Usage
Урок 167. 00:23:25
10.6. Spawning Threads
Урок 168. 00:33:28
10.7. Thread Communication through Message-Passing
Урок 169. 00:11:58
10.8. Introduction to Our CPU-Intensive Program
Урок 170. 00:23:03
10.9. Enhancing Performance with Multi-Threading
Урок 171. 00:30:41
10.10. Handling CPU-Intensive Operations in an HTTP Server
Урок 172. 00:06:19
10.11. isMainThread
Урок 173. 00:10:41
10.12. CPU-Intensive vs. IO-Intensive
Урок 174. 00:18:47
10.13. Examining a Crypto-Heavy Multi-Threaded App
Урок 175. 00:17:46
10.14. Node.js Thread Pool
Урок 176. 00:30:52
10.15. Developing a Thread Pool From Scratch
Урок 177. 00:11:46
10.16. Event Loop Utilization and Main Thread
Урок 178. 00:21:47
10.17. Keep the Main Thread Light with Batch Processing
Урок 179. 00:06:01
10.18. Effortlessly Expanding Our Thread Pool Capabilities
Урок 180. 00:07:39
10.19. Don’t Block the Worker Pool!
Урок 181. 00:35:11
10.20. Handling Billions of HTTP Requests
Урок 182. 00:19:29
10.21. Communication Through Shared Memory
Урок 183. 00:16:50
10.22. ArrayBuffers, SharedArrayBuffers, and TypedArrays
Урок 184. 00:17:26
10.23. Race Conditions
Урок 185. 00:18:11
10.24. Understanding Atomic Operations
Урок 186. 00:22:48
10.25. Understanding Mutual Exclusion
Урок 187. 00:21:03
10.26. Deadlocks
Урок 188. 00:21:03
10.27. Enhancing Performance Through Shared Memory
Урок 189. 00:43:33
10.28. Native Multi-Threading with CC++ Addons
Урок 190. 00:37:12
10.29. A Deeper Look at the Event Loop PART 1
Урок 191. 00:34:19
10.30. A Deeper Look at the Event Loop PART 2
Урок 192. 00:03:00
10.31. Outro
Урок 193. 00:39:47
11.1. Introduction
Урок 194. 00:12:08
11.2. Introduction to Symmetric Encryption
Урок 195. 00:26:47
11.3. The Unbreakable Encryption - OTP From Scratch
Урок 196. 00:32:02
11.4. How AES Encryption Works
Урок 197. 00:42:47
11.5. Understanding AES Modes
Урок 198. 00:17:14
11.6. What It Takes to Break AES
Урок 199. 00:07:05
11.7. What About Brute-Forcing OTP
Урок 200. 00:07:49
11.8. History of AES
Урок 201. 00:44:10
11.9. Understanding Hashing
Урок 202. 00:10:53
11.10. SHA-256 From Scratch
Урок 203. 00:22:23
11.11. What It Takes to Break SHA-256
Урок 204. 00:30:30
11.12. Message Authentication Codes
Урок 205. 00:23:56
11.13. Understanding Key Derivation Functions
Урок 206. 00:40:06
11.14. Building a File Encryption Application
Урок 207. 00:17:30
11.15. Introduction to Asymmetric Cryptography
Урок 208. 00:08:30
11.16. A Note about OpenSSL & Setup
Урок 209. 00:28:53
11.18. RSA in Action
Урок 210. 00:33:20
11.19. Understanding RSA
Урок 211. 00:33:39
11.20. Implementing RSA From Scratch
Урок 212. 00:18:21
11.21. Understanding Digital Signatures
Урок 213. 00:25:28
11.22. Digital Certificates
Урок 214. 00:27:31
11.23. Manually Verifying an HTTPS Certificate
Урок 215. 00:32:53
11.24. Setting Up HTTPS from Scratch
Урок 216. 00:39:55
11.25. Understanding TLS
Урок 217. 00:31:38
11.26. Diffie-Hellman and Elliptic Curve Key Exchange
Урок 218. 00:18:04
11.27. Elliptic Curve Digital Signatures
Урок 219. 00:12:12
11.28. RSA, DH and EC Security
Урок 220. 00:11:00
11.30. Outro
Урок 221. 00:28:43
12.2. How to Securely Store User Passwords