Blogia
El blog de Gux

tecnologia-programacion

SCWCD

La Sun Certified Web Component Developer es la certificación que me acabo de sacar esta mañana (un 89%, por si tenéis curiosidad Sonriente). Tal y como hice con la SCJP, dejo aquí un listado de recursos que puedan resultar útiles para los que se la quieran sacar:

  • El libro Sun Certified Web Component Developer, Study Guide. Para mí, imprescindible. Casi todo lo que te pueden preguntar en el examen está explicado aquí. Yo sólo me he encontrado una pregunta que no estuviera en algo del libro... Me gustó muchísimo más el de referencia del SCJP, pero oye, no está nada mal.
  • El simulador de EnthuWare para SCWCD. No está tan bien como el de Whizlabs, pero en Whizlabs todavía no hay versión para la versión 310-081, que es la que he hecho yo, sino para la 310-080, que es un poco más antigua. Al menos yo no lo he encontrado...
  • JavaBlackBelt ademas de ser una comunidad enorme basada en examenes no oficiales de java hechos por los usuarios, tiene una seccion de Mock Exams para las certificaciones. No la he utilizado demasiado para esta certificación, pero la tenía que mencionar.
  • JavaRanch uno de las recopilaciones mas grandes y recomendables de recursos sobre certificaciones java. Incluye un foro en el que se discuten muchas de las preguntas tipo de los examenes.
  • Certificado Java blog en castellano sobre las certificaciones. Muy interesante para saber cual es la ruta de las posibles certificaciones y cuestiones relacionadas.


¿Y esta publicidad? Puedes eliminarla si quieres.

Ultimisisísima versión del Hoygan Generator

Os la podéis bajar de aquí: Hoygan Generator.

Mete las mejoras que sugirió Zendir en los comentarios de la anterior versión:

  1. Menos frecuencia de introducción de tildes erróneas
  2. Ahora se come de vez en cuando alguna letra
  3. Ahora intercambia de vez en cuando letras con las vecinas
  4. Cambia de género / número algunos artículos determinados e indeterminados.

Más realismo imposible!

Las instrucciones para ejecutarlo son las mismas que siempre, sólo que descargando la última versión del enlace que he puesto arriba.

Esta es la última versión del Hoygan Generator que publico hasta que me cree el nuevo blog. Allí pondré esta aplicación a modo de aplicación web para que nadie tenga que instalarla. Simplemente meter el texto, darle al botoncito, y obtener el texto "traducido".

Actualización : Me había confundido de zip al subir... Había subido uno vacío. Ya está el link operativo.

Nueva versión de Hoygan Generator

Podéis bajarosla de aquí:



En esta versión hay nuevo:

  • he arreglado un problema que había cuando se escribían palabras que acababan en 'L' (como 'Miguel', Zendir)
  • algunas palabras como 'porque', 'que', 'aquí' o similares son traducidas ahora a 'xq', 'k', o 'aki'.
  • ahora se eliminan el 70% de las 'h' (para darle mas realismo todavía).
  • Se pueden meter ahora textos de varias líneas.

No lo había comprobado hasta ahora, pero se pegar texto en el programa con 'Ctrl+v' en la ventana de introducir el texto, y copiar el resultado para pegarlo en algún otro sitio con 'Ctrl+c' en la ventana de salida del texto traducido.

Si encontráis algún otro fallo, decídmelo para que lo solucione. Si no, de momento, no creo que toque más el programa.

Generador de Hoygan

Generador de Hoygan

Dicen que no hay nada más peligroso que un friki aburrido.

El caso es que tanto ayer como hoy me ha costado dormirme, así que me he puesto manos a la obra para hacer una de tantas gilipoyeces que tenía pendientes: "El generador de Hoygan".

Se suelen llamar "Hoygan" a los comentarios en blogs / foros, etc, escritos por tocapelotas, la mayoría, y por incultos, la minoría, con muchas faltas de ortografía y sintaxis, y normalmente en mayúsculas (para destacar). Ejemplos de estos comentarios se pueden ver en Hoygan.info

Si queréis probar mi generador, bajároslo de aquí:



Descomprimid el archivo HoyganGenerator.zip en vuestro ordenador, meteros en la carpeta 'HoyganGenerator', y ejecutar el archivo run.bat. Si estás en Linux el archivo a ejecutar es run.sh

