<?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>Indalcasa &#187; Java</title>
	<atom:link href="http://www.indalcasa.com/category/programacion/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.indalcasa.com</link>
	<description>Un blog de tecnologia</description>
	<lastBuildDate>Tue, 03 Jan 2012 15:14:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Por qué usar StringBuilder en lugar de concatenar Strings</title>
		<link>http://www.indalcasa.com/programacion/por-que-usar-stringbuilder-en-lugar-de-concatenar-strings/</link>
		<comments>http://www.indalcasa.com/programacion/por-que-usar-stringbuilder-en-lugar-de-concatenar-strings/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 01:36:16 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[.Net (C#)]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Mono (C#)]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Visual Basic .Net]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[visual basic]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=703</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/por-que-usar-stringbuilder-en-lugar-de-concatenar-strings/' addthis:title='Por qué usar StringBuilder en lugar de concatenar Strings ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>Ando un poco liado y llevo una temporada sin escribir. Hay un apunte, que es común para varios lenguajes que son Java y por ejemplo .Net, tanto Visual Basic .Net y C#, así como el resto de lenguajes de la plataforma .Net que es la clase StringBuilder. Hay gente que no sabe por que o cuando utilizar la clase [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/por-que-usar-stringbuilder-en-lugar-de-concatenar-strings/' addthis:title='Por qué usar StringBuilder en lugar de concatenar Strings ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/por-que-usar-stringbuilder-en-lugar-de-concatenar-strings/' addthis:title='Por qué usar StringBuilder en lugar de concatenar Strings ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>Ando un poco liado y llevo una temporada sin escribir. Hay un apunte, que es común para varios lenguajes que son <strong>Java</strong> y por ejemplo <strong>.Net</strong>, tanto <strong>Visual Basic .Net</strong> y <strong>C#</strong>, así como el resto de lenguajes de la plataforma <strong>.Net</strong> que es la <strong>clase StringBuilder</strong>. Hay gente que no sabe por que o cuando utilizar la <strong>clase StringBuilder</strong> y realmente es uno de esos pequeños detalles de <strong>buenas prácticas</strong>, que a simple vista en un proyecto pequeño no se aprecian, pero cuando entre manos tenemos un gran proyecto que recibe millones de peticiones diarias, estas pequeñas nuevas practicas pueden suponer un gran referente de ahorro en el consumo de memoria y procesador de un servidor.</p>
<p>Tanto en <strong>Java</strong> como en <strong>.Net</strong>, cuando creamos un nuevo <strong>String</strong>, instanciamos un <strong>objeto String</strong> en una variable, cuando con la sentencia "+=" vamos concatenando mas texto, lo que hacen estas plataformas es crear una nueva instancia del <strong>objeto</strong> con la concatenación de las dos variables de texto. Por otro lado, cuando tenemos un <strong>StringBuilder</strong> instanciamos una <strong>clase StrringBuilder</strong>, llamando al método "<strong>append</strong>" en <strong>Java</strong> y "<strong>Append</strong>" en <strong>.Net</strong>, lo que hacemos es realizar una concatenación real de texto en el buffer de texto para luego instanciar un <strong>nuevo objeto String</strong> cuando llamemos al método "<strong>toString</strong>" en <strong>Java</strong> y "<strong>ToString</strong>" en <strong>.Net</strong>. A simple vista parece una tontería, cuando tenemos un texto que concatenamos 2 o 3 veces, realmente no merece la pena generar un <strong>StringBuilder</strong>, pero cuando concatenamos repetidamente texto varias veces el rendimiento es mayor si utilizamos <strong>StringBuilder</strong>, ya que si tenemos 20 concatenaciones seguidas, utilizando <strong>Strings</strong> normales concatenados, tendríamos 20 <strong>instancias de objetos</strong>, mientras que con <strong>StringBuilder</strong> solo 2. Como he dicho antes, en un pequeño proyecto, esto es prácticamente inapreciable, pero cuando tenemos un proyecto que recibe millones de peticiones diarias, algo tan tonto como utilizar <strong>concatenaciones de texto</strong> o <strong>StringBuilder</strong> puede suponer tener que añadir mas memoria al servidor para soportar tantas <strong>instancias de objetos</strong> e incluso un procesador mas potente para soportar el paso del recolector de basura para tantos <strong>objetos instanciados</strong>, esto en el mejor de los casos, si no llegamos al caso de tener que añadir un servidor al cluster para soportar todo esto.</p>
<p>Un cumulo de <strong>buenas practicas</strong> pueden suponer un gran ahorro de recursos, que se traducen en ahorro de dinero, cuando se trata de grandes proyectos.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/por-que-usar-stringbuilder-en-lugar-de-concatenar-strings/' addthis:title='Por qué usar StringBuilder en lugar de concatenar Strings ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/por-que-usar-stringbuilder-en-lugar-de-concatenar-strings/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JOGL, OpenGL en Java</title>
		<link>http://www.indalcasa.com/programacion/jogl-opengl-en-java/</link>
		<comments>http://www.indalcasa.com/programacion/jogl-opengl-en-java/#comments</comments>
		<pubDate>Sat, 17 Nov 2007 17:02:05 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://84.20.10.74/~indalcas/?p=35</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/jogl-opengl-en-java/' addthis:title='JOGL, OpenGL en Java ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>No hace mucho descubrí JOGL, es una librería de Java para poder acceder directamente a , gracias a los plugins de NetBeans. Con JOGL podemos crear desde juegos tridimensionales, en 3D, hasta aplicaciones con una mayor funcionalidad y mayor vistosidad en cuanto a gráficos se refiere.OpenGL JOGL es una libreria que utiliza el JNI de [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/jogl-opengl-en-java/' addthis:title='JOGL, OpenGL en Java ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/jogl-opengl-en-java/' addthis:title='JOGL, OpenGL en Java ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>No hace mucho descubrí <strong>JOGL</strong>, es una librería de Java para poder acceder directamente a , gracias a los <strong>plugins de NetBeans</strong>. Con <strong>JOGL </strong>podemos crear desde juegos tridimensionales, en 3D, hasta aplicaciones con una mayor funcionalidad y mayor vistosidad en cuanto a gráficos se refiere.<strong>OpenGL</strong></p>
