Excelente metodología de enseñanza! Me encanta! Aprendo dos lenguajes al mismo tiempo, es lo máximo! Excelente las explicaciones y el detalle en dejar claro cada proceso y lo que ocurre de fondo en cada momento! Felicidades, Suscrito!
Aún recuerdo con mis 15 añitos intentando entender este efecto siguiendo un tutorial del grupo "Asphyxia" que explicaba cómo hacerlo para MSDOS usando Turbo Pascal y rutinas en ensamblador para dibujar directamente en la VGA y manejar la paleta de colores. No entendía mucho lo que hacía, pero cuando vi el fuego en mi pantalla de tubo de 14 pulgadas me quedé con la boca abierta. Qué época los 90s...
Creo recordar ese tutorial aunque creo que el efecto original fue creado por Javier Arévalo (JARE), incorporado en la demo de su grupo Iguana llamada Inconexia quemando las letras de los créditos, cuyo código, completo en ensamblador, con los modos X de la VGA es toda una delicia (aún se puede encontrar por ahí en internet)
Esos tiempos de turbo C y como habilitar el modo grafico vga y los tutoriales de como dibujar lineas pixel a pixel era casi como magia, una vez encontré un ejemplo pero de agua, donde hacías click se hacían ondas de agua y podías arrastrarlo.
en el minuto 3:02:17 debio inicializar el arreglo con valores en 0 unsigned char fire_buffer[400 * 300] = {}, por eso cuando rellena solo una fila del arreglo las demas filas tambien tienen valores y eso hace que se pinten en pantalla otros pixeles
Gracias por los vídeos Aunque no me dedico a la programación de vídeos juego eh aprendido mucho y sacado varias ideas. Espero mas vídeos de c y assembler. Particular mente C dado que C23 esta a la vuelta de la esquina. No se si estoy viejo o que pero los lenguajes modernos cambian demasiado rápido y lo que tenes andando un año ya no funciona al otro. Esto solo sirve para las empresas que no pagan por soft estable sino por tener a alguien sentado escribiendo linea si saber..... Ya me vi todos los videos y seguramente los vuelva a muchas veces mas. Saludos desde la Argentina
Que chulo Rust, es como poner todas las buenas práticas que intenamos seguir en C/C++ e incluirlas en el lenguaje. Además, aprender comparando, paso a paso con un viejo (C)onocido como es C, pues se agradece. Para el Team C, lo que hace Héctor con el cast de C: `(Color){.r=255}` ¿Sería un equivalente de C de un cast a una lista inicializadora (de C++)? Y para el siguiente vídeo, aunque no llevarlo al extremo, molaría ver comparativas de tiempos un poco, por ver cuanta es la diferancia entre usar un lenguaje u otro, aunque no se optimice el código hasta el extremo, que esto siempre gusta, y pica a la gente. Muy buen directo a los dos, un saludito.
En C++ siempre que se necesite programar una aplicación gráfica se requiere una librería gráfica, como se puede por ejemplo manipular pixels sin usar una. en el efecto fuego solo se manipulan pixeles, no quiero depender de librerías externas si se puede hacer directamente en C++, por lo menos como en este caso en aplicaciones sencillas.
Las librerías no son código mágico: en general son código hecho también en C++. La librería no se requiere para pintar píxeles, sino para que nos dé ya hecho el trabajo de bajo nivel, que suele consistir en este caso en hablar con el Sistema Operativo y con la API gráfica. Pero nada te impide a ti hacer un programa que le pida al Sistema Operativo que abra una ventana y cree un contexto OpenGL en la GPU en el que tú escribas píxeles. La librería sólo es código de otra persona que hace esto: lo mismo lo puedes hacer tú. Por ejemplo, en la serie de vídeos de 2019, utilizo tinyPTC que es una librería supersencilla que tiene nada más lo necesario para abrir la ventana y actualizar los pixeles. Esa librería, que está enlazada en mis videos, son unos pocos cientos de líneas en C. Sólo tienes que abrir los ficheros y leer el código y verás que no es nada especial: sólo pedirle al SO que cree una ventana, crear un contexto y actualizarlo. No hay nada que hagan las librerías que tú no puedas hacer: no son mágicas, sólo son código hecho por otra persona.
¿Dónde/cómo podemos compartir nuestras versiones? De momento tengo completado el efecto tal y como lo habéis enseñado tanto en C como en Rust. El próximo finde a ver si me pongo con diferentes variaciones.
Pues fácilmente podéis poner un comentario aquí en TH-cam con el link, y así lo puede ver todo el mundo. Creo que es lo más sencillo, aunque si preferís otras opciones siempre podéis proponer y lo vemos :)
Utilizamos Linux Manjaro, que es una distribución de Arch Linux pero fácil de administrar. En la descripción del video tienes tanto los detalles concretos de la distribución, como los links por si quieres descargarla. Además, tienes un enlace a la Máquina Virtual de VirtualBox que usamos en el directo. Así, si quieres reproducir exactamente lo que hacemos, puedes hacerlo en las mismas condiciones exactas :)
Claro. Primero busca un trabajo que te gustaría hacer. Asegúrate de que te gustaría de verdad. Después ponte en contacto con las personas que lo están haciendo, la o las empresas o instituciones donde te gustaría estar. Conoce a las personas y el trabajo e interesante por qué habilidades hacen falta. Después traza un plan para obtener las habilidades y ponte a aprender. Mantén el contacto con las personas y entidades donde querrías estar. Colabora con ellos si hay oportunidades, aprovechando para aprender. Si tienes claro lo que hace falta aprender y te pones con ello, antes de lo que creas podrás estar en condiciones de trabajar en lo que te gusta. Si además estableces relaciones con las personas que lo hacen, será más fácil después que te conozcan y acepten. Por supuesto, todo esto requiere esfuerzo y dedicación pero, si de verdad has identificado bien lo que quieres, y te motiva hacerlo, no veo por qué no ibas a poder :). Ánimo y suerte
Hola Profesor! Entré en el mundo de la programación a traves de un grado superior de Diseño web pero desde que descubrí tu canal me siento muy atraido por C, pero por lo que veo en las listas del canal me parece que son temas muy avanzados. Habia pensado en empezar con un libro introductorio de C de la serie headfirst. Aunque quedaria muy agradecido si pudiera nombrarme algun otro libro o recurso para aprender los entresijos de C. Gracias de antemano!
y ahi esta el problema de no tener dos expertos, puts es para imprimir solo cadenas de caracteres(strings)y además automáticamente le da un salto de lineal al final y printf es para dar formato a lo que vas a imprimir y te toca darle si quieres un salto de linea pero ademas de eso puedes imprimir variables etc... en pocas palabras tienes mas control y mas opciones con printf.
Seria de interes hacer el mismo reto pero con librwrias graficas propias de rust en vez de utilizar una de C, porque la gente que no entiende vera que en rust pra hacer lo mismo que em C te complicas mucho mas pero el único motivo de hacer todo lo que haces es pprque estas utilizando una libreria en C.
No conocía Rust y, mientras avanzaba el vídeo, pensaba "es un coñazo, pero parece ideal para programar orientado a no meter la pata y se pierde mucho menos tiempo con ese coñazo de reforzarlo todo que luego en lenguajes mucho más flexibles depurando dónde has metido la pata". Y, al final, ha quedado un ejemplo práctico de esto mismo. Pero vaya turra de lenguaje, yo lo hubiera llamado TOC.
Bueno, pero en sistemas embebidos como un medio de pago, el debuguer es imposible, es necesario si o si, usar un logger, el cual capturas desde un syslog. Al menos que sepas de alguna alternativa.
Claro, cada sistema tiene sus particularidades. En el vídeo no tenemos en cuenta sistema embebidos. De ser así, casi tendríamos que hacer otra serie de vídeos totalmente distinta :). Aunque nosotros no vayamos a tener en cuenta los sistemas embebidos, es una muy buena puntualización. Gracias :).
@@ProfesorRetroman dale, estaría interesante esa clase de video, me toca tener que trabajar con los medios de pagos, usar C, y usar un logger para tracer los errores y es un cancer.
Tomando este video como tutorial he intentado(con alguna fortuna ) replicar este efecto en c#/MonoGame. Me ha resultado muy útil para entender un poco mas esto de la programación(aunque sea en otro lenguaje). th-cam.com/users/shortsmTsqADkIWkc
¿Puede que el short al que enlazas esté privado? De hecho, parece un enlace a youtube studio, no al vídeo. Da error al intentar verlo y pide autenticación si intentas verlo en una ventana de incógnito.
@@ProfesorRetroman Hola Fran. Estoy buscando el fallo, pero no consigo dar con el. El video está como público y el enlace que he dejado es el que me da TH-cam. De echo, me he enviado a mis mismo el enlace por WhatsApp y me lleva al video. ¿Puede ser que aún TH-cam no diera el visto bueno al video cuando accediste a el?
una convolución no es un filtro y no esta cerca de serlo te aseguro que si ves como se hace una convolución con dos ecuaciones de transferencia discretizadas y te darás cuenta que no es un filtro XD
Mi opinion sincera, rust es un lenguaje moderno, con la capacidad de c, pero aun asi rust depende de c, por lo que en usabilidad y eficiencia rust, pero en todo lo demas sigue en pie c. C siendo un mal necesario jajaj saludos.
Correcto, pero eso sólo es "por ahora". La comunidad de Rust está reescribiendo todo el código de C en Rust y, a medio plazo, Rust será completamente independiente de C. El hecho de que se usen librerías estándar de C es, simplemente, porque reescribirlas todas se lleva años de trabajo. Mientras eso se hace, se usa lo que se tiene, como es lógico :).
He estado mirando un poco la docu de Rust.. parece una version Pretty de C ( hay comentarios en plan raruno : we want to empower you, empower everybody ... ojo.. cuidado....) aunque el lenguage parece potente y interesante, sobre todo si conoces C y C++ ( internamente difiere, pero la syntaxis es muy parecida ) me pregunto si durara en el tiempo. ( Tambien salio GO y otros muchos ) excelentes videos por cierto. casi dan ganas de ponerse a programar viendo el entusiasmo que le poneis :)
como puedes comparar rust qe necesita de una consola virtual para compilar contra c.... solo porque rust tiene acceso limitado a algunas partes de la memoria del sitema y que solo es conocido porque google lo administra. Yo no te contrataria en mi empresa, verguenza
Google no lo administra, el que administra es Mozilla deberías estudiarlo un poco a fondo para comentar, además gustos en lenguajes hay montón, saludos.
Raylib es una tremenda libreria, me alegra que lo hayan usado en esta sesión. Muy recomendable para empezar todo lo que han hablado.
Maginifico video. Me ha encantado Rust, es como el dicho de carpinteria, mide dos veces y corta solo una
Que buen lugar he encontrado! Muy bueno el video.
Excelente metodología de enseñanza! Me encanta! Aprendo dos lenguajes al mismo tiempo, es lo máximo!
Excelente las explicaciones y el detalle en dejar claro cada proceso y lo que ocurre de fondo en cada momento!
Felicidades, Suscrito!
Aún recuerdo con mis 15 añitos intentando entender este efecto siguiendo un tutorial del grupo "Asphyxia" que explicaba cómo hacerlo para MSDOS usando Turbo Pascal y rutinas en ensamblador para dibujar directamente en la VGA y manejar la paleta de colores. No entendía mucho lo que hacía, pero cuando vi el fuego en mi pantalla de tubo de 14 pulgadas me quedé con la boca abierta. Qué época los 90s...
Creo recordar ese tutorial aunque creo que el efecto original fue creado por Javier Arévalo (JARE), incorporado en la demo de su grupo Iguana llamada Inconexia quemando las letras de los créditos, cuyo código, completo en ensamblador, con los modos X de la VGA es toda una delicia (aún se puede encontrar por ahí en internet)
Esos tiempos de turbo C y como habilitar el modo grafico vga y los tutoriales de como dibujar lineas pixel a pixel era casi como magia, una vez encontré un ejemplo pero de agua, donde hacías click se hacían ondas de agua y podías arrastrarlo.
Grande profe, explicas de una manera muy correcta..
Ojala pronto hagas un curso de Rust 😊; fue una muy buena comparativa entre C y Rust, gracias.👍
este tipo de videos está genial e interesante, hace tiempo que no me topaba con un contenido así. Muy completo además en cada detalle. Excelente!
Genial directo y muy didáctico, como siempre. Muchas gracias a los dos!
Muy buen video, he aprendido de Rust en este video mas que en otros que son mas específicos de Rust. Gracias.
Este directo me gustó mucho porque estuvieron explicando todo lo que hacía y también por fin se configurar cmake a un nivel básico
en el minuto 3:02:17 debio inicializar el arreglo con valores en 0 unsigned char fire_buffer[400 * 300] = {}, por eso cuando rellena solo una fila del arreglo las demas filas tambien tienen valores y eso hace que se pinten en pantalla otros pixeles
Interesante crear estos enfrentamietos ❤ de lenguajes de programación
Maravillosa explicación gracias 😌
Me a encantado este episodio. Algo se aprende día a día.
grandes muchachos son increibles ambos por su dedicación.
Excelente directo. Da gusto aprender Rust con este tipo de ejercicios. Saludos!
"Ahí hay un pixel rojo" JAJAJAJAJA épico xD Muy genial.
Profesor, para cuando su curso de RUST :) lo espero con ansias..
Esto va a ser epico papus. No le voy a mentir, soy tremendo fan de C, ojala se muestre que con un diseño minimalista puedes crear maravillas.
profesor eres un crack
Gracias por los vídeos
Aunque no me dedico a la programación de vídeos juego eh aprendido mucho y sacado varias ideas.
Espero mas vídeos de c y assembler. Particular mente C dado que C23 esta a la vuelta de la esquina.
No se si estoy viejo o que pero los lenguajes modernos cambian demasiado rápido y lo que tenes andando un año ya no funciona al otro. Esto solo sirve para las empresas que no pagan por soft estable sino por tener a alguien sentado escribiendo linea si saber.....
Ya me vi todos los videos y seguramente los vuelva a muchas veces mas.
Saludos desde la Argentina
Genial comparativa! Estaría muy bien hacer más VS como por ejemplo Java vs Kotlin, Javascript vs PHP, Rust vs Python... etc
Por qué Rust vs Python?
Tremendo biceps el de fran
Que chulo Rust, es como poner todas las buenas práticas que intenamos seguir en C/C++ e incluirlas en el lenguaje.
Además, aprender comparando, paso a paso con un viejo (C)onocido como es C, pues se agradece.
Para el Team C, lo que hace Héctor con el cast de C: `(Color){.r=255}` ¿Sería un equivalente de C de un cast a una lista inicializadora (de C++)?
Y para el siguiente vídeo, aunque no llevarlo al extremo, molaría ver comparativas de tiempos un poco, por ver cuanta es la diferancia entre usar un lenguaje u otro, aunque no se optimice el código hasta el extremo, que esto siempre gusta, y pica a la gente.
Muy buen directo a los dos, un saludito.
Como alguien que aprendió a programar en C y que se dedica a IT es un placer ver este tipo de videos 🙌✨
En C++ siempre que se necesite programar una aplicación gráfica se requiere una librería gráfica, como se puede por ejemplo manipular pixels sin usar una. en el efecto fuego solo se manipulan pixeles, no quiero depender de librerías externas si se puede hacer directamente en C++, por lo menos como en este caso en aplicaciones sencillas.
Las librerías no son código mágico: en general son código hecho también en C++. La librería no se requiere para pintar píxeles, sino para que nos dé ya hecho el trabajo de bajo nivel, que suele consistir en este caso en hablar con el Sistema Operativo y con la API gráfica. Pero nada te impide a ti hacer un programa que le pida al Sistema Operativo que abra una ventana y cree un contexto OpenGL en la GPU en el que tú escribas píxeles. La librería sólo es código de otra persona que hace esto: lo mismo lo puedes hacer tú. Por ejemplo, en la serie de vídeos de 2019, utilizo tinyPTC que es una librería supersencilla que tiene nada más lo necesario para abrir la ventana y actualizar los pixeles. Esa librería, que está enlazada en mis videos, son unos pocos cientos de líneas en C. Sólo tienes que abrir los ficheros y leer el código y verás que no es nada especial: sólo pedirle al SO que cree una ventana, crear un contexto y actualizarlo. No hay nada que hagan las librerías que tú no puedas hacer: no son mágicas, sólo son código hecho por otra persona.
Profe excelente video, vale oro, Que libros recomendable para aprender Rust, saludos desde Bolivia.
En resumen. C/C++ por delante del Rust. Mi preferido sigue siendo C#, impresionante.
¿Dónde/cómo podemos compartir nuestras versiones? De momento tengo completado el efecto tal y como lo habéis enseñado tanto en C como en Rust. El próximo finde a ver si me pongo con diferentes variaciones.
Pues fácilmente podéis poner un comentario aquí en TH-cam con el link, y así lo puede ver todo el mundo. Creo que es lo más sencillo, aunque si preferís otras opciones siempre podéis proponer y lo vemos :)
que distribución utilizan de gnu-linux.?
Utilizamos Linux Manjaro, que es una distribución de Arch Linux pero fácil de administrar. En la descripción del video tienes tanto los detalles concretos de la distribución, como los links por si quieres descargarla. Además, tienes un enlace a la Máquina Virtual de VirtualBox que usamos en el directo. Así, si quieres reproducir exactamente lo que hacemos, puedes hacerlo en las mismas condiciones exactas :)
Cuántos lenguajes de programación sabe profesor??? Algún consejo para aprender varios lenguajes?
Y yo programando en Java, que envidia me dais. ¿Algún consejo para salir Del Pozo?
Claro. Primero busca un trabajo que te gustaría hacer. Asegúrate de que te gustaría de verdad. Después ponte en contacto con las personas que lo están haciendo, la o las empresas o instituciones donde te gustaría estar. Conoce a las personas y el trabajo e interesante por qué habilidades hacen falta. Después traza un plan para obtener las habilidades y ponte a aprender. Mantén el contacto con las personas y entidades donde querrías estar. Colabora con ellos si hay oportunidades, aprovechando para aprender. Si tienes claro lo que hace falta aprender y te pones con ello, antes de lo que creas podrás estar en condiciones de trabajar en lo que te gusta. Si además estableces relaciones con las personas que lo hacen, será más fácil después que te conozcan y acepten.
Por supuesto, todo esto requiere esfuerzo y dedicación pero, si de verdad has identificado bien lo que quieres, y te motiva hacerlo, no veo por qué no ibas a poder :).
Ánimo y suerte
Gracias por esto. No pude encontrar tutoriales en ningum sitio.
Hola Profesor! Entré en el mundo de la programación a traves de un grado superior de Diseño web pero desde que descubrí tu canal me siento muy atraido por C, pero por lo que veo en las listas del canal me parece que son temas muy avanzados. Habia pensado en empezar con un libro introductorio de C de la serie headfirst. Aunque quedaria muy agradecido si pudiera nombrarme algun otro libro o recurso para aprender los entresijos de C. Gracias de antemano!
Me quedé al video, entre otros, debido a como explica
Cuando me imagino un senior me imagino este tipo de personas.
😅"problemas entre la pantalla y la silla". Yo lo conocía como error 600 (entre el teclado y el asiento) 🤣
Esos musculos profe jaja
😳
No sabía que Paco León programaba en C.
y ahi esta el problema de no tener dos expertos, puts es para imprimir solo cadenas de caracteres(strings)y además automáticamente le da un salto de lineal al final y printf es para dar formato a lo que vas a imprimir y te toca darle
si quieres un salto de linea pero ademas de eso puedes imprimir variables etc... en pocas palabras tienes mas control y mas opciones con printf.
Seria de interes hacer el mismo reto pero con librwrias graficas propias de rust en vez de utilizar una de C, porque la gente que no entiende vera que en rust pra hacer lo mismo que em C te complicas mucho mas pero el único motivo de hacer todo lo que haces es pprque estas utilizando una libreria en C.
No conocía Rust y, mientras avanzaba el vídeo, pensaba "es un coñazo, pero parece ideal para programar orientado a no meter la pata y se pierde mucho menos tiempo con ese coñazo de reforzarlo todo que luego en lenguajes mucho más flexibles depurando dónde has metido la pata". Y, al final, ha quedado un ejemplo práctico de esto mismo. Pero vaya turra de lenguaje, yo lo hubiera llamado TOC.
Bueno, pero en sistemas embebidos como un medio de pago, el debuguer es imposible, es necesario si o si, usar un logger, el cual capturas desde un syslog. Al menos que sepas de alguna alternativa.
Claro, cada sistema tiene sus particularidades. En el vídeo no tenemos en cuenta sistema embebidos. De ser así, casi tendríamos que hacer otra serie de vídeos totalmente distinta :).
Aunque nosotros no vayamos a tener en cuenta los sistemas embebidos, es una muy buena puntualización. Gracias :).
@@ProfesorRetroman dale, estaría interesante esa clase de video, me toca tener que trabajar con los medios de pagos, usar C, y usar un logger para tracer los errores y es un cancer.
pero quién ganó? rust o c?
Diría que ganamos todos, con lo mucho que aprendimos sobre ambos lenguajes ;).
Tomando este video como tutorial he intentado(con alguna fortuna ) replicar este efecto en c#/MonoGame. Me ha resultado muy útil para entender un poco mas esto de la programación(aunque sea en otro lenguaje).
th-cam.com/users/shortsmTsqADkIWkc
¿Puede que el short al que enlazas esté privado? De hecho, parece un enlace a youtube studio, no al vídeo. Da error al intentar verlo y pide autenticación si intentas verlo en una ventana de incógnito.
@@ProfesorRetroman Hola Fran. Estoy buscando el fallo, pero no consigo dar con el. El video está como público y el enlace que he dejado es el que me da TH-cam. De echo, me he enviado a mis mismo el enlace por WhatsApp y me lleva al video. ¿Puede ser que aún TH-cam no diera el visto bueno al video cuando accediste a el?
@@Oscar-td5sl ahora sí funciona. Antes no iba, pero ahora va sin problema 🙂
Team JS
En el mundo de los lenguajes, siempre hay para todos los gustos :)
The Primeagen
Un canal estupendo, sin duda :)
una convolución no es un filtro y no esta cerca de serlo te aseguro que si ves como se hace una convolución con dos ecuaciones de transferencia discretizadas y te darás cuenta que no es un filtro XD
Mi opinion sincera, rust es un lenguaje moderno, con la capacidad de c, pero aun asi rust depende de c, por lo que en usabilidad y eficiencia rust, pero en todo lo demas sigue en pie c. C siendo un mal necesario jajaj saludos.
Correcto, pero eso sólo es "por ahora". La comunidad de Rust está reescribiendo todo el código de C en Rust y, a medio plazo, Rust será completamente independiente de C. El hecho de que se usen librerías estándar de C es, simplemente, porque reescribirlas todas se lleva años de trabajo. Mientras eso se hace, se usa lo que se tiene, como es lógico :).
2.07 el que dice que java les gana esta mal de la mollera.
lo de los bloques me parece nefasto lo mismo que el cmake en fin nada puede ser perfecto
como haces un vs si ninguno es un experto? literal le quitaste el peso y la sustancia al video al decir eso
He estado mirando un poco la docu de Rust.. parece una version Pretty de C ( hay comentarios en plan raruno : we want to empower you, empower everybody ... ojo.. cuidado....) aunque el lenguage parece potente y interesante, sobre todo si conoces C y C++ ( internamente difiere, pero la syntaxis es muy parecida ) me pregunto si durara en el tiempo. ( Tambien salio GO y otros muchos ) excelentes videos por cierto. casi dan ganas de ponerse a programar viendo el entusiasmo que le poneis :)
como puedes comparar rust qe necesita de una consola virtual para compilar contra c.... solo porque rust tiene acceso limitado a algunas partes de la memoria del sitema y que solo es conocido porque google lo administra. Yo no te contrataria en mi empresa, verguenza
Me alegro que el vídeo te haya gustado tanto como para comentarlo ☺️.
Google no lo administra, el que administra es Mozilla deberías estudiarlo un poco a fondo para comentar, además gustos en lenguajes hay montón, saludos.