Archivo de la categoria ‘desarrollo’

¿Somos los programadores personas felices?

Lunes, Febrero 18th, 2008

Estaba leyendo un artículo titulado “Freelancers, happy but underpaid“. Yo la verdad no me considero un freelancer 100% ya que tengo un trabajo estable y todo lo demás pero también trabajo “por fuera” y por ese lado si me siento “freelancer” aunque la verdad ninguno de mis trabajos los he obtenido por medio de Internet.

La verdad es que, lo confieso, hace algún tiempo me registré en rentacoder. Para los que no lo saben, rentacoder es un sitio de “subastas” donde empresas o personas que necesitan algún proyecto de software envían su propuesta de trabajo y después los programadores subastan en dicho proyecto, fácil, ¿No?…

Pues no… Recuerdo que di con ese sitio por que cuando iniciamos uno de los proyectos en el trabajo, que por cierto nunca concretamos por que salieron otros,  mi coordinador y jefe mandó a desarrollar un módulo de seguridad para la aplicación así que pensé que si había personas que podían trabajar haciendo outsourcing yo también podría hacerlo.

Después de registrarme en el sitio me dí cuenta de algo curioso: la mayoría de los proyectos terminaban siendo subastados en cantidades que dan risa, todos los trabajos los obtenia algún programador de Sri Lanka o India y finalmente, para si quiera ser considerado uno debería tener al menos unos 20 proyectos terminados.

Total que, para terminar rápido decidí darme de baja. Después de mucho tiempo de buscarle me di cuenta de que era mas el tiempo que perdía en buscar trabajo dentro de ese sitio que lo que me llevaría conseguirlo “localmente”.

Y se que la culpa no es del capitalismo ni del hindú en cuestión, lo que si es insoportablemente desagradable es ver como el trabajo de los ingenieros en sistemas / software / etc. se ha convertido en una de las formas de prostitución laboral actuales.

Algo que he notado en mi experiencia laboral es que, la mayoría de las personas que  no se dedican a esto de “las computadoras” es que piensan que los que sí somos otro tipo de profesionista, es decir, que ser ingeniero en sistemas o lic en informática o algo parecido es ser como un plomero y no, no tengo nada en contra de los plomeros, cualquier empleo que no sea el de delincuente, narcotraficante o peor aun, político (que generalmente tienen las dos cualidades antes mencionadas) es honesto y noble pero obviamente la mayoría de los plomeros, al menos aquí en México son personas autodidactas sin estudios profesionales, bueno, ustedes saben a que me refiero. Y es por esa razón que esta misma gente cree que desarrollar un software o una página de internet es como “bajar algo” del limewire o del ares.

Y es que, sinceramente, son pocas las profesiones que requieren que uno esté documentandose y leyendo todos los benditos días y donde uno debe dominar tantas cosas. Se que los médicos, por ejemplo, son uno de esos casos donde deben dominar varios temas dentro de su profesión y además estarse actualizando. La mayoría de las otras profesiones que no son tan técnicas suelen ser mas cuestión de creatividad y estar al tanto de las tendencias y cosas por el estilo. Un informático, como dicen los gachupines, tiene que dominar 300 cosas diferentes para poder crear un solo producto a veces.

Entre las trescientas cosas que tiene que dominar uno a veces estan algunos paquetes de software o tendencias que nos llevan a otras cosas, total que para terminar pronto a veces uno puede ver este tipo de puestos de trabajo:

Se solicita ing. en sistemas o afín con el siguiente perfil:

Programación en C/C++/C#/PHP/ASP/Java, JavaScript

Html, CSS, struts, jboss

Manejo de routers, voip, configuracion de firewall, servicios de red 

Conocimiento en sistemas operativos linux, bsd, windows 

Manejo de bases de datos SQL Server, MySQL, Oracle etc

Programas de diseño como photoshop, corel draw, flash…

Minimo  5 años de experiencia, ofrecemos sueldo mensual de 6000 pesos mas prestaciones de ley…

¿Qué? Uno se queda pensando si realmente la persona en recursos humanos tiene idea de lo que esta pidiendo, y no es que sea imposible, pero simplemente para conseguir el dinero que costaría comprar las licencias del software del cual piden experiencia sería como el equivalente a un año de trabajo sin gastarnos ni un solo centavo mas que en eso mismo.

