<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Coresware.Com</title>
	<atom:link href="http://coresware.com/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://coresware.com/web</link>
	<description>Desarrollando Software</description>
	<lastBuildDate>Sat, 18 Feb 2012 03:13:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Expiración de Password en Oracle Database 11g</title>
		<link>http://coresware.com/web/expiracion-password-oracle-database-11g/</link>
		<comments>http://coresware.com/web/expiracion-password-oracle-database-11g/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 01:00:40 +0000</pubDate>
		<dc:creator>core</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[alter]]></category>
		<category><![CDATA[Base de Datos]]></category>
		<category><![CDATA[expired]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[password]]></category>

		<guid isPermaLink="false">http://coresware.com/web/?p=311</guid>
		<description><![CDATA[Hoy, después de unos meses de no haberme conectado a la base de datos de mi equipo, resultó que no podía iniciar sesión en el Enterprise Manager de la base de datos. Nada. La página web (https://pc0001:1158/em) me mostraba error en la autenticación. Pensé que había olvidado el password aunque finalmente pude conectarme a través [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy, después de unos meses de no haberme conectado a la base de datos de mi equipo, resultó que no podía iniciar sesión en el Enterprise Manager de la base de datos. Nada. La página web (https://pc0001:1158/em) me mostraba error en la autenticación. Pensé que había olvidado el password aunque finalmente pude conectarme a través de SQL Plus con el password que pensé no servía (me conecté como &#8220;sys as sysdba&#8221;) y modifiqué el password a mano del usuario &#8216;system&#8217;:</p>
<p>alter user USERNAME identified by PASSWORD; </p>
<p>Luego de ello entré al Enterprise Manager&#8230; Y sorpresa, los passwords de sys y otros habían expirado.</p>
<p>De lo que pude leer, lo que pasa es que Oracle Database 11g pone por defecto la expiración del password como habilitada. Pero están de acuerdo que no es común cambiar los passwords en una base de datos. Si están en mi mismo caso, hay que quitar esa opción de expiración. Y como siempre, es más fácil a través del SQL Plus.</p>
<p>ALTER PROFILE DEFAULT LIMIT<br />
  FAILED_LOGIN_ATTEMPTS UNLIMITED<br />
  PASSWORD_LIFE_TIME UNLIMITED; </p>
<p>Algunos enlaces de interés (parte de la información fue obtenida de estas fuentes):</p>
<ul>
<li>http://www.odi.ch/weblog/posting.php?posting=520</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://coresware.com/web/expiracion-password-oracle-database-11g/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modificar Parámetros Timeout JTA / BPEL en WLS (Oracle Weblogic Server 11g)</title>
		<link>http://coresware.com/web/modificar-parametros-timeout-jta-bpel-en-wls/</link>
		<comments>http://coresware.com/web/modificar-parametros-timeout-jta-bpel-en-wls/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 18:50:03 +0000</pubDate>
		<dc:creator>core</dc:creator>
				<category><![CDATA[Arquitectura de software]]></category>
		<category><![CDATA[Arquitectura orientada a servicios]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Servidores de aplicaciones]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[BPEL]]></category>
		<category><![CDATA[bpm]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[JTA]]></category>
		<category><![CDATA[obpm]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[Servidores]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[weblogic]]></category>
		<category><![CDATA[WLS]]></category>

		<guid isPermaLink="false">http://coresware.com/web/?p=298</guid>
		<description><![CDATA[Antes de empezar, debo decirles que esto lo probé en una máquina con Oracle BPM 11g (11.1.1.4) y el problema que presentaba es que a los 5 minutos un servicio web que ejecutaba un PL-SQL en la BD a través de un DB Adapter misteriosamente se cancelaba. A continuación les muestro el log que aparecía [...]]]></description>
			<content:encoded><![CDATA[<p>Antes de empezar, debo decirles que esto lo probé en una máquina con Oracle BPM 11g (11.1.1.4) y el problema que presentaba es que a los 5 minutos un servicio web que ejecutaba un PL-SQL en la BD a través de un DB Adapter misteriosamente se cancelaba. A continuación les muestro el log que aparecía en el servidor SOA:</p>
<pre>
Caused by: BINDING.JCA-11811
Stored procedure invocation error.
Error while trying to prepare and execute the SCHEMA01.PKG01.PLSQL01 API.
An error occurred while preparing and executing the SCHEMA01.PKG01.PLSQL01 API.
Cause: java.sql.SQLTimeoutException: ORA-01013: user requested cancel of current operation
ORA-06512: at "SCHEMA01.PKG01", line 1206
ORA-06512: at "SCHEMA01.PKG01", line 1176
ORA-06512: at line 1

Check to ensure that the API is defined in the database and that the parameters match the signature of the API.  This exception is considered retriable, likely due to a communication failure.  Because the global transaction is rolling back the invoke must be retried in a new transaction, restarting from the place of the last transaction commit.  To classify it as non-retriable instead add property nonRetriableErrorCodes with value "1013" to your deployment descriptor (i.e. weblogic-ra.xml).

    at oracle.tip.adapter.db.exceptions.DBResourceException.createXARetriableException(DBResourceException.java:670)
    at oracle.tip.adapter.db.exceptions.DBResourceException.createEISException(DBResourceException.java:642)
    at oracle.tip.adapter.db.sp.SPUtil.createResourceException(SPUtil.java:175)
    at oracle.tip.adapter.db.sp.AbstractStoredProcedure.execute(AbstractStoredProcedure.java:131)
    at oracle.tip.adapter.db.sp.SPInteraction.executeStoredProcedure(SPInteraction.java:141)
    at oracle.tip.adapter.db.DBInteraction.executeStoredProcedure(DBInteraction.java:1102)
    at oracle.tip.adapter.db.DBInteraction.execute(DBInteraction.java:247)
    at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.executeJcaInteraction(JCAInteractionInvoker.java:311)
    ... 102 more
</pre>
<p>Para corregir este error de timeout obtuve cierta información que espero sea de utilidad para alguien más. Los pasos para cambiar los parámetros de timeout tanto en JTA como en BPEL son:</p>
<p>1.	Configuración syncMaxWaitTime: Esta propiedad controla el tiempo máximo que se espera un resultado en un proceso sincronizado.</p>
<p>•	Iniciar sesión en EM como administrador.<br />
•	Abrir SOA y click derecho sobre &#8220;soa-infra&#8221;.<br />
•	Seleccionar: SOA Administration -> BPEL Properties<br />
•	Dar click sobre &#8220;More BPEL Configuration Properties&#8230;&#8221;<br />
•	Localizar el atributo syncMaxWaitTime y cambiarlo.</p>
<p>2.	Configuración del tiempo de transacción de EJB de BPEL: Permite modificar las propiedades de tiempo de espera (timeout) para la aplicación SOA, ignorando la configuración global especificada en los parámetros JTA.<br />
•	Acceda a la consola de administración de Oracle WebLogic.<br />
•	Haga clic Deployments.<br />
•	Ampliar soa-infra  &#8211;>  EJB.<br />
•	Los siguientes EJBs deben actualizarse: </p>
<p>BPELActivityManagerBean<br />
BPELDeliveryBean<br />
BPELDispatcherBean<br />
BPELEngineBean<br />
BPELFinderBean<br />
BPELInstanceManagerBean<br />
BPELProcessManagerBean<br />
BPELSensorValuesBean<br />
BPELServerManagerBean </p>
<p>•	Puede consultar en la pestaña de configuración el timeout para los beans que coincidan con el filtro &#8220;EJB*BPEL&#8221;  (podría haber más beans si su versión es diferente).<br />
•	Haga clic en Guardar.<br />
•	Reiniciar Oracle WebLogic Server.</p>
<p>3.	Ajuste del timeout de transacción global a nivel de dominio WebLogic: Esta propiedad controla el tiempo de espera para las transacciones activas. Si la transacción está todavía en estado &#8220;activo&#8221; después de ese tiempo, automáticamente se revierte (rolled back).</p>
<p>•	Acceda a la consola de administración de Oracle WebLogic.<br />
•	Haga clic en Servicios -> JTA.<br />
•	Cambie el valor de segundos del tiempo de espera (timeout, por defecto es 30).<br />
•	Haga clic en Guardar.<br />
•	Reinicie Oracle WebLogic Server.</p>
<p>En mi caso se modifiqué los valores de timeout JTA a:</p>
<p>•	Timeout Seconds: 6000<br />
•	Completion Timeout: -1  (en opciones avanzadas)<br />
•	Maximum Duration of XA Calls: 6000000  (en opciones avanzadas)</p>
<p>Las transacciones se establecen a 6000 segundos que equivale a 1.6 horas.</p>
<p>Algunos enlaces de interés (parte de la información fue obtenida de estas fuentes):</p>
<ul>
<li>http://forums.oracle.com/forums/thread.jspa?threadID=2279364</li>
<li>http://sudhakarsoa.blogspot.com/2011/03/how-do-you-configure-transaction.html</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://coresware.com/web/modificar-parametros-timeout-jta-bpel-en-wls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Qué es computación distribuida y en Grid?</title>
		<link>http://coresware.com/web/computacion-distribuida-grid/</link>
		<comments>http://coresware.com/web/computacion-distribuida-grid/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 17:14:04 +0000</pubDate>
		<dc:creator>core</dc:creator>
				<category><![CDATA[Arquitectura de software]]></category>
		<category><![CDATA[Computación y sistemas distribuidos]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[computación distribuida]]></category>
		<category><![CDATA[computación en grid]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[ehcache]]></category>
		<category><![CDATA[infinispan]]></category>
		<category><![CDATA[informática en malla]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[terracota]]></category>

		<guid isPermaLink="false">http://coresware.com/web/?p=188</guid>
		<description><![CDATA[La computación distribuida o informática en malla, es un nuevo modelo para resolver problemas de computación masiva utilizando un gran número de computadoras organizadas en racimos incrustados en una infraestructura de telecomunicaciones distribuida. La computación en grid es una tecnología innovadora que permite utilizar de forma coordinada todo tipo de recursos (entre ellos cómputo, almacenamiento [...]]]></description>
			<content:encoded><![CDATA[<p>La computación distribuida o informática en malla, es un nuevo modelo para resolver problemas de computación masiva utilizando un gran número de computadoras organizadas en racimos incrustados en una infraestructura de telecomunicaciones distribuida.</p>
<p>La computación en grid es una tecnología innovadora que permite utilizar de forma coordinada todo tipo de recursos (entre ellos cómputo, almacenamiento y aplicaciones específicas) que no están sujetos a un control centralizado. </p>
<p>En este sentido es una nueva forma de computación distribuida, en la cual los recursos pueden ser heterogéneos (diferentes arquitecturas, supercomputadores, clusters&#8230;) y se encuentran conectados mediante redes de área extensa (por ejemplo Internet). Desarrollado en ámbitos científicos a principios de los años 1990, su entrada al mercado comercial siguiendo la idea de la llamada Utility computing supone una revolución que dará mucho que hablar.</p>
<p>El término grid se refiere a una infraestructura que permite la integración y el uso colectivo de ordenadores de alto rendimiento, redes y bases de datos que son propiedad y están administrados por diferentes instituciones. Puesto que la colaboración entre instituciones envuelve un intercambio de datos, o de tiempo de computación, el propósito del grid es facilitar la integración de recursos computacionales. Universidades, laboratorios de investigación o empresas se asocian para formar grid para lo cual utilizan algún tipo de software que implemente este concepto.</p>
<p>Para no extendernos en los conceptos les recomiendo visitar los siguientes enlaces:</p>
<ul>
<li><strong>Conceptos</strong>
<p>http://es.wikipedia.org/wiki/Computaci%C3%B3n_distribuida</p>
<p>http://es.wikipedia.org/wiki/Computaci%C3%B3n_grid</p>
</li>
<li>
<strong>EhCache con Spring</strong> (Spring Framework se integra perfectamente con EhCache, tanto sea a través de clases utilitarias &#8220;oficiales&#8221; como usando librerías adicionales que brindan una mejor integración)</p>
<p>http://www.dosideas.com/wiki/EhCache_Con_Spring</p>
</li>
<li>
<strong>Terracota</strong></p>
<p>http://www.dosideas.com/noticias/java/271-introduccion-a-terracotta.html</p>
<p>http://www.terracotta.org/</p>
</li>
<li>
<strong>Infinispan<br />
</strong>http://unpocodejava.wordpress.com/2010/09/15/getting-started-with-infinispan/
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://coresware.com/web/computacion-distribuida-grid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cálculo de la edad, creación de fechas y años bisiestos en Java</title>
		<link>http://coresware.com/web/edad-fechas-bisiestosen-java/</link>
		<comments>http://coresware.com/web/edad-fechas-bisiestosen-java/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 17:04:22 +0000</pubDate>
		<dc:creator>core</dc:creator>
				<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[bisiesto]]></category>
		<category><![CDATA[Calendar]]></category>
		<category><![CDATA[Date]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[edad]]></category>
		<category><![CDATA[fecha]]></category>
		<category><![CDATA[GregorianCalendar]]></category>
		<category><![CDATA[programación]]></category>

		<guid isPermaLink="false">http://coresware.com/web/?p=191</guid>
		<description><![CDATA[CALCULO DE LA EDAD Tenemos al menos dos formas de calcular la edad en Java: La podemos calcular en milisegundos, entregando la cuenta exacta de milisegundos desde que la persona nació. Otra forma un poco más orientada al negocio para el que se esté construyendo el sistema es simplemente entregar el número de años que [...]]]></description>
			<content:encoded><![CDATA[<p><strong>CALCULO DE LA EDAD</strong></p>
<p>Tenemos al menos dos formas de calcular la edad en Java:</p>
<ol>
<li>
La podemos calcular en milisegundos, entregando la cuenta exacta de milisegundos desde que la persona nació.
</li>
<li>
Otra forma un poco más orientada al negocio para el que se esté construyendo el sistema es simplemente entregar el número de años que tiene la persona (como entero), ya que en los procesos financieros muchas veces no cuenta la edad real sino la edad establecida por el uso de la sociedad (en este caso el número de años).
</li>
</ol>
<p>Para la mayoría de casos preferiremos usar el segundo método ya que es la forma común en que entendemos la edad. Veamos esto en detalle (y con código):</p>
<p><strong>Forma 1</strong><br />
Obtendremos la diferencia en milisegundos. Esta cantidad la puedes pasar a segundos, minutos, días o años, de acuerdo a la necesidad específica. </p>
<pre>
public long calcularEdadEnMilis(Date fechaNacimiento, Date fechaActual) {
    long diferencia = ( fechaActual.getTime() - fechaNacimiento.getTime() )
    return diferencia;
}
</pre>
<p><strong>Forma 2</strong><br />
Haremos una resta sencilla: Si ya cumplió años en el año en curso, la edad es la diferencia de años. Si aún no cumple años, la edad es la diferencia de años menos uno. Recordemos que este código podría no aplicar para sociedades con otras formas culturales de calcular la edad (o que usa un calendario distinto a los conocidos).</p>
<pre>
public int calcularEdad(Date fechaNacimiento, Date fechaActual){
    Calendar fechaAct = Calendar.getInstance();
    fechaAct.setTime(fechaActual);

    Calendar fechaNac = Calendar.getInstance();
    fechaNac.setTime(fechaNacimiento);

    int dif_anios = fechaAct.get(Calendar.YEAR) - fechaNac.get(Calendar.YEAR);
    int dif_meses = fechaAct.get(Calendar.MONTH) - fechaNac.get(Calendar.MONTH);
    int dif_dias = fechaAct.get(Calendar.DAY_OF_MONTH) - fechaNac.get(Calendar.DAY_OF_MONTH);

    //Si está en ese año pero todavía no los ha cumplido
    if(dif_meses&lt;0 || (dif_meses==0 &#038;&#038; dif_dias&lt;0)){
        dif_anios--;
    }
    return dif_anios;
}
</pre>
<p><strong>CREACION DE FECHAS</strong></p>
<p>Sólo por curiosidad: ¿Cómo creas tus fechas?<br />
Una forma correcta de hacerlo es:</p>
<pre>
public Date crearFechas(int anio, int mes, int dia){
	Calendar fecha = Calendar.getInstance();
	fecha.clear(); //establece valores a 0
	fecha.set(anio, mes-1, dia); //establece año, mes y dia
	return fecha.getTime();
}
</pre>
<p><strong>AÑOS BISIESTOS</strong></p>
<blockquote><p>
Para saber si un año es bisiesto se puede aplicar una simple formula: Un año es bisiesto si es divisible entre 4, excepto el último de cada siglo (aquel divisible por 100), salvo que este último sea divisible por 400.
</p></blockquote>
<pre>
if ((anio % 4 == 0) &#038;&#038; ((anio % 100 != 0) || (anio % 400 == 0)))
	System.out.println("El año es bisiesto");
else
	System.out.println("El año no es bisiesto");
</pre>
<p>Pero la mejor forma es usar Java al máximo, así:</p>
<pre>
public boolean esBisiesto(int anio) {
	GregorianCalendar calendar = new GregorianCalendar();
	return calendar.isLeapYear(anio);
}
</pre>
<p>(Nótese que esto sólo aplica para calendarios gregorianos)</p>
<p>Algunos enlaces de interés:</p>
<ul>
<li>http://americati.com/blog/?p=79</li>
<li>http://draxus.org/weblog/2008/04/15/calcular-edad-en-java/</li>
<li>http://lineadecodigo.com/java/ano-bisiesto-en-java/</li>
<li>http://es.wikipedia.org/wiki/A%C3%B1o_bisiesto</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://coresware.com/web/edad-fechas-bisiestosen-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Primera aplicación con Eclipse y GWT</title>
		<link>http://coresware.com/web/primera-aplicacion-con-eclipse-y-gwt/</link>
		<comments>http://coresware.com/web/primera-aplicacion-con-eclipse-y-gwt/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 18:40:44 +0000</pubDate>
		<dc:creator>core</dc:creator>
				<category><![CDATA[Arquitectura de software]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[designer]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Edición Gráfica]]></category>
		<category><![CDATA[editor visual]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[WYSIWYG]]></category>

		<guid isPermaLink="false">http://coresware.com/web/?p=220</guid>
		<description><![CDATA[Explicaré paso a paso como crear y depurar una aplicación GWT en Eclipse. ]]></description>
			<content:encoded><![CDATA[<p>Asumimos que para poder iniciar este tutorial, previamente se configuró correctamente GWT y Google Plugin For Eclipse. Si aún no lo has hecho, puedes revisar esta <a href="http://coresware.com/web/instalacion-de-gwt-y-gpe/">entrada</a>.</p>
<p>Una vez iniciado Eclipse y teniendo configurado los plugins necesarios para trabajar con GWT procedemos a crear un nuevo proyecto:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej01_nuevo_proy.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej01_nuevo_proy-300x225.png" alt="" title="EJ01: Crear Nuevo Proyecto" width="300" height="225" class="aligncenter size-medium wp-image-221" /></a></p>
<p>A continuación seleccionamos el tipo de proyecto: GWT Java Proyect:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej02_selecciona_tipo_proy.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej02_selecciona_tipo_proy-300x300.png" alt="" title="EJ02: Seleccionar el Tipo de Proyecto" width="300" height="300" class="aligncenter size-medium wp-image-222" /></a></p>
<p>Escogemos un nombre para el proyecto, en este caso &#8220;DemoGWT&#8221;:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej03_nombrar_proy.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej03_nombrar_proy-252x300.png" alt="" title="EJ03: Nombrar Proyecto" width="252" height="300" class="aligncenter size-medium wp-image-223" /></a></p>
<p>Marcamos la creación del módulo GWT:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej04_creando_modulo_gwt.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej04_creando_modulo_gwt-252x300.png" alt="" title="EJ04: Creando Módulo GWT" width="252" height="300" class="aligncenter size-medium wp-image-224" /></a></p>
<p>Con eso tenemos listo el proyecto, con el ejemplo &#8220;automágicamente&#8221; generado y listo para ser probado.</p>
<p>Para probar nuestra aplicación pre-fabricada sólo hay que seleccionar el archivo ImageViewer.java (el archivo módulo) y con el botón derecho del mouse abrimos el menú contextual. Podemos usar el &#8220;Run as&#8221; o &#8220;Debug as&#8221; según nuestra necesidad.  Lo único importante es que se ejecute como Google Web Application:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej05_ejecuta_como_google_web_app.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej05_ejecuta_como_google_web_app-300x270.png" alt="" title="EJ05: Ejecutar Como Google Web Application" width="300" height="270" class="aligncenter size-medium wp-image-225" /></a></p>
<p>A continuación en la consola aparecerá un mensaje especial. En la pestaña de &#8220;Development Mode&#8221; aparece la URL a la que debemos dirigirnos si queremos probar la aplicación:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej06_copia_url_en_browser.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej06_copia_url_en_browser-300x64.png" alt="" title="EJ06: Copiar URL en Browser" width="300" height="64" class="aligncenter size-medium wp-image-226" /></a></p>
<p>Copiamos la URL en nuestro navegador y podremos ver la aplicación. Se nos solicita instalar un complemento especial para que nuestro navegador pueda estar en modo de depuración con el GWT. Cuando el sistema entra a producción ya no es solicitado este complemento para el navegador, para mi caso estoy usando Firefox:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej12_plugin_browser_desarrollo.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej12_plugin_browser_desarrollo-300x134.png" alt="" title="EJ12: Complemento del Browser para Desarrollo" width="300" height="134" class="aligncenter size-medium wp-image-232" /></a></p>
<p>Una vez instalado el complemento solicitado por el navegador podemos ver la aplicación:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej07_resultado_browser.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej07_resultado_browser-300x136.png" alt="" title="EJ07: Resultado en el Browser" width="300" height="136" class="aligncenter size-medium wp-image-227" /></a></p>
<p>Y listo, con eso un &#8220;Hola Mundo GWT&#8221; sin programar. ¿Es rápido y amigable, verdad?</p>
<p>Pero como en desarrollo de software no todo es tan fácil, a continuación probaremos la capacidad de hacer la edición visual de la interface en GWT. Para ello el archivo ImageViewer.java debe ser abierto (con doble click sobre el nombre del archivo en el &#8220;Package Explorer&#8221;) y luego debemos abrir la pestaña que dice &#8220;Design&#8221; con el archivo abierto en el editor. Tener paciencia que puede tardar un poco en abrir en modo de diseño:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej08_pestaña_diseño.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej08_pestaña_diseño-300x189.png" alt="" title="EJ08: Abrir la Pestaña de Diseño" width="300" height="189" class="aligncenter size-medium wp-image-228" /></a></p>
<p>A continuación veremos cuatro áreas importantes:</p>
<ul>
<li>Structure: La estructura o jerarquía de clases, fijarse que en nuestro ejemplo el rootPanel tiene objetos &#8220;dentro&#8221; de él. </li>
<li>Properties: Las propiedades de cada objeto, donde incluso puede cambiarse el nombre de la variable con que identificas el objeto.</li>
<li>Palette: La paleta de objetos.</li>
<li>Área de trabajo: El área donde modificamos la posición, tamaño y otras propiedades visuales de los objetos. Además se pueden arrastrar nuevos objetos o suprimir los ya existentes.</li>
</ul>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej09_modificando_diseño.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej09_modificando_diseño-300x214.png" alt="" title="EJ09: Modificando el Diseño de la Página" width="300" height="214" class="aligncenter size-medium wp-image-229" /></a></p>
<p>Para el ejemplo, haremos que la aplicación reciba un nombre en una caja de texto, este nombre se mostrará en el &#8220;alert&#8221; que aparece al hacer click al botón y posteriormente este mismo nombre se envía a una nueva caja de texto de sólo lectura, a modo de &#8220;resultado&#8221;.</p>
<p>Para ello modificaremos las líneas 25 y 33 de ImageViewer.java (el número de línea puede variar en su máquina, revise que lo que modifique corresponde a las mismas líneas mostradas en la imagen). Y agregaremos/modificaremos el código en las líneas 47, 48 y 49. La modificación para las líneas 25 y 33 corresponde a hacer las variables finales, de tal forma que el código dentro del &#8220;onClick&#8221; pueda hacer uso de esas variables:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej10_codigo_final.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej10_codigo_final-300x225.png" alt="" title="EJ10: Código Final" width="300" height="225" class="aligncenter size-medium wp-image-235" /></a></p>
<p>Para más detalle de las modificaciones, muestro capturas de las propiedades de cada objeto:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej10_propiedades_01.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej10_propiedades_01-300x192.png" alt="" title="EJ10: Propiedades 01" width="300" height="192" class="aligncenter size-medium wp-image-236" /></a></p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej10_propiedades_02.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej10_propiedades_02-300x192.png" alt="" title="EJ10: Propiedades 02" width="300" height="192" class="aligncenter size-medium wp-image-237" /></a></p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej10_propiedades_03.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej10_propiedades_03-300x192.png" alt="" title="EJ10: Propiedades 03" width="300" height="192" class="aligncenter size-medium wp-image-238" /></a></p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej10_propiedades_04.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej10_propiedades_04-300x192.png" alt="" title="EJ10: Propiedades 04" width="300" height="192" class="aligncenter size-medium wp-image-239" /></a></p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej10_propiedades_05.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej10_propiedades_05-300x192.png" alt="" title="EJ10: Propiedades 05" width="300" height="192" class="aligncenter size-medium wp-image-240" /></a></p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej10_propiedades_06.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej10_propiedades_06-300x192.png" alt="" title="EJ10: Propiedades 06" width="300" height="192" class="aligncenter size-medium wp-image-241" /></a></p>
<p>Finalmente podemos ver el resultado de la modificación de nuestro ejemplo:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/ej11_resultado_modificacion_browser.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/ej11_resultado_modificacion_browser-300x186.png" alt="" title="EJ11: Resultado de la Modificación en el Browser" width="300" height="186" class="aligncenter size-medium wp-image-231" /></a></p>
<p>Espero este tutorial haya sido de ayuda.<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://coresware.com/web/primera-aplicacion-con-eclipse-y-gwt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Instalación de Google Web Toolkit y Google Plugin for Eclipse</title>
		<link>http://coresware.com/web/instalacion-de-gwt-y-gpe/</link>
		<comments>http://coresware.com/web/instalacion-de-gwt-y-gpe/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 03:41:19 +0000</pubDate>
		<dc:creator>core</dc:creator>
				<category><![CDATA[Arquitectura de software]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[designer]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Edición Gráfica]]></category>
		<category><![CDATA[editor visual]]></category>
		<category><![CDATA[europa]]></category>
		<category><![CDATA[galileo]]></category>
		<category><![CDATA[Google Eclipse Plugin]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[helios]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://coresware.com/web/?p=194</guid>
		<description><![CDATA[Explicaré como instalar paso a paso Google Web Toolkit y Google Plugin for Eclipse en Eclipse Helios. ]]></description>
			<content:encoded><![CDATA[<p>Primero una breve introducción de lo que instalaremos:</p>
<p><strong>Google Web Toolkit</strong><br />
Framework creado por Google que permite ocultar la complejidad de varios aspectos de la tecnología AJAX. Es compatible con varios navegadores. El concepto de Google Web Toolkit es bastante sencillo, básicamente lo que se debe hacer es crear el código en Java usando cualquier entorno de desarrollo (IDE) de Java y el compilador lo traducirá a HTML y JavaScript.  </p>
<p><strong>Google Plugin for Eclipse</strong><br />
El complemento de Google para Eclipse (en Inglés &#8220;Google Plugin for Eclipse&#8221;) es una forma rápida de empezar a desarrollar aplicaciones de Google Web Toolkit y de App Engine, de la instalación directo a la implementación de una aplicación AJAX &#8220;Hello World&#8221; en cuestión de minutos. </p>
<p><strong>Eclipse</strong><br />
Eclipse es un entorno de desarrollo integrado de código abierto  multiplataforma para desarrollar lo que el proyecto llama &#8220;Aplicaciones de Cliente Enriquecido&#8221; (Rich Client Applications). Esta plataforma típicamente ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit  (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de Aplicaciones de Cliente Enriquecido.</p>
<p><strong>Procedimiento</strong></p>
<p>Para nuestro caso descargamos Eclipse Helios (3.6) para Windows. Ustedes pueden usar la versión de Eclipse y sistema operativo de su preferencia. El mecanismo es similar para todos los casos, descargamos y descomprimimos:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst01_descomprime_helios.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst01_descomprime_helios-300x105.png" alt="" title="INST01: Descomprime Eclipse Helios" width="300" height="105" class="aligncenter size-medium wp-image-195" /></a></p>
<p>Puede elegir la versión adecuada desde la siguiente URL: <a href="http://www.eclipse.org/downloads/">Eclipse Downloads</a>.</p>
<p>El paso posterior es abrir un workspace existente o crear uno nuevo, para nuestro caso crearemos un workspace nuevo en &#8220;c:\temp\Java\wks\gwt-helios&#8221;:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst02_inicia_helios.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst02_inicia_helios-300x123.png" alt="" title="INST03: Iniciando Eclipse Helios" width="300" height="123" class="aligncenter size-medium wp-image-196" /></a></p>
<p>A continuación debemos entrar al menú Help -> Install New Software</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst03_instalar_nuevo_sw.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst03_instalar_nuevo_sw-300x157.png" alt="" title="INST03: Instalar Nuevo Software" width="300" height="157" class="aligncenter size-medium wp-image-197" /></a></p>
<p>Y ya en esa ventana de configuración seleccionar &#8220;Add Repository&#8221;:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst04_agregar_url_google_eclipse_plugin.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst04_agregar_url_google_eclipse_plugin-300x119.png" alt="" title="INST04: Agregar URL Google Eclipse Plugin" width="300" height="119" class="aligncenter size-medium wp-image-198" /></a></p>
<p>De acuerdo a la versión de Eclipse podemos agregar uno de los siguientes URL&#8217;s:</p>
<p><strong>Eclipse 3.6 (Helios):</strong> http://dl.google.com/eclipse/plugin/3.6<br />
<strong>Eclipse 3.5 (Galileo):</strong> http://dl.google.com/eclipse/plugin/3.5<br />
<strong>Eclipse 3.4 (Ganymede):</strong> http://dl.google.com/eclipse/plugin/3.4</p>
<p>Después de agregar la URL se puede seleccionar los paquetes a instalar. En este caso seleccionamos el Plugin y el SDK para tenerlos integrados con Eclipse:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst05_seleccionar_sw01.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst05_seleccionar_sw01-300x294.png" alt="" title="INST05: Seleccionar Software" width="300" height="294" class="aligncenter size-medium wp-image-199" /></a></p>
<p>A continuación aparece la revisión del software a instalar y damos &#8220;Next&#8221;:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst06_seleccionar_sw02.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst06_seleccionar_sw02-300x204.png" alt="" title="INST06: Confirmar Selección" width="300" height="204" class="aligncenter size-medium wp-image-200" /></a></p>
<p>Aceptamos la licencia del software:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst07_seleccionar_sw03.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst07_seleccionar_sw03-300x204.png" alt="" title="INST07: Aceptar Licencias" width="300" height="204" class="aligncenter size-medium wp-image-201" /></a></p>
<p>Aceptamos instalar software sin firmar:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst08_seleccionar_sw04.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst08_seleccionar_sw04-300x92.png" alt="" title="INST08: Aceptar Software sin Firmar" width="300" height="92" class="aligncenter size-medium wp-image-202" /></a></p>
<p>Se inicia la instalación, puede tardar (ya que primero descarga los paquetes y luego los instala):</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst09_instalando_sw.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst09_instalando_sw-300x136.png" alt="" title="INST09: Instalando Software" width="300" height="136" class="aligncenter size-medium wp-image-203" /></a></p>
<p>Una vez instalado todo, se nos solicita reiniciar eclipse (recomiendo usar la opción de &#8220;Restart Now&#8221;):</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst10_reiniciar.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst10_reiniciar-300x87.png" alt="" title="INST10: Reiniciar Eclipse" width="300" height="87" class="aligncenter size-medium wp-image-204" /></a></p>
<p>Una vez reiniciado volvemos a entrar a nuestro workspace de trabajo (&#8220;c:\temp\Java\wks\gwt-helios&#8221;) y volvemos a entrar a agregar nuevo software (Help -> Install New Software). Allí introducimos la URL para el plugin para diseño del GWT:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst11_agregar_url_gwt_designer.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst11_agregar_url_gwt_designer-300x119.png" alt="" title="INST11: Agregar URL Para GWT Designer" width="300" height="119" class="aligncenter size-medium wp-image-205" /></a></p>
<p>Como en el caso anterior, de acuerdo a tu versión de Eclipse, eliges la URL que corresponde:</p>
<p><strong>Eclipse 3.6 (Helios):</strong> http://dl.google.com/eclipse/inst/d2gwt/latest/3.6<br />
<strong>Eclipse 3.5 (Galileo):</strong> http://dl.google.com/eclipse/inst/d2gwt/latest/3.5<br />
<strong>Eclipse 3.4 (Ganymede):</strong> http://dl.google.com/eclipse/inst/d2gwt/latest/3.4</p>
<p>A continuación seleccionamos el software a instalar (&#8220;GWT Designer&#8221; e &#8220;Infraestructure&#8221;) :</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst12_seleccionar_sw01.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst12_seleccionar_sw01-300x296.png" alt="" title="INST12: Seleccionar Software" width="300" height="296" class="aligncenter size-medium wp-image-206" /></a></p>
<p>Revisamos el software a instalar y damos en &#8220;Next&#8221;:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst13_seleccionar_sw02.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst13_seleccionar_sw02-300x296.png" alt="" title="INST13: Confirmar Selección" width="300" height="296" class="aligncenter size-medium wp-image-207" /></a></p>
<p>Aceptamos las licencias:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst14_seleccionar_sw03.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst14_seleccionar_sw03-300x296.png" alt="" title="INST14: Aceptar Licencias" width="300" height="296" class="aligncenter size-medium wp-image-208" /></a></p>
<p>Aceptamos la instalación de software sin firmar:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst15_seleccionar_sw04.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst15_seleccionar_sw04-300x92.png" alt="" title="INST15: Aceptar Software sin Firmar" width="300" height="92" class="aligncenter size-medium wp-image-209" /></a></p>
<p>El software se instala:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst16_instalando_sw.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst16_instalando_sw-300x136.png" alt="" title="INST16: Instalando Software" width="300" height="136" class="aligncenter size-medium wp-image-210" /></a></p>
<p>Y si todo fue bien, se pedirá que se reinicie Eclipse:</p>
<p><a href="http://coresware.com/web/wp-content/uploads/2010/10/inst17_reiniciar.png"><img src="http://coresware.com/web/wp-content/uploads/2010/10/inst17_reiniciar-300x87.png" alt="" title="INST17: Reiniciar Eclipse" width="300" height="87" class="aligncenter size-medium wp-image-211" /></a></p>
<p>Eso es todo, espero esta guía les haya servido de ayuda. Si quieren más información respecto a GWT, construí un tutorial para construcción con GWT y Eclipse, pueden revisar este tema <a href="http://coresware.com/web/primera-aplicacion-con-eclipse-y-gwt/">aquí</a>.</p>
<p>&nbsp;<br />
&nbsp;<br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://coresware.com/web/instalacion-de-gwt-y-gpe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lenguajes y RAD&#8217;s (Rapid Application Development Tools)</title>
		<link>http://coresware.com/web/evaluar_lenguajes_y_rads/</link>
		<comments>http://coresware.com/web/evaluar_lenguajes_y_rads/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 18:47:06 +0000</pubDate>
		<dc:creator>core</dc:creator>
				<category><![CDATA[Arquitectura de software]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[comparativa]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Lenguajes de programación]]></category>
		<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[velocidad]]></category>

		<guid isPermaLink="false">http://coresware.com/web/?p=155</guid>
		<description><![CDATA[¿Qué RAD's y lenguajes de programación pudo evaluar además de lo que ofrece Java? Recordemos que es primordial hacer una comparación antes de tomar una decisión de desarrollo. Aquí te proporciono una liga para ver una lista grande de RAD's y además una comparativa sencilla entre lenguajes (Java, Lisp, Python, Perl, C++).]]></description>
			<content:encoded><![CDATA[<p>Un antiguo conocido me preguntó en que lenguaje y herramienta podía programar su proyecto de tesis, que si usaba Java u otra opción, ya que tenía que ser Open Source (y varias otras condiciones).</p>
<p>Traté de explicarle que el lenguaje Java como tal no es igual a gratis ni a Open Source (para ello vean el artículo <a href="http://www.gnu.org/philosophy/java-trap.es.html">La Trampa de Java</a>). Creo que no me entendió.</p>
<p>Pero su pregunta principal fue: ¿Qué otras opciones tengo para evaluar además de Java? Recordemos que es primordial hacer una comparación antes de tomar una decisión de desarrollo. Así que, ¿dónde puedo encontrar esa lista de herramientas/lenguajes?</p>
<p>Le recomendé una lista de herramientas de desarrollo rápido: <a href="http://en.wikipedia.org/wiki/List_of_rapid_application_development_tools">List of rapid application development tools</a></p>
<p>Es un buen inicio ver que tenemos a disposición.</p>
<p>Y para aquellos que gusten de comparar lenguajes, aquí un gráfico interesante en el que verán que a veces Lisp puede ser tan rápido o más que C++ para algunas tareas.<br />
<a href="http://coresware.com/web/wp-content/uploads/2010/09/lenguajes.png"><img src="http://coresware.com/web/wp-content/uploads/2010/09/lenguajes-300x133.png" alt="" title="Comparativa de lenguajes contra C++" width="300" height="133" class="aligncenter size-medium wp-image-156" /></a></p>
<p>&nbsp;<br />
&nbsp;<br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://coresware.com/web/evaluar_lenguajes_y_rads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ejecutar Java en plataformas .NET y MONO</title>
		<link>http://coresware.com/web/ejecutar-java-en-plataformas-net-y-mono/</link>
		<comments>http://coresware.com/web/ejecutar-java-en-plataformas-net-y-mono/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 18:12:47 +0000</pubDate>
		<dc:creator>core</dc:creator>
				<category><![CDATA[Arquitectura de software]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Servidores de aplicaciones]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[CLR]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[Máquina Virtual]]></category>
		<category><![CDATA[MONO]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://coresware.com/web/?p=147</guid>
		<description><![CDATA[Java en .NET: .NET tiene un Common Language Runtime o CLR (Lenguaje común en tiempo de ejecución) que una especie de máquina virtual. Visto así, era cuestión de tiempo para que crearan eso que permitiese ejecutar Java dentro del CLR. El proyecto es IKVM.NET]]></description>
			<content:encoded><![CDATA[<p>Sí, como lo oyen: Java en .NET.</p>
<p>No sé si todos lo sepan pero .NET tiene un Common Language Runtime o CLR (Lenguaje común en tiempo de ejecución) que es el componente de máquina virtual de la plataforma .NET de Microsoft. </p>
<p>Mono es un proyecto Open Source iniciado por Ximian y actualmente impulsado por Novell (tras la adquisición de Ximian) para crear un grupo de herramientas libres, compatibles con .NET, según lo especificado por el ECMA (y proporciona un CLR, además de soporte a algunos lenguajes como C#, MonoBasic, GTK# etc).</p>
<p>Alguna vez escuché a los evangelizadores de .NET decir que su máquina virtual es una evolución natural de la Java Virtual Machine (JVM). ¿Por qué? Porque Java produce bytecodes que se interpretan en la JVM. Si los bytecodes son portables porque la implementación de la JVM es un estándar (independiente del Sistema Operativo o hardware) es lógico hacer lo mismo con cualquier lenguaje y esto haría que cualquier lenguaje pueda funcionar como Java, es decir independiente del Sistema Operativo y del hardware. Así nace CLR, una máquina virtual para múltiples lenguajes. Creado CLR lo único que faltaría es el compilador que genere código intermedio (llamado Common Intermediate Language &#8211; CIL) para el lenguaje que se desee ejecutar en el CLR.</p>
<p>[ Breve paréntesis: ¿Por qué no hacemos un compilador que nos permita programar con Logo o Basic y ejecutar lo programado en la JVM? No he visto ningún proyecto similar. Y la idea no deja de ser interesante y teóricamente posible.]</p>
<p>Bueno, buscando, era obvio que era cuestión de tiempo para que crearan eso que permitiese ejecutar Java dentro del CLR.<br />
El proyecto es <a href="http://www.ikvm.net/">IKVM.NET</a>:</p>
<blockquote><p>
IKVM.NET es una implementación de Java para Mono y Microsoft.NET Framework. Incluye los siguientes componentes:</p>
<ul>
<li>Una máquina virtual de Java implementada en. NET</li>
<li>Implementación de las clases básicas de Java en .NET</li>
<li>Herramientas que permiten la interoperabilidad entre Java y .NET </li>
</ul>
</blockquote>
<p>Lo bueno, es que funciona bien con aplicaciones de consola (habrá que ver el rendimiento, en MONO y en CLR .NET). Lo malo, es que no funcionan bien las interfaces gráficas (olvídate de usar Swing). Como alternativa creo que podrías crear un programa híbrido con clases Java, usando interfaces gráficas .NET.</p>
<p>Los links de interes:</p>
<p><a href="http://www.mono-project.com/Java">Mono &#038; Java</a><br />
<a href="http://casidiablo.net/interfaces-graficas-java-en-mono-que-decepcion/">Interfaces gráficas Java en Mono… que decepción</a></p>
]]></content:encoded>
			<wfw:commentRss>http://coresware.com/web/ejecutar-java-en-plataformas-net-y-mono/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Server Faces 2: Un vistazo</title>
		<link>http://coresware.com/web/java-server-faces-2-un-vistazo/</link>
		<comments>http://coresware.com/web/java-server-faces-2-un-vistazo/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 22:18:55 +0000</pubDate>
		<dc:creator>core</dc:creator>
				<category><![CDATA[Arquitectura de software]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[designer]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Edición Gráfica]]></category>
		<category><![CDATA[editor visual]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Java Server Faces]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[MyEclipse]]></category>
		<category><![CDATA[Web Page Editor]]></category>

		<guid isPermaLink="false">http://coresware.com/web/?p=134</guid>
		<description><![CDATA[JSF (Java Server Faces) siempre será una muy buena opción al momento de buscar frameworks que nos den soporte a la parte de presentación de una aplicación WEB en Java: Agrego unos tutoriales de IBM que pueden aclarar un poco como desarrollar con JSF.]]></description>
			<content:encoded><![CDATA[<p>JSF (Java Server Faces) siempre será una muy buena opción al momento de buscar frameworks que nos den soporte a la parte de presentación de una aplicación WEB en Java. Lamentablemente no he encontrado el editor ideal para mis necesidades (motivo por el que mis últimos desarrollos los orientaré a GWT).</p>
<p>JavaServer Faces (JSF) es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas, pero también se puede acomodar a otras tecnologías como XUL.</p>
<p>JSF incluye:</p>
<ul>
<li>Un conjunto de APIs para representar componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.</li>
<li>Un conjunto por defecto de componentes para la interfaz de usuario.</li>
<li>Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.</li>
<li>Un modelo de eventos en el lado del servidor.</li>
<li>Administración de estados.</li>
<li>Beans administrados.</li>
</ul>
<p>La especificación de JSF fue desarrollada por la Java Community Process como JSR 127, que definía JSF 1.0 y 1.1, JSR 252 que define JSF 1.2 y JSR 314 para JSF 2.0</p>
<p>A continuación agrego unos tutoriales de IBM que pueden aclarar un poco como desarrollar con JSF:</p>
<ul>
<li><a href="http://www.ibm.com/developerworks/java/library/j-jsf2fu-0410/index.html">JSF 2 fu: Ajax components</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-jsf2fu-0610/">JSF 2 fu: After-the-fact Ajax composite components</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-jsf2fu-0710/index.html">JSF 2 fu: JSF wizards</a></li>
</ul>
<p>La imagen siguiente corresponde al editor visual de JSF de <a href="http://www.myeclipseide.org/">MyEclipse</a>. <strong>Pero es importante que sepan que se incluye un editor similar en Eclipse</strong>, así que ya ustedes decidan cual usar:</p>
<p><img alt="JSF Page Designer" src="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/vpd_overview_editor_layout.gif" title="JSF Page Designer (&quot;Web Page Editor&quot; in Eclipse)" class="aligncenter" width="522" height="460" /></p>
<p>Este editor también puede ser usado para editar JSP&#8217;s. Para convertir el Web Page Editor en el editor por defecto de JSP&#8217;s, se debe hacer lo siguiente:</p>
<blockquote>
<ol>
<li>Vaya a &#8220;Window&#8221; -> &#8220;Preferences&#8230;&#8221; -> &#8220;General&#8221; -> &#8220;Editors&#8221; -> &#8220;File Associations&#8221;</li>
<li>En el &#8220;File Associations&#8221; seleccione &#8220;*. jsp&#8221;</li>
<li>En &#8220;Associated editors&#8221;, seleccione &#8220;Web Page Editor&#8221;</li>
<li>Seleccione el botón &#8220;Default&#8221;</li>
</ol>
</blockquote>
<p>Y listo.</p>
<p>Espero este breve vistazo a JSF les sirva de ayuda.</p>
<p>&nbsp;<br />
&nbsp;<br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://coresware.com/web/java-server-faces-2-un-vistazo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un framework WEB que nos permita editar interfaces gráficas visualmente</title>
		<link>http://coresware.com/web/un-framework-web-que-nos-permita-editar-interfaces-graficas-visualmente/</link>
		<comments>http://coresware.com/web/un-framework-web-que-nos-permita-editar-interfaces-graficas-visualmente/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 19:12:18 +0000</pubDate>
		<dc:creator>core</dc:creator>
				<category><![CDATA[Arquitectura de software]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[designer]]></category>
		<category><![CDATA[editor visual]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[WYSIWYG]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://coresware.com/web/?p=126</guid>
		<description><![CDATA[Un framework WEB que nos permita editar interfaces gráficas visualmente es el Santo Grial de todos los desarrolladores Java. Explicamos tres opciones: Yahoo! UI Library, Microsoft Silverlight y Google Web Toolkit. Nos quedamos con GWT. ]]></description>
			<content:encoded><![CDATA[<p>Sí, un framework WEB que nos permita editar interfaces gráficas visualmente es el Santo Grial de todos los desarrolladores Java: Se trata de lograr editar interfaces gráficas web como si se tratase de una vieja aplicación desktop.</p>
<p>He escogido tres tecnologías interesantes que pueden ayudarnos en esta tarea, que permiten ejecutarse en múltiples sistemas operativos (y múltiples browsers):</p>
<ul>
<li>Yahoo! UI Library</li>
<li>Microsoft Silverlight</li>
<li>Google Web Toolkit</li>
</ul>
<p><strong>Yahoo! UI Library</strong><br />
Yahoo User Interface(YUI), una serie de bibliotecas escritas en JavaScript, para la construcción de aplicaciones interactivas (RIA). Liberadas bajo licencia BSD por parte de la compañía Yahoo. Dichas bibliotecas son utilizadas para el desarrollo web específicamente para ser usadas como la programación de aplicaciones de escritorio, con componentes vistosos y personalizables y con una amplia implementación con AJAX.</p>
<p>Para integrarlo con Java he visto dos páginas interesantes:</p>
<ul>
<li><a href="http://www.devx.com/Java/Article/41159">Yahoo&#8217;s Rich Web UIs for Java Developers</a>: Java developers who develop web applications with server-side frameworks often don&#8217;t have the JavaScript expertise to create rich user interfaces. Learn how Yahoo User Interface (YUI) can help bridge that gap.</li>
<li><a href="http://www.devx.com/Java/Article/41570">Putting a YUI Face on a Java Web Application</a>: Learn how to use Yahoo User Interface (YUI) Web components to develop a real world application with just the right mix of JavaScript/AJAX. </li>
</ul>
<p>Sin embargo en este punto no he encontrado una herramienta que me ayude a hacer un diseño fácil de estas interfaces gráficas.</p>
<p>Tres referencias importantes que nos acercan a un &#8220;editor&#8221; WYSIWYG para YUI:</p>
<ul>
<li><a href="http://developer.yahoo.com/yui/grids/builder/">YUI CSS Grid Builder</a></li>
<li><a href="http://www.adobe.com/devnet/dreamweaver/articles/using_yui_widgets.html">Dreamweaver CS4</a></li>
<li><a href="http://yuiblog.com/blog/2008/10/28/aptana/">Aptana</a></li>
</ul>
<p><strong>Microsoft Silverlight</strong><br />
No se asusten, se puede integrar con Java y además es independiente del browser. Microsoft Silverlight es una estructura para aplicaciones web que agrega nuevas funciones multimedia como la reproducción de vídeos, gráficos vectoriales, animaciones e interactividad, en forma similar a lo que hace Adobe Flash. Silverlight compite con Adobe Flex, Nexaweb, OpenLaszlo y algunas presentaciones de componentes AJAX. Actualmente se distribuye de forma gratuita.</p>
<p>Para Silverlight hay herramientas comerciales y libres, incluso un plugin de Eclipse. Sin embargo las herramientas que permiten hacer más sencillo el diseño de las interfaces son de pago.</p>
<p>Como integrarlo con Java:</p>
<ul>
<li><a href="http://www.pleus.net/articles/sljee/sljee.pdf">Whitepaper: Using Silverlight for JEE applications</a></li>
</ul>
<p><strong>Google Web Toolkit</strong><br />
Framework creado por Google que permite ocultar la complejidad de varios aspectos de la tecnología AJAX. Es compatible con varios navegadores, lo cual es notorio ya que cada navegador  suele necesitar código específico para lograr un front-end correcto en una aplicación web. El concepto de Google Web Toolkit es bastante sencillo, básicamente lo que se debe hacer es crear el código en Java usando cualquier entorno de desarrollo (IDE) de Java y el compilador lo traducirá a HTML y JavaScript. Se distribuye bajo la Apache License, v2.0. </p>
<p>La verdad es el framework del que encontré más información y lo que más me gustó fue facilidad de usar el GWT Designer que ofrece (que es robusto y libre). Justo lo que buscaba.</p>
<p>Página oficial:  http://code.google.com/intl/es-ES/webtoolkit/</p>
<p>Y para integrarlo con aplicaciones Java:</p>
<ul>
<li><a href="http://www.progress.com.py/redcp/category/webinarios/workshop-gwt-jee/">Cómo desarrollar aplicaciones corporativas con GWT/JEE</a></li>
<li>Deploying GWT Applications in SpringSource dm Server: <a href="http://blog.springsource.com/2008/11/07/deploying-gwt-applications-in-springsource-dm-server-part-1/">Part 1</a>, <a href="http://blog.springsource.com/2008/11/24/deploying-gwt-applications-in-springsource-dm-server-part-2/">Part 2</a>, <a href="http://blog.springsource.com/2008/12/19/deploying-gwt-applications-in-springsource-dm-server-part-3/">Part 3</a>.</li>
<li>Build an Ajax application using Google Web Toolkit, Apache Derby, and Eclipse: <a href="http://www.ibm.com/developerworks/library/os-ad-gwt1/">The fancy front end</a>, <a href="http://www.ibm.com/developerworks/library/os-ad-gwt2/">The reliable back end</a>, <a href="http://www.ibm.com/developerworks/library/os-ad-gwt3/">Communication</a>, <a href="http://www.ibm.com/developerworks/library/os-ad-gwt4/">Deployment</a></li>
</ul>
<p>Algo importante es que Google nos facilitó un designer, una herramienta para diseñar interfaces con GWT de forma visual, WYSIWYG. Vea la noticia aquí: <a href="http://www.javahispano.org/contenidos/es/google_publica_plugins_de_instantiations__gratuitamente/">Google publica plugins de Instantiations gratuitamente.</a>.</p>
<blockquote><p><strong>GWT Designer:</strong> Permite crear aplicaciones Ajax de forma gráfica  usando Google Web Toolkit. Para muchos la verdadera razón de que Google compró a Instantiations. Sin duda se extrañaba una herramienta gratuita y soportada por el mismo Google para generar interfaces con GWT. Si bien GWT ha ganado bastantes usuarios en los últimos años, GWT Designer va a bajar la barrera para que aquellos que no lo usan se acerquen al framework y va a facilitar mucho la vida a los usuarios existentes.</p></blockquote>
<p>He preparado una entrada dedicada al primer demo que desarrollé con GWT y Eclipse, <a href="http://coresware.com/web/primera-aplicacion-con-eclipse-y-gwt/">aquí</a>. Y si no conocen como configurar esos plugins en Eclipse pueden dirigirse a esta otra <a href="http://coresware.com/web/instalacion-de-gwt-y-gpe/">entrada</a>.<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://coresware.com/web/un-framework-web-que-nos-permita-editar-interfaces-graficas-visualmente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

