Cómo abrir un fichero winmail.dat en Linux

Hoy he recibido un correo en el que venía adjunta una información en un formato que no había visto en mi vida. un misterioso fichero llamado «winmail.dat» se asomaba a mi Evolution y no daba señas de poder abrirse con nada. Lo copié en el Escritorio, pero nones. Si el correo hubiera venido de una fuente de la que no me fiase mucho, el ficherito (y el correo) conocerían los placeres de una redirección a /dev/null, pero como en este caso a) me fiaba del remitente y b) quería ver el contenido, pregunté al Oráculo de Apolo en Delphi escribiendo en mi navegador http://www.google.es.

En la primera búsqueda me encuentro con un post que describe qué son estos ficheros, cómo evitar enviarlos y, sobre todo, cómo leerlos si los has recibido. De las diferentes herramientas que aparecen para leer estos ficheros únicamente he prodado Fentum. Es una pequeña aplicación (descargaos la versión estática, esto es, incluyendo todas las bibliotecas que necesita para evitar problemas de incompatibilidades, total, ocupa 341 Kb) que, si la lanzamos desde una terminal, nos permite ver el contenido de los ficheros winmail.dat y extraer los ficheros que contienen.

Fentum Funcionando

Uso:

 ./fentunStatic winmail.dat

Muy pequeña, muy útil y sencilla de usar. Una pequeña joya.

j j j

Herramientas que estoy usando para conseguir el SCJP

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.

j j j

Preparando el SCJP

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 🙂

j j j

¡Estan locos estos de SiteGround!

Hace ya un tiempo comenté que me había cambiado a SiteGround, entre otras cosas, por los 500 GB que ofertaban. Ahora, totalmente gratis y sin hacer nada, me han actualizado la cuenta y ¡dispongo de 750 GB de almacenamiento online!.

Si junto todos los discos duros que tengo por casa creo que no llego a los 3/4 de TB que tengo ahora online. Algo tendré que hacer con tanto espacio. De momento, he estado mirando cómo montar una carpeta ftp como si fuera local y, aunque es lento, permite manejar los ficheros de manera bastante cómoda.

Si quieres probarlo y tienes Ubuntu es fácil:

– te instalas curlftpfs (con Synaptic o con un apt-get install curlftpfs, como prefieras)

– montas la carpeta mediante algo como:

curlftpfs -o user=USERNAME:PASSWORD ftp://FTPHost/ MountPoint/

A partir de entonces dispones del espacio ftp en /MountPont/. Yo, para que vaya rápido, estoy usando un clásico, el Midnight Commander (mc). Las cosas buenas no pasan de moda…

j j j

Una de patrones de diseño

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:

j j j

Thinking rock rocks!

Estrés (c) VillenaEs decir, que ThinkingRock «mola». Que está bien. Que me gusta. Que me erotiza, vamos.

Hay gente que cuando llega a casa del trabajo quiere, la vez, hacer deporte, ver una película, programar un rato, estar con los niños, arreglar un ordenador estropeado, probar otro antiguo que se acaban de comprar en un mercadillo, ordenar el despacho, leer unos tres libros de informática a la vez, etc, etc, etc ¡qué estrés!. Es entonces cuando te das cuenta de que quieres hacer más cosas del tiempo de que dispones.

Esto ha sido una constante en mi vida, desde que la recuerdo. Siempre queriendo hacer más cosas de las que me daba tiempo. La solución: desde tiempos inmemoriales he estado probando programas para gestionar mis tareas. He probado unos cuantos, con diferente éxito.

Etapa Notepad

Comencé con un notepad (o su equivalente vi en Linux). Los problemas de usar un fichero de texto para apuntar tareas son:

– que si vas borrando tareas completadas, el fichero mantiene un buen tamaño pero no puedes mirar atrás y decir: «he tenido que hacer todo esto para disponer de página web». Bueno, en ese caso casi es mejor…

– siempre puedes no borrar las tareas finalizadas y moverlas al final del fichero, pero entonces el fichero crece y crece y crece. Con los sistemas que tenemos hoy en día no es demasiado problema, pero buscar algo en el fichero… Vale, tengo grep en Linux, pero pensaba en algo un poco más cómodo…

– este tipo de tareas tienen una descripción y punto. Nada de categorizarlas, agruparlas por proyectos, etc.

Etapa Juan Palomo

En la época en la que dirigí mi propia empresa (Elelog, S.L.) David Ragel (con algo de mi ayuda, poca por cierto) desarrolló un gestor de tareas, bug tracker, time tracker y todo lo que se pueda pensar.

