Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

821 artículos publicados

AVIF: todo lo que necesitas saber sobre el nuevo formato de imagen

En este artículo daremos un repaso a fondo al reciente formado de imagen AVIF. Recordaremos los formatos que existían antes de este, cuáles son las ventajas del nuevo formato, cómo podemos comparar su rendimiento con el de otros formatos, cómo creamos imágenes AVIF, el soporte de navegadores y servidores y finalmente las desventajas que podríamos tener al usarlo. Al estar detrás del formato la mayoría de las grandes empresas multimedia y de Internet, y sobre todo Google, la adopción del formato está siendo muy rápida y es fácil incluir alternativas para los dispositivos que no lo soporten. Por todo esto es un formato muy a tener en cuenta y que deberíamos empezar a utilizar en nuestros desarrollos y sitios Web. [Más]

Java: comodines para tipos genéricos - PECS. Diferencias entre <? extends T> y <? super T>

En el post de hoy nos vamos a centrar en un tema relacionado directamente con los tipos genéricos en Java: los comodines para genéricos o PECS. PECS es el acrónimo de Producer extends and Consumer super, que quiere decir en español que el productor usa extends y el consumidor usa super. Esta terminología tan extraña, cobra sentido cuando entiendes el funcionamiento y el propósito de estos comodines, cosa que veremos en el artículo. Se trata de un concepto de uso relativamente poco frecuente y que puede ser costoso de comprender, pero que cuando lo necesitas te puede salvar el día. [Más]

Aclarando conceptos: Inteligencia Artificial, Machine Learning, Deep Learning, Big Data y Ciencia de Datos

Sin duda la tendencia tecnológica más puntera de los últimos años es todo lo relacionado con la inteligencia artificial y el análisis de datos. El problema viene cuando los términos relacionados con el campo se convierten en palabras vacías de marketing que en muchos casos son directamente mentira. Es muy habitual hablar de que tal o cual producto usa la inteligencia artificial para lograr algo y, en ocasiones, son algoritmos convencionales tomando decisiones predecibles. En este artículo te explicamos de manera concisa y clara qué significan cada uno de los términos más comunes relacionados con la ciencia de datos y la inteligencia artificial. [Más]

El operador de encadenamiento opcional en ECMAScript/JavaScript: evitando errores por nulos

El operador de encadenamiento opcional es nuevo en ECMAScript 2020. Es muy útil para escribir expresiones concisas y legibles sin arriesgarnos a que un valor nulo o no definido provoque un error en nuestro código. Su uso es extremadamente sencillo y sólo hay que conocer los pequeños detalles asociados que se explican en este artículo. [Más]

¿Por qué Blazor? - Qué me ofrece Blazor si desarrollo con .NET y C#

Seamos realistas: para la mayoría de los desarrolladores que vienen de otros entornos, la parte más odiosa de hacer desarrollo Web es sin duda el Front-End, es decir, la interfaz de usuario. Con Blazor los desarrolladores de .NET y C# que creamos aplicaciones para la Web estamos de enhorabuena. Esta nueva tecnología de Microsoft nos permite hacer desarrollo Web usando C# y la plataforma .NET, de manera rápida y robusta, creando componentes reutilizables y separando las responsabilidades de la interfaz de usuario del resto de la aplicación. En este artículo te cantamos su bondades. [Más]

El operador de "unión nulosa" o "nullish coalescing" de ECMAScript: parámetros opcionales y valores por defecto en funciones

Una necesidad muy habitual a la hora de programar es la de obtener valores por defecto para los parámetros de las funciones. Al contrario que en otros lenguajes como C# o Java, en JavaScript no hay manera de forzar la definición de una función y sus parámetros. Podemos definir una función con tantos parámetros como deseemos, pero eso no significa que luego los otros programadores nos los vayan a pasar siempre. Y es que en JavaScript todos los parámetros de una función son opcionales, pero al mismo tiempo no tenemos manera de otorgarles un valor predeterminado por si no nos los pasan. En este artículo veremos cómo podemos conseguirlo (más o menos) con JavaScript tradicional y luego con el nuevo operador específico de ECMAScript 2020. [Más]

Cómo manejar correctamente fechas en Java: el paquete java.time

Desde el inicio de los tiempos, la edición estándar de Java incluye un par de clases para manejo de fechas, las conocidas java.util.Date y java.util.Calendar. La mayoría de los artículos y tutoriales se centran en el uso de estas clases obsoletas, pero estas clases de manejo de fechas no son las más adecuadas para casi nada. Entonces, ¿cuál es la mejor manera de gestionar fechas en java? En este artículo veremos las clases apropiadas y algunas "recetas" para hacer tareas comunes con fechas con ellas. [Más]

Docker vs Kubernetes ¿En qué se diferencian?

Cuando estás empezando con la tecnología de contenedores existen dos productos que aparecen todo el tiempo: Docker y Kubernetes, lo que da lugar a confusión. Aunque están relacionados, no tienen nada que ver tecnológicamente y se ocupan de cosas completamente distintas. Pero trabajan juntos muy bien. En este artículo vamos a ver qué son y en qué se parecen o se diferencian ambos productos gratuitos de DevOps. [Más]

.NET Core / .NET 5: Cómo publicar aplicaciones en un único ejecutable

Cuando compilas una aplicación .NET Core o .NET 5 de cualquier tipo y la publicas para distribuirla, al final acabas con un ejecutable y un número mayor o menor de ensamblados relacionados que vas a necesitar según lo que elijas. Si escoges la opción de publicarla con todo lo necesario, puedes llegar a tener decenas de MB y centenares de ensamblados. En este artículo + vídeo te explicamos cómo puedes hacer para convertirles en un solo ejecutable que puedas distribuir cómodamente. Sí, incluso una aplicación Web 😊 [Más]

Git: Cómo evitar problemas con cambios de línea al trabajar en equipo

Como seguramente sabrás, cada vez que en tu teclado pulsas la tecla ENTER para cambiar de línea en tu código o en cualquier documento de texto, lo que ocurre es que se inserta un carácter de control que representa ese fin de línea. Estos caracteres de control no se ven, pero están ahí y ocupan memoria (o lo que es lo mismo, espacio en disco). Y no solo eso: también cambian de un sistema operativo a otro y pueden darte problemas al trabajar en equipo. En este artículo vemos en qué consisten, cómo varían entre sistemas, qué problemas pueden dar y cómo solucionarlos en Git. [Más]