Sobre el factor humano en los equipos de desarrollo de software y los errores que cometen los managers que se encargan de gestionarlos se ha escrito mucho, difícil aportar algo nuevo en este tema, tres libros que me han parecido muy interesantes y que son ya clásicos sobre el tema:

Peopleware: Productive Projects and Teams (Second Edition)
Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency
The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)

Especialmente en Peopleware se hace mucho énfasis en la importancia que tiene un ambiente adecuado de trabajo en el proceso de desarrollo de software.

Últimamente es muy común hablar de como son las oficinas de Google o de Facebook, en general de las condiciones ideales que deben de tener un buen ambiente de trabajo en una actividad basada en el conocimiento y la creatividad como lo es el desarrollo de software y de como a pesar de ser relativamente caro adaptar oficinas de este tipo , esto se ve reflejado en un incremento en la productividad del empleado.

Ex empleado de Microsoft , Joel Spolsky tiene ya varios años hablando del tema, y bajo el aparentemente sencillo principio de “Si contratas a los mejores desarrolladores y les das el ambiente idóneo de trabajo, producirán el mejor software posible” ha convertido a su empresa Fog Creek Software, en el lugar en el que mucha gente quisiera trabajar, y a través de su blog personal y una bastante reconocido sitio de Q&A para programadores, ha creando toda una legión de seguidores.

Recientemente han publicado este muy interesante video de como es trabajar para Fog Creek.

Como dice la película: If you build it, they will come:

Come work at Fog Creek!

Por si alguien esta interesado, y cubre el perfil, me llego esta oferta laboral:

UPDATE!: Esta vacante ya ha sido cubierta

WebSphere IT Specialist

-Desarrollo de soluciones para integración de sistemas basadas en los productos de WebSphere Process Integration, incluyendo Process Server y Adaptadores.

-Experiencia en soluciones basadas en una Arquitectura Orientada a Servicios (Service Oriented Architecture, SOA), haciendo uso de Web Services.

-Soluciones de integración que incorporan sistemas legacy y aplicaciones empresariales.

-Desarrollo de aplicaciones de mensajería utilizando WebSphere MQ y JMS como Enterprise Service Bus

-Desarrollo de prototipos y aplicaciones J2EE bajo la plataforma WebSphere y bajo WebSphere Portal para diversos clientes, como:
Consejo Coordinador Empresarial, Deloitte, Dupont, GNP, Instituto Mexicano del Petróleo, IMSS, PEMEX, Pfizer, Procesar, Profuturo GNP, SAT SHCP, Telcel y TV Azteca entre otros.

Interesados contactar con: UPDATE:VACANTE CUBIERTA!

Norah Guipsot
Human Resources Manager
+52 1 8110695140 Mty.
+52 33 40404171 Gdl.
nguipsot at gmail dot com

Bengalíes en Madrid

February 11th, 2010

Un articulo interesante en la letras libres de Febrero acerca de la comunidad de Bengalíes en Madrid, en html y pdf

Primer mes en Madrid.

February 11th, 2010

Ayer se cumplió el primer mes de lo que será una estancia de dos años en Madrid.

Estaré involucrado en un proyecto del Sector Financiero en cual se va a implantar un sistema in-house en la sucursal México.

Laboralmente, todo bien hasta la fecha, un muy buen equipo de trabajo, y muy buen ambiente.

Por tercera ocasión, Madrid me sigue tratando muy bien!

Ninguna de estas instrucciones son nuevas y probablemente muchos de ustedes las conozcan, pero al menos yo me tarde un rato en encontrar la forma correcta de utilizarlas, así que les dejo un pequeño resumen por si, por alguna extraña razón las llegan a utilizar = ).

Recientemente me vi en la necesidad de programar un Script (.cmd) para hacer un Backup desde la línea de comando desde MS-DOS, el script parecía ser bastante sencillo, tenia que comprimir una carpeta desde la línea de comandos utilizando 7zip , guardar el archivo con un nombre que incluyera como prefijo la fecha, en formato YYY_MM_DD, ejemplo: 2009_05_11Backup1.7z.