<p><strong>JOGL </strong>es una libreria que utiliza el <strong>JNI </strong>de Java para acceder a las funcionalides de C, por lo que el acceso a las funciones implementadas de <strong>OpenGL en JOGL</strong>, son realmente rápidas. Además de ofrecer todas las funciones de <strong>OpenGL</strong>, tiene una perfecta implementación con las librerías gráficas de <strong>Java AWT y Swing</strong>, por lo que podemos llegar a embeber <strong>OpenGL </strong>no solo dentro de la ventana, sino en controles, como por ejemplo crear efectos tridimensionales en botones.</p>
<p>Desde la <a href="http://plugins.netbeans.org/PluginPortal/" title="Página de plugin de NetBeans">página de plugins para NetBeans</a>, podremos instalar el plugin de <strong>JOGL para NetBeans</strong> que nos ofrece ademas de una plantilla de aplicaciones <strong>JOGL</strong>,  multitud de ejemplos para poder empezar a desarrollar. El sistema para instalar el plugin es descargar dicho plugin desde la página de <strong>NetBeans </strong>y luego en paquetes disponibles dentro de la sección de actualizaciónes (plugins) de <strong>NetBeans</strong>, encontramos una nueva categoría de <strong>JOGL </strong>desde la que podemos instalar todo lo que necesitamos. Si queremos instalar las librerías de JOGL independientemente de NetBeans o queremos ver algunos ejemplos o descargas como el JavaDoc de JOGL, que viene muy bien, podemos buscarlo en la <a href="https://jogl.dev.java.net/" title="Página oficial del proyecto JOGL">página oficial del proyecto JOGL</a>.</p>
<p>A partir de aquí, ya podemos empezar a realizar nuestras primeras pruebas y el resto ya depende de nosotros. Yo personalmente, tengo un libro de <strong>OpenGL para C</strong> y puedo decir que el 95% de las sentencias que aparecen en dicho libro, pueden implementarse sin dificultad en <strong>JOGL</strong>.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/jogl-opengl-en-java/' addthis:title='JOGL, OpenGL en Java ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/jogl-opengl-en-java/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>NetBeans 6.0 Beta 2 en PCLinuxOS</title>
		<link>http://www.indalcasa.com/programacion/netbeans-60-beta-2-en-pclinuxos/</link>
		<comments>http://www.indalcasa.com/programacion/netbeans-60-beta-2-en-pclinuxos/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 19:17:44 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://84.20.10.74/~indalcas/?p=33</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/netbeans-60-beta-2-en-pclinuxos/' addthis:title='NetBeans 6.0 Beta 2 en PCLinuxOS ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>Como hace poco he reinstalado todo el sistema operativo y he sustituido mi Ubuntu 7.10 por PCLinuxOS que me va mucho mejor, estoy todavía instalando aplicaciones. Ya instalé como escribi en una entrada anterior juntando Eclipse con Aptana, pero ahora le toca el turno a NetBeans que me gusta más como editor de Java y [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/netbeans-60-beta-2-en-pclinuxos/' addthis:title='NetBeans 6.0 Beta 2 en PCLinuxOS ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/netbeans-60-beta-2-en-pclinuxos/' addthis:title='NetBeans 6.0 Beta 2 en PCLinuxOS ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>Como hace poco he reinstalado todo el sistema operativo y he sustituido mi <strong>Ubuntu 7.10</strong> por <strong>PCLinuxOS</strong> que me va mucho mejor, estoy todavía instalando aplicaciones. Ya instalé como escribi en una entrada anterior juntando Eclipse con Aptana, pero ahora le toca el turno a <strong>NetBeans</strong> que me gusta más como editor de Java y como no, para probar los nuevos juguetes que tiene como el plugin de OpenGL de <strong>NetBeans 6</strong> que promete mucho.</p>
