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

¿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]

Cómo concatenar subconsultas en un solo campo con SQL Server

Una situación típica pero complicada de resolver es cuando tenemos registros en una base de datos que están relacionados con varios registros de otra tabla y lo que necesitamos es obtenerlos todos juntos, en un solo campo, en lugar de obtener un montón de filas con el mismo dato de origen repetido. Suena complicado, pero se entiende mejor con un ejemplo. imagina, por ejemplo, un producto que está en varias categorías, un post en un sistema de blogs que tiene asignadas varias etiquetas, y en general cualquier relación uno-a-muchos. Si quieres sacar toda esa información junta, en una cadena de texto lista para usar puede que no sepas ni por dónde empezar. En SQL Server hay una técnica muy útil para conseguirlo que es la que te vamos a explicar en este (largo) artículo... [Más]

¿Qué es la máquina virtual de Java o Java Virtual Machine?

Los lenguajes de programación de alto nivel como C, C++, Java o Python, por citar unos pocos, sirven para comunicarse con una computadora mediante algo más fácil de entender para un humano que el "lenguaje máquina" o el lenguaje ensamblador, que está muy cercano a la máquina. Estos lenguajes se llaman "de alto nivel" porque están en un nivel de abstracción mucho mayor que el que ofrece un ordenador: tienen bucles, condicionales, matrices, tipos de datos... Tradicionalmente, el compilador de un lenguaje de alto nivel se encargaba de traducir ese lenguaje "sencillo" en lenguaje máquina, directamente utilizable por el computador a través del sistema operativo. Sin embargo Java, C# y muchos otros lenguajes modernos usan otra técnica para conseguir ciertos beneficios. En este artículo te contamos cómo funciona y cómo se implementa en el caso concreto del lenguaje Java. [Más]

Webpack: qué es, para qué sirve y sus ventajas e inconvenientes

Si trabajas en desarrollo web, entonces casi seguro que has escuchado hablar de Webpack. Esta útil herramienta se vende como un "bundler", una herramienta capaz de empaquetar varios módulos JavaScript en un solo archivo .js para optimizar las descargas. Pero lo cierto es que es muchísimo más que eso. Es tan potente que hoy en día ha sustituido por completo a otras herramientas tradicionales de desarrollo web Front-End como Bower, Gulp o Grunt, e incluso a servidores web de desarrollo. En este artículo te explicamos qué es, para qué se usa y cuáles son sus ventajas e inconvenientes. [Más]