How to write a multithreaded server in C (threads, sockets) // I show you how to write a simple multithreaded socket server in C. I also show you some of its shortcomings. In the following two videos, I show you how to improve it.
About me: I'm a computer scientist, researcher, teacher, and Internet of Things enthusiast. I teach systems and networking courses at Clemson University. I lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Source code is also available to Patreon supporters. --- [https://jsorber-youtube-source.herokuapp.com/]
Want me to review your code? Email the code to js.reviews.code@gmail.com. Code should be simple and in one of the following languages: C, C++, python, java, ruby. You must be the author of the code and have rights to post it. Please include the following statement in your email: "I attest that this is my code, and I hereby give Jacob Sorber the right to use, review, post, comment on, and modify this code on his videos."
How to write a multithreaded server in C (threads, sockets) // I show you how to write a simple multithreaded socket server in C. I also show you some of its shortcomings. In the following two videos, I show you how to improve it.
About me: I'm a computer scientist, researcher, teacher, and Internet of Things enthusiast. I teach systems and networking courses at Clemson University. I lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Source code is also available to Patreon supporters. --- [https://jsorber-youtube-source.herokuapp.com/]
Want me to review your code? Email the code to js.reviews.code@gmail.com. Code should be simple and in one of the following languages: C, C++, python, java, ruby. You must be the author of the code and have rights to post it. Please include the following statement in your email: "I attest that this is my code, and I hereby give Jacob Sorber the right to use, review, post, comment on, and modify this code on his videos."
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Source code is also available to Patreon supporters. --- [https://jsorber-youtube-source.herokuapp.com/]Your Variables are Not Real.Jacob Sorber2023-02-21 | Patreon ➤ https://www.patreon.com/jacobsorber Courses ➤ https://jacobsorber.thinkific.com Website ➤ https://www.jacobsorber.com --- Your program's variables are not real // They are not containers for bits or buckets for data. Variables, like so many computing topics are abstractions. This video helps you see what's actually going on under the hood.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Source code is also available to Patreon supporters. --- [https://jsorber-youtube-source.herokuapp.com/]Scanf scansets, and reading a CSV file in C (fixed)Jacob Sorber2023-02-14 | Patreon ➤ https://www.patreon.com/jacobsorber Courses ➤ https://jacobsorber.thinkific.com Website ➤ https://www.jacobsorber.com --- Scanf scansets, and reading a CSV file in C // Let's talk a bit more about scanf, specifically how to get more control in how scanf reads in strings. In fact, let's read in a CSV file and do something with it.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Source code is also available to Patreon supporters. --- [https://jsorber-youtube-source.herokuapp.com/]Scanf Basics: the good, the bad, and why so many pointers?Jacob Sorber2023-01-31 | Patreon ➤ https://www.patreon.com/jacobsorber Courses ➤ https://jacobsorber.thinkific.com Website ➤ https://www.jacobsorber.com --- Scanf Basics: the good, the bad, and why so many ampersands? We're talking about scanf today, the function you might need, even if it isn't the function you want. We talk about its strengths and weaknesses, how it works, and why you have to put those pesky ampersands in front of the arguments.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Talk to the Duck! Programmers sometimes talk to toys to make debugging go more quickly. This video discusses the rubber duck method of debugging. I hope it helps.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
The World's Simplest Malware? (Example in C): We've talked about fork before. In this video we take a look at the forkbomb, a simple form of super annoying malware that also helps you think about how fork works.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
The Good and Bad of Automatic Make Rules // You've made a makefile, but did you know that make has a huge list of built-in automatic rules that you can use — and they can sometimes be really annoying. Let's talk about it.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
How to Read Just One Character from Stdin? // This sounds like it should be super easy, but it can be trickier than beginners expect. This video will take you through some of the messy parts.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
How to get better help with your programming. // New programmers often need help, and they often aren't very good at getting it. Here are some tips to help you get better help on your next headache-inducing code issue.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
How to Debug a Program when the Output Looks Right // One of the most problematic error case for beginners is when your program output looks perfect — just like your instructor said it should look. But, it's wrong. It's not working correctly or maybe it's failing autograder tests. This video gives you some tips for how to figure out what might be wrong.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Can I write to NULL (0x0000000000) without seg faulting? // Inspired by a student question. I think I know the answer, but I've never tried. So, let's see if I can convince the operating system (kernel) to map page #0 into my address space and allow me to access it like I would any other page.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Understanding the For Loop (examples in C) // For loops seem to give beginners more trouble than while loops. So, I thought we would break them down a bit and try to take some of the mystery out of one of the most common programming constructs out there.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
What the FizzBuzz? (A toy problem worth caring about?) // This week's video deals with a toy problem (FizzBuzz) that's become rather popular in the last decade as a quick way to evaluate basic programming skills. In this video, we discuss how to solve it a few different ways and why it's interesting.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Clarifying about literals, macros, and const (still not constant?) // Last week's video about how a const int isn't a constant could have been more carefully worded, and it confused a few people (and frustrated others). This one clarifies a few things and tries to tease apart a few related concepts — literals, constants, macros, and constant integer expressions. I hope it helps.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
A const int is not a constant // seriously. It's one of the oddest things about C, but it's true. In this video, I'll show you a few examples.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Some of you have complained about audio issues — variable loudness or too quiet. In this video, I'm trying a few things to try to fix this. Let me know if you like this better.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
What about Pointer Arithmetic with Void Pointers? // After my recent video about void pointers, some of you commented about pointer arithmetic. So, this is a follow-on video to address this issue. This video talks about why pointer arithmetic with void pointers should be avoided.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
The What, How, and Why of Void Pointers in C? // Pointers can be challenging for beginning programmers. And, void pointers add a level of perplexity. This view will take you through the basics, and hopefully straighten out any confusions about generic pointers, why we have them, and how they work in both C and C++.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
How to Indent Code the Right Way // I know a lot of you think you know the right way to indent your source code. Sorry. A lot of you don't. This video is here to help you out. And, if you aren't indenting your code...well, this will serve as some motivation. Get to it.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Source code is also available to Patreon supporters. --- [https://jsorber-youtube-source.herokuapp.com/]Is memcpy dangerous?Jacob Sorber2022-07-05 | Check out MagicMind here, get productive now: https://www.magicmind.co/sorber Use my code SORBER20 for 20% Off #MagicMind
Is memcpy dangerous? // This video is a response to a recent comment. It's also a discussion of memcpy and memmove and you would want to use each to prevent bugs in your programs.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Is there Garbage Collection in C and C++? // You aren't the first person to wonder about automatic memory cleanup in C. Why don't we have garbage collectors like they do in other languages? Let's talk about it.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Are Pointers Bad for Embedded Systems? // This video is a quick response to a question about pointers and whether or not we should use them in an embedded system. As usual, the answer is it depends, sometimes, but be careful.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Pulling Back the Curtain on the Heap // The heap is pretty mysterious for most programmers — at least for beginners. In this video, we're going to see what the heap actually looks like, by replacing our allocator to record our activities and then draw what happens.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
What's the Best Way to Copy a Struct in C and C++? // Structs are simple. Copying them is a common every-day programming task. But, there are methods for duplicating a struct that you may not know about. In this video we go through them and look at their strengths and weaknesses.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
How to Lose Your Code // This video takes you through the most common ways that I see beginner (and not-so-beginner) programmers lose their hard-written code, and how you can avoid losing yours.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
How to customize printf in C // Everybody uses printf, but most programmers don't realize that you can customize it to print out your own data types and formats. In this video, I show you one way to do it.
Related Videos:
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Having Fun with XOR (exclusive-or) // XOR is one of those things that new programmers either don't know about or wish they didn't know about, but it can do some really cool things. In this video, I want to show you one of them.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Why you don't get much from class? // This is a common student comment. In this video, I thought we should discuss some of the reasons.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Generating Unique Identifiers in Your Programs (GUIDs/UUIDs) // Globally- or Universally-Unique Identifiers are a common tool for assigning unique handles to devices, objects, and database entries. This video takes you through the different types of GUID/UUID and shows you how to generate them, both from your C programs and the command line.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
You've probably never accessed a file like this before. (Async IO example) // Asynchronous input and output is cool, but rarely used. In this video, I'll show you how to split-phase your file reads so you can get other things done in the meantime. This can be a useful alternative to threads, for those of you trying to squeeze every last bit of performance out of your programs.
Related Videos:
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Embedded Crypto: AES Example on a Microcontroller (in C) // Microcontrollers are wimpy, right? People sometimes assume that they can't do cryptography. Or at least they can't do crypto efficiently. This video shows you one way that low-power microcontrollers like the MSP430 get around their wimpiness, using accelerators.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
How to Safely and Simply Create Temporary Files (in C or C++) // Most programmers sooner or later need to create temporary files in their programs. Most also don't know that there are built-in functions that can make the job easier and safer. This video shows you how to do it, without worrying about collisions and naming schemes.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Source code is also available to Patreon supporters. --- [https://jsorber-youtube-source.herokuapp.com/]Lets hangout on an upcoming live stream.Jacob Sorber2022-03-18 | #Shorts Stackstream is a new live video streaming platform for developers. Code together, learn from each other, and just chat with other coders.
My StackStream Profile: https://www.stack-stream.com/profile/Jacob I'll be trying out the platform on March 29 @ 1PM EDT and March 30 @ 2 PM EDT. See you there.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Revisiting print debugging. Is it that bad? // Last week's video inspired a lot of conversation, mostly because I didn't explore the details and corner cases of print debugging. And, a lot of you made some good points. So, this week, I decided we should talk more about the strengths and weaknesses of printf and its use in debugging, as well as some other options like logging and assert statements.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
How not to debug your programs. // print statements are the new programmer's go-to tool, but if you're going that route, you're making things to difficult for yourself.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
How to Contribute to Open Source Projects on Github (pull requests) // We're all familiar with opensource software projects. Most of use know that they're supported and developed with community contributions, but most beginners don't know how to get involved and contribute. This video takes you through the process of submitting a pull request to a github project.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Stop Studying for Code Interviews // Just wanted to share some advice about preparing for programming interviews, and whether or not you actually should.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Testing matters. Watch those corner cases. // Let's take a look at the bug from last week's video. Basically, it's an issue of not watching for our corner cases or edge cases.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Do you see the bug? // This week, I thought I would give you a little debugging practice. Simple function. That happens to be broken. It has a bug in it. See if you can see it. We'll talk about it next week.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
How Does LibC Detect Redirection? Interesting Bug Follow Up. // This video follows up on my custom allocator bug video, this time looking at how the program (specifically LibC) knows about redirection (or that the output has been redirected). Does it? We know the allocator behaves differently. In this video we look into the libC source code and learn a bit more about stat and IO block sizes.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
An Interesting Redirection Bug. How Redirection Can Change Program Behavior. // In this video, we check out an interesting bug. Most programmers assume that redirecting input and output doesn't change anything, and usually for common practical purposes, it doesn't. But, this video takes you through one scenario, a bug that my student ran into, where redirection changes a lot. Enjoy.
Related Videos:
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/
The Most Useless Keyword in C? // The C language has a lot of keywords. Most are pretty useful, but as languages evolve some keywords become less useful, and this is definitely the case in C. This video takes you through a few examples of keywords that you may never need to use as a C programmer.
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do: https://www.jacobsorber.com https://people.cs.clemson.edu/~jsorber/ http://persist.cs.clemson.edu/