Y al final, la verdad es que, el problema radica en que el software se ha vuelto en un producto bastante barato y donde, por conseguir clientes, uno como desarrollador o profesionista suele “bajarse los pantalones” como vulgarmente dicen. Y no es broma, el tipo de oferta de trabajo como el anteriormente expuesto existe. Pero, ¿Por qué piden tanto para una persona del área de informática? Creo que no he visto en ningún bufette de abogados a alguien solicitando un licenciado en derecho con experiencia en derecho laboral, propiedad intelectual, derecho militar, casos penales, etc. O una empresa de construcción pidiendo a un ingeniero civil que construya casas, edificios, centros comerciales, puentes, parques etc…

Así que volviendo al tema principal, definitivamente el ser un “freelancer” desarrollando software puede ser algo que, aunque placentero, por la cuestión del horario e independencia, no siempre es una situación comoda ya que uno no puede aspirar a obtener muchos ingresos de ello. Está de mas resaltar que como dicen, lo “barato sale caro”, y cualquier proyecto de software bien hecho cuesta dinero, como cualquier consulta a un medico, una casa bien hecha o un abogado defendiendo nuestro caso. Yo personalmente preferiría pagarle a un buen arquitecto que diseñe mi casa y que se especialice en eso a tener a alguien que me cobre barato pero me haga un mal trabajo, es algo que he aprendido al vivir solo, mucho del trabajo que me han hecho en mi casa, como remodelaciones, instalaciones electricas y de ese tipo, han sido trabajos pésimos por ahorrarme algo de dinero, aprendí la lección y creo que algunas personas que consumen servicios de tecnología deberían considerar eso también, que un trabajo bien hecho y de calidad siempre costará.

Y ustéd mi amigo lector, ¿Qué opina?

Done does not mean shippable

Jueves, Febrero 14th, 2008

Me llegó con correo de la lista de codeproject, donde viene un artículo muy interesante acerca de cuando el software está “terminado” y cuando es “entregable”. La verdad es que es un artículo con mucha razón y verdad ya que nosotros como desarrolladores solemos pensar que el software está listo cuando lo hemos “terminado” pero muchas veces no es así, hace falta pulirlo, probarlo, etc y hasta que el usuario decide lo contrario, no es “entregable”, aún cuando las características ya estan ahí. Un “must read” para los programadores.

El enlace (en inglés)  aquí

Problema de sesión con joomla

Jueves, Febrero 14th, 2008

Estaba actualizando uno de los sitios de mis clientes y Eduardo, me comentó que tenía problemas al subir las imágenes al sitio, que lo “sacaba”

Ya había tenido ese problema antes pero no le tomé importancia hasta hoy. Resulta que a veces, de repente, cuando estamos editando un menú o utilizando el editor de WYSIWYG jce, de repente, el sistema backend o el área administrativa nos “bota” del sistema y tenemos que volver a iniciar sesión.

Este problema lo noté cuando actualicé los sitios que tengo a joomla 1.0.13. Parece ser que es un problema conocido aunque, al parecer no ha salido ninguna actualización asi que me puse a buscar un parche y al parecer funciona. El parche lo pueden descargar de aquí

Donde esta perl?

Miércoles, Diciembre 26th, 2007

Hace algunos días, mientras venía del trabajo el último dia antes de salir de vacaciones, hablaba con Emilio, mi jefe en la oficina y le decía que había estado viendo estas últimas semanas de que se trataba todo ese desmadre de rails.

Para los que no lo saben, o no sabían, como yo, rails, o mejor dicho ruby on rails, es un framework para desarrollar aplicaciones web siguiendo el modelo “MVC” (Model-View-Controller) utilizando la metodología “agile” o programación ágil.

Todos estos conceptos son conceptos que la verdad, suenan muy bonitos y tecnológicamente avanzados pero a veces no los entendemos y yo, lo admito, no entendía algunas de esas cosas. Aún cuando sé que significan algunos conceptos ya en la práctica esto es muy diferente.

Total que me dediqué las pasadas semanas a experimentar con rails. Lo único que sabía es que era una plataforma de desarrollo web basada en un lenguaje de programación (ruby) el cual por cierto no conocía tampoco.

Al principio me pareció fácil ya que ruby es mas o menos parecido en sintaxis a python, lenguaje en el cual aprendí mas o menos a programar, aunque después de “cascarearle” un rato me pareció un poco dificil de seguirle el paso ya que de por sí programar en lenguajes altamente tipificados como C# (lo que uso a diario) deja costumbres diferentes a las que dejan los lenguajes de “scripting” como python, perl o ruby y la verdad es que ya tenía bastante de no cascarearle a python.

