¿Es el iPhone Spyware?

Published 120 weeks, 1 day ago
Mon Nov 19 2007

Pues al parecer sí. De todas, todas.

Por supuesto, ya están tardando todos los fanboys en decir que no, que es algo que hacen todas las compañías (lo dudo mucho), que no les importa, etc...
Bueno, importarles no debe importarles mucho, porque lo han firmado por contrato (énfasis mío):

When you interact with Apple, we may collect personal information relevant to the situation, such as your name, mailing address, phone number, email address, and contact preferences; your credit card information and information about the Apple products you own, such as their serial numbers and date of purchase; and information relating to a support or service issue.

Lo es cual, por cierto, la única razón por la cual no podemos calificar al iPhone como spyware en toda regla: si nos atenemos a la definición de la Wikipedia (de nuevo, énfasis mío):
Los programas espías o spywares son aplicaciones que recopilan información sobre una persona u organización sin su conocimiento.
pues efectivamente no es spyware... al menos, no legalmente.

Pero, una vez más, como es Apple no va a pasar absolutamente nada. Ahí están los fanboys para defender los desmanes de la marca, haga lo que haga y saque lo que saque. No está de más recordar la graciosa parodia del iProduct:


Está visto que, al menos para los compradores de Apple, esto del diseño es como un buen par de tetas: tiran más que dos carretas. Tenemos un teléfono que es más caro, tiene menos opciones que la competencia, menos potentes cuando las tiene, con software y plataforma (de momento) completamente cerrado, que ahora además resulta que nos espía... pero es que es taaaaaaaannnn boniiiiitoooooooooo....

Hibernando

Published 121 weeks, 1 day ago
Mon Nov 12 2007

Habida cuenta que ya han pasado más de cuatro meses desde que me contaron esta historia, creo que ya puedo escribirla aquí sin miedo a implicar a nadie o hacer saltar ninguna liebre antes de tiempo. De todos modos, y por si acaso, los nombres y entidades mencionadas en esta entrada están cambiados para proteger a los inocentes.

Hará cosa de un mes o mes y medio me acerqué por las oficinas centrales de Axco Consulting, mi ex-empresa, por última vez. Iba a recoger mi finiquito y a terminar mi relación contractual con ellos de una vez por todas y con amplia satisfacción por ambas partes: suya porque se habían ahorrado más de dos mil euros en mi finiquito; mía por haberme largado sin dar ni un minuto de preaviso y deseando que utilizaran mis dos mil euros como supositorios, en monedas de a 20.

A pesar del ratio de rotación de personal entre bajas voluntarias y despidos, y teniendo en cuenta la absurda pero muy real política empresarial de sólo despedir a los buenos empleados; aunque parezca mentira aún quedan grandes profesionales y mejores personas por allí, y una vez cumplimentado el proceso del finiquito me acerqué por la tercera planta a saludar a uno de mis ex-gerentes (llamémosle Esteban), despedirme y desearle lo mejor porque se lo merece. Y ahí fue cuando me enteré de la historia que quiero contaros. Reproduzco el diálogo que tuve con Esteban, más o menos fielmente:

Esteban (así, a bocajarro. Nada más verme. Como si no llevara más de quince días sin verme el pelo. Las despedidas y parabienes vinieron luego).- ¡Hombre, Pica! (girándose hacia su jefe) ¡Este seguro que lo sabe! (girándose hacia mí) A ver... ¿Tú sabes lo que es NHibernate?
Picacódigos.- Claro. Es un O/RM OpenSource para .NET, portado desde el Hibernate de Java.
Esteban (hacia su jefe).- ¿Lo ves? Te dije que Carlitos lo sabría... (hacia mí) ¿Lo has manejado alguna vez?
Pica.- Puessss... no. He jugado con él en casa, y en mi ex-empresa estuve trabajando con el Hibernate de Java un tiempo; pero vamos,... todo sería ponerse.
Esteban.- Te cuento. Es que estamos buscando un tío con dos años de experiencia mínimo en .NET, y es importante que sepa NHibernate porque tendría que trabajar bastante con la herramienta y responsabilizarse de enseñar su uso a los nuevos programadores que entraran en el equipo. Básicamente el cliente está pasando todo su software de gestión a .NET, y hay que diseñar una capa de datos y una de negocio para usar con distintos clientes, y blah blah blah... ¿Te interesa?
Pica.- Pues suena interesante, Esteban, pero te recuerdo que ya no trabajo para vosotros.
Esteban.- Ah, ¿no te lo he dicho? El cliente es Peyote, el fabricante de coches japonés, para su central en España. Y te contratarían directamente ellos, Axco Consulting sólo hace de headhunter en este caso.
Pica.- Tentador. Pero ya he firmado un precontrato, Esteban...

Y aquí continuó la conversación por derroteros que no llevan al caso. Pero no he terminado la historia: cuando le pregunté a Esteban porqué estaba tan desesperado en su búsqueda, me contó lo que en su momento me dejó de piedra y es el motivo por el que escribo esta entrada. Cito de memoria:

"Pues llevo entrevistados a unos doce o quince tíos, Pica, todos con dos años de experiencia mínimo, todos ellos dicen ser analistas, todos ellos piden como mínimo 30.000 euros brutos anuales,... y ninguno de ellos sabía siquiera de oídas lo que es NHibernate. No hablemos ya de haberlo manejado alguna vez."

De piedra, en serio.

De acuerdo que no se sepa manejar, que no se haya utilizado nunca en un proyecto ni personal ni de trabajo, pero... ¿ni siquiera saber qué es? ¿Ni siquiera que te suene? ¿Y presentarse a una entrevista como analista .NET pidiendo 30K eurazos al año? Me hubiera encantado estar en esas entrevistas para haber profundizado, porque me apuesto el cuello a que en la mayoría de ellas tampoco conocerían ningún otro O/RM, o siquiera lo que es un O/RM.

Luego lo pensé más en frío y me di cuenta de que es perfectamente posible: gente que se ha dedicado al .NET de libro, que lleva 2 o 3 años programando páginas Web ASP.NET sin conocer más separación en capas que la que promulga Microsoft, sin conocer otros métodos de acceso a datos que los incluidos en Visual Studio, sin usar ninguna otra cosa que no sea exactamente lo que le piden en el día a día. También pensé en ese momento que no es culpa suya: el 99,99% de los clientes no quieren cosas raras en sus programas, el 99,99% de los jefes no quieren ni oír hablar de innovaciones y piensan que los experimentos se hacen con gaseosa.

Luego lo pensé aún más en frío y llegué a mi convicción actual: será perfectamente posible, pero no es deseable. Será perfectamente posible, pero alguien que no sabe ni siquiera de oídas lo que es NHibernate me está demostrando que no lee blogs de programación, no consulta de vez en cuando CodeProject, ni DotNetKicks, ni cualquiera de los cientos o miles de sitios de información sobre .NET en cualquier idioma que quieras. O, casi peor, lo hace puntualmente llevado por Google para corregir un error o implementar una funcionalidad que desconoce: copia y pega el código que se encuentra y si funciona no lo toca, no vaya a ser que aprenda algo aunque sea por contagio. Alguien que hace lo que le mandan todos los días sin añadir ni un punto y coma de más, sin intentar investigar formas mejores de hacer las cosas, sin preguntarse cómo las hacen otras personas. Alguien sin interés alguno por crecer profesionalmente excepto en su sueldo. En definitiva, alguien con muy poco amor por su profesión.

Y menead esta entrada o barrapunteadla o haced lo que os dé la real gana con ella, y volver a ponerme chorrocientos comentarios dudando de la integridad moral y profesional de mi santa madre y ciscaos en mis hijos hasta la séptima generación; pero no puedo evitarlo. Tengo que hacer en voz alta la pregunta que me hice en su momento. La pregunta que hace que me dé miedo coger el teléfono y preguntarle directamente a mi ex-gerente: ¿Cuántos de esos doce o quince entrevistados tendrían el título universitario, y sobre todo y mucho más importante cuántos de ellos se considerarían a sí mismos ingenieros de primera?

Precaución: las startups de software no son tan fáciles como dicen todos

Published 121 weeks, 6 days ago
Wed Nov 07 2007

Lo que viene a continuación es un artículo traducido. Habiendo conversado ayer con Jomaweb, y habiendo leído su artículo sobre la Burbuja 2.0 en la que ambos creemos estar inmersos ahora mismo, aunque el mercado y los MBAs lo nieguen; no he podido por menos que admirar la sincronía que ha llevado a Rob Walling a escribir un artículo al respecto a medio mundo de distancia. Le he pedido permiso para traducirlo, como ya hice con otro artículo suyo y aquí lo tenéis:

Hace unos meses tuve una conversación con un amigo mío triunfador (por triunfador me refiero a que tiene 29 años, trabaja por su cuenta, gana un salario de seis dígitos y tiene dos casas en el norte de California). Dirige su propia compañía de software. Discutíamos sobre lo que hace falta para ser un emprendedor en el campo del software y en un momento de introspección me dijo: "No tengo tanto éxito como esperaba. Creía que el éxito sería más fácil."

Un chico listo
Cuando eres joven la gente te lanza cumplidos a diestro y siniestro.
Si te lavas las manos, te aplauden.
Si te atas los zapatos, te ovacionan.
Si te lees el libro Guinness de los Récords de cabo a rabo... bueno, eso hará que te peguen los niños de preescolar... pero ya me entendéis.

Cuando eres joven, la gente te dice que el éxito es fácil para evitar que te sientas desanimado. Te dicen que cualquier cosa es posible si trabajas lo bastante duro. Según vas haciéndote mayor, si lees cualquier cosa aparte de lo que te mandan en la escuela ya sabes más que tus compañeros. Acabas en clases con prefijos con "Máster" o sufijos como "Avanzado". Y empiezas a sentirte listo.
En algún momento comienzas a ver anuncios o publirreportajes que te dicen lo sencillo que es hacer dinero invirtiendo en cancelación de hipotecas, o en tu propio negocio, o en internet. Pero el cebo es obvio. (Te daré una pista, empieza con "Pero espera, ¡aún hay más!").
Y escuchas las historias de tu fracasado Tío Eduardo que terminan diciendo "... inventó el churriflurri digital y se convirtió en millonario de la noche a la mañana. ¡Lo que hubiera dado por ser él!" Por supuesto, lo que tu tío Eduardo no te cuenta son los miles de horas que el inventor estuvo trabajando solo en su sótano, preparándose para el éxito "de la noche a la mañana". Eso arruinaría la historia.

La Conspiración de las Startup
Tus padres, tus profesores, la televisión, internet y tu tío Eduardo han inculcado en tu cerebro que ser listo y tener una idea es suficiente para garantizarte un lugar en la portada de Gaceta de los Negocios Farolero's 2.0 Fast Company. Parece haber una suerte de conspiración que dice que el éxito de las startup es sencillo; que es algo que te entregan como un collar de flores hawaiiano cuando te bajas del avión en el aeropuerto de Honolulu.
Pero no es sencillo. Es muy difícil. Es una combinación de enormes cantidades de trabajo duro, inteligencia y suerte. Cualquiera que te diga lo contrario te está intentando vender algo. Aunque sólo sea una suscripción a una revista.

Tu posibilidad del 2%
Si vuelvo a leer una historia más sobre aplicaciones Facebook le arreo a alguien en todo el Facebook.
Da la impresión de que cada vez que abro mi lector RSS veo citas como ésta (de un reciente artículo de Fast Company): "Creada en una semana por dos hermanos en la India, [su aplicación para Facebook] se expandió como la pólvora, con medio millón de usuarios apuntándose en las primeras 10 semanas."
Este es sólo uno de entre unos 20 artículos que he leído sobre el fenómeno de las aplicaciones para Facebook. Cada uno tiene numerosos ejemplos de aplicaciones construidas en cuestión de días que ahora poseen enormes cantidades de usuarios.
¡Super empuja a tu amigo!
¡Tírale una oveja a tu amigo!
¡Tírale mierda virtual a tu amigo!
Eso no es suerte, es genio puro... en serio.
Un desarrollador animoso lee estos artículos y piensa "Quiero escribir una aplicación que consiga medio millón de usuarios en 10 semanas. ¡Voy a hacer lo mismo!" Así que se tira una semana en su sótano y termina una aplicación Facebook. Cuando la sube se encuentra con unos pocos miles de usuarios y con apenas los suficientes ingresos por anuncios mensuales como para comprarse un Frapuccino. ¿Por qué?
Porque la inmensa mayoría del tráfico (87%) va a 84 de las 5.000 aplicaciones existentes actualmente para la plataforma. Eso es menos del 2%. Ni uno sólo de los artículos que he leído menciona esta proporción, o el enorme factor suerte relacionado con crear una aplicación para Facebook "exitosa".