<p>El caso es que cuando me bajo el instalador y lo ejecuto, sorprendentemente <strong>la ventana del instalador esta vacia</strong>. Todo esta en blanco, sin nada. Me daba algunos errores de <strong>ClearLook</strong>, pero el problema no era ese. Buscando y probando muchas cosas al final doy con la clave. El problema es que tengo <strong>Beryl</strong> corriendo (al parecer tambien ocurre con <strong>Compiz-Fusion</strong>) y parece ser que he ahí el problema, ya que tenemos que declarar la siguiente variable en el sistema:</p>
<blockquote><p> AWT_TOOLKIT="MToolkit"</p></blockquote>
<p>Esto lo haremos añadiendo la linea anterior en el archivo /etc/environment. Con esto ya podemos <strong>instalar NetBeans 6 Beta 2</strong> con normalidad y usarla.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/netbeans-60-beta-2-en-pclinuxos/' addthis:title='NetBeans 6.0 Beta 2 en PCLinuxOS ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/netbeans-60-beta-2-en-pclinuxos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No se puede viajar al pasado con Java</title>
		<link>http://www.indalcasa.com/programacion/no-se-puede-viajar-al-pasado-con-java/</link>
		<comments>http://www.indalcasa.com/programacion/no-se-puede-viajar-al-pasado-con-java/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 18:10:29 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[compilación]]></category>
		<category><![CDATA[compilación futura]]></category>
		<category><![CDATA[compilar]]></category>
		<category><![CDATA[futuro]]></category>
		<category><![CDATA[recompilar]]></category>
		<category><![CDATA[tiempo]]></category>

		<guid isPermaLink="false">http://84.20.10.74/~indalcas/?p=14</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/no-se-puede-viajar-al-pasado-con-java/' addthis:title='No se puede viajar al pasado con Java ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>Por esas casualidades de la vida y probando un sistema de funcionamiento en una aplicación de Java a partir de la hora del servidor, hicimos pruebas cambiando la hora del sistema para probar que todo funcionaba correctamente. Mientras modificábamos la hora del sistema para comprobar el buen funcionamiento, encontrábamos algún que otro bug, que corregíamos [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/no-se-puede-viajar-al-pasado-con-java/' addthis:title='No se puede viajar al pasado con Java ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/no-se-puede-viajar-al-pasado-con-java/' addthis:title='No se puede viajar al pasado con Java ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>Por esas casualidades de la vida y probando un sistema de funcionamiento en una aplicación de <strong>Java</strong> a partir de la hora del servidor, hicimos pruebas cambiando la hora del sistema para probar que todo funcionaba correctamente. Mientras modificábamos la hora del sistema para comprobar el buen funcionamiento, encontrábamos algún que otro bug, que corregíamos recompilando sobre la marcha.</p>
<p>Después de 30 minutos de constantes pruebas, y cuando nos disponíamos a realizar la compilación definitiva para realizar un pequeño parche en el sistema nos encontramos con un problema, ¡No podemos compilar! Tenemos un problema, <strong>Java</strong> nos dice al intentar compilar que tenemos una versión más reciente ya compilada. Con las prisas y las pruebas y arreglos sobre la marcha, compilamos sin querer en el año 2008 y claro, ahora en el año 2007, Java no nos permite compilar ya que una compilación posterior ya se encuentra en el sistema.</p>
<p>La solución aunque un poco drástica, se nos ocurrió en cuanto se nos paso la cara de tontos, ya que realizamos un backup y borramos todas las clases compiladas para volver a generarlas.</p>
<p>Es un poco curioso que <strong>Java</strong> no nos permita compilar, o mejor dicho, recompilar una clase que ya se compilo en el futuro. Si alguien os dice que sois vosotros mismos que viene del futuro para daros una versión superior de alguna clase vuestra, no se la toméis, porque no os dejara compilarla.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/no-se-puede-viajar-al-pasado-con-java/' addthis:title='No se puede viajar al pasado con Java ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/no-se-puede-viajar-al-pasado-con-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