El programa permitía definir varios proyectos e ir asignando tareas a un grupo de programadores. Los programadores seleccionaban una tarea y al pulsar en ella el tiempo empezaba a contar. Existían unos botones para parar la cuenta y volverla a arrancar (por ejemplo, por si te ibas a tomar café). De esta forma se podía llevar un reparto bastante exacto del tiempo empleado en cada tarea. De la misma manera podíamos repartir los costes salariales de cada empleado y saber cuánto nos costaba crear un producto, o acabar un proyecto.

Este sistema exige una disciplina que, en parte, es un rollo, si no eres metódico, pero que es muy buena si lo eres. Si se usan bien estos sistemas, el tiempo gastado en cada tarea se apunta solo. Y, además, si cambiamos de tarea muy a menudo debido a interrupciones (propias o ajenas), como debemos pinchar en una nueva tarea (llamada interrupción), se puede calcular el tiempo que un grupo se interrumpe entre sí. Ya se sabe que en los grupos de trabajo se pierde tiempo en la interacción entre los diferentes miembros…

Por si alguien está pensando: «vale, eso está muy bien, pero ¿qué pasa si quedas con un cliente en una reunión fuera de la oficina, pones ese cronómetro estilo Gestapo a funcionar en el portátil?», el sistema también permitía introducir la duración de una tarea a posteriori, por si se te había olvidado encerlo, había fallado, etc. Bueno, fallar no fallaba nunca, nuestros productos eran los mejores 😉

Etapa Outlook: el calendario nos fustiga

Tras este super-sistema volver al Outlook y a su lista de tareas me parecía volver a la edad de la piedra. Pero esa fue la tecnología que tuve durante mi estancia como Freelance en Telefónica Sistemas.

Etapa DotProject

En una visita a Isotrol, antes de volver, probablemente alrededor de finales de 2004 me enseñaron un producto software libre, basado en web llamado DotProject. DotProject tiene casi todo lo que podía necesitar: interfaz web, posibilidad de definir muchos proyectos, asignar tareas a los proyectos, posibilidad de marcar las tareas en diferentes estados (acabadas, empezadas, verificadas, …), seguimiento del tiempo dedicado a completar las tareas, etc. Eso, junto con un sistema de informes bastante bueno. Vamos, que me gustó tanto que lo he tenido instalado en el portátil y en la etapa del Profesor Errante es lo que he usado para organizarme de curso en curso.

DotProject es el estándar actual en Isotrol. Una versión algo modificada para cumplir con las peculiaridades de Isotrol. Funciona muy bien para gestionar varios proyectos de desarrollo, pero tiene algunos puntos débiles para mi gusto:

– el interfaz no usa AJAX, ni ninguna técnica moderna (lo que los horteras llaman Web 2.0) para salvarte del ciclo petición-respuesta HTTP. Por eso, es un poco áspero de usar.

– las tareas jerarquizadas no funciona del todo bien. Hay veces en un proyecto que uno se encuentra con una tarea que puede dividir en sub-tareas. Eso aparece en DotProject como un árbol: la tarea grande (padre) se subdivide en tareas pequeñas (hijas). Los problemas vienen al ordenar, al copiar una tarea con hijas de un proyecto a otro, etc.

– DotProject creo que se adapta casi perfectamente al desarrollo software con varios proyectos cuando el objetivo es registrar: registrar tiempos, incidencias, etc. Si estuviera integrado con Subversion o CVS, es decir, si cada vez que subieras algo al repositorio añadiera una entrada automáticamente ya sería la pera.

Después de todo lo dicho, indicar que he dejado de usar dotproject. ¿Y porqué?. Porque gestionar el departamento de Formación se parece menos a llevar varios proyectos y más a gestionar el caos. Me llegan peticiones por correo, por teléfono, de forma verbal, peticiones de diferentes personas, con diferentes prioridades. Algunas generan muchas tareas, otras, pocas. Muchas de estas tareas exigen que las delegue (recuero de la noticia justo anterior que estoy yo solito en el departamento) y hay que recordar cuándo es necesario que estén terminadas. En este escenario, el registrar el tiempo empleado ya no me resulta tan necesario: yo imputo todas mis horas a un único proyecto que es gestionar la formación. Lo que si que necesito es algo que me ayude a gestionar el caos.

Momento Thinkingrock