Es un programa hecho en Java, así que no os va a funcionar si no tenéis instalada la máquina virtual de java. Bajarosla de aquí e instalarla si no estáis seguros de que la tengáis instalada ya (eso si realmente lo queréis probar, que tampoco es obligatorio :-) ).

Para hacerlo más completo tendría que meter:

  • Sustituir frases y palabras por abreviaciones: "QUE" por "Q" (o "K"). "PORQUE" por "XQ", "POR" por "X", y algunas por el estilo
  • Suprimir algunas "H" (con una probabilidad del 60%, por ejemplo).
  • Quitar signos de puntuación, o meterlos aleatoriamente entre algunas palabras (una probabilidad del 20%, por ejemplo)
  • Intercambiar algunas letras (probabilidad del 5%).

Cuando lo he ido a probar antes de subirlo, me he dado cuenta que casca si pones más texto del que se ve en la pantalla. También debería solucionar ese bug.

¡Bueno, me gustaría que todos los comentarios que hagáis en esta entrada tengan forma de Hoygan!

PD: Campanilla, ya lo sé, podría hacer cosas útiles... Guiño

PD2: Por si alguno tiene curiosidad, el código está en el mismo zip, en el directorio 'src'. Es una gilipoyez enorme, así que no creo que a nadie le sirva para aprender, pero oye, si os apetece, he dejado los archivos del proyecto de Eclipse por si queréis importarlo y juguetear.

Posible nuevo blog

Cuando estuve en Londres intentaba de vez en cuando conectarme a blogia para ir contando las cosas que iba haciendo. El caso es que me metía en la academia de mi hermana, donde tenían una conexión que estaba caída muy a menudo. Y cuando no estaba caída la red, era Blogia la que estaba caída. Es el fenómeno "mierda-cubo":
Cuando hay pala no hay cubo
Cuando hay cubo no hay pala
Pero el caso es que mierda siempre hay

No era la primera vez que me pasaba que no podía publicar nada porque Blogia estuviera caído, y me imagino que no será la última. El post que puse ayer de Londres (IV) se llegó a publicar de milagro. La aplicación de administración me iba tan lenta que no pude añadir imágenes, y que el post llegara a publicarse fue milagroso. Afortundamente lo había escrito en el TextPad.

Esto mismo lo estoy escribiendo en el TextPad porque no me fío nada...

El caso es que he decidido cambiarme de proveedor. He estado pensando distintas alternativas, y sólo me fío de una: yo mismo.

Los pasos que debería dar están claros:

  1. Comprarme un dominio
  2. Elegir hosting
  3. Hacer mi nuevo blog
  4. Intentar migrar los post y comentarios antiguos al nuevo
  5. Crearme una cuenta de Google Ad-sense para empezar a cobrar pasta con todo el asunto.

Para el paso 1 me gustaría vuestra ayuda. ¿Se os ocurre algún nombre original? Seguro que 'guxrg' está libre, pero cuanto más tiempo llevo viéndolo, más me doy cuenta que es difícil de leer. 'gux' estaría genial porque es muy fácil de recordar, pero no creo que me dejen pillarme un dominio tan corto (todo es probar). En fin, toda sugerencia es bienvenida.

El paso 2 es el más peliagudo para mí. Me gustaría que el hosting fuera gratuito y bueno, pero eso es bastante jodido. De todos modos, si pongo publicidad Google Ad-Sense y mi número de visitas aumenta (las 15/20 diarias que tengo ahora no me darían ni para empezar a pagar el alojamiento), no me importaría pagar alguna cantidad pequeña.
También me gustaría que el servidor fuera algún tipo de servidor de aplicaciones J2EE (un Tomcat o un Resin estaría genial), pero creo que va a ser bastante jodido. A unas malas me hago el blog en PHP o en Perl y pisto, que hosting de esos lenguajes hay bastante más.

El paso 3 es sencillo, pero algo trabajoso. Si lo hago en Java/J2EE tardaría muy poquito (para algo soy cinturón marrón), pero si tengo que hacerlo en PHP o Perl tendría que repasar/aprender el lenguaje, y me llevaría un pelín más de tiempo. Además, en estos lenguajes no conozco alternativas a los 170000000 frameworks J2EE que podría utilizar para simplificarme la vida...

El paso 4 depende mucho de Blogia, y de momento no he visto que me de ninguna herramienta que me permita hacerlo. A lo mejor me tengo que hacer un pequeño programita para hacerlo. No creo que sea demasiado complicado, pero a unas malas, empiezo desde 0.