Ruby on rails es un framework excelente: código limpio, una API bien documentada y todo el marketing del mundo, y obviamente tiempos de desarrollo lo suficientemente cortos como para poder ver los simpson por las tardes.

Pero después de analizar ruby on rails comencé a leer un poco mas sobre el lenguaje (quizá debí primero leer sobre el lenguaje, y despues por las herramientas) y aunque es un lenguaje agradable me pareció un poco menos legible que python, aun así, me parece un lenguaje “noble” como python pero por cuestiones de gusto creo que me quedo con python.

Así que ya que ví que ruby on rails es bueno decidí buscar algo parecido para python, es decir un framework, y ya alguna ves había leído sobre estos como turbogears, django, zope, pylons, etc. A decir verdad existen bastantes para python es solo que no tuvieron quizá el mismo marketing que ruby on rails tuvo.

Hasta el día de hoy puedo decir que ya tengo cierta experiencia en .Net con C# y pretendo retomar mis “raices” con python para desarrollo web “agil” ya que es mas rapido que hacerlo con Asp.Net y por que PHP no termina de gustarme.

El punto de todo este post es que, hoy por hoy existen herramientas para desarrollo web que han facilitado a muchos el desarrollo de aplicaciones, sea php con mysql, aun con sus defectos, ruby y python con frameworks para desarrollo ágil y finalmente Java y .Net para desarrollos empresariales. Recuerdo hace algunos años, cuando solía frecuentar el canal de unixmexico en irc que habia un tipo medio payaso que nos decía a todos en el canal que python no tenía futuro, que era un lenguaje para “script kiddies” y que los administradores de red de verdad utilizaban perl, también recuerdo alguna ves haberle dicho a esta persona en el canal que, aun con todas las ventajas de perl tenia una grande desventaja: no tenía soporte para varios lenguajes y de por sí la sintaxis de perl era horrible, al menos para mí, en ese tiempo (2001) .Net apenas daba sus primeros pasos y al ser una herramienta de Microsoft obviamente no era (quizá aun no lo sea) bien vista por los usuarios de Unix, sobre todo de linux. La respuesta a mis argumentos, por su parte, fue la siguiente:

“perl hace todo lo que python puede hacer y mejor, tiene mejores expresiones regulares y se está desarrollando parrot, una maquina virtual que va a poder ejecutar todos los lenguajes de programación que existen”

Hasta el día de hoy, python ha llegado a ser exitoso en grandes entornos, por ejemplo, google lo utiliza en muchas de sus aplicaciones, php es el “rey” de las aplicaciones web aun cuando no tiene las mejores prácticas pero tiene una gran parte del mercado, ruby, con ruby on rails, es la herramienta de desarrollo favorita que está en boca de todos, de hecho, python ha sido portado ya a la maquina virtual de java con jython y a .Net con IronPython con apoyo de Microsoft, ruby ha sido portado totalmente a java con JRuby por parte de Sun Microsystems, y está siendo portado también a .Net con Ruby.Net, PHP ha tenido algunos avances con frameworks como CakePHP que intentan llevar algo de rails u otros frameworks a este lenguaje… .Net ha sido portado a Unix/Linux con Mono y se tiene yá un buen soporte para gran parte de la API y se puede utilizar con confianza para desarrollar aplicaciones multiplataforma como Java.

Y entonces, 7 años despues, donde esta perl, que puede ofrecer que no ofrezcan ya otros lenguajes de programación? Parrot?, no, gracias, perl 6, versión sobre la que supuestamente correría parrot parece no tener fecha tampoco. Creo que perl 6/parrot se convirtieron finalmente en el “duke nukem” de las herramientas de programación.

Powered by ScribeFire.

Donde esta perl?

Miércoles, Diciembre 26th, 2007

Hace algunos días, mientras venía del trabajo el último dia antes de salir de vacaciones, hablaba con Emilio, mi jefe en la oficina y le decía que había estado viendo estas últimas semanas de que se trataba todo ese desmadre de rails.

Para los que no lo saben, o no sabían, como yo, rails, o mejor dicho ruby on rails, es un framework para desarrollar aplicaciones web siguiendo el modelo “MVC” (Model-View-Controller) utilizando la metodología “agile” o programación ágil.

Todos estos conceptos son conceptos que la verdad, suenan muy bonitos y tecnológicamente avanzados pero a veces no los entendemos y yo, lo admito, no entendía algunas de esas cosas. Aún cuando sé que significan algunos conceptos ya en la práctica esto es muy diferente.