El primero problema que tuve con el script , fue ¿Como obtener el año, el mes y el día desde la línea de comando en tres variables separadas?

Si utilizamos la instrucción

c:\>date /t

obtenemos la fecha en formato DD/MM/AAAA, pero lo que queremos es almacenar en variables separadas el año, el mes y día actual.

Dentro de un archivo cmd, esto lo podemos hacer con la instrucción FOR de MS-DOS con la cual podemos hacer un parseo de esa fecha con la siguiente instrucción:

 for /f "tokens=1,2,3 delims=/" %%a in ('date /t') do set fec= %%c_%%b_%%a


Con esta instrucción le decimos al Script que por cada línea que le regrese la instrucción ‘date /t’ (en este caso una sola línea), debe de parsear esa línea utilizando como delimitador ‘/’ , obtener los tokens 1,2 y 3 y guardar los resultados en la variable fec, separándolos con un guión bajo.

De esta forma si el dia es 11/05/2012, se guardara en la variable fec 2012_05_11

El segundo problema es que el FOR regresa fecha con algunos espacios en blanco y en lugar de tener:

fec=”2012_05_11″

se tiene

fec=”2012_05_11

En particular el problema podría plantearse como, ¿Como hacemos un TRIM desde MSDOS? y en general podría ser, como hacemos un Search & Replace en una cadena desde la línea de comandos en MSDOS

Pues resulta que SI existe una forma de hacerlo desde MSDOS y es parte de la sintaxis (es decir, no es una instrucción en particular)

La forma de hacerlo es la siguiente:

set var2=%var1:StrToFind=NewStr%

Con lo cual le indicamos que busque la cadena StrToFInd en la variable var1 , la substituya con NewStr y lo asigne a la variable var2

En nuestro caso lo que queremos es quitar los espacios en blanco, suponiendo que ya tenemos en la variable fec la fecha almacenada la instrucción seria la siguiente:

set fec=%fec: =%

Es decir, le pedimos que busque los espacios en blanco en fec y que los sustituya por “nada”. Con lo cual estamos haciendo un Trim desde MSDOS.

Para mas información

http://www.ss64.com/nt/for_cmd.html

http://www.ss64.com/nt/syntax-replace.html

Posible Bug en JMesa

February 24th, 2009

Actualmente estoy utilizando el componente JMesa en un proyecto, el componente JMesa sirve para desplegar información en forma de tablas, permite paginación, exportar a Excel y PDF, ordenar y filtrar.

El proyecto esta desarrollado en Java, y es muy facil de usar, la tabla se “renderea” en el lado del server y solo hay que utilizar el HTML que se genera para desplegar la tabla en una vista (si estamos utilizando MVC) o en un jsp (tambien permite el uso de tags especificos de JMesa)

El posible Bug que encontre ocurre al exportar a PDF.

Para hacer un export a PDF, JMesa utiliza el XhtmlRenderer esta libreria utiliza el siguiente DTD para validar los documentos que genera

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

Si no se inicializa de forma adecuada el XhtmlRenderer busca los dtds directamente en el sitio de www.w3.org, en lugar de obtenerlos desde el Jar de xhtmlrenderer (core-renderer-R8pre1.jar)

Los posibles errores que podrian ocurrir:

I) Si se generan demasiados PDF’s (si por ejemplo, se hace un “load testing” de la aplicación) el sitio del W3C regresa errores (y con justa razon) del tipo W3C’s Excessive Dtd Traffi, como puede verse, aqui:

http://www.w3.org/blog/systeam/2008/02/08/w3c_s_excessive_dtd_traffic

II) Si estas detras de un firewall o un proxy que necesite autenticación, no es posible obtener los DTDs y se genera una excepción:

java.net.UnknownHostException: www.w3.org

