<?xml-stylesheet type="text/xsl" href="http://ajayu.memi.umss.edu.bo/omegaman/rss/rssstyles.xsl"?>
<rss version='2.0'   xmlns:dc='http://purl.org/dc/elements/1.1/'>
    <channel xml:base='http://ajayu.memi.umss.edu.bo/omegaman/'>
        <title><![CDATA[programacion java : Actividad]]></title>
        <description><![CDATA[Actividad para  programacion java, alojada en Ajayu.]]></description>
        <generator>Elgg</generator>
        <link>http://ajayu.memi.umss.edu.bo/omegaman/</link>        
        <item>
            <title><![CDATA[BlueJ y Greenfoot ahora open source]]></title>
            <link>http://ajayu.memi.umss.edu.bo/omegaman/weblog/bluej-greenfoot-ahora-open-source</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/omegaman/weblog/bluej-greenfoot-ahora-open-source</guid>
            <pubDate>Tue, 10 Mar 2009 12:54:39 GMT</pubDate>
		<dc:subject><![CDATA[greenfoot]]></dc:subject>
		<dc:subject><![CDATA[open source]]></dc:subject>
		<dc:subject><![CDATA[bluej]]></dc:subject>
            <description><![CDATA[Si alguien lo sabia, por que no dijo nada? Finalmente BlueJ y GreenFoot son open source. Habia algunos interesados en echarle mano al codigo. Es <a href="http://www.bluej.org/news/opensource.html"  title="bluej y greenfoot ahora open source">todo suyo</a>.]]></description>
        </item>
                
        <item>
            <title><![CDATA[SwingSet3 is present!!!]]></title>
            <link>http://ajayu.memi.umss.edu.bo/omegaman/weblog/swingset3-is-present</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/omegaman/weblog/swingset3-is-present</guid>
            <pubDate>Fri, 27 Jun 2008 13:26:52 GMT</pubDate>
		<dc:subject><![CDATA[swing]]></dc:subject>
		<dc:subject><![CDATA[SwingSet3]]></dc:subject>
		<dc:subject><![CDATA[JavaSE]]></dc:subject>
		<dc:subject><![CDATA[java 6]]></dc:subject>
            <description><![CDATA[<p class="style3">
Seguramente se acordarán del SwingSet2 que venía con los demos del jdk; pues al igual que ese, SwingSet3 es el nuevo kit de demos de los componentes del paquete swing de java. 
</p>
<p class="style3"  align="center">
<a href="http://ajayu.memi.umss.edu.bo/xjkwak/files/-1/450/SwingSet3a_0.png" ><img src="http://ajayu.memi.umss.edu.bo/_icon/file/450" alt="" /></a> 
</p>
<p class="style3">
Entre lo nuevo que podemos ver en este set: 
</p>
<ul>
	<li>El look-and-fell  llamado <strong>Nimbus</strong>  (para verlo es necesario tener la última actualización de Java, a la fecha: <strong>Java SE 6 Update 10</strong>)</li>
	<li>Una manera más fácil de ver el código de alguna característica en particular.</li>
	<li>Una manera más fácil de añadir nuevos demos de componentes.<br />
	</li>
	<li>Nuevas características en algunos componentes.</li>
	<li>Etc.</li>
</ul>
<strong>Nuevos componentes:</strong> Spinner (ya no tendremos que simularlo <img src="http://ajayu.memi.umss.edu.bo/_tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-tongue-out.gif"  border="0"  alt="Tongue out"  title="Tongue out" />)<br />
<p align="center">
<a href="http://ajayu.memi.umss.edu.bo/xjkwak/files/-1/451/SwingSet3b.png" ><img src="http://ajayu.memi.umss.edu.bo/_icon/file/451" alt="" /></a>
</p>
<p align="left">
<strong>Nuevas características:</strong> ver JTable 
</p>
<div align="center">
</div>
<p align="center">
<a href="http://ajayu.memi.umss.edu.bo/xjkwak/files/-1/452/SwingSet3c.png" ><img src="http://ajayu.memi.umss.edu.bo/_icon/file/452" alt="" /></a> 
</p>
<p>
<strong>Referencias???</strong>
</p>
<p>
Visiten: <a href="https://swingset3.dev.java.net/">https://swingset3.dev.java.net/</a> ahi está todo 
</p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Compilador java en linea]]></title>
            <link>http://ajayu.memi.umss.edu.bo/omegaman/weblog/compilador-java-en-linea</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/omegaman/weblog/compilador-java-en-linea</guid>
            <pubDate>Thu, 17 Apr 2008 14:23:51 GMT</pubDate>
		<dc:subject><![CDATA[servicios compilación]]></dc:subject>
		<dc:subject><![CDATA[compilador web]]></dc:subject>
            <description><![CDATA[<p>
Debe haber muchos, el que acabo de usar para probar un programita es:
</p>
<p>
<a href="http://www.innovation.ch/java/java_compile.htm">http://www.innovation.ch/java/java_compile.htm</a>
</p>
<p>
¿No habrá BlueJ en línea? O por lo menos que acepte un proyecto BlueJ y lo compile ... para ir trabajando en un café internet.
</p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Estos tipos primitivos ...]]></title>
            <link>http://ajayu.memi.umss.edu.bo/omegaman/weblog/estos-tipos-primitivos</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/omegaman/weblog/estos-tipos-primitivos</guid>
            <pubDate>Thu, 17 Apr 2008 14:12:07 GMT</pubDate>
		<dc:subject><![CDATA[autoboxing]]></dc:subject>
		<dc:subject><![CDATA[ortogonalidad]]></dc:subject>
		<dc:subject><![CDATA[irregularidades]]></dc:subject>
            <description><![CDATA[<p>
... siempre traen problemas.
</p>
<p>
Ejemplo:
</p>
<p>
<code class="java">&#160;
class Autoboxing
&#160;
{
&#160;
  public void prueba()
&#160;
{
&#160;
    Integer i = 4;
&#160;
    if (4 instanceof Integer)
&#160;
      System.out.println("Yes!");
&#160;
    else
&#160;
      System.out.println("No chango");
&#160;
    }
&#160;
}
&#160;
&#160;</code>
</p>
<p>
Error de compilacion:
</p>
<p>
[macpablo:~/tmp] pablo% javac Autoboxing.java<br />
Autoboxing.java:7: unexpected type<br />
found   : int<br />
required: reference<br />
    if (4 instanceof Integer)<br />
        ^<br />
1 error<br />
 
</p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[De nuevo Java vs C: más medidas de performance]]></title>
            <link>http://ajayu.memi.umss.edu.bo/omegaman/weblog/nuevo-java-vs-c-mas-medidas-performance</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/omegaman/weblog/nuevo-java-vs-c-mas-medidas-performance</guid>
            <pubDate>Tue, 06 Nov 2007 11:41:08 GMT</pubDate>
		<dc:subject><![CDATA[C]]></dc:subject>
		<dc:subject><![CDATA[comparación]]></dc:subject>
		<dc:subject><![CDATA[performance]]></dc:subject>
		<dc:subject><![CDATA[Java]]></dc:subject>
            <description><![CDATA[<p>
Se trata de <a href="http://www.stefankrause.net/wp/?p=4"  title="java cs c">programas que miden la velocidad de aplicaciones computacionales</a> que tienen lo mínimo de E/S. Algunas conclusiones:
</p>
<ul>
	<li>The early JDK 7 build 20 is a step in the right direction. It’s
	performance is better than JDK 6 in every(!) benchmark ...</li>
	<li>Saying that C is generally several times faster than java is -
	according to those benchmarks - simply wrong ...</li>
	<li>Saying that Java is faster than C can also be pretty wrong,
	especially if you have to stick with one JVM ... </li>
</ul>
<p>
Es también interesante del artículo (y de uno posterior que está referenciado) el uso de otras herramientas de Java y C, por ejemplo el JDK de IBM y de BEA para Java y el compilador de Intel para C (esta es uno de los compiladores más optimizados para tecnología Intel que se conoce, por supuesto). 
</p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[El ciclo for: un dinosaurio en proceso de extinción]]></title>
            <link>http://ajayu.memi.umss.edu.bo/omegaman/weblog/ciclo-for-dinosaurio-proceso-extincion</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/omegaman/weblog/ciclo-for-dinosaurio-proceso-extincion</guid>
            <pubDate>Sat, 20 Oct 2007 13:17:35 GMT</pubDate>
		<dc:subject><![CDATA[Haskell]]></dc:subject>
		<dc:subject><![CDATA[Smalltalk]]></dc:subject>
		<dc:subject><![CDATA[ciclo for]]></dc:subject>
		<dc:subject><![CDATA[ciclos]]></dc:subject>
		<dc:subject><![CDATA[iteradores]]></dc:subject>
		<dc:subject><![CDATA[listas por comprensión]]></dc:subject>
            <description><![CDATA[Si, el título es provocativo a propósito, pero no armemos una guerra santa por favor. Se trata de un <a href="http://beautifulcode.oreillynet.com/2007/10/writing_your_last_forloop.php"  title="for loop">breve artículo</a> que muestra las evoluciones de un ciclo para recorrer sobre una estructura. Desde el clásico for con un contador, en el que se explicita una estructura de datos subyacente (por lo menos algunas propiedades a las que está sujeta la estructura: secuencia, indizado, ...), hasta los <a href="http://forum.java.sun.com/thread.jspa?threadID=339609&amp;messageID=1396165"  title="smalltalk iterators">iteradores de Smalltalk</a> o las <a href="http://www.haskell.org/onlinereport/exps.html"  title="comprehension lists Haskel">listas por comprensión de Haskell</a> (esta otra <a href="http://www.eli.sdsu.edu/courses/spring01/cs635/notes/iterator/iterator.html"  title="iterators">lectura</a> es un poco más sintetizada, muy al estilo académico). A pesar de que la wikipedia puede no ser "la fuente definitiva del saber", uno encuentra cosas interesantes, y esto es lo que dice sobre los iteradores denominados <a href="http://en.wikipedia.org/wiki/List_comprehension"  title="listas por comprensión">listas por comprensión</a> mostrando ejemplos en varios lenguajes de programación.]]></description>
        </item>
                
        <item>
            <title><![CDATA[Espacio máximo de un String]]></title>
            <link>http://ajayu.memi.umss.edu.bo/omegaman/weblog/espacio-maximo-de-un-string</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/omegaman/weblog/espacio-maximo-de-un-string</guid>
            <pubDate>Thu, 13 Sep 2007 23:57:59 GMT</pubDate>
		<dc:subject><![CDATA[java]]></dc:subject>
		<dc:subject><![CDATA[tamaño máximo]]></dc:subject>
		<dc:subject><![CDATA[String]]></dc:subject>
            <description><![CDATA[<p>
Hace algunos días alguien me pregunto personalmente cuanto es el espacio máximo que puede ocupar un String, lo que pienso sería mejor pensar es cuantos caracteres puede almacenar una String. Mi explicación fue la siguiente:
</p>
<p>
Debemos ir a la defición de la clase String, si nos fijamos un String está
implementado por un arreglo de char, por lo tanto eso nos lleva a que
la longitud dependerá de cuanto puede almacenar un arreglo, el tamaño máximo de una arreglo, entonces si observamos, lo máximo que se puede poner para el tamaño de un arreglo es
un int, por lo tanto podriamos pensar que el tamaño máximo de una
cadena es:
Integer.MAX_VALUE (2147483647) sin embargo, si hacemos esto, observamos que
si hacemos algo como esto:<br />
int[] arreglo = new int[Integer.MAX_VALUE];<br />
y
lo hacemos correr. saldra un mensaje "java.lang.OutOfMemoryError
", indicando que el arreglo excede el tamaño de la memoria de la
Maquina VIrtual, eso porque JAVA tiene por defecto un espacio para
ocupar, pero simodificamos eso (aumentamos) entonces lo maximo será
2^31-1 = Integer.MAX_VALUE
caracteres...  
</p>
<p>
Entonces ahora sacamos esta conclusion, como cada caracter ocupa 2 bytes en JAVA [1], entonces se puede
almacenar 2(2^31-1) bytes lo que equivale más o menos a 4 GB<br />
Bueno .. este fue el análisis que hice y llegue a estas conclusiones... <br />
<br />
Espero pueda servir de algo a otras personas .... 
</p>
<p>
 [1]: <a href="http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html">http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html</a>
</p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Filthy Rich Clients]]></title>
            <link>http://ajayu.memi.umss.edu.bo/omegaman/weblog/filthy-rich-clients</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/omegaman/weblog/filthy-rich-clients</guid>
            <pubDate>Mon, 27 Aug 2007 13:17:08 GMT</pubDate>
		<dc:subject><![CDATA[java]]></dc:subject>
		<dc:subject><![CDATA[java2d]]></dc:subject>
		<dc:subject><![CDATA[swing]]></dc:subject>
            <description><![CDATA[<p>
Libro de Java2D y Swing <a href="http://filthyrichclients.org/">http://filthyrichclients.org/</a>
</p>
<p>
Los ejemplos han sido recientemente liberados bajo licencia <a href="http://es.wikipedia.org/wiki/Licencia_BSD">BSD</a>. 
</p>
<p>
&nbsp;
</p>
<p>
&nbsp;
</p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Wallpapers de NetBeans]]></title>
            <link>http://ajayu.memi.umss.edu.bo/omegaman/weblog/wallpapers-de-netbeans</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/omegaman/weblog/wallpapers-de-netbeans</guid>
            <pubDate>Sat, 18 Aug 2007 15:02:11 GMT</pubDate>
		<dc:subject><![CDATA[netbeans]]></dc:subject>
		<dc:subject><![CDATA[wallpaper]]></dc:subject>
		<dc:subject><![CDATA[java]]></dc:subject>
            <description><![CDATA[<p>
Para aquellos que gustan de un verdadero IDE (Entorno INTEGRADO de Desarrollo) para Java (principalmente), les dejo el enlace de una página [1] de la comunidad NetBeans en la que se ofrece algunos wallpapers (entre otras cosas).
</p>
<p>
 [1] <a href="http://www.netbeans.org/community/teams/evangelism/collateral.html#wallpapers">http://www.netbeans.org/community/teams/evangelism/collateral.html#wallpapers</a>
</p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Performance de Java: E/S]]></title>
            <link>http://ajayu.memi.umss.edu.bo/omegaman/weblog/performance-de-java-es</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/omegaman/weblog/performance-de-java-es</guid>
            <pubDate>Wed, 15 Aug 2007 23:54:07 GMT</pubDate>
		<dc:subject><![CDATA[programación]]></dc:subject>
		<dc:subject><![CDATA[entrada/salida]]></dc:subject>
		<dc:subject><![CDATA[optimización código]]></dc:subject>
		<dc:subject><![CDATA[performance]]></dc:subject>
		<dc:subject><![CDATA[Java]]></dc:subject>
		<dc:subject><![CDATA[I/O]]></dc:subject>
            <description><![CDATA[<p>
Bueno, acabo de escribir en mi blog sobre el mito de la performance de Java. A la par he decidido dedicar un tiempo a demostrar algunas cosas que se puede hacer para mejorar la velocidad de programas Java. He googleado un poco y encontrado es artículo sobre la <a href="http://java.sun.com/developer/technicalArticles/Programming/PerfTuning/"  title="mejora de la performance E/S en Java">mejora de la performance de E/S en Java</a>. Unas pequeñas pruebas con solamente la salida. Un programa tan sencillo como este para mostrar 100000 números en la pantalla:
</p>
<p>
<code class="java">&#160;
public class SOP {
&#160;
    public static void main(String args[]) {
&#160;
      long timeBefore = System.currentTimeMillis();  
&#160;
      final int N = 100000;
&#160;
      for (int i = 1; i &lt;= N; i++)
&#160;
        System.out.println(i);  
&#160;
      long timeAfter = System.currentTimeMillis();
&#160;
      System.out.println((timeAfter - timeBefore) + "ms");
&#160;
    }
&#160;
}
&#160;
&#160;</code> 
</p>
<p>
La corrida tarda 4677ms.  Luego, si ponemos en un archivo de salida en cambio de mostrarlo en pantalla tenemos el tiempo de 1330ms. Lo que nos indica que algo pasa con el System.out.println (SOP), ya que la diferencia entre el vaciado a la pantalla y a un archivo es de alrededor de un tercio. El problema es que el SOP está pensado para E/S interactiva, es decir, tan pronto tienes algo que mostrar ponlo en la pantalla ya que tal vez hay que hacer una lectura en base a esa información. Pero para la generación de grandes cantidades de datos, no es necesario mostrar en la pantalla. Al vaciar a un archivo ya se nota que el Buffer de salida tiene que llenarse primero y luego se pasa a almacenar el flujo en el archivo. Pero también se puede configurar el objeto de salida para que: el buffer sea más grande y se espere su llenado para el vaciado en la salida correspondiente. El programa que hace esto sería:
</p>
<p>
<code class="java"> 
import java.io.*;
&#160;
public class SOP {
&#160;
    public static void main(String args[]) {
&#160;
      long timeBefore = System.currentTimeMillis();
&#160;
      FileOutputStream     fdout = new FileOutputStream(FileDescriptor.out);
&#160;
      BufferedOutputStream bos   = new BufferedOutputStream(fdout, 1024);
&#160;
      PrintStream          ps    = new PrintStream(bos, false);
&#160;
      System.setOut(ps);  
&#160;
      final int N = 100000;
&#160;
      for (int i = 1; i &lt;= N; i++)
&#160;
        System.out.println(i);
&#160;
      long timeAfter = System.currentTimeMillis();
&#160;
      System.out.println((timeAfter - timeBefore) + "ms");
&#160;
      ps.close();
&#160;
    }
&#160;
}
&#160;
&#160;</code>
</p>
<p>
El programa ahora muestra 391ms. Una mejora de un orden de magnitud. Lo que ha hecho que la diferencia no sea tan drástica en el primer programa es que se muestran enteros, entonces de a varios caracteres por llamada al SOP. La performance se degrada más si hacemos una llamada por caracter (el numero 23789 tiene cinco caracteres). ¿Vale la pena entender bien los mecanismos de E/S no? Sabemos que en Java es compleja, pero es una solución completa y elegante que se puede ver en muy pocos lenguajes de programación.
</p>]]></description>
        </item>
        
    </channel>
</rss>