Y es aquí donde aparece ThinkingRock. Ya se sabe, «cuando el alumno está preparado, aparece el maestro«, ¿te has enterado, pequeño saltamontes?. Thinking Rock es, como su logo indica, una piedra para aislarte del mundo y sentarte a pensar: «tengo quinientas tareas que llevo retrasadas de las cuales doscientas tenían máxima prioridad, me esperan para los próximos días otras cien tareas, no quiero estresarme, pero ese informe debe estar terminado para mañana y yo estoy jugando a Call of Duty 2: Big Red One en la Play 2, y debo leerme el correo electrónico, que tengo 100 mensajes sin leer en la bandeja de entrada, por no hablar del correo postal sin abrir y ¡Dios!, se me olvidó que mañana tengo 15 reuniones, 4 de ellas en los puntos cardinales de las estaciones del Monopoly y, y, … ¿me tiro de la roca y acabo con mi sufrimiento

Thinking Rock

Si este es un problema al que te estés enfrentando, es decir, muchas peticiones que vienes de diferentes sitios, ThinkingRock realmente te ayuda a organizarte. Sus características:

  • Es un programa Java de escritorio. Doble ventaja: al ser Java lo puedes ejecutar en Linux, Win, Mac OS X y cuando exista un JRE adecuado, en Amiga OS. Los programas de escritorio son fáciles de manejar: Drag & Drop, Copy & Paste, etc.
  • Esto también es un inconveniente: ThinkingRock es una roca solitaria, como todos los escenarios previos al suicidio. No tiene interfaz web y no está pensado para grupos de trabajo, al menos que yo sepa.
  • Su funcionamiento te ayuda a pensar: primero te creas un fichero de datos vacío, en el que defines unos datos maestros: unas categorías o etiquetas, para clasificar tus tareas o pensamientos y unos contextos. Los contextos son los lugares donde vas a resolver una determinada tarea. Luego podrás agrupar las tareas por contextos y decir «¿qué tareas tengo que hacer en la oficina? ¿Cuáles en casa del cliente?. ¿Y en mi casa?».
  • Cuando estos datos maestros están rellenos, pasamos a dar de alta pensamientos. Los pensamientos no son más que líneas, junto con una descripción o una URL de cosas que se nos pasan por la cabeza que debemos hacer. O cosas que nos piden y no sabemos qué hacer con ellas. Como paso previo, todo correo electrónico que llegue por la mañana, toda llamada de teléfono o toda reunión crea un conjunto de estos pensamientos.
  • Cuando uno tiene un rato se retira a pensar a su «roca» y procesa los pensamientos haciendo una de tres cosas: o bien los borra, porque realmente ya está hecho, o no necesita de una tarea, o lo anotamos como algo que «estaría bien hacer», pero no es imprescindible hacerlo ahora, o es algo que requiere de una acción genuína, en cuyo caso es Actionnable.
  • Las acciones se pueden agrupar en proyectos. Un proyecto puede tener muchas tareas y éstas se pueden organizar jerárquicamente. Las tareas son de cuatro tipos: Inactivas, Delegadas, Planificadas o Urgentes.
  • Las tareas Delegadas son probablemente la aportación más importante de TR a este mundo de gestores de tareas. Muchas veces hemos encargado algo a alguien y dependen muchas tareas de que esa tarea en concreto se termine a tiempo. Apuntarla como una tarea propia no parece la mejor solución, ya que yo no voy a hacer eso, pero necesito que se haga. Para ésto, nada mejor que delegar la tarea y apuntar la fecha en la que se debe comprobar si está o no acabada.

Otras soluciones

Evidentemente quedan otras soluciones. Como MS Project. He impartido algunos cursos de Project, así que conozco un poco la herramienta. El problema de Project es que está pensado para gestionar empresas de la construcción, y no de programas precisamente, sino de las que construyen con ladrillos.

Si tenemos en una empresa de construcción una tarea, por ej. pintar una casa, es lógico pensar en los pintores como recursos intercambiables. Si pongo a dos pintores en paralelo, tiene sentido que acabe en la mitad de tiempo. Pero llevar esto al extremo nos lleva a la típica cita: «no por asignar a nueve mujeres a un embarazo se tiene a un niño en un mes». Agregar recursos no siempre acelera las cosas, más que nada porque los recursos no son intercambiables cuando hablamos de informáticos: uno puede ser un crack con la BD, pero no saber nada de Java y viceversa.

j j j

Isotrol: Freniche Strikes Back

Isotrol

Isotrol

Repasando las noticias que he publicado este año me he dado cuenta que estoy en Septiembre y no he comentado en ningún sitio que mi forma de ganarme la vida ha cambiado… de nuevo.

Hace unos meses, hablando con David Ragel, el socio con el que fundé Elelog, me dijo que mi perfil era de cambiar de trabajo cada dos años. Creo que me lo dijo como algo peyorativo. Ya se sabe que si cambias mucho de trabajo es que no eres constante, te desanimas ante las dificultades, no tienes las cosas claras… Bueno, eso que se lo digan a Steve Jobs.

