Soy programador y tengo que decir que es fantástico verte desarrollar y lo didáctico que puedes llegar a explicar conceptos casi abstractos. Enhorabuena, ni un paso atrás.
No man, que buena edición y contenido. Realmente encontraste el tipo de contenido q te identifica "Programación avanzada contada como historia simple". La cronología del tiempo y la música son perfectas.
Primero: increíble el esfuerzo de editar el video etc, las explicaciones con estos diagramas dinámicos quedan muy claras. Segundo: me flipan este tipo de videos sobre como funcionan las cosas que damos por hecho que existen. Montarlas de 0 te dan un insight muy interesante de como van las cosas por dentro y esa es la forma de entender bien las cosas
Eres increible la forma en como sin saber lo que andas haciendo y tu mismo lo dices, sacas estas cosas taan dificiles y logras entender absolutamente todo
Muy pocos son lo que realmente se ponen a hacer cosas como estas. La mayoria se piensan que no son lo suficientemente listos o que no sabe como hacer esas cosas como si uno naciera aprendido. Hace falta mas gente que vaya y diga que quiere hacer un Reverse Proxy sin siquiera saber como se hace.
Un hilo es una subtarea dentro de un proceso. Todo proceso tiene al menos un hilo, y los subhilos pueden compartir espacio de memoria, registro de operaciones, y recursos entre ellos. Un proceso es una unidad de encapsulamiento con su propia ejecución aislada con recursos y espacio de memoria propios asignados por el sistema operativo. Por si te sirve, eso es lo que facilita después el shutdown, a parte de facilitar la integración con cualquier tipo de aplicación escrita en cualquier lenguaje mediante socket (al ser procesos, se usa una IO no bloqueante... lo que permite no tener que lidiar con los bloqueos de otros: php-fpm, python, acceso del código a disco, etc...). Gran video, no pensaba que te meterías en el mamoneo que es programar la parte de websockets.
Hola Antonio, tus videos son bastante cools y bien producidos, sin embargo lo que mas me llama la atención es tu manera de comprender conceptos abstractos en la carrera, seria super cool que hagas un video explicando como es tu proceso de aprendizaje sobre los temas que investigas, como superas la frustración? que técnicas utilizas para aprender? cuanto tiempo le dedicas? etc, saludos desde Perú :)
Felicitaciones por el resultado final, en tu ruta de proyectos estaría espectacular una implementación del protocolo MQTT que se usa en IOT y Chats por ser un PUB/SUB muy ligero. Y que algunas implementaciones muy usadas como Eclipse Mosquitto no tienen tanto performance. A la espera de lo que sigue.
Me vi este video hace un año y no entendía ni planeaba entender qué era un Reverse Proxy. Esta semana, en el trabajo me tocó configurar uno y lo logré. Hoy vengo acá y logro entender al fin el contenido del video.
oye realmente genial; el verte alli haciendo creo que desperto el interes de muchos de cosas que si son complicadas pero a su ves divertidas de realizar.... De verdad que el mejor video que visto hasta ahora!!!
Excelente, me encantan este tipos de videos explicando cosas de bajo nivel y ver el proceso de como lo haces. Me llama la atencion todas estas movidas que te ayudan a comprender como funcionan las cosas a bajo nivel.
Tus videos me gusta un monton, son lo mejor que hay en youtube, haces contenido diferente a los demas, tratas temas mas avanzados y en gran profundidad que dan gusto ver tus videos mas de una vez
Antonio para cuando nuevo video, soy estudiante de ing telecomunicaciones y disfruto y aprendo mucho con tu contenido, eres de los pocos youtubers en español que trata temas tan avanzados con tanta precisión
Genial vídeo, me ha gustado tu metodología y tu mindset para implementar algo que incluso tu no conoces. Tienes mucha razón, son programas que damos por hecho que ya funcionan, muchas veces nos enfocamos en innovar en lugar de aprender con lo que ya existe. De nuevo gracias! No puedo esperar por tu siguiente proyecto.
Una de las cosas más divertidas que hice fue un motor de ajedrez en C, después de leer el K&R, me tomo 4 meses, como un hobby porque no soy programador profesional. Podría ser un Framework o un lenguaje de programación. Es increíble lo que se aprende con un proyecto real, aunque no tengas idea ni como empezar.
No hay mucho que decir.... el trabajo detrás del vídeo es brutal, muchas felicidades. Por cierto, el proxy es susceptible a ataques DoS como el tan conocido slowloris, un tiemout no vendría mal. Excelente contenido!
Mola mucho el proyecto. Respecto a servir una ruta y ficheros estáticos, ¿dejaría visualizar archivos de otras carpetas (Local File Inclusion con Path Traversal) exponiendo archivos que están fuera del scope?
Nginx está diseñado para ofrecer un bajo uso de memoria y alta concurrencia. En lugar de crear nuevos procesos para cada solicitud web, Nginx usa un enfoque asincrónico basado en eventos donde las solicitudes se manejan en un solo hilo. Con Nginx, un proceso maestro puede controlar múltiples procesos de trabajo. El proceso maestro mantiene los procesos de trabajo, y son estos lo que hacen el procesamiento real.
Hola Antornio muchas gracias por compartir tus conocimientos, tengo un desafio y llevo un rato ya investigando de realizar un simil de PHP-FPM y mejorarlo en RUST.
Muy buen desarrollo e investigación. Lo que yo entendí es que el problema de Tokio es full duplex, y el Nginx es half duplex a nivel de red de comunicación. El Tokio depende de si el proceso termina el request, el Nginx no, y puede terminarlo en cualquier momento. No se si me explico pero es lo que entendí. Saludos
Más que full duplex imagina un canal half duplex, Nginx envía un mensaje por el canal y termina. Tokio tendría que enviar un mensaje por el canal y esperar otro mensaje de confirmación de la otra parte del canal.
Me creé un canal nuevo en inglés y ahora estoy por ahí, sígueme en Twitter y Instagram ahí publico estás cosas. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-5Pc18ge9ohI.htmlsi=zUb2T43QGpBFDYAe
Muy interesante el proyecto y bastante abstracto, me gustaría que hicieras uno específicamente sobre Load Balancing con todos sus conceptos así como este, sería muy genial. Saludos y un abrazo.
Te extraño más que nunca y no sé qué hacer Despierto y te recuerdo al amanecer Espera otro día por vivir sin ti El espejo no miente, me veo tan diferente Me haces falta tú La gente pasa y pasa siempre tan igual El ritmo de la vida me parece mal Era tan diferente cuando estabas tú Sí que era diferente cuando estabas tú No hay nada más difícil que vivir sin ti Sufriendo en la espera de verte llegar El frío de mi cuerpo pregunta por ti Y no sé dónde estás Si no te hubieras ido, sería tan feliz No hay nada más difícil que vivir sin ti Sufriendo en la espera de verte llegar El frío de mi cuerpo pregunta por ti Y no sé dónde estás Si no te hubieras ido, sería tan feliz La gente pasa y pasa siempre tan igual El ritmo de la vida me parece mal Era tan diferente cuando estabas tú Sí que era diferente cuando estabas tú No hay nada más difícil que vivir sin ti Sufriendo en la espera de verte llegar El frío de mi cuerpo pregunta por ti Y no sé dónde estás Si no te hubieras ido, sería tan feliz No hay nada más difícil que vivir sin ti Sufriendo en la espera de verte llegar
# Procesos: ## ventajas: - aislamiento. cada proceso tiene su propio espacio en memoria. - Estabilidad. si un proceso falla, no afectara a los otros procesos directamente. ## desventajas: - mayor consumo de recursos. - comunicacion mas compleja. la comunicacion entre procesos (IPC) es menos eficiente. # Hilos: ## Ventajas: - Eficiencia en el uso de recursos. - Comunicacion mas Sensilla. ## desventajas - problemas de seguridad y estabilidad. Dado que los hilos comparten el mismo espacio de memoria, un hilo puede leer y escribir en la memoria utilizada por otro hilo, lo que puede llevar a condiciones de carrera y otros problemas de sincronización. - Fallo de un hilo afecta al proceso entero. Si un hilo falla debido a un error, puede afectar a todos los hilos dentro del mismo proceso, lo que potencialmente puede llevar a la terminación del proceso completo.
Con lo del event loop, todo el conocimiento del memory allocator, y todo este conocimiento de comunicación http, ¿qué te falta para crear tu propio lenguaje? (un compilador quizá) Excelente contendido estimado. Eso que dijiste de estar aburrido de hacer apis, es lo mismo que me pasa. Voy a seguir tu "consejo"
@@AntonioSarosi Sin dudas, lo comentaba por la variedad de proyectos "de laboratorio" pero muy complejos, y lo que podría ser el desarrollo de un lenguaje propio para complicarse creando un compilador dedicado. El compilador poco tiene que ver en cómo se ejecuta el código compilado, pero el eventual lenguaje "sarosi" que compile podría soportar algunas de las cosas que has desarrollado, "malloc", event loop, y lo que venga. Saludos.
Claro, eso sí, es un proyecto que tengo apuntado, intérprete/compilador. No lo tengo muy estudiado pero creo que empezaría con un parser para generar el árbol sintáctico, luego lo interpretas y ya si quieres el compilador puedes tirar de LLVM. El único problema es que estos proyectos les tienes que dedicar muchísimo tiempo para conseguir algo que funcione, por eso aún no he empezado otro jaja
La respuesta a tu pregunta de "porque procesos en vez de hilos?". El proposito de un server web es servir concurrencia y no paralelismo, debido a la naturaleza de un servidor web. De ahi que tenemos mecanismos para solapar la concurrencia como el multitheading, mitiprocessing, eventos, etc. De otra forma, bajo mi forma de verlo, estaríamos frente a un capa 5 del modelo OSI en vez de 4 y los terminos async y await en los lenguajes actuales de back no tendria absoluto sentido.