All posts by jmalarcon
Men? de navegaci?nMen?
Categorías

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

FRIKADAS: Ofuscación extrema de código JavaScript con JSFuck

Hace unos meses os hablábamos aquí mismo de los lenguajes esotéricos. Estos lenguajes se caracterizan por ser súper-crípticos, es decir, incluso teniendo el código delante es casi imposible saber qué hacen. Uno de los más famosos es BrainFuck, que se caracteriza por utilizar tan solo unos pocos símbolos como el mayor (>), menor (<) la suma (+), etc... Inspirándose en BrainFuck, el programador alemán Martin Kleppe ha creado el lenguaje JSFuck. Aquí te explicamos en qué consiste y cómo funciona por debajo. Una frikada antológica... [Más]

¿Cuál es la diferencia entre final, finalize y finally en Java? (y sus equivalentes en C#)

Aunque estas palabras clave no tienen nada que ver entre sí, dado que se parecen mucho, a veces puede resultar complicado para los principiantes saber para qué sirve cada una. Para evitar que esto te ocurra y que puedas tener estar referencia a mano por si la necesitas, a continuación te hacemos un resumen de su utilidad con un ejemplo de uso de cada una... [Más]

VÍDEO: Cómo exportar una base de datos SQL Server a un script (incluyendo los datos)

Existen muchas maneras de poder enviar una base de datos de un servidor SQLServer a otro. Puedes hacer un backup, puedes desvincular la base de datos y copiar los archivos .mdf y .log para copiarlos y transportarlos hasta el otro servidor... Pero una de las maneras más sencillas y universales es generar un script de T-SQL que reconstruya la base de datos en cualquier lado. Esto te permite copiar la información en un formato manejable (al fin y al cabo es solo texto), poder retocar cualquier cosa si lo necesitas, y no da problemas por diferencias en el almacenamiento binario entre una versión y otra de SQL Server... [Más]

Boxing y UnBoxing de variables ¿Qué significa?

Un efecto importante a tener en cuenta a la hora de usar los tipos por valor, es el conocido como Boxing. Éste consiste en que el compilador se ve forzado a convertir un tipo por valor en un tipo por referencia, y por tanto a almacenarlo en el montón en lugar de en la pila.
Esto tiene importantes consecuencias en el rendimiento y en el consumo y gestión de memoria. Vamos a estudiar en qué consiste este efecto y cuáles son estos efectos. [Más]

Qué son los tipos por valor y por referencia en .NET y C#

Este es un concepto clave para programar y al mismo tiempo uno de los que más le cuesta entender a los principiantes, así que vamos a intentar explicarlo lo mejor posible a continuación. Antes de empezar, necesitamos comprender dos conceptos importantes que paso a resumir de manera sencilla: La pila o “stack”: es una zona de memoria reservada para almacenar información de uso inmediato por parte del hilo de ejecución actual del programa. Por ejemplo, cuando se llama a una función se reserva un bloque en la parte superior de esta zona de memoria (de la pila) para almacenar los parámetros y demás variables de ámbito local. Cuando se llama a la siguiente función este espacio se “libera” (en el sentido de que ya no queda reservado) y puede ser utilizado por la nueva función. Es por esto que si hacemos demasiadas llamadas anidadas a funcione... [Más]

Ghost Browser: múltiples sesiones con un solo navegador

Una de las cuestiones de los navegadores modernos que más me molesta es que conservan las sesiones entre todas sus instancias. Es decir, si abres un navegador y entras con unas credenciales en un determinado servicio de la Web pero al mismo tiempo quieres entrar desde otra pestaña o ventana al mismo servicio con otras credenciales diferentes, tendrías muy pocas opciones. Con GhostBrowser esto se acabó... [Más]

GAMBADAS: Los tres principales pecados al gestionar errores y excepciones

La gestión de excepciones es una de las cosas más comunes y sencillas que realiza cualquier desarrollador. Se trata de prever y gestionar los posibles problemas que puedan surgir durante la ejecución de nuestro programa, de modo que sea más robusto al saber "reaccionar" de la manera adecuada. Incluso cuando se producen excepciones que no habíamos tenido en cuenta hay que tener un "Plan B" para gestionarlas y evitar que la aplicación rompa. Pero ni siquiera en este caso es admisible el primero de los errores típicos que vamos a comentar a continuación... [Más]

Cómo leer y escribir archivos de texto con .NET

Uno de los objetivos de cualquier plataforma de programación es ofrecer servicios de bajo nivel para tareas comunes que cualquier programador pueda necesitar. Es decir, nos evita "reinventar la rueda" todo el tiempo, proporcionándonos cientos de tareas y utilidades ya hechas. Gracias a ello, tareas como la que nos ocupan (y otras muchísimo más complejas) son extremadamente fáciles. En este caso, para leer y escribir archivos de texto a disco podemos utilizar las clases StreamReader y StreamWriter respectivamente. Vamos a verlo... [Más]

Angular 2: versión final ya disponible y qué esperar de ella

Hace casi exactamente dos años, en el evento NG-Europe 2014, el quipo de Angular soltó el bombazo: estaban trabajando en un nuevo framework, escrito desde cero, que iba a sustituir a Angular JS. Ahora, por fin, 24 meses después (y unos pocos más de trabajo interno en secreto), presentan la versión definitiva de Angular 2. te contamos qué esperar de AngularJs y de Angular 2 para los próximos meses. [Más]

TRUCO: Consola interactiva de C# en Visual Studio 2015

Hace poco os hablábamos de la existencia de un REPL para el lenguaje C# que nos puede ayudar mucho a la hora de hacer pruebas rápidas de código. Es una herramienta muy útil, pero a veces puede que no sea suficiente. En ocasiones es posible que las pruebas de concepto rápidas las queramos hacer dentro de Visual Studio, sin necesidad de abrir otra herramienta y conocer sus particularidades, y además es posible que las pruebas solo tenga sentido hacerlas dentro del contexto del proyecto en el que estamos trabajando. Si utilizas Visual Studio 2015 estás de enhorabuena. Desde la Update 1 de esta versión del entorno disponemos de una herramienta REPL integrada en el propio IDE. Lo que ocurre es que está un tanto oculta y muchos programadores no la conocen. Como veremos enseguida, aparte de ser muy útil como cualquier REPL, añade algunas características especialmente interesantes. [Más]