Suerte por un Tubo
Ya puedo oír a alguno pensando:
"¿Y qué hay de HotOrNot y PlentyOfFish? Sus fundadores se forran, no parecen excepcionalmente listos, y no se mataron a trabajar. Para ellos fue sencillo..."
Hot Or Not y Plenty of Fish son los ejemplos perfectos del viejo sueño de generar enormes cantidades de dinero con poco esfuerzo (si no estás familiarizado con ellos, son dos sitios de contactos que se convirtieron en superéxitos "de la noche a la mañana" y que permiten a sus dueños ganar millones de dólares al año por más o menos 10 horas de trabajo a la semana).
Si escuchas sus historias y comparas la cantidad de suerte con la cantidad de talento y trabajo duro que hizo falta para que sus sitios tuvieran éxito... la cantidad de suerte es impresionante. No sólo el timing fue absurdamente fortuito y sus ideas no excepcionalmente creativas, además los sitios web en sí mismos fueron bastante sencillos de construir. Parece que ambos se encontraron con una especie de anomalía extraña en el tejido temporal que ha ocurrido... hasta donde puedo ver... exactamente en dos ocasiones.
Si crees que todo lo que hace falta para construir una compañía de software es un sitio web chulo, una aplicación bonita y un enlace desde GigaOm... por favor, piénsatelo mejor.
La web está repleta de aplicaciones lanzadas por gente que pensó que sería así de sencillo. Leen acerca de Hot or Not, construyen y lanzan una aplicación, reciben un vínculo o dos de un bloguero de élite y cuando el dinero no empieza a llegar, abandonan. Y ahora venden el fruto de sus esfuerzos en Sitepoint.
No dejes que eso te pase a tí.

Moraleja
Hay excepciones a la regla las startups de software son difíciles. Pero si tu plan es tener éxito con una idea estilo lanzar ovejas virtuales, más te valdría seguir currando tus 40 horas semanales y gastarte el sueldo en comprar billetes de lotería.
Si quieres tener alguna oportunidad de éxito deberías evitar en todo lo posible el intentar copiar las historias de "una entre un millón". Tus oportunidades de tener éxito son un orden magnitud mayores con una idea aburrida como bug tracking o software de facturación que con el nuevo sitio web social. Tu pregunta a los chorrocientos sitios de contactos gratuitos que se lanzaron después de que Plenty of Fish tuviera éxito.
Puedes malgastar tu tiempo soñando con el éxito y pensando que si tuvieras tan sólo una idea brillante ganarías millones, tu cara en la portada de Sexy Startup Magazine, tendrías un Ferrari ecológico, y esa hermosa/o mujer/marido trofeo. O puedes agachar la cabeza, convertirte en un experto en tu campo, trabajar a destajo y; algún día, quizás... tendrás tu ración de éxito.


Artículo Copyright © 2007 Rob Walling

Este artículo aparece originalmente en el blog Software por Rob: El lado humano del desarrollo de software.

Sobre el autor
Rob Walling es un programador .NET que vive y trabaja en New Haven, Connecticut. Su blog, Software by Rob, es leído por 50.000 personas todos los meses; y habla sobre la contratación de programadores, técnicas de entrevista, técnicas de motivación, gerencia de proyectos de software y características de personalidad de los mejores programadores. Su empresa de consultoría, The Numa Group realiza desarrollo en ASP.NET para compañías en todos los Estados Unidos. Se puede contactar con Rob aquí.

Mi opinión

Dejando aparte el hecho de que soy incapaz de entender qué le ve la gente a FaceBook (tengo un perfil, pero en serio que no le veo la gracia); cada vez estoy más convencido de que estamos inmersos en otra burbuja. En España la estamos notando mucho menos, a pesar de ejempos como expone Joma en el artículo que vinculo al principio; pero en Estados Unidos están volviendo a las andadas de ofrecer cantidades millonarias por empresas con modelos de negocio entre tenues e inexistentes, o basados exclusivamente en los ingresos por publicidad. Creo que los ingresos por publicidad estaban bien cuando las fuentes de dichos ingresos estaban diversificadas, pero ahora la mayoría viene de un sólo sitio: Google Ads. ¿Y si Google cierra el grifo, o hace que gotee menos?

Ubuntu 7.10, enésimo intento

Published 123 weeks, 5 days ago
Thu Oct 25 2007

Llevo un par de días con Ubuntu 7.10 Gutsy Gibbon instalado en el portátil. Nada de Live CD, nada de máquina virtual, directamente instalado en el portátil con todas las consecuencias y compartiéndolo con un Windows Vista. Vista que, por cierto, no he vuelto a arrancar para comprobar que la instalación de Ubuntu me haya roto algo, pero es que para empezar no lo arrancaba demasiado. No, Vista no me convence. Creo que es el nuevo Windows ME (sin llegar a los abismos de mediocridad de aquél sistema operativo), el nuevo SO alterno de Windows. Tengo una teoría por la cual los SOs no profesionales de Microsoft funcionan a versiones alternas: Windows 95 era malo, Windows 98 (sobre todo el SE) era bueno, Windows ME era espantoso, Windows XP de lo mejorcito que han sacado, sobre todo desde SP2. Mientras tanto, la línea de SOs de Redmond descendiente de NT sigue a lo suyo sin verse afectada por esa tendencia: NT4 era bueno, Windows 2000 muy bueno, Windows 2003 la repera y Windows 2008 promete mucho, mucho. Desde luego, como SOs para desarrollo1 son mucho mejores que sus contrapartidas domésticas. Y, por descontado, me temo que en cuanto salga Windows Server 2008 el Vista va a desaparecer de mi portátil.

Pero no quiero hablar de Windows en esta entrada, que nos conocemos.

Tengo que decir que esta versión de Ubuntu me ha sorprendido, favorablemente. De momento no me he encontrado problemas graves, e incluso he sido capaz de hacer algún ajuste de configuración más complicado que establecer el tapiz del escritorio sin demasiados problemas. Por ejemplo, conectarme a un equipo Windows en la misma red y poder acceder a sus archivos.

Gracias a que esta versión de Ubuntu viene con Samba incorporado, el tema es bien sencillo. Si bien intentando explorar la red Windows no he sido capaz de ver el equipo, pues Ubuntu no detectaba ningún equipo enganchado a la red2. Sin embargo, seleccionando la opción de Menú Conectar con Servidor e introduciendo la IP local del equipo, voilá!, Ubuntu me ha colocado un acceso directo en el escritorio que muestra los discos duros compartidos del equipo Windows, a los que previa autorización puedo conectarme sin problemas. Sencillo, rápido y eficiente. Así, sí.

¿Los problemas? De momento, pocos: el teclado USB externo que uso con mi portátil funcionaba bastante mal, con repeticiones de teclas no deseadas, tiempos de retardo aleatorios y todo tipo de esquizofrenias irreproducibles. A pesar de que el portátil es nuevo y tiene una tarjeta gráfica potente (una NVidia, lo que puede tener parte de culpa) no puedo experimentar Compiz en todo su esplendor: tengo los efectos de las ventanitas temblorosas, pero el cubo no funciona, sólo obtengo un slide al hacer CTRL+ALT+Flecha. Y un fallo con la configuración de brillo del monitor: oscila, completamente a su aire, entre el 25% y el 100%. Sin intervención alguna por mi parte, el brillo baja al 25% en momentos aleatorios y vuelve a subir al 100% por sí sólo. He buscado ayuda en la comunidad y lo más cerca que he estado de conseguirla ha sido cuando un cachondo me ha recomendado buscar un exorcista en un canal de IRC. Por suerte, esta vez no es algo que me pase sólo a mí, así que supongo que lo arreglarán. Espero, ya que a pesar de no ser crítico para el funcionamiento es extremadamente molesto.

He cuanto a las herramientas, esta vez el Gestor de Paquetes ha cumplido lo que prometía y me ha instalado todo lo que le he dicho: MonoDevelop, Gambas, Eclipse y alguna cosa más que ahora no recuerdo el nombre. Todo herramientas de desarrollo para ir probando a desarrollar en Linux. Eso sí, no he encontrado ningún IDE específico para Ruby on Rails. ¿Alguna sugerencia?

Por último, decir que he descubierto una ventaja directa de Linux. Como no sé realmente qué puedo hacer con él ni cómo hacerlo, tengo muchas menos distracciones: abro Open Office y me pongo a escribir ficción como un loco. En ese aspecto, mi productividad realmente se multiplica en Linux.

Yo no creo que Ubuntu vaya a sustituir a Windows masivamente, ni ahora ni en un futuro cercano. Pero desde luego están en el buen camino, no ya de sustituir a nadie; sino de convertirse en una alternativa viable, estable y sobre todo usable. Que es ni más ni menos que lo que queremos todos: tantos los fanáticos de Linux como los fanáticos de Microsoft. Siendo como soy un partidario de Microsoft confeso y pensando con la cabeza no puedo por menos que desear que los sistemas Linux para usuarios domésticos vayan evolucionando en esta dirección: cuanto mejor sea la competencia, más tendrán que espabilar en Redmond para enfrentarse al desafío. Y yo creo firmemente que lo conseguirán. Y que todos saldremos ganando, que es de lo que se trata.



NOTA: Mañana no habrá links, he tenido la semana demasiado ocupada como para ir de pesca, lo siento.


1.- Por supuesto, hablo para desarrollo Windows, que nadie se me mosquee.
2.- Hablo, por cierto, de una red local con cable. Ni siquiera he mirado el WiFi en Ubuntu, y por experiencias anteriores sólo lo haré en caso de extrema necesidad.

Se puede decir más alto

Published 124 weeks, 6 days ago
Wed Oct 17 2007
[...] nos las tenemos que ver con analistas del salsa rosa de las TIC que rezuman las informaciones de los mass media, que repiten clichés sobre el desastre que se nos avecina, desprendiendo satisfacción –la del ignorante– como si en esta guerra él tuviera acciones y su éxito personal y profesional estuviera ligado a eso.

Se puede decir más alto, pero dudo mucho que se consiguiera más claridad. La cita es de Carles del Collado, director de la revista Windows TI Magazine, que en su último editorial declara estar más que harto de agoreros, técnicoless variados, voceros, estaciones de repetición de la última moda en los medios especializados y, en general, de gente convencida de que por instalar Ubuntu eres más listo... o por usar Apple más guapo.

Ya se sabe que si sale en la tele es que es verdad.

¿El fin de Microsoft?

Published 126 weeks, 6 days ago
Wed Oct 03 2007

Lo estamos viendo día sí y día también en un buen montón de webs especializadas (y no tanto): el futuro está en la Red. Dentro de no muchos años el sistema operativo de todos los ordenadores será una mera excusa para cargar el único software que tendremos instalado localmente: el navegador. Mediante el navegador accederemos a todo el resto de aplicaciones para tratamiento de textos, hojas de cálculo, presentaciones, multimedia y cualquier otro menester.

Liderando la carga de ese bravo y valiente futuro está, claro, Google. A través de su suite ofimática online, abanderada por GoogleDocs, se perfila según muchos medios y analistas como el sustituto natural de Microsoft en el área de las aplicaciones ofimáticas. Las ventajas, dicen, son obvias: no hay que instalar software en el ordenador, podemos acceder a nuestros documentos desde cualquier PC con conexión y podemos incluso compartir documentos para creación colaborativa. Todo ello cierto y ciertamente ventajoso.

El otro enano que le ha salido a Microsoft en todo este circo es OpenOffice, la suite ofimática Open Source. A pesar de no ser una aplicación web y tener que instalarse en los discos duros de cada PC, trabaja con estándares, es de código abierto (y quieren seguir siendo los únicos que lo hacen) y no es maligna. Al igual que con Ubuntu, es de todos conocido que su mera instalación proporciona un +30 de inteligencia y un +20 de carisma al usuario, si se me permite el exabrupto freakie.

