jun 18

Los sistemas de control de versiones son adictivos. No puedes probarlos, porque luego no puedes vivir sin ellos. Aunque sea un pequeño ejemplo el que vas a programar, te sientes perdido sin tu repositorio y empiezas a pensar “¿y si se me ocurre cambiar esto o lo otro, y luego me arrepiento?”. Ese tipo de “problemas” se solucionan casi en el acto con un VCS. Y si es distribuido (Git o Mercurial), mejor que mejor.

Antes de seguir, quiero dejar claro que no entro en las guerras religiosas entre los DCVS Git o Mercurial. Yo uso Mercurial porque Joel Spolsky lo explica de forma increíblemente sencilla. Aunque ahora que Git viene integrado con XCode4, probablemente es una buena alternativa… bueno, no :-) . En fin, usa el que te de la gana, pero usa uno.

Para casi todos mis proyectos uso Mercurial. No lo uso para los ejemplos que escribo para mis cursos. Y estaba pensando “¿porqué no usarlo?”. Por pereza mental, y por hacer siempre las cosas de la misma forma. Mi padre dice que “si un burro tira de una noria para un lado y le das la vuelta, ya no sabe tirar de ella”. Y es que nos acostumbramos a hacer siempre lo mismo, de la misma forma, y nos estancamos. De vez en cuando hay que revisarlo todo con una mirada fresca y en lugar de pensar “¿hay una manera de optimizar esto que estoy haciendo?” debemos plantearnos “¿en serio tengo que seguir haciendo esto?”.

El caso es que un sistema de control de versiones es casi perfecto para dar clases. Puedes tener una primera versión, sencilla, y luego ir promoviendo a las distintas versiones más avanzadas, que pueden ser changesets o bien nuevas ramas. Los cambios que hagas durante la clase para demostrar algo siempre puedes revertirlos sin problemas. Para eso está el DCVS. Y distribuir el código es más sencillo: compartes tu repo, y los alumnos se clonan los repositorios y punto. No hay que andar con historias de copiar los Workspaces de Eclipse y que luego falle (los WS de Eclipse dependen del sistema en el que los uses, hay que cambiar luego los Build Paths, etc.). Como se puede ver, todo son ventajas. La pregunta es porqué no lo he usado hasta ahora…

Instalar Mercurial

Evidentemente, antes de nada lo primero es instalar Mercurial, ya sea para Linux, Windows o Mac, o para donde vayas a usar el DCVS. Si no, el plugin de Eclipse no podrá usar Mercurial porque no lo encontrará en tu sistema. Te lo bajas de su sitio web oficial.

Instalando hgEclipse

HgEclipse es un plugin para Eclipse que añade soporte Mercurial a tus proyectos. Una vez instalado, en el menú contextual del proyecto encontrarás en la opción Team > Share la parte de Mercurial. Para instalarlo, iremos a Help > Install New Software e introduciremos el repositorio http://cbes.javaforge.com/update. En mi caso (instalándolo en Mac) no necesito los binarios de Mercurial para Windows, así que no los marco para instalar.

Instalando hgEclipse: repositorios

Instalando hgEclipse: repositorios

Cuando pulsemos Next, pasaremos a descargar e instalar el plugin. Al final no hay más remedio que reiniciar Eclipse. Así que hazlo :-)

hgEclipse instalándose

hgEclipse instalándose

Usando HgEclipse

Una vez con todo instalado, lo primero es crear el repositorio Mercurial en nuestro proyecto. Eso lo prepara todo para poder gestionar las versiones de tu codigo fuente. Equivale a un “hg init”. Para ello, pulsaremos con el botón derecho del ratón en el nombre de nuestro proyecto y seleccionaremos Team > Share Project. Si todo está correctamente instalado nos aparecerá una ventana como la siguiente:

Share > Project

Share > Project

Como queremos crear un repo Mercurial, basta con pulsar siguiente. Nos mostrará dónde va a crear el repositorio (que es una carpeta llamada .hg, dentro de nuestra carpeta de proyecto). Aparecerán unos nuevos iconos en las carpetas y ficheros de nuestro proyecto y la palabra [new] indicando que el repo es nuevo, pero aún no se ha realizado el primer commit.

