Chris Kanich
Chris Kanich
  • Видео 55
  • Просмотров 542 293
CS 484 Fall 23: blind coding of HW2 (React)
This is me doing the React homework assignment and talking through my thought process. It should be helpful for people to understand how to both work through a React project as well as understand the problem solving strategies one might use during a programming assignment.
Просмотров: 561

Видео

APIs: the web is your computer
Просмотров 799Год назад
APIs: the web is your computer
Secure Web App Dev: Homework 1 blind coding
Просмотров 657Год назад
In this video I do the crud assignment currently available at 484.cs.uic.edu/homeworks/homework1/ after not having looked at the source code or requirements closely. I talk through everything that I'm doing so you can get an idea of how to think about and debug this type of program.
JavaScript for CS Majors
Просмотров 746Год назад
Already know C , Java, or Python? Want to pick up JavaScript? Here's what to watch out for. Take a look at javascript.info for a good resource for picking up JS as an experienced developer.
HTTP: The Protocol that Binds
Просмотров 1,1 тыс.Год назад
HTTP is the basis for all of the cool things we do on the web and more. This video introduces the fundamentals fo HTTP and demos how to see it in action in a browser and a text based http client.
Secure Web App Dev: Welcome to CS 484 Fall 23!
Просмотров 993Год назад
What is this course? Why is this course? This video is an introduction to my course on secure web application development, and provides a short motivation for why a computer science major ought to take it. Course website: 484.cs.uic.edu/
Adversarial Tracking on the Web: History Sniffing and FIngerprinting
Просмотров 8572 года назад
Adversarial Tracking on the Web: History Sniffing and FIngerprinting
Everything you should know about deadlock in three minutes or less
Просмотров 18 тыс.3 года назад
Everything you should know about deadlock in three minutes or less
Everything you should know about race conditions in two minutes or less
Просмотров 3,4 тыс.3 года назад
Everything you should know about race conditions in two minutes or less
Everything you should know about thread safety in 2 minutes or less
Просмотров 22 тыс.3 года назад
Everything you should know about thread safety in 2 minutes or less
Using visual debugging and Factorio to understand multithreaded programs
Просмотров 2,4 тыс.3 года назад
Source code used in this video: github.com/csatuic/vscode-lectures/tree/master/chapter12
How to understand & implement read-write locks and bounded buffers
Просмотров 13 тыс.3 года назад
How to understand & implement read-write locks and bounded buffers
The right tool for the job: when to use processes, when to use threads, and why!
Просмотров 2,5 тыс.3 года назад
The right tool for the job: when to use processes, when to use threads, and why!
Taking complete control: why IO multiplexing works well for webservers and GUIs.
Просмотров 8 тыс.3 года назад
Taking complete control: why IO multiplexing works well for webservers and GUIs.
Concurrency: the cause of, and solution to, lots of problems in computing.
Просмотров 2,5 тыс.3 года назад
Concurrency: the cause of, and solution to, lots of problems in computing.
Concurrency: what's good about it, what's hard about it.
Просмотров 1,6 тыс.4 года назад
Concurrency: what's good about it, what's hard about it.
what's the difference between processes, threads, and io multiplexing?
Просмотров 10 тыс.4 года назад
what's the difference between processes, threads, and io multiplexing?
A system programmer's introduction to the world wide web
Просмотров 1,9 тыс.4 года назад
A system programmer's introduction to the world wide web
The Linux socket API explained
Просмотров 42 тыс.4 года назад
The Linux socket API explained
The Internet just plain DUNKS on the phone network. Here's why.
Просмотров 1,1 тыс.4 года назад
The Internet just plain DUNKS on the phone network. Here's why.
Playing nice with others: the ONE WEIRD TRICK that makes the whole Internet not explode
Просмотров 1,1 тыс.4 года назад
Playing nice with others: the ONE WEIRD TRICK that makes the whole Internet not explode
How do we make the Internet work? Like other hard problems! We break it down into smaller problems.
Просмотров 1,4 тыс.4 года назад
How do we make the Internet work? Like other hard problems! We break it down into smaller problems.
A system design approach to understanding what's so AWESOME about the Internet
Просмотров 1,8 тыс.4 года назад
A system design approach to understanding what's so AWESOME about the Internet
understanding mmap, the workhorse behind keeping memory access efficient in linux
Просмотров 62 тыс.4 года назад
understanding mmap, the workhorse behind keeping memory access efficient in linux
What does it take to design a memory allocator? Dynamic Memory Allocation System Design
Просмотров 24 тыс.4 года назад
What does it take to design a memory allocator? Dynamic Memory Allocation System Design
what's in a heap? simple malloc implementation internals explained
Просмотров 21 тыс.4 года назад
what's in a heap? simple malloc implementation internals explained
What makes a dynamic memory allocator any good? Systems Programming Lectures
Просмотров 2,7 тыс.4 года назад
What makes a dynamic memory allocator any good? Systems Programming Lectures
Demystifying Page Tables - Computer Systems Programming Course
Просмотров 5 тыс.4 года назад
Demystifying Page Tables - Computer Systems Programming Course
Page tables for your page tables: understanding how multi level page tables work
Просмотров 16 тыс.4 года назад
Page tables for your page tables: understanding how multi level page tables work
The magic of the page fault: understanding demand paging of virtual memory in linux
Просмотров 9 тыс.4 года назад
The magic of the page fault: understanding demand paging of virtual memory in linux