Por supuesto, ante tanta competencia muchos de los preclaros analistas se apresuran a anunciar (y van...) el fin de Microsoft, la caída del Imperio del Mal, la llegada de la bien merecida libertad del usuario medio de las garras del maldito monopolio diabólico.

Debo decir que el Gran Satán ha contraatacado poniendo en marcha Office Live, una herramienta online que se propone como complemento del Office instalado: nos permite compartir ficheros entre usuarios y ordenadores, pero no nos permite crearlos desde la Web. Los creadores de opinión se han apresurado a decir que, como de costumbre, Microsoft llega tarde a la innovación, se limita a copiar a todo Cristo y si sigue siendo líder de mercado es porque somos todos unos idiotas esclavizados.

Siendo un humilde picacódigos que jamás llegará a ser ingeniero y por tanto nunca podrá analizar una maldita cosa, no se me pasa por la imaginación llevar la contraria a tantas y tan preclaras mentes. Pero si me voy a permitir opinar, sin conocimiento del tema ni fundamento alguno, pero al fin y al cabo aquí el hosting lo pago yo.

A día de hoy, Google Docs y el resto de aplicaciones ofimáticas online no le llegan ni a la suela de los talones a una suite ofimática instalada en el equipo, ya sea Office u OpenOffice. Si queremos crear un documento simple, con diferentes tamaños y tipos de letras, unas cuantas negritas y algún justificado que otro podemos usar Google Docs, sin problema. En cuanto queramos algo ligeramente más sofisticado, como una combinación de correspondencia, o añadir un encabezado o pie de página al documento, o gráficos, o pegado inteligente de otros componentes de la suite (como una hoja de cálculo incrustada en un documento de texto), o referencias cruzadas, márgenes, orientación de página, correción ortográfica y gramatical, comentarios, protección de documentos, o macros; GDocs se queda espantosamente corto. Y no me hagáis hablar de Google SpreadSheet: comparar eso con Excel es como compararme a mí con David Meca: los dos sabemos nadar, de acuerdo. Pero él llega nadando a Mallorca, y yo necesitaría apoyo logístico de la Sexta Flota para hacerme un largo en una piscina.

En cuanto a la comparación Office y OpenOffice, aquí las cosas están equilibradas. OpenOffice es una suite ofimática excelente. Además de eso, es gratuita; y mucho más fácil de obtener que una versión pirata de MS Office. Además de eso, es de código abierto y tiene detrás a toda una comunidad de programadores reparando cualquier bug a la velocidad de la luz.

Y a pesar de todo, el grueso de los usuarios sigue prefiriendo Microsoft Office. A pesar de que no es gratuita (ni siquiera barata) la suite ofimática del Imperio del Mal tiene, hoy por hoy, más adeptos que las alternativas. A pesar de que para conseguirla la mayoría de los usuarios ha tenido que descargarla e instalarla de forma ilegal, aunque relativamente sencilla. A pesar de que tenerla y usarla (y no digamos ya defenderla) hace que bajen automáticamente tu Inteligencia y tu Carisma. Debe ser que el usuario medio no es freakie.

Si yo fuera Steve Ballmer no me sentiría tan amenazado como pregonan muchos. Si yo fuera Steve Ballmer dejaría que los de siempre sigan opinando lo mismo mientras mi producto es líder. Y si yo fuera Steve Ballmer, me guardaría un as en la manga, por si acaso la competencia se me acerca demasiado: haría una versión de Office con funcionalidad reducida y aún así muy superior a Google Docs, y la regalaría. Free as in beer, porque francamente no creo que al usuario medio le haga falta el código fuente de la aplicación que usa para escribir documentos o llevar la contabilidad de su casa.


En otro orden de cosas, me acabo de enterar que Microsoft va a hacer público el código fuente del .NET Framework. No con una licencia Open Source, sino con la nueva Microsoft Reference License. Estoy deseando saber qué opinan de esto los de siempre.

Office space

Published 128 weeks, 5 days ago
Thu Sep 20 2007

Mi bloguero favorito, Jeff Atwood, habló hace unos meses de su oficina. Con fotos. Si en su día no lo visteis, no os lo perdáis porque de verdad merece la pena ver como se trabaja en una empresa en la que los desarrolladores importan.

Hoy no he podido evitar acordarme de las condiciones de trabajo de Jeff:

My office space

Tened en cuenta que lo que estáis viendo es sólo mi mesa, pero estoy en un despacho en el que trabajamos 12 personas. Las condiciones de abarrotamiento son evidentes, aunque por suerte temporales: el mamotreto que veis a la izquierda es un escáner Canon DR 6080 que tengo que devolver en cuanto termine de hacer unas pruebas con él. Comparadas con las mías, las condiciones de trabajo de Atwood son como comparar el hostal La Pepa con el Ritz. Y seguramente haya gente que esté peor que yo: yo al menos tengo plantas y luz natural.

Es evidente que no todos podemos trabajar con un despacho como el de Atwood: no hay, literalmente, sitio. En el caso de algunas empresas, tampoco hay dinero. Pero sí que se puede hacer un esfuerzo extra por mejorar las condiciones de todos nosotros, sí que los empresarios podrían hacer un esfuerzo para mejorar nuestro office space. Y como hablar es gratis, me permito hacer unas cuantas sugerencias.

  • Dobles monitores.- Cada vez surgen más testimonios que aseguran que dos buenos monitores planos aumentan maravillosamente la comodidad (ergo, la productividad) del usuario. Es lógico a nada que lo pensemos un poco: todo el tiempo que me dedico a abrir y cerrar ventanas dentro y fuera de Visual Studio, a organizar esas ventanas para poder hacer n cosas a la vez es tiempo que pierdo. Puede parecer poco tiempo, pero al cabo del día se acumula... y se nota. Si no se pueden poner dos monitores, como mínimo absoluto un buen monitor plano de 19 pulgadas. En mi anterior empresa, gobernada férreamente con un puño de hierro que no se abría jamás para soltar un duro, tuve que soportar durante mis últimos seis meses de estancia un monitor de tubo de 17 pulgadas.
  • Sillas.- Si me voy a tirar, como mínimo, ocho horas sentado en la silla; ¿qué menos que sea cómoda? ¿Resistente? ¿Nueva? De nuevo, nos enfrentamos a algo que es de puro sentido común: si un programador está incómodo y tiene que cambiar de postura cada poco rato, difícilmente podrá concentrarse para realizar su tarea.
  • Mesas amplias.- Con sitio para todo. Tengo que tener sitio, como mínimo, para que teclado y ratón estén a una distancia cómoda el uno del otro, para poder utilizar un cuaderno sin tener que mover el teclado de sitio, para poder colocar el monitor a la distancia adecuada y, por supuesto, para poder personalizar mi mesa a mi gusto: con fotos o alguna planta o juguetes o lo que quiera cada cual.
  • Ordenador.- Simple: lo más potente que pueda comprarse. Como mínimo absoluto dos gigas de RAM, el micro más potente del momento, una tarjeta gráfica potente. De nuevo es algo que cae por su propio peso: no estoy pidiendo esto para poder jugar a Quake en la oficina, estoy pidiendo esto para que cada vez que compilo la solución no tenga que quedarme parado cinco minutos enteros esperando a que mi pobre equipo de desarrollo termine. Pero lo verdaderamente peligroso, desde el punto de vista del empresario, es que esos cinco minutos son una invitación abierta para procastrinar: mientras compilamos la solución abrimos un navegador, o el correo, o un lector de noticias y los cinco minutos se pueden convertir fácilmente en diez o veinte.
  • Teclado y ratón a elección del desarrollador.- Así de simple. Yo no sé el resto, pero yo soy muy picajoso con los teclados y los ratones: al fin y al cabo, son mis herramientas de trabajo diario. Y mis gustos en hardware de entrada no tiene por qué ser los mismos que los de mis compañeros. Por lo tanto, en lugar de tener que aguantarse todo el mundo con el mismo equipo (sub)estándar, y seguramente barato, hagamos algo elegante: dejar a cada desarrollador que elija personalmente el teclado y el ratón que quiera, de un catálogo.
  • Software y soporte ORIGINALES.- Esto no debería ser ni siquiera un punto de esta lista pero, desgraciadamente, lo es en muchos casos. Señor empresario, si tiene una empresa de informática, si usted vende productos o servicios basados en ciertas tecnologías y gana un beneficio con ellas, debe pagar por ellas. Así de simple. Llevo más de ocho años y seis empresas en este negocio y sólo he estado en dos empresas con software original, sólo una de ellas con suscripción a MSDN. En el resto , todo pirata: desde los sistemas operativos a las herramientas de desarrollo, pasando por todo lo demás. En muchos casos yo tenía en mi casa más software original que la empresa que me contrataba. Las ventajas son obvias: acceso a versiones recientes del software, acceso a soporte para el software. En una memorable ocasión tenía que hacer una tarea complicada en VB6 para un cliente (algo relacionado con códigos de barras y OCRs), y le ofrecí a mi gerente dos opciones: hacerla yo mismo y reinventar la rueda en el proceso, con las consecuentes incógnitas en cuanto a tiempo de desarrollo y resultado final; o comprar un componente de terceros para resolver el problema con garantías y rápido. Mi gerente encontró una tercera vía: descargarlo de eMule.
  • Biblioteca.- El departamento de desarrollo debe disponer de una biblioteca técnica para uso de los miembros. Se puede hacer de varias formas: previa asignación de un presupuesto mensual, bimensual, semestral o al gusto; se podría designar un comité que se encargaría de recoger las necesidades del departamento (presentes y futuras) y comprar libros para cubrirlas. O confeccionar entre todos los desarrolladores una wishlist, en la cual cada persona podría sugerir títulos y votar los títulos sugeridos por los demás. Cada periodo de tiempo, los x títulos más votados hasta cubrir el presupuesto se compran, y se renueva el ciclo.
  • Área de descanso.- Un área en la cual los programadores puedan relajarse, hablar con otros integrantes del equipo o sencillamente distraerse de lo que están haciendo. Cuando uno está encallado con algo que no sale, con un error que es capaz de ver; el truco más viejo del manual es ponerse inmediatamente a hacer otra cosa: salir a fumar un cigarrillo si se es fumador, acercarse a la máquina de bebidas, leer algo. Aunque aparentemente no estás pensando en el problema, es muy fácil tener un momento eureka cuando estás separado del mismo. O al volver del descanso, inmediatamente ves el problema con nuevos ojos y encuentras una solución que ahora parece obvia. En el área de descanso podrían estar los libros de la biblioteca, por ejemplo. Si se es muy generoso con el equipo, y si éste merece nuestra confianza, incluso podemos tener algo de material recreativo: una consola de videojuegos, una máquina de dardos. Y, por supuesto, máquina de refrescos gratuita.
  • Proyectos personales.- Éste es un favorito personal mío. Cada viernes, todos los viernes, todos los integrantes del equipo de desarrollo dejan de realizar su trabajo normal. Cada programador tiene que elegir un proyecto personal para realizar durante las horas de trabajo del viernes, y a ser posible el proyecto personal no tiene que tener absolutamente nada que ver con el proyecto que está realizando de lunes a jueves. Cada desarrollador tiene completa libertad para elegir el proyecto que quiera, usando la tecnología que prefiera. Un reproductor de vídeo, una programa que compile recetas, un juego de Go, lo que sea. Si un programador no tiene una idea propia que quiera desarrollar, puede ofrecérsele una lista de los proyectos personales en curso para que se una al que prefiera, o puede unirse al proyecto de Open Source de su elección, o puede unirse al...
  • Laboratorio de investigación.- Este equipo dedicará los viernes a investigar y probar nuevas tecnologías. No tienen porqué ser estrictamente nuevas, pero sí que tienen que ser nuevas para el equipo de desarrollo en su conjunto. Por ejemplo, si normalmente el equipo de desarrollo trabaja con ADO.NET, el laboratorio de investigación puede aprender a trabajar con NHibernate. Si normalmente se trabaja con el framework ASP.NET tal y como Microsoft lo presenta, se investiga con la implementación MVC de Castle. O se aprende Ruby On Rails. Al final de la investigación, el equipo será responsable de vender esa tecnología a los jefes de proyecto y gerentes, que decidirán si es aplicable a nuevos proyectos. En caso de serlo, el equipo de investigación dedicará un viernes (o los que hagan falta) a entrenar a otros compañeros en el uso de esa tecnología, según lo requiera el proyecto para el que se va a usar.