Repositorio tras el init

Repositorio tras el init

¡Vamos a añadir ficheros a nuestro repositorio! Botón derecho en el proyecto > Share Project, pero ahora aparece un menú con un montón de opciones. Seleccionamos Add. Esto añade los ficheros del proyecto al repositorio. Yo suelo añadir únicamente el código fuente, pero no los ajustes del proyecto, ni las carpetas propias de Eclipse, como muestro a continuación:

Añadamos ficheros al repo!

Añadamos ficheros al repo!

Ahora que hemos añadido, los iconos de los ficheros fuente cambian y tienen un “+” azul al lado. Están ya controlados por el repositorio, pero no hemos subido este cambio, que en este caso es subir la primera versión. Para ello, Team > Share Project > Commit y añadimos un mensaje de commit. HgEclipse nos muestra los ficheros que va a subir, y los que no tiene “controlados”, por si queremos añadirlos.

Commit

Commit

Al pulsar OK, ¡listo!. Ya tenemos control de versiones funcionando. Ahora, si modificamos un fichero se nos mostrará como cambiado y podremos hacer un commit con esos cambios. O podremos compartir el código fuente del proyecto por la red con la opción Serve. Cualquiera en la red podrá hacer un Pull del repo y bajarse este código fuente. Mucho más rápido que compartir el proyecto en una carpeta SMB y encima evitas problemas con las configuraciones de Eclipse (yo lo uso en Mac y mis alumnos, normalmente, en Windows)

Las opciones del menú de Share Project son muy amplias. Os animo a irlas probando y a aprender Mercurial entre todos. El que tenga un truco especial de cómo usa Mercurial, ya sabe, que use los comentarios.

hg commit -m "post acabado"
hg tag -m "v1.0"
Tagged with:
abr 05

Me paro un momento y miro en lo que estaba trabajando, y los programas que tengo abiertos ahora mismo, y no puedo evitar pensar que soy lo más alejado del minimalismo. Al menos en lo que se refiere al ordenador. Era minimalista cuando no tenía dinero más que para mi querido Amstrad CPC 464 con el monitor fósforo verde, con su unidad de casetes. El único periférico que tenía era un Joystick. Y a usarlo. Pero veía en las películas a gente en países lejanos y extraños, en salas llenas de ordenadores.

Como el programador de Parque Jurásico (que, por supuesto, además de ser el malo, cobarde y torpe, estaba mal pagado y era gordo y feo). Por cierto, si veis de nuevo JP os llamarán la atención dos cosas: una, que están programando fumando, algo impensable en cualquier entorno de hoy en día. La otra, que el sistema de “bug tracking” que usan es una libreta donde van anotando los errores :-)

Volviendo al tema que me traía aquí, en esta mañana he comenzado programando en C, en el IDE Eclipse corriendo sobre Windows 7. Ese Windows 7 está instalado en mi MBP. Por si fuera poco frikismo, he usado el escritorio remoto de Windows para programar esos ejemplos en una ventana del iMac de 27″, que para eso tengo una pantalla grande. Mientras programaba iba actualizando la presentación de Keynote que acompaña al curso, en el iMac. Sonaba la música desde iTunes, donde estaba restaurando mi iPhone 3Gs con una copia de seguridad de ayer: mis niños han borrado algunas fotos en un descuido.

He terminado con C y me he pasado a WordPress. Arrancando una máquina virtual VMWare de Bitnami, que ya tiene un entorno WP completo sobre Linux, me he dedicado a crear un nuevo sitio para migrar una vieja web que hice hace ya la tira en Typo3. Es decir, instala plugins, widgets, temas, escribe posts, importa información, etc.

Ahora toca pensar en el próximo curso de Java EE que tengo que impartir a finales de mes. Java, Servlets, EJBs, JBoss, Eclipse de nuevo (aunque ahora en su “sabor” Java). Tendré que ojear un libro, que tengo en formato CHM (formato típico de Windows en otra época). Y luego, un poco de Objective C para comenzar un proyecto iPad que me han encargado. Tengo cosas que leer de UML…