Комментарии

  • @Banditxam5
    @Banditxam5 4 дня назад

    Best explanation so far....

  • @energy-tunes
    @energy-tunes 4 дня назад

    in case the linker complains to anyone in the future when testing the example, it appears gcc deviated from the standard when it comes to this specific scenario and will just error saying there are 2 symbol definitions. to resolve it you can explicitly mark the variable x as weak with __attribute__((weak))

  • @ChaRon05
    @ChaRon05 8 дней назад

    Easily the best explanation on deadlock on the whole platform!

  • @gatty.
    @gatty. 19 дней назад

    Thanks heaps for the great video! With 19:40~ isn't it just the symbols that are being resolved, (in this case, printf()) that are copied from libc to the program, and not everything from the libc library? So, the more libc library functions called from the static program, the larger the size?

  • @SH-iy2gw
    @SH-iy2gw Месяц назад

    Thanks so much for making these lectures available for free! So helpful and such a great lecture.

  • @puneethgr
    @puneethgr Месяц назад

    Excellent tutorial! At 11:00, I liked the clarification regarding two different file descriptors ("socket" file descriptor and "accept" file descriptor). Thanks a lot.

  • @terrym2007
    @terrym2007 Месяц назад

    What gcc version do you use?

  • @IA_seb
    @IA_seb 2 месяца назад

    Hey, you posted this video twice ("The magic of page miss" is the same video as "The magic of page fault". Excellent content by the way, I am following all your courses as an open source coder eager to learn more and build his own software :D Your explanations are the best I could find on the internet so far. What a precious resource !

  • @realkoryheard
    @realkoryheard 2 месяца назад

    This is really good.

  • @shanmukhasreedhar9067
    @shanmukhasreedhar9067 2 месяца назад

    Just WOW... really nice explanation with practical examples

  • @miriyalajeevankumar5449
    @miriyalajeevankumar5449 3 месяца назад

    Thank you professor for these lectures.💌

  • @enzoding7558
    @enzoding7558 3 месяца назад

    thank you so much. and may I know is it possible for a gradescope invitation code for labs or homeworks?

  • @Fleato
    @Fleato 3 месяца назад

    crazy I'm doing this because my uni just brought in a new teacher for systems prog and he just does what everrrrr and wings everything and has zero clue what anything is or even test if the random stuff he gets on google actually works before assigning it lol. we have not been shown a SINGLE line of code in class. but we have coding assignments. he has not shown anything, at all. I have no idea what systems programming is even supposed to be about.

  • @mrhassell
    @mrhassell 3 месяца назад

    SIGHUP, SIGKILL, SIGSIGSPUTNIK.. nice hair bro!

  • @ionitastefan746
    @ionitastefan746 3 месяца назад

    Thank you for this clear explanation. You made a hard concept very clear to me. Just clicked in my head. I have a big AHAAA!!! thank you again!

  • @aishabaheera
    @aishabaheera 3 месяца назад

    the way you explain is so satisfying and slayinggggg

  • @thomaspsteven
    @thomaspsteven 3 месяца назад

    This is amazing. Thanks!

  • @ShaunakDe
    @ShaunakDe 3 месяца назад

    Very useful! Thanks for sharing these here

  • @SANTIAGOLOPEZPEREYRA-c5m
    @SANTIAGOLOPEZPEREYRA-c5m 3 месяца назад

    Outstanding explanation

  • @glokta1
    @glokta1 3 месяца назад

    Please never stop uploading

  • @AlexN2022
    @AlexN2022 4 месяца назад

    we should not need separate not_full and not-empty conditional variables. Also probably should avoid signaling if queue size wasn't empty or full before out change.

  • @AlexN2022
    @AlexN2022 4 месяца назад

    using pthread_mutex in place of a Posix semaphore though, we have one process (first reader) locking a mutex and a different process (last leaving reader) unlocking it. This is not allowed with mutexes. Which is why we would usually use semaphore(1) instead

  • @krispyChkn
    @krispyChkn 4 месяца назад

    Doubt: the tcp handshake that happens between the client and server is happening on the listen stage or on each accept stage? can you explain this if possible or direct me to a resource from where i can understand this better. Thanks for the amazing explaination.

  • @EdchelStephenNini
    @EdchelStephenNini 4 месяца назад

    Thank you sir!

  • @Karim-nq1be
    @Karim-nq1be 4 месяца назад

    Very clear explanation, thank you very much.

  • @kennethcarvalho3684
    @kennethcarvalho3684 4 месяца назад

    How does a process know rhat a signal has been sent to it?

  • @kennethcarvalho3684
    @kennethcarvalho3684 4 месяца назад

    Is v-node the same as i-node

  • @mhv4315
    @mhv4315 4 месяца назад

    Great video, thank you

  • @ChristopherBruns-o7o
    @ChristopherBruns-o7o 4 месяца назад

    5:48 'As application developers we don't need to know how it works, just that it does', lol what? Who knows how it works then if not application developers? This is probably why so many aiming for entry level position have trouble landing work... "Uhm sorry sir I don't know how it works just that it does - that'll be $75/hour please" - If i google how to install a door I generally am expecting the tutor to know how to install a door. Is there an analogy for the difference in unix and af_inet sockets? At my next programmer interview I just answer each problem with 'click download', cheers!

  • @casualmotion-u3q
    @casualmotion-u3q 4 месяца назад

    Damnnn i havent been in UIC since 2017 but we once talked randomy for half an hour at your office while i was looking for another professor, and you shared your thoughts on getting a masters with me. Hope youre doing well Mr Kanich

  • @shrek95372q
    @shrek95372q 4 месяца назад

    ...

  • @obama213
    @obama213 4 месяца назад

    nice train example!

  • @shitshow_1
    @shitshow_1 5 месяцев назад

    This is the finest video on GOT, PLT topics. Thanks for your efforts.

  • @KFRogers263
    @KFRogers263 5 месяцев назад

    Really appreciate the clarification on the server side of the two different fd's. I think that was muddy in my head and now with the diagram and your explaining the difference, it all makes more sense!\

  • @volovodov
    @volovodov 5 месяцев назад

    > Talks about Linux > Is on Windows mfw

  • @gemini_537
    @gemini_537 5 месяцев назад

    Gemini 1.5 Pro: This lecture is about memory mapping (mmap) and its role in virtual memory. The speaker, Chris Kanich, explains that memory mapping is a technique that allows a process to access a file as if it were directly mapped into its memory address space. This means that the process can read and write to the file using normal memory access instructions, without having to explicitly call read or write system calls. [1,2] One of the benefits of memory mapping is that it can improve the efficiency of memory access. When a process reads from a file using traditional read system calls, the data must be copied from the kernel address space to the user address space. This copying can be time-consuming. With memory mapping, the data is already in the process's address space, so there is no need to copy it. [1,2] Another benefit of memory mapping is that it can simplify the process of sharing memory between processes. Two processes can map the same file into their respective address spaces, and any changes made by one process will be immediately visible to the other. This can be useful for things like shared libraries, which can be mapped into the address space of multiple processes at the same time. [2] The lecture also discusses the concept of copy-on-write (COW). COW is a technique that allows multiple processes to share a read-only page of memory. The first process to write to the page will cause a page fault, and the kernel will create a private copy of the page for the writing process. This means that the original page can still be shared by other processes, and the writing process will not affect them. [2] Overall, memory mapping is a powerful technique that can improve the efficiency of memory access and simplify the process of sharing memory between processes.

  • @askinc102
    @askinc102 5 месяцев назад

    Great explanation Chris. Keep uploading.

  • @sheldonhage726
    @sheldonhage726 5 месяцев назад

    I've been doing packet decodes from packet decoders where first introduced (really before Ethernet was invented) and have read and watched seemingly countless examples of tutorials on this subject. This is easily the best one anywhere.

  • @AFY_OUN
    @AFY_OUN 5 месяцев назад

    I'm soo in love with your way of teaching this is so unteresting !

  • @tengjiang8922
    @tengjiang8922 5 месяцев назад

    Great lecture! I'm wondering why is spawning subprocesses for ulimit and wc here?

  • @tengjiang8922
    @tengjiang8922 5 месяцев назад

    Thank you. Please keep sharing!

  • @Fracasse-0x13
    @Fracasse-0x13 5 месяцев назад

    15:00

  • @AadityaSPatil
    @AadityaSPatil 6 месяцев назад

    This is probably the most in-depth (and clear) explanation of sockets I've seen yet. Thank you very very much.

  • @erenyeager4452
    @erenyeager4452 6 месяцев назад

    Hello, Is the entire playlist here on your channel?

  • @kblmn
    @kblmn 6 месяцев назад

    great video.this video clicked the javascript event loop for me.

  • @kafoby8732
    @kafoby8732 6 месяцев назад

    Thank you for making these lectures FREE!!

  • @alexkfridges
    @alexkfridges 6 месяцев назад

    I really wish you didnt waffle on about a separate topic for 3 minutes in the middle

  • @nicolaskeroack7860
    @nicolaskeroack7860 6 месяцев назад

    I have few words: crystal clear

  • @sayansivakumaran
    @sayansivakumaran 6 месяцев назад

    Wanted to add in another thank you for all of your videos. They're really helpful for teaching myself material that I never had the opportunity to take classes for in college :)

  • @urbankoistinen5688
    @urbankoistinen5688 6 месяцев назад

    It is also worthwhile to test that the system does what the documentation seems to imply it should do. Try mmap on a large file using different flags, see what happens when the file is cashed in main memory.