- 291
- 10 333 811
Jacob Sorber
United States
Приєднався 27 жов 2011
Welcome to my channel. 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. I help you get under-the-hood to 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.
More about me and what I do:
www.jacobsorber.com
people.cs.clemson.edu/~jsorber/
persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon --- [www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. --- [jsorber-youtube-source.herokuapp.com/]
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.
More about me and what I do:
www.jacobsorber.com
people.cs.clemson.edu/~jsorber/
persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon --- [www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. --- [jsorber-youtube-source.herokuapp.com/]
I Am Hiring!
Patreon ➤ www.patreon.com/jacobsorber
Courses ➤ jacobsorber.thinkific.com
Website ➤ www.jacobsorber.com
---
The Job Post:
jobs.clemson.edu/psc/ps/JOBS/EXT/c/HRS_HRAM_FL.HRS_CG_SEARCH_FL.GBL?Page=HRS_APP_JBPST_FL&Action=U&SiteId=1&FOCUS=Applicant&JobOpeningId=108900&PostingSeq=1
Related Videos:
Advice: How not to email someone about a job: ua-cam.com/video/95AxKHcJrY4/v-deo.html
***
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:
www.jacobsorber.com
people.cs.clemson.edu/~jsorber/
persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon --- [www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. --- [jsorber-youtube-source.herokuapp.com/]
Courses ➤ jacobsorber.thinkific.com
Website ➤ www.jacobsorber.com
---
The Job Post:
jobs.clemson.edu/psc/ps/JOBS/EXT/c/HRS_HRAM_FL.HRS_CG_SEARCH_FL.GBL?Page=HRS_APP_JBPST_FL&Action=U&SiteId=1&FOCUS=Applicant&JobOpeningId=108900&PostingSeq=1
Related Videos:
Advice: How not to email someone about a job: ua-cam.com/video/95AxKHcJrY4/v-deo.html
***
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:
www.jacobsorber.com
people.cs.clemson.edu/~jsorber/
persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon --- [www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. --- [jsorber-youtube-source.herokuapp.com/]
Переглядів: 6 802
Відео
A design pattern for cleaner recursive functions.
Переглядів 6 тис.Місяць тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com A design pattern for cleaner recursive functions. // A lot of new programmers struggle with their first recursive functions. This video shows you how to address one common challenge while cleaning up your code a bit. Welcome! I post videos that help you learn to program and become a more conf...
Student programmers, ChatGPT is not your friend
Переглядів 11 тис.3 місяці тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Student programmers, ChatGPT is not your friend // All the rage or an apocalyptic harbinger of doom, people are loving and hating generative AI. This video talks about why using generative AI tools as a student programmer is probably a not a great idea-useful to a skilled developer, but as a ...
How to sort part of an array in C
Переглядів 5 тис.4 місяці тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com How to sort part of an array in C // in the last video we talked about sorting in C, using qsort. This video follows up on that one to look at sorting just a portion of an array. Related Videos: Sorting video: ua-cam.com/video/X-mSc_xZXOE/v-deo.html Welcome! I post videos that help you learn ...
Sorting in C: Why the double pointers when sorting pointers? (qsort)
Переглядів 8 тис.5 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Sorting in C: Why the double pointers when sorting pointers? (qsort, mergesort, heapsort) - in this video we're looking at the built-in sorting functions in the C standard library (specifically qsort) and a common source of confusion (double pointers) when using them. Welcome! I post videos t...
How to keep Programming from Hurting You.
Переглядів 7 тис.5 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Monitors used in the videos: BenQ GW3290QT - www.benq.com/en-us/monitor/home/gw3290qt.html BenQ GW2790QT - www.benq.com/en-us/monitor/home/gw2790qt.html Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems t...
How do I Set, Clear, and Toggle a Single Bit?
Переглядів 7 тис.6 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Related Videos: Access a Single Bit: ua-cam.com/video/ciio80nkjB8/v-deo.html 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 system...
How does fork work with open files?
Переглядів 9 тис.8 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com How does fork work with open files? // Fork clones processes. We've talked about that before, and we know that fork copies a process's memory, but what happens with open file handles? In this video, I'll provide a little insight. Related Videos: Fork: ua-cam.com/video/ss1-REMJ9GA/v-deo.html M...
How do I access a single bit?
Переглядів 19 тис.8 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com How do I access a single bit? // Bitwise operations can be a bit frustrating for new programmers. This video shows you a few ways to access a single bit, usually within a bitfield or bitvector. Related Videos: Bit Fields: ua-cam.com/video/aMAM5vL7wTs/v-deo.html Welcome! I post videos that hel...
How to make memory read-only in your C programs.
Переглядів 19 тис.8 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com How to make memory read-only in your C programs // most of the memory we use in our C programs is readable and writable, but sometimes you want to protect some memory and prevent yourself (or some buggy or malicious code) from changing it. This video shows you how. Related Videos: Shared Memo...
Another way to check pointers at runtime in C
Переглядів 12 тис.9 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Another way to check pointers at runtime in C // We're talking about pointer checking again, mostly as an exploration of fork and processes, but also because it's just interesting and something we don't often do. I hope it's enlightening. Related Videos: Previous pointer checking video: ua-ca...
Is the C programming language still worth learning?
Переглядів 88 тис.9 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Is the C programming language still worth learning? C is old (well by program language standards), and people often ask if it's worth learning, or if it's on its way out. This video talks about some of C's strengths and weaknesses. Related Videos: Welcome! I post videos that help you learn to...
Batteryless computing, conferences, and the Maui fires (with Prof. Josiah Hester)
Переглядів 2,6 тис.9 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com 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 un...
The right way to define a C function with no arguments
Переглядів 33 тис.11 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com The right way to define a C function with no arguments. // Most new programmers (and many old programmers - me) define functions with no arguments with just an empty argument list. There's a better way, and this video is here to talk about it. Welcome! I post videos that help you learn to pro...
What is a function prototype in C
Переглядів 16 тис.11 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com What is a function prototype in C // Function prototypes often catch new C and C programmers by surprise. This video is an attempt to clear things up. Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems top...
How to get an IP address from a host name? (Example in C)
Переглядів 11 тис.Рік тому
How to get an IP address from a host name? (Example in C)
Binary data exercise: how to tell if a file is a jpeg?
Переглядів 13 тис.Рік тому
Binary data exercise: how to tell if a file is a jpeg?
find memory errors quickly. (-fsanitize, addresssanitizer)
Переглядів 16 тис.Рік тому
find memory errors quickly. (-fsanitize, addresssanitizer)
Does it matter what hash function I use? (hash table example in c)
Переглядів 6 тис.Рік тому
Does it matter what hash function I use? (hash table example in c)
Fixing our "better" hash table's memory leaks (in c)
Переглядів 5 тис.Рік тому
Fixing our "better" hash table's memory leaks (in c)
How to keep your child from becoming a zombie process (C example)?
Переглядів 9 тис.Рік тому
How to keep your child from becoming a zombie process (C example)?
Sockets and Pipes Look Like Files (Unix/fdopen)
Переглядів 19 тис.Рік тому
Sockets and Pipes Look Like Files (Unix/fdopen)
Scanf scansets, and reading a CSV file in C (fixed)
Переглядів 10 тис.Рік тому
Scanf scansets, and reading a CSV file in C (fixed)
it is a huge amount of knowledge
C is the Vanilla World of Warcraft of programming.
What dies bork means?
The binary exploitation topics landed me here. It appears unlike the stack visualizations for heap calls are rare.
Thank you!
This video was really helpful, to understand semaphore in my os course ❤❤
C is still useful. Though, front-end stuff are more popular and get paid better if not much better.
bool isRelevant = c?1:1;
C doesn't have a bunch of libraries like python so you have to go out and find them and test them to make sure they work properly.
If you want to really learn how a computer works program in assembly. C is too high level to learn how computers work.
Hi Jacob, are you planning on doing more videos? In 2024 the number of vids as plummetted. You must be busy doing something else and I was just wondering what' sthe status quo.
3:23 my favourite part of these videos.
Whomever came up with the C++ syntax just wanted to scare people. It is a real turn off for me. Not intuitive at all.
The other nice thing about C for learning to code well is that with Python you can get away for a time with writing sloppy illegible code but C really forces you to pay attention to what you're writing, how you write it and how you structure it other wise it likely won't even run.
Jacob has the face of a happy little boy
*WHY would char** point to a 2D array? Can explain the logic in that? That wasn't explained in that video.*
*Comment 100! Yay! So it honestly looks like C already had a way to pass by ref and so there had to be a distinct way to pass a pointer by ref, so thus ** when passing a pointer by ref. Seems logical?*
Nice explanation
What is the difference between inline functions and macro like function?
You can use adjaceny matrix (2d array) adjacency list, compact list for graph representation.
clear and concise 👏
5:27 spoiler. no, it still wont find a library
No
I remember this like so: "I fork to get children", please, do not remove "to get" in that sentence!
I have seen arrays of function pointers used in Embedded, Can't say it way easy to understand but man it was elegant, like a masterpiece.
Nice 🎉
Ah man... first time in my life I've wished I lived in SC. Btw, Clemson could sure use some web devs on their job board 😅
Yeah, I know.
Calloc allocates n+1 bytes of memory to buffer How does buffer is able to hold more than the size of allocated bytes ? For eg. when n=2 it allocates 3 bytes But how does buffer store 00, 01,02,03,04......
C styled C++ if you want to use C++. C is a nightmare to work with with even basic stuff like taking an arbitrary length string taking 10-100x the lines of code of any other language. Modern C++ is a bloated mess. Programming in a C style with std string, vector and unique ptrs is the only way to make either language nice to work with imo.
I love writing in C/C#, it's such a great language.
// While practicing functions, I encountered an error. Can you explain why? // I tried using `void` as an argument in the function call. // Why can't `void` be used this way, and what is the proper way to call a function that takes no arguments? void myFunction(void) { // Function body } int main() { myFunction(void); // Why is this incorrect? return 0; }
I'm just a regular guy, but my intuition tells me that if two sisters don't get along, it's probably because of longstanding emotions that extend beyond an inability to encapsulate data! More likely, " I will never talk to you again because you stole my pointer!"
Yet another: Is assembly worthy? For the 10,000th time 😒
8:28 "pointers and arrays are almost exactly the same thing" This is a blatant lie. A pointer is a block of data containing an address. It will be size 1 byte for 8 bit machines, 4 bytes for 32 bit, 8 bytes for 64 bit, etc. An array is a block of data of any type and can be any size. It is true that an array names are similar to a pointer, and array syntax is similar to pointer arithmetic, but pointers and arrays are vastly different. If someone wants to make a video on how to dereference a pointer to a pointer of 3d pointers using pointer syntax, array me to it.
Not Apple's fault that you choose to stick to your stone knives and bearskins.
So, you're not using the tools that apple provides at no cost, and you're complaining that GDB doesn't work well? You know GDB is open source, right? Why don't you fix it?
I think somebody needs a hug.
@@JacobSorber Does that pass for a clever rejoinder in your social milieu?
"Long life to C"
If you channel a 4-bit number through a 4bit decoder and then set the appropiate bits for a 7segment display, you can show a binary number in hex. Super easy to expand.
thank you
Are there any remote positions?
nope. At least with my lab, we just have an in-person position.
Bravo!!
You should free the buffer within the helper function otherwise it will leak memory every time it is called
very true. thanks.
If you know C then you know UNIX. They are tied closely. No ones using Ruby to open posix message queues.
Legend 👍👍👍👍📈📈📈
lol, The most important thing you missed here, Which is the file descriptor fd of the socket that have been opened by us as the socket of the client, This guide/explanation is dead when you reached the 7:53 and when you said "we just get from the `http_get` function, What actually is inside this `http_get` is that we're opening a socket and sending an HTTP 1.1 / get request via ***socket**** so we do open a fd which is the socket id that retrived and than we're openning the fdopen file stream of this particular process file descriptor for the particular client. you just didn't show anything about it, and it's a big miss, And this is the WHOLE POINT of this video. what you have done there is to ESTABLISHING a connection to the webserver and retrive data from it, and you streamed The data that have been received to a Unix domain socket... AND this Unix domain socket has an open fd for this particular process! You didn't explain that. THIS IS SUPER important. I'm giving 6/10 to this video.
But isn't division more expensive than comparison? Especially in context of buffers, where we want maximum performance?
restrict, while it is good in some contexts, it isnt nessecarily useful
The way I think of it is that Parallelism is the parent of concurrency. That is, parallelism deals with multi-threading, and is constrained by hardware implementations; to effectively process task in parallel, task run at the same time and should be divided to as atomic as possible, accessing no shared (or unprotected/locked) data simultaneously. Concurrency could or could not timeslice between task, depending on the Task Partitioner, hyperthreading, etc, but it does not concern itself with the partitioning of tasks/data; concurrency IS running things while parallel is the identification of how things can be run in a thread safe manner, concurrently. It’s been a while since I worked with System.Threading namespace, but that’s how I remember it.
I'm using it for maths - sometimes it makes mistakes, I mostly research the stuff beforehand and ask it to double-check the answers, sometimes when I don't have the info though, I ask it to explain - it's better than nothing, I wish I could have a human teacher
I study computer science and find this very itneresting. Do i have to be an electro engineer for this? Is there a course on embeded i can take?