Es por este desbarajuste de trabajo que tengo, con tantas tecnologías, frameworks, lenguajes, herramientas y entornos distintos por lo que amo a mis dos Macs. Necesito ser anti-minimalista, ya que si lo fuera no podría hacer la mitad de las cosas que hago. Esta es la razón de haber ampliado mi iMac a 12 GB de RAM. Aún así, procuro no instalar nada si ya tengo una aplicación que hace más o menos lo mismo, que si no acabas con un montón de aplicaciones similares que no acabas de dominar en profundidad.

Bueno, sigo, que quiero ir terminando. Que no hace mucho me comentaron que a lo mejor tengo que aprender CLIPS:-)

jun 25

Un poco (más) de autobombo. Comentaba hace unos días que me iba a presentar al examen de certifiación de Java Sun Certified Web Component Developer. Hoy, tras un par de semanas intensas y más sufrimiento del que esperaba, lo he aprobado con un 79%. Un poco raspado, ya que el aprobado está en el 70%, pero… está aprobado, ¿no?

Esta certificación se une al Sun Certified Java Programmer 1.5 y Sun Certified Business Component Developer 1.3 que ya tenía. Y, si todo va bien, a finales de Julio me presentaré al SCJP 1.6, para así tener estas cuatro certificaciones y poder cobrar mis horas a precio de Gurú :-) . No, ahora en serio, voy a intentar aplicar estas certificaciones en algo que quiero preparar en los próximos meses. Permanezcan atentos a sus receptores…

Tagged with:
jun 10

Cuando el año pasado en Octubre, decidí dejar Isotrol e iniciar una nueva etapa en solitario programando apps para el iOS (el S.O. del iPhone, iPod Touch e iPad) tenía claro que no quería cometer viejos errores de mis anteriores etapas como empresario. Quería crecer y mejorar, como persona, como profesional y como emprendedor. Por ello me metí en Amazon y compré un conjunto de libros que tocan estos tres temas.

Pero claro, comprar los libros no es lo mismo que leerlos. Y leerlos no es lo mismo que comprenderlos. Y, en cualquier caso, lo importante, lo único importante de toda preparación, es aplicar lo aprendido. Leer, comprender, aceptar e interiorizar no son nada comparados con hacer. La parte más importante del Getting Thing Done es, precisamente, el Done.

De momento, llevo leídos:

  • Gestiona mejor tu vida, de Berto Pena, librazo que recomiendo a cualquiera que sienta que no le llegan las horas al final del día.
  • The 4 hour workweek, un libro revolucionario por lo simple que te plantea cómo cambiar las cosas. Hay que leerlo dejándose retar por las nuevas ideas de Tim Ferriss y ser capaz de ser flexibles y responder al reto. Me lo recomendó Jaime Gallo y ha sido una revelación.
  • Beginning iPhone 3 Development ha sido mi primer libro de iPhone SDK, y me ha ayudado a preparar mis primeras Apps. He necesitado leerme también (en formato electrónico, no aparece en la foto) Learn Objective-C on the Mac, para tener una idea del lenguaje que está detrás de Cocoa Touch y no perderme. Este último me ha encantado, porque es muy académico y directo. Si sabes C, o Java, te explica las cosas con profundidad y sin mitos. Pero no te lleva de la manita, ni trata de suavizar según que cosas.

Estoy ahora mismo con:

Y luego vendrán:

  • En Julio, SCJP 1.6 Study Guide.
  • Y en Agosto – Septiembre, mezclaré los libros de Joel Spolsky y Micro ISV con el segundo del iPhone, iPhone SDK 3 Programming.

Por supuesto, seguiremos leyendo en blogs, en PDFs (algo del iPad habrá que mirar), etc. Es fundamental el estar permanentemente formándonos, revisando, mejorando (o intentándolo). Tener curiosidad y ganas de aprender es uno de los ingredientes de la salsa de la vida.

¿Y tú? ¿Con qué libros andas ahora? ¿Me recomiendas alguno?

Tagged with:
jun 09