Generalmente por la carga de trabajo (o tal vez por flojera)  no suelo reportar este tipo de errores pero ahora si levante un Issue en Google Code proponiendo un par de soluciones al problema:

Veremos que seguimiento se le da

Este es un mashup que hice con Yahoo Pipes, obtiene el Playlist de Ibero 90.9 (estación de Radio en F.M. del D.F.) y lo convierte en un VideoPlaylist con ligas a los videos correspondientes a las canciones en YouTube

Si lo prefieren pueden verlo directamente en Yahoo Pipes

Primero Steve Demeter hizo $250,000 dolares en tan solo dos meses, y ahora cuando  todos pensaban que el mercado de aplicaciones para el Iphone estaba saturado Ethan Nichola ex ingeniero de Sun Microsystems hace $37,000 en tan solo un dia, segun sus calculos a finales de año podria hablar de al menos un millon de dolares en ganancias.

Independientemente de estos casos expecionales, en los que un programador con una buena idea se hace millonario, de acuerdo a este artículo, la demanda de gente con este tipo de perfil es muy alta,
el skillset incluye:

Xcode
Objective-C
Cocoa
Open GL

Para los que todavia se preguntan si si se especializan en Java, Ruby o .Net sobre Windows /Linux  , porque no considerar Objective-C ?

Por supuesto que el “Entrance Barrier” a superar sigue siendo el precio del Iphone , hay que tener uno para probar las aplicaciones , y un equipo con MacOsX para hacer el desarrollo.

Cierre de Año!

December 8th, 2008

Woow! Se acaba el año…muchos cambios y poco tiempo para actualizar mi blog…

En resumen, llegando a los treintas! Con tanto cambios y tanta pre-celebración Decembrina, fueron momentos menos reflexivos e introspectivos de lo que me hubiera gustado, pero bien vividos, no complains…como dice  Amado Nervo…vida nada me debes, vida estamos en paz .

He dejado mi antigüo trabajo, salgo del Sector de las Telecomunicaciones para regresar nuevamente al de las Finanzas, muchas cosas por aprender y muchos nuevos retos para el año que viene.

Pendientes para el sitio:

  -Publicar  tutorial de Ajax con Jquery (que va como al 60%)

 -Trabajar sobre un tutorial de configuración de ehcache con Spring y AOP. Creo que hay muy poca documentación al respecto, no solo falta documentación en Español, también en Ingles.

  -Actualizar el homepage, cada vez me gusta mas la idea del Microbloging , hace que el sitio se vea mas dinámico, así que el énfasis en el homepage será precisamente sobre el LifeStream.

Para las personas interesadas en mantenerse al día y siempre estar al pendiente de los nuevos lenguajes de programación de moda, no se preocupen, de acuerdo a este artículo de la prestigiosa publicación Dr Dobbs Journal,  el lenguaje de programación mas utilizado en pleno  siglo 21 sigue siendo Cobol.

Mas aun, debido a que sigue siendo un elemento clave en muchos sistemas de negocio de tamaño considerable , y como las nuevas generaciones de programadores se enfocan mas a los nuevos lenguajes como Java,Ruby, C#, la demanda de puestos en los que se requiere Cobol va en aumento, y debido a que la oferta es muy poca , los salarios tambien han seguido la tendencia a la alta en los ultimas años.

Y por increible que parezca, no solo es el echo de que muchas empresas tengan dependencia hacía Cobol, en muchas de ellas  todavia se sigue utilizando para nuevos proyectos (Yo conozco una!)

Asi que como dice el articulo:

Si todo esto es verdad, no es tan raro que Cobol:

1) Es  el lenguaje de programacion mas utilizado en el siglo 21

2) Es critico para algunas de las areas de desarrollo de software hoy en dia; y

3) ¿Puede ser el proximo lenguaje que TU decidas aprender?

Para mas información:

Cobol is the most widely used language in the 21st century.

Cobol Job Market Heating Up