Lo sé. Muchos de los anteriores puntos son más adecuados a una software factory, cuando el grueso del trabajo de desarrollo en este país es en las instalaciones del cliente. Pero seguro que, con un poco de esfuerzo, el empresario creativo puede crear condiciones similares también para sus desarrolladores destacados en cliente.

Y no, esta lista no es una lista compuesta por un sindicalista radical, o un amargado picacódigos soñando despierto con una mejora de sus condiciones. Es una lista pensada con un solo objetivo en mente: ganar dinero. Prácticamente todos los puntos de la lista requieren una inversión por parte del empresario, cierto. Pero en muchos casos es una inversión que (debería estar) está asumida: equipos, mobiliarios y software original. El gasto extra en comprar equipos buenos, buen mobiliario y software original se compensa por la falta de pérdidas de tiempo, por la mejora en la concentración y la capacidad de trabajo de los desarrolladores, por el soporte añadido y el ahorro de tiempo en reinvenciones de rueda innecesarias. El presupuesto que un empresario tendría que desviar para permitir que su equipo compre libros o tenga bebidas gratis es ridículo comparado con los beneficios que se obtienen de su trabajo. Y todos los puntos de esta lista traen consigo unos beneficios adicionales nada desdeñables: mejora del conocimiento y preparación del equipo técnico, que lleva a una mejora de la calidad del software, que lleva a una mejor relación con los clientes, lo que lleva a conservar clientes y a conseguir mejores clientes por el siempre útil boca a oreja. Eso por un lado, por el otro todos estos puntos (unidos, por supuesto, a un salario y condiciones a la altura del mercado) traerían de la mano un índice de rotación bajísimo en el equipo de desarrollo. Y sí, señor empresario, ya sé que a usted el índice de rotación de los técnicos le trae al pairo: siempre hay más gente en Infojobs. Pero un equipo se hace con el tiempo, los buenos desarrolladores se hacen con el tiempo y no olvidemos que los clientes, que al fin y al cabo son los que nos dan de comer a todos, ven con muy malos ojos un alto índice de rotación en los equipos de desarrollo.

Incluso los puntos más aparentemente de ciencia-ficción como son los proyectos personales o el laboratorio de investigación son puntos que redundan directa, aunque quizás no obviamente, en beneficio de la empresa. Lo primero, son excelentes motivadores. Por lo menos, son motivadores para el tipo de trabajador que usted quiere en su empresa. Segundo, sus empleados aprenderán tecnologías y métodos que pueden serle útiles en sus próximos proyectos. Tercero, si alguno de sus programadores dedica tiempo pagado por usted a colaborar con un proyecto Open Source, eso puede convertirse en una buena fuente de publicidad para su empresa. Cuarto, ¿quién le dice a usted que el próximo YouTube no sale de un proyecto personal de uno de sus empleados?

Anímense, señores empresarios. Mejoren las condiciones laborales de sus desarrolladores. Ustedes también saldrán ganando.

Y aún así...

Published 129 weeks, 1 day ago
Mon Sep 17 2007

El iPhone sale el 29 de noviembre en Francia. A 300 euros, con el operador Orange. Mañana anuncian los planes para Inglaterra, pero me imagino que serán similares. Igual que supongo que serán similares para España, en la que parece ser que Movistar tiene todos los puntos para llevarse el gato al agua.

Pero si os fijáis en la noticia que vinculo, en Francia (y supongo que en toda Europa pasará lo mismo) el maravilloso cacharrito tampoco tendrá 3G. Ni planes de tarifa plana para su uso.

Y aún así, se venderá por miles.

Actualización 18/09/2007.- En el Reino Unido saldrá a la venta el 9 de Noviembre. No tendrá 3G, ya que según ha dicho Jobs en la conferencia de prensa "Lo que perdemos [en tiempo de vida de la batería] por tener 3G es demasiado ahora mismo". Y Nokia sin enterarse. Sale a la venta por la friolera de 269 GBP, más caro de lo que cuesta en USA; y además habrá que firmar un contrato de permanencia de 18 meses a 35, 45 o 55 GBP al mes, que proporcionará a los usuarios tarifa plana en llamadas y WiFi, siempre y cuando encuentren un punto de acceso de The Cloud cerca. No os molestéis en mirar, en España no dan servicio. Y aún así O2 ha publicitado una encuesta interna en la que dicen que un 80% de sus usuarios de terminales avanzados quieren cambiarse a esto.

Poniendo la pasta donde se tiene la boca

Published 140 weeks, 6 days ago
Wed Jun 27 2007

O, como dicen los yankees, putting the money where the mouth is; proverbio muy suyo que viene a decir que no sólo hablan de un tema concreto, sino que están dispuestos a respaldar con dinero sus opiniones. Algo así como el castizo Obras son amores... (creo, la experta en refranes es mi señora madre).

El caso es que Jeff Atwood, uno de los bloggers que más admiro, por un buen montón de razones, ha decidido emprender una de esas acciones y poner pasta donde tiene la boca. Ha decidido empezar a poner publicidad en su blog, pequeña y bien dirigida, y explica sus razones en un gran post sobre cómo publicitar tu blog. La premisa básica es bien simple: respeta a tu lector.

Sin esperar casi a ver llegar las reacciones a su decisión, ha hecho un anuncio sorprendente: donará 10.000 dólares a proyectos Open Source realizados en .NET. Sus razones, aunque las explica mejor él mismo, son simples: dentro del ecosistema Open Source, .NET es claramente un ciudadano de segunda categoría. Y si algunos queremos que eso cambie debemos poner de nuestra parte, evidentemente MSFT no va a hacer demasiado en ese aspecto. O eso parecería lo más lógico.

Dicho dinero será proporcionado por los ingresos publicitarios de Jeff Atwood... y de Microsoft, como ha declarado Anand Iyer, evangelista de Microsoft, quien ha asegurado a Atwood que donará la misma cantidad de dinero que done Atwood, proveniente de las arcas de Microsoft.

Así que Atwood ya está recogiendo comentarios con nominaciones a los proyectos Open Source hechos con .NET que sus lectores opinamos que se merecen la pasta, o parte de ella.

Yo, claro, ya he votado por SubSonic.

PS.- Que queden claro un par de cosas de antemano. El día que este blog tenga el mismo número de lectores que el de Atwood(*) pondré publicidad. Y todo lo que no se lleven los gastos de hosting irá destinado a un proyecto Open Source en .NET, elegido de la misma manera. Este es mi compromiso.

(*) Por desgracia, no pasará nunca, por la sencilla razón de que este blog nunca será tan bueno como el de mr. Atwood.

Entre todos la matamos (I)

Published 158 weeks, 4 days ago
Fri Feb 23 2007
Para mí, el software es una labor de amor. Es una profesión muy hermosa, pero que entre todos estamos matando lentamente. Quiero dedicar una serie de entradas a todos los que, en mi humilde (y perfectamente rebatible) opinión, veo como culpables de este crimen.

Empecemos por nosotros mismos: los técnicos.

Y es que a veces me encuentro muy solo entre mis teóricos compañeros en ese amor a la profesión que he mencionado antes: conozco montones de informáticos, carrera incluida, que hicieron la carrera porque "tenía muchas salidas" y siguen en ella por una única y exclusiva razón: la pasta.

No voy a sugerir siquiera que los programadores debamos trabajar sin cobrar, o que el dinero no es un factor importante, porque lo es. Pero no debería ser el único. Uno debería trabajar en esto porque le gusta lo que hace: la nuestra, como policía, bombero o cura, debería ser una profesión estrictamente vocacional. Y, ojo, todo esto no tiene absolutamente nada que ver con tener o no "la carrera": la mera posesión de un diploma no hace a un informático.

Un informático se hace. Y se hace con esfuerzo y dedicación a lo largo de los años, y de los distintos proyectos, aprendiendo lo que puede de cada una de sus experiencias en el sector. Se debería empezar por la Universidad, por qué no, pero lo que no se debe hacer nunca es pensar que la mera posesión del título nos hace informáticos. Ni mucho menos.

Si eres de los que haces tu ocho horas de curro y al salir no quieres ni ver un teclado, ¿qué haces programando?

Si eres de los que sabes las cuatro características básicas de tu lenguaje para hacer los típicos programas de gestión; es decir ni más ni menos que lo que te exige el día a día, y no coges un libro de programación, ni quieres aprender nada nuevo, ni lees técnicas para mejorar, ¿qué haces programando?

Si tu estilo de programación es el copiar y pegar código encontrado en Google, sin intentar entenderlo, sin saber cómo modificarlo para tus usos, ¿qué haces programando?

Si los usuarios finales no te importan (o peor, los desprecias) y piensas que lo que estás haciendo es un ente abstracto que no va a usar nadie que te importe y tú te dedicas a tirar código (o peor, a fingirlo) durante ocho horas exclusivamente para que te paguen a fin de mes, ¿qué haces programando?

Hazte una pregunta a tí mismo, examinándote fríamente y con tranquilidad: ¿de verdad quieres ser programador? Si la respuesta es negativa, haznos un favor a todos y dedícate a cualquier otra cosa. Hazte actor, abogado, camarero o taxista. Cultiva margaritas en el campo. cualquier cosa que realmente te sirva para realizarte como persona y sentirte feliz. Pero no nos jodas a los que hemos elegido esta profesión para realizarnos y ser felices.

Y no me valen las excusas de tipo si a mi me gusta lo que hago, pero es que me pagan una mierda, o todo el mundo a mi alrededor es un chapuzas, o yo lo que quería era programar juegos, no aplicaciones de gestión. Si te pagan una mierda, exige una subida de sueldo o cambia de empresa. Si todo el mundo a tu alrededor es un chapuzas, pon tú el ejemplo. Si tú lo que querías era programar juegos, ¿quién te lo impide? Ponte por las tardes, o las noches, o los fines de semana. Únete a los cientos de esfuerzos Open Source que hay para hacer juegos: aprende y hazlo. Pero no dejes que esa insatisfacción afecte a la calidad de tu trabajo diario, que es el espejo en el que nos reflejamos todos.

Dejémonos un poco de quejar sobre el sempiterno ¿Qué hay de lo mío? y pongamos algo de nuestra parte. Que no, señores, que no nos pagan sencillamente por aparecer por la oficina y encender el equipo. ¿Cómo se puede tener el cuajo de reclamar una mejor posición y de decir que se está descontento cuando todo lo que uno hace al cabo del día es clasificar fotos de las vacaciones? ¿Cómo puede uno desproticar contra una empresa que te paga para que programes, y tú te dedicas a jugar al Street Fighter en la oficina? ¿Cómo se puede decir que una es ingeniero, trabajar media hora al día atendiendo una llamada y estar todo el santo día mirando foros en Internet, mientras se usa el PC como reposapiés? Todos estos son casos sangrantes, recientes y no ficticios que este asombrado picacódigos ha visto con sus propios ojos.

Yo he exigido al Departamento de Sistemas de mi empresa que me monten un PC como servidor de base de datos y control de código fuente. Porque sin eso no trabajo, es así de simple. Bueno, pues soy el único de toda mi planta que utiliza una herramienta de control de código fuente. Soy el único de mi planta que se ha preocupado de automatizar los procesos de backup de su código, documentos y bases de datos. A veces me parece que soy el único de mi planta que se preocupa de lo que hace, más allá de la próxima nómina. Y así, señores, no vamos a ningún sitio.

Y ya que estamos abroncando: señores Ingenieros de Primera, precisamente una bronca así es lo que hecho de menos en su página web. ¿Cómo se atreven a exigir sus derechos y no mencionar ni siquiera de pasada sus deberes? ¿Cómo se atreven a sugerir siquiera que la solución al problema son los colegios profesionales y evitar el intrusismo, cómo se atreven siquiera a sugerir que el corporativismo y la mafia de un colegio profesional va a mejorar la situación? ¿Cómo se atreven a llamarme a mí intrusista, por el mero hecho de que me falta un papelito? ¿Cómo tienen el rostro de afirmar que la falta de dicho papelito me imposibilita ejercer esta profesión que amo y respeto posiblemente más que ustedes? Evidentemente, lo que yo no voy a hacer nunca es ponerme a diseñar un sistema de telecomunicaciones militar, o un nuevo protocolo de red, o cualquiera de esas grandes empresas arquitectónicas que ustedes defienden con tanto celo, y que son en este país el pan nuestro de cada día como todos sabemos. Pero para diseñar sistemas de gestión informática, software, me basto y me sobro con mi experiencia y mis conocimientos autodidactas. Así que vivan ustedes y dejen vivir a los demás.

