domingo, 8 de enero de 2012

Node.js


 





Hola hoy compartiré un fenómeno que esta ocurriendo en la web y de pronto muchos desarrolladores web ya están poniendo su atención el en lenguaje de programación al lado del servidor que curiosamente funciona con JAVASCRIPT y no con cualquier compilador de javascript, utiliza el motor de compilación de javascript que utiliza Google Chrome javascript v8 estoy hablando de Node.js, les contare algunas de las características que hacen de este lenguaje un lenguaje que hay puesto sus miradas en el y las ventajas que nos trae en el mundo de la web.

CARACTERÍSTICAS Y VENTAJAS
  •  A diferencia de Apache que crea un hilo de proceso por cada cliente que pida datos al servidor, Node.js crea solo un hilo de procesos para todos los clientes lo que hace que el servidor soporte muchas mas conexiones.
  • Es OpenSource.
  • No hay necesidad de Ajax para poder mantener una conexión asincronica con el servidor, gracias a los websockets de html5 y para otros exploradores viejos "IE8-" con polyfills.
  • Por lo anterior podemos hacer Chats o aplicaciones web con multiples usuarios de una manera impresinante ejemplos de aplicaciones que usen esto pues, Facebook, Google Plus, Gmail, etc...
  • ya no hay problemas cuando vas a realizar una aplicacion web y tienes que programar en dos lenguajes una para el servidor y otra para el cliente y hacer doble trabajo, con Node.js hay cliente-servidor son  dos gotas de agua totalmente iguales hay transparencia total.
Lo unico malo es que si quieres probar node.js remotamente necesitas instalar node.js en un servidor dedicado el cual tu puedas manipular. Ademas como dice freddy Vega (@freddier en el twitter) de mejorando la web "si ustedes son adultos y tienen trabajo, que les cuesta comprar un servidor para hacer experimentos?".

Si respondieron que solo quieren probar pero que el servidor dedicado tal vez lo comprarían mas adelante ya hay servicios que ofrecen el hosting gratuito en node.js:



Existen aplicaciones creadas para Node.js que son interesantes y ayudan mucho a los desarrolladores:

  • Jade: Un proyecto interesante con el cual puedes tratar el html con otra sintaxis no como etiquetas.
  • Stylus: Con este puedes tratar el css con otra sintaxis y totalmente compatible con todos los navegadores.
  • Coffescript: Con este puedes tratar el javascript con otra sintaxis y totalmente compatible con todos los navegadores.
  • Socket.io: Es un muy buen famework de Node.js y hay que instalarlo tanto en el servidor como en el cliente (mediante la inclución de un .js).

ENLACES  RECOMENDABLES



sábado, 7 de enero de 2012

Factorial recursivo en Java

Este es un metodo de un algoritmo recursivo que calcula el factorial:


   int factorial(int n){
      if(n==0) return 1;   //AXIOMA
      else return n*factorial(n-1);  //FORMULA RECURSIVA
   } 

Recursividad directa: cuando un método P contiene dentro de si un llamado a si mismo.

Recursividad indirecta: cuando un método  contiene dentro de si un llamado a otro método Q que contiene llamados (directos o indirectos) a P.

Variables locales

Si un método recursivo utiliza variables locales, estas serán creadas para cada invocación del método. Las variables locales (y sus valores) serán visibles sólo en la correspondiente invocación (cada invocación del procedimiento tiene su propia área de datos).
Cada invocación a un procedimiento requiere de cierto  espacio de memoria, el que sólo es liberado al terminar la ejecución de éste. El espacio de memoria disponible es limitado.
Los métodos recursivos son normalmente más lentos y consumen más memoria que sus equivalentes no recursivos.

Fuente: Franco Guidi Polanco