Total que me dediqué las  pasadas semanas a experimentar con rails. Lo único que sabía es que era una plataforma de desarrollo web basada en un lenguaje de programación (ruby) el cual por cierto no conocía tampoco.

Al principio me pareció  fácil ya que ruby es mas o menos parecido en sintaxis a python, lenguaje en el cual aprendí mas o menos a programar, aunque después de “cascarearle” un rato me pareció un poco dificil de seguirle el paso ya que de por sí programar en lenguajes altamente tipificados como C# (lo que uso a diario) deja costumbres diferentes a las que dejan los lenguajes de “scripting” como python, perl o ruby y la verdad es que ya tenía bastante de no cascarearle a python.

Ruby on rails es un framework excelente: código limpio, una API bien documentada y todo el marketing del mundo, y obviamente tiempos de desarrollo lo suficientemente cortos como para poder ver los simpson por las tardes.

Pero después de analizar ruby on rails comencé a leer un poco mas sobre el lenguaje (quizá debí primero leer sobre el lenguaje, y despues por las herramientas) y aunque es un lenguaje agradable me pareció un poco menos legible que python, aun así, me parece un lenguaje “noble” como python pero por cuestiones de gusto creo que me quedo con python.

Así que ya que ví que ruby on rails es bueno decidí buscar algo parecido para python, es decir un framework, y ya alguna ves había leído sobre estos como turbogears, django, zope, pylons, etc. A decir verdad existen bastantes para python es solo que no tuvieron quizá el mismo marketing que ruby on rails tuvo.

Hasta el día de hoy puedo decir que ya tengo cierta experiencia en .Net con C# y pretendo retomar mis “raices” con python para desarrollo web “agil” ya que es mas rapido que hacerlo con Asp.Net y por que PHP no termina de gustarme.

El punto de todo este post es que, hoy por hoy existen herramientas para desarrollo web que han facilitado a muchos el desarrollo de aplicaciones, sea php con mysql, aun con sus defectos, ruby y python con frameworks para desarrollo ágil y  finalmente Java y .Net para desarrollos empresariales. Recuerdo hace algunos años, cuando solía frecuentar el canal de unixmexico en irc que habia un tipo medio payaso que nos decía a todos en el canal que python no tenía futuro, que era un lenguaje para “script kiddies” y que los administradores de red de verdad utilizaban perl, también recuerdo alguna ves haberle dicho a esta persona en el canal que, aun con todas las ventajas de perl tenia una grande desventaja: no tenía soporte para varios lenguajes y de por sí la sintaxis de perl era horrible, al menos para mí, en ese tiempo (2001) .Net apenas daba sus primeros pasos y al ser una herramienta de Microsoft obviamente no era (quizá aun no lo sea) bien vista por los usuarios de Unix, sobre todo de linux. La respuesta a mis argumentos, por su parte, fue la siguiente:

“perl hace todo lo que python puede hacer y mejor, tiene mejores expresiones regulares y se está desarrollando parrot, una maquina virtual que va a poder ejecutar todos los lenguajes de programación que existen”

Hasta el día de hoy, python ha llegado a ser exitoso en grandes entornos, por ejemplo, google lo utiliza en muchas de sus aplicaciones, php es el “rey” de las aplicaciones web aun cuando no tiene las mejores prácticas pero tiene una gran parte del mercado, ruby, con ruby on rails, es la herramienta de desarrollo favorita que está en boca de todos, de hecho,  python ha sido portado ya a la maquina virtual de java con jython y a .Net con IronPython con apoyo de Microsoft, ruby ha sido portado totalmente a java con JRuby por parte de Sun Microsystems, y está siendo portado también a .Net con Ruby.Net, PHP ha tenido algunos avances con frameworks como CakePHP que intentan llevar algo de rails u otros frameworks a este lenguaje… .Net ha sido portado a Unix/Linux con Mono y se tiene yá un buen soporte para gran parte de la API y se puede utilizar con confianza para desarrollar aplicaciones multiplataforma como Java.

Y entonces, 7 años despues, donde esta perl, que puede ofrecer que no ofrezcan ya otros lenguajes de programación? Parrot?, no, gracias, perl 6, versión sobre la que supuestamente correría parrot parece no tener fecha tampoco. Creo que perl 6/parrot se convirtieron finalmente en el “duke nukem” de las herramientas de programación.