Menú de navegaciónMenú
Categorías

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

1036 artículos publicados

Cómo hacer un ribbon destacado usando solo CSS y el pseudoelemento ::before

En este post vamos a aprender una técnica muy sencilla pero resultona para simular una cinta (ribbon, en inglés) con un texto superpuesta con CSS sobre un elemento del contenido. La aplicación práctica más habitual para esta técnica es la clásica cinta que pone "Nuevo" por encima de un producto (o cualquier otra característica que se quiera destacar) en un e-commerce, pero realmente se puede aplicar en muchos otros casos, como posts de un blog, imágenes o vídeos de una galería, un listado de usuarios… [Más]

Cómo configurar ASP.NET Core 2.1 en Linux en menos de 10 minutos

Me sorprendió gratamente lo fácil que resultó configurar e instalar ASP.NET Core 2.1 en Linux. La primera vez lo hice en 15 minutos, sin experiencia previa con .NET Core en Linux. La segunda vez, en producción, me llevó 5 minutos siguiendo estas instrucciones. En este artículo, muestro cómo instalar .NET Core runtime en CentOS, cómo poner en marcha el proyecto de ejemplo de ASP.NET Core ejecutándose en Kestrel, y cómo configurar tanto el código como el firewall para habilitar el acceso remoto a la aplicación. Finalmente, comento qué haría de manera diferente para el uso real de la aplicación en producción. [Más]

Desarrollo Web móvil: ¿Qué diferencia existe entre el Viewport y la resolución de pantalla de un dispositivo?

El viewport de un dispositivo es el tamaño teórico que tiene la pantalla de dicho dispositivo, el cual no tiene por qué coincidir con la resolución real de la pantalla (de hecho no coincide casi nunca en dispositivos modernos). La resolución se refiere al número de píxeles que puede mostrar dicha pantalla. Estos dos conceptos a pesar de ser tan sencillos tienen un gran potencial y es la base del funcionamiento de los navegadores móviles. Te contamos qué son, en qué se diferencian y cómo gestionarlos. Y te hablamos del concepto "píxeles CSS". [Más]

5 bibliotecas JavaScript para creación de gráficas y visualizaciones

Si estás programando una aplicación tipo dashboard, escribiendo un resumen de estadísticas, o construyendo aplicaciones web para manipular datos, conviene que conozcas las herramientas que te permiten dibujar todo tipo de gráficas en la Web. En este artículo damos un repaso a cinco de las mejores bibliotecas JavaScript que puedes encontrar para esta tarea. [Más]

Cómo sustituir GIFs animados por vídeo y ganar en el proceso

Los GIF animados vuelven a estar de moda. Cada vez se ven más. Pero este tipo de archivo es muy ineficiente, consume mucho ancho de banda, ralentiza las páginas y hace que el navegador haga más uso del procesador del que debiera. De hecho, la mayor parte de las páginas que tienen GIFs realmente no los utilizan. Usan otro truco para que parezcan GIFs pero en realidad los optimizan para que no tengan ninguno de estos inconvenientes. En este post te contamos cómo conseguir lo mismo... [Más]

GAMBADAS: engañar al GPS para enviar a tu coche autónomo directo contra el tráfico

Cada día millones de personas utilizan el sistema global de posicionamiento americano, GPS. Todos los móviles llevan un sensor GPS incorporado que recibe señales de su constelación de satélites y mide desfases para determinar con precisión pasmosa la ubicación actual. Muchos coches también los incorporan, y en el futuro próximo los coches autónomos estarán al orden del día, y también lo usarán para apoyarse en sus datos de cara a la navegación... Pero ¿es seguro este sistema? Algunos expertos creen que no y además lo demuestran... [Más]

3 formas de inicializar colecciones Java a la hora de declararlas

En muchos lenguajes, al definir una colección como un array o una lista podemos asignarle una una sucesión de valores de forma que los contenga como elementos. En Java, podemos hacer esto con arrays básicos. Sin embargo, a la hora de inicializar una colección de objetos de una clase, la misma sintaxis no es aplicable. En su lugar, habitualmente debemos recurrir a los métodos que añaden elementos. En este post veremos tres vías para conseguir introducir los elementos en la colección en menos código y con mayor legibilidad. [Más]

SQL Server: cuáles son las diferencias entre @@identity y Scope_identity

Cuando insertamos un registro en una tabla de una base de datos, lo más habitual es que se genere automáticamente un nuevo identificador único para el nuevo registro, generalmente un autonumérico. Este identificador es el que vamos a utilizar luego para relacionar el nuevo registro con cualquier otra tabla de la base de datos que necesite utilizarlo. La generación de este autonumérico es mucho más compleja de lo que parece ya que debe tener en cuenta la simultaneidad a la hora de usar la base de datos. Y lo mismo ocurre al recuperarlo para que podamos sacarle partido y relacionar nuestros registros con los de otras tablas. Te explicamos qué métodos tienes en SQL Server, cuáles son sus diferencias y cuál te recomendamos. [Más]

GAMBADAS: El efecto 2000 japonés

Cuando tú o yo cambiamos de trabajo, como mucho actualizamos nuestro perfil de LinkedIn. Y eso si nos acordamos. Pero cuando el emperador de Japón se jubila, es un problema muy grave para mucha gente, y no solo en Japón... Y es que el emperador Akihito va a abdicar en su hijo Naruhito el año que viene, y esto tiene más implicaciones de las que imaginas. Tantas que ya se habla de una especie de "efecto 2000" debido a esto. Te lo contamos... [Más]

Las 10 herramientas más importantes para orquestación de contenedores Docker

Los contenedores son tan ligeros y flexibles que han dado lugar a nuevas arquitecturas de aplicaciones. Este nuevo enfoque consiste en empaquetar los diferentes servicios que constituyen una aplicación en contendedores separados, y luego desplegar esos contenedores a través de un clúster de máquinas físicas o virtuales. Esto lleva a la necesidad de "orquestar" los contenedores, que forman una aplicación, es decir, automatizar el despliegue, la gestión, el escalado, la interconexión y la disponibilidad de todos esos contenedores. En este artículo te presentamos los 10 mejores y más conocidos. [Más]