Título Introducción a JavaFX javafx.stage.Stage; import javafx.scene.Scene; import...

download Título Introducción a JavaFX javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.paint.Color; ... Tema Desarrollo Autor Blanca Cubas Cruz Mes Octubre Año 2009

If you can't read please download the document

Transcript of Título Introducción a JavaFX javafx.stage.Stage; import javafx.scene.Scene; import...

  • Ttulo Introduccin a JavaFX

    Texto En ste artculo del boletn de septiembre se habl sobre los mashups, para este mes, estaba pensando continuar desarrollndolo mostrando cmo hacer

    un mashup con Yahoo pipes o con Morfeo EzWeb, pero el otro da le

    un artculo muy interesante en el que se creaba un mashup

    con JavaFX Script y pens que era interesante probarlo. Sin embargo, antes

    de empezar a hablar de cmo se puede utilizar JavaFX para crear Mashups,

    es importante conocer de qu se habla cuando este nombre se menciona.

    JavaFX es un framework que present Sun en el JavaOne de 2007 y que

    pretende introducir a Sun en el mercado de las RIAs (Rich Internet

    Application) compitiendo contra Adobe Flex o Microsoft

    SilverLight. Actualmente est en la versin 1.2 y se contemplan dos

    vertientes, la Script y la Mobile, referidas a la ejecucin de JavaFX en

    ordenadores (ya sea como applet dentro del navegador, widget o como un

    aplicacin de escritorio) o en dispositivos mviles (telfonos mviles,

    pdas) respectivamente. Para poder utilizar JavaFX 1.2 se necesita tener

    instalado en el dispositivo en el que se vaya a ejecutar al menos la versin

    1.6.13 de Java. Entre otras cosas, el uso de esta versin aporta que se

    puedan ejecutar applets fuera del navegador, independientemente del mismo,

    lo cual puede ser una gran ventaja en el caso de que uno funcione mal, pues

    el resto de applets de una misma pgina Web podrn seguir ejecutndose.

    Pero, qu ventajas ofrece JavaFX? Por qu se querra utilizar? Algunos

    de los motivos podran ser:

    Perfil comn. JavaFX est basado en el concepto de

    un perfil comn que pretende abarcar todos los

    dispositivos soportados por JavaFX. Este acercamiento hace posible a los desarrolladores usar un modelo

    comn de programacin mientras est construyendo una aplicacin dirigida tanto para dispositivos mviles

    como dispositivos de escritorio y compartir bastante cdigo, recursos grficos y contenido entre las

    versiones de escritorio y mvil. Para tratar la necesidad de ajustar las aplicaciones a las necesidades

    especficas de las clases de dispositivos, desde la

    plataforma JavaFX 1.1 se incluyen APIs que son especficas para escritorio o mvil. Por ejemplo, el

    perfil Desktop de JavaFX incluye Swing y efectos visuales avanzados.

    Arrastrar para instalar. Desde el puto de vista del

    usuario final Drag-to-Install permite arrastrar

    un widget JavaFX o aplicacin residente en un sitio web dentro de la ventana del navegador y soltarlo en

    su escritorio. La aplicacin no perder su estado o contexto incluso si el navegador se cierra. Una

    aplicacin tambin puede volver a ser relanzada clicando en un atajo que se crea automticamente en

    http://www.cesnavarra.net/cesdigital/Lists/Noticias%20CESDigital/DispFormCES.aspx?List=5ec0dfc7-7911-470b-8b6b-71ba72783fdd&ID=127http://www.ibm.com/developerworks/web/library/wa-javafx/index.htmlhttp://en.wikipedia.org/wiki/JavaFXhttp://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicacioneshttp://es.wikipedia.org/wiki/Widget

  • el escritorio del usuario. Este comportamiento est

    permitido por el mecanismo de los applets de Java y es aprovechado por JavaFX usando la capa Java

    subyacente. Sun vende Drag-to-Install como una apertura para un nuevo modelo de distribucin y

    permitiendo a los desarrolladores a desprenderse del

    navegador. Integrar grficos (imgenes) creados con

    herramientas de terceros. JavaFX incluye un conjunto de plug-ins para Adobe Photoshop e

    Illustrator que permiten que grficos avanzados sean integrados directamente en aplicaciones JavaFX. Los

    plug-ins generan cdigo JavaFX Script que preserva capas y estructura de los grficos. Los desarrolladores

    pueden entonces aadir fcilmente animacin o efectos a los grficos estticos importados. Hay

    tambin una herramienta de conversin de grficos SVG (tambin conocido como Media Factory) esto

    permite importar grficos y previsualizar recursos despus de convertirlos al formato JavaFX.

    A la hora de ponerse a escribir cdigo de JavaFX, antes de aprender la

    sintaxis del mismo, es conveniente contar con las herramientas

    adecuadas. En principio es suficiente contar con una herramienta tipo bloc

    de notas que no te enriquece el texto ni aade caracteres extraos y permite

    incluir cualquier tipo de extensin y adems de esto ser necesario

    descargarse el SDK de JavaFX para poder compilar las

    aplicaciones. Desde aqu, se podr descargar tanto el SDK como la ltima

    versin del Entorno de Desarrollo NetBeans con JavaFX o el plug-in para

    el IDE Eclipse. Es recomendable el uso de cualquiera de estos dos entornos

    de desarrollo puesto que ofrecen ventajas frente al hecho de simplemente

    contar con un editor de texto normal. Bsicamente la posibilidad de

    compilar, ejecutar el cdigo o depurarlo o encontrar los fallos del mismo de

    manera ms inmediata.

    Una vez conocidas estas ventajas que ofrece JavaFX para el desarrollo de

    aplicaciones y que ya se sabe con qu podemos desarrollar programas, es

    conveniente comenzar a acercarse al lenguaje. En JavaFX en vez de

    programas se escriben Scripts, es decir, es un lenguaje declarativo de script

    estticamente tipado. Los tipos primitivos que se emplean en Java FX son:

    Boolean: booleanos: java.lang.Boolean,

    Integer: nmeros enteros de 32 bit:

    java.lang.Integer, Number: nmeros en punto flotante con doble

    precisin: java.lang.Double, String: cadenas de caracteres: java.lang.String,

    Duration: se emplea en animaciones:

    http://es.wikipedia.org/wiki/Software_development_kithttp://javafx.com/downloads/windows.jsphttp://es.wikipedia.org/wiki/NetBeanshttp://es.wikipedia.org/wiki/Complemento_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integradohttp://es.wikipedia.org/wiki/Eclipse_(software)

  • java.lang.Duration.

    Aunque al contrario que los tipos primitivos de Java, todos ellos son objetos.

    Como en otros lenguajes de script, el tipo String de JavaFX soporta

    expresiones embebidas de JavaFX empleando llaves ({}). JavaFX adems

    soporta el formateo de expresiones embebidas JavaFX en strings mediante el

    uso de especificadores de formato. JavaFX no soporta Strings multi-lnea

    como otros lenguajes de script lo hacen. Sin embargo, para facilitar la

    representacin de Strings demasiado largos y Strings multi-lnea, JavaFX

    soporta concatenacin de expresiones de String adyacentes.

    Para el tipo Duration, JavaFX soporta literales de tiempo, que son evidentes

    en s mismos en forma y significado, por ejemplo, 1h representa 1 hora, 1s 1

    segundo o 5m 5 minutos. Esto se emplea sobre todo para especificar

    duraciones para los efectos de animacin.

    Por otra parte, en JavaFX se elimina el uso del patrn listener, para ello se

    cuenta con el operador bind que permite que el contenido dinmico pueda

    ser expresado declarativamente. La dependencia se basa en la evaluacin de

    cualquier expresin y en su actualizacin automticamente sin falta de usar

    el patrn listener. As por ejemplo, si queremos hacer la tpica primera

    aplicacin que aparece en todos los cursos de programacin, el Hello

    World!, en JavaFX se deber hacer:

    1. Crear un nuevo proyecto vaco JavaFX con Eclipse o

    NetBeans. 2. Si se desea que el cdigo est dentro de un paquete,

    en Eclipse se deber crear el paquete despus de haber creado el proyecto, en NetBeans no hace falta

    puesto que lo crea directamente al crear el proyecto.

    3. Despus se crear un Empty JavaFX Script. 4. En el script JavaFX se incluir las siguientes lneas de

    cdigo:

    package com.cein.hello; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.paint.LinearGradient; import javafx.scene.paint.Stop; import javafx.scene.shape.Rectangle; import javafx.scene.text.Text; import javafx.scene.text.Font; import javafx.scene.effect.Reflection; /** * @author blacubcru */ Stage { title: "Hello World!!" width: 305;

  • height: 330; visible: true scene: Scene { content: [ Rectangle { x: 25; //Posicin X y: 25; //Posicin Y width: 250; //Anchura del rectngulo height: 250; //Altura del rectngulo // Para redondear las esquinas se

    emplea // arcWidth y arcHeight arcWidth: 25; arcHeight: 25; stroke: Color.BLACK; //Color de borde // Se aade un gradiente lineal al

    rectngulo fill: LinearGradient { startX: 0.0, startY: 0.0, endX: 0.0, endY: 1.0, proportional: true stops: [ Stop { offset: 0.0 color: Color.THISTLE }, Stop { offset: 1.0 color: Color.ORCHID } ] } // fill }, // Rectangle Text { x: 40 y: 150 content: "Hello World!"; font: Font { size:40; name:"DirtyBakersDozen"; }; // Se aade un relleno basado en un

    gradiente // Lineal a la fuente

    fill: LinearGradient { startX: 0.0, startY: 0.0, endX: 1.0, endY: 0.0, proportional: true stops: [ Stop { offset: 0.0 color:

    Color.LIGHTSLATEGREY }, Stop { offset: 1.0 color:

  • Color.STEELBLUE } ] } // fill // (Se aade un reflejo al texto) effect: Reflection { fraction: 1.0, topOpacity: 0.7, topOffset: 5, } } // Text ] // content fill: Color.BLACK; } }

    Y al ejecutarlo esto nos mostrar:

    Figura 1. Aplicacin Hello World en JavaFX

    Para ver el efecto del uso de bind, se modificar la aplicacin para que saque

    Hello X! donde X ser el nombre que se introduzca en un control de texto.

    package com.cein.hello; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.paint.LinearGradient; import javafx.scene.paint.Stop; import javafx.scene.shape.Rectangle; import javafx.scene.text.Text; import javafx.scene.text.Font; import javafx.scene.effect.Reflection; import javafx.scene.control.TextBox; /**

  • * @author blacubcru */ //Variable en la que se recoge el valor del cuadro de texto. var txName:String = bind "Hello {tbInput.text}!"; //Caja de texto en la que se pone el nombre var tbInput:TextBox = TextBox { text:"World"; editable: true; layoutX: 40; layoutY: 230; }; Stage { title: "Hello World Binded!!" width: 305; height: 330; visible: true scene: Scene { content: [ Rectangle { x: 25; //Posicin X y: 25; //Posicin Y width: 250; //Anchura del rectngulo height: 250; //Altura del rectngulo // Para redondear las esquinas se

    emplea // arcWidth y arcHeight arcWidth: 25; arcHeight: 25; stroke: Color.BLACK; //Color de borde // Se aade un gradiente lineal al

    rectngulo fill: LinearGradient { startX: 0.0, startY: 0.0, endX: 0.0, endY: 1.0, proportional: true stops: [ Stop { offset: 0.0 color: Color.THISTLE }, Stop { offset: 1.0 color: Color.ORCHID } ] } // fill }, // Rectangle Text { x: 40 y: 150 // El contenido se liga a la variable

    txName. // Si no se usara bind entonces no

    cambiara // el valor mostrado. content: bind txName;

  • font: Font { size:40; name:"DirtyBakersDozen"; }; // Se aade un relleno basado en un

    gradiente // Lineal a la fuente fill: LinearGradient { startX: 0.0, startY: 0.0, endX: 1.0, endY: 0.0, proportional: true stops: [ Stop { offset: 0.0 color:

    Color.LIGHTSLATEGREY }, Stop { offset: 1.0 color:

    Color.STEELBLUE } ] } // fill // (Se aade un reflejo al texto) effect: Reflection { fraction: 1.0, topOpacity: 0.7, topOffset: 5, }

    }, // Text tbInput //Se incluye el cuadro de texto

    ] // content fill: Color.BLACK; } }

    Y esto da como resultado al ejecutarlo:

  • Figura 2. Aplicacin Hello World Binded en JavaFX

    ENLACES DE INTERS:

    http://javafx.com/

    http://en.wikipedia.org/wiki/JavaFX

    http://es.wikipedia.org/wiki/JavaFX

    http://en.wikipedia.org/wiki/JavaFX_Script

    http://en.wikipedia.org/wiki/JavaFX_Mobile

    http://onjava.com/pub/a/onjava/2007/07/27/introduct

    ion-to-javafx-script.html

    http://www.javaworld.com/javaworld/jw-11-2008/jw-11-jump-into-jfx-1.html

    http://www.javaworld.com/javaworld/jw-12-2008/jw-

    12-jump-into-jfx-2.html

    http://www.javaworld.com/javaworld/jw-02-2009/jw-02-javafx-fights-flash.html

    http://java.sun.com/developer/technicalArticles/javafx/mobile/

    http://java.sun.com/javafx/1/tutorials/core/

    http://www.ibm.com/developerworks/web/library/wa-

    http://javafx.com/http://en.wikipedia.org/wiki/JavaFXhttp://es.wikipedia.org/wiki/JavaFXhttp://en.wikipedia.org/wiki/JavaFX_Scripthttp://en.wikipedia.org/wiki/JavaFX_Mobilehttp://onjava.com/pub/a/onjava/2007/07/27/introduction-to-javafx-script.htmlhttp://onjava.com/pub/a/onjava/2007/07/27/introduction-to-javafx-script.htmlhttp://www.javaworld.com/javaworld/jw-11-2008/jw-11-jump-into-jfx-1.htmlhttp://www.javaworld.com/javaworld/jw-11-2008/jw-11-jump-into-jfx-1.htmlhttp://www.javaworld.com/javaworld/jw-12-2008/jw-12-jump-into-jfx-2.htmlhttp://www.javaworld.com/javaworld/jw-12-2008/jw-12-jump-into-jfx-2.htmlhttp://www.javaworld.com/javaworld/jw-02-2009/jw-02-javafx-fights-flash.htmlhttp://www.javaworld.com/javaworld/jw-02-2009/jw-02-javafx-fights-flash.htmlhttp://java.sun.com/developer/technicalArticles/javafx/mobile/http://java.sun.com/developer/technicalArticles/javafx/mobile/http://java.sun.com/javafx/1/tutorials/core/http://www.ibm.com/developerworks/web/library/wa-javafx/index.html

  • javafx/index.html

    http://javafx.com/docs/tutorials/mediabrowser/module

    3_task1.jsp

    http://arstechnica.com/old/content/2008/12/hands-on-building-rich-internet-apps-with-javafx-1-0.ars

    http://today.java.net/pub/a/today/2009/02/17/javafx-

    http-networking-and-xml-parsing.html

    http://weblogs.java.net/blog/caroljmcdonald/archive/2

    009/02/javafx_restful_1.html

    http://www.javafx.com/samples/Tweeter/index.html

    http://blogs.sun.com/clarkeman/entry/javafx_1_0_another_improvment

    http://www.javapassion.com/javafx/

    http://java.sun.com/javafx/1/reference/system-requirements-1-2.html#javafxsdk

    Categoras

    CES OpenSouce/Java

    Tema Desarrollo

    Autor Blanca Cubas Cruz

    Mes Octubre

    Ao 2009

    Bolet

    n

    10

    Ttulo

    Ejecutando Linux en Windows sin virtualizar

    Texto

    Har unos meses ciertos cambios me llevaron a tomar la decisin de migrar

    mi sistema operativo (Ubuntu) a Windows. No obstante, no deseaba perder el contacto con el sistema operativo Linux,

    as que deseaba encontrar una forma de mantenerlo. Las opciones que tena

    conoca eran: Arranque dual:

    o Pros: no es virtualizado y por tanto, usa toda la capacidad del

    ordenador (a excepcin del disco duro). o Cons: necesidad de arrancar el ordenador en un sistema u otro, de

    forma alterna, no simultnea. Virtualizacin:

    http://javafx.com/docs/tutorials/mediabrowser/module3_task1.jsphttp://javafx.com/docs/tutorials/mediabrowser/module3_task1.jsphttp://arstechnica.com/old/content/2008/12/hands-on-building-rich-internet-apps-with-javafx-1-0.arshttp://arstechnica.com/old/content/2008/12/hands-on-building-rich-internet-apps-with-javafx-1-0.arshttp://today.java.net/pub/a/today/2009/02/17/javafx-http-networking-and-xml-parsing.htmlhttp://today.java.net/pub/a/today/2009/02/17/javafx-http-networking-and-xml-parsing.htmlhttp://weblogs.java.net/blog/caroljmcdonald/archive/2009/02/javafx_restful_1.htmlhttp://weblogs.java.net/blog/caroljmcdonald/archive/2009/02/javafx_restful_1.htmlhttp://www.javafx.com/samples/Tweeter/index.htmlhttp://blogs.sun.com/clarkeman/entry/javafx_1_0_another_improvmenthttp://blogs.sun.com/clarkeman/entry/javafx_1_0_another_improvmenthttp://www.javapassion.com/javafx/http://java.sun.com/javafx/1/reference/system-requirements-1-2.html#javafxsdkhttp://java.sun.com/javafx/1/reference/system-requirements-1-2.html#javafxsdk

  • o Pros: posibilidad de trabajar de forma simultnea en ambos

    sistemas operativos, Linux y Windows. o Cons: comparticin de la potencia del ordenador, y del disco duro.

    Adems, a pesar de poder trabajar de forma simultnea, puede

    resultar incmodo para el da a da. Ninguna me acababa de convencer, hasta que encontr coLinux. Segn su

    pgina web Cooperative Linux is the first working free and open source

    method for optimally running Linux on Microsoft Windows natively. More

    generally, Cooperative Linux (short-named coLinux) is a port of the Linux

    kernel that allows it to run cooperatively alongside another operating system

    on a single machine. For instance, it allows one to freely run Linux on

    Windows 2000/XP/Vista/7, without using a commercial PC virtualization

    software such as VMware, in a way which is much more optimal than using

    any general purpose PC virtualization software En este artculo describir el proceso que segu en su da para

    instalar coLinux, aunque es posible que algunas cosas puedan haber

    cambiado desde entonces. Con posterioridad, descubr andLinux, que mencionar por encima al final

    del artculo. Una herramienta software basada en coLinux con imgenes de

    Ubuntu totalmente pre-configurado con todo lo necesario.

    coLinux 1 Descarga e instalacin Vamos a la pgina de descargas de

    coLinux, http://sourceforge.net/projects/colinux/files/, y obtenemos la

    ltima versin estable del ejecutable coLinux. En su da, la instalacin requera de la herramienta WinPCap ( una utilidad

    para realizar bridge networking en windows). Ahora, parece que la propia

    instalacin lo trae de serie, as que es posible que no sea necesario

    instalarlo a parte. Durante la instalacin, tambin nos da la opcin de descargar una imagen

    de Linux (tan solo la descarga, no configura coLinux para su uso), pero es

    opcional. Siempre podemos descargarnos la imagen de una distribucin

    Linux, comprimida en formato 7z, a nuestra eleccin, desde la misma pgina

    de descargas del proyecto. En realidad, tan solo se trata de un sistema de

    ficheros con un sistema Linux pre-instalado. Siempre podemos partir de un

    sistema de ficheros vaco e instalar la distribucin que queramos, aunque

    esto requierir conocimientos ms avanzados. Yo descargu, por recomendacin, una imagen de debian 4.0. 2- Configuracin La parte ms compleja de configurar y la ms importante, quizs sea las

    conexiones de red. coLinux recomienda configurar dos redes de conexin entre el sistema

    operativo husped (en mi caso Windows) y la imagen coLinux (en mi caso

    http://sourceforge.net/projects/colinux/files/

  • deban). Una para la conexin de coLinux a Internet que le da salida a travs

    de la tarjeta Ethernet. Y otra para la interconexin rpida entre la sistema

    operativo husped y la imagen de coLinux para el servidor grfico, sin el uso

    de la tarjeta Ethernet, y as no sobrecargarla. coLinux ofrece varias opciones de conexin: Tap, WinPCap y Slirp. En mi caso, configur WinPCap para la conexin entre deban e Internet a

    travs de la tarjeta Ethernet por ser la recomendada y la ms sencilla, y TAP

    para la conexin rpida entre debian yWindows. Antes de arrancar la mquina deban para configurar la red, vamos a

    realizar algunos cambios necesarios en la configuracin de las

    conexiones Windows: No es necesario pero modifiqu los nombres de las conexiones para

    poder identificarlas fcilmente. Por defecto, coLinux crea una conexin Tap. Yo establec la siguiente

    red interna debian-Windows: 10.10.10.0/24. Reservando la

    10.10.10.1 para la IP de Windows y 10.10.10.2 para debian. Modificamos las opciones del firewall para que permita todas estas

    conexiones, en caso contrario tendremos que ejecutar coLinux como

    administrador. A continuacin, toca configurar coLinux para que use la imagen descargada,

    debian 4.0. Descomprimimos la imagen dentro del directorio donde se ha instalado

    coLinux. Dentro del directorio de instalacin de coLinux, existe un fichero ejemplo de

    configuracin llamado example.conf que usamos como punto de partida

    para el nuestro. Lo copiamos y le damos el nombre de deban.conf. Editamos el fichero y ajustamos los siguientes parmetros:

    El parmetro cobd define las rutas a las particiones. Se van

    numerando 0,1,2, etc y puede haber tantas como se desee. El parmetro cobd0 es la principal, que debe apuntar al lugar donde

    se encuentra nuestra imagen fs de debian. El parmetro cobd1 es la ruta de la siguiente particin. En nuestro

    caso, ser la swap. Es opcional, y en el caso de la imagen descargada

    de deban, vena sin ella. No obstante, se puede descargar

    desde http://gniarf.nerim.net/colinux/swap. En realidad, son ficheros

    vacios con el tamao de swap que queremos. Posteriormente, una

    vez arrancado coLinux, deberemos configurarlo para que la use. El parmetro eth, establece las conexiones de coLinux. Y al igual que

    en caso anterior, tambin puede haber tantas como se quiera. El parmetro eth0 define la primera conexin. En nuestro caso ser

    la de acceso al mundo exterior, Internet, y ser a travs de WinPCap.

    Debemos proporcionar el nombre indentificativo de la conexin le

    hemos dado en Windows (de ah que las haya renombrado

    anteriormente). Esto es, eth0: winpcap,

    nombre_conexin_windows Con el parmetro eth1 definimos la conexin interna, mediante TAP,

    entre debian y Windows. Por tanto, eth1: tap,

    nombre_conexin_windows.

    http://gniarf.nerim.net/colinux/swap

  • Ahora, ya podemos ejecutar coLinux (si no hemos configurado el firewall,

    tendremos seguramente que hacerlo como administrador) para terminar de

    configurarlo, indicando el fichero de configuracin que hemos definido para

    debian:

    colinux-daemon.exe t nt @debian.conf Segn indican en la wiki de colinux, las contraseas son en blanco para las

    imgenes con kernel 2.4 y root para las imgenes con kernel 2.6. En el

    caso de nuestra imagen deban accedemos como usuario root y contrasea

    root. Una vez dentro, primero configuramos la swap que hemos definido antes:

    Asumimos que la swap est en /dev/cobd1 Aadimos la entrada en /etc/fstab: /dev/cobd1 swap swap defaults 0 0 Inicimos la particin swap con: mkswap /dev/cobd1 Finalmente, para no tener que reiniciar la mquina, ejecutamos: run swapon -a

    A continuacin, seguimos con la configuracin de red:

    Editamos /etc/network/interfaces: auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static ip 10.10.10.2 netmask 255.255.255.0 Y reiniciamos la red: /etc/init.d/network restart

    En principio, la mquina ya est lista. En mi caso, adems instal una serie

    de paquetes adicionales:

    Preparamos el teclado, por defecto en USA, para soportar ms

    idiomas: apt-get install console-data apt-get install console-tools apt-get install kbd Y lo configuramos a nuestro gusto: dpkg-reconfigure console-data

    Ahora, pasamos a realizar el ltimo paso, la comunicacin grfica deban-

    Windows: Instalamos las X en deban para el entorno grfico: apt-get update

  • apt-get install xserver-xfree86 apt-get install xfce4 Hay varios servidores de X en windows para el entorno grfico,

    nosotros instalaremos y usaremos Xming por ser open source y en

    principio el ms sencillo. En Windows establecemos el display donde se visualizarn las

    aplicaciones: SET DISPLAY=10.10.10.1:0.0 En deban exportamos el display al que hemos fijando en Windows: Export DISPLAY=10.10.10.1:0.0 Podemos aadir esta instruccin al /etc/profile para no ejecutarla

    con cada sesin. Por ltimo, en deban, habilitamos la conexin grfica desde cualquier

    mquina, en nuestro caso Windows: Xhost +

    Y estos han sido todos los pasos necesarios, ahora podremos ejecutar

    aplicaciones Linux como si fuesen nativas en Windows sin falta de usar

    ninguna virtualizacin.

    AndLinux No pasar a describir el proceso de instalacin porque, como se puede ver

    en su pgina web, es trivial. En la seccin de downloads, se puede observar que andLinux est preparado

    para funcionar con una versin de escritorio XFCE y con KDE pero no con

    GNOME, aunque con posterioridad no habra ms que instalarla sobre

    Ubuntu si as lo deseamos.

    Dejar que la distribucin vea, pueda leer/escribir, nuestro disco o

    discos. Esta ltima parte no la he comprobado, pero he credo interesante aadirla.

    Consiste en configurar la imagen coLinux para que pueda acceder al disco

    duro de la mquina huesped. Para eso, en nuestro deban.conf debemos aadir lo siguiente:

    Cofs0=c:\ O ejecutar coLinux de la siguiente manera:

    colinux-daemon.exe t nt @debian.conf cofs0=c:\ Por ltimo, en deban, debemos montar esta nueva particin:

    Asumimos que la swap est en /dev/cofs0

  • Creamos el directorio donde vamos a montar el disco: mkdir /mnt/c Aadimos la entrada en /etc/fstab: cofs0 /mnt/c cofs defaults 0 0 O esta otra opcin si queremos dar acceso completo: cofs0:Share /mnt/c cofs defaults 0 0

    Screenshoots

    Aqu podemos ver algunas imgenes bastante ilustrativas de cul sera el

    resultado.

  • Cat

    egoras

    CES OpenSouce/Java

    Tem

    a

    Varios

    Aut

    or

    Ral Sanz de Acedo

    Mes Octubre

    Ao 2009

    Bol

    etn

    10

    Ttulo Para qu necesitan las empresas la supercomputacin?

    Texto Andrs Gmez Tato, del CESGA, en su charla ofrecida durante la Semana Internacional de la Computacin, nos coment cmo las empresas pueden utilizar la supercomputacin y las

    dudas que stas plantean ante dicha tecnologa.

    La supercomputacin se puede utilizar para cualquier cosa

    que se pueda modelizar matemticamente. Por ejemplo se modeliz el mercado inmobiliario en Estados Unidos y Reino

    Unido y se predijo su estallido dos aos antes de que ocurriera.

    Esto implica que hay industrias potenciales usuarias de supercomputacin de sectores como son:

    Aeronutico: simulacin del comportamiento en vuelo

    de los aviones. Automovilstico: simulacin de choques entre

    vehculos. Financiero: anlisis de riesgos. Estudio de situaciones

    en concesin de crditos (qu riesgo tiene una cartera de valores, tus ingresos), simulacin de mercados, comportamiento burstil. Probabilidades de catstrofes

    para la gestin de seguros. Los modelos que manejan los bancos no son pblicos porque en ellos reside su

    ventaja competitiva. Elico y naviero: estudio de la climatologa para la

    ubicacin de parques de molinos o para la navegabilidad de los buques.

    Farmacutico. Electrnico. Ciencias de la vida: simulacin de la respiracin a

    travs de las fosas nasales, por ejemplo.

    http://www.cesga.es/http://www.respuestadigital.es/images/stories/documentos/SIC/andres%20gomez%20cesga.ppthttp://www.respuestadigital.es/index.php?option=com_content&view=article&id=140&Itemid=19http://es.wikipedia.org/wiki/Modelo_matem%C3%A1tico

  • Pero realmente se utiliza la supercomputacin?

    Para ello se sonde en 2004 a 500 empresas de Galicia: el resultado fue que la simulacin numrica era utilizada

    proporcionalmente al tamao de la empresa.

    Un pequea desagradable sorpresa fue que la industria automovilstica, con fuerte presencia en la zona, no haca uso

    de esta tecnologa. La razn es que el diseo de productos no se ubica en Galicia sino slo la produccin.

    El uso que se hace de la supercomputacin es sobre todo en las reas mecnicas y estructurales o en los procesos de

    fabricacin: inyeccin, estampacin, forja

    Los servicios demandados por las empresas comenzaban por algo tan bsico como solicitar asesoramiento acerca de qu se puede conseguir con esta tecnologa.

    Tras esto se solicita formacin en simulacin numrica puesto que es algo que no es fcil de adquirir.

    Finalmente se solicita ayuda en la implantacin del software a utilizar.

    La aplicacin que se hace de la simulacin numrica se centra en el diseo y validacin del producto, en el diseo y

    validacin del proceso de fabricacin.

    El principal obstculo para hacer uso de todo esto es la falta

    de personal cualificado.

    El tipo de software utilizado es CAE especfico para el

    problema a solucionar.

    Pero desgraciadamente nadie utilizaba un supercomputador

    para ejecutar esas simulaciones.

    En 2008 se hizo un recorrido por diversas empresas espaolas para preguntarles qu uso podran hacer

    del supercomputador del CESGA y cules seran los principales obstculos para hacerlo.

    Las respuestas por sectores fueron:

    Naval: o Necesidades:

    El 90% de sus necesidades las cubren

    internamente y el 10% restante la subcontratan.

    Se simula la hidrodinmica, las turbinas o

    buques enteros (principalmente la estela

    que producen al navegar). o Barreras:

    Confidencialidad de la informacin, que

    debe estar en el centro de supercomputacin.

    http://es.wikipedia.org/wiki/Ingenier%C3%ADa_asistida_por_computadora

  • El pago de licencias.

    El problema de mover grandes cantidades

    de datos.

    Elico: o Necesidades:

    Tema de estructuras, diseo de palas.

    Cmo circula el viento por las palas: CFD.

    Mayor exactitud en los resultados. o Barreras:

    Confidencialidad de la informacin.

    El pago de licencias.

    El problema de mover grandes cantidades

    de datos.

    Financiero: o Necesidades:

    No desean externalizar: todo lo realizan

    internamente. No quieren interactuar con otros agentes.

    Data Mining.

    Scoring.

    Anlisis de fraude.

    Anlisis de productos financieros. o Barreras:

    Confidencialidad de la informacin.

    El pago de licencias.

    Necesitan los clculos en tiempo real: no

    quieren esperar.

    El problema de mover grandes cantidades

    de datos.

    Automvil: o Necesidades:

    Slo para I+D, CFD.

    o Barreras:

    Confidencialidad de la informacin.

    El pago de licencias.

    El problema de mover grandes cantidades

    de datos.

    Aeronatico: o Necesidades:

    Electromagnetismo.

    CFD.

    Sonido.

    Estructuras.

    Fsica del vuelo. o Barreras:

    No las tienen identificadas.

    http://en.wikipedia.org/wiki/Computational_fluid_dynamics

  • Respecto al tema de pago de licencias, esto ha hecho que se

    impulse el uso de software libre.

    En resumen la supercomputacin es una tecnologa que cada vez coge ms envergadura para hacer que las empresas sean ms competitivas. Pero el tema de la confidencialidad es un

    gran problema que hay que superar. Si quieres enviar algn comentario o sugerir temas a tratar en otros artculos, escribe a: curtasun[simboloArroba]cein.es

    Categoras General

    Tema Varios

    Autor Carlos Urtasun

    Mes Octubre

    Ao 2009

    Boletn 10

    Ttulo War is over?

    Texto If you want it.

    Bueno el caso es que Lennon no lo preguntaba si no que lo afirmaba.

    De qu guerra hablo? Como recordaris por un artculo anterior, se haba suscitado una polmica en torno a las titulaciones

    universitarias de informtica, polmica que parece haberse resuelto va BOE.

    El ocho de agosto (para que luego digamos que la

    Administracin no trabaja en verano) se publica en dicho Boletn una, tomad aliento, Resolucin de 8 de junio de 2009, de la

    Secretara General de Universidades, por la que se da publicidad al Acuerdo del Consejo de Universidades, por el que se establecen recomendaciones para la propuesta por las

    universidades de memorias de solicitud de ttulos oficiales en los mbitos de la Ingeniera Informtica, Ingeniera Tcnica

    Informtica e Ingeniera Qumica.

    Dejando aparte la Ingeniera Qumica (mis conocimientos no van mucho ms all de esto), vamos a ver lo que dice

    dicha Resolucin.

    Adems me centrar en la descripcin de las competencias que

    los estudiantes deben adquirir. Se indican as: Capacidad para

    Proyectar, calcular y disear productos, procesos e

    instalaciones en todos los mbitos de la ingeniera

    informtica. La direccin de obras e instalaciones de sistemas

    http://www.waxingamerica.com/images/johnyokowarisover.jpghttp://www.cesnavarra.net/cesdigital/Lists/Noticias%20CESDigital/DispForm.aspx?ID=78http://www.wikirecuerdos.com/juguetes/h-r/quimicefa.htmlhttp://www.boe.es/boe/dias/2009/08/04/pdfs/BOE-A-2009-12977.pdf

  • informticos, cumpliendo la normativa vigente y asegurando

    la calidad del servicio. Dirigir, planificar y supervisar equipos multidisciplinares. El modelado matemtico, clculo y simulacin en centros

    tecnolgicos y de ingeniera de empresa, particularmente en

    tareas de investigacin, desarrollo e innovacin en todos

    los mbitos relacionados con la Ingeniera en Informtica. La elaboracin, planificacin estratgica, direccin,

    coordinacin y gestin tcnica y econmica de proyectos en

    todos los mbitos de la Ingeniera en Informtica siguiendo

    criterios de calidad y medioambientales. La direccin general, direccin tcnica y direccin de

    proyectos de investigacin, desarrollo e innovacin, en

    empresas y centros tecnolgicos, en el mbito de la

    Ingeniera Informtica. La puesta en marcha, direccin y gestin de procesos de

    fabricacin de equipos informticos, con garanta de la

    seguridad para las personas y bienes, la calidad final de

    los productos y su homologacin. La aplicacin de los conocimientos adquiridos y de resolver

    problemas en entornos nuevos o poco conocidos dentro de

    contextos ms amplios y multidisciplinares, siendo capaces

    de integrar estos conocimientos. Comprender y aplicar la responsabilidad tica, la

    legislacin y la deontologa profesional de la actividad de

    la profesin de Ingeniero en Informtica. Aplicar los principios de la economa y de la gestin de

    recursos humanos y proyectos, as como la legislacin,

    regulacin y normalizacin de la informtica.

    Caramba! Guau! Cohone! que dira aqul. No s si me asombra ms cada punto de los arriba indicados o la recurrente

    coletilla en todos los mbitos de la Ingeniera en Informtica. En todos, insisten.

    Vuelvo a leer y s son las Competencias que los estudiantes

    deben adquirir, no los requisitos para las candidaturas del premio Turing.

    Respecto al Mster vinculado con el ejercicio de la profesin de Ingeniero en Informtica, el plan de estudios deber incluir, como mnimo, los siguientes mdulos (elsubrayado es mo) y

    competencias: Capacidad:

    Para la integracin de tecnologas, aplicaciones, servicios

    y sistemas propios de la Ingeniera Informtica, con

    carcter generalista, y en contextos ms amplios y

    multidisciplinares. Para la planificacin estratgica, elaboracin, direccin,

    coordinacin, y gestin tcnica y econmica en los mbitos

    de la ingeniera informtica relacionados, entre otros, con:

    sistemas, aplicaciones, servicios, redes, infraestructuras o

    instalaciones informticas y centros o factoras de

    desarrollo de software, respetando el adecuado cumplimiento

    de los criterios de calidad y medioambientales y en entornos

    de trabajo multidisciplinares. Para la direccin de proyectos de investigacin, desarrollo

    e innovacin, en empresas y centros tecnolgicos, con

    garanta de la seguridad para las personas y bienes, la

    calidad final de los productos y su homologacin. Para modelar, disear, definir la arquitectura, implantar,

    gestionar, operar, administrar y mantener aplicaciones,

    redes, sistemas, servicios y contenidos informticos.

    http://es.wikipedia.org/wiki/Premio_Turing

  • De comprender y saber aplicar el funcionamiento y

    organizacin de Internet, las tecnologas y protocolos de

    redes de nueva generacin, los modelos de componentes,

    software intermediario y servicios. Para asegurar, gestionar, auditar y certificar la calidad de

    los desarrollos, procesos, sistemas, servicios, aplicaciones

    y productos informticos. Para disear, desarrollar, gestionar y evaluar mecanismos de

    certificacin y garanta de seguridad en el tratamiento y

    acceso a la informacin en un sistema de procesamiento local

    o distribuido. Para analizar las necesidades de informacin que se plantean

    en un entorno y llevar a cabo en todas sus etapas el proceso

    de construccin de un sistema de informacin. Para disear y evaluar sistemas operativos y servidores, y

    aplicaciones y sistemas basados en computacin distribuida. Para comprender y poder aplicar conocimientos avanzados de

    computacin de altas prestaciones y mtodos numricos o

    computacionales a problemas de ingeniera. De disear y desarrollar sistemas, aplicaciones y servicios

    informticos en sistemas empotrados y ubicuos. Para aplicar mtodos matemticos, estadsticos y de

    inteligencia artificial para modelar, disear y desarrollar

    aplicaciones, servicios, sistemas inteligentes y sistemas

    basados en el conocimiento. Para utilizar y desarrollar metodologas, mtodos, tcnicas,

    programas de uso especfico, normas y estndares de

    computacin grfica. Para conceptualizar, disear, desarrollar y evaluar la

    interaccin persona-ordenador de productos, sistemas,

    aplicaciones y servicios informticos. Para la creacin y explotacin de entornos virtuales, y para

    la creacin, gestin y distribucin de contenidos

    multimedia.

    No tengo adjetivos: supongo que cuando dicen mster se referirn a esto.

    Uno de los puntos que me ha hecho abrir los ojos ms de lo normal es el de disear y evaluar sistemas operativos por no decir nada del de aplicar mtodos matemticos, estadsticos y

    de inteligencia artificial.

    Adems se realizar un Proyecto fin de mster que consistir en

    la realizacin, presentacin y defensa, una vez obtenidos todos los crditos del plan de estudios, de un ejercicio original realizado individualmente ante un tribunal universitario,

    consistente en un proyecto integral de Ingeniera en Informtica de naturaleza profesional en el que se sinteticen las

    competencias adquiridas en las enseanzas.

    Un proyecto integral de Ingeniera en Informtica de naturaleza profesional, de naturaleza profesional, no acadmica ojo!.

    Quiere eso decir que el graduando dirigir un proyecto con su alcance, recursos y plazos o, simplemente, a lo Juan Palomo

    har de hombre-orquesta?

    Bueno, teniendo en cuenta que en su da obtuve la licenciatura en Informtica, me siento que o bien me dieron un ttulo de

    la seorita Pepis o que los tiempos han cambiado mucho.

    http://inciclopedia.wikia.com/wiki/He-Manhttp://www.alexomb.eu/omb/images/stroj.jpghttp://www.wikirecuerdos.com/juguetes/h-r/maletin-de-enfermera-de-la-sta-pepis.html

  • Sigo leyendo y llego a las competencias que los estudiantes de

    Ingeniera Tcnica en Informtica deben adquirir.

    Voici! Capacidad para:

    Concebir, redactar, organizar, planificar, desarrollar y

    firmar proyectos en el mbito de la ingeniera en

    informtica que tengan por objeto, de acuerdo con los

    conocimientos adquiridos segn lo establecido en el apartado

    5 de este anexo, la concepcin, el desarrollo o la

    explotacin de sistemas, servicios y aplicaciones

    informticas. Dirigir las actividades objeto de los proyectos del mbito

    de la informtica de acuerdo con los conocimientos

    adquiridos segn lo establecido en el apartado 5 de este

    anexo. Disear, desarrollar, evaluar y asegurar la accesibilidad,

    ergonoma, usabilidad y seguridad de los sistemas, servicios

    y aplicaciones informticas, as como de la informacin que

    gestionan. Definir, evaluar y seleccionar plataformas hardware y

    software para el desarrollo y la ejecucin de sistemas,

    servicios y aplicaciones informticas, de acuerdo con los

    conocimientos adquiridos segn lo establecido en el apartado

    5 de este anexo. Concebir, desarrollar y mantener sistemas, servicios y

    aplicaciones informticas empleando los mtodos de la

    ingeniera del software como instrumento para el

    aseguramiento de su calidad, de acuerdo con los

    conocimientos adquiridos segn lo establecido en el apartado

    5 de este anexo. Concebir y desarrollar sistemas o arquitecturas informticas

    centralizadas o distribuidas integrando hardware, software y

    redes de acuerdo con los conocimientos adquiridos segn lo

    establecido en el apartado 5 de este anexo. Conocer, comprender y aplicar la legislacin necesaria

    durante el desarrollo de la profesin de Ingeniero Tcnico

    en Informtica y manejar especificaciones, reglamentos y

    normas de obligado cumplimiento. Resolver problemas con iniciativa, toma de decisiones,

    autonoma y creatividad. Capacidad para saber comunicar y

    transmitir los conocimientos, habilidades y destrezas de la

    profesin de Ingeniero Tcnico en Informtica. Para analizar y valorar el impacto social y medioambiental

    de las soluciones tcnicas, comprendiendo la responsabilidad

    tica y profesional de la actividad del Ingeniero Tcnico en

    Informtica. Conocimiento:

    De las materias bsicas y tecnologas, que capaciten para el

    aprendizaje y desarrollo de nuevos mtodos y tecnologas,

    as como las que les doten de una gran versatilidad para

    adaptarse a nuevas situaciones. Y aplicacin de elementos bsicos de economa y de gestin

    de recursos humanos, organizacin y planificacin de

    proyectos, as como la legislacin, regulacin y

    normalizacin en el mbito de los proyectos informticos, de

    acuerdo con los conocimientos adquiridos segn lo

    establecido en el apartado 5 de este anexo. Conocimientos para la realizacin de mediciones, clculos,

    valoraciones, tasaciones, peritaciones, estudios, informes,

    planificacin de tareas y otros trabajos anlogos de

    informtica, de acuerdo con los conocimientos adquiridos

    segn lo establecido en el apartado 5 de este anexo.

  • El citado apartado 5 dice (agarraos que hay curva) dice que las

    competencias que deben adquirirse son: Capacidad para la resolucin de los problemas matemticos

    que puedan plantearse en la ingeniera. Aptitud para aplicar los conocimientos sobre: lgebra

    lineal; clculo diferencial e integral; mtodos numricos;

    algortmica numrica; estadstica y optimizacin. Comprensin y dominio de los conceptos bsicos de campos y

    ondas y electromagnetismo, teora de circuitos elctricos,

    circuitos electrnicos, principio fsico de los

    semiconductores y familias lgicas, dispositivos

    electrnicos y fotnicos, y su aplicacin para la resolucin

    de problemas propios de la ingeniera. Capacidad para comprender y dominar los conceptos bsicos de

    matemtica discreta, lgica, algortmica y complejidad

    computacional, y su aplicacin para la resolucin de

    problemas propios de la ingeniera. Conocimientos bsicos sobre el uso y programacin de los

    ordenadores, sistemas operativos, bases de datos y programas

    informticos con aplicacin en ingeniera. Conocimiento de la estructura, organizacin, funcionamiento

    e interconexin de los sistemas informticos, los

    fundamentos de su programacin, y su aplicacin para la

    resolucin de problemas propios de la ingeniera. Conocimiento adecuado del concepto de empresa, marco

    institucional y jurdico de la empresa. Organizacin y

    gestin de empresas. Capacidad para disear, desarrollar, seleccionar y evaluar

    aplicaciones y sistemas informticos, asegurando su

    fiabilidad, seguridad y calidad, conforme a principios

    ticos y a la legislacin y normativa vigente. Capacidad para planificar, concebir, desplegar y dirigir

    proyectos, servicios y sistemas informticos en todos los

    mbitos, liderando su puesta en marcha y su mejora continua

    y valorando su impacto econmico y social. Capacidad para comprender la importancia de la negociacin,

    los hbitos de trabajo efectivos, el liderazgo y las

    habilidades de comunicacin en todos los entornos de

    desarrollo de software. Capacidad para elaborar el pliego de condiciones tcnicas de

    una instalacin informtica que cumpla los estndares y

    normativas vigentes. Conocimiento, administracin y mantenimiento sistemas,

    servicios y aplicaciones informticas. Conocimiento y aplicacin de los procedimientos algortmicos

    bsicos de las tecnologas informticas para disear

    soluciones a problemas, analizando la idoneidad y

    complejidad de los algoritmos propuestos. Conocimiento, diseo y utilizacin de forma eficiente los

    tipos y estructuras de datos ms adecuados a la resolucin

    de un problema. Capacidad para analizar, disear, construir y mantener

    aplicaciones de forma robusta, segura y eficiente, eligiendo

    el paradigma y los lenguajes de programacin ms adecuados. Capacidad de conocer, comprender y evaluar la estructura y

    arquitectura de los computadores, as como los componentes

    bsicos que los conforman. Conocimiento de las caractersticas, funcionalidades y

    estructura de los Sistemas Operativos y disear e

    implementar aplicaciones basadas en sus servicios. Conocimiento y aplicacin de las caractersticas,

    funcionalidades y estructura de los Sistemas Distribuidos,

    las Redes de Computadores e Internet y disear e implementar

    aplicaciones basadas en ellas.

  • Conocimiento y aplicacin de las caractersticas,

    funcionalidades y estructura de las bases de datos, que

    permitan su adecuado uso, y el diseo y el anlisis e

    implementacin de aplicaciones basadas en ellos. Conocimiento y aplicacin de las herramientas necesarias

    para el almacenamiento, procesamiento y acceso a los

    Sistemas de informacin, incluidos los basados en web. Conocimiento y aplicacin de los principios fundamentales y

    tcnicas bsicas de la programacin paralela, concurrente,

    distribuida y de tiempo real. Conocimiento y aplicacin de los principios fundamentales y

    tcnicas bsicas de los sistemas inteligentes y su

    aplicacin prctica. Conocimiento y aplicacin de los principios, metodologas y

    ciclos de vida de la ingeniera de software. Capacidad para disear y evaluar interfaces persona

    computador que garanticen la accesibilidad y usabilidad a

    los sistemas, servicios y aplicaciones informticas. Conocimiento de la normativa y la regulacin de la

    informtica en los mbitos nacional, europeo e

    internacional. Capacidad para desarrollar, mantener y evaluar servicios y

    sistemas software que satisfagan todos los requisitos del

    usuario y se comporten de forma fiable y eficiente, sean

    asequibles de desarrollar y mantener y cumplan normas de

    calidad, aplicando las teoras, principios, mtodos y

    prcticas de la Ingeniera del Software. Capacidad para valorar las necesidades del cliente y

    especificar los requisitos software para satisfacer estas

    necesidades, reconciliando objetivos en conflicto mediante

    la bsqueda de compromisos aceptables dentro de las

    limitaciones derivadas del coste, del tiempo, de la

    existencia de sistemas ya desarrollados y de las propias

    organizaciones. Capacidad de dar solucin a problemas de integracin en

    funcin de las estrategias, estndares y tecnologas

    disponibles. Capacidad de identificar y analizar problemas y disear,

    desarrollar, implementar, verificar y documentar soluciones

    software sobre la base de un conocimiento adecuado de las

    teoras, modelos y tcnicas actuales. Capacidad de identificar, evaluar y gestionar los riesgos

    potenciales asociados que pudieran presentarse. Capacidad para disear soluciones apropiadas en uno o ms

    dominios de aplicacin utilizando mtodos de la ingeniera

    del software que integren aspectos ticos, sociales, legales

    y econmicos. Capacidad de disear y construir sistemas digitales,

    incluyendo computadores, sistemas basados en microprocesador

    y sistemas de comunicaciones. Capacidad de desarrollar procesadores especficos y sistemas

    empotrados, as como desarrollar y optimizar el software de

    dichos sistemas. Capacidad de analizar y evaluar arquitecturas de

    computadores, incluyendo plataformas paralelas y

    distribuidas, as como desarrollar y optimizar software de

    para las mismas. Capacidad de disear e implementar software de sistema y de

    comunicaciones. Capacidad de analizar, evaluar y seleccionar las plataformas

    hardware y software ms adecuadas para el soporte de

    aplicaciones empotradas y de tiempo real. Capacidad para comprender, aplicar y gestionar la garanta y

    seguridad de los sistemas informticos. Capacidad para analizar, evaluar, seleccionar y configurar

    plataformas hardware para el desarrollo y ejecucin de

  • aplicaciones y servicios informticos. Capacidad para disear, desplegar, administrar y gestionar

    redes de computadores. Capacidad para tener un conocimiento profundo de los

    principios fundamentales y modelos de la computacin y

    saberlos aplicar para interpretar, seleccionar, valorar,

    modelar, y crear nuevos conceptos, teoras, usos y

    desarrollos tecnolgicos relacionados con la informtica. Capacidad para conocer los fundamentos tericos de los

    lenguajes de programacin y las tcnicas de procesamiento

    lxico, sintctico y semntico asociadas, y saber aplicarlas

    para la creacin, diseo y procesamiento de lenguajes. Capacidad para evaluar la complejidad computacional de un

    problema, conocer estrategias algortmicas que puedan

    conducir a su resolucin y recomendar, desarrollar e

    implementar aquella que garantice el mejor rendimiento de

    acuerdo con los requisitos establecidos. Capacidad para conocer los fundamentos, paradigmas y

    tcnicas propias de los sistemas inteligentes y analizar,

    disear y construir sistemas, servicios y aplicaciones

    informticas que utilicen dichas tcnicas en cualquier

    mbito de aplicacin. Capacidad para adquirir, obtener, formalizar y representar

    el conocimiento humano en una forma computable para la

    resolucin de problemas mediante un sistema informtico en

    cualquier mbito de aplicacin, particularmente los

    relacionados con aspectos de computacin, percepcin y

    actuacin en ambientes o entornos inteligentes. Capacidad para desarrollar y evaluar sistemas interactivos y

    de presentacin de informacin compleja y su aplicacin a la

    resolucin de problemas de diseo de interaccin persona

    computadora. Capacidad para conocer y desarrollar tcnicas de aprendizaje

    computacional y disear e implementar aplicaciones y

    sistemas que las utilicen, incluyendo las dedicadas a

    extraccin automtica de informacin y conocimiento a partir

    de grandes volmenes de datos. Capacidad de integrar soluciones de Tecnologas de la

    Informacin y las Comunicaciones y procesos empresariales

    para satisfacer las necesidades de informacin de las

    organizaciones, permitindoles alcanzar sus objetivos de

    forma efectiva y eficiente, dndoles as ventajas

    competitivas. Capacidad para determinar los requisitos de los sistemas de

    informacin y comunicacin de una organizacin atendiendo a

    aspectos de seguridad y cumplimiento de la normativa y la

    legislacin vigente. Capacidad para participar activamente en la especificacin,

    diseo, implementacin y mantenimiento de los sistemas de

    informacin y comunicacin. Capacidad para comprender y aplicar los principios y

    prcticas de las organizaciones, de forma que puedan ejercer

    como enlace entre las comunidades tcnica y de gestin de

    una organizacin y participar activamente en la formacin de

    los usuarios. Capacidad para comprender y aplicar los principios de la

    evaluacin de riesgos y aplicarlos correctamente en la

    elaboracin y ejecucin de planes de actuacin. Capacidad para comprender y aplicar los principios y las

    tcnicas de gestin de la calidad y de la innovacin

    tecnolgica en las organizaciones. Capacidad para comprender el entorno de una organizacin y

    sus necesidades en el mbito de las tecnologas de la

    informacin y las comunicaciones. Capacidad para seleccionar, disear, desplegar, integrar,

    evaluar, construir, gestionar, explotar y mantener las

  • tecnologas de hardware, software y redes, dentro de los

    parmetros de coste y calidad adecuados. Capacidad para emplear metodologas centradas en el usuario

    y la organizacin para el desarrollo, evaluacin y gestin

    de aplicaciones y sistemas basados en tecnologas de la

    informacin que aseguren la accesibilidad, ergonoma y

    usabilidad de los sistemas. Capacidad para seleccionar, disear, desplegar, integrar y

    gestionar redes e infraestructuras de comunicaciones en una

    organizacin. Capacidad para seleccionar, desplegar, integrar y gestionar

    sistemas de informacin que satisfagan las necesidades de la

    organizacin, con los criterios de coste y calidad

    identificados. Capacidad de concebir sistemas, aplicaciones y servicios

    basados en tecnologas de red, incluyendo Internet, web,

    comercio electrnico, multimedia, servicios interactivos y

    computacin mvil. Capacidad para comprender, aplicar y gestionar la garanta y

    seguridad de los sistemas informticos.

    No tengo palabras. Es ms: no siento las piernas.

    Como colofn se realizar un Proyecto de Fin de Grado,

    consistente en un Ejercicio original a realizar individualmente y presentar y defender ante un tribunal universitario, consistente

    en un proyecto en el mbito de las tecnologas especficas de la Ingeniera en Informtica de naturaleza profesional en el que se sinteticen e integren las competencias adquiridas en las

    enseanzas.

    A lo largo de este artculo el tono ha sido irnico, basado en este

    razonamiento (tengo este defecto):

    1. Las cosas se escriben tras una reflexin. 2. Lo expuesto en la resolucin arriba descrita refleja las

    capacidades y conocimientos que deben tener los ingenieros informticos (tcnicos y/o superiores) o quienes cursan un mster.

    3. Dichas capacidades y conocimientos me resultan

    excesivos. Creo que slo se adquiriran tras complementar los aos de estudio con aos de experiencia laboral.

    4. Luego: o esta resolucin es un desidertum o quiere

    establecer un lmite o est fuera de toda realidad. 5. Corolario: en caso de que un profesional informtico posea

    todas o algunas de estas habilidades podramos aplicar eso de Y an dicen que el pescado es caro.

    Si quieres enviar algn comentario o sugerir temas a tratar en otros artculos, escribe a: curtasun[simboloArroba]cein.es

    Categoras General

    Tema Varios

    Autor Carlos Urtasun

    Mes Octubre

    Ao 2009

    http://www.elrivalinterior.com/actitud/El-Superhombre/Rambo.jpghttp://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=desider%C3%A1tum&origen=RAEhttp://es.wikipedia.org/wiki/L%C3%ADmite_de_una_funci%C3%B3nhttp://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=corolario&origen=RAEhttp://arte.observatorio.info/2008/08/%C2%A1y-aun-dicen-que-el-pescado-es-caro-joaquin-sorolla-1894

  • Boletn 10

    Ttulo Personalizacin del cdigo generado en la Ingeniera inversa con JPA y

    MyEclipse.

    Texto Estrategia de la ingeniera inversa

    A la hora de generar cdigo a partir de las tablas creadas en nuestra base de datos, la estrategia por defecto usa reglas bsicas para mapear los nombres JDBC con los nombres java. Tambin, mapea los tipos JDBC con los tipos java.

    En el wizard de MyEclipse vemos que tenemos varias opciones

    para tener bajo nuestro control la generacin del cdigo.

    Reveng.xml, el archivo de filtro para la ingeniera inversa.

    Personalizar la estrategia de ingeniera inversa.

    Templates, plantillas para la generacin de pojos.

    REVENG.XML

    El archivo de filtro para la ingeniera inversa, es un archivo

    XML donde podemos controlar la generacin del cdigo de manera

    precisa.

  • Desde este archivo se puede controlar el mapeo de tipos JDBC a

    tipos java,

    excluir tablas y definir como debe ser la ingeniera inversa sobre

    una tabla en concreto. Mapeo de tipos: mapeamos los tipos JDBC con los tipos java

  • Filtrado de tablas:

    mediante el atributo exclude, decidimos excluir la tabla de la ingeniera inversa.

    Configuracin de una tabla especfica:

    El nos permite definir la clave primaria para

    tablas que no la tienen en la base de datos.

    Con es posible definir explcitamente el nombre de

    la propiedad. Tambin nos permite definir su tipo java y si queremos excluirla del proceso.

    El tiene dos propsitos. Uno de ellos es definir

    claves externas en bases de datos que no las soportan,y segundo, te permite definir el nombre de la propiedad

    resultante (many-to-one, one-to-one, one-to-many).

    REVERSE ENGINEERING STRATEGY

    Podemos crear nuestra propia estrategia. Para ello debemos

    crearnos una clase que

    extienda DelegatingReverseEngineeringStrategy. En ella

    modificaremos los mtodos necesarios o crearemos nuestros

    propios mtodos.

    Podemos sobrescribir el

    mtodo columnToPropertyName(TableIdentifier table, String

    column) para nombrar las propiedades.

    (Importante: Con Oracle los nombres de columnas llegan en

    maysculas)

    Podemos identificar prefijos que puedan tener nuestras columnas,

    poner maysculas o minsculas,

    En el siguiente ejemplo queremos identificar posibles prefijos

  • de las columnas, personalizarlos y poner mayscula a la siguiente.

    As, de una columna con nombre TXALMNOMBRE obtenemos

    txALMNombre.

    private static String[] aTipos = {iId,i,tx,dt};

    private static String[] aPrefijos = {ALM,CMD,FA,GNR};

    public String columnToPropertyName(TableIdentifier table,

    String column) {

    int i = 0;

    boolean capitalized = false;

    StringBuffer java = new StringBuffer(column.length());

    while(i

  • }

    if(capitalized){

    java.append(Character.toU

    pperCase(column.charAt(i)));

    capitalized = false;

    }else{

    java.append(Character.toL

    owerCase(column.charAt(i)));

    }

    i++;

    }

    return java.toString();

    }

    El mtodo columnToHibernateTypeName nos permite mapear tipos

    JDBC con los tipos java de distinto modo. Los que no nos interesen

    los dejamos en mano de la

    clase DelegatingReverseEngineeringStrategy. Por defecto el

    mapeo es el siguiente:

    CHAR -->String

    VARCHAR --> String

    LONGVARCHAR --> String

    NUMERIC --> java.math.BigDecimal

    DECIMAL --> java.math.BigDecimal

    BIT --> boolean

    BOOLEAN --> boolean

    TINYINT --> byte

    SMALLINT --> short

  • INTEGER --> int

    BIGINT --> long

    REAL --> float

    FLOAT --> double

    DOUBLE --> double

    BINARY --> byte[]

    VARBINARY --> byte[]

    LONGVARBINARY --> byte[]

    DATE --> java.sql.Date

    TIME --> java.sql.Time

    TIMESTAMP --> java.sql.Timestamp

    CLOB --> Clob

    BLOB --> Blob

    ARRAY --> Array

    Si queremos cambiar el tipo java, basta con crearnos el

    mtodo retornando los tipos deseados.

    public String columnToHibernateTypeName(TableIdentifier

    table, String

    columnName, int sqlType, int length, int precision, int scale,

    boolean nullable, boolean generatedIdentifi

    er){

    if(sqlType==Types.TIMESTAMP) {

    return java.util.Date;

    }else if(sqlType==Types.NUMERIC) {

    return int;

    }else if(sqlType==Types.CHAR) {

    return java.lang.Character;

  • }else if(sqlType==Types.DECIMAL) {

    return int;

    }else{

    return

    super.columnToHibernateTypeName(table,

    columnName, sqlType, length, precision, scale,

    nullable,

    generatedIdentifier);

    }

    }

    TEMPLATES

  • Puedes personalizar el cdigo generado para los pojos y

    DAOs con las plantillas Velocity (o FreeMarker). En el wizard

    marcaremos Use custom templates y navegaremos hasta la carpeta

    de donde se encuentren nuestras plantillas.

    En las plantillas POJO podremos controlar los constructores,

    setters y getters.

    En las plantillas DAO podremos controlar los finders, las

    acciones de salvar, borrar y actualizacin de modelos.

  • ENLACES DE INTERS

    http://docs.jboss.org/tools/3.0.1.GA/en/hibernatetools/html_single

    /index.html#reverseengineering

    http://www.docjar.com/docs/api/org/hibernate/cfg/reveng/Delegat

    ingReverseEngineeringStrategy.html

    http://db.apache.org/ojb/docu/guides/jdbc-types.html

    http://velocity.apache.org/

    Categ

    oras

    CES OpenSouce/Java

    Tema Desarrollo

    Autor Edurne Berastegi Zabalza

    Mes Octubre

    Ao 2009

    Bolet

    n

    10

    Ttulo Pinitos con Windows Communication Foundation

    Texto Windows Communication Foundation (WCF) es un arma poderosa,

    un framework para el desarrollo de aplicaciones con unas

    http://docs.jboss.org/tools/3.0.1.GA/en/hibernatetools/html_single/index.html%23reverseengineeringhttp://docs.jboss.org/tools/3.0.1.GA/en/hibernatetools/html_single/index.html%23reverseengineeringhttp://www.docjar.com/docs/api/org/hibernate/cfg/reveng/DelegatingReverseEngineeringStrategy.htmlhttp://www.docjar.com/docs/api/org/hibernate/cfg/reveng/DelegatingReverseEngineeringStrategy.htmlhttp://db.apache.org/ojb/docu/guides/jdbc-types.htmlhttp://velocity.apache.org/

  • capacidades de comunicacin enormes. Y lo tenemos disponible en

    nuestro kit para programar alias .NET Framework desde la versin

    3.0 Una de esas capacidades y quiz la menos conocida es la

    comunicacin Peer-to-peer o P2P, tpicamente asociada a los

    programas de descarga.

    El motivo de mi inters en este canal de comunicacin es

    que Microsoft incorpora en los S.O. Windows 2008R2 y en Windows7 un uso profesional de las comunicaciones P2P en

    lo que denomina BranchCache: un modo de compartir los archivos de una empresa entre PCs mediante tecnologas

    P2P de modo que se reduce sensiblemente el ancho de banda requerido as como los tiempos de transferencia,

    especialmente en empresas con oficinas distribuidas (no voy a entrar en el detalle de esta solucin, hay bastante

    ms info disponible en este enlace).

    Viendo que WCF tiene este potencial y con ganas de volver

    a pringarme con el cdigo, vamos a ver este mes un ejemplo de uso de WCF con conectividad P2P para

    desarrollar un cliente de Chat muy simple. Al tajo

    Aplicacin simple (simplsima) WCF

    Lo primero que vamos a hacer es implementar una

    aplicacin Cliente-Servidor con WCF, ser muy sencilla por lo que usaremos slo aplicaciones de modo consola.

    Abrimos VS2008 (maana paso a 2010 :) en modo

    Administrador, ya que de otro modo VS no podr registrar nuestros servicios en la mquina y la depuracin

    fallar. Creamos un nuevo proyecto de tipo Aplicacin de Consola que yo he denominado BaseWCF. Una vez

    generado, agregamos una referencia a

    System.ServiceModel que es la librera que nos facilita el acceso a la funcionalidad de WCF que nos interesa: botn

    derecho sobre el proyecto, Agregar referencia y la seleccionamos.

    Lo primero que vamos a definir es nuestro Interfaz de

    comunicacin, que ser la clase que se encargar de recibir las peticiones y emitir las respuestas. Para eso, estar

    compuesta de unos mtodos que en WCF se denominan Operaciones. En nuestro caso slo definimos una operacin

    que implementaremos ms adelante. VisualStudio nos

    facilita una plantilla para la definicin de interfaces que debemos emplear. Para eso, hacemos nuevamente botn

    http://trycatch.be/blogs/roggenk/archive/2008/11/05/windows-server-2008-r2-branchcache.aspx

  • derecho sobre el proyecto y seleccionamos

    Agregar,Nuevo elemento y elegimos la plantilla Interfaz. Como nombre le asigno SaludoContrato ya

    que este interfaz va a contener los contratos pblicos de nuestro servicio y sus operaciones. El cdigo es el

    siguiente:

    1: using System; 2: using System.Collections.Generic; 3: using System.ServiceModel; 4: using System.Text; 5: 6: namespace BaseWCF 7: { 8: [ServiceContract] 9: public interface IHola 10: { 11: [OperationContract] 12: string Comunica(); 13: } 14: }

    Hemos definido el interfaz IHola con una nica operacin

    denominada Comunica que no acepta argumentos y nos devuelve una cadena. Lo siguiente es implementarlo, para

    lo que en nuestro archivo Program.cs incluiremos el siguiente cdigo:

    1: using System; 2: using System.ServiceModel; 3: 4: namespace BaseWCF 5: { 6: public class Hola: IHola 7: { 8: public string Comunica() 9: { 10: return "Egun on guztiei!"; 11: } 12: } 13: 14: class Program 15: { 16: static void Main(string[] args) 17: { 18: ServiceHost sh = new ServiceHost(typeof(Hola), 19: new Uri("http://localhost:4123/BaseWCF")); 20: sh.Open(); 21: Console.WriteLine("Entzuten..."); 22: Console.WriteLine(" pulsatu bukatzeko"); 23: Console.ReadLine(); 24: 25: sh.Close(); //close the service 26: } 27: } 28: }

    Aqu tenemos dos clases diferenciadas. Por un lado, la implementacin de nuestra operacin, que simplemente

    devuelve un mensaje. Esta implementacin la podamos haber hecho tambin en el fichero donde definimos la

    Interfaz, pero de esta manera separamos la implementacin de la definicin, una manera sencilla de

    separar la lgica del desarrollo y que hace ms sencillo la

  • gestin del cdigo.

    La siguiente clase es la implementacin de nuestro Servicio donde creamos un nuevo ServiceHost de WCF que invocar

    un objeto de clase Hola (este ser el que escucha y responde a las peticiones, tal y como hemos dicho) en una

    direccin en este caso de nuestra mquina (para poder registrar esta URI debemos haber arrancando VS con un

    usuario con privilegios de Administrador de la mquina). A continuacin, dejamos el programa en ejecucin esperando

    una tecla, para no cerrar antes de que algn cliente invoque el servicio.

    Lo que nos queda para completar este servicio es definir los parmetros de configuracin necesarios para su ejecucin.

    Esto lo haremos con un archivo App.config que aadimos al proyecto: botn derecho, Agregar, Nuevo elemento y

    elegimos la plantilla de Archivo de configuracin de la aplicacin. Este archivo contendr lo siguiente:

    1: 2: 3: 4: 5: 6: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:

    Lo que hemos definido son tres elementos: servicios que se ha de corresponder con las operaciones de nuestro interfaz, bindings o enlaces de comunicacin y behaviors o

    especificidades de la comunicacin de la informacin.

    Servicio: definimos un servicio de nombre

    BaseWCF.Hola que tiene un endpoint (punto de conexin) llamado holaEndpoint y que

    asociamos al contrato BaseWCF.IHola (es decir, al servicio o interfaz que hemos creado antes).

  • Tambin se asocia al binding wsHttpBinding y

    usar de este su configuracin holaBinding. Por ltimo el servicio ejecutar los behaviors

    definidos en holaServiceBehavior. Bindings: nada reseable, usa seguridad en el

    mensaje.

    Behaviors: activa httpGet como peticin.

    A continuacin implementaremos el cliente que llamar a ese servicio. Vamos a aadir un nuevo proyecto a nuestra

    solucin, Archivo, Agregar, Nuevo proyecto, y

    seleccionamos una aplicacin de consola a la que doy el nombre de Cliente (vale, no estoy muy creativo :). A este

    proyecto por simplificar le copiamos el mismo contrato que al servidor (arrastrar y soltar SaludoContrato.cs sobre el

    proyecto Cliente) y en su cdigo Program.cs introduciremos:

    1: using System; 2: using System.ServiceModel; 3: 4: namespace Client 5: { 6: class Program 7: { 8: static void Main(string[] args) 9: { 10: Console.WriteLine("Zerbitzu prestatua bada, edozein tekla

    pultsatu"); 11: Console.ReadKey(); 12: Console.WriteLine(); 13: 14: ChannelFactory cnf = 15: new ChannelFactory("holaClient"); 16: BaseWCF.IHola chn = cnf.CreateChannel(); 17: Console.WriteLine(chn.Comunica()); 18: 19: //Clean up 20: cnf.Close(); 21: Console.WriteLine(" pulsatu bukatzeko"); 22: Console.ReadLine(); 23: } 24: } 25: }

    Lo primero que hacemos es esperar a que el servicio est listo. El motivo es que no sabemos si lo est o no y aunque

    podamos hacer pooling o similar hasta que lo est lo ms sencillo es esperar manualmente. Una vez que sabemos

    que ya est listo, pasamos a crear un canal por el que

    comunicarnos. Esto con WCF es sencillo, creamos un ChannelFactory de tipo BaseWCF.IHola (que tenemos

    definido en el contrato) al que le pasamos su endpoint (punto de comunicacin) como parmetro, que definiremos

    en seguida. A continuacin creamos un canal desde esa ChannelFactory y en este canal ya podemos invocar las

  • operaciones definidas en el contrato, en este caso

    Comunica. Lo que haremos es mostrar el mensaje que nos devuelve por pantalla, para ver el resultado. Finalmente,

    cerraremos todo de manera correcta.

    Nos queda pues definir los parmetros de nuestra

    aplicacin (endpoint y bindings), mediante un fichero App.config. Boton derecho sobre Cliente, Agregar,

    Nuevo elemento, Archivo de configuracin de la aplicacin, y en este tendremos que incluir lo siguiente:

    1: 2: 3: 4: 5: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:

    Como hemos dicho, estamos definiendo el Cliente y su Binding. Como vemos el binding es exactamente igual que

    en el caso del servidor, lgico para que se comuniquen, y en cuanto al cliente definimos su endpoint que

    denominamos holaClient (que hemos pasado como parmetro al crear el canal), con el binding wsHttpBinding y

    su configuracin holaBinding, el contrato BaseWCF.IHola y la direccin con la que se va a comunicar ser la del

    serviciohttp://localhost:4123/BaseWCF/holaEndpoint.

    Es decir, el cliente es una aplicacin que usa WCF para

    definir un punto por el que se comunicar y con que punto del servidor se va a comunicar. Luego, en el cdigo

    invocaremos una u otra operacin de ese servidor segn queramos.

    Bien, ya casi estamos! Slo nos queda un pero, una

    pequea trampa pero que si no realizamos har que si ejecutamos ahora nuestra aplicacin VS nos devuelva un

    error TCP 100061. Y es que si bien VS si lo ejecutamos en modo Administrador es capaz de registrar los servicios en

    nuestra mquina, no puede autorizar la escucha en un

    http://localhost:4123/BaseWCF/holaEndpoint

  • puerto especfico y es algo que tenemos que hacer

    nosotros. Lo que queremos es que nuestra mquina escuche en el puerto 4123 (que hemos usado en el cdigo),

    para lo que hacemos uso del comando netsh desde un intrprete de comandos que habremos lanzado con

    privilegios de Administrador (botn derecho). El comando

    es este:

    netsh http add iplisten ipaddress=127.0.0.1:4123

    Hecho esto, para ejecutar la aplicacin tenemos que indicar a VS que se trata de una solucin multiproyecto y ordenar

    su ejecucin correctamente. Para eso, pulsamos con el botn derecho del ratn sobre el nombre de la solucin y

    seleccionamos sus Propiedades. En la seccin de Proyecto de inicio marcamos Proyectos de inicio mtliples, nos

    aseguramos de que nuestros prouyectos Servicio y Cliente tienen como Accin Iniciar y Servicio est por encima de

    Cliente, como en esta pantalla.

    Ahora ya podemos ejecutar la aplicacin con este resultado:

  • Servidor escuchando

    Cliente con ejecucin correcta.

    Hasta aqu hemos usado WCF para implementar una

    comunicacin cliente-servidor tradicional. Al final se nos ha echado el tiempo encima, el siguiente paso es emplear P2P,

    tal y como comentaba al principio, pero tendr que ser en un artculo posterior. Nos vemos!

    Categor

    as

    CES Microsoft

    Tema Desarrollo

    Autor Rafael Flores

    Mes Octubre

    Ao 2009

    Boletn 10