Garbage In, Garbage Out Diseño web, tecnología, e internet. 2008-01-11T16:02:32+00:00
This is an Atom syndication feed. It is intended to be viewed in a news aggregator or syndicated to another site. Please visit the Atom Project for more information.
the-shaker: that blog/flickr/multimedia-aggregator kind of thing http://www.lacoctelera.com/myfiles/gigo/gigo65x65.png http://www.lacoctelera.com/gigo/post/2008/01/11/integracion-continua Integracion continua 2008-01-11T16:02:32+00:00 2008-01-11T16:03:34+00:00 <p>En mi nuevo trabajo hace tiempo que me preguntaba por que habia un programa llamado <a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a> compilando y ejecutando tests continuamente a nivel de integracion. Hoy me ha picado la curiosidad de saber por que se hace esto.</p> <p>Cuando varios programadores trabajan en un mismo proyecto con un sistema de control de versiones como <a href="http://subversion.tigris.org/">Subversion</a> o el antiguo <a href="http://www.nongnu.org/cvs/">CVS</a> es normal tener conflictos entre desarrolladores cuando alguno de ellos envio sus ultimos cambios al servidor. </p> <p>Es decir, si te mandan desarrollar una nueva caracteristica en un proyecto web o arreglar algun bug, normalmente te actualizas tu version del programa con un update, haces los cambios, compilas, ejecutas tests, y si todo va bien, envias tus cambios al servidor para que los incorpore al repositorio del proyecto. Pues bien, es normal que otros desarrolladores tambien envien nuevos cambios al repositorio y que esos cambios, a veces, puedan entrar en conflicto con los de otros programadores.</p> <p>La Integracion Continua consiste en compilar y ejecutar los tests de todo el proyecto contenido en el repositorio compartido por los programadores para detectar lo mas pronto posible esos posibles conflictos y arreglarlos cuanto antes. Esto puede ser manual, pero lo habitual y recomendable es hacerlo automaticamente con una herramienta como CruiseControl para evitar fallos humanos.</p> <p>Si quieres ampliar informacion sobre esto, te recomiendo que leas el <a href="http://martinfowler.com/articles/continuousIntegration.html">articulo de Martin Fowler sobre Integracion Continua (en ingles)</a>.</p> http://www.lacoctelera.com/gigo/post/2007/11/09/por-libertad-expersion-y-solidaridad-con-krusher Por la libertad de expersion y en solidaridad con Krusher 2007-11-09T12:51:02+00:00 2007-11-09T13:10:42+00:00 <p>Recientemente, se ha dictado una sentencia que condena al responsable de la frikipedia, Krusher, sin posibilidad de apelacion, por unos comentarios hechos por otra persona en contra de la mafia de la <a href="http://www.sgae.es/" title="http://www.sgae.es/" id="link_0">SGAE (Sociedad General de Autores y Editores)</a>, a la que me da nauseas enlazar, pero bueno.</p> <p>A estos personajes no les gusta que se les llame por su nombre, asi que hacen uso de sus tentaculos para sobornar a politicos y a quien haga falta para recaudar impuestos revolucionarios injustos a traves de CDs virgenes, memoras, reproductores MP3, etc. e incluso para conseguir sentencias favorables para seguir recaudando mas y enriquecer a los cuatro ricachuelos y pseudo-artistas de siempre.</p> <p>Reproduzco aqui la imagen de la entrada de la frikipedia que ha causado esta sentencia en solidaridad con Krusher y por la libertad de expresion, que despues del <a href="http://www.20minutos.es/noticia/262733/0/olmo/censura/jueves/" title="http://www.20minutos.es/noticia/262733/0/olmo/censura/jueves/" id="link_0">secuestro de El Jueves</a> y ahora esto, parece que esta bien tocada de muerte. Es posible que haya personas en este pais - España - capaces de pisotear descaradamente la constitucion?</p> <p><a href="http://www.lacoctelera.com/myfiles/gigo/sgae_frikipedia.jpg"><img src="http://www.lacoctelera.com/myfiles/gigo/sgae_frikipedia.jpg" id="img_0" class="imgcen" height="254" width="400"></a></p> <p>Mas informacion:<br /> <a href="http://www.davidarcos.net/2007/11/09/free-krusher/">http://www.davidarcos.net/2007/11/09/free-krusher/</a></p> http://www.lacoctelera.com/gigo/post/2007/11/08/que-es-linux-usando-ubuntu Que es Linux - Usando Ubuntu 2007-11-08T18:29:18+00:00 2008-01-11T16:05:58+00:00 <p>Hace una semanas me harte de la lentitud de Windows, de sus cuelgues, y de los virus, asi que decidi instalar Linux Ubuntu.</p> <h3>Que es Linux para gente no experta</h3> <p>Es el nucleo de varios sistemas operativos completos llamados distribuciones. Un sistema operativo sirve para interactuar con el ordenador. El mas utilizado hoy en dia es Windows. La diferencia de Linux con Windows es que Linux es libre, y se puede conseguir gratis. Tiene fama de ser mucha mas seguro que Windows y de ser dificil de utilizar, pero esto ultimo ha cambiado mucho hasta el punto de que hoy puedo decir que casi es tan facil de utilizar como Windows.</p> <h3>Ubuntu</h3> <p>Ubuntu es una distribucion, es decir, un sistema operativo completo basado en Linux. Esta destinado para gente que no es informatica y es muy facil de instalar y de usar. Puedes descargar una imagen del CD en <a href="http://www.ubuntu.com">www.ubuntu.com</a>, grabarla (con Nero por ejemplo), y probarlo en tu ordenador sin necesidad de instalarlo. Si te gusta, luego puedes instalarlo e incluso hacerlo convivir con Windows.</p> <h3>Lo que vas a ver<br /> </h3> <p>Si has grabado el CD de Ubuntu, inserta el CD, apaga el ordenador, enciende, y veras el sistema linux funcionando sin instalarlo - un poco lento debido al uso del CD. Veras algo asi:</p> <p><img src="http://www.lacoctelera.com/myfiles/gigo/ubuntu_install.jpg" id="img_0" align="middle" height="375" width="500"></p> <p>Y en la ultima version veras algo asi:</p> <object height="355" width="425"> <param name="movie" value="http://www.youtube.com/v/E4Fbk52Mk1w&amp;rel=1"></param> <param name="wmode" value="transparent"></param> <embed src="http://www.youtube.com/v/E4Fbk52Mk1w&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"></embed> </object> <p>Si te gusta y decides instalarlo, que sepas que podras tenerlo instalado junto con Windows. Para ello, Ubuntu dejara instaldo un menu para que elijas arrancar Windows o Linux al encender tu ordenador.</p> <h3>Compatibilidad con Windows</h3> <p>Los programas Linux normalmente son diferentes pero equivalentes y al 99% compatibles con Windows. Por ejemplo, no podras hacer funcionar Word o Excel, pero si tendras tu OpenOffice que puede manejar los archivos de Microsoft Office.</p> <p>Ademas, Ubuntu viene con muchisimos programas de serie: un editor fotografico parecido a Photoshop llamado Gimp, varios programas para escuchar musica, reproductores de peliculas, juegos, etc.)</p> <p>Yo tengo instalado <a href="http://www.openoffice.org/">OpenOffice</a> para usar documentos Word y Excel, <a href="http://www.gimp.org/">Gimp</a>, <a href="http://www.skype.com/">Skype</a>, <a href="http://www.amsn-project.net/">aMSN</a> para messenger, <a href="http://amarok.kde.org/">Amarok</a> que es un reproductor de musica increible capaz de obtener las letras de las canciones por internet y capaz de manejar mi iPod, <a href="http://www.amule.org/">aMule</a> que es la version de eMule de Linux, <a href="http://www.mozilla-europe.org/es/products/firefox/">Firefox</a> como navegador web, y varios reproductores de peliculas divx y DVD (<a href="http://www.gnome.org/projects/totem/">Totem</a> y <a href="http://www.mplayerhq.hu/design7/news.html"> Mplayer</a>).</p> <p>Ademas, instalar y desinstalar programas es ahora mas facil que nunca en Ubuntu Linux. </p> <p>Olvidate de virus. Olvidate de tener que llamar a un amigo cuando todo va muy lento y necesites reinstalar Windows. Linux ya es facil de usar. Pruebalo y alucina con el cambio!</p> http://www.lacoctelera.com/gigo/post/2007/11/08/sigamos-con-blog Sigamos con el blog 2007-11-08T17:23:33+00:00 2008-01-13T02:37:42+00:00 <p>Creo que es una tonteria terminar el blog porque si porque a veces tengo ganas de contar algo, asi que sigo. Quizas no muy frecuentemente, pero de vez en cuando escribire algo.</p> http://www.lacoctelera.com/gigo/post/2007/06/29/microsoft-surface-futuro-es-asombroso-y-ya-esta-aqui Microsoft Surface: el futuro es asombroso y ya esta aqui 2007-06-29T11:04:48+00:00 2007-11-06T08:01:15+00:00 <p>Acabo de ver los videos de <a href="http://www.microsoft.com/surface/">Microsoft Surface</a>. No tengo palabras. El c Menudo chisme guapo. Una especie de mesa-pantalla que iteracciona con los objetos y con tus manos al estilo iPhone, pero en gigante. No tengo mas comentarios, mejor ver los videos:</p> <p><a href="http://www.microsoft.com/surface/">http://www.microsoft.com/surface/</a></p> http://www.lacoctelera.com/gigo/post/2007/06/23/clamav-antivirus-gratuito ClamAV: antivirus gratuito 2007-06-23T13:39:25+00:00 2007-11-06T08:00:27+00:00 <p>Cualquiera que use Linux conoce <a href="http://www.clamav.net/">ClamAV o Clam Antivirus</a>, el antivirus de código abierto para UNIX. Bueno, en este tipo de sistemas realmente no hace falta antivirus si tienes cuidado con la administración del sistema. Realmente creo que está especialmente diseñado para escanear emails y sistemas windows.</p> <p>Bueno, dejando de lado estas historias, esta entrada la escribo para aquellos que quieran un antivirus sin tener que gastarse la pasta en los sangrantes antivirus típicos. Hombre, no tiene la misma eficacia, pero sirve de sobra para mí. Esto más un mínimo de cuidado es suficiente.</p> <p>Aquí se puede <a href="http://w32.clamav.net/">descargar para Windows</a>.</p> http://www.lacoctelera.com/gigo/post/2007/06/13/nunca-uses-macros-con-mismo-nombre-velocity-aunque-se-usen Nunca uses macros con el mismo nombre en Velocity aunque se usen en diferentes paginas 2007-06-13T15:07:10+00:00 2007-11-06T07:58:45+00:00 <p>Este problema fue para volverme loco.</p> <p>Tenia dos macros velocity (velocimacros) con el mismo nombre y diferentes parametros siendo usadas para mostrar un menu en paginas diferentes. De repente, el menu de una de estas desparecia de repente. A veces al reves: era el otro menu el que desaparecia.</p> <p>Mi compañero reconocio rapidamente el problema y me advirtio que no se podian tener dos macros con el mismo nombre y diferentes parametros aunque estuvieran siendo usados en paginas diferentes.</p> <p>Parece ser que cuando se carga una de las paginas que contiene la macro, velocity debe compilarla, y luego falla cuando intenta compilar la otra con el mismo nombre.</p> http://www.lacoctelera.com/gigo/post/2007/05/17/backword-aprende-ingles-con-firefox Backword: aprende ingles con Firefox 2007-05-17T11:44:59+00:00 2007-11-06T07:53:08+00:00 <p><a href="http://www.hachemuda.com/2007/05/15/backword-extension-genial-para-aprender-ingles-con-firefox/" title="http://www.hachemuda.com/2007/05/15/backword-extension-genial-para-aprender-ingles-con-firefox/" id="link_0">Leo en HacheMuda</a> una extension para Firefox para aprender ingles: <a href="https://addons.mozilla.org/en-US/firefox/addon/2955" title="https://addons.mozilla.org/en-US/firefox/addon/2955" id="link_1">BackWord</a> . La instalas, reinicias Firefox, y puedes ver lo que significan las palabras casi instantaneamente con tan solo situar el raton encima de una palabra inglesa. </p> <p>Problema: Por defecto esta configurado en chino. Vete a Herramientas &gt; Extensiones. Selecciona BackWord y pulsa opciones para configurarlo. Ahi mismo puedes configurarlo para que se active pulsando la tecla CTRL, ya que a veces es irritante que te salgan las palabras continuamente.</p> http://www.lacoctelera.com/gigo/post/2007/05/08/surefire-stdout Surefire a STDOUT 2007-05-08T15:03:13+00:00 2007-11-06T07:50:43+00:00 <p><a href="http://maven.apache.org/plugins/maven-surefire-plugin/" title="http://maven.apache.org/plugins/maven-surefire-plugin/" id="link_0">Surefire</a> es el plugin de <a href="http://maven.apache.org/" title="http://maven.apache.org/" id="link_1">Maven</a> que se encarga de los tests. Por defecto, deja sus informes en un fichero en el directorio target. </p> <p>Para la mayoria de la gente (como yo) es tedioso tener que acceder al fichero, abrirlo, y buscar la linea que te interesa. Con este comando haces que surefire saque los informes por consola:</p> <p>mvn test -Dsurefire.useFile=false</p> http://www.lacoctelera.com/gigo/post/2007/04/10/seleccion-discontinua-firefox-3 Seleccion discontinua en Firefox 3 2007-04-10T15:00:57+00:00 2007-11-06T07:45:43+00:00 <p>Firefox SI que mola! <a href="http://walhez.com.ar/?p=99" title="http://walhez.com.ar/?p=99" id="link_0">Tal y como leo en walhez</a> , Firefox 3 soportara seleccion discontinua. Y que es eso? Pues esto:</p> <p><img src="http://www.lacoctelera.com/myfiles/gigo/fx31.PNG" id="img_0" alt="Texto con diferentes partes seleccionadas discontinuamente" class="imgcen" height="225" width="400"></p> <p><strong>ACTUALIZACION</strong></p> <p>Antes se me olvido poner el enlace al articulo original, pero para contestar el comentario, la seleccion se hace manteniendo pulsada la tecla CTRL.</p> <p>Segun me cuentan en los comentarios, este es el <a href="http://www.zonafirefox.net/2007/04/firefox-3-soporta-seleccin-de-texto.html" title="http://www.zonafirefox.net/2007/04/firefox-3-soporta-seleccin-de-texto.html" id="link_0">articulo original</a> .</p> http://www.lacoctelera.com/gigo/post/2007/04/10/el-gobierno-se-plantea-eliminar-ingenierias-superiores-y El Gobierno se plantea eliminar las ingenierías superiores y reducir su duración 2007-04-10T14:53:32+00:00 2007-11-06T07:45:43+00:00 <p>Parece que el problema de las ingenierias empieza a tener una solucion:</p> <p><big><a href="http://www.20minutos.es/noticia/221126/0/proyecto/eliminar/ingenierias/">El Gobierno se plantea eliminar las ingenierías superiores y reducir su duración</a></big></p> <p>Como ingeniero tecnico me viene de perlas, pero reconozco que el problema es complejo porque ahora los que se quejan son los superiores, y no les falta razon. </p> <p>En este problema de titulitis, hace ya mucho tiempo que vi claro la solucion: empezar a trabajar cuanto antes. Por eso, despues de soñar toda mi vida con hacer la superior, decidi abandonar la idea. Era solo eso: un sueño. En la realidad, es pura burocracia. Trabajando y con ganas es como mas se aprende, si lo que realmente quieres es aprender.</p> http://www.lacoctelera.com/gigo/post/2007/04/05/tests-con-easymock Tests con EasyMock 2007-04-05T15:05:45+00:00 2007-12-12T01:40:08+00:00 <p><a href="http://www.easymock.org/" title="http://www.easymock.org/" id="link_0">EasyMock</a> es una libreria muy util para hacer pruebas unitarias con JUnit. Nos sirve para crear cualquier objeto fantasma (mock) y hacer que devuelva un resultado concreto para una entrada concreta.</p> <p>Por ejemplo, si queremos probar un servicio que necesita un DAO para obtener un dato, podemos crear un DAO fantasma (mock) que realice esa funcion y asi librarnos de dependencias y probar el servicio unitariamente.</p> <p>Para usar EasyMock tan solo hay que hacer 3 cosas:</p> <ol> <li>Crear el objeto fantasma (mock) con <strong>createMock</strong> <pre> <big>IMyDAO mockDAO = EasyMock.createMock(IMyDAO.class);</big> </pre> </li> <li>Proporcionar los parametros de entrada concretos y los objetos de salida concretos (si es necesario) con <strong>expect</strong>: <pre> <big>DAOPK pk = new DAOPK("111"); // clave de lo que se busca DAOReturn return = new DAOReturn("Alex"); EasyMock.expect(mockDAO.find(pk)).andReturn(return);</big> </pre> </li> <li>Generar la implementacion del mock con <strong>replay</strong>: <pre> <big>EasyMock.replay(mockDAO);</big></pre> </li> </ol> <p>Asi ya tendriamos un mock para el DAO y podriamos probar el servicio pasandole este mock:</p> <pre> <big>MyService service = new MyService(); service.setDao(mockDAO);</p> <p>Customer customer = new Customer("111"); service.findCustumer(customer);</big><small> </small></pre> http://www.lacoctelera.com/gigo/post/2007/04/04/plugin-eclipse-permite-acceder-las-implementaciones Plugin para Eclipse que permite acceder a las implementaciones de las interfaces 2007-04-04T11:55:24+00:00 2007-11-06T07:44:35+00:00 <p>Acabo de encontrar un plugin para Eclipse muy util que inserta en el menu contextual (el menu que sale con el boton derecho) opciones para poder ver la implementacion de un metodo de una interfaz:</p> <p><a href="http://www.eclipse-plugins.info/eclipse/plugin_details.jsp?id=288" title="http://www.eclipse-plugins.info/eclipse/plugin_details.jsp?id=288" id="link_0">Implementors Eclipse Plug-in</a> </p> <p>Es decir, si tenemos un bean que usa una interfaz de este tipo:</p> <pre> public class MyClass {</p> <p> private MyInterface bean; ... public void myMethod { bean.callMethod(); } } </pre> <p>Si hacemos clic con el boton derecho sobre "callMethod", veremos una opcion "Open Implementation" que nos permitira ver el codigo de la implementacion en lugar de ir a la declaracion del metodo en la interfaz.</p> http://www.lacoctelera.com/gigo/post/2007/03/27/maravillosa-sql-paginar-resultados Maravillosa SQL para paginar resultados 2007-03-27T16:21:00+00:00 2007-11-06T07:42:47+00:00 <p>Sencilla consulta SQL para paginar resultados para base de datos Oracle:</p> <pre> SELECT far_id, ROWNUM AS page_position, list_position FROM ( SELECT articles.far_id, ROWNUM AS list_position FROM ( SELECT far_id FROM far ORDER BY far_id ) articles ) WHERE list_position BETWEEN :min AND :max </pre> http://www.lacoctelera.com/gigo/post/2007/03/21/solucion-al-permgen-outofmemoryerror Solucion al PermGen OutOfMemoryError 2007-03-21T15:32:46+00:00 2007-11-06T07:41:43+00:00 <p>A mi me ha pasado muchas veces que al cuarto o quinto despliegue en Tomcat, saltan excepciones del tipo PermGen OutOfMemoryError.</p> <p>Gracias a <a href="http://del.icio.us/network/alexcuesta" title="http://del.icio.us/network/alexcuesta" id="link_0">mi red en del.icio.us</a> , he encontrado una posible solucion añadiendo los siguientes parametros a la maquina virtual que ejecuta Tomcat (o el contenedor J2EE que tengas):</p> <pre> <p>-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=128m</p> </pre> <p><a href="http://my.opera.com/karmazilla/blog/2007/03/13/good-riddance-permgen-outofmemoryerror" title="http://my.opera.com/karmazilla/blog/2007/03/13/good-riddance-permgen-outofmemoryerror" id="link_1">La explicacion en ingles en: Notes to self</a> .</p> http://www.lacoctelera.com/gigo/post/2007/03/20/stringbuilder-lugar-stringbuffer-jdk5 StringBuilder en lugar de StringBuffer en JDK5 2007-03-20T13:02:53+00:00 2007-11-06T07:41:33+00:00 <p>Supongo que muchos ya sabeis las diferencias entre String y StringBuffer. Basicamente, String es sincrono y por tanto mas lento, y StringBuffer es asincrono y mas rapido. Hay mas diferencias, pero os remito a la <a href="http://java.sun.com/j2se/1.5.0/docs/api/index.html" title="http://java.sun.com/j2se/1.5.0/docs/api/index.html" id="link_0">API JDK5</a> .</p> <p>En JDK5 hay una clase nueva llamada <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuilder.html" title="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuilder.html" id="link_1">StringBuilder</a> que tiene el mismo API que <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuffer.html" title="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuffer.html" id="link_2">StringBuffer</a> , es asincrona, pero es mas rapida. Se supone que va a sustituir StringBuffer asi que es mejor usar la nueva.</p> <p>[Perdonad las faltas de ortografia, pero los britanicos no tienen acentos ni enies]</p> http://www.lacoctelera.com/gigo/post/2007/03/19/retrotranslator-maven-plugin Retrotranslator Maven Plugin 2007-03-19T17:21:42+00:00 2007-11-06T07:41:26+00:00 <p>Nueva version de JDK, problemas de compatibilidad con lo antiguo. Gracias a mi <a href="http://del.icio.us/network/alexcuesta" title="http://del.icio.us/network/alexcuesta" id="link_0">red en del.icio.us</a> , he encontrado este <a href="http://mojo.codehaus.org/retrotranslator-maven-plugin/" title="http://mojo.codehaus.org/retrotranslator-maven-plugin/" id="link_1">plugin "retrotranslator" para maven que transforma clases JDK5 a JDK1.4.</a> Gracias dahernan! Siempre ojo avizor. ;)</p> http://www.lacoctelera.com/gigo/post/2007/03/17/novedades-java-1-5 Novedades en Java 1.5 2007-03-17T16:21:22+00:00 2007-11-06T07:41:10+00:00 <p>Hasta que he empezado a trabajar en mi nueva empresa, nunca me había dado de las novedades en el lenguaje en Java 1.5.</p> <ol> <li><strong>Tipos de datos parametrizados</strong>, es decir, ahora se puede especificar el tipo de datos que contienen estructuras tales como Vector o Map.</p> <pre class="codigo"><strong>// Vector de cadenas</strong> Vector&lt;String&gt; v = new Vector&lt;String&gt;(); v.addElement("Hola"); String s = v.getElementAt(0); v.addElement(new Integer(20));// Daría error!!</p> <p><strong>// HashMap con claves enteras y valores de vectores</strong> HashMap&lt;Integer, Vector&gt; hm = new HashMap&lt;Integer, Vector&gt;(); hm.put(1, v); Vector v2 = hm.get(1);</pre> <p>Esto permite evitar el uso de castings y de <strong>autoboxing</strong>:</p> <pre class="codigo">Vector&lt;Integer&gt; v = new Vector&lt;Integer&gt;(); v.addElement(30); Integer n = v.getElementAt(0); n = n+1;</pre> </li> <li><strong>Mejoras en blucles</strong>. Ahora existe un <strong>nuevo for</strong> para recorrer colecciones y arrays sin usar Iterator: <pre class="codigo"><strong>// Recorre e imprime todos los elementos de un array</strong> int[] arrayInt = {1, 20, 30, 2, 3, 5}; for(int elemento: arrayInt) System.out.println (elemento);</p> <p><strong>// Recorre e imprime todos los elementos de un </strong><strong>Vector</strong> Vector&lt;String&gt; v = new Vector&lt;String&gt;(); <strong>for(String cadena: v)</strong> System.out.println (cadena);</pre> </li> <li><strong>Tipo Enum</strong>. <pre class="codigo"><strong>// Define una lista de 3 valores y luego comprueba en un switch // cuál es el valor que tiene un objeto de ese tipo</strong> enum EstadoCivil {soltero, casado, divorciado}; EstadoCivil ec = EstadoCivil.casado; ec = EstadoCivil.soltero; switch(ec) { case soltero:System.out.println("Es soltero"); break; case casado:System.out.println("Es casado"); break; case divorciado:System.out.println("Es divorciado"); break; }</pre> </li> <li><strong>Imports estáticos</strong>. Permiten usar métodos y propiedades estáticas sin tener que referenciar la clase específicamente. <pre class="codigo">import static java.awt.Color; import static java.lang.Math;</p> <p>public class... { ... JLabel lbl = new JLabel(); lbl.setBackground(white); // Antes sería Color.white ... double raiz = sqrt(1252.2);// Antes sería Math.sqrt(...) }</pre> </li> <li><strong>Argumentos variables</strong>. Ahora se puede pasar una lista de argumentos variable a una función como en C: <pre class="codigo"><strong>// Funcion que tiene un parámetro <em>String</em> obligatorio // y n parámetros <em>int </em>opcionales</strong></p> <p>public void miFunc(String param, int... args) { ... // Una forma de procesar n parametros variables for (int argumento: args) { ... } ... }</p> <p>... miFunc("Hola", 1, 20, 30, 2); miFunc("Adios"); </pre> </li> <li><strong>Metainformación</strong>. Ahora se pueden añadir directivas que transmitan información a las herramientas de desarrollo tipo Eclipse, del mismo modo que @deprecated permite que el compilador muestre la palabra tachada. Por ejemplo: <pre class="codigo"><strong>// Definición de una interfaz mediante metainformacion</strong></p> <p>public @interface MiInterfaz { int metodo1(); String metodo2(); }</pre> </li> </ol> <p>Hay muchas más novedades relacionadas con la máquina virtual y con las librerías. Te recomiendo leer este <a href="http://www.jtech.ua.es/tutoriales/apuntes/sesion-java15-apuntes.htm" title="http://www.jtech.ua.es/tutoriales/apuntes/sesion-java15-apuntes.htm" id="link_0">documento de donde he extraído yo la información</a> más relevante.</p> http://www.lacoctelera.com/gigo/post/2007/03/17/de-vuelta-desde-londres De vuelta desde Londres 2007-03-17T15:44:08+00:00 2007-11-06T07:41:10+00:00 <p>Siento mucho no haber escrito mucho este mes en el blog, pero he estado realmente ocupado.</p> <p>Este mes me he mudado a Londres y esta semana he empezado a trabajar como Java Developer en <a href="http://www.facultyof1000.com/" title="http://www.facultyof1000.com/" id=link_0>Faculty of 1000</a> , una especie de Menéame para artículos de medicina y biología.</p> <p>Aunque seguiré hablando de desarrollo web en general, será inevitable que comience a hablar más de Java y J2EE que de maquetación HTML/CSS y accesibilidad.</p> http://www.lacoctelera.com/gigo/post/2007/02/27/test-una-entrevista-trabajo-londres Test para una entrevista de trabajo en Londres 2007-02-27T16:34:46+00:00 2007-11-06T07:38:35+00:00 <p>Así se las gastan algunas empresas londinenses para contratar gente.</p> <p><a href="http://www.lacoctelera.com/myfiles/gigo/Java-Test-v1_1.doc" title="http://www.lacoctelera.com/myfiles/gigo/Java-Test-v1_1.doc" id=link_0>Test para una entrevista en Londres como Java Developer</a> .</p> <p>No os dejéis impresionar, no todas son tan tocap...</p>