Curiosamente, las empresas suelen buscar estos perfiles, cuando los cambios están justificados. Si te han despedido por, digámoslo románticamente, hacer de Robin Hood con los beneficios de la empresa o por aparecer borracho en aquella reunión con los clientes, o salir con la hija del jefe quizá debas replanteártelo. Aunque siempre te puedes fugar con ella al caribe y beber mojitos con el dinero afanado…

Bueno, que me pierdo. El caso es que si has estado en diferentes puestos en diferentes empresas la teoría es que te has enriquecido como profesional. O eso dicen. Yo veo mis cambios como una búsqueda del trabajo que puedo hacer mejor, que es el que me hace feliz. Si un trabajo me aburre, lo normal es que me vaya. Si es difícil, o requiere muchas horas, o hay que trabajar mucho, o lo que sea, pero me motiva, es raro que me mueva.

En un trabajo así estaba hasta Enero del 2007. Impartiendo cursos de Java, Linux, UML, etc. por España. Escribiendo algún artículo en PCWorld. Leyendo, aprendiendo. Impartiendo los cursos de Incyde de consolidación de empresas. Viajando mucho. Vamos, el paraíso.

El problema se llama Gonzalo y tiene ahora casi 20 meses. Me niego a no ver crecer a mis hijos. Y tanto viaje se acaba notando. Así que estaba pensando esto cuando me vinieron a ofrecer un puesto en Isotrol. Responsable de Formación. Suena bien.

Así que me convertí en el Director del Departamento de Formación. Un compañero me dijo hace unos meses que yo era un departamento al que se puede invitar a un café: estoy yo solo. Mi trabajo: montar el departamento y gestionar la formación para una empresa de 230 personas, de momento.

Dedico mis días a terminar de equipar el aula del edificio Bluenet, a gestionar los cursos para los trabajadores, a detectar las necesidades de formación y darles solución, a ayudar a conseguir las diferentes certificaciones (Sun, LPI,  Oracle, etc.), a impartir algún curso esporádicamente. Hago muchas cosas y muy variadas, de las que iré contando lo que pueda (lo siento chicos de la competencia :-)) en sucesivas noticias.

Así que ya sabés dónde encontrarme.

j j j

Be water…

De anuncios inteligentes y frikismo informático (geekismo) va la cosa

Hace un tiempo una marca de automóviles (no recuerdo la marca ni el modelo, la verdad) estuvo emitiendo un anuncio en el que aparece Bruce Lee hablando de La Creación de la Forma sin Forma, del Jeet-Kune-Do, el estilo de lucha que inventó Bruce Lee y que mostraba en sus películas. Digo estilo de lucha y no Arte Marcial porque el objetivo último del Jeet-Kune-Do es obtener una forma efectiva de lucha mientras que el objetivo último de un Arte Marcial es construir mejores personas. Este objetivo, que aparece en muchas otras facetas de la vida (las religiones, el deporte, las teletiendas, los préstamos de los bancos que nos hacen tan felices, los anuncios de compresas,…) se consigue en la Artes Marciales mediante una práctica que inculca valores como: respeto, humildad, paciencia, esfuerzo, piedad, etc. Bueno, que me pierdo. Algún día hablaré más sobre las Artes Marciales, o mejor sobre una en particular, el Shorinji Kenpo.

Pero volviendo a lo que comentaba al principio, el texto del anuncio es algo como:

Empty your mind, be formless, shapeless…

like water

If you put water into a bottle it becomes the bottle,

If you put water into a teapot it becomes the teapot…

Water can flow, or can clash

Be water my friend…

Esto de poner a Bruce Lee hablando de filosofía cuasi-Zen para vender un coche es lo que ahora se llama publicidad inteligente. Es decir, se larga un anuncio con un chino hablando en inglés en España (probablemente el país de Europa donde menos Inglés se hable), sin explicar ni subtitular nada y se espera que se entienda que comprándote un coche determinado ya no te adaptas a la carretera, sino que eres la carretera. Esperemos que nadie aplique el mismo razonamiento a los anuncios de papel higiénico.

El caso es que ha llegado a la lista de I+D un envío con el siguiente texto, que los iniciados en C entenderán a la primera:

Empty your memory, with a free()…

like a pointer!

If you cast a pointer to a integer, it becomes the integer,

if you cast a pointer to a struct, it becomes the struct…

The pointer can crash…, and can Overflow…

Be a pointer my friend…

Para el resto, símplemente comentar que los informáticos cada vez somos más geeks (por cierto, un geek es un friki en versión informática).

j j j