![Good Morning Developers](/img/default-banner.jpg)
- 168
- 92 089
Good Morning Developers
United States
Registrace 13. 09. 2011
I teach all things development, with a focus on JavaScript and Python. My current schedule is:
- Algorithm Mondays
- JavaScript Tuesdays
- Computer Science Thursdays.
I am passionate about the MERN stack (react, node, Express, and mysql), WebRTC, and socket.io.
I graduated with a CS degree in 2001, and have been in a variety of different rolls from jr. developer to sr. system architect since. I started teaching in person and online in 2015, and it's my passion, though I still have a dozen coding projects or contracts at any given time.
- Algorithm Mondays
- JavaScript Tuesdays
- Computer Science Thursdays.
I am passionate about the MERN stack (react, node, Express, and mysql), WebRTC, and socket.io.
I graduated with a CS degree in 2001, and have been in a variety of different rolls from jr. developer to sr. system architect since. I started teaching in person and online in 2015, and it's my passion, though I still have a dozen coding projects or contracts at any given time.
I Made A Voice Activated Robot Car With JavaScript. Join Me!
Are you into robotics? Are you a software person who would like to be able to do some IOT or hardware related stuff? I am both :) But... I made 3 incredible errors that stole hours of my life over several weeks. Let me help you avoid those errors! This is the first video in a series on making a voice-activated car with JavaScript. Playlist below. Subscribe and see them all!
Playlist: czcams.com/play/PLF_SZiztoCWFEU9uPc6oL9yT7z9RBEAWi.html
0:00 - Intro
1:34 - Thing 1
3:53 - Thing 2
6:07 - Thing 3
7:30 - Review
Playlist: czcams.com/play/PLF_SZiztoCWFEU9uPc6oL9yT7z9RBEAWi.html
0:00 - Intro
1:34 - Thing 1
3:53 - Thing 2
6:07 - Thing 3
7:30 - Review
zhlédnutí: 136
Video
Scope and Closures In JavaScript, in 9 minutes
zhlédnutí 114Před dnem
Scope and closures... both VERY important concepts in JavaScript! Scope you may already get, but closures? It's a weird term and a scary concept. But it shouldn't be! Join me for a few minutes and put the mystery of closures and scope behind you. Be sure to subscribe and don't miss a JavaScript Tuesday video. 0:00 - Intro 0:25 - What is scope (illustration )? 3:00 - Code example 4:58 - What are...
Web Token vs. Cookie Authentication: Explained In 10 Minutes
zhlédnutí 250Před 14 dny
Have you wondered what the difference is between using cookies and JWT's (web tokens) for user storage? Authentication? Let's draw it out! In this no code video, we look at the architecture of both systems and why you might choose web tokens over cookies. Be sure to subscribe and stay on top of developer topics! 0:00 - Why Does This Video Exist? 0:55 - How Cookies Work & Store Data 3:06 - Cooki...
Hoisting In JavaScript
zhlédnutí 118Před 14 dny
In this JavaScript Tuesday video, we look at hoisting, a totally underserved, and sneaky, mechanism built into JavaScript. It was years before anyone explained it to me, and it wreaked plenty of havoc on my logic! Simple to understand, it's an important one to get down so you have better control and understanding. Hit subscribe and don't mist a JavaScript Tuesday video!
Want To Learn Some AI With JavaScript? Let's Do Facial Recognition!
zhlédnutí 1,7KPřed 21 dnem
Feeling left out of the AI/Machine Learning frenzy because you are a web developer? In just 30 minutes, go from some simple starter code to doing AI, with JavaScript, in the browser! We use face-api.js to detect faces in a live video feed, and then we can draw the points, a box around the face, check age, gender, and expression, and then try and match the face(s) to another face. With a few cha...
Upgrade Your Promise Game: 5 Expert Tips
zhlédnutí 143Před 21 dnem
In this JavaScript Tuesday video we look at 5 great ways to make sure you are writing promises the 2024 way! Make sure you are up to date on your JavaScript and stay ahead of the masses. Subscribe and don't miss a JavaScript Tuesday video! Promises Basics - czcams.com/video/79zjmBYXHTc/video.html withResolvers() - czcams.com/video/MN6A0rb6vVs/video.html EcmaScript playlist - github.com/robertbu...
JavaScript, does that property exist? - ES13
zhlédnutí 111Před měsícem
In this JavaScript Tuesday, we look at .hasOwn() added in EcmaScript 2022 (ES13). It is a nice replacement to the very LONG Object.prototype.hasOwnProperty and has two use cases: 1. when you need to check for a property and a ! won't do the trick (truthy and falsy). 2. when you are checking for inheritance and you don't want to use the old workarounds, An absolute must brevity and modern JS ! M...
How to Scale WebRTC Applications Efficiently
zhlédnutí 291Před měsícem
WebRTC is awesome. But... it doesn't scale, at least out of the box. What if you wanted 5 people on a call? 20? 1000? Can WebRTC do that? With the help of an SFU or MCU media server... absolutely! We'll look at how WebRTC does things, why this is creates unavoidable drawbacks, and how to overcome them with either a selective forwarding unit (SFU) or a multi-point control unit (MCU). We'll compa...
Transform Your JavaScript with Promises
zhlédnutí 313Před měsícem
Have you been in a situation where you need your JavaScript to WAIT until some other code has finished? Or maybe you need a value and it's being set at a weird time and you have no idea why? Enter JavaScript promises... the answer you've been looking for :) Added in 2015, they are an absolutely essential part of modern JavaScript and can transform how you code for the better. This is part 1, co...
What is a JavaScript Callback Anyway?
zhlédnutí 316Před měsícem
Ever wonder what a callback was? You've written JavaScript for a while and you keep seeing the term... but what is it? Let me tell you :) Learn why callbacks are essential in this amazing event-driven programming language and start crushing the docs and your dev conversations! Don't miss out on understanding important concepts like anonymous functions, first class objects, the event loop, and o...
Yet Another Weird JavaScript Operator!
zhlédnutí 213Před měsícem
The logical OR assignment... ||= an ES 12 update in ECMAScript 2021 that looks bizarre but is another handy way to check for values before doing "x" operation. It checks to see if the thing on the left has no value (is falsy) and if so, overwrites it with the right! It's a useful way to assign a variable as long as the variable no "no value." Click subscribe to keep on top of JavaScript Tuesday...
Watch Your Gnome Go With Gnome Sort!
zhlédnutí 139Před měsícem
Everyone loves gnomes :) In this Algorithm Monday video, we look at Gnome Sort, a sorting algorithm that correctly orders an array. It has a O(n^2) which is inefficient, but it is an excellent step to understanding sorting algorithms and programming architecture better! Hit subscribe and get in on all the sorting algorithms! Sorting Algorithms: czcams.com/play/PLF_SZiztoCWEEDsw0yg81nlApAyUwKM2F...
Want to make a video chat app with React? Watch this video for WebRTC!
zhlédnutí 1,9KPřed 2 měsíci
Do you have a grasp of WebRTC but are confused how to get it to play nicely inside of React? Learn how to make a live streaming app W/REACT from scratch in just over an hour! Join Rob, as he breaks down the entire process and provides you with all the tools and knowledge you need for this insanely confusing task. Whether you're a beginner or have some experience, this tutorial will tackle a cou...
Another Weird Looking JavaScript Operator?
zhlédnutí 135Před 2 měsíci
The logical and assignment... &&= an ES 12 update in ECMAScript 2021 that looks bizarre but is another handy way to check for values before doing "x" operation. It checks to see if the thing on the left has a value (is truthy) and if so, overwrites it with the right! Click subscribe to keep on top of JavaScript Tuesday and I'll see you next time! ES Update Playlist: czcams.com/play/PLF_SZiztoCW...
Selection Sort Explained (& Crushes BubbleSort!)
zhlédnutí 81Před 2 měsíci
Selection Sort for this Algorithm Monday (and coding in Python) is a huge upgrade from bubble sort and a small increase from insertion sort. Still a O(n^2) but a very simple and easy way to continue your computer science and algorithm journey. Don't forget to check out the playlist for more sorting and algorithm fun and make sure to subscribe for future content! Sorting algorithms playlist: czc...
The .toSpliced() method - Unleash the Power of JavaScript Updates
zhlédnutí 185Před 2 měsíci
The .toSpliced() method - Unleash the Power of JavaScript Updates
Project Euler 26: Fun With Math and Algorithms!
zhlédnutí 80Před 2 měsíci
Project Euler 26: Fun With Math and Algorithms!
Empathy - Technical Communication For Engineers
zhlédnutí 23Před 2 měsíci
Empathy - Technical Communication For Engineers
Three Ways You Can Remain A Better Engineer Than Devin
zhlédnutí 160Před 2 měsíci
Three Ways You Can Remain A Better Engineer Than Devin
The .toReversed() method - Unleash the Power of JavaScript Updates
zhlédnutí 293Před 2 měsíci
The .toReversed() method - Unleash the Power of JavaScript Updates
Insertion Sort Explained w/Python Implamentation
zhlédnutí 47Před 2 měsíci
Insertion Sort Explained w/Python Implamentation
Something Every Self-taught Developer Needs To Know
zhlédnutí 313Před 2 měsíci
Something Every Self-taught Developer Needs To Know
My favorite JavaScript promise update in 8 years - withResolvers!
zhlédnutí 442Před 2 měsíci
My favorite JavaScript promise update in 8 years - withResolvers!
Your First Step To Understanding Algorithms
zhlédnutí 172Před 2 měsíci
Your First Step To Understanding Algorithms
Mastering Callback Priority in JavaScript Programming
zhlédnutí 231Před 3 měsíci
Mastering Callback Priority in JavaScript Programming
Upgrade Your JavaScript Promises with .any()
zhlédnutí 1,1KPřed 3 měsíci
Upgrade Your JavaScript Promises with .any()
Promise Code Challenge: The Case For .race
zhlédnutí 108Před 3 měsíci
Promise Code Challenge: The Case For .race
Making Sense Of The JavaScript Event Loop
zhlédnutí 460Před 3 měsíci
Making Sense Of The JavaScript Event Loop
JavaScript Promises Review with .allSettled()
zhlédnutí 91Před 3 měsíci
JavaScript Promises Review with .allSettled()
I loved this video......I had lots of confusion on socketio before that but now most of them are clear thanks....❤❤
What if we refresh how can we handle reconnection
thank you for your effort !!! its really helpful
my code only run on my laptop but not working on my windows tab. can anyone help me on it ?
truly an underrated channel this is an awesome content the explanations are truly simple and cheerful to watch thanks for the video little experiments on code makes the video truly amazing
Thank you so much for such a kind compliment! It is really hard to get any notice on YT, but hearing these types of comments certainly makes it worth while. Let me know if there's content you'd like to see.
Thank you so so much for this!!
You're so welcome! Socket.io is awesome, hope you can wield it now :)
'Software person' - .... a developer?
Haha, ya, one is a strange way to say the other i guess
It's almost always these little things that make you pull your hair up. Looking forward for a few simplified robotics videos. Thanks Rob!
Hah... Ya, always on the look out for big stuff. The little things creep in. Hopefully this is fun!
@@robertbunch-dev it's fun until you experience it 😁 and then it's cool when you see someone else experienced it😎
I would recommend to use ESP32 and not RP to control the car, it is much cheaper, has excellent PWM, uses much less power and can use BLE or WiFi to communicate with an APP. And last but not least it can also be programmed in Javascript, so the complete solution can be made with javascript only.
I have already put it together, but I'll look at that for a second go!
Yeah ESP32's are insanely great
So is this the first episode of a series??
As long as I can finish it again, it is :)
Love javascript Tuesday Topics...❤
Nice explained ❤
Thank you :)
Hi Robert, Thank you very much for the video and the models/weights! I am currently using your model weights in my Ionic Angular face recognition application. While everything works perfectly in the web version, I'm encountering an issue when I build the mobile APK. The application is unable to access the files from the assets directory. Could you please help me resolve this issue?
the quality of knowledge I gained from this video is awesome what might be the reason this level of talent is still underrated
I liked the cookies analogy 😃 Thanks Rob!
Sometimes they work :)
@@robertbunch-dev Poor parents, they don't have access to their children's resources
how can I run this solution in hosting service like Hostinger?
I haven't used Hostinger before, but it's all front end code. You just need to get the JavaScript and html on your server, so the browser can load it up from your domain/server!
awesome explanation! another cool albeit less commonly needed difference with cookies is that because they are automatically sent by the browser, if you don't have control over the frontend but still need to authenticate users without storing their session on the server, they can be used to send encrypted tokens to have a hybrid solution.
Awesome point! This situation has plagued me before, and a hybrid solution is the only solution ;) Thank you for posting
Thank you for this in-depth tutorial, i really got to understand Websockets and SocketIO properly for the first time. ❤
Subbed btw
Thank you for the comment, encouragement, and sub ;) Keep at it, and more videos coming.
you're videos are really nice.When you write on the board do you need to have special light to be able to see what you write,or it's like writing on a blackboard?
I have a low-iron piece of glass (basically a window) that has LED lights around the outside. Without the LEDs, you can hardly see the marker.
Thank you! This was the kind of introduction I was looking for! I am studying for CASP+ (fingers crossed!) and noticed others recommended having some knowledge on Regex. Also, great way to present this video! Super cool to be able to see you speaking while seeing the material.
Thank you! I really value human interaction and this seemed to be a good way to get closer to it on YT. Good luck on your exam!
Great video 🎉 thank you. Any chance you'll create a tutorial or guide on how to create an appointment booking system from scratch, could barely find any resources on it 😢
I will look into it! Hadn't considered it, but when it comes time for a full project, I'll see if I can use that.
Is OAuth different from these two?
Yes! OAuth is more of the process to get authenticated. It would replace the username/password part. Cookies/webtokens are used after OAuth is done to prove who oauth confirmed you are.
Thanks a lot for the video! Very didactic!
I think function hoisting is good because it lets you use the function anywhere in your app, but variable hoisting may trick the beginners. Thanks Rob!
Well said! Tricks at almost every step in this crazy language!
@@robertbunch-dev I love it even though it's crazy😄
Do you offer a react course?
I have one on Udemy. It's a bit older, and focuses on classes (instead of functions/hooks), but i can drop a link in if you want to check it out. www.udemy.com/course/react-js-from-the-beginning-w-redux-and-react-router/?couponCode=C04E0DDB51CDE39EDF15
You're the governor, bruv! Just saved me. Thank you so much for your work!
Thank you :) Can't believe how often these topics are missing... code on!
good tutorial i was about to follow through and make it myself...thanks
Glad it helped. And make one... always better to have more good content available!
The best content on youtube about socket io , someone knows what his doing , Thank you a lot
You are so welcome! Really appreciate the encouragement. Let me know if there's any addition to it you'd like to see, because it's a powerful library!
Sir could you please create a video on how to do face recognition in react using offline face api instead of using npm package cause it's too slow. Way too slow. Along with that it's better to create it like mult face recognition, for instance create a labelled_image folder and under that folder there will be multiple folders according to the person name like Tony Stark, Clark Kent, etc and each folders has several images with different angels & lighting & others for better face predictions
I will do a little research. I was working on a celebrity look-alike app, but I'll see what I can find for a more efficient library!
@@robertbunch-dev thank you so much sir 😁, I was confused about what I was saying. I mean to say that when I downloaded faceapi.js using npm then the modules loading & face recognition was very slow while without using the npm package of faceapi.js, when I used face-api.min.js which was downloaded, the module loading & face recognition was faster without using React but in react it was difficult to use face-api.min.js cause it's showing faceapi not defined even when I added script for face-api.min.js in index.html in public folder and modules folder along with face-api.min.js is in public folder.
This is awesome
Hands down, best Promise explanation on the net! Thank you very much! :)
Thank you so much!
Wow! It's so simple to understand and I tried that, it's actually worked. New subscriber here 😁 Sir is it possible to enhance face recognition by making it recognise only real person face?
And is it possible to do multiple face recognition instead of 1?
Do you mean "real" face vs. a generated one, or vs. a poster?
For this one, do you mean match all the faces in a given picture, with multiple reference images?
@@robertbunch-dev yes sir, I mean the real people faces and not detectel the fake faces like in posters
Please could you make video about mediasoup 🙏
It's coming!
interesting topic recently when I develop some app. i've run into issue when the next line will execute before the first one can you change any sync code in async and run it like async function thanks for the video!!!
Everyone runs into this with JavaScript! Learning this is the key to sanity 😜
Very Good 👍🏻👍🏻
now i got to understand about the difference between socket io and websocket, i thought web socket was a whole new different thing, also there is some noise in background i noticed rest all are perfect
No where to find the GitHub
Fantastic tutorial and the git repository provided is gold. You've gained a follower. You mentioned that this is browser based, so will I always need a browser to implement it? Can't I go ‘browserless’ like zoom or teams or do they both use a different approach to WebRTC?
Many thanks for the encouragement! The answer is, sort of :) WebRTC is strictly browser based, but the API has been carried over to other areas, so everything might feel the same. As a for instance, both Zoom and Teams are stand alone applications, with browser versions. I think you can use WebRTC with Electron, and make a stand alone app, that would be a Zoom competitor.
@@robertbunch-dev thanks for the reply. Keep up with the good work.
please bring course on sfu please i will purchase that course please
It's coming!
I have been using the express sine the lesson 1: for remote connection to EC2 instance with the domain anc SSL certificate. But there is a problem - how to debug in remote mode with "sudo" privileges.
Hello! Good video! To fix error (when a stream has`n been ready) I block the button and use "await", here is modified listener: const getMicAndCamera = async()=>{ try { changeButtons([ 'green','grey','grey','grey','grey','grey','grey','grey' ]) stream = await navigator.mediaDevices.getUserMedia(constraints); console.log(stream); changeButtons([ 'green','blue','blue','grey','grey','grey','grey','grey' ]) } catch(e) { alert("acces denied") console.log(e) } } i also modified a function that in charge of the buttons - when a color is grey the button is disable: const changeButtons = (colorsArray)=>{ colorsArray.forEach((color,i)=>{ buttonEls[i].classList.remove('btn-success'); buttonEls[i].classList.remove('btn-primary'); buttonEls[i].classList.remove('btn-secondary'); buttonEls[i].classList.remove('btn-danger'); buttonEls[i].removeAttribute('disabled'); if(color === "green"){ buttonEls[i].classList.add('btn-success'); }else if(color === "blue"){ buttonEls[i].classList.add('btn-primary'); }else if(color === "grey"){ buttonEls[i].classList.add('btn-secondary'); //disable button buttonEls[i].setAttribute('disabled',''); }else if(color === "red"){ buttonEls[i].classList.add('btn-danger'); } }) }
Honestly no one in they right mind, after learning how to read and write will go and try to understand Shakespeare but we programmers always do this😂
🤣🤣🤣
This is one of the most comprehensive tutorials i have ever watched. explained a lot about webrtc this is mindblowing that it's free. I was wondering if it is possible to connect multiple users together, maybe like a dynamic video conference. just like microsoft teams
Thank you! Absolutely, you can do that, but it requires another tool. I go over that here: czcams.com/video/V8dIDXTF5Vo/video.html The free part ... I'm finding that I'm an instructor, not a CZcamsr. Trying to figure out how to keep putting out content that is helpful, but I'm so glad it helped you so much!
@@robertbunch-dev Thank you. I am just getting started with WebRTC and I just understood the idea that webRTC is made to connect 2 peers. To connect more the logic and execution should be handled by me. Just came across MESH, MCU and SFU. I was looking into them now and saw your reply on my comment. Will check it our right now! Thanks again
Wow you are an amazing teacher! Wish people taught coding more like this!
Thank you! Really appreciate the encouragement. Let me know if there's content you'd like to see.
Fantastic. Really great job with this explanation / tutorial. You seemed to enter turbo mode when you got to the code example. Maybe slow that down a bit. I got dizzy as you flipped from file to file.
How is such wonderful channel so underrated😮 amazing sir..Thank you sir ..as a college student I found this channel very helping
Thank you! I'm finding that I'm an instructor, not a CZcamsr 🙃 I know how to teach, but I don't know how to get found. But thanks for watching. I really appreciate it!
For some reasons I didn't notified about this video. Thanks Rob!
I'm trying something a little more broad, to see if I can get more notice. Have to find a way to get a little more traction 🙃
@@robertbunch-dev 👍
do you have an course for webrtc sfu
Not yet, but will eventually
Great videos mate and I like the setup, I would strongly recommend playing around with your camera settings. Try looking up videos on the 180 degree shutter rule. Basically states your shutter speed should double the fps you are shooting in. That's why the motion blur when you move your hands and that doesn't look natural.
Just as I thought, although P2P sounds great and is easy to implement, on the other hand it requires significant resources. Thanks Rob!