Estoy muy de acuerdo en que esta profesión está infravalorada y menospreciada; pero lo que todos deberíamos tener muy clarito es algo muy sencillo: si queremos que nos traten como profesionales, debemos comportarnos como tales.


Actualización 01/03/2007 07:22.- Se han cerrado los comentarios. Se estaba elevando el tono de forma innecesaria y se ha llegado a un punto en el que las posturas son inamovibles.

Estela

Published 158 weeks, 5 days ago
Thu Feb 22 2007
La que se ha montado. Resulta que, por si alguno de mis lectores anda despistado y no se ha enterado de nada, un programa informático llamado Estela, producido por la consultora alemana Software AG y que tendría que estar en funcionamiento desde Diciembre de 2006, no sólo se encuentra a un 80% de funcionalidad según el Director General de Patrimonio, sino que además lo poco que funciona es incompatible con el resto de sistemas bibliotecarios, es lento y propenso a bloqueos, colapsando las bibliotecas municipales de Madrid. Vamos, una joya de software.

Personalmente, me alegro.

Y no es que le tenga especial tirria a Software AG, ni mucho menos al equipo que ha desarrollado la aplicación: personas de las que nadie se acuerda y que deben estar pasándolo fatal. Creedme, lo sé. He vivido situaciones muy similares (aunque por suerte con mucha menos publicidad) y a nada que tengas un mínimo de orgullo profesional momentos como éstos son muy amargos. Y sin necesidad de que ningún jefe te eche la bronca, ya te abroncas tú solito lo suficiente.

Pero me alegro, repito, a ver si este desastre y muchos más que se producen a diario hacen abrir los ojos a consultoras y clientes sobre una verdad fundamental en el mundo del desarrollo del software patrio: seguimos un modelo abocado al desastre.

Y la culpa es de TODOS.

Los de siempre, como siempre

Published 166 weeks, 6 days ago
Wed Dec 27 2006
Nuevo intento por parte de los sempiternos defensores de la libertad de coartar precisamente eso: la libertad. BadVista.Org es un blog montado por la Free Software Foundation.
Me ha llamado la atención la cajita "Acerca de..." que viene en el blog. Cito y traduzco:
The BadVista campaign is an advocate for the freedom of computer users, opposing adoption of Microsoft Windows Vista and promoting free (as in freedom) software alternatives
--
La campaña BadVista es una defensa por la libertad de los usuarios de ordenadores, que se opone a la adopción de Microsoft Windows Vista y promueve las alternativas de software libre (de libertad, no de gratuidad)
Ya.
Es decir, que el objetivo, la (in)sana intención es influir en las decisiones personales de cada usuario y decirnos que somos muy libres de instalar y usar el Sistema Operativo que queramos... siempre y cuando lo que usemos no sea Microsoft, claro. Bonita forma de defender la libertad de elección. En fin, es la misma vieja historia.

Es de Justicia

Published 173 weeks, 1 day ago
Mon Nov 13 2006
Me hago eco de la noticia aparecida, entre otros medios, aquí, en la que se comenta que al comprador de un equipo de marca Dell le han tenido que devolver las 47 libras que le costó el Windows pre-instalado, amparándose en que nunca lo ha usado.

Bien por él. En efecto, es lo que tendríamos que hacer todos los que nos compramos un ordenador que trae de serie instalado un S.O. que no vamos a usar nunca. Por ejemplo, mi equipo (un HP Pavilion W5080 que no linko porque está, pásmense ustedes, descatalogado) trae de serie un Windows XP Home Edition, sin CDs de instalación ni nada, almacenándolo todo en una partición de recuperación del disco duro principal. Si instalas cualquier otro sistema operativo, aunque sea de la misma familia, date por jodido, que has perdido la garantía. Aunque el problema no tenga nada que ver con el cambio de S.O.

Esta solución adoptada por los principales fabricantes de ordenadores no es de recibo por varias razones:
  1. No tengo porqué pagar un sistema operativo que no voy a usar. Si, además, el sistema operativo que sí voy a usar no es gratuito, tengo que pagar dos veces por lo mismo.
  2. La compañía de hardware no tiene que decirme a mí cómo tengo que organizar mi disco duro.
  3. Generalmente la partición de recuperación ocupa más de lo necesario. Para que ellos se ahorren dinero en comprar licencias completas de Windows, yo pierdo espacio en disco duro. Espacio por el que nadie me compensa. Y digo lo de ahorrar en cursiva porque por supuesto que nos cobrarían el precio íntegro de esas licencias completas, faltaría más.
Pues a ver si es verdad que con la noticia cunde el ejemplo y más gente se decide a reclamar que le devuelvan el dinero de un S.O. que no va a usar. Aunque no debería hacer falta: los fabricantes deben darse cuenta de esto y dar la opción de entregar el equipo pre-instalado con S.O.; porque hay gente que lo quiere funcionando según se lo compra y con Windows, nos guste o no; o darnos el equipo sin S.O. a los que queramos instalar uno distinto del que el fabricante piense que es el más adecuado para nosotros.

Nueve cosas que los programadores prefieren al dinero

Published 173 weeks, 5 days ago
Thu Nov 09 2006
Muchos de los desarrolladores que conozco llevan programando desde el instituto. Tanto si era construyendo juegos en modo texto en un Apple IIe o creando una aplicación para el banquillo del equipo de fútbol de la escuela en Visual Basic, es algo que hacían por el desafío y, claro, por las chicas. Las mujeres aman a un hombre que puede hablar en BASIC con su Apple.

Los graduados universitarios se enfrentan a una triste realidad cuando abandonan el vientre protector de la universidad y tienen que conseguir su primer empleo. Muchos de mis amigos encontraron trabajos que les suponían unos 250.000 dólares al salir de la universidad, y les asombraba que los salarios iniciales en trabajos de ingenierías e informática eran casi el doble. Pero la mayoría de los ingenieros en mi clase no se hicieron ingenieros por el dinero; lo hicimos porque teníamos un profundo deseo de trastear e impresionar a nuestros amigos. ¿Ya os he dicho lo de las chicas?

El dinero es un factor de motivación para la mayoría de nosotros, pero asumiendo una paga comparable, ¿qué es lo que hace que ciertas compañías atraigan y mantengan a los desarrolladores mientras que otras los reciclan como si fueran papel higiénico?

Higiene y Motivación
En la década de los 50 un investigador llamado Frederick Herzberg estudió a 200 ingenieros y contables de los Estados Unidos. Mediante una serie de preguntas simples obtuvo las que es una de las teorías más ampliamente aceptadas sobre satisfacción en el trabajo llamada Teoría de los Dos Factores.

Su teoría divide la satisfacción laboral en dos factores:
  • Factores de higiene tales como las condiciones laborales, calidad de la supervisión, salario, seguridad y políticas de empresa
  • Factores de motivación tales como los logros, reconocimiento, responsabilidad, el trabajo en sí, desarrollo profesional y personal
Los factores de higiene son necesarios para asegurar que los empleados no se encuentren insatisfechos, pero no contribuyen a obtener niveles altos de motivación. Los factores de motivación son los que crean satisfacción laboral proveyendo a los empleados de sentido y crecimiento personal.

Piensa en grandes compañías financieras como Countrywide o IndyMac. Aunque nunca he trabajado para ninguna de ellas, las historias que he oído indican que sus factores de higiene son buenos: las condiciones de trabajo son buenas, los supervisores son razonables, los salarios decentes, tienen buenos beneficios adicionales, etc...

Sin embargo, los factores de motivación son, cómo decirlo, inexistentes. Como vió Herzberg, este escenario conduce a que los empleados vean el trabajo como poco más que un salario, lo que probablemente es perfecto para compañías como Countrywide o IndyMac.

Tomemos el extremo opuesto: una pequeña startup en una sórdida oficina sin ventanas, los beneficios son nulos, prácticamente sin supervisión (porque el Consejero Delegado está en la calle, vendiendo el producto) y sin políticas de empresa (porque el Consejero Delegado está en la calle, vendiendo el producto). Pero el subidón constante del aprendizaje, el ser responsable, en ocasiones directo o único, del éxito o fracaso de la empresa, y la creencia en el crecimiento futuro de la empresa hacen a este trabajo mucho más deseable para muchos desarrolladores.

Uno de mis primeros trabajos de programación fue para una pequeña consultoría web durante la burbuja de las punto com. Éramos 7, y crecimos hasta 17 en el pico de la burbuja; disparándonos con pistolas de agua, tirándonos balones de fútbol americano Nerf y produciendo cantidades exageradas de código propulsado por cafeína. Aprendíamos un lenguaje nuevo con cada proyecto y siempre estábamos a la última.

Recuerdo haber pensado que una empresa podría haberme ofrecido un aumento de quince mil dólares y no lo hubiera aceptado. Los factores de motivación eran dominantes.

Lo malo era que los beneficios eran horribles, la oficina consistía en una serie de cubículos diminutos, grises tras años de abandono, cables azul pitufo colgando del techo, y la gerencia era... bueno... inexistente. Y aunque nos faltaban factores de higiene, los desarrolladores venían en manada a trabajar con nosotros y sólo uno se marchó mientras estuve allí. Estaba interesada en mejores beneficios y un entorno de trabajo más estable, y se fue a trabajar a una gran empresa financiera muy parecida a IndyMac.

El criterio de Rob para mantener a tus desarrolladores felices
Si quieres ganarte un sueldo durante 25 años y retirarte con un reloj de oro y una pensión ponte a trabajar en una empresa que tenga los factores de higiene bien estudiados. Entra a las 8, vete a las 4:59 y cuenta los años hasta que estés estirando las piernas en un bar playero en Costa Rica.

Pero si estás leyendo esto, es más probable que no seas el tipo de persona que no piensa sobre código después de las 5:01; es más probable que tengas una colección de DVDs que salga en una búsqueda en Amazon por "Silicon Valley." Probablemente seas una de esas personas que necesita factores de motivación o te vuelvas loca de agitación, y cuando tienes dichos factores trabajarás en horarios absurdos por poco dinero sólo porque es divertido de narices.

He hablado con unos cuantos colegas y vertido mis propias experiencias para obtener esta lista de nueve factores de motivación para el desarrollo de software - Los criterios de Rob para mantener a tus programadores contentos.

Sólo hay una regla para determinar tu puntuación: tu voto no cuenta a no ser que seas programador. Si no estás en las trincheras escribiendo código entonces reenvíale este artículo a alguien que sí lo sea y pregúntale su opinión. Mi gran esperanza es que esto provoque conversaciones y fuerce a los desarrolladores y gerentes a hablar acerca de estas cuestiones para que podamos sacarlas a la luz.

Sin más introducción, aquí están:

1.- Planear para tener éxito
Es una triste realidad, pero la mayoría de los proyectos de software están preparados para fracasar. Todos los programadores tienen sus historias de miedo, los anti patrones de la gestión de proyectos de software.

He visto a un arquitecto al que se le proporcionó la documentación de un sistema antiguo, y estuvo sudando tinta con ella durante una semana mientras diseñaba un nuevo interfaz para el producto. Después de que el diseño estuvo terminado supo que la documentación estaba tres años obsoleta y no reflejaba ciertos cambios importantes en el sistema.

He pasado horas preparando una estimación técnica detallada solo para encontrarme con que la fecha límite real, ya fijada por los gerentes, me daba la mitad del tiempo necesario.

Un conjunto de fechas límite realistas son una parte inmensa de la preparación para el éxito. Los programadores quieren desarrollar software que no sólo funciona, sino que es mantenible; algo de lo que puedan sentirse orgullosos. Esto no concuerda con los objetivos de los gerentes, que quieren que los desarrolladores produzcan software que funciona, y nada más.

Lo primero en obviarse cuando el tiempo es limitado es la calidad y la sostenibilidad. Lo peor que se le puede hacer a un artesano es obligarlo a construir basura. Presentar un proyecto a tiempo pero sabiendo que es un montón de mierda se parece muchísimo al fracaso para alguien que se enorgullece de su trabajo.

Es vital tener tiempo para hacer las cosas del modo correcto, y no sólo del módo rápido. Como me dijo un desarrollador, "La calidad es tan importante como la lista de características o el presupuesto."

