JSP Incompleto

Me ha tocado recientemente modificar código en Java y con esto incluidos los JSP. Uno de los problemas con los que me he topado es que si hay algún error en el código de JSP no hay ningún error en los logs lo que dificulta encontrar la falla. Les comparto este simple snippet para que lo guarden, en JSP también se pueden cachar excepciones, por lo que pueden enviar el error a log y así poder resolver el problema más rápidamente:
Continuar leyendo “JSP Incompleto”

Node.js – Entendiendo la programación orientada a eventos

En lo personal se me ha hecho difícil entender la programación orientada a eventos en especial los conceptos de I/O bloqueado y no bloqueado, ahora que los entiendo se que es lo que hace a Node.js diferente y por que la gente habla tanto de el, lo explicaré con dos analogías que se usan en la vida real.

Continuar leyendo “Node.js – Entendiendo la programación orientada a eventos”

Cómo explicarle a un niño de 6 años los Closures de Javascript

Recordando una clase de programación que tuve en la escuela, donde me era complicado explicar el tema a alguien que no sabía programación, llegué a esta respuesta en StackOverflow de como una gran imaginación puede ayudar a explicar cosas complicadas hasta a niños pequeños, les dejo la respuesta:

Había una vez:

Una princesa…

function princess() {

Ella vivía en un mundo maravilloso lleno de aventuras. Ahí conoció a un carismático príncipe, montó sobre un unicornio todo el mundo, combatió dragones, platicó con animales y realizó muchas otras cosas fantásticas.

    var adventures = [];

    function princeCharming() { /* ... */ }

    var unicorn = { /* ... */ },
        dragons = [ /* ... */ ],
        squirrel = "Hello!";

Pero ella tiene que regresar siempre a su aburrido mundo lleno de rutinas y “adultos”.

    return {

Y ella casi siempre les platicaba sobre sus fantásticas aventuras como princesa.

        story: function() {
              return adventures[adventures.length - 1];
        }
    };
}

Pero todo lo que ellos ven es a una pequeña niña…

var littleGirl = princess();

… que cuenta historias sobre magia y fantasía.

littleGirl.story();

Y aunque los adultos conozcan a las verdaderas princesas, ellos nunca creerán en los unicornios y dragones por que ellos nunca los podrán ver. Los adultos dicen que ellos solo existen dentro de la imaginación de la niña.

Pero nosotros conocemos la verdad: que la pequeña niña con la princesa dentro…

… es realmente una princesa con una pequeña niña dentro de ella.

 

Firebird y VB.Net

En este post les hablaré un poco sobre la relación de estos dos elementos que aunque muchas cosas vienen en el Intenet, no deja de ser una ayuda encontrar todo junto.

Hablamos de Firebird refiriéndonos a la Base de datos Open Source <http://www.firebirdsql.org/> y su conector para .Net <http://www.firebirdsql.org/en/net-provider/>

La instalación del servidor de bases de datos se debe adaptar a tus necesidades, es decir si lo quieres en el sabor Classic, SuperClassic o SuperServer, las diferencias están muy bien marcadas en la página de Firebird.
La instalación del componente es igual de sencilla, solo es cuestión de descargarla e instalar. Continuar leyendo “Firebird y VB.Net”

Instalar QT en Windows usando NetBeans

Para correr Qt en Windows refiriéndome a la versión SDK que usa Mingw es necesario instalar Msys, el cual nos proporcionará el comando “make” que hace falta en la versión Mingw que contiene el paquete Qt SDK.

Estando seguros de que tenemos instalados los paquetes hay que agregar las rutas al PATH de Windows, esto se realiza en las Propiedades del Sistema –> Avanzadas –> Variables de Entorno.

Para ejemplo usaré las siguientes versiones con sus PATHs por default:

  • Qt –> Versión 2010.01 –> Path: C:\Qt\2010.01\qt\bin
  • Mingw –> Versión (La incluida en el paquete de Qt) –> Path: C:\Qt\2010.01\mingw\bin
  • Msys –> Versión 1.0 –> Path: C:\msys\1.0\bin

En este caso, las rutas que tienen que agregar al PATH de Windows son las anteriores:

C:\Qt\2010.01\qt\bin;C:\Qt\2010.01\mingw\bin;C:\msys\1.0\bin;

Ahora, al abrir NetBeans y estando habilitado el paquete C++, en la barra de Herramientas, Opciones, y en la Pestaña C++, se les debió haber configurado las rutas por default, si este no es su caso, creen un nuevo entorno con el botón Add, y seleccionen la ruta del Mingw donde se les agregarán los programas por defecto. En mi caso, quedó configurado con las siguientes rutas:

QtPathsNetbeans

Saludos