Menú de navegaciónMenú
Categorías

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

1043 artículos publicados

Cómo eliminar el último commit de Git en el repositorio de origen (p.ej Github)

El objetivo principal de trabajar con un sistema de control de código fuente como Git es, por supuesto, mantener un histórico fiel e inalterado de todas las etapas por las que ha ido pasando el código fuente de un proyecto. Sin embargo, a veces, podemos añadir algo a esta historia que no pretendíamos añadir. Por ejemplo, hacemos un commit sin querer, metemos archivos de más o de menos, o va con un bug vergonzoso que no queremos que nadie vea y que se nos ha colado... Por regla general no deberíamos modificar la historia salvo que sea estrictamente necesario, pero ¡hey!, estas cosas pasan, así que deberíamos poder arreglarlo. En este artículo vamos a ver cómo conseguirlo... [Más]

Entity Framework: Code First, Database First y Model First ¿En qué consiste cada uno?

Entity Framework es el ORM (Object-Relational Mapper) de Microsoft, con versiones tanto para la plataforma .NET "tradicional" como para .NET Core, con capacidades muy diferentes en cada caso. Entity Framework nos ofrece diversas maneras de trabajar con los datos desde nuestros programas. Cada una tiene un enfoque diferente y es interesante para ciertos casos concretos, además de tener sus beneficios y problemas. Vamos a dar un repaso rápido a los modos de trabajo principales de Entity Framework para ver en qué consisten y sus ventajas e inconvenientes. Además las capacidades de Entity Framework en .NET "tradicional" (EF6) y en .NET Core (EF Core) son completamente diferentes y veremos también en qué consisten. [Más]

TRUCO: Actualizar a la última las versiones de dependencias npm en package.json

Los paquetes npm que vamos añadiendo a nuestros desarrollos se almacenan en el archivo package.json, ubicado en la carpeta raíz de nuestro proyecto. Por regla general se añaden con una configuración conservadora que permite la actualización de versiones menores, pero impide la de versiones mayores que rompan la compatibilidad. Si queremos forzar la actualización de todos los paquetes a lo último y que eso se vea reflejado en el archivo package.json, podemos hacerlo a mano pero en proyectos grandes puede ser muy laborioso. Vamos a ver una manera de conseguirlo de forma automatizada. [Más]

¿Qué es un ORM?

Tradicionalmente, para realizar acceso a datos desde un lenguaje orientado a objetos (POO) como pueden ser .NET o Java, era necesario mezclar código y conceptos muy diferentes. Estas diferencias entre conceptos, tipos de datos, y modos de trabajar pueden causar muchos problemas de lo que se dio en llamar "desfase de impedancia". El concepto se refiere a la dificultad para hacer fluir la información entre la base de datos y las diferentes capas del programa en función de la diferencia existente entre cada una de estas partes. Este desfase de impedancia hace que pueda llegar a ser muy complicado trabajar contra una base de datos desde un lenguaje POO si queremos sacar partido a los conceptos habituales que usamos en éstos, y huir de bibliotecas de funciones que nos fuerzan a trabajar con los conceptos de la base de datos. En este artículo vamos a ver cuáles son estos problemas y qué es lo que nos permite disminuir esta impedancia (o sea, un ORM), sus ventajas e inconvenientes y cuáles hay para las diferentes plataformas. [Más]

HTML5: ¿Cuál es la forma correcta de poner negritas? ¿strong, b o "font-weight"?

Esto puede parecer una pregunta básica y tonta, sin apenas importancia. Pero en realidad tiene más fondo del que pueda parecer... Tradicionalmente en HTML, si queríamos poner un texto resaltado y que se viese en negrita, la forma de hacerlo era simplemente usando la etiqueta b. La cosa era muy sencilla. Sin embargo, en HTML5 tenemos muchas más opciones que parecen equivalentes. Podemos utilizar también la etiqueta strong, la etiqueta em o la propiedad CSS font-weight aplicada a una etiqueta que envuelva el texto que queremos en negrita. Realmente ¿no es todo lo mismo? ¿Existe una forma más correcta de hacerlo que otras? Pues lo cierto es que no es todo igual. Cada una tiene sus aplicaciones y sus implicaciones, por lo que no es correcto usarlas indistintamente. Vamos a verlo... [Más]

GAMBADAS: La alerta nuclear de Hawái y malas prácticas de desarrollo y de seguridad

Seguro que te enteraste, porque salió en todos los medios del mundo, pero por si acaso: el pasado sábado día 13 de enero miles de hogares en las islas de Hawái se despertaron a las 8 de la mañana con una alerta de ataque nuclear desde Corea del Norte. Fue la metedura de pata de una persona, pero en este artículo nos preguntamos si realmente fue culpa de él o quizá la responsabilidad es de los que diseñaron y construyeron el sistema informático que hay detrás. De este episodio se pueden obtener enseñanzas interesantes para el desarrollo de cualquier sistema crítico. [Más]

7 mitos sobre tiempo y horas que muchos programadores se creen (y que son mentira)

Una de las cosas más habituales que hay que hacer en cualquier aplicación es gestionar datos relativos a fechas y horas. Sin embargo, existen muchos pequeños detalles que debemos tener en cuenta cuando manejamos datos de este tipo en nuestro código. Muchos de estos detalles se nos escapan a veces o directamente puede que no los conozcamos. Vamos a repasar a continuación algunos mitos y falsedades sobre el tiempo y las horas que muchos programadores desconocen pero que deberían saber. Puede que algunos los tengas claros, pero seguro que otros te sorprenden... [Más]

Cómo leer y escribir archivos CSV con Java

Una situación muy habitual en cualquier aplicación consiste en la necesidad de leer y escribir archivos con valores separados por comas (CSV, de su nombre en inglés: Comma Separated Values). Como su propio nombre indica, un archivo CSV consiste en una serie de valores separados por comas, y se usan constantemente para compartir información entre diferentes sistemas de una forma muy neutra. Aunque es posible leerlos y escribirlos "a pelo" con Java como cualquier archivo de texto, vamos a descubrir la mejor forma de hacerlo... [Más]

SQL Server: Cómo anular temporalmente un campo auto-numérico

Toda tabla de una base de datos debería disponer de **una clave primaria**. Esta clave primaria identifica de manera única a cualquier registro dentro de dicha tabla. Una forma muy habitual de crear una clave primaria es utilizando **un campo numérico auto-incrementado**, también llamado simplemente **"auto-numérico"**. El típico campo "Id" que se traduce en nombres de campo de tipo `idEntidad`. Cada vez que insertemos un nuevo registro la base de datos se encarga de manera automática de asignarle un valor e ir incrementándolo a medida que se añaden más datos. Pero ¿qué pasa si necesitamos desactivar esta funcionalidad momentáneamente, por ejemplo para restaurar datos que se han perdido? En este artículo te contamos cómo lograrlo... [Más]

FRIKADAS: Versiones Open Source de cientos de juegos clásicos

Los años comprendidos entre el lanzamiento de Space Invaders en 1978, y la aparición de las primeras consolas modernas, a finales de los '80, marcaron la que se conoce como la Edad de Oro de los Video-Juegos. No es de extrañar que muchos de los que crecimos en los años '80 sigamos enamorados de los juegos de entonces, y los juegos actuales, a pesar de su espectacularidad, no nos enganchen de la misma manera. Si tienes adición a los 8 bits y además programas, esto te va a interesar... [Más]