@@shinej11 Python's is imo the least evil scripting language, and can do some low level stuff too. I once implemented some serial networking protocols in Python on a microcontroller. Use the right tool for the job and have fun!
@@seanbix5366 You probably won't see this, but what C projects would you recommend a Python dev work on to get a good grasp over C? I have nothing specific I want to do with C in mind, which is why I ask this.
@@gregh5061Something that motivates or excites you personally. If I worked primarily with Python and didn't hate what I do, I would try rewrite some of that work in C. As an IT person by trade, I've rewritten high level scripts (including python) that could benefit from a performance boost in C just to learn and I think it's a fun, practical and quick way to pick up the nuances. If that's too daunting, then it's back to basics with data structures, algorithms (and books) imo. Maybe in a library you can reuse and improve!
Ahh very good explanation good sir. I was getting into c socket programming without understanding the underlying fundamentals to implement this protocol. Gained a lot of information from this one.
Very concise and thorough introduction to the application of those theoretical ideas and protocols, most college classes lack this practical approach. Thank you!
Execllent video! Just what I was looking for. I recommend thinking about a better title in future in order to attract more viewers to your content since this video is a fantastic deep dive, you explained protocols in less than a minute visually.
Nice video and very clear explanation! For some reason I thought http is much more complicated. One question I have, is there a specific reason you search for "GET /" in the request and not just "GET"?
@@androu-f3b Because here I'm checking if the client is specifically getting "/", the root directory. Its the GET request the server receives when they (the client) just type in " IP_ADDRESS/". Its rudimentary but eh it works. Otherwise it's "GET /SPECIFIC_RESOURCE". Thank you!
I literally googled HTTP RFC and immediately started writing the code. I was roughly today years old when I saw there was http 2 and 3 so I don't know yet 👉👈 I've heard they're the same protocol, but with a binary format and extra features, so it should be doable!
@@seanbix5366 http2 and 3 are a lot more complex, you can have several transfers simultaneously over the same TCP connection and weird stuff like that and http3 uses UDP / Quick as underlying network protocol. So don't count on being able to reuse too much
How did you were able to actually implement the theory of networks? I just saw a course in college about OSI model but it was almost entirely theorical, what did you have to learn?
TCP/IP is typically implemented as a part of the OS kernel. If you're not using an OS, e.g. in embedded (very very cheap) systems, software libraries will implement the lower level protocols for you (up to level 4 is common). Here, I've used the TCP/IP implementation in Linux ("Berkeley Sockets API") to implement HTTP (although I could have used a library for that too). TL;DR: I didn't!
Yes, and yes. This is "socket" programming, the operating system's abstraction of TCP/IP which you can do in C#. That's how you would send the HTTP header string and data. This is purely for learning purposes though, it's not massively practical or idiomatic. C# has easy HTTP interfaces. The project is linked in the description!
Is the operating system involved in the TLS protocol or the OpenSSL library will take care of encryption and the decryption of the data and then just use the send and recv functions provided by the OS ?
That's abstracted away by the library such that it's simple. The operating system is involved in the protocol, such that the library that implements the protocol, interfaces the operating system for various utilities to assist it in doing so. Encryption algorithm: library code Reading a certificate file: OS code So yeah its more than likely that it (openssl code) encrypts the data before just sending it over send().
Any thoughts what would be involved in writing an ESP32 application, that takes data from the uart, and passes it wirelessly either bluetooth (SPP) or via Wifi. For Wifi, I imagine the ESP32 could act as a web server (TCP) and display the RS232 data, but maybe there's a UDP way it could send data to a PC on the same network?
(Edit: I got a job writing ESP32 firmware) Yeah totally, you can do a webserver. Arduino libraries for ESP32 have you mostly covered either way; UDP, TCP or HTTP.
@@singhyuvraj122 I won't be doing any TCP/IP implementation until I end up working more in embedded and need to make one. An email server sounds rad though!
Isn't this simple HTTP server, that parses the requests and returns some response? Most of the backend frameworks already have this functionality implemented.
@@bladekiller2766 Oh for sure. Dead simple, its in the title. If you want to actually be productive, you can always grab a library/framework for whatever. But now I don't have the third party dependencies, and I learned the protocol inside and out! From my experience- there's always an underestimated leap from thinking you understand a technology, to actually being able to implement it which can be fun to discover. Plus this is targeted more towards IT people, who often overestimate a lot of complexity in the tech they're using.
@@seanbix5366 Couldn't agree more. All the tech stacks and networking complexity looks extremely complex, but when you try to implement it from scratch by yourself you will suddenly realize that it's doable and it will give you insights on why some things are the way they are. Props for doing it in C :)
@@energy-tunes original spec is linked. I implemented a working subset I needed in like 2-3 coding sessions. The hardest part was probably MIME types and understanding + writing CORS. What took longer was just making a useful interface to the Linux socket API...
@@grenadier4702 All of my sockets are "non blocking", but they block anyways (lmao) because each connection is accepted in its own thread. TCP multicasts make full use of non blocking IO on one thread through. All file reads are lazy loaded and cached into memory with mmap so its eh, good enough on that front I guess. Not a hash map or event queue in sight, just a simpleton, liberally mutex locking.
@@seanbix5366 Yeah, I see now. Here, right? while (er == RECV_TRYAGAIN) { er = tryAcceptConnection (localhost, remotehost); } You're basically looping until an error or a connection arrival? And here in each thread you just check for blocking and repeat the same loop again? else { if (errno == EAGAIN || errno == EWOULDBLOCK) { continue; } fprintf(stderr, " Socket error, closing connection... "); closeConnections(args->remotehost); } But why do you need non-blocking sockets here at all? When you accept a connection, if it would block, you repeat the same loop again so it's the same as a blocking socket. In second code block, it;'s the same thing: even if it's non-blocking, you do the same loop, i.e. waiting for data arrival, blocking other tasks in your thread pool Maybe I misunderstood your code? UPD: fuck, i realised you wrote "but they block anyways", sorry :) But the question is why did you use non-blocking sockets at all, then?
@@seanbix5366 oh gosh, freaking youtube deleting comments I checked out your code.Why did you use non-blocking sockets in the first place? Because I see even if errno is EWOULDBLOCK, you still iterate over and over waiting for data to arrive or send
@@jeffsad8391 I made the mistake of starting with C++. Useful language but bad for learning imo. Python is good to become productive quickly, but plain C has been the most fun for learning for me. Knowing memory management well is key to avoiding stress when learning programming concepts imo.
@@xorxpert Nice! I have a websocket deepdive on this channel too- the variable length length encoding and payload masking were wicked, but worth it in the end!
@@seanbix5366 It was mostly challenging for me at the time. I usually like to learn how things work for experience but mostly avoiding third party or standard libraries. Whilst working on a multiplayer game, I built my own websocket server & client in the process along with a protocol library, for handling sending packets efficiently properly writing/reading and parsing data (binary), while converting between respectable objects. latency was very important, all unmanaged code. Performance, speed, and efficiency was the focus. Per protocol standard for large payloads, you have to deal with splitting the data into frames, and you know TCP, you got to handle waiting and acknowledging packets - multi (safe) threaded 😅 Took me about a mouth until i was entirely finished it, though was fun and worth learning!
@@xorxpert So far none of my websocket payloads are larger than a few dozen bytes... But I was under the impression that I could simply cram an arbitrary amount of data after a websocket header and TCP would eat it? I don't remember, need to look at the code! I fetch all the BIG data with http from JS anyways.... Good work! I couldn't even find a simple websocket library anyways.
Hah! Nice try, Sense Of Child-like Wonder! Unfortunately, I want to finish the project and get it working. SSL/TLS is a whole new can if worms for another time...
Oh no, I'm very much just a guy. You'll ask me what an abstract factory is and I'll say "sorry I don't listen to stoner rock". Go spend a few days writing some C or ASM, read some books, convene with the machine spirits, and you'll be way ahead of me for sure if you weren't already!
Dude! Ever heard of scope? As for someone who claims he wrote this code himself, you talk surprisingly few about the code, and surprisingly lot about unrelated deeper layers of protocols that you don't even attempt to implement yourself, and which are therefore totally outside of the scope.
Fair. I suspected the overlap between between people who don't know HTTP and how the TCP/IP stack works was near 1:1, and targeted that audience. The implementation itself is not impressive (it's in the title) but it seems to have served it's purpose in giving lots of people a deeper intuition for the entire system (and powering my webserver)! I'm sure we can agree that conventional explanations (like wrapping a parcel) fall short.
First. Hehe. Shalom. Yeah, my nose is congested, too. I barely get sick as a vegan that exercises often, meditates, hydrates enough (unlike 75% of Americans and so forth), sleeps enough, good amounts of nutrients, breath work, fasting, etc.
It does not matter what you build, but what gets adopted ... Today you can build almost everything but who cares if nobody touches or builds on top of it.
@@swojnowski453 I just want a cool video game for my friends and I, and to learn these technologies along the way. I'm building on top of it, I care, and its pretty chill!
You cover nothing I wanted to know. Your grasp on the subject matter is below that of a hobbyist. This is harmful to the community, basically misinformation. Could you maybe sound less enthusiastic??
@@seanbix5366 When I made chicken pot pie, the filling was fine but the puff pastry on top didn't puff up though it did cook through. How can I remedy this? The pastry was the store-bought frozen variety. The temperature was 375 °C and I used and egg wash for the glaze.
@@MercerBray 1. Thawing - Avoid an IP Collision Proper Thawing: Make sure your puff pastry isn't experiencing an IP (Instantly Pulled) collision by giving it time to thaw in the refrigerator, ensuring no network (temperature) congestion. 2. Temperature - Keep Your Layer 4 Connections Strong Correct Heat: Your oven needs to be set to 375 °F (190 °C). Think of it as keeping your TCP (Thermally Controlled Puff) connections strong. Too hot or too cold and you'll have trouble establishing that reliable connection for puffing! 3. Baking Setup - Packet Delivery Preheated Dish: Preheat your baking dish to prevent any packet loss, ensuring a more reliable delivery of puffiness. And remember, the filling should be hot, so the top layer gets a good handshake with the crust. 4. Egg Wash - Smooth Communication Application: Apply your egg wash gently, just like a smooth handshake protocol, to establish a golden connection without network (pastry) congestion. 5. Pastry Handling - Avoid Fragmentation Thickness: Roll out the puff pastry to about 1/4 inch, keeping it uniform to avoid data fragmentation in the layers, ensuring all packets (layers) arrive intact and puffed. 6. Pastry Resting - Time for ARP Resolution Cooling: Let your pastry rest for a bit in the fridge after rolling it out, allowing the Address Resolution Protocol (puff pastry layers) to map the correct layer addresses (butter) before baking. 7. Avoid Overhandling - Prevent DDoS (Dough Denial of Service) Minimal Handling: Don’t overhandle the dough or you’ll experience a DDoS attack on your puff pastry’s ability to rise! 8. Ventilation - Manage Network Traffic Steam Release: Make small slits in the pastry to manage network traffic (steam), ensuring no data packets (steam) get lost, causing network (pastry) puff loss. 9. Cover the Edges - Implement Firewall Rules Edge Protection: If the edges are browning too fast, cover them with foil as a firewall rule, letting the rest of the network (pastry) puff up securely without packet loss (burning). Troubleshooting Tips - Ping Your Pastry Temperature Checks: Make sure the oven temperature is accurate, much like pinging to check network latency. Proper Layering: Ensure the pastry's layers aren’t merging like a VLAN (Virtual Layers Absent Network). Steam Release: Remember, too much trapped steam can cause a denial of service on your puff pastry’s puffing ability! Summary Thaw properly: In the refrigerator, avoiding an IP collision. Correct temperature: 375-400 °F (190-200 °C) for solid TCP connections. Preheated dish: Ensures no packet loss. Gentle egg wash: For smooth handshake protocol. Minimal handling: Prevents DDoS on dough. Steam vents: Manage network traffic effectively. Edge protection: Implement firewall rules with foil. Let these tips serve as your protocol stack for perfect puff pastry puffing!
You know it’s going to be a good video when it starts out with: “We’re going to assume the presence of a TCP/IP implementation on your system”
well i mean it is preinstalled on windows but you know how to install it right? in network properties
Dag nabbit, here's me still using token ring networking.
I read that as C written in HTTP, and was hoping for next level black magic shit.
If anybody is determined to bless the world with this, I'll help where I can!
Same here 😂 This is still cool.
I spend most of my time with Python, with all the layers of abstraction. This video definitely rekindled my love for C. Thank you.
@@shinej11 Python's is imo the least evil scripting language, and can do some low level stuff too.
I once implemented some serial networking protocols in Python on a microcontroller.
Use the right tool for the job and have fun!
@@seanbix5366 You probably won't see this, but what C projects would you recommend a Python dev work on to get a good grasp over C? I have nothing specific I want to do with C in mind, which is why I ask this.
@@gregh5061Something that motivates or excites you personally.
If I worked primarily with Python and didn't hate what I do, I would try rewrite some of that work in C.
As an IT person by trade, I've rewritten high level scripts (including python) that could benefit from a performance boost in C just to learn and I think it's a fun, practical and quick way to pick up the nuances.
If that's too daunting,
then it's back to basics with data structures, algorithms (and books) imo.
Maybe in a library you
can reuse and improve!
That's a very creative way to use gimp as a presentation tool!
hella based video!
Ahh very good explanation good sir.
I was getting into c socket programming without understanding the underlying fundamentals to implement this protocol.
Gained a lot of information from this one.
Very concise and thorough introduction to the application of those theoretical ideas and protocols, most college classes lack this practical approach. Thank you!
In the worlds of Linus Torvalds - let's write it from scratch; how hard can it be!
Dude this is such a good video. I hope you are a uni professor.
Would love to see an implementation of TCP as well
Taking Fundamentals of Data Comm rn and this video is so goated to actually understanding the shit im learning
This is a great practice project for programmers. Very cool moves.
F*ck Powerpoint, we're using GIMP 😆! Excellent content
Thank you for this video Sean! it really was eye opening.
very good video! please go on with your important and solid work. good job! very good!
i agree, very good! http is very nice bro
What can be more satisfying!
Execllent video! Just what I was looking for. I recommend thinking about a better title in future in order to attract more viewers to your content since this video is a fantastic deep dive, you explained protocols in less than a minute visually.
Nice video and very clear explanation! For some reason I thought http is much more complicated.
One question I have, is there a specific reason you search for "GET /" in the request and not just "GET"?
@@androu-f3b Because here I'm checking if the client is specifically getting "/", the root directory.
Its the GET request the server receives when they (the client) just type in " IP_ADDRESS/".
Its rudimentary but eh it works.
Otherwise it's "GET /SPECIFIC_RESOURCE".
Thank you!
this is how real men program 🙏🏼
Very informative video ❤ loved every bit of it
For a need like me this is treasure.
You are a good developer. 👍
Every time you said "haych" and angel lost its wings
You couldn't fathom the width of the brush I sweep them up with.
How different is this from the binary HTTP protocol? And can you leverage your code into that easily?
I literally googled HTTP RFC and immediately started writing the code. I was roughly today years old when I saw there was http 2 and 3 so I don't know yet 👉👈
I've heard they're the same protocol, but with a binary format and extra features, so it should be doable!
@@seanbix5366 http2 and 3 are a lot more complex, you can have several transfers simultaneously over the same TCP connection and weird stuff like that and http3 uses UDP / Quick as underlying network protocol. So don't count on being able to reuse too much
Great content, also amazing explaination!
S+ tier content
This is awesome, but i kept getting thrown off because of the audio
How did you were able to actually implement the theory of networks? I just saw a course in college about OSI model but it was almost entirely theorical, what did you have to learn?
TCP/IP is typically implemented as a part of the OS kernel.
If you're not using an OS, e.g. in embedded (very very cheap) systems, software libraries will implement the lower level protocols for you (up to level 4 is common).
Here, I've used the TCP/IP implementation in Linux ("Berkeley Sockets API") to implement HTTP (although I could have used a library for that too).
TL;DR: I didn't!
ok ok at 2:30 coup de grace, i subscribed gj
Thank you, more stuff on the way
writing HTTP 😇 vs TCP 👹
Very interesting! Now, i am wondering as a c# developer is it something i cam replicate? Also do you have it on a repository ? Thank you very much
Yes, and yes.
This is "socket" programming, the operating system's abstraction of TCP/IP which you can do in C#.
That's how you would send the HTTP header string and data.
This is purely for learning purposes though, it's not massively practical or idiomatic.
C# has easy HTTP interfaces.
The project is linked in the description!
Wow great learnt a lot keep uploading good stuff.
Is the operating system involved in the TLS protocol or the OpenSSL library will take care of encryption and the decryption of the data and then just use the send and recv functions provided by the OS ?
That's abstracted away by the library such that it's simple.
The operating system is involved in the protocol, such that the library that implements the protocol, interfaces the operating system for various utilities to assist it in doing so.
Encryption algorithm: library code
Reading a certificate file: OS code
So yeah its more than likely that it (openssl code) encrypts the data before just sending it over send().
@@seanbix5366 Thank u for clarifying this. Good luck with what ever u are doing today or u are planing to do tomorrow 🙃.
Try http2 and http3. Very nice content 👍👍👍
Any thoughts what would be involved in writing an ESP32 application, that takes data from the uart, and passes it wirelessly either bluetooth (SPP) or via Wifi. For Wifi, I imagine the ESP32 could act as a web server (TCP) and display the RS232 data, but maybe there's a UDP way it could send data to a PC on the same network?
(Edit: I got a job writing ESP32 firmware)
Yeah totally, you can do a webserver.
Arduino libraries for ESP32 have you mostly covered either way; UDP, TCP or HTTP.
Great work, man!
Great Video, Please more tutorials on Live coding of Email Server, HTTP and TCP /IP in C from scratch
@@singhyuvraj122 I won't be doing any TCP/IP implementation until I end up working more in embedded and need to make one. An email server sounds rad though!
@@seanbix5366i think sockets allow you to send raw link-layer packets (ethernet frames) so you can probably implement TCP/IP from userspace
Next step is to write HTML from scratch, and then Javascript...
Good luck! 😀👍
Easy in C*
*Except for dynamically sized strings. :P
La-mans talk, live it
Thanks for saying TCP/IP doesn't follow the OSI model. So many people get this wrong!
@@Gersberms I was taught in school that TCP+IP+HTTP = OSI but saw in books that its distinct!
just got smarter watching this lol, good video
Isn't this simple HTTP server, that parses the requests and returns some response?
Most of the backend frameworks already have this functionality implemented.
@@bladekiller2766 Oh for sure.
Dead simple, its in the title.
If you want to actually be productive, you can always grab a library/framework for whatever.
But now I don't have the third party dependencies, and I learned the protocol inside and out!
From my experience- there's always an underestimated leap from thinking you understand a technology, to actually being able to implement it which can be fun to discover.
Plus this is targeted more towards IT people, who often overestimate a lot of complexity in the tech they're using.
@@seanbix5366 Couldn't agree more.
All the tech stacks and networking complexity looks extremely complex, but when you try to implement it from scratch by yourself you will suddenly realize that it's doable and it will give you insights on why some things are the way they are.
Props for doing it in C :)
@seanbix5366 now implement ipv6 😛
moonfly gang 🔥 great video btw, keep them coming!
how long did this take you? is the original spec long?
@@energy-tunes original spec is linked.
I implemented a working subset I needed in like 2-3 coding sessions.
The hardest part was probably MIME types and understanding + writing CORS.
What took longer was just making a useful interface to the Linux socket API...
Maybe I didn't notice but have you tried using non-blocking event-driven i/o? As far as I remember it's the fastest way to handle requests
@@grenadier4702 All of my sockets are "non blocking", but they block anyways (lmao) because each connection is accepted in its own thread. TCP multicasts make full use of non blocking IO on one thread through.
All file reads are lazy loaded and cached into memory with mmap so its eh, good enough on that front I guess.
Not a hash map or event queue in sight, just a simpleton, liberally mutex locking.
@@seanbix5366 Yeah, I see now. Here, right?
while (er == RECV_TRYAGAIN) {
er =
tryAcceptConnection (localhost, remotehost);
}
You're basically looping until an error or a connection arrival?
And here in each thread you just check for blocking and repeat the same loop again?
else {
if (errno == EAGAIN || errno == EWOULDBLOCK) {
continue;
}
fprintf(stderr, "
Socket error, closing connection...
");
closeConnections(args->remotehost);
}
But why do you need non-blocking sockets here at all? When you accept a connection, if it would block, you repeat the same loop again so it's the same as a blocking socket. In second code block, it;'s the same thing: even if it's non-blocking, you do the same loop, i.e. waiting for data arrival, blocking other tasks in your thread pool
Maybe I misunderstood your code?
UPD: fuck, i realised you wrote "but they block anyways", sorry :) But the question is why did you use non-blocking sockets at all, then?
@@seanbix5366 oh gosh, freaking youtube deleting comments
I checked out your code.Why did you use non-blocking sockets in the first place? Because I see even if errno is EWOULDBLOCK, you still iterate over and over waiting for data to arrive or send
Goat
I have a question:is good c++ or python for begginners?
@@jeffsad8391 I made the mistake of starting with C++. Useful language but bad for learning imo. Python is good to become productive quickly, but plain C has been the most fun for learning for me. Knowing memory management well is key to avoiding stress when learning programming concepts imo.
@@seanbix5366 is good like moving from python to c++?
@@seanbix5366 but is good like to move from python to c++?
HTTP: ☺
HTTPS: 💀
Please Do Not Throw Sausage Pizza Away
TCP/HTTP is easy, then I went too hell with WebSocket but I pulled through lol, but I hate those frames.
@@xorxpert Nice!
I have a websocket deepdive on this channel too- the variable length length encoding and payload masking were wicked, but worth it in the end!
@@seanbix5366 It was mostly challenging for me at the time. I usually like to learn how things work for experience but mostly avoiding third party or standard libraries. Whilst working on a multiplayer game, I built my own websocket server & client in the process along with a protocol library, for handling sending packets efficiently properly writing/reading and parsing data (binary), while converting between respectable objects. latency was very important, all unmanaged code. Performance, speed, and efficiency was the focus. Per protocol standard for large payloads, you have to deal with splitting the data into frames, and you know TCP, you got to handle waiting and acknowledging packets - multi (safe) threaded 😅
Took me about a mouth until i was entirely finished it, though was fun and worth learning!
@@xorxpert So far none of my websocket payloads are larger than a few dozen bytes... But I was under the impression that I could simply cram an arbitrary amount of data after a websocket header and TCP would eat it?
I don't remember, need to look at the code! I fetch all the BIG data with http from JS anyways.... Good work!
I couldn't even find a simple websocket library anyways.
Cool, thank you.
Now try SSL implementation and let's see if u can handle it
Hah!
Nice try, Sense Of Child-like Wonder!
Unfortunately, I want to finish the project and get it working.
SSL/TLS is a whole new can if worms for another time...
I wrote HTTP from scratch in 1997 in Java. I was even easier.
gold
I'm a fraud as a programmer, that's a real pro
Oh no, I'm very much just a guy.
You'll ask me what an abstract factory is and I'll say "sorry I don't listen to stoner rock".
Go spend a few days writing some C or ASM, read some books, convene with the machine spirits, and you'll be way ahead of me for sure if you weren't already!
same bro
You Sir, deserve a subscribe
http is so easy, and that is why I hate http2 and http3. they ruin the elegance of http/1.1
Dude! Ever heard of scope? As for someone who claims he wrote this code himself, you talk surprisingly few about the code, and surprisingly lot about unrelated deeper layers of protocols that you don't even attempt to implement yourself, and which are therefore totally outside of the scope.
Fair.
I suspected the overlap between between people who don't know HTTP and how the TCP/IP stack works was near 1:1, and targeted that audience.
The implementation itself is not impressive (it's in the title) but it seems to have served it's purpose in giving lots of people a deeper intuition for the entire system (and powering my webserver)!
I'm sure we can agree that conventional explanations (like wrapping a parcel) fall short.
Zoom
Cfbr
First. Hehe. Shalom. Yeah, my nose is congested, too. I barely get sick as a vegan that exercises often, meditates, hydrates enough (unlike 75% of Americans and so forth), sleeps enough, good amounts of nutrients, breath work, fasting, etc.
I'm sorry to hear that
I have a soup recipe that'll fix you right up if you wanna hear it!
You forgot this isn't Reddit
@@stefanalecu9532yeah lmao like who asked 😂
holmes, i'm asking you now, to stop doing anything from scratch. don't you know?
It does not matter what you build, but what gets adopted ... Today you can build almost everything but who cares if nobody touches or builds on top of it.
@@swojnowski453 I just want a cool video game for my friends and I, and to learn these technologies along the way.
I'm building on top of it, I care, and its pretty chill!
You cover nothing I wanted to know. Your grasp on the subject matter is below that of a hobbyist. This is harmful to the community, basically misinformation. Could you maybe sound less enthusiastic??
Well, what would you like to know my guy?
@@seanbix5366
When I made chicken pot pie, the filling was fine but the puff pastry on top didn't puff up though it did cook through. How can I remedy this? The pastry was the store-bought frozen variety. The temperature was 375 °C and I used and egg wash for the glaze.
@@MercerBray 1. Thawing - Avoid an IP Collision
Proper Thawing: Make sure your puff pastry isn't experiencing an IP (Instantly Pulled) collision by giving it time to thaw in the refrigerator, ensuring no network (temperature) congestion.
2. Temperature - Keep Your Layer 4 Connections Strong
Correct Heat: Your oven needs to be set to 375 °F (190 °C). Think of it as keeping your TCP (Thermally Controlled Puff) connections strong. Too hot or too cold and you'll have trouble establishing that reliable connection for puffing!
3. Baking Setup - Packet Delivery
Preheated Dish: Preheat your baking dish to prevent any packet loss, ensuring a more reliable delivery of puffiness. And remember, the filling should be hot, so the top layer gets a good handshake with the crust.
4. Egg Wash - Smooth Communication
Application: Apply your egg wash gently, just like a smooth handshake protocol, to establish a golden connection without network (pastry) congestion.
5. Pastry Handling - Avoid Fragmentation
Thickness: Roll out the puff pastry to about 1/4 inch, keeping it uniform to avoid data fragmentation in the layers, ensuring all packets (layers) arrive intact and puffed.
6. Pastry Resting - Time for ARP Resolution
Cooling: Let your pastry rest for a bit in the fridge after rolling it out, allowing the Address Resolution Protocol (puff pastry layers) to map the correct layer addresses (butter) before baking.
7. Avoid Overhandling - Prevent DDoS (Dough Denial of Service)
Minimal Handling: Don’t overhandle the dough or you’ll experience a DDoS attack on your puff pastry’s ability to rise!
8. Ventilation - Manage Network Traffic
Steam Release: Make small slits in the pastry to manage network traffic (steam), ensuring no data packets (steam) get lost, causing network (pastry) puff loss.
9. Cover the Edges - Implement Firewall Rules
Edge Protection: If the edges are browning too fast, cover them with foil as a firewall rule, letting the rest of the network (pastry) puff up securely without packet loss (burning).
Troubleshooting Tips - Ping Your Pastry
Temperature Checks: Make sure the oven temperature is accurate, much like pinging to check network latency.
Proper Layering: Ensure the pastry's layers aren’t merging like a VLAN (Virtual Layers Absent Network).
Steam Release: Remember, too much trapped steam can cause a denial of service on your puff pastry’s puffing ability!
Summary
Thaw properly: In the refrigerator, avoiding an IP collision.
Correct temperature: 375-400 °F (190-200 °C) for solid TCP connections.
Preheated dish: Ensures no packet loss.
Gentle egg wash: For smooth handshake protocol.
Minimal handling: Prevents DDoS on dough.
Steam vents: Manage network traffic effectively.
Edge protection: Implement firewall rules with foil.
Let these tips serve as your protocol stack for perfect puff pastry puffing!
@@seanbix5366 Thanks but could you give the instructions for a 300w microwave oven? Its all I got.
@@MercerBray Ah, you got me.
The only thing I'll never open source.
Goat 🦾🦾