Ahh, si sólo los bemoles se aplicaran a la música. Pero no es así, en este caso el código abierto u OpenSource también tiene los suyos. En particular voy a hablar de los proyectos gratuitos a los cuales casi llamaría “pasatiempos“, en este caso StupidZombie.
Es un proyecto costoso: StupidZombie es bien costoso. Cuesta tiempo que pudiera estar utilizando en otras cosas. Me cuesta el dominio de DNS, el hospedaje. Cuesta el esfuerzo de convencer a otras personas para que se involucren y participen en el proyecto.
Es dificil conseguir colaboradores: Nadie quiere trabajar en un proyecto pequeño, y menos de gratis. Si el proyecto es en Español entonces las posibilidades de conseguir colaboradores bajan dramáticamente (yo tengo varias teorías, con gusto las discutimos en cuanto me dejen sus comentarios). Hay que promocionar el proyecto en muchos sitios, de muchas maneras para darlo a conocer, explicando el potencial (Por ejemplo, después de mucho trabajo tuve la suerte que DrRomney se interesara en el diseño del proyecto. De allí nació Blockhead y el sitio web del proyecto).
Requiere dedicación: La tentación de hacer cualquier otra cosa a estar echando código en solitario es grande. Revizar cucarachas, probar cosas nuevas. Si usted no disfruta de su proyecto entonces ni siquiera empiece (por ejemplo muchos de los proyectos en Source Forge nunca liberaron una linea de código y ahora están abandonados).
Con el tiempo uno aprende a hacer mejores propuestas. Por ejemplo, uno de mis primeros pasatiempos OpenSource fué CVEBrowser. En aquel entonces estaba aprendiendo Servlets y JSP y me pareció buena idea dejar algo atrás. El proyecto llegó a su versión 1.0 y allí murió ya que nunca hubo interés de nadie en ver nuevas cosas (sin embargo hasta el día de hoy hay descargas del código desde su sitio web).
Al mismo tiempo PingBlog (el ancestro de StupidZombie) y ElAngelNegro (Kodegeek) nacieron. PingBlog nunca fué popular y ciertos cambios le dieron nueva vida el proyecto. Kodegeek es bien experimental y recoge todas (bueno, casi todas) los experimentos con código de los cuales he hablado en este blog a través de los años (todos los meses tiene descargas de código, así que hay bastante interés en el proyecto, pese a que son piezas de código aquí y allá)
Algunos éxitos vinieron de otros proyectos: Hace ya unos años atrás yo era un usuario avido de OpenNMS. En ese tiempo el proyecto no tenia un ‘plugin’ para monitorear bases de datos usando JDBC (sólo uno que detectaba si el puerto en TCP/IP estaba abierto o no). Después de jugar un poco envié el código al proyecto y (suerte para mi) fué aceptado. Hoy en día estan trabajando en un código más limpio, pero en ese entonces esta pieza de código ayudo a unos cuantos (y yo muy agradecido por poder ayudar).
Mercadeo, mentiras y vídeo: Como cambiar el nombre del proyecto ayuda: Desde que el proyecto cambio su nombre a StupidZombie (bendito dominio en DNS) ha habido más colaboración e interés. Gracias a esto conseguí que alguien se interesara en el proyecto y creara un diseño atractivo que a logrado que la gente se baje la aplicación, juegue con ella. Las redes sociales como Facebook, Twitter y proyectos como Kenai.com han ayudado mucho, en comparación con métodos más tradicionales como anunciar el proyecto en Freshmeat.net o hospedarlo en Source Forge
Aún es costoso competir con el código comercial: Por ejemplo, obtener certificados digitales para firmar el código es costoso. Si lo quieres hacer gratis es un proceso complejo. Promocionar el producto como si fuera comercial cuesta dinero (por ejemplo la tienda Java Store no es grátis, ya que ellos tienen que pagar los costos de mantenimiento y distribución). Si a eso le suma el hecho de que nadie paga por código abierto (olvidense de las donaciones, yo nunca he recibido una en ninguno de mis proyectos)
Yo soy de los que cree que hay que dejar algo atrás, algo que hable de ti. No tiene que ser perfecto, sólo tiene que ser útil. Si es útil entonces seguirá creciendo, no importa si no se le dedica la misma atención. El hecho de involucrarse en varios aspectos del desarrollo de un proyecto (no sólo el echar código) es altamente gratificante ya que se aprenden muchas cosas, sobre todo el como actuar en diferentes roles (promotor de mercadeo, desarrollador, gerente de producto, diseñador de imagen y madrina del equipo ).
Kenai.com es un nuevo servicio para el hospedaje de proyectos OpenSource, con la diferencia que hace enfasis en conectar a sus usuarios con redes sociales como Twitter, Facebook y otras. El proyecto ahorita esta en beta pero yo tengo 3 invitaciones para quienes quieran utilizarlo.
No hay truco, es grátis, ningún compromiso conmigo. Solamente escriban de vuelta mencionando su dirección de correo electrónico para mandarles la invitación.
Es una de las pocas excepciones en las cuales sólo puedo decir que no sé por donde empezar. ¡WOW!; Este año me decidí a tomar videos sobre mis experiencias en vez de tomar fotos, al mismo tiempo que escribía casi en tiempo real sobre la conferencia en Facebook, Twitter y el blog. Debo decir que es la primera vez que me quedo sin baterías por andar jodiendo la paciencia
El énfasis de la conferencia fué Cloud Computing; Sun definitivamente está apostando a que este va a ser el siguiente gran boom (junto con otras compañías como Amazon.com) y durante el evento mostraron muchas de sus herramientas de desarrollo, administración y virtualización (en el video pueden ver a David Douglas, Senior Vice President, Cloud Computing and Developer Plarforms quien abrió el evento.):
Me encanto ver compañias como ZAmanda, las cuales han llevado el famoso programa de backup Amanda al mundo enpresarial y ahora también soportan el paradigma de respaldos en Cloud Computing.
No pude ir a todas las charlas (si quieren ver los videos revizen mi grupo en Flickr); Por razones de tiempo tuve que escoger entre las que más me interesaban, así que aquí les doy un pequeño resumen:
Moving Forward: High-Performance Application Development in a Multicore World: Michael Marden, de AMD junto con Patrick Leonard (Rogue Wave), David Maples (Allinea Software) y Duncan Mc Callum (Cilk Arts) se encargaron de explicar las últimas tendencias en cuanto al uso de procesadores multicore y como nos afecta a los desarrolladores.
Si bien no hubo demostraciones de productos ni código estuvo interesante en cuanto a las explicaciones de los problemas actuales y sus posibles soluciones. Pero eso si, preparese para ver más cores por procesador (hasta 48 en dos años) y siga el siguiente consejo: Si no tiene que utilizar multithreading entonces no lo haga
Les recomiendo el sitio de desarrolladores de AMD el cual tiene varios documentos y herramientas al respecto de este tema.
Sigo con la descripción, no hay más vídeos porque mi camara se quedó sin baterías
Cloud Computing for the Enterprise Software Developers: Aburridisima, sólo mostraron herramientas y la teoría detrás del funcionamiento de la plataforma que mostraron fué floja. Parecía más un “informercial” que otra cosa. Perdí una hora de mi vida allí
Beyond Impossible: How Jruby Evolved the Java Platform: La mejor charla del día en mi opinión. El trabajo que el desarrollador Charles Nutter de Sun y sus compañeros hicieron con JRuby es admirable. No sólo reprodujeron a C Ruby en Java, sino que en el proceso le agregaron más funcionalidad a la máquina virtual de Java (versión 7). Nos demostraron como JRuby es más rápido que C Ruby 1.9 en varios demos (uno de fractales en particular), además de las historias heroicas de ciertos desarrolladores, ¡como el que portó la librería de expresiones regulares en C de Ruby (JAnigurama) en sólo un mes!
Yo pregunté cual es la estrategia de Sun a largo plazo con todos estos lenguajes; La respuesta es soportar a aquellos que tengan las comunidades más grandes, pero en teoría todos los lenguajes. Este es el legado de Java, aunque el lenguaje muera este va a seguir con implementaciones de otros lenguajes en la máquina virtual.
Si quiere saber más sobre Jruby y el progreso de otros lenguajes dinamicos en la máquina virtual de Java (como Jython, Groovy, Scala) entonces visite el blog de Chales Nutter
Building an Atom-Enabled, Map-Driven, Location-Aware, Web-Centric Mobile Application with POJOs and Android: Verga, leer el titulo cansa imagine escribirlo . Sin embargo la charla estuvo super interesante ya que el autor (Tim Bray, un experto en Cloud Computing) nos mostró una aplicación que escribió para Android en sólo 4 días (el programa, llamado storyteller, permite guardar historias en el telefono, haciendo anotaciones de texto y voz).
Datos curiosos de esta charla:
Microsoft es el jugador más debil del mercado móvil, con sólo %3 de todo la torta. Symbian es el mostruo con más de %27
Pese a la recesión mundial y a que menos usuarios compraron celulares el trimestre pasado comparado con el 2007, el mercado creció en un %5. ¡Carajo, este es el único mercado a prueba de recesión en el mundo!
El Java de Android no es realmente Java. Por ejemplo, este no puede correr JRuby. Por otro lado, tener root shell en el telefono de desarrollador simplemente no tiene precio )
Mientras probaba la aplicación, el programa se fué a un sitio que tenía la palabra “f*ck” en todos los colores y tamaños. Tim lo manejó muy bien diciendo que nunca nos ibamos a olvidar de su charla
Fué interesante ver como funciona el modelo de programación de aplicaciones en Android (les recomiendo el blog androiddiary.com para más detalles)
Building a Twitter Analisys Tool from Scratch Using PHP, MySQL, Yahoo UI and Netbeans: Eso es lo que yo llamo una demostración en caliente. Justin Bolter, de Sun, se lanzó de cabeza y escribió esa aplicación de memoria en una hora. Paso a paso demostró un dominio increíble de Netbeans (y sus capacidades) y al final nos dejó loco con un programa que mostraba los twitters (y sus detalles) usando un motor de búsqueda el cual guardaba sus datos en MySQL. Demasiado bueno.
JavaFX: The New Platform for Rich Internet Applications: Fué decepcionante ya que Chuk-Munn Lee de Sun sólo leyó la presentación sin detenerse mucho en los ejemplos con código (y Dios, si habia código). Pudo haber sido mejor aunque se nota que Lee sabia de lo que estaba hablando.
En general hubo muchos participantes de otros países (yo conté un viaje de gente de Japón, Alemania y Rusia por ejemplo. Sólo conté dos hispanos, yo y un Mejicano) y aproveche para preguntar sobre algunas cosas interesantes:
La adquisión de SUN por parte de IBM: Nadie quiso hablar de eso. Sin embargo el precio de SUN subió hoy de $4 a $8
Open Storage:Mi grupo tiene un apetito inmenso por almacenamiento y Sun procalama que sus Storage Servers 7000 cuestan %75 menos que la competencia ya que estan basados en Open Solaris, y utilizan componentes comunes (han estado en venta desde Noviembre del año pasado, estoy averiguando a ver que tal)
Sun está alejandose de Java.net y en cambio está proponiendo una nueva plataforma, la cual va a soportar Cloud Computing: Kenai.com. Por haber asistido al evento y por tener un proyecto en java.net me dieron una cuenta, ya les contaré como me fué con esta nueva iniciativa de SUN en el mundo OpenSource la cual compite con SourceForge
Bueno, mañana me toca el dia 2 del evento, llamado “Deep Dive“. Son los tutoriales pagos en tecnologías OpenSource, me voy a lanzar un curso completo de un día sobre MySQL. Ya les comentaré como me fué
Bueno, ya estoy en el Marriot. Tratare de escribir Durante el Dia de hoy, sin embargo siganme en twitter para actualizaciones en tiempo real: http://twitter.com/josevnz
Bueno, ya quedan sólo horas para el Sun CommunityOne East. Yo ando imprimiendo mis entradas, preparando mi camara y sobre todo abriendo el cerebro para todo lo que voy a aprender el día de mañana.
Ya les contaré como me fué, esten pendientes por este espacio. También puede seguir el progreso del evento en Twitter y Facebook.
Yo ya me inscribí para el 18 y el 19 de Marzo, si alguno de ustedes piensa ir al evento gratis del 18 y quiere ganarse una franela avisenme para darles el código de inscripción para que participen.
Nos vemos allí.
Nota: No creo que vaya al JavaOne del 2009 año. Los temas se parecen mucho a los del año pasado, voy a esperar a que haya más variedad.
Veneblogs: java, opensource, linux, conferencia, CommunityOne
Checking for remote updates … This may be disabled using -noupdates flag.
Checking remote fdt.jar at URL: http://monalisa.cern.ch/FDT/lib/fdt.jar
Current fdt.jar path is: /Users/josevnz/Desktop/fdt.jar
Connecting … OK
Feb 21, 2009 10:20:32 PM lia.util.net.common.Config <init>
INFO: FDT started in client mode
…
INFO: [ FDTReaderSession ] No post processing filters defined/processed.
[ Sat Feb 21 22:25:46 EST 2009 ] – GracefulStopper hook started … Waiting for the cleanup to finish
[ Sat Feb 21 22:25:46 EST 2009 ] – GracefulStopper hook finished!
[ Sat Feb 21 22:25:46 EST 2009 ] FDT Session finished OK.
Bueno, la instalación es trivial pero yo no pude utilizar compresión para copiar mis archivos. Después de probar algunos parametros me decidí por esto:
auyan:Downloads josevnz$ time bbcp -P 4 -v -w 2M SentillaWork-1.1.1.tar 10.0.1.198:/Users/josevnz/Downloads/SentillaWork-1.1.1.tar
bbcp: Invalid argument setting FD limit
bbcp: 10.0.1.196 kernel using a send window size of 2098152 not 2097184
bbcp: Creating /Users/josevnz/Downloads/SentillaWork-1.1.1.tar
bbcp: At 090221 23:34:28 copy 0% complete; 0.0 KB/s, avg 0.0 KB/s sdv 0
bbcp: At 090221 23:34:32 copy 0% complete; 0.0 KB/s, avg 0.0 KB/s sdv 0
…
Hmm, ¿7 minutos? Nada bueno, considerando que scp y FTD hacen un buen trabajo.
Si bien no puedo decir que bbcp es una herramienta más lenta comparado con FDT al menos se que es lo bueno para mi red. Me guestó mucho FTD ya que se puede integrar fácilmente con aplicaciones escritas en Java y su instalación / ejecución es trivial (además de tener un buen rendimiento).
A usted seguro le tocará experimentar con los parámetros disponibles para cada aplicación, así que paciencia y buena suerte
Veneblogs: java, opensource, bulk copy, tcp
The “toy” servlet engine supplied with the test suites would have the same core http processing code (as far as possible) as the servlet engine which powers GMail etc. For folks outside of Google, there’s really no compelling argument to drop Apache Tomcat/Jetty, etc. in favor of OpenGSE’s reference servlet engine, but anyone interested in servlet engine and servlet spec compliance would have a fantastic learning resource available to them.
La palabra clave aquí es ver el mecanismo interno de la especificación. Como es tan pequeño y sencillo quizas es un excelente punto de partida para aprender como funcionan las cosas, una implementación sencilla (al menos comparada con el venerable Tomcat el cual tiene un montón de funcionalidad).
Últimos comentarios