Pulsa en la foto para ver al autor.

El Sun Certified Web Component Developer es el examen de certificación de Sun sobre las tecnologías Servlet y JSP de Java EE. Me apetecía tenerlo, tras aprobar en 2008 el SCJP y el año pasado el SCBCD. Y en ello estoy ahora, estudiando de cara al día 25, cuando tendré que hacer el examen.

Para pasarlo, estoy usando el libro de Kathy Sierra, Bryan Basham y Bert Bates (de nuevo, esta gente sólo escribe libros) Head First Servlets & JSP. No se si lo he comentado antes por aquí, pero me encantan los libros de la serie Head First. Con tantos dibujitos, fotos y chorradas, aprendes casi sin darte cuenta. Son efectivos, y ayudan a prepararse este examen con el mínimo sufrimiento. Un poco lo que siempre digo al empezar mis cursos: “aquí os vais a reír mucho e igual aprendéis algo”.

Además del libro (y de tener los Vouchers para acceder al examen y apuntarte en la web de Prometric), es necesario probar con pequeños programitas Java los conceptos que aparecen en el libro. En mi caso, estoy abusando de mi pequeño Netbook con Ubuntu Netbook Remix, al que le he instalado una versión portable de Java JDK 6 y Tomcat y que llevo a todas partes para repasar. Otra de las herramientas importantes que estoy usando es un mapa mental de la certificación SCWCD creado con XMind, que retoco en Linux y en mi MacBook Pro. Es un work-in-progress, pero podéis verlo en:

http://www.xmind.net/share/dfreniche/

Y, por supuesto, ya me he comprado el simulador del examen de Enthuware. Espero que, como en las dos anteriores ocasiones, me ayude a aprobar.

Ya os contaré si apruebo. Si no, me callaré como una pu…erta :-)

mar 15

Ya he comentado por aquí antes que uso los mapas mentales a menudo para organizar mis ideas. Y los uso para todo. Uno de ellos, que se está volviendo enorme, es el que uso para organizar mis proyectos de “retro-informática”. Que si comprar una compact-flash para usarla como disco duro en un Amiga 600, que si montar una disquetera de 5″1/4, esas cosas.

Pues XMind me ha dejado de funcionar en mi Mac. Y no me preguntéis porqué, porque no tengo ni idea de la causa raíz del problema. No se si será haber instalado el SDK para el iPhone, o haber trasteado cosas para prepararme el SCJP / SCBCD, el caso es que XMind ahora no me funciona. Al ser un programa Java, he buscado si dejaba algún log y el error que me aparece es: “No application id has been found”. Después de Googlear un rato, parece que este problema se origina cuando Eclipse (o alguna de sus bibliotecas) no está bien instalado.

Sea como sea, necesito que XMind funcione, y he localizado una solución temporal válida. En la web de XMind podemos descargar una versión Mac (un DMG) y una versión “portable”. Me he bajado la versión portable y he copiado en la carpeta Aplicaciones de mi Mac las carpetas “XMind for Mac OS X”, donde está el ejecutable, y “Commons”, que es donde están las bibliotecas de Eclipse que antes no se encontraban. Mano de Santo. Ahora puedo seguir con mis mapas, que es lo que me urge. La solución definitiva, la publicaré si la encuentro.

Os dejo con el mapa de mis retro-máquinas, que está en constante cambio :-)

Mapa mental de mis máquinas

Tagged with:
mar 01

Cuando aprobé el SCBCD, el pasado Enero, terminé con el cerebro como si tuviera a Bob Esponja en lugar de meninges. Decidí darme un mes para recuperar la temperatura de funcionamiento normal de mi cabeza. Ese mes ha pasado, y hoy voy a empezar con el SCWCD. Otra sopa de letras. Esta es la certificación de Java EE sobre Servlets y JSP, y alguna tecnología web más.

No tengo ni idea de cuándo me voy a presentar. Esta vez quiero dedicar un mes a leerme el libro y, cuando lo tenga visto, hacer exámenes de prueba tranquilamente. Y luego presentarme.

Tagged with:
feb 05