Los tiempos no son la única manera en la que un proyecto puede estar preparado para fracasar, pero es la más común. Otras incluyen: estar obligado a usar herramientas malas (tanto en hardware como en software), trabajar con un compañero que no hace su parte, mala gestión de proyectos (ver número 2, más abajo), cambiar el alcance del proyecto, y las expectativas no declaradas, entre otras.

2. Tener una gestión excelente
Una gestión excelente, tanto de proyectos como de personal, es un factor de motivación obligatorio. Esto significa nada de micro-manejo, alentar el pensamiento independiente, saber qué hace falta para desarrollar software de calidad, toma rápida de decisiones, y la voluntad de defender a muerte al equipo cuando los jefes intentan acortar el tiempo de desarrollo.

Éstas son las cualidades de un gran gerente de software; las cualidades de un gerente cuyo equipo se bañaría en aceite hirviendo por defenderlo, y trabajarían noches enteras para probar que estaba en lo cierto. Cuando un gerente recibe palos por el equipo, los buenos programadores tienden a devolver el favor con propina. Crea una lealtad casi de culto, y los resultados no son sólo programadores motivados, sino software increíblemente bueno.

3. Aprender cosas nuevas
Las investigaciones sobre la conducta indican que somos más felices cuando aprendemos nuevas habilidades o ponemos a prueba las que ya conocemos. Un reciente artículo cita el estudio de dos investigadores de la Universidad de Columbia que sugiere que los trabajadores podrían dejar pasar tranquilamente un aumento del 20% del sueldo a cambio de un trabajo con más variedad o en el que fuera necesario más de una habilidad. Esta investigación sugiere que estamos dispuestos a cobrar menos por un trabajo que sea más interesante, divertido y que nos enseñe cosas nuevas.

Esta es la razón por la cual las compañías que usan Ruby pueden encontrar programadores experimentados que deseen trabajar por menos de sus salarios normales. El factor de aprendizaje es enorme a la hora de negociar las compensaciones.

A todos los programadores que conozco les encanta jugar con tecnologías nuevas y relucientes. Perl y HTML a mediados de los 90, ASP, PHP y Java a finales, ASP.NET y XML hace un par de años y hoy es AJAX y Ruby (y en algunos círculos ASP.NET 2.0). Dale a alguien la oportunidad para usar estos juguetes y no sólo serán capaces de impresionar a sus amigos, pero cumplirán ese deseo interno de aprender.

Haz que un programador siga aprendiendo y lo tendrás feliz trabajando en un sótano sin ventanas, comiendo pan rancio de una bandeja en la puerta. Y nunca te pedirán un aumento.

4. Ejercitar la creatividad y resolver el tipo adecuado de problemas
Los desarrrolladores aman los desafíos. Sin ellos nos aburrimos, nuestras mentes vagan, comprobamos nuestra cuenta bancaria, comprobamos el correo, miramos Digg y Barrapunto, leemos blogs, nos vamos a la máquina de cafe, y miramos si alguno de nuestros amigos está online a ver si de una vez por todas podemos finalizar el debate sobre nuestro tío, Java contra .NET, o el último episodio de Perdidos.

Muchas veces he visto a programadores quedarse a trabajar hasta el amanecer para resolver un problema técnico sin que se lo pidan y sin cobrar horas extra. Los mejores desarrolladores son adictos a la resolución de problemas. Tírales un Sudoku en medio de un grupo de ellos y observa cómo lo atacan.

Enfrentados a la clase correcta de desafío, muchos desarrolladores no pararán hasta que esté resuelto, especialmente si requiere de una solución particularmente creativa. Enfréntalos a la clase errónea de desafío y se vuelven instantáneamente al Messenger a hablar sobre los números chungos.

El tipo correcto de desafío es un desafío técnico que les enseña una nueva habilidad, preferiblemente una que esté de moda. Un ejemplo podría ser: "Conéctate a estos cinco servicios RSS, agrega los datos, y muestra los titulares en una página Web... teniendo en cuenta cómo usar AJAX para que tenga una pinta molona."

Los tipos erróneos de desafío son cosas como: "Arregla el código de este otro tío. Ya sabes, ese al que no despedimos porque teníamos miedo de que nos diera problemas, o porque salía demasiado caro en compensaciones. Pues programó un sistema que es una auténtica chapuza y ahora nos hace falta arreglarlo y hacer que sea de buena calidad y mantenible. Ah, y tienes hasta mañana para hacerlo."

Si tienes una empresa que no proporciona trabajo excitante a sus desarrolladores, piensa en cómo puede empezar a hacerlo. Si no hay ninguna oportunidad de que alguna vez puedas ofrecer desafíos, encuentra a programadores que prefieran los factores de higiene, porque los programadores que necesiten factores de motivación no se van a quedar mucho en tu empresa.

5. Tener voz
Los desarrolladores están en las trincheras, y son los primeros en saber cuando un sistema o proceso no funciona. Un programador me contó:

"Quiero que alguien escuche mis problemas y se los tome realmente en serio. He trabajado en sitios donde más RAM, más espacio en disco, o CPU más rápidas o duales sencillamente no eran prioritarias para la compañía, y lo que teníamos era lo suficientemente malo como para impedirme trabajar. En otro sitio en el que trabajé, cada vez que quería compilar tenía que limpiar todos mis archivos temporales porque necesitaba más espacio en disco. Es estúpido. Que te obliguen a trabajar con tecnología obsoleta es realmente frustrante."

Cuando un programador habla, alguien debería escuchar. Cuando varios programadores están diciendo lo mismo, alguien debería escuchar y actuar... y deprisa.

6. Que reconozcan el trabajo duro
Como ingenieros nos encanta construir cosas que nos impresionen a nosotros y a nuestros amigos. Al menos a aquellos que sepan lo duro que es escribir un compilador de Perl. Desde cero. En FORTRAN. En un Vic 20.

Construir algo grande es divertido, pero es mucho más divertido cuando hay alguien para palmearte en la espalda, hacerte una fiesta, cantar tus alabanzas o pagarte una cena. La mayoría de los programadores disfrutan de los cumplidos y el recibir el reconocimiento por el trabajo duro, pero incluso aquellos que no lo necesitan se sienten algo frustrados cuando no lo reciben (o peor aún, cuando alguien más recibe el reconocimiento por tu trabajo).

El reconocimiento es uno de los factores de motivación centrales de Herzberg y se aplica tanto a los desarrolladores de software como a los ingenieros que él entrevistó originalmente.

7. Construir algo importante
Incluso aunque no seamos médicos en Bosnia o transportemos comida en Sudán, la mayoría de la gente quiere sentir que de alguna forma estamos contribuyendo a hacer del mundo un lugar mejor, tanto tecnológica como socialmente. Algunos de nosotros podemos pensar que lo hacemos sólo por la tecnología, pero en el fondo de nuestras mentes nos vemos como parte de un gran plan.

Por ejemplo, un amigo mío trabaja para una compañía financiera y disfruta cada vez que lanzan un producto que ayuda a la comunidad financiera.

Un programador del sistema de inventario de una cadena de supermercados disfruta yendo a trabajar todos los días porque su trabajo garantiza, mediante algoritmos complejos de suministro y demanda, que los cereales infantiles estén siempre disponibles en las estanterías.

El construir algo que importa hace que un ingeniero del L.A. Times sea muy feliz, ya que gracias a su software de búsqueda de caminos los camiones que distribuyen el periódico ahorran un 30% de kilometraje y combustible.

Por otra parte, construir un interfaz para una API repleta de errores que se usará un total de quince veces el año próximo no parece que importe demasiado.

Copiar y pegar una aplicación entera y cambiar un puñado de etiquetas no es tan excitante como puede parecer.

Y meter unas cuantas sentencias CASE en un procedimiento almacenado ridículamente complejo para apañar a otro cliente más sin crear una estructura apropiada de datos por alguna razón no sirve para satisfacer a esa parte de nosotros que quiere construir cosas que importen.

8. Desarrollar software sin actas parlamentarias
Desde el 2001 fui un consultor durante tres años, y durante ese tiempo hice un montón de aplicaciones web. Me acostumbré a escribir código realmente rápido una vez que sabíamos qué había que hacer. Entre otro programador y yo escribimos una cantidad ingente de software durante dos años.

Cuando entré en mi siguiente trabajo a tiempo completo me sentía como si arrastrara pesas de 25 kilos. Por cada página que quería desarrollar tenía que tener una reunión con seis personas. Cualquier cambio en la base de datos requería de la aprobación de otras tres. Era una locura, y las aplicaciones tardaban cinco veces más en construirse. Frustrante.

La autoridad de hacer decisiones relativas al proyecto sin necesidad de convocar reuniones es importantísima.

9. Tener pocas limitaciones heredadas
A nadie le gusta desarrollar contra interfaces con errores, código basura, y modelos de datos mal diseñados. Un exceso de limitaciones heredadas mata la creatividad, requieren actas parlamentarias para modificarlas, y generalmente le quitan toda la diversión al desarrollo de software.

Si tu empresa tiene muchos sistemas malos que deben heredarse, intenta averiguar un modo de minimizar su impacto en los futuros desarrollos. Si no puedes, busca a gente que valore los factores de higiene, porque los desarrolladores con factores de motivación no van a mantener las mismas aplicaciones de baja calidad por mucho tiempo.

Calcular tu puntuación
Afrontémoslo, la línea está muy baja cuando se trata de motivar a los programadores. ¿Cuántas compañías conoces que cumplan siquiera tres de estos puntos? La mayoría de las empresas que yo conozco tendrían suerte de sacar un 1. Google probablemente tendría un 8 o un 9.

Consideraciones finales
Si eres un gerente, ¿cuándo fue la última vez que les preguntaste a tus programadores sobre estas cosas? Si eres un desarrollador, ¿cuando fue la última vez que planteaste respetuosamente alguna de estas cuestiones, dando ejemplos y posibles soluciones?

Si la respuesta es "hace mucho tiempo" o "nunca", entonces ambos tenéis trabajo que hacer. Manda este artículo a algunos de tus compañeros y empezad a hablar sobre cómo efectuar cambios.

Artículo Copyright © 2006 Rob Walling

Este artículo aparece originalmente en el blog Software por Rob: El lado humano del desarrollo de software.

Sobre el autor
Rob Walling es un programador .NET que vive y trabaja en Los Ángeles. Su blog, Software by Rob, es leído por 50.000 personas todos los meses; y habla sobre la contratación de programadores, técnicas de entrevista, técnicas de motivación, gerencia de proyectos de software y características de personalidad de los mejores programadores. Su empresa de consultoría, The Numa Group realiza desarrollo en ASP.NET para compañías en todos los Estados Unidos. Se puede contactar con Rob aquí.



Hasta aquí el artículo de Rob Walling, que he traducido con su permiso, y con el que estoy de acuerdo en casi todo. En un próximo post, mi punto de vista al respecto. Rodarán cabezas.

Sorprendentes declaraciones

Published 188 weeks, 19 hours ago
Tue Aug 01 2006
Un blogger polaco ha tenido la feliz idea de mandar una serie de preguntas a las direcciones de correo públicas de unos cuantos gurús de la programación, y ha publicado el resultado en su blog: aquí tenéis la entrevista completa y la alineación inicial de programadores que responden.

Lo sorprendente es que, cunado le preguntan a Linus Torvalds cual será en su opinión el próximo gran invento en nuestro campo, va y responde:
I don’t think we’ll see a big jump. We’ve seen a lot of tools to help make all the everyday drudgery easier - with high-level languages and perhaps the integration of simple databases into the language being the main ones. But most of the buzz-words have been of pretty limited use. For example, I personally believe that Visual Basic did more for programming than Object-Oriented Languages did. Yet people laugh at VB and say it’s a bad language, and they’ve been talking about OO languages for decades. And no, Visual Basic wasn’t a great language, but I think the easy DB interfaces in VB were fundmantally more important than object orientation is, for example.

Jamás creí que llegaría este día, pero ahí lo tenéis: Linus Torvalds diciendo claramente que Visual Basic ha hecho más por la programación que los lenguajes orientados a objeto.

Visual Basic.

Mi denostado, vilipendiado, ultrajado, ridiculizado Visual Basic.

Gracias, Linus. Evidentemente, tienes razón.

Imagen de Mono

