Esta semana ha estado repleta de contenido variado y útil para programadores de distintos niveles. Desde técnicas avanzadas en HTML5 para mejorar la experiencia de usuario con vídeos, hasta trucos esenciales de Python para gestionar archivos y directorios, los artículos han cubierto aspectos clave del desarrollo web y la programación. También se ha profundizado en la optimización del diseño para impresión con CSS y se ha presentado un ejemplo práctico de WebSockets en Java EE.
Los artículos sobre HTML5 exploran cómo mejorar la interacción con vídeos, abordando txanto la búsqueda dentro de un vídeo como la gestión de cargas inestables. Por otro lado, los artículos de Python ofrecen soluciones prácticas para la manipulación de archivos y el uso de estructuras de control. Además, se destaca un artículo sobre CSS que explica cómo adaptar páginas web para su correcta impresión.
Este artículo detalla cómo implementar una función de búsqueda dentro de un vídeo en HTML5. Se explican métodos para que los usuarios puedan encontrar fragmentos específicos dentro del contenido multimedia. También se presentan ejemplos de código para facilitar su implementación en proyectos web.
Se analizan las razones detrás de los problemas en la carga y reproducción de vídeos en HTML5. Desde problemas de red hasta formatos incompatibles, este artículo proporciona estrategias para mejorar la experiencia del usuario.
Este artículo ofrece una guía sobre cómo diseñar hojas de estilo específicas para impresión. Explica la importancia de usar media queries para diferenciar el diseño en pantalla y en papel, eliminando elementos innecesarios y asegurando una correcta distribución del contenido para facilitar la lectura impresa.
A través de ejemplos prácticos, se muestra cómo generar y listar los primeros diez números impares utilizando bucles en Python. Se explican distintas estructuras de control como for, junto con consideraciones sobre eficiencia y buenas prácticas en la escritura de código.
Este artículo introduce los conceptos básicos de iteración en Python, mostrando cómo utilizar range() y distintos métodos de bucles para generar secuencias de números. Además, se incluyen ejercicios prácticos para reforzar el aprendizaje.
Una introducción al uso de WebSockets en Java EE, explicando cómo crear una conexión en tiempo real donde el servidor responde con el mismo mensaje recibido. Se incluyen ejemplos prácticos y configuraciones necesarias para implementar esta funcionalidad en aplicaciones web modernas.
Explica cómo eliminar directorios completos en Python, incluso cuando contienen múltiples archivos. Se presentan métodos utilizando el módulo shutil y os, con ejemplos detallados sobre cómo manejar excepciones y evitar errores en la eliminación de carpetas.
Esta semana hemos ofrecido una selección de artículos con un enfoque principal en la manipulación de archivos y directorios en Python, complementado con un artículo sobre CSS. Nuestro objetivo es proporcionar contenido valioso tanto para programadores principiantes como para aquellos con más experiencia que buscan soluciones prácticas y concisas. Los artículos de Python destacan por su enfoque directo y el uso de ejemplos claros, facilitando la comprensión y aplicación de los conceptos. El artículo sobre CSS aborda un aspecto fundamental para el diseño web moderno y adaptable a diferentes dispositivos.
Este artículo explica de forma clara y concisa el uso de la propiedad aspect-ratio en CSS. Su principal fortaleza reside en la explicación de cómo esta propiedad simplifica el mantenimiento de las proporciones de los elementos visuales, un aspecto crucial para el diseño responsive y la correcta visualización en diferentes pantallas y dispositivos. Permite definir la relación de aspecto de un elemento, lo que resulta especialmente útil para imágenes, videos y otros elementos multimedia, asegurando que mantengan sus proporciones originales independientemente del tamaño de la pantalla. Se exploran ejemplos prácticos y casos de uso comunes.
Este artículo sumamente práctico enseña cómo verificar la existencia de un fichero antes de intentar cualquier operación con él. Su valor principal es la prevención de errores comunes que pueden surgir al trabajar con archivos, lo que contribuye a la creación de código más robusto y fiable. Utiliza la función os.path.exists() para realizar esta comprobación, evitando excepciones y mejorando el manejo de posibles errores de archivo no encontrado. Se presentan ejemplos de código y se explica cómo integrar esta comprobación en diferentes escenarios.
Este artículo explica cómo obtener una lista del contenido de un directorio utilizando la función os.listdir(). Su utilidad se centra en la automatización de tareas de gestión de ficheros y directorios, permitiendo a los desarrolladores interactuar programáticamente con el sistema de archivos. Facilita la creación de scripts que recorren directorios, procesan archivos o realizan otras tareas automatizadas, como la búsqueda de archivos específicos o la generación de informes.
Este tutorial directo y sencillo muestra cómo crear nuevos ficheros en Python, explicando los diferentes modos de apertura ('w', 'x', 'a'). El principal beneficio es la claridad con la que se explican las opciones para manipular archivos, permitiendo a los usuarios entender cómo controlar la escritura y la creación de ficheros. Se cubren aspectos como la creación de archivos nuevos, la escritura sobre archivos existentes y el añadido de contenido al final de un archivo, con ejemplos de código para cada caso.
Este artículo se centra en la creación de carpetas utilizando la función os.mkdir() del módulo os de Python. Explica cómo utilizar esta función para crear un nuevo directorio en la ruta especificada. Es importante tener en cuenta que os.mkdir() solo puede crear un directorio a la vez. Si intentas crear una carpeta dentro de otra que no existe, se generará un error FileNotFoundError.
Este artículo conciso explica cómo eliminar una carpeta vacía en Python usando os.rmdir(). Se enfatiza la importancia de que la carpeta esté vacía para que la operación se realice correctamente, evitando errores y comportamientos inesperados. Se destaca la necesidad de comprobar que la carpeta no contiene ningún archivo o subdirectorio antes de intentar eliminarla, y se ofrecen alternativas para eliminar carpetas con contenido.
Este artículo explica cómo eliminar un fichero específico utilizando la función os.remove(). Su principal valor es la simplicidad y eficacia para eliminar archivos individuales, ofreciendo una solución directa para esta tarea común. Se explica cómo especificar la ruta del archivo que se desea eliminar y se mencionan posibles errores que pueden surgir, como intentar eliminar un archivo que no existe, ofreciendo soluciones para manejarlos.
Se acaba un año y empezamos otro nuevo. Un buen momento para echar una vista atrás y analizar cuales han sido los 5 hitos relevantes en un fascinante 2024 para la programación.
Un año 2024 marcado, principalmente, por la evolución en la Inteligencia Artificial en múltiples áreas y sobre todo en la parte de la Inteligencia Artificial Generativa. Hito que ha supuesto un antes y un después para la programación, ya que disponemos de nuevas herramientas que cambian la forma en la que vamos a afrontar los desarrollos de código en el futuro y algo, de lo que seguro hablaremos mucho.
Pero qué 5 hitos han sido, a mi entender, los que han sido más relevantes en este año 2024 y por qué ha sido un fascinante 2024 en la programación. Seguro que cada uno tiene los suyos.
Estos 5 hitos serían:
Inteligencia Artificial Generativa para la creación de código fuente
OSI Libera la primera definición de Inteligencia Artificial Open Source
NIST aprueba 3 algoritmos criptográficos capaces de resistir a los ordenadores cuánticos
Rust ganando popularidad como lenguaje seguro y de alto rendimiento
Python o Javascript, ¿sin un claro ganador como lenguaje preferido en 2024?
Vamos a ver más en detalle estos 5 hitos de un fascinante 2024 para la programación:
Inteligencia Artificial Generativa para la creación de código fuente
Si tuviésemos que elegir un primer hito que ha hecho que sea un fascinante 2024 para la programación es, sin duda, el uso de la Inteligencia Artificial Generativa para la ayuda en el desarrollo de código fuente en elementos que van desde poder completar código que estamos desarrollando, pasando por tener un chat en el cual pedir ayuda para el desarrollo de un nuevo código, explicabilidad de código existente o generación de pruebas de test automáticas.
Ya contábamos desde hace tiempo con GitHub Copilot, una innovadora herramienta de asistencia en la programación basada en OpenAI CodeX que se lanzó inicialmente en 2021 y que desde entonces ha experimentado una evolución constante con significativas actualizaciones y mejoras en sus capacidades. Pero en diciembre 2024 nos encontrábamos con una grata sorpresa y es que Microsoft ofreció GitHub Copilot gratis en VSCode con capacidades de chat y 2.000 ayudas para completar tu código. Para ello se apoya en los modelos GPT-4o y Claude 3.5 Sonnet. En el caso de Claude 3.5 Sonnet, de momento, en preview.
Si todavía no lo habías probado GitHub Copilot, ahora, ya no tienes excusas. Además, si se te queda corto, puedes adquirir otros planes de pago.
Pero no todo el mundo de la generación de código mediante inteligencia artificial generativa para los desarrolladores se circunscribe a GitHub Copilot y otras herramientas han cogido forma a lo largo del año.
Desde marzo de 2023 contábamos con Cursor.AI como un editor de código basado en IA que es un fork de Visual Studio Code. En el caso de Cursor.AI ha abandonado los modelos de OpenAI y pasa a basarse en el LLM Claude 3.5 Sonnet de Anthropic.
Tenemos otras herramientas como Zed, en este caso basándose en un editor de código desarrollado en Rust, que se apoya en las capacidades de IA del LLM Claude 3.5 Sonnet de Anthropic.
Por otro lado, en Abril 2024 se lanzó una preview técnica de la nueva plataforma de GitHub basada en Copilot llamada GitHub Copilot Workspace. En el caso de GitHub Copilot Workspace se va un paso más allá en la integración de la IA generativa dentro de los entornos de desarrollo ya que no solo se enfoca al código fuente su entendimiento y mejora, si no que cubre todo el ciclo de desarrollo de un producto software en un modelo colaborativo en tiempo real.
GitHub Copilot Workspace se enfoca en la definición de una funcionalidad y desde ahí te ayuda a definir un plan, identificar los cambios que implican dicho plan, generar el código asociado, ver una previsualización de los cambios y generar una pull-request con la funcionalidad.
Pero, lo mejor es que veas el vídeo en el que nos muestran de qué es capaz GitHub Copilot Workspace, algo que realmente ha sido algo fascinante 2024 para la programación y que promete serlo más este nuevo año.
OSI Libera la primera definición de Inteligencia Artificial Open Source
El segundo hito que hace que hayamos tenido un fascinante 2024 para la programación es que la Open Source Initiative (OSI) ha marcado un hito histórico este año al publicar la primera definición formal de lo que constituye la Inteligencia Artificial de código abierto. Esta definición establece los principios fundamentales y criterios que debe cumplir un sistema de IA para ser considerado verdaderamente open source, incluyendo la transparencia del código, la accesibilidad de los datos de entrenamiento y la documentación completa del modelo. Esta iniciativa representa un paso crucial hacia la democratización de la IA y establece un marco de referencia para toda la comunidad de desarrollo.
Esta definición ha sido especialmente relevante en un momento en que la transparencia y la ética en la IA son temas cruciales. La comunidad de desarrolladores ha recibido esta iniciativa con entusiasmo, ya que proporciona un marco claro para la creación y distribución de soluciones de IA que respetan los principios del código abierto. Además, establece las bases para una mayor colaboración y compartición de conocimientos en el campo de la IA.
Para ello, la definición formal de Inteligencia Artificial Open Source recoge cuando un sistema puede ser considerado realmente Open Source en IA, ya que hay muchos sistemas que se asignan esta definición cuando realmente no lo son.
Identifica la necesidad de comprender cómo funcionan los sistemas de IA, para poder investigarlos, analizarlos y, potencialmente, regularlos, es importante para garantizar que el sistema sea verdaderamente de código abierto.
Además habla de la principal diferencia con los modelos tradicionales de Open Source. Esta diferencia radica en el uso de los datos para la creación de modelos y la complejidad que existe a la hora de poner a disposición estos datos con los que se entrenaron y afinaron los modelos.
Sin duda alguna un paso muy importante para poder tener verdaderos modelos de inteligencia artificial open source.
NIST aprueba 3 algoritmos criptográficos capaces de resistir a los ordenadores cuánticos
El tercer hito a incluir en nuestra lista de hitos de este fascinante 2024 para la programación son los algoritmos criptográficos que resisten los ordenadores cuánticos. Y es que el avance de la computación cuántica plantea nuevos desafíos para la ciberseguridad actual. Los ordenadores cuánticos más potentes podrían comprometer los sistemas criptográficos tradicionales como RSA, lo que ha llevado al NIST (Instituto Nacional de Estándares y Tecnología) a tomar medidas preventivas desde 2016.
En respuesta a esta amenaza emergente, el NIST ha dado un paso histórico al aprobar tres algoritmos criptográficos postcuánticos. Estos algoritmos están específicamente diseñados para resistir los ataques de computadores cuánticos, protegiendo tanto el intercambio de datos en redes públicas como los sistemas de autenticación mediante firmas digitales. Estos algoritmos se basan en problemas matemáticos que serían difíciles de resolver incluso para un ordenador cuántico.
Los tres algoritmos aprobados son:
ML-KEM (anteriormente CRYSTALS-Kyber): Diseñado para el intercambio seguro de claves
ML-DSA (anteriormente CRYSTALS-Dilithium): Enfocado en firmas digitales
SLH-DSA (anteriormente SPHINCS+): Un algoritmo alternativo para firmas digitales
Rust se convierte en el cuarto hito de este fascinante 2024 para la programación. Y es que este año 2024 el lenguaje de programación Rust sigue creciendo y siendo más aceptado. Se ofrece como una opción de desarrollo cuando necesitamos sistemas más seguros en la gestión de memoria y con procesos concurrentes sobre los que busquemos alto rendimiento.
De esta manera Rust se posiciona como una alternativa a ciertos desarrollos en C y C++.
Este incremento en la adopción se encuentra avalado por su adopción dentro del Kernel de Linux, aunque no sin su polémica ya que los desarrolladores del Kernel van adoptándolo no tan rápido como se esperaba, algo normal por otra parte como comentaba Linus Torvalds. Esto se ha unido a ciertos problemas de inconsistencia de las infraestructuras de desarrollo para Rust, siendo la comidilla de la comunidad.
Si bien, no son todo buenas noticias, ya que tenemos algunas noticias como el abandono de Rust como lenguaje base por parte de el estudio LogLog Games para el desarrollo de videojuegos, después de tres años de inversión en él. Parece ser que la complejidad del aprendizaje del lenguaje, así como el coste de prototipado y modificación les ha llevado a tomar esta decisión.
Por lo tanto, tiene pinta de que Rust seguirá creciendo en los próximos años y hablaremos mucho sobre este lenguaje de programación en Línea de Código.
Python o Javascript, ¿sin un claro ganador como lenguaje preferido en 2024?
Y el último hito de este fascinante 2024 para la programación no podía ser otro que el caso de un sorpaso, ¿no? Seguro que dependiendo con quién hables o del informe que leas verás que el lenguaje de programación más utilizado o demandado puede variar. Y es que según unos Python es el más utilizado, sobre todo al estar pegado a muchos procesos de Inteligencia Artificial y por lo tanto como uso de Data Scientists o Data Engineers. Quedando muy atrás su fama de lento, simple y no apto para grandes proyectos.
Pero otros te hablarán de Javascript como el lenguaje más utilizado y demandado a su extensivo uso como herramienta para el desarrollo fullstack desde los frontales hasta las bases de datos como MongoDB.
Si miramos a los rankings de popularidad de lenguajes de programación son variables según la fuente que consultemos. Por ejemplo, el índice TIOBE sitúa a Python en primera posición otorgándole una impresionate cuota del 23,28% y un incremento de uso en 2024 del 9,3%. En el caso del índice TIOBE , posiciona a Javascript en un sexto puesto con el 4,20% de uso.
Pero si miramos en DevJobsScanner, que genera un informe de lenguajes de programación enfocado a ofertas de empleo, podemos observar que el lenguaje que más profesionales está demandando es Javascript o mejor dicho, Javascript y TypeScript con un 30% de las ofertas. En este caso encontramos a Python como el segundo lenguaje con más ofertas de empleo con un 20% de puestos ofrecidos.
Así la pregunta es ¿sin hay un claro ganador como lenguaje preferido en 2024? Y creo que la respuesta es clara, aunque algún informe siga poniendo a Javascript como el más utilizado, sin duda alguna Python es es claro ganador de este 2024, convirtiéndose en el lenguaje más utilizado y con pintas de reinar, de largo, en los próximos años.
Artículos sobre un fascinante 2024 para la programación que debes de leer
Si quieres saber un poco más sobre las historias que han hecho que tengamos un fascinante 2024 para la programación y el desarrollo de software te recomiendo que le eches un vistazo a los siguientes artículos.
Y hasta aquí nuestros 5 hitos relevantes en un fascinante 2024 para la programación. Seguro que nuestros lectores tienen alguno más, así que encantado de escucharos en comentarios sobre qué ha sido para vosotros lo fascinante 2024 para la programación.
Una de las cosas que más quebraderos de cabeza nos pasa a las personas que tenemos webs o que gestionamos webs de terceros es lo relativo al hosting. La complejidad de movernos de un hosting a otro por lo relativo a costes económicos, al esfuerzo del movimiento del software, a las configuraciones que tenemos que modificar,… todo esto hace que permanezcamos en un mismo hosting, aunque este no cubra todas las expectativas que estemos esperando.
Así que hoy os queremos hablar un poco de una oferta que ha puesto encima de la mesa SiteGround, la cual incluye una de migración gratuita y una serie de beneficios adicionales, si adquieres una cuenta de hosting a lo largo de este mes de septiembre.
De esta manera si te creas una cuenta con SiteGround durante este mes te podrás beneficiar de:
Otro de los puntos importantes es tener que mover el dominio dónde tengamos la web, así, por cada una de las cuentas que tengamos en SiteGround, podremos solicitar una transferencia de dominio.
Las transferencias de dominio las tienen disponibles para los dominios: es, .com, .net, .org, .biz, or .info. Hay algunos dominios de países también disponibles que puedes consultar con ellos.
Una de las cosas más importantes es la fecha de renovación. ¿Cómo me voy a cambiar de proveedor de hosting si he renovado hace unos meses con el mío? En este sentido desde SiteGround nos compensa con hasta 6 meses de hosting gratis, igualando el tiempo que te quedase con tu actual proveedor.
Para poderte beneficiar de este hosting gratuito es importante que tengas en cuenta las siguientes cosas:
La fecha límite para poder solicitar este hosting gratuito es el 8 de octubre.
La cuenta actual sea un alojamiento compartido con un plan de 12 meses o más.
Que el inicio del contrato con tu proveedor actual lo hayas realizado antes del 1 de septiembre de 2016.
La parte de hosting gratuito la puedes hacer desde tu área de usuario en Soporte > Ayuda Facturación > Solicitar hosting promocional.
Para ello lo que se hace es construir un formulario en el cual tendremos un botón, del cual queremos saber cuándo se ha pulsado. Además utilizaremos una capa para devolver un texto indicando cuándo se ha pulsado el botón.
Luego se nos contará la diferencia entre tener el comportamiento y la estructura dentro de un mismo sitio, cosa que sucedía en los principios del HTML y lo que es separar la estructura del comportamiento, que será la mejor forma de poder controlar eventos en Javascript.
Para acabar, entraremos en detalle en el uso de las funciones .getElementById() y .addEventListener() que serán las que nos ayuden a manejar los eventos.
var boton = document.getElementById("miboton");
boton.addEventListener("click",function(){
var capa = document.getElementById("micapa");
capa.innerHTML="Has pulsado el botón";
},false);
Pero lo mejor es que os veáis en vídeo controlar eventos en Javascript que os contará todo esto en detalle.
Una de las cosas nuevas que aparecen en HTML5 es el elemento Canvas. Hoy tenemos el vídeo insertar imagen en un CanvasHTML5 el cual nos cuenta cómo podemos crear un Canvas, para, de forma posterior, manipularlo mediante Javascript e insertar una imagen dentro.
El Canvas de HTML5 es una herramienta poderosa para crear gráficos dinámicos. Insertar imágenes es solo el principio de todo lo que puedes hacer con esta tecnología.
Para ello veremos cómo podemos crear un array de String y cargarlo de contenido, para, a posteriori, utilizar un bucle for para recorrer los elementos del array y mostrarlos en pantalla.
También se analiza el uso de la propiedad .length para poder conocer el número de elementos con los que cuenta el array y saber de qué forma deberemos de salirnos del bucle for.
Espero que os guste el vídeo recorrer un array en Java.