May 21

nxtCon el pasar de los años la compañia Lego ha presentado una gran cantidad de kits de construccion los cuales pueden dividirse en tres categorias: La primera generacion compuesta por los populares bloques de construccion que al estilo del estralandia o el armotodo permitian crear objetos estaticos como edificios, aunque algunos kits contenian ruedas que permitian construir carros y trenes, la segunda generacion llamada Technics permitia construir elementos mas sofisticados que incluian movimiento gracias motores y elementos neumatico; con la intruduccion del ladrillo (Brick) programable desarrollado en el MIT se abre la posibilidad de construir elementos con sensores y actuadores que sean programables, permitiendo la construccion de robots utilizando el tipo de piezas Technics.

La primera version del ladrillo programable se conocio como el sistema de invencion robotica (Robotics Invention System RIS) lanzada en 1998, la cual tenia un costo de $US200 y consistia en un conjunto de 717 piezas que incluian piezas de construccion tipo Technics, motores, sensores, ruedas dentadas y el ladrillo programable llamado RCX que incluye un microprocesador. En el 2006 una nueva version del kit fue lanzada por lego la cual se llamo Lego Mindstorms NXT que incluye tres servo motores y cuatro sensores (luz, sonido, distancia,toque).

La programación del bloque puede realizarse en el caso de programas muy simples directamente desde el menú del ladrillo, para desarrollar programas mas complejos se puede realizar con el software suministrado en el mismo kit que permite programar visualmente gracias a que esta basado en LabView. Actualmente tambien es posible programar el ladrillo en un sinnumero de programas y plataformas adicionales como Java, .NET, Python entre otras.

Enlaces :

Tagged with:



En May 21 de 2009, Marlon J. Manrique escribió acerca de Lego Mindstorms.
May 12

soapui-logoActualmente cuando se desarrollan servicios web es posible probarlos gracias a que los ambientes de desarrollo crean paginas asociadas con cada uno de los metodos del webservice que permiten hacer las invocacion de los servicios directamente para comprobar su funcionamiento, esto sucede con plataformas como Visual Studio y NetBeans, pero no existen por ejemplo para servicios web creados con PHP que soporten WSDL. Estas paginas de prueba tampoco estan disponibles en los servicios web cuando estan en produccion lo que no permiten identificar y probar de manera rapida la funcionalidad de los webservices.

soapUI de eviware es una herramienta que permite rapidamente a traves de una interface grafica, obtener informacion de los webservices, realizar llamados generando las peticiones para cada metodo del webservice y visualizando las respuestas enviadas por el servidor, permitiendo rapidamente identificar las operaciones asociadas con el webservice y permitiendo hacer pruebas rapidamente del funcionamiento de los webservices sin necesidad de recurrir a escribir codigo para crear clientes que consuman los webservices.

soapUI es una de las herramientas que todo desarrollador web debe tener en su arsenal y esta disponible en una version gratuita que puede ser descargada o ejecutada desde el sitio utilizando Java Web Start, para lo cual necesitamos instalar el JRE de Java o tambien una version Pro con caracteristicas avanzadas para aquellos desarrolladores que necesitan herramientas mas potentes. soapUI incluye en sus versiones actuales soporte para servicios web REST, pruebas funcionales y simulacion de webservices.

Para ilustrar su uso, lo utilizaremos para consumir el webservice de Calculadora creado en Java del cual se hablo en una entrada anterior del blog : Publicar Web Service en Java sin Servidor Web

soapui_calculadora

Requisitos :

  • Tener instalado Java

Pasos :

  • Ir a la pagina oficial de soapUI
    http://www.soapui.org
  • Buscar el boton WebStart Now ! o ir al siguiente enlace para ejecutar la version 2.5.1 :
    http://www.soapui.org/jnlp/2.5.1/soapui.jnlp
  • Esto ejecuta el Java Web Start encargado de instalar la aplicacion en el computador
  • Puede tardar algunos minutos, deacuerdo a la velocidad de acceso a Internet
  • Ir al menu File y seleccionar la opcion New soapUI Project
  • Suministrar la siguiente informacion :
    Project Name : Calculadora
    Initial WSDL/WADL : http://localhost:4444/CalculadoraService?wsdl
  • Habilitar la opcion :
    Create sample request for all operations
  • Pulsar el boton Ok
  • En el navegador ir al item sumar y doble click
  • Click en Request1
  • Suministrar los valores de los argumentos a enviar a la suma
  • Pulsar boton verde en la ventana del request para ejecutar el llamado
  • La respuesta se visualiza en la otra parte de la ventana con el resultado de la suma

Enlaces :

Tagged with:



En May 12 de 2009, Marlon J. Manrique escribió acerca de soapUI : Herramienta para pruebas de WebServices.
May 11

windows-7-logoCon la salida del Release Candidate del Windows 7, me dio de nuevo por instalarlo en un portatil Dell Vostro 1400 con las siguientes características : Vostro 1400, Intel Core 2 Duo T7500, 2.2GHz, 800Mhz, 4MB L2 Cache, 128MB NVIDIA GEFORCE 8400M GS

Inicialmente se probo la version a 64 bits del sistema opertivo gracias a que el procesador soporta las arquitecturas de 32 y 64 bits y aunque los drivers de video, sonido funcionaron bien el gasto de memoria es mayor al de la version 32 bits y no se ecnontraron versiones de todos los programas a utilizar a 64 bits, por tal motivo se instalo la version a 32 bits.

Despues de descargar la version RC de Windows 7 se quemo un DVD para realizar la instalacion, la cual duro unos 30 minutos durante la cual el sistema reconocio la tarjeta de red inalambrica y se activo el acceso a una red, al iniciar el sistema por primera vez se noto que los parlantes no funcionaban, como tampoco el scroll del touchpad por lo que se procedio a instalar los drivers de sonido y del touchpad desde el sitio oficial de Del y se utilizaron los drivers para Windows Vista 32-bits

Drivers para el Dell Vostro 1400

Los drivers de la tarjeta de video no fueron necesarios de descargar puesto que despues de la primera actulizacion del sistema operativo, este descargo los drivers y los instalo correctamente.

Se realizo la prueba de desempeño de Windows para el equipo dando como valor minimo de 3.8 en el manejo de los graficos con Aero, pero con un promedio de 5.2 para los demas valores, cabe recordar que la escala va de 1.0 a 7.9 por lo que estos valores son buenos.

vostro1400_win7_performance

Enlaces :

Tagged with:



En May 11 de 2009, Marlon J. Manrique escribió acerca de Instalando Windows 7 RC en Dell Vostro 1400.
May 11

Windows 7 a 32 Bits

Despues de instalar la version de 64 bits de Windows 7 RC, con la cual tuve algunos problemas con aplicaciones que no encontre a 64 bits y que me toco instalar a 32 bits y luego de darme cuenta que otras aplicaciones en las que trabajo no se ejecutaban muy bien y que el sistema con solo iniciarlo estaba utilizando 690 MB de RAM, tome la decision de volver a la version de 32 bits, asi que descargue el Windows 7 RC a 32 bits el cual ocupa 2.4 GB y el cual ya tengo instalado en mi portatil.

Al iniciar el sistema con la version de 32 bits el uso de la RAM llega a 520 MB, 170 MB menos que la version de 64 bits y todas las aplicaciones que necesito, incluyendo los drivers funcionan perfectamente con este RC (en la version anterior molestaba el driver para el lector de tarjetas SD), asi que continuare cacharriandole a esta version de Windows que me parece que anda muy bien.

Enlaces :

Tagged with:



En May 11 de 2009, Marlon J. Manrique escribió acerca de Volviendo a Windows 7 de 32 bits.
May 09

resin_logoEs posible ejecutar un servicio creado en PHP con NuSOAP en el servidor de aplicaciones escrito en Java Resin, esto permite crear webservices que pueden ser alojados en servidores como Apache2 con soporte para PHP, como tambien servidores Java como el GlassFish.