Ya comenté en Diciembre que había aprobado el SCJP (Certificación de Sun como Programador Java, v1.5). Pues bien, hace una semana aprobé la SCBCD, la certificación de desarrollador de componentes de negocio, v1.3.

¿Bueno, y qué es ésto?. Una manera de demostrar que medio empiezo a entender qué es un Enterprise Java Bean (EJB), que es, explicado muy llanamente, un componente (un conjunto de clases java, archivos de configuración XML y otras muchas cositas y reglas) que se comprime en formato ZIP y que permite representar datos, tratar mensajes o bien gestionar los procesos de una web. Supongo que los puristas se estarán removiendo en su silla por esta explicación, pero es que no quiero extenderme ni largar un rollo sobre EJBs.

Este año, 2009, me quiero dedicar a “coleccionar” certificaciones. Me explico. Durante unos años he sido profesor errante de diversas materias. Desde Java básico a gestión de proyectos. Y he tenido que leer un par de libros. Creo que ahora es tiempo de recoger y plasmar en titulitos del fabricante lo que se supone que medio controlo.

Algunos de los libros frikis que poseo

Algunos de los libros frikis que poseo

La siguiente certificación va a ser el Desarrollador de Componentes Web (SCWCD). Probablemente después venga el SCJD y a lo mejor alguna certificación Linux, como la LPI-1 (la sencillita).

Pero antes, me voy a dar un mes de reposo mental, que falta me hace, mientras espero el suspenso en la certificación de ITIL Service Manager :-)

Tagged with:
dic 22

Probablemente los SCJPs entre el público piensen “pues vaya nota”, “tampoco es para sacar pecho publicándola”, etc. Y tienen razón. Para aprobar el SCJP es necesario sacar al menos un 59%, y con un 70% uno está más que aprobado. Con lo que una buena nota sería del 80% para arriba. Pero considerando mi situación actual:

  • con dos niños de menos de 3 años el mayor. Vamos, que no duermo mucho.
  • viviendo a 120 Km del lugar de trabajo (3 h. de desplazamientos diarios, para que luego digan que la juventud no queremos trabajar :-) )
  • con unos años ya, ¡que la costumbre de estudiar se pierde!
  • con el nuevo rol que desempeño en Isotrol de Service Manager, que me exige un 120% de dedicación.

estoy feliz de haber cumplido, como me exigía a mi mismo en éste post.

Y al final lo que cuenta es, al final, tenerlo o no. Y ya lo tengo. Algo más tarde de lo que comentaba en un post pasado, pero al final lo que bien acaba…

Para prepararlo, he seguido todo lo que comentaba en éste post, pero además he añadido los test de preparación de Enthuware, tests que recomiendo encarecidamente (no me llevo comisión) ya que imitan a la perfección el entorno que después te encuentras en el examen. Y el coste es de risa, comparado con lo que te ayudan a estudiar.

Durante la certificación he generado mucho, pero que mucho código fuente de ejemplo. No estaría mal subirlo por aquí cuando tenga un rato.

Y ahora, a preparar el SCBCD, Sun Certified Business Component Developer, el de los EJBs… y el Service Manager de ITIL… a la vez… y en Navidades… si es que…

Tagged with:
jun 04

Ya comenté en entradas anteriores que quería sacarme el SCJP, y con qué armas estaba afrontando el lance. Pero el tiempo pasa, y no hay examen a la vista. Por eso, hoy me he comprometido con un compañero a presentarnos ambos el 1 de Septiembre. Con una fecha límite todo es más sencillo.

Ahora hay que mantener la machada.

Tagged with:
abr 09

Una vez más, me he sentado en un ordenador con Debian instalada y al intentar ejecutar un Applet me ha aparecido la pantalla “te faltan plugins adicionales, etc. etc.”. Con mi cerebro pilotando en modo automático, abrí Synaptic desde una consola pero lo cerré inmediatamente. Recordaba que en esa máquina había una máquina virtual de Java instalada en /opt. El JRE incluye los plugins que necesita Firefox y todo se resume en crear un enlace simbólico al fichero correcto en la carpeta adecuada. Lo de siempre, vamos.

 Tras un par de segundos buscando las carpetas y ficheros adecuados con el tabulador desde una consola, la secuencia es la siguiente:

$ cd $HOME/.mozilla/plugin
$ ln -s /opt/jdk1.5.0_07/jre/plugin/i386/ns7/libjavaplugin_oji.so

Suponiendo, claro, que el JRE está instalado en /opt. Si no, cambia adecuadamentela línea y listo.

Me lo apunto aquí, no vaya a ser que se me olvide… otra vez.

Tagged with:
ene 20

Se podría pensar que para superar el SCJP, que a fin de cuentas no es más que un examen, bastaría con disponer de papel, lápiz, neuronas y cafeína en abundancia. Sin más misterios, lo más importante es estudiar, con todo lo que conlleva: entender, comprender, aprehender, memorizar, practicar…
Pero lo cierto es que estoy usando algunas otras herramientas, bien en la forma de libros, o de programas, que me están ayudando a conseguir alguno de los anteriores objetivos.

Libros

- en primer lugar me estoy leyendo los libros oficiales de Sun, correspondientes a los cursos SL-110: Fundamentals of the Java Programming Language, y SL-275 El lenguaje de programación Java. Estos libros, que en apariencia son muy sencillos y hasta inocentes, hacen hincapié en temas muy sensibles para la certificación. Por ejemplo, se deja caer que los Strings en Java son inmutables. Esta afirmación encierra mucho dolor si no se entiende, ya que el funcionamiento de los literales String y de la clase String es fundamental, tanto para programar con Java como para superar el SCJP.
- tras estos libros voy a pasar a leerme el libro de Kathy Sierra y Bert Bates, SCJP Sun Certified Programmer for Java 5 Study Guide. De momento lo he hojeado y tiene muy buena pinta, pero nada más.

- hoy he realizado la reserva de SCJP Sun Certified Programmer for Java 5 Practice Exams, para hacer exámenes por un tubo una vez acabemos con la teoría.

Un grupo de estudio

En Isotrol hay actualmente varias personas preparándose para obtener el SCJP. Pocas cosas motivan más a la hora de estudiar que hacerlo en grupo. Al compartir experiencias, uno pone el foco en algo que a los demás les ha pasado desapercibido, otro ha descubierto una web que merece la pena, un tercero dispone de unos apuntes o ejemplos geniales… La idea es disponer de una lista de correo, una página en la Wiki de Isotrol y tener reuniones periódicas para hablar de Java.

Programas

Por supuesto. Además del JDK y el vi, algo más vendría bién.

En primer lugar, para tomar apuntes, FreeMind es ideal. Una vez se acostumbra uno de nuevo a hacer esquemas, no puedes pasar sin él. Algunos ejemplos de los mapas, exportados a swf están en: apuntes SCJP
Por otro lado, el entorno Eclipse, para mi el único entorno para programar en Java (aunque NetBeans tampoco está mal)

Aunque no exactamente un programa (a fin de cuentas es un servicio), los Blocks de Notas de Google me ayudan a no olvidar enlaces interesantes para posterior lectura. Aquí tienes un enlace a mi block de notas de SCJP, oficialmente declarado zona de desastre.

Moodle. Además de ser una plataforma de e-learning, Moodle permite generar exámenes con preguntas aleatorias. Perfecto para ir apuntando cosas y luego repasarlas de forma divertida. Pronto dispondré de un Moodle operativo en freniche.com, con preguntas del SCJP. Por supuesto, será libre de usar, como el resto de la web.

Mi iPaq HW6915

Esta es mi gran baza para aprovechar el tiempo en el tren, en la espera de los desayunos, en cualquier sitio. Su capacidad de leer el correo, documentos en formato HTML / PDF / DOC y poder navegar por Internet le hacen el compañero ideal para estudiar arañando minutos al día.

Tagged with:
ene 02

Pues eso, que anuncio oficialmente :-) que estoy metido de lleno para prepararme el examen de Sun Certified Java Programmer, v5.0.