Published 188 weeks, 1 day ago
Mon Jul 31 2006
Los desarrolladores de Mono siguen desesperados por hacernos probar su port de .NET a entornos *nix.

Bien por ellos. Ya en su día nos facilitaron las cosas mediante Monoppix, esa modificación de Knoppix que le añadía Mono para que pudiéramos probar el IDE sin tener que instalar nada.

Siguen empeñados en hacernos las cosas fáciles: ahora la idea que han tenido es distribuir una imagen de una SuSE 10 con Mono, MySQL y alguna otra herramienta listada, lista para ejecutarse con el gratuito VM Player. Pero yo me pregunto, ¿es suficiente?

MonoDevelop, el IDE para Mono, incluye MonoDoc; que es la documentación de todas las clases que componen Mono. Para que os hagáis una idea, MonoDoc es muy similar a la ayuda que viene con el JDK de Java: por cada clase nos informa de su nombre, del espacio de nom bres o paquete al que pertenece, y nos detalla su colección de métodos, propiedades y eventos. Y ya está.

Y no es suficiente.

Sería suficiente si no existiera MSDN, pero da la casualidad de que existe. Y MSDN no se limita a darnos información sobre la clase que varias decenas de herramientas pueden generar automáticamente desde los comentarios escritos en el código, por ejemplo GhostDoc. No, MSDN incluye ejemplos de uso. Para el 90% de las páginas que tiene, MSDN incluye un ejemplo de uso tanto en C# como en VB.NET. ¿Cuesta tanto añadirlos? ¿Es tan difícil?

Si, ya sé que es un coñazo documentar. Lo he sufrido. Sí, ya sé que es más divertido añadir más funcionalidades antes que explicar bien las que ya se tienen. Pero alguien tendrá que hacerlo.

¿Qué has hecho este finde?

Published 191 weeks, 1 day ago
Mon Jul 10 2006
Como los lectores de Velocidad de Escape ya sabréis si leéis también los comentarios, ando estos días liado probando una distribución de MonoDevelop, el IDE para programar con C# en escritorios Gnome. Arranco el Synaptics, un gestor de paquetes de Ubuntu para descargar e instalar programas; y busco "MonoDevelop". Me carga una lista con los paquetes que ha encontrado bajo tal nombre, y yo marco el que parece el principal. Automáticamente, Synaptics detecta que ese paquete principal tiene una serie de dependencias y me avisa de que va a marcarlas también. Correcto, no problemo. Pulso en Aceptar y Synaptics se pone a descargar los paquetes de algún sitio que desconozco y que, de momento, no me importa. Luego se pone a configurarlo, supongo, y voilá! Ya tengo instalado MonoDevelop. Efectivamente, al navegar por el menú de Ubuntu hasta Aplicaciones, Programación veo que se ha añadido un icono de MonoDevelop que al pincharlo funciona y me arranca el entorno de desarrollo. Perfecto. Fantástico. Maravilloso. Nótese que en ningún momento he tenido que hacer una búsqueda de absolutamente nada en Internet, ni preocuparme de ir a ningún sitio como SourceForge a bajarme ningún binario, ni fuente ni nada de nada, que luego tuviera que buscar por el disco duro y hacer doble clic para instalar o, aún peor, tener que recompilar o configurar manualmente o demás zarandajas. Buscar, click e instalar. Una simplicidad tan absoluta que parece Zen: éste es el camino.

Desgraciadamente, también ha sido la notable excepción del fin de semana. Lo primero, el tema de mi tarjeta Wireless, que no he sido capaz de hacer que funcione. De ningún modo; y he mirado Wikis, páginas, tutoriales e incluso he consultado en IRC1. Y aquí es donde se ha hecho evidente uno de los puntos débiles de Linux. Mi tarjeta wireless tiene un chipset Atheros: dependiendo de con quién hablases o qué web consultaras, el chipset Atheros era estupendo para Linux o no funcionaba ni para atrás. Según algunos, era imprescindible utilizar ndiswrapper y para otros no, para otros era el MadWiFi que, incidentalmente, es el que he probado yo sin resultados. Bueno, he conseguido que vea una red que no es la mía ni la de ninguno de mis vecinos, y no tengo ni puñetera idea de dónde sale. Ya es algo. Y yo no hacía más que preguntarme si esa diversidad de opiniones (en cosas que no admiten opiniones, ojo: 2 más 2 son cuatro, un chipset funciona o no funciona) iba a ser la excepción o la norma. Parece ser la norma, y eso se me antoja difícil de tragar para un hipotético futuro nuevo usuario. Ya sé que la culpa es del fabricante de la tarjeta PCMCIA, que no publica drivers para Linux. Pero cuando un fabricante hacía malos drivers para Windows, y esos malos drivers producían pantallazos azules, ¿a quién le echáis normalmente la culpa? Pues eso.

Después, las instalaciones. Como no sabía muy bién que hacer con ese sistema operativo nuevo y flamante, me he puesto a instalarle cosas. Y, como ya he dicho antes, lo de MonoDevelop ha sido un espejismo. No niego que la mayoría de las veces que algo no me ha funcionado (por ejemplo, compiz) haya sido por negligencia mía. Pero un fin de semana de manipular configuraciones, aprenderme el sudo gedit /usr/bin/archivo o el sudo apt-get update pues no ha sido muy divertido. Más que nada por dos razones: la primera, la frustación. Si después de seguir un tutorial de cómo instalar y/o configurar algo a pies juntillas consigues que funcione, pues estupendo: no te importa el tiempo que has tardado en hacer lo que otros consiguen con un doble click, porque al menos te queda la (falsa) impresión de que estás aprendiendo. Y la segunda razón es, también, la frustración: tienes que seguir como la Biblia un tutorial que te dice que ahora tienes que hacer un apt-get, y luego hacerle un alien al RMP para convertirlo en DEB y después editar un script de configuración y después darle permisos de ejecución a ese script,... y jamás se molesta en explicarte qué estás haciendo ni por qué lo estás haciendo. Y así tampoco se aprende.

Miedo me da pensar que me queda por instalar MySQL, Ruby, OnRails, Apache, y un buen montón de cosas....


1.- Vaya desde aquí mi más sincero agradecimiento a la gente del canal #ubuntu en IRC Hispano, que me echaron una mano con paciencia y buen humor. A pesar de ser Windowsero confeso. Si me pilláis una de estas tardes trasteando con Linux, seguramente me encontraréis en ese canal. Actualización 17/06/2006.- A tenor de los acontecimientos de los últimos días, que detallo en el post del 17/06/2006, se cierran los comentarios de esta entrada.

Y luego dicen

Published 193 weeks, 5 days ago
Thu Jun 22 2006
Pero cuanto menos utilizo productos de Microsoft, más los echo de menos. Libros, tutoriales, manuales, una herramienta de terceros que apesta más que el animal del que toma referencia y que, claro, cuesta un ojo de la cara; todo esto para manejar ese pedazo de bloatware arcano, incomprensible, enrevesado, críptico y ofuscado que desde ahora en adelante llamaré para siempre Obstacle. Jamás he visto un software menos usable y menos amigable: todo en él complicado, o lento, o enrevesado de hacer. En caso contrario, es que no tienes permisos para hacerlo. Da, en serio, la impresión de que Oracle está diseñado tan rematadamente MAL a propósito para conseguir que unos cuantos sacerdotes arcanos se perpetúen como consultores, cobrando cantidades ingentes a la hora por mantener este horror del averno.

Todo lo que he aprendido a hacer en SQL Server lo he aprendido usando el botón derecho del ratón. Simple, elegante y usable. Y no, lo siento pero no admito que Oracle sea más o menos potente, más o menos rápida que SQL Server. Y por una sencilla razón: ¿de qué me sirve tener un Ferrari muy potente aparcado enfrente de mi casa, si en lugar de volante tiene una patata?

Por todo eso1:




1.- Y mucho más: no existe un campo booleano, pero si un VARCHAR2, por los clavos de Cristo!! Qué demonios es un VARCHAR2, y cómo coño superó la fase de desarrollo?

El escritorio en la Web

Published 196 weeks, 6 days ago
Wed May 31 2006
¿Llegará el día en que todas las aplicaciones que ejecutemos en nuestro ordenador estén alojadas en servidores remotos? Desde luego, dos de los tipos de aplicaciones más usados en el mundo a diario, como un procesador de textos y una hoja de cálculo ya tienen su versión Web: Writely para textos y iRows para las hojas de cálculo.

Otras aplicaciones más pesadas como Photoshop, IDEs de programación o aplicaciones de diseño 3D pueden parecer por definición fuera de este ámbito. Hoy por hoy. Hace cinco años era impensable que uno pudiera utilizar la web para crear y manipular documentos de texto u hojas de cálculo, ¿verdad?

¿Llegará el día en el que el navegador Web será la única aplicación que necesitemos instalar en nuestro sistema?


[Editado 06/06/2006] - Typos

Diferencias

Published 197 weeks, 1 day ago
Mon May 29 2006
A Gates se le puede tachar de hacer presentaciones aburridas (sobre todo siendo proselitista maquero) pero qué queréis que os diga: prefiero mil veces que me aburran en una presentación a que me traten de gilipollas. Pero es que yo soy así de raro.

Microsoft Dev Days 2006

Published 199 weeks, 5 days ago
Thu May 11 2006
El próximo 31 de Mayo se celebrarán, en los acostumbrados cines Kinépolis el evento de Microsoft Developer Days, un día para que los representantes en España de la compañía de Mr. Gates nos enseñen a los programadores por dónde van a ir los tiros próximamente.

Y por lo que parece, el nuevo mantra en Microsoft es: seguridad, seguridad, y seguridad. Y si no, ved la agenda de este año: efectivamente, está íntegramente enfocado a la seguridad.

Como añadido graciosete al evento tenemos la presentación del nuevo episodio de Cálico Electrónico, que viene a ser poco más que un anuncio.

El pobre Cálico no sabe dónde se ha metido: ya veréis que poquito tardan las hordas anti-MS en calificarlo de vendido, traidor, cobarde, etc.

Vender humo

Published 203 weeks, 17 hours ago
Tue Apr 18 2006
Atentos a la oferta de trabajo. Por si acaso retiran o modifican la oferta, copypasteo (las negritas son mías):
Cargo vacante: Comercial
Categoría: Comercial - Ventas
Departamento: DIRECCIÓN GENERAL
Número de Puestos Vacantes: 1
Descripción de la Oferta: 6 MILL ***


RBLE. DPTO. COMERCIAL

Se resposabilizará de todas las acciones comerciales de la empresa.

Será el responsable comercial, y sus funciones principales serán vender mediante realidad virtual.

Debe ser un profesional de vender ilusiones, ya que el producto se está construyendo.

*** JUNTO ESTACIÓN *** PARADAS CADA 15 MIN

DIETA PAGADA


No pasa nada si el luego el producto (en este caso, pisos o chalés) no responde a las expectativas, no pasa nada si luego el producto es una bazofia, incluso no pasa nada si al final el producto no existe. El responsable comercial ya ha cumplido, ya ha vendido ilusiones mediante realidad virtual (más claro, el agua) y ya se ha llevado calentitos los seis millones de las antiguas pesetas (espero).

Esta oferta en concreto es para una inmobiliaria, pero se puede aplicar a nuestro campo: cuántos ejemplos conocemos de comerciales que venden humo en cantidades industriales y prometen a los clientes cualquier cosa con tal de que el cliente firme y ellos hagan su venta y se lleven su comisión. Y cuando digo cualquier cosa quiero decir literalmente cualquier cosa: el pliego original de condiciones de mi proyecto actual especifica que la aplicación Web que estamos construyendo debe ser capaz de conectarse a dispositivos externos para el tratamiento de la información. Sin especificar si esos dispositivos externos se refieren a otros servidores, servicios Web, la PSP del hijo del Director General o la lavadora de su señora. Escenario virtual que puede parecer hilarante, pero que con los pliegos en la mano puede dejar de serlo rápidamente, si el cliente se pone cabezón. Y, por supuesto, el comercial original que firmó estos pliegos ya no está para al menos poder ponerle a parir: él ya vendió en su día las ilusiones mediante realidad virtual, el cliente picó y compró y ahora quiere que esa realidad deje de ser virtual, tarea que no corresponde al vendedor de ilusiones sino a los constructores de software. Que, curiosamente, en la mayoría de los casos no suelen llevarse seis millones, ni cinco, ni siquiera cuatro para arreglar los desaguisados que suelen provocar los vendedores de ilusiones.

Web 2.0 y eso...

Published 204 weeks, 1 day ago
Mon Apr 10 2006
Via Mike Gunderloy (otra vez... si no estáis suscritos ya, no sé a qué estáis esperando) me encuentro con dos librerías estupendas para ASP .NET.

Una, el BusyBoxDotNet, es un control de servidor que muestra un mensaje de espera en la página cliente cuando el servidor esté realizando alguna operación que consuma mucho tiempo. El mensaje aparece en una capa que se mueve automáticamente al hacer scroll, permite difuminar y bloquear el fondo (es decir, el resto) de la página mientras se está realizando la tarea y desaparece sin problemas al terminar. Podéis probar una demo aquí. Muy, muy útil.

Y por otro lado, siguiendo con la moda del Web 2.01, tenemos MagicAjax.NET. Permite introducir técnicas AJAX en controles de servidor ASP .NET normales y corrientes, por lo que se suponen óptimos para introducir AJAX en una aplicación ya hecha o en proceso. También tienen una demo disponible.


1 Que no, no consiste únicamente en poner bordes redondeados a los cuadrados. O en poner un feed RSS en tus páginas, ni en utilizar palabros como sinergia, comunidad, colaborativo o tags. Ni siquiera consiste en poner un Beta al lado del nombre de tu aplicación Web. Además de todo eso, hay que hacer que sea más intuitiva, más ágil en la respuestas que proporciona al usuario. Menos viajes al servidor para cargar información, al menos aparentemente. Vamos, que se parezca lo más posible a una aplicación de escritorio, incluso llegando a imitarlas por completo. Lo que hay que ver.

HP y sus garantías

Published 206 weeks, 6 days ago
Wed Mar 22 2006
Recientemente, he tenido un problema en casa con el disco duro principal de mi equipo de sobremesa. La máquina es un HP Pavillion W5080.es, con un disco duro principal Maxtor de 200 Gbs.

El problema ha venido a ser, principalmente, que el disco duro ha muerto. Al rato de estar funcionando, comenzaba a oírse un sonido de rascado, el LED de lectura del disco duro estaba constantemente iluminado, el equipo reducía su velocidad de respuesta a tiempos desesperantes hasta que finalmente me veía obligado a reiniciar. Y, al reiniciar, el equipo no respondía.

Después de pensar que habían sido virus (y no descarto haberme comido algún virus revienta-sectores-de-arranque en mi breve etapa de beta-tester del IE7, maldita sea su estampa), pues toca formateo del disco duro y reinstalación de todo. Después de hecho esto, vuelta a las andadas: el disco duro sigue fallando, esto no es un problema de software.

El equipo tiene menos de un año, así que llamada al servicio técnico. Primero, al Corte Inglés, donde me dicen que son los de HP los que me tienen que resolver la papeleta. Luego, después de una pequeña labor de investigación (tienen varios teléfonos distintos para atención al cliente) me atiende una abnegada teleoperadora, y la conversación es más o menos como sigue:

Yo.- Buenas, mira tengo un problema con el disco duro. Me ha empezado a ir muy lento, me fallaba. Entonces he reinstalado el sistema operativo y ahora no arranca. Intento diagnosticar a ver qué le pasa con herramientas externas(*) y me da la impresión de que está averiado, habrán fallado los ...
Ella.- ¿Qué sistema operativo dice que ha instalado?
Yo.- Bueno, pues el Windows XP Profesional. Es que el Home no me sirve y...
Ella.- Entonces, ¿no ha restaurado el sistema desde la partición de restauración que el equipo tiene preparada?
Yo.- No. De hecho, desinstalar ese sistema operativo, eliminar esa partición e instalar otra versión del SO fue lo primero que hice al comprar la máquina. A mí el Home no me vale de nada...
Ella.- Entonces, HP no puede responsabilizarse de la garantía de su máquina. HP ha testeado el hardware que pone a la venta con Windows XP Home Edition, y si usted ha instalado otro sistema operativo nosotros no podemos garantizarle que sea compatible.
Yo.- ¡Pero si es el mismo sistema operativo con distintas herramientas!
Ella.- No, es otro sistema operativo.
Yo.- (Cansado de la conversación y oliéndome la tostada) Muy bien, buenos días.

A pesar de sus diferencias, Windows XP Home y Professional Edition son el mismo sistema operativo. El mismo kernel. Las diferencias son las herramientas que te puedes instalar con uno u otro: entre otras cosas, con Windows XP Home no puedes instalar el Internet Information Server. Y supongo que a SQL Server le dará la risa si intentas instalarlo en un sistema operativo no servidor.

Me parece muy bien que los señores de HP se ahorren los CDs (y los manuales) de Windows XP Home original, aunque bien que te los cobran; y te monten una partición de recuperación para que puedas restaurarte el XP Home desde ahí si tienes algún problema. Lo que no me parece de recibo es que tengas que buscar en Internet los drivers porque no vienen con el equipo. Efectivamente, no trae el consabido CD de drivers: están en la partición de recuperación. Si quieres instalar otro SO (un 2003 Server) tienes que pedir el CD de drivers a HP, que te lo envía previo pago de su importe, claro.

Lo que no me parece de recibo es que te digan que un edición (Home o Professional) de un sistema operativo (Windows XP) no es compatible con su hardware. Si les hubiera llamado para decirles que no me funcionaban los drivers de la tarjeta de sonido con una Mandriva(**), pues me podrían haber mandado muy educadamente al guano y con toda la razón del mundo: es un sistema operativo completamente distinto. Pero escaquearse vilmente de un problema de hardware diciendo que es culpa mía y que sus equipos están testeados con Windows XP Homer, pero no con el Profesional me parece de un descaro manifiesto por su parte.

Pero lo que más me duele de todo: ¿cómo es posible que una marca como HP te venda un equipo de tales prestaciones profesionales, luego le ponga un sistema operativo de juguete y espere que nos quedemos tan anchos? ¿Es que sus clientes sólo compran equipos para jugar al Age of Empires o bajarse vídeos porno de Internet? Ya que me he gastado la pasta que cuesta el equipo, ¿creen que no me gastaré un poco más para tener un sistema operativo que me permita hacer lo que quiero hacer? Y, ya que lo estoy pagando, a ser posible con su CD y sus drivers y todo, oiga...

El problema, por cierto, ya está solucionado. Me he comprado un disco duro Seagate de 200 Gigas, lo he pinchado, reinstalado todo y a tirar: llevo unos cuantos días funcionando de nuevo a toda máquina con mi Pavillion y su incompatible Windows XP Profesional. Y a tomar vientos el servicio técnico. Pero eso sí, cada vez que pienso en HP y sus servicio técnico estos días, se me ocurre que el acrónimo HP no significa precisamente Hewlett-Packard.
(*) Concretamente con algo llamado miniPE Windows XP LiveCD.
(**) Precisamente y aprovechando la coyuntura en una de las reinstalaciones intenté instalar una Ubuntu Linux. Instalo el Windows XP, hago una partición de 10 gigas ex-profeso para Linux, arranco con el CD de Ubuntu dentro y a medio camino de la complicadísima instalación me dice que ha habido un problema (que me busque la vida para averigüar qué problema ha sido, Ubuntu no me lo especifica) y que no instala. Y no sólo no instala, sino que además me ha jodido el sistema de arranque de Windows. Así que otra vez... Pero claro, ya se sabe que estas cosas de Linux sólo me pasan a mí, que lo veo con malos ojos. Menos mal que esta vez tengo testigos.

¿Qué hay en un nombre?

Published 208 weeks, 5 days ago
Thu Mar 09 2006
De verdad, que a veces creo que estos de Microsoft no se enteran. Es que parece que lo hacen a propósito. Lo del márketing, a pesar de lo que dicen algunos, no es lo suyo.

En caso contrario, es que no se explica. Deberían saber a estas alturas que al usuario del siglo XXI, más que la funcionalidad, lo que le convence es el diseño. Léase con voz de pijo de Serrano, algo así como diseñoh. Y gran parte del diseño de algo es que sea bonito, que entre por los ojos a los consumidores. Así, podremos timar a un buen porrón de ellos pidiendo precios desorbitados por algo que otros hacen más barato y mejor, pero no más bonito; como Apple y su iPod.

Y otra gran parte del diseño de algo, y que ayuda increíblemente a que el boca a oreja generado sea mayor es el nombre de ese algo. Sinceramente, si los bloggers tuviéramos que hablar del Apple Portable Music Player en lugar del iPod, pues no creo que la gente se excitara tanto.

Pues en Microsoft no han aprendido esta simple lección y siguen erre que erre. Y lo peor de todo es que los técnicos se inventan chulos nombres en clave y llegan los de márketing y se los cargan. La gente de márketing, los que se supone que tendrían que saber de estas cosas. Y recientemente la tendencia va a peor. Con la honrosa excepción del nuevo Windows, ya que personalmente prefiero mil veces el nombre de Vista antes que Longhorn.

Las dos tecnologías más prominentes del nuevo Windows Vista se llamaban Avalon e Indigo. Cortos, bonitos, sexys. Ahora, Avalon se llama Windows Presentation Foundation e Indigo se llama Windows Communication Foundation. Ugh.

Y la última que nos han liado es con el Origami. Origami es un nuevo cacharro de Microsoft, en plan handheld PC, que han presentado en sociedad recientemente. Ni entro ni salgo en las capacidades del cacharro ni en si realmente el mercado necesita un gadget de estas características; pero los chicos de márketing lo han vuelto a hacer. Del bonito y sugerente nombre de Origami hemos pasado al sos, gris y aburridísimo acrónimo UMPC, o Ultra-Mobile PC, que es el nombre con el que parece que al final se va a comercializar el cacharro.

Sinceramente lamentable. Si alguno quiere saber más sobre el Origami, que pinche aquí.

Menos reuniones...

Published 209 weeks, 4 days ago
Fri Mar 03 2006
... e mais traballar.

La gente de 37 signals, los culpables del framework de desarrollo Web que más ha dado que hablar en los últimos tiempos, Ruby on Rails, han sacado un libro online en formato PDF, sin formato impreso, que se vende solo. O, por lo menos, los capítulos de prueba que he podido leer conmigo han acertado de pleno: un libro que tiene un capítulo llamado Las reuniones son venenosas no puede ser malo. Algunas perlas (la mala traducción es mía):
No hay nada más venenoso para la productividad que una reunión. Algunos ejemplos del porqué:

Rompen tu jornada en fragmentos pequeños e incoherentes que interrumpen tu flujo natural de trabajo.

Normalmente tratan sobre palabras y conceptos abstractos, no cosas reales como el diseño de una interfaz o un fragmento de código.

Suelen ofrecer una cantidad de información por minuto ínfima.

Al menos un idiota estará siempre presente, e invariablemente utilizará su turno de palabra para hacerle perder el tiempo a todos con alguna tontería.

Se desvían del asunto con mucha facilidad.

La orden del día es a menudo tan vaga que nadie sabe realmente de qué se va a hablar.

Requieren una preparación minuciosa que sólo en muy raras ocasiones alguien se toma la molestia de hacer.


Yo, que en el proyecto actual he perdido muchas, muchas; pero que muchas horas de productividad por culpa de reuniones, no puedo estar más de acuerdo con todos los puntos. Sobre todo cuando se tiene la desgracia de tener asignado como gerente de proyecto a un absoluto incompetente, un tipo que no podría encontrarse el culo con las dos manos, una linterna y un mapa. Una persona que es incapaz de improvisar, de adaptarse: el tío se prepara sus guiones para las reuniones y a la mínima que la reunión se desvíe un milímetro de su planning ya está más perdido que un bastardo el Día del Padre y hay que, o bien llevarle de la manita para que se centre o bien reconducir la reunión para que se haga de acorde a su planning. Y esto último no es lo problemático, lo complicado es cuando el tío quiere deformar la realidad para que se ajuste a su planning. Y la realidad suele ser obstinada y difícil de deformar, por norma.

Pero estoy divagando... acerca del libro, tenéis más extractos en su web, Getting Real, que es también el título. Por 19 dóllares, creo que lo voy a descargar esta misma tarde y por lo menos reírme un rato... o morirme de envidia viendo cómo en otros sitios se hacen las cosas.