Para que los webservices funcionen es necesario instalar una version igual o superior a la 3.2.1 la cual instalamos en el anterior post (enlace), como tambien realizar un pequeño cambio en el sel codigo (enlace) Servidor donde se reemplaza la lectura de datos via RAW por una lectura de la entrada de datos php://input, quedando de la siguiente forma el archivo servicio.php

 
<?php
	require_once('nusoap.php');
	require_once('sumar.php');
 
	$server = new nusoap_server();
	$server->register('sumar');
 
	$HTTP_RAW_POST_DATA = file_get_contents("php://input");
	$server->service($HTTP_RAW_POST_DATA);
?>
 

De esta forma es posible ejecutar el servicio web encualquier plataforma o servidor que soporte Java.

Enlaces :

UA:A [1.3.0_631]
Tagged with:



En May 9 de 2009, Marlon J. Manrique escribió acerca de WebService con NuSOAP en Servidor Resin.
May 09

resin_logoInstalaremos la versión 3.2.1 de Resin, el servidor de aplicaciones Java y PHP de la empresa Caucho Technology sobre el sistema operativo Ubuntu 9.04 con el fin de probar la ejecucion del scriptHola Mundo en PHP. Antes se habia instalado la version 3.1.9 pero esta version en desarrollo provee gran cantidad de mejoras.

Ejecutar Servidor :

  • Abrir una terminal
  • Instalar Java
    sudo apt-get install sun-java6-jdk
  • Descargar una version de Resin
    http://caucho.com/download
  • En este caso descargaremos la version estable 3.2.1 en version GPL
    wget http://caucho.com/download/resin-3.2.1.zip
  • Descomprimimos el archivo
    unzip resin-3.2.1
  • Cambiamos de directorio
    cd resin-3.2.1
  • Ejecutamos el servidor
    java -jar lib/resin.jar start
  • Abrimo el navegador y cargamos la pagina :
    http://localhost:8080
  • Debe mostrar la pagina por defecto del servidor con enlaces para la administración y documentación
    Si no es asi, verifique que no exista ningun servicio ejecutandose en el puerto 8080, como por ejemplo un servidor Tomcat

Crear Script en PHP :

  • Creamos el directorio donde se alojara la el script PHP
    mkdir webapps/hola_php
  • Vamos al directorio
    cd webapps/hola_php
  • Creamos el archivo index.php con el siguiente contenido
    <?php echo "Hola Mundo" ?>
  • Cargamos en el navegador la siguiente direccion :
    http://localhost:8080/hola_php
  • Debe mostrarnos una pagina con el texto : Hola Mundo

Detener el Servidor :

  • Ir al directorio raiz del Resin y ejecutar el comando :
    java -jar lib/resin.jar stop

Aunque no es una prueba completa del funcionamiento del soporte del lenguaje PHP en Resin, es el primer paso para comenzar a realizar mas pruebas con scripts mas complejos, frameworks y aplicaciones.

Enlaces :

Tagged with:



En May 9 de 2009, Marlon J. Manrique escribió acerca de Instalacion Resin 3.2.1 en Ubuntu 9.04.
May 09

phpAunque en PHP5 existe una extension para crear servicios web basados en SOAP, algunos servidores donde posiblemente alojemos nuestra aplicacion no tienen habilitada la extension y por tal motivo debemos buscar alternativas para la creacion de los webservices.

En el 2002 Dietrich Ayala escribio una libreria llamada NuSOAP que permite implementar webservices en PHP incluyendo la version 4 y 5, esta libreria es una de las mas populares en la costruccion de servicios web en PHP pues tiene soporte para diferentes versiones de SOAP, como tambien es posible crear servicios web que generen los descriptores de los webservices (WSDL) y soporte de tipos de datos, aunque la implementacion suele complicarse cuando se utilizan estas caracteristicas.

Implementaremos un webservice basado en una funcion llamada sumar de la cual crearemos el webservice y su cliente utilizando NuSOAP, a continuacion se describen los pasos :

  • Abrir una terminal
  • Ir al directorio web donde se creara el servicio
  • Descargar la libreria NuSOAP del repositorio en SourceForge
    http://nusoap.cvs.sourceforge.net/viewvc/nusoap/lib/
  • En este caso descargaremos la version 1.121
    wget http://nusoap.cvs.sourceforge.net/viewvc/*checkout*/nusoap/lib/nusoap.php?revision=1.121

Implementar la Funcion a Utilizar :

  • Utilizando su editor favorito crear un archivo donde se implemente la funcion :
    (utilizaremos una funcion sumar que recibe dos numero y retorna su suma)
  • Crear el archivo sumar.php
 
<?php
        function sumar($x, $y)
        {
                return $x + $y;
        }
?>
 

Implementar el Servicio Web :

  • Utilizando su editor favorito crear un archivo donde se cree el servidor
  • Crear el archivo servicio.php
  • Este incluye la libreria NuSOAP y la funcion creada anteriormente
  • Crea un servidor soap e incluye la funcion
  • Despacha el servicio con la informacion suministrada
 
<?php
        require_once('nusoap.php');
        require_once('sumar.php');
 
        $server = new nusoap_server();
        $server->register('sumar');
 
        $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
        $server->service($HTTP_RAW_POST_DATA);
?>
 
  • Abrir la pagina PHP en su navegador favorito, debe salir en blanco sin reportar errores
    http://<servidor>/<ruta>/servicio.php

Implementar el Cliente :

  • En este caso implementaremos un cliente en el lenguaje PHP para consumir el servicio.
  • Utilizando su editor favorito crear un archivo cliente.php
  • Para realizar el llamado se debe especificar como argumentos el nombre de la fuinciony en un arreglo asociativo, los nombres de las variables con sus respectivos valores
 
<?php
        require_once('nusoap.php');
        $cliente = new nusoap_client('http://<ipServidor>/<ruta>/servicio.php');
        $resultado = $cliente->call('sumar', array('x' => '3', 'y' => 4));
        print_r($resultado);
?>
 
  • Abrir la pagina PHP del cliente en su navegador favorito, debe salir en blanco sin reportar errores
    http://<servidor>/<ruta>/cliente.php

Enlaces :

Tagged with:



En May 9 de 2009, Marlon J. Manrique escribió acerca de WebService en PHP con NuSOAP.
May 09

phpComo siempre no existe dicha completa, hace poco escribi como escribir webservices utilizando PHP, pero desafortunadamente esta extension no esta instalada en todos los servidores, por lo cual se debe buscar una alternativa como NuSOAP de la cual estare escribiendo pronto en el blog.

Para determinar si su servidor tiene la extension soap necesaria para implementar los webservices en PHP, verifique la informacion generada por la funcion phpinfo(), esto se puede hacer de una forma rapida de la siguiente manera :

  • Abrir una terminal
  • Ir a un directorio web
  • Crear el archivo phpinfo.php
  • Escribir el siguiente codigo :
 
<?php
      phpinfo();
?>
 
  • Abrir un navegador

phpinfo_soap

  • Cargar la pagina
    http://<ipServidor>/<ruta>/phpinfo.php
  • Esto visualiza una gran cantidad de informacion sobre la configuracion y version del PHP
  • Busque soap y verifique que Soap Client y Soap Server esta habilitado

Enlaces :

Tagged with:



En May 9 de 2009, Marlon J. Manrique escribió acerca de Verificar Soporte para Soap en PHP.
May 09

windows-7-logoAprovechando que el pasado martes 5 de Mayo de 2009 Microsoft libero el Release Candidate, me di a la tarea de descargar los 3GB que ocupa la version a 64 bit para instalarlo en un portatil Dell Vostro 1400 con procesador Intel Core Duo T7500 que soporta sistemas operativos a 32 y 64 bits.

La instalacion no presento ningun problema, al cabo de unos 30 minutos ya tenia el sistema instalado y la pantalla de inicio que muestra una imagen muy "light" con unas florecitas que no combinan con mi wallpaper. Despues de acceder como usuario, note la primera cosa rara, no emitio sonido alguno, por lo cual verifique que el sonido estuviera habilitado y utilizando unos audifonos pude comprobar que si sonaba, pero los parlantes del portatil no producian sonido, por tal motivo descargue los drivers para el Audio de la pagina de Dell y luego de reiniciar ya tenia sonido.

Inmediatamente despues me di a la tarea de instalar el Firefox que es mi navegador favorito y en el cual instalo un monto de extensiones para mejorar la navegacion, por tal motivo abri el IE y me diriji a la pagina de Firefox sin encontrar la version de 64 bits, busque en otras paginas pero encontre versiones muy viejas asi que finalmente descargue la version de 32 bits y la instale. Esto es posible gracias a que Windows puede ejecutar la mayoria de aplicaciones de 32 sobre el sistema operativo a 64 bits, esto debe ser gracias al WoW64 (Windows-on-Windows 64-bit) que crea un ambiente aparte para las aplicaciones, separando la instalacion de los programas en directorios diferentes : Program Files y Program Files (x86), incluso puede verse que procesos se estan ejecutando a 32 bits con el administrador de tareas.

Después de investigar lo de WoW64, segui con la instalacion de los demas programas : Java Development Kit a 64 bits, Virtual Box 2.2, Flash, Quicktime, para luego continuar con las mas exoticas como Processing y Mobile Processing, donde fue necesario instalar tambien la version a 32 bit del JDK ya que no existen versiones a 64 bits de estos programas. Eso si no me funciono el Java ME SDK 3.0 el kit de desarrollo para aplicaciones moviles en Java y de la mayoria de aplicaciones que instale, pocas tenian la version a 64 Bits.

Al parecer la arquitecura de 64 bits, todavia no es la mas usada en el mercado, por tal motivo muchos drivers y aplicaciones no muy comunes todavia no tienen soporte y no se comportan muy bien cuando se ejecutan sobre el sistema operativo a 64 bits. Me imagino que esto debe degradar el desempeño de las aplicaciones a 32bits y en general utilizar mas recursos del sistema que los que necesitaria utilizando el sistema a 32 Bits.

No se si es algo del Windows 7 RC, pero ahora mi maquina con solo entrar esta utilizando 690 MB de RAM, cuando con la version Beta estaba utilizando 520 MB, por tal motivo y para verificar esto ando descargando la version a 32 bits para comparar el consumo y el desempeño.

Enlaces :

Tagged with:



En May 9 de 2009, Marlon J. Manrique escribió acerca de Instalando Windows 7 a 64 Bits.
May 08

java-sunEn entradas anteriores en el Blog creamos un servicio web en Java sin necesidad de utilizar un servidor como Tomcat o Glassfish para la publicacion del mismo, a continuacion implementaremos un cliente en Java generado por medio del WSDL que describe el servicio web.

Requisitos :

  • Kit de Desarrollo de Java
    En este caso utilizaremos el Java Development Kit 6 update 13
  • Para el ejemplo utilizaremos el Sistema Operativo Ubuntu 9.04

Generar Codigo para el Cliente en Java :

  • Abrir una terminal
  • Ejecutar el comando para generar el cliente del servicio web
    wsimport http://localhost:4444/CalculadoraService?wsdl
  • Esto genera el paquete serviciosweb con las clases necesarias para llamar el web service

Utilizar el Cliente :

  • Crear un archivo Cliente.java con el siguiente codigo :
 
package serviciosweb;
 
public class Cliente
{
        public static void main(String[] args)
        {
                CalculadoraService servicio = new CalculadoraService();
                Calculadora calculadora = servicio.getCalculadoraPort();
 
                System.out.println(calculadora.sumar(3,4));
        }
}
 
  • Java utiliza una clase que representa el servicio completo y un Puerto que implementa los metodos del sevicio, por tal motivo se debe crear el servicio y obtener el puerto para poder consumir el servicio
  • Compilar el cliente :
    javac -d . Cliente.java
  • Ejecutar el Cliente
    java Cliente

Enlaces :

Tagged with:



En May 8 de 2009, Marlon J. Manrique escribió acerca de Cliente de WebService en Java.