Buscar
Social
Ofertas laborales ES
miércoles
oct292008

Las compañías TIC de Norteamérica comienzan a apretarse el cinturón

Llevamos unos cuantos años bastante buenos para los que nos podemos considerar profesionales de las TIC. Las compañías parecían pelearse por conseguir empleados y, aunque quizás dependiendo del país los sueldos no fuesen lo que debían ser, cualquier profesional de lasTIC podía encontrar trabajo sin ningún problema.

Parece que, al menos en Estados Unidos, la crisis está llegando al sector TIC. Este mes está siendo un claro ejemplo de "apretarse el cinturón". Ha habido un número significativo de despidos de varias compañías, tanto gigantes establecidos como startups que están comenzando:
  • Xerox————3,000
  • Daptiv————–21
  • Haute Secure———3
  • Cake Financial——–6
  • Mercent————-6
  • Dell————-8,900
  • imeem————-20
  • Mahalo————-6
  • TicketMaster——300
  • Eons—————8
  • Veoh————–15
  • Yahoo———-1,500
  • Wikia—————3
  • Meraki————-10
  • Break.com———-11
  • Total———-13,809



Muchos de estos despidos están más orientados a prepararse para los malos tiempos que vienen, que para solucionar un problema que ya exista en este momento. Por ejemplo, me consta que Mahalo, una pequeña startup, antes de este mes tenía capital VC para seguir funcionando durante tres años sin necesidad de nueva financiación. Sin embargo su CEO,  Jason Calacanis, convencido de que nos esperan de 12 a 24 meses malos en los cuales su compañía va a tener muchos problemas para conseguir financiación adicional, ha despedido a varios empleados de tal modo que ahora la compañía tiene capital suficiente para seguir funcionando durante cuatro años. En su caso, además, le interesaba el disponer de un colchón de dinero para comprar alguna pequeña compañía que, previsiblemente, en los próximos 12 o 24 meses se quedará sin capital y quebrará.

Seguramente muchos despidos, especialmente en compañías pequeñas, estén basados en un planteamiento similar a éste. Por otro lado, me consta que Google, si bien no ha despedido gente, si ha dejado de contratar (en los últimos dos años estaban siendo bastante agresivos con las contrataciones enviando propuestas de contrato a diestro y siniestro). En cualquier caso, los movimientos que están realizando estas compañías a mí me llevan a pensar que sus ejecutivos (que obviamente saben bastante más de economía que yo) están convencidos de que vienen malos tiempos.

Otro dato que me consta es que el número de currículum es que están llegando a varias compañías americanas (Mahalo  o Digg, concretamente) esta incrementando significativamente. en el caso de Mahalo  Calacanis afirma que están recibiendo 10 veces más currículos que los que recibían antes del verano.


Un tipo de compañías que muchos analistas están de acuerdo en que "está en peligro" son aquellas compañías de la Web 2.0 que hasta ahora se han estado centrando en construir una base grande de usuarios, pero todavía no han sido capaces de construir un modelo de negocio adecuado en torno a ellos (ustreamTwitter o el propio Skype se me vienen a la cabeza). Estas compañías actualmente no son sostenibles, y hasta la fecha han sido capaces de captar capital VC gracias a la promesa de que en el futuro serían capaces de monetizar de algún modo su base de usuarios.


Sin embargo, si llega el momento de apretarse el cinturón, loc VC pueden decidir dejar de invertir en ellas, lo que haría que inevitablemente desaparezcan. En general, la política de las compañías VC ahora mismo es tender a centrarse sobre las startups que soportan a las que les ven más posibilidades de éxito, y sacrificar las demás para tener más dinero para las que es más probable que sobrevivan.


En general, si se confirma la crisis, es probable que durante los próximos dos años la ley de la evolución de Darwin comience a aplicarse a las compañías Web 2.0, de tal forma que las más débiles desaparecerán. Básicamente, podría ser la crisis de las .com 2.0.