Después de varios años manejando Java y de un montón de cursos impartidos, tanto del Lenguaje Java como de J2EE (Servlets, JSP) y productos como Struts o Hibernate, creo que es hora de sentarme a estudiar de nuevo, consolidar los conocimientos, hacerme con un par de certificados y avanzar hacia nuevas tierras, probablemente Spring.

Realmente tengo la obligación de hacerme con el SCJP y con el SCBCD. Me explico. Desde Septiembre del año pasado (2007) estuve haciendo un curso a distancia (que acabó el pasado 14 de Diciembre) y que, si lo aprobaba, me permitia disponer de los vouchers para hacer ambos exámenes. Y ahora que tengo "pagados" los exámenes, esto hay que aprovecharlo.

Como tengo que estudiar voy a aprovechar para ir recopilando lo que encuentre y me parezca interesante para certificarse. Una cosa más que empiezo y probablemente no termine, pero igual a alguien le sirve. Todo irá tomando forma en la sección de Java de la web, concretamente en el apartado SCJP.

Espero aprobar. En este examen me juego mi reputación :-)

nov 20

Me ha pasado AJSA de Isotrol un par de enlaces muy interesantes sobre Patrones de Diseño a los que he añadido otro par sacados de la lista I+D. Para los que no sepan de qué va esto, un Patrón de Diseño te muestra cómo diseñar (valga la repugnancia) el código de tu programa para hacer frente a un problema al que otras personas más sabias ya se han enfrentado. Es la reutilización pura y dura de las ideas, y no del código.

Bueno, no me enrollo más, mejor vete a leer los enlaces:

Tagged with:
sep 21

Una de mis aficiones, cuando estoy supuestamente trabajando, es entrar cada cierto tiempo en los portales de empleo y ver qué se cuece en el mercado informático. En parte, es morbo por ver la cara tan dura que tienen algunos empleadores ofreciendo 12.000 Eur./año por un puesto con 5 años de experiencia. ¡Pero encima hay quien envía su C.V.! En parte, es nostalgia de aquellos tiempos en los que tenía jefe y de lo único que me ten?a que preocupar era de hacer mi trabajo y cobrar a fin de mes. Ser tu propio jefe suena muy bonito, pero cuando algo sale mal no puedes echarle las culpas a nadie (bueno, sí, a tí mismo).

Hoy estaba mirando ofertas en Tecnoempleo y me he encontrado con dos “perlas”. Vamos a por la primera:

PROGRAMADORES Y ANALISTAS JAVA/J2EE

Preferiblemente Ingeniero Tecnico o Superior en informatica de gestión o sistemas con al menos 1 años de experiencia en el desarrollo de proyectos con tecnologia JAVA

REQUISITOS MÍNIMOS:

- JAVA/J2EE (JSP, Servlets,etc)

- Patrón de diseño MVC – Struts

- JDBC

- Apache Tomcat

- Linux nivel Usuario

- UML

- HTML, Javascript

- XML

- SQL-PostgreSQL

- IDE’s Eclipse/Netbeans

Experiencia en alguno/s de los siguientes REQUISITOS DESEADOS:

Frameworks Jakarta:

- JSF

- Cocoon

- Spring

Bases de Datos:

- Oracle

- DB2

Entornos Desarrollo:

- JDeveloper

- WebSphere Studio

Herramientas OpenSource:

- Persistencia Objetos Java : Hibernate, JDO, iBAtis, etc.

- OPENCMS, ZOPE, Alfresco u otros gestores de contenidos

- Motores de Workflow (como Bonita,etc.)

Experiencia con alguno de los siguientes servidores de aplicaciones :

- JBoss

- SunOne Application Server

- IBM Websphere

- BEA Weblogic

- Oracle IAS

Herramientas CASE, análisis y diseño software:

- PowerDesigner(SyBase)

- Rational Rose

Otros:

- Administración electrónica, y/o Plataformas de la Junta de Andalucia (como @Firma, Trew @, Wand @, etc.)

- PHP

- Flex

- Ajax

¿Ya? ¿Hemos terminado? ¡Buff, menos mal!. Sólo falta pedir experiencia programando el kernel de Linux y la obligación de realizar como prueba de ingreso en la empresa un compilador de COBOL escrito en Prolog.