Para que el paso 5 tenga algún sentido tengo que aumentar mi número de visitas. Eso es bastante fácil, porque hace tiempo que quiero hacer una serie de artículos de programación que no he escrito hasta ahora por limitaciones con Blogia y por no aburriros demasiado. Si promociono alguno de esos artículos por Meneame o por Barrapunto cuando venga a cuento seguro que el número de visitas diaria sube una barbaridad.e estado pensando y se me han ocurrido algunas características chulas que le podría meter:

  1. Podría escribir algunos artículos (sobre todo de programación) en inglés y en español, y mostrar una versión u otra en función del idioma del usuario. Programar esto es muy fácil, pero a lo mejor me da pereza escribir en dos idiomas...
  2. RSS separados para artículos técnicos y para todos los demás. Como sé que la mayoría de gente que me lee ahora mismo se aburriría leyendo artículos de programación, les puedo evitar el sufrimiento dando los dos tipos por separado. Es como tener dos blogs, cada uno con su público, pero con una sola URL que recordar.
  3. Contador de visitas hecho por mí directamente en el servidor. Tiene una única desventaja: que tengo que hacerlo (aunque es bastante fácil). Ventajas: no ralentizará la carga de páginas como hace el 'Google Analytics' y 'FreeCounter', Funcionará en navegadores que no soporten javascript (como los de la Nintendo DS), y también importante, no le doy a Google la información de qué navegador / sistema operativo utilizan mis lectores. Bastante saben ya de nosotros.

 

Para el diseño había pensado hacer una serie de diseños y colgarlos por aquí, haciendo una votación a ver cuál os gusta más. Como ya sabéis (me suena que ya lo he dicho alguna vez), tengo el sentido estético en el culo, así que toda sugerencia siempre será bienvenida.

En fin, ¿qué os parece la idea? ¿tenéis alguna sugerencia de cosas que le pueda meter al nuevo blog?

Cinturón marrón en java

Buenas chavales. Hacía mucho tiempo que la tenía abandonada, pero hoy he vuelto a meterme en JavaBlackBelt (un sitio de exámenes de java), y he visto que habían liberado una serie de examenes.

Como me faltaban sólo 6 puntos para el cinturón marrón (para el que hay que sumar 60 puntos) he hecho tres exámenes: Java SE Tools (sobre Javadoc, Jar, Javac, Java...: 2 pts), Java SE Basic API Intermed (API's básicas, como Calendar, StringBuffer, String...: 2pts) y JUnit Intermed (sobre temas más o menos avanzados de JUnit como patrones de diseño utilizados: 3 pts).

El caso es que he aprobado, y ahora soy cinturón marrón. Si pinchais aquí, podréis ver el ranking de frikis de java , en el que estoy bastante bien (puesto 37 ahora mismo) :) 

¿Y esta publicidad? Puedes eliminarla si quieres.

Recursos para la certificación SCJP para Java versión 5.0

