título introducción a javafx javafx.stage.stage; import javafx.scene.scene; import...
Post on 08-Feb-2018
231 Views
Preview:
TRANSCRIPT
-
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
top related