Vamos por partes. La frase “al menos 1 años de experiencia” me sugiere que la persona de RR.HH. no quiere pagar la experiencia necesaria para ser experto en todo lo que piden, pero probablemente algún técnico comentó la barbaridad de pedir un “experto” en todo esto con sólo un año de experiencia. Por eso escribieron inicialmente “al menos 3 años de experiencia” pero al coger la calculadora RR.HH. (aka Tío Gilito) cambió el 3 por 1. Se le olvidó la concordancia en número de la frase, pero eso es un fallo menor.

Es posible que una persona con un año de experiencia conozca los requisitos mínimos, aunque sin demasiada profundidad. No comprendo la necesidad de dominar los dos IDEs (Eclipse y NetBeans). Con conocer uno de los dos, basta. Y en 1 año no aprendes en profundidad a manejar ambos, eso seguro. Al menos, si tienes que ver el resto de requisitos DESEADOS.

Porque es aquí donde comienza la paranoia. No bastaban dos IDEs, para pedir los otros dos dominantes en el mercado. Ya no quedan más IDEs Java por añadir a la oferta. Y encima, el WebSphere Studio es la versión comercial de Eclipse, que la propia IBM liberó como proyecto de Software Libre. El desconocimiento al poder.

La parte que empieza con los “Frameworks Jakarta” es espectacular: JSF NO es de Jakarta. Existe una implementación de JSF de Jakarta, llamada MyFaces, lo que es algo distinto. ¿Spring tiene algo que ver con Jakarta?. Aquí me he perdido. Tenía entendido que era un producto Open Source creado por Interface21, pero seguro que me he equivocado.

Cuando llegamos a la parte de Servidores de Aplicaciones, la persona que ha redactado esto continua con su carta a los Reyes Magos. Si la criatura no tuvo bastante con aprender Tomcat en 1 año, ¿por qué no pedir también un contenedor Java EE?. Total, pedir es gratis. Así que basta con saber uno de los listados, además de Tomcat.

Como ya estamos desbocados a estas alturas de la oferta, pidamos BDs. ¿Nos conformamos con MySQL para ir tirando? No, hombre, no, pidamos Oracle y DB2. Total, todo el mundo instala en su casa para trastear DB2 ¿no? Continuamos con los datos. No basta con saber JDBC, queridos. Aprended un framework que os alivie de hacer el mapeado Objeto-Relacional. Bueno, qué digo, ¿para qué uno, pudiendo pedirlos todos? Así que pedimos Hibernate, JDO e iBatis DAO. Sólo falta OJB, de Jakarta, aunque supongo que ese es el “etc.”

Y para qué seguir. Ajax, OpenCMS, Zope (aunque no entiendo qué demonios hace un gestor de contenidos escrito en Phyton en esta oferta), y la lista sigue y sigue…

¿Quién redacta estas listas de acrónimos? ¿Quién es tan osado de pedir tal lista de tecnologías con sólo 1 año de experiencia? Entiendo que los recién titulados se sientan mal, se sientan estresados, porque el nuestro es un mundo cambiante y cada vez más amplio. Pero genios reclutadores como los que escriben estas ofertas no ayudan. Una persona trabajadora, brillante, apasionada de la Informática y la Programación puede deprimirse leyendo lo que piden para un novato.

¿Y quién se apunta a estas ofertas? Sólo son leerla ya se vislumbra quién manda en la empresa demandante: gente que no tiene ni la más remota idea de la parte técnica del trabajo, que, por cierto, y a ver si nos enteramos aquí en España, es la más importante. Ya está bien de tanto comercial sin formación ni ganas de aprender, de tanto jefecillo intermedio con títulos que no caben en una cara de la tarjeta de visita, de gestores que intentan triunfar en el mundo de la consultoría sin conocer qué hacen los empleados que subcontratan frente al ordenador.

Todo informático que esté buscando un empleo debería leerse este artículo de Joel Spolsky. A ver si así espabilamos un poco a los que escriben estas idioteces con forma de listas de acrónimos.

Tagged with:
preload preload preload