Actualmente me estoy preparando para la certificacion de Java SCJP (Sun Certified Java Programmer) version 5.0 (Tiger). Este examen es el que abre las puertas para aprobar otras certificaciones java mas avanzadas, como la de Web Developer (SCWCD), Developer (SCJD) o Enterprise Architect (SCEA).
Pese a que es el primero de la serie, muchas personas lo califican como el mas dificil de toda la industria tecnologica, y por lo que he podido comprobar hasta ahora, mucha razon no les falta a los que afirman algo asi. Pese a que tengo un cinturon azul en java en JavaBlackBelt y que llevo programando (en la universidad y en el trabajo) en este lenguaje casi tres años intensivamente, hay muchisimas preguntas capaces de sacarme los colores.
El examen en si se compone de 72 preguntas, y tiene una duracion de mas de 3 horas. Para aprobarlo hace falta un porcentaje de aciertos de 59 preguntas.
Para las personas que quieran sacarse esta certificacion hay una serie de recursos imprescindibles:
  • El libro oficial Sun Certified Programmer for Java 5 Study Guide, por Kathy Sierra y Bert Bates. El Libro con mayusculas. Muy bien escrito, con mucho sentido del humor, y con un 99% de cobertura de los objetivos del examen (el 1% restante son preguntas relacionadas con algunas API de Java, como las de colecciones o Locales). No enseña solo lo que hay que estudiar, sino como estudiarlo, dando enfasis en las triquiñuelas que los creadores del examen puedan haber preparado en las preguntas para que piquemos como subnormales. Muy Muy recomendable. Estudiarlo a fondo casi te garantiza el aprobado, segun muchos lectores.
  • Whizlabs. Simulador de examenes que permite realizar examenes de prueba (Mock exams) para ver como te desenvolverias en el real. La version completa guarda un historico para mostrarte los objetivos del examen que mas debes repasar. Un excelente complemento para El Libro, pero por desgracia solo funciona en Windows (no he probado con Wine).
  • JCHQ una recopilacion de recursos creada por Marcus Green sobre los examenes. He leido muy buenas opiniones de esta pagina, pero la verdad es que no la he usado mucho.
  • Examinator Un simulador de examenes bastante menos completo que el de Whizlabs, pero que al ser online puede ser ejecutado en cualquier ordenador sin instalacion y sin dependencia de sistema operativo. Solo he ejecutado la version de prueba (60 preguntas), y la verdad es que las preguntas me han parecido mas faciles que las de otros simuladores, pero pese a todo no estaba nada mal.
  • JavaBlackBelt ademas de ser una comunidad enorme basada en examenes no oficiales de java hechos por los usuarios, tiene una seccion de Mock Exams para las certificaciones. Aunque no lo utilizo especialmente para sacarme la certificacion, no podria ignorarla en una recopilacion de este tipo.
  • JavaRanch uno de las recopilaciones mas grandes y recomendables de recursos sobre certificaciones java. Incluye un foro en el que se discuten muchas de las preguntas tipo de los examenes.
  • JavaRabbit una recopilacion que parece muy interesante, pero que no he utilizado hasta ahora.
  • Certificado Java blog en castellano sobre las certificaciones. Muy interesante para saber cual es la ruta de las posibles certificaciones y cuestiones relacionadas.

Entrevista a alguno de los mejores programadores

Acabo de ver en JavaHispano un enlace al blog de un tío que ha hecho una entrevista a los que él consideraba los mejores programadores. Les mandó un mail a cada uno con las preguntas, y algunos le contestaron, y otros no. La verdad es que las respuestas no tienen precio.

Algunos de los programadores consultados son:

  • Linus Torvalds: por si no lo sabéis el primer autor del kernel de Linux. Un programador del copón bendito, que tiene una costumbre muy curiosa: cuando no le gustan las herramientas disponibles, se hace una! El caso más famoso es el kernel de linux, pero también se ha hecho su propio sistema de control de versiones porque no le gustaban ni CVS ni Subversion, y su preferido BitKeeper no era libre, y su propio editor de texto: una versión lite de emacs.
  • Dave Thomas: co-autor de uno de mis libros preferidos sobre programación: el "pragmatic programmer", además de las secuelas, también sin desperdicio, "pragmatic Ruby", "pragmatic project automatition", "pragmatic source control version with cvs"...
  • David Heinemeier Hansson: autor del framework web que está rompiendo ahora mismo: Ruby On Rails.
  • Steve Yegge: para mí un desconocido.
  • Peter Norvig: uno de los autores del lenguaje Lisp, y padre de la inteligencia artificial. Actualmente (ya debe de ser mayorcito) uno de los pesos pesados en google.
  • Guido Van Rossum: autor de uno de mis lenguajes favoritos: python, y actualmente currante en google.
  • James Gosling: padre de Java y peso pesado en Sun Microsystems
  • Tim Bray: otro desconocido para mí.

El resto de los programadores a los que consultó no le han contestado, y él no ha publicado nombres. A mí me faltan, así a bote pronto, John Karmack, autor del Doom cuando tenía 17 años, y posterior autor de Quake, entre otras cosas y Bruce Eckel, autor de los mejores libros de Java y C++"Thinking In Java" y "Thinking In C++".

En fin, muy interesante.

Clear Case, esa gran basura

Resulta que curro en una empresa donde todo lo que huela a gratis es desechado, y si encima de gratis es libre no te quiero ni contar. Ante esa tesitura resulta que es requisito utilizar como control de versiones el IBM Clear Case, además de otras basuras de IBM como WebSphere.

Un día, hablando con uno de los empleados de alta jerarquía de por aquí (todo hay que decirlo, de los más abiertos a utilizar software libre), le comenté que con CVS (o para el caso Subversion) nos ahorraríamos bastantes problemas con la forma de desplegar nuestra aplicación, que es un tanto... peculiar. Me contestó que en empresas de tipo "pepito de los palotes" se podían utilizar herramientas de juguete como CVS, pero no en esta empresa... La verdad es que era para pegarles tres leches.

El caso es que para ser una herramienta que cuesta una pasta gansa, todavía no he visto nada en Clear Case que deje pequeño a CVS o Subversion, y sí bastantes cosas molestas.

Por ejemplo, es imposible marcar los archivos fuentes con meta-información sobre la versión del mismo, el autor de la última revisión o la fecha, que permitan determinar a quién se puede preguntar ante un fallo crítico de algo en producción.

Otra cosa un poco asquerosa es que el soporte para etiquetar las versiones para facilitar la recuperación de una versión anterior es sorprendentemente mala. Por lo visto es necesario una herramienta externa para hacerlo, que no viene por defecto en las instalaciones "lite" del producto que nos han puesto a nosotros. El caso es que salvo que se vaya archivo por archivo, es imposible recuperar una versión determinada.

Clear Case tiene la molesta costumbre de mover lo que los proyectos que compartas a un directorio determinado en el que controlar todo. Si utilizas algún IDE más o menos bien acoplado a la herramienta (como Eclipse con el plugin de CC o el WebSphere) no tendrás demasiados problemas, salvo que utilices algún tipo de script para tus labores de desarrollo, como es mi caso dadas las circunstancias. Eso tampoco debería ser un gran problema (se modifican los scripts y a correr), salvo en situaciones complejas como la del proyecto en el que me encuentro, donde se requieren soluciones de lo más originales...

Otra cuestión menor es que a la hora de añadir un directorio al control de versiones no hay ninguna opción para añadir también el contenido al control de versiones, con lo que hay que ir subdirectorio a subdirectorio añadiendo todo, aunque no haya ningún archivo que no quieras compartir.

Sin embargo, lo que más me repatea de CC es su modelo pesimista de bloqueo de ficheros. Para mí la ventaja de CVS o Subversion sobre otras herramientas con modelo pesimista de bloqueo es que si dos desarrolladores quieren editar el mismo archivo el control de versiones no te lo impide, y comprobará a la hora de hacer commit que no se solapen los cambios, por lo que no es necesario "reservar" un archivo y dejar parado a tu compañero que necesita editar otra parte del mismo fichero que tú. A fin de cuentas, según crece el proyecto en el que trabajas, las posibilidades de que se solapen cambios decrecen muy rápidamente. Y cuando se da el caso, CVS o Subversion te avisan, para que puedas ponerte de acuerdo con tu compañero sobre qué es lo que tiene que tener realmente el fichero. 

En fín, que una de las cosas que no voy a echar de menos cuando acabe este proyecto es la herramienta esta.

¿Y esta publicidad? Puedes eliminarla si quieres

Cinturón azul

Ayer (viernes) conseguí, por fin, mi cinturón azul en JavaBlackBelt, después de aprobar, de forma poco ortodoxa, el examen de "Nuevas características de Java 5".

El problema es que lo he conseguido con el equivalente electrónico a copiar. En jbb hay tres tipos de exámenes: los que valen para conseguir puntos (examenes reales), los que todavía no están 100% revisados, y por tanto no valen para construir puntos (examenes beta) y los que están en construcción. La cuestión es que antes sólo se podía conseguir puntos de los examenes reales, pero como han migrado todo de Struts a WebWorks, han introducido un bug que permite hacer, como si fuera real, un examen en beta ¡¡¡Con una sola pregunta!!!!

Como hacía mucho que no me metía (dos semanas es mucho para mí :-) ) fui directo a la página de ese examen para ver si lo habían liberado ya, y al ver el link de "tomar el examen real" fui de cabeza a por él. Mi sorpresa fue tremenda cuando vi que sólo había una pregunta, y que al contestarla (era fácil de cojones) me dice "Enhorabuena!!! ya eres cinturón azul!", en una página que me permitía mandar un mail a quien quisiera para avisarle del logro...

Así que he reportado el bug en javalobby para que lo solucionen, porque es un fallo muy gordo, y de paso les he pedido que restituyan mi perfil, que no me apetece aprobar examenes copiando (a fin de cuentas esto no es la universidad, si los hago es única y exclusivamente porque me sale de los güevos(TM) ).

Pero bueno, mientras lo solucionan o no, disfruto de ser cinturón azul y de volver a estar entre los 50 primeros del mundo :-)

¿Y esta publicidad? Puedes eliminarla si quieres