Garbage In, Garbage OutDiseñ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 thinghttp://www.lacoctelera.com/myfiles/gigo/gigo65x65.pnghttp://www.lacoctelera.com/gigo/post/2008/01/11/integracion-continuaIntegracion continua2008-01-11T16:02:32+00:002008-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-krusherPor la libertad de expersion y en solidaridad con Krusher2007-11-09T12:51:02+00:002007-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-ubuntuQue es Linux - Usando Ubuntu2007-11-08T18:29:18+00:002008-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&rel=1"></param>
<param name="wmode" value="transparent"></param>
<embed src="http://www.youtube.com/v/E4Fbk52Mk1w&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-blogSigamos con el blog2007-11-08T17:23:33+00:002008-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-aquiMicrosoft Surface: el futuro es asombroso y ya esta aqui2007-06-29T11:04:48+00:002007-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-gratuitoClamAV: antivirus gratuito2007-06-23T13:39:25+00:002007-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-usenNunca uses macros con el mismo nombre en Velocity aunque se usen en diferentes paginas2007-06-13T15:07:10+00:002007-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-firefoxBackword: aprende ingles con Firefox2007-05-17T11:44:59+00:002007-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 > 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-stdoutSurefire a STDOUT2007-05-08T15:03:13+00:002007-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-3Seleccion discontinua en Firefox 32007-04-10T15:00:57+00:002007-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-yEl Gobierno se plantea eliminar las ingenierías superiores y reducir su duración2007-04-10T14:53:32+00:002007-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-easymockTests con EasyMock2007-04-05T15:05:45+00:002007-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-implementacionesPlugin para Eclipse que permite acceder a las implementaciones de las interfaces2007-04-04T11:55:24+00:002007-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-resultadosMaravillosa SQL para paginar resultados2007-03-27T16:21:00+00:002007-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-outofmemoryerrorSolucion al PermGen OutOfMemoryError2007-03-21T15:32:46+00:002007-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-jdk5StringBuilder en lugar de StringBuffer en JDK52007-03-20T13:02:53+00:002007-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-pluginRetrotranslator Maven Plugin2007-03-19T17:21:42+00:002007-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-5Novedades en Java 1.52007-03-17T16:21:22+00:002007-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<String> v = new Vector<String>();
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<Integer, Vector> hm = new HashMap<Integer, Vector>();
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<Integer> v = new Vector<Integer>();
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<String> v = new Vector<String>();
<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-londresDe vuelta desde Londres2007-03-17T15:44:08+00:002007-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-londresTest para una entrevista de trabajo en Londres2007-02-27T16:34:46+00:002007-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>