Hasta la fecha, mi impresión es que el impacto en España de todo esto había sido prácticamente nulo. La crisis parecía algo que era "sólo de Estados Unidos". Pero en las últimas semanas, con los problemas que ha habido con los bancos europeos, creo que ha quedado claro que a nosotros también nos va a tocar apretarnos el cinturón. Por ello creo que es probable que en breve las compañías TIC españolas también comiencen a despedir o, al menos, dejar de contratar tanto.


De la situación en Latinoamérica no estoy al tanto. Pero agradecería a cualquiera de nuestros usuarios latinoamericanos que nos pongan al tanto de lo que está sucediendo allí.


¿Cuáles son vuestras opiniones al respecto? ¿Cómo creéis que afectará/está afectando ya esta crisis al sector TIC?

lunes
oct272008

Las cosas que están mal con Maven

Anders Beggston publica este listado en su blog. Obviamente, no es más que una opinión personal sobre esta herramienta de gestión de proyectos, sin embargo creo que refleja muy bien el sentir de muchos desarrolladores con Maven. No hay que olvidar que la herramienta fue creada desde 2002 y ya va en su versión 2, sin embargo a pesar de publicitarse como la evolución de Ant, sigue sin convencer a los desarrolladores java que siguen usando Ant para construir sus proyectos.

Algunos de los problemas los detecta muy bien Anders:

Verbosity. Maven, al igual que Ant, utiliza XML para configurar los scripts. A pesar del auge de este metalenguaje, ultimamente los desarrolladores prefieren alternativas más simples y que requieran de menos líneas. Por ejemplo, la gente de Groovy usa GANT que permite hacer scripts de Ant usando este lenguaje dinámico. Sin embargo, Maven parece no querer abandonar al viejo XML e incluso -como se menciona en los comentarios del blog- ha rechazado iniciativas para usar un formato con menos líneas de código.

Poco adaptable a proyectos heredados. Maven usa un mismo layout para los proyectos y a pesar de que dicho layout se puede modificar y adaptar, esto no resulta muy flexible ni sencillo. Por ello, no es sencillo migrar proyectos existentes a usar Maven, la cantidad de tiempo que tendrías que invertir puede hacerlo poco factible.

Dependencias transitivas. Esto es una de las cosas que menos me gusta de la herramienta. En teoría solo debe de descargar las dependencias que vas a usar, en la práctica descargarás decenas de jars de las que dependen un jar que usa un jar que usa otro jar que usas tu y cuyos desarrolladores pusieron mal esa dependencia porque en realidad no es necesaria.. En fin que al final para compilar tu aplicación terminas descargando 50 mb de jars de los que realmente no necesitas todos.

Plugins. En Maven todo se resuelve mediante plugins, mientras que otras herramientas Script te permiten más flexibilidad y hacer más cosas desde el mismo script. Esto te lleva a que hasta para la tarea más trivial dependas de un plugin que tienes que descargar y confiar en que sigan actualizándolo o -de otra forma- construirte los tuyos propios.

Pruebas unitarias. Dado que Maven imprime todo el stdout de las pruebas a la consola, los resultados de las mismas pueden quedar un poco escondidos. Para ver bien los detalles es necesario abrir los informes generados por Maven. De acuerdo a Anders, esto podría simplificarse y mejorarse. Desde mi punto de vista no es un factor determinante para dejar de usar la herramienta.

Output del build. Pues sí, quizás imprime demasiada información pero esto a mi no me molesta, al contrario es bastante útil para detectar errores. 

Repositorios. Este es una parte esencial del modo Maven de hacer las cosas. Sin embargo, tener que depender de repositorios externos en internet (algo que resulta riesgoso) o montarse un repositorio local en un servidor (demasiado trabajo).

Yo uso maven desde hace unos 3 años pero a veces siento que es demasiado trabajo configurar mis proyectos con la herramienta, además de que con el paso del tiempo no se han dado pasos a mejorar esto (aunque si ha habido mejoras en el desempeño de la aplicación). Por otro lado, me he empezado a mirar alternativas como Ant + Ivy y ahora Buildr y Gant.. ¿que opináis vosotros? ¿cuántos usáis maven?

lunes
oct272008

Revisión de libro: Beginning Groovy and Grails

Beginning Groovy and Grails. From novice to professional
Autores: Christopher M. Judd, Joseph Faisal Nusairat y James Shingler
Apress, junio 2008

http://beginninggroovyandgrails.com/



Disclaimer

Con esta revisión, empezamos un trato con la editorial Apress para revisar libros de ellos. El trato es muy simple, ellos nos proporcionan los libros con la única condicionante de publicar aquí una revisión de los mismos. En ningún momento se condiciona a que la revisión sea favorable o se nos marca una pauta a seguir, javaHispano conserva la independencia editorial que siempre hemos tenido. Si todo marcha bien, este es solo la primera revisión de un libro de Apress y en el futuro publicaremos otras realizadas por otros miembros de javaHispano.


Este libro está enfocado a aquellos que quieren empezar a usar Grails para desarrollo web y no tienen ninguna experiencia con dicha tecnología ni con el lenguaje Groovy. En la introducción los  autores lo dejan claro: "... nos dimos cuenta que los desarrolladores sin conocimiento sobre Groovy y posiblemente poco o ningún conocimiento sobre la plataforma y lenguaje Java necesitan una guía para guiarlos en la jornada de volverse rápidamente productivos con Groovy y Grails"

El libro está dividido en 13 capítulos, los tres primeros sobre Groovy y el resto sobre Grails. En los capítulos sobre Groovy se da una introducción a este lenguaje dinámico, se explica como se instala, las diferencias con Java y lo clásico cuando se ve un nuevo lenguaje: sintaxis, operadores, condicionales, etc. En el tercer capítulo se introducen algunas de las características avanzadas del lenguaje que realmente lo hacen resaltar entre la gama de lenguajes que se ejecutan en la JVM, por ejemplo su integración con JUnit, su soporte para XML y templates, su capacidad para generar Domain-Specific Languages (DSLs), los expandos y el Groovy Meta Object Protocol (MOP) que permite añadir propiedades y métodos a clases existentes en runtime.

Estos capítulos están escritos de una forma muy dinámica y mediante ejemplos de código, la idea es que te permitan empezar a programar de inmediato. Por ello, no esperes largas explicaciones sobre cómo funciona Groovy internamente, ni capítulos sobre DSL o MOP, los autores se enfocaron a que empiezes a usar Groovy de forma rápida sin detenerse a explicar demasiada teoría. Así que si quieres adentrarte más en el lenguaje y conocer todas sus características, es más recomendable recurrir al libro Groovy in Action, como los mismos autores recomiendan. Por otro lado, lo que verás de Groovy aquí es más que suficiente para empezar a desarrollar aplicaciones web.

Si el lenguaje Groovy se toca someramente, lo mismo no sucede con el framework Grails. Este libro es una gran guía de referencia sobre esta plataforma para desarrollo web ágil. Estos capítulos están organizados como un tutorial durante el cual se construye una aplicación web llamada collab-todo que es una aplicación web 2.0 para gestión de listas de tareas por realizar (To-do's). Como buena aplicación web 2.0, involucra uso de CSS para maquetación, de Ajax para darle dinamismo a las pantallas, de casos de uso colaborativos entre los usuarios, etc. y como buena aplicación java, se usan pruebas unitarias y de integración, arquitectura en capas, seguridad, etc. De esta forma, los autores nos van adentrando a las bondades de Grails para atacar cada una de estas necesidades.

Así en el capítulo 4 "Introducción a Grails", se explican los conceptos detrás del framework, se explica como se instala y mediante los comandos de consola de Grails se construye la aplicación, los objetos de la capa de dominio y los controladores (usando scafolding) y pruebas de integración para probarlos. Al terminar el capítulo, tenemos ya la aplicación lista y levantada. En el siguiente capítulo "Construyendo la interfaz de usuario", los autores nos adentran en las GSP (Groovy Server Pages) y en las bibliotecas de tags de Grails. Nos explican como sacar provecho del sistema de templates de Grails (basado en SiteMesh), realizar pruebas tanto de integración como directamente en la capa web usando el plugin de Canoo WebTest, el sistema de Flash messages y la gestión de errores, el uso de properties para externalizar los textos de la aplicación y el uso de filtros e interceptores.

El capítulo 6 está enfocado a la capa de dominio y a la de servicios. La parte de la capa de dominio es un extenso tutorial sobre GORM la librería ORM de Grails basada en Hibernate. De la mano del libro, aprenderemos a usar características avanzadas como restricciones, validaciones, queries dinámicos, etc. En la parte de servicios, se hace una breve explicación a como se manejan los servicios en Grails y cómo sacarles provecho mediante el uso de características de Spring.

El capítulo 7 está enfocado en la Seguridad y para ello se usan 4 enfoques: el primero es hacer un sistema de seguridad personalizado usando filtros e interceptores. El segundo usa el plugin JSecurity, el tercero el plugin CAS y por último se demuestra como usar el plugin de SpringSecurity. Por ahora, JSecurity parece ser el que tiene mejor integración con Grails.

El capítulo 8 se titula "Web 2.0 - Ajax y amigos" y cubre varias características de Grails que ayudan a implementar este tipo de funcionalidades. De esta forma, se enseña el uso del FCK editor con Grails, del plugin Searchable, file uploading, envío de correos, creación de bibliotecas de tags y el uso de algunas características Ajax interesantes como un autocomplete.

El noveno capítulo, me resulto bastante interesante ya que en él se muesta cómo construir servicios web RESTful de forma simple y sencilla usando Grails. Esta es sin duda una de las características que más me gusto del framework.

El capítulo 10 es sobre la creación de informes (Reports). Lo interesante de este capítulo, es que no solo habla de las capacidades de Grails sobre este tema; sino que es todo un tutorial sobre JasperReports: desde cómo instalarlo, cómo usar iReport para generar las plantillas de los informes, cómo compilarlos, etc. Por último, se integra esta librería a Grails mediante la construcción de un Tag, un Controller y un Service. De forma extraña, al final del capítulo se menciona que este trabajo nos lo hubieramos podido haber ahorrado de usar el plugin para Jasper existente, aunque de cualquier forma se agradece que los autores te enseñen a hacerlo a mano tu mismo antes de decirte la solución fácil.

El capítulo 11 toca otra característca interesante de Grails: el plugin de Quartz para calendarizar procesos. Quartz es una librería que siempre me ha gustado mucho y me agradó ver que se integra fácilmente con el framework y que -sobre todo- dicha integración te facilita mucho usarla. Me pareció un acierto que los autores incluyeran un capítulo para enseñar a usarla, ya que en la vida real siempre se acaba haciendo un poco de procesamiento batch y ejecución de procesos con un timer.

El capítulo 12 está enfocado a "Deploying and upgrading", por lo que muestran los mecanismos para configurar estos dos procesos, los comandos de consola para hacerlo e incluso se da una introducción muy breve a GANT, el wrapper de ANT que usa Groovy para crear scripts de compilación.

Por último, el capítulo 13 trata sobre la construcción de un cliente standalone usando SwingXBuilder que se conecta a la aplicación mediante los servicios web desarrollados. Como se ve, esto ya poco tiene que ver con Grails y se trata más de mostrar como consumir servicios web con Groovy, así como de ver las bondades de Groovy para simplificar el desarrollo de aplicaciones de escritorio.

Como en todo libro técnico, existen errata y actualizaciones. Para ello, en el sitio web del libro encontré todas las correcciones necesarias para que el código funcionase con la versión actual de Grails (1.0.3), lo que resultó muy conveniente cuando me encontraba con errores inexplicables.

Desde mi punto de vista, el libro logra muy bien su objetivo: que el desarrollador pueda ponerse manos a la obra y empiece a desarrollar con estas tecnologías ágiles. El libro es muy fácil de leer y te va guiando siempre a través de código fuente, por lo que en ningún momento resulta lento ni tedioso. Yo lo calificaría como un tutorial de 300 páginas sobre Grails que logra cubrir las características de dicho framework necesarias para la mayoría de las aplicaciones web. Por lo que es un recurso invaluable para aquellos que como yo desean aprender a usar desde cero Grails. Si tu ya eres un usuario de la plataforma, lo recomendaría sólo en caso de que quieras aprender a usar alguna de los plugins usados.

Como ya mencioné, una de sus debilidades es su discreto contenido sobre Groovy. Otra es que se queda en la parte de "usuario de Grails" y no cubre aspectos sobre cómo crear y distribuir plugins de esta tecnología. Por otro lado, como la misma editorial lo indica en el roadmap que acompaña al libro, este se considera como una introducción a Grails y después se recomienda leer el libro "The Definitive Guide to Grails" de Graeme Rocher (cuya segunda edición actualizada aparecerá en 2009).

lunes
oct272008

3 dias para Ubuntu 8.10

Este 30 de Octubre 2008 tendremos a dispocion la version final de Ubuntu 8.10 Desktop y Server, entre las caracteristicas de esta nueva version se incluye:

Desktop

 

  •  Soporte para conectar a redes 3G, la misma que utilizan los ultimos celulares. Esto permitira conectarse a internet en lugares donde el acceso Wi-fi es deficiente como en trenes o subterraneos. 
  • Escritura e instalacion en dispositivos USB, ahora es mucho mas facil llevar tu desktop en tu memoria usb y usarlo donde quieras.
  • Sesion de invitados
  • Soporte para contenidos BBC para video-conferencias y streaming directamente desde Rhythbox y Totem 
  • Escritorio Gnome 2.24 (la ultima version)
  • entre otras..
Servidor 
  • Las de la version desktop 
  • Soporte oficial para Java: Esta version incluye Tomcat 6.0 y OpenJDK
  • Mejoras en las capacidades para gestion de mail
  • Soporte mejorado para RAIDs
  • Mejoras en encriptacion de carpetas privadas
  • Algunas herramientas para cloud-computing 
  • y otras mas
Yo llevo utilizando la version desktop 8.0.4 64bits desde hace mas de tres meses y la verdad es que no me cambio de S.O nunca mas, al principio obviamente hay muchos conceptos y cosas que no se entienden (por la constumbre windows) pero en los foros y la comunidad hay respuestas para practicamente cualquier duda. Lo que mas me gusta es el gestor de paquetes y aplicaciones que tiene que permite instalar todo lo necesario  y mas de forma simple y usando una interfaz grafica. Por ejemplo instalar el OpenJDK o JDK, MySQL y Netbeans se hace en unos 3 clicks.. ¿Has pensando en pasarte a Ubuntu Linux??  Aprovecha ahora todavia tienes tiempo de salvarte  ;-) Para los que usan ubuntu ¿Cual ha sido tu experiencia con este S.O desktop o sever??  mas info: http://www.ubuntu.comhttp://blogs.zdnet.com/open-source/?p=3025 

 

lunes
oct272008

JavaHispano Podcast - 020 - Noticias Octubre 2008 (b)

Publicado nuevo número de "Javahispano Podcast". En este podcast
hablaremos de las últimas noticias publicadas en el portal de
Javahispano. Presentado por Abraham Otero, Alfredo Casado y Jorge
Rubira. Además estará producido por Rubén Egiluz.

Las noticias serán: