Mostrando entradas con la etiqueta tecnología. Mostrar todas las entradas
Mostrando entradas con la etiqueta tecnología. Mostrar todas las entradas

Flash Molehill

Flash es una herramienta muy útil para los diseñadores. Le dan múltiples usos: desde pequeñas animaciones para la web hasta juegos y presentaciones animadas.

Sin embargo, en el mundo de las aplicaciones 3D mas grandes (como juegos comerciales) flash no es bien visto porque no tiene un "3D real" sino uno "emulado por software" y no puede alcanzar una alta calidad gráfica en 3D. Y por eso algunos dicen que flash es "solamente para jueguitos pequeños web" o para pequeñas animaciones.

Eso va a cambiar.

Bienvenidos a flash versión 2011 (también llamado molehill):

http://labs.adobe.com/technologies/flash/molehill

Busquen esto en google para ver videos demostrativos: "away3d flash molehill"

Esta nueva versión le otorgará "verdadero poder 3D" (a través de hardware) a flash y ahora si estará a la altura de otras herramientas especializadas en 3D como Unity ( unity3d.com ).

De hecho Unity está evaluando agregar la opción "exportar a flash" en su siguiente versión. ( http://blogs.unity3d.com/2011/02/27/unity-flash-3d-on-the-web )

Esto les dará los diseñadores la posibilidad de crear aplicaciones 3D de alta calidad con una herramienta que ya conocen: Flash.
Y le da a la gente de software la posibilidad de crear aplicaciones 3D fácilmente.

Si consideran además que Flash permite también crear aplicaciones para Tablets Android (y próximamente Tablets Windows) tienen entonces un prometedor futuro pues las Tablets (impulsados por el iPad) se utilizarán cada vez más (También los smartphones obviamente).

...pero... (siempre hay un pequeño "pero")… para aprovechar el poder de la nueva funcionalidad 3D van a tener que aprender un poco más de programación (ActionScript) pues al inicio esa funcionalidad solamente estará disponible "programando" y sólo Adobe sabe si la va a incluir dentro de Flash CS6 o de que manera.

Entonces eso me lleva nuevamente al punto que alguna vez les comenté: es cada vez más importante unir a diseñadores gráficos con gente de software para crear las mejores aplicaciones 3D/interactivas posibles.

Saludos,
Tak

Preparándose para el futuro

Como trabajo en tecnología y he dado algunas charlas sobre diferentes temas, algunas veces alguien me pregunta si puedo recomendar que tecnología deben ir aprendiendo para estar preparados para el futuro. Justamente ahora un amigo me está pidiendo que le recomiende un tema de estudio para "preparase".

Bueno, yo no tengo una bola de cristal así que lo mejor que puedo hacer es dar mis opiniones personales y ya depende de cada uno decidir si lo que digo tiene coherencia o simplemente tacharme de loco :)

Entonces, a insistencia de mi amigo, aquí van mis recomendaciones:

Dejen de estudiar temas de tecnología. Dejen que los nerds, geeks y frikis del mundo (como yo) se encarguen de eso. En serio, incluso si tu carrera está relacionada a la tecnología el mejor tip que te puedo dar es que estudies otros rubros como: arte, música, liderazgo, management, economía, finanzas, teatro.

¿Sabes que hacían algunos samurai cuando no estaban en alguna batalla?
No, su hobby no era cortar cabezas de animales ni patear árboles hasta que se caigan. No. Algunos practicaban poesía y otros pintura. Exactamente lo opuesto a su profesión principal: la guerra.

¡Y por supuesto que eran malísimos dibujando! pues esa no era su especialidad. Pero el punto es: ¿por qué lo hacían? Pues porque las personas no somos simplemente "doctores" ni "mecánicos" ni "programadores" sino seres humanos muy complejos con mucho potencial y una de las formas de desarrollarnos es hacer que ambos extremos (hemisferios) de nuestro cerebro funcionen. Usualmente sólo usamos uno; pero hacer actividades que impulsen el desarrollo del otro extremo trae grandes beneficios: mejora tu percepción de lo que ocurre a tu alrededor y agiliza tu mente. Lo cual es importante no sólo para una carrera sino para la vida.

Les voy a poner otro ejemplo: en lugar de poner a mi hija en un colegio muy caro prefiero ponerla en un colegio normal y que también pagarle clases de circo en donde aprenderá a subirse a un trapecio sin miedo o hacer reír a los demás con malabares. Espero que eso la prepare para después cuando tenga que defenderse en su vida profesional en diferentes situaciones en donde importa no sólo lo que sabes sino también tu actitud mental.

( por si acaso, una excelente escuela de circo en Perú: www.latarumba.com )

Ahora, si también eres nerd o geek o friki (advertencia: leer este blog te está convirtiendo en uno!) e insistes en que quieres que opine sobre tecnología, aquí van mis tips:

  • No se detengan mucho a estudiar tecnologías muy específicas sino aquellas que sirvan al proceso de desarrollo, sin importar que tecnología usen. Ejemplo: está bien aprender cuál es la nueva librería de tu lenguaje favorito que hace gráficas 3D; pero sería mejor que aprendan metodologías de como mejorar la calidad del software en cualquier proyecto o lenguaje.
  • Concéntrese en los tablets y smartphones. Lo cual es algo obvio a estas alturas para cualquiera.
  • Lean webs de novedades tecnológicas pero también aquellas que analizan la tecnología y su impacto en la cultura, los negocios y en las personas involucradas. Aquí tienen un ejemplo: www.cio.com
  • Y lo más importante: no se dejen llevar por blogs como este. Es mejor que lean analicen y saquen sus propias conclusiones. En el peor de los casos si no llegan a ninguna conclusión entonces vale arriesgarse por una tecnología y usarla y aprender lo que se pueda de la experiencia.

Como empezar una empresa o proyecto (al estilo Kawasaki)

Libro recomendado: Como empezar una empresa o proyecto (al estilo Kawasaki)

No, no es un libro de cómo llenar formularios legales ni una explicación de como crear asociaciones. Es un libro acerca de que necesitas en tu mente, en tu corazón y en tu espíritu, para crear una empresa, no sólo crearla, sino hacerlo de la forma correcta.

Incluso si no piensas crear o empezar una empresa, lee esto, pues te puede servir para iniciar tu siguiente proyecto, producto, servicio, o simplemente esa idea que tienes que cambiará el mundo.

El libro se llama "The art of start" y su autor es Guy Kawasaki, uno de los impulsores de productos exitosos como los de Apple Computer, y director de www.garage.com, una empresa que se especializa en buscar las mejores ideas y productos y financiarlas o asesorarlas para que logren el éxito (pueden ver su portafolio aquí: www.garage.com/portfolio ).

Es autor de libros como:
  • Rules for Revolutionaries
  • How to Drive Your Competition Crazy
  • Selling the Dream
  • The Macintosh Way

Pueden leer su biografía aquí: http://www.guykawasaki.com/about

Pero les voy a comentar mi propia perspectiva de Guy Kawasaki, porque no es suficiente con leer lo que dice su website.

Imagino que muchos de ustedes han leído o escuchado hablar de personas como: Miguel Angel Cornejo y Robert Kiyosaki (autor de "Padre rico ,padre pobre"). Y han comprado sus libros, videos, incluso podría apostar que han comprado sus juegos de mesa que enseñan a ser líderes o hacer negocios.

Yo personalmente he visto sus videos y leído sus libros. Pero, no siento que haya aprendido algo y tampoco siento que me hayan motivado a hacer algo. Y veo también, como las personas siguen comprando cada nuevo libro o video nuevo que ellos publican, como si a mayor cantidad de ellos aumentaran sus probabilidades de ser ricos o tener éxito.

Esos libros provocan que las personas hagan este tipo de preguntas: ¿Cómo ser millonario? ¿Cómo ganar dinero? ¿Cómo lograr el éxito de mi empresa?

Preguntas válidas; pero a mi parecer, no son las preguntas correctas, al menos no para conseguir verdadero éxito en la vida (ese que no se consigue con dinero).

Les voy a dar una pista, del tipo de pregunta que considero realmente deberían hacerse:

¿Cómo Miguel Angel Cornejo y Robert Kiyosaki lograron ser como son? ¿Cómo lograron desarrollar una personalidad exitosa?
¿Cómo lograron avanzar en la vida y llegar al punto en el que pueden ganar dinero simplemente hablando? (porque la gente paga, y paga bien, para escucharlos)

¿Quieren saber cuáles son las otras preguntas que deberían hacerse en esta vida? Entonces lean el libro "The art of start". Si no tienen tiempo para leer el libro, compren el video. Si no lo encuentran en español contraten a un traductor, valdrá la pena.

Pueden descargar gratis el capítulo 1 de ese libro aquí.

http://www.guykawasaki.com/books/art-of-the-start.shtml

Hablando de videos, aquí les dejo otro muy recomendable, escuchar hablar a John Maxwell hablar de liderazgo es lo mejor que he escuchado en mi vida sobre ese tema. Búsquenlo en internet ( usen google para algo más que sólo buscar música! ), está disponible en español inclusive.

Saludos y buena suerte en sus siguientes proyectos
Taksan

Excelente libro: Framework para sistemas web empresariales (RECOMENDADO)

Tabla de contenidos:

  • Patrones
  • Performance de aplicaciones web
  • Caché
  • Transmisión asíncrona
  • Jobs
  • Seguridad
  • Monitoreo
  • Escalabilidad de la base de datos
  • Configuración de tu ambiente de desarrollo usando Eclipse


Lenguaje a usar: PHP

........ perdón!?!?? diijste PHP!!!!!!!!!!!!!!!!!!!!!!!!?????!?!?!?!?!?!!?


Si, así es, PHP.

¿o pensabas que PHP sólo sirve para aplicaciones "pequeñas"?

Si eres programador Java prepárate para una gran sorpresa al leer este libro y (de paso empieza a aprender PHP) porque este lenguaje se viene con todo en sus nuevas versiones.

Es cierto que no puede hacer todo lo que hace java... pero lo que hace definitivamente lo hace con menos consumo de recursos (¿o porque crees que casi no existen hostings con java pero existen miles con PHP? .... el negocio del hosting es.. en resumen... alquiler de recursos computacionales)

No importa que lenguaje utilizas, este libro es de lectura obligatoria para todo aquel que quiera hacer aplicaciones web empresariales.... quizás no aprendas PHP; pero lo menos aprenderás conceptos interesantes acerca de arquitectura de aplicaciones web

Se nota que el autor escribió este libro "desde el campo de batalla".... ME ENCANTAN LOS LIBROS ASI!!!... todo lenguaje de programación debe tener un libro como éste.

libro aquí: http://hotfile.com/dl/13999263/ea3dfde/zzzz.rar.html

¿Dios tiene área de informática?

humm.... y también hay otras preguntas tan importantes del mundo de la tecnología como:

¿Por qué tu jefe sabe menos de tecnología que tu?

¿Por qué tu jefe es un IDIOTA TECNOLOGICO que a duras penas sabe configurar su PC pero aún es......... TU jefe?

¿Cómo "patear" una tarea tecnológica "innovadora y retadora" que se le ocurrió a alguien (pero que no tienes tiempo para hacer) a otra persona en tu área?

¿Cómo parecer ocupado en la oficina? (Especialmente cuando necesitas tiempo para hacer otras cosas)

¿Realmente se puede ganar dinero trabajando en software? (¿sin morir de stress en el intento?)

Esas preguntas y otras mas en el libro "confessions of an IT manager"

A continuación un pequeño extracto del libro........... que narra la historia de la creación del mundo... si Dios hubiera delegado esa tarea a su equipo de tecnología, si quieren saber en que acaba la historia, lean el libro .... :)

//----------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------
//----------comentario separador (OBVIO, SE DIERON CUENTA POR LAS DOS "//" NO? :) :)
//----------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------

Antes de empezar LA CREACION, Dios miró a su equipo de TI (tecnología de información). Un grupo de ángeles con look algo nerd. Y habló (Y sus palabras resonaron como truenos):

Dios: "¿Están seguros de que pueden completar este proyecto en 6 días?"

Uno de los ángeles, con finas vestimentas (era el jefe de proyecto) dió un paso al frente y respondió:

Project Manager: "Estamos comprometidos a entregar una solución con la calidad adecuada"

Dios: (levantando una ceja...) "¿Y eso significa.....????"

Project Manager: "Entregaremos el producto en la fecha acordada"

Dios: "humm.... el proyecto es complicado, uno de los requerimientos es que EXISTA LUZ al final.... y además el contrato está escrito EN PIEDRA así que no deseo activar ningún CONTROL DE CAMBIO...."

Project Manager: (mostrando dotes de convencimiento angelicales) "No se preocupe, lo lograremos"

Una luz de paz cayó sobre el equipo de TI, mostrándolos como héroes a punto de entrar en batalla, como si nada pudiera detenerlos. (música angelical de fondo por favor)

....mientras tanto.... en algún lugar del cielo.... en un salón cerrado...

Un ángel con gruesos lentes y con alas tan maltratadas que parece que nunca hubieran sido usadas para volar (osea nunca salía de aquella habitación este ángel).... estaba tratando de armar el sistema MUNDO con pedazos de diferente componentes de barro.....

Programador: "Ay Dios mio!.... quién fue el gracioso que insistió en utilizar COMPONENTES DE BARRO para ensamblar la PLATAFORMA MUNDO?!?!?!?.... esto se está cayendo a pedazos!"

Dios todopoderoso (que todo lo oye) escuchó a lo lejos el murmuro de su nombre y se hizo presente en el lugar.

Dios (con voz inquisidora): "tu!.... eres uno de los desarrolladores que está haciendo mi sistema?"

Project Manager: (que también tiene poderes especiales, hizo su aparición rápidamente) "No! él es simplemente un sub-contratado. Además la plataforma MUNDO cumple con todas las especificaciones requeridas y será debidamente documentada luego del pase a producción del proyecto GENESIS!"


libro aquí: http://hotfile.com/dl/13998142/08f7a83/asdfasfasdf.rar.html

c++ versus java versus python versus todos!

¿Qué opina el creador de C++ acerca de Java?

¿Qué opina el creador de Java acerca de C++?

¿Qué opina el creador Python acerca de Java y C++?

Interesantes preguntas (e interesantes respuestas) que pueden encontrar en este libro en donde hablan diferentes creadores de varios lenguajes de programación acerca de los otros lenguajes :)

Aquí está el libro: (masterminds of programming)

http://hotfile.com/dl/13985575/84acd20/mmmpr.zip.html

Un androide en mi PC


¿No puedes esperar a tener tu nuevo celular Android? ( http://www.android.com/ ) Son la nueva competencia del iPhone.


¿Pues qué tal probar un Android sin comprarlo?


Desde aquí:



Puedes bajar un emulador del Android. Lo instalé en un virtualbox y aquí tengo la imagen de entrada:







Y mira lo que pasa si apretas ALT+F1 (accedes a la consola del sistema operativo Linux del Android!):



Y si! entra a internet automáticamente!:




Y si! también puedes instalarle aplicaciones adicionales!

Diviértanse!

Mi esposa la modelo

Algunos pueden soñarlo pero yo puedo decir que mi esposa es una modelo.... bueno... en un mundo de realidad virtual :)

Mi esposa trabaja como modelo en el mundo virtual SecondLife (http://www.secondlife.com/) y cuando digo "trabaja" me refiero a que obtiene dinero real.

SecondLife es un mundo virtual en el que puedes conocer amigos, trabajar, bailar (si, en discotecas), visitar lugares fantásticos, incluso construir tu propia casa.

Aquí una foto de mi esposa en SecondLife:


Así que si te gusta chatear, conocer amigos y navegar por horas en internet.... por qué no hacer algo divertido y además productivo con eso?

Si tu lado es más bien el artístico, también puedes crear objetos (en 3D) y venderlos dentro de SecondLife.... es todo un mundo digital por descubrir. Y no es el único mundo virtual que existe, si entras a http://www.virtualworldsreview.com/info/categories.shtml encontrarás muchos más, para diferentes estilos, gustos y colores.

Libro recomendado: Smart and gets things done

En el ejército a los soldados se les da dos órdenes:

  • Si pisas una mina: detente
  • Si el enemigo te dispara: corre hacia él disparando. Eso provocará que te deje de disparar y tu estarás cada vez más cerca para apuntar mejor y acertar en los tiros.

Claro, no falta el soldado inteligente que pregunta: "¿Y si piso una mina mientras me están disparando?"


Si quieren saber el resto de la historia y qué tiene que ver eso con el desarrollo de software, les recomiendo este libro:


"smart and gets things done". Autor Joel Spolsky

De hecho, este libro debería ser leído por cualquiera involucrado en el desarrollo de software. Contiene historias y consejos del mundo del software, escritos en lenguaje ameno y sobre todo: MUY MUY REAL. No vas a encontrar teorías largas y aburridas de metodologías en este libro.... mas bien... vas a encontrar casos prácticos de como contratar personal, como ser mejor programador, como buscar mejores programadores, como trabajar en un equipo que desarrolla software... y algo MUY IMPORTANTE: el test JOEL de 12 puntos para la evaluación de proyectos de software... los reto a contestar ese cuestionario y medir como van sus proyectos.

¡Vamos!
¡lean!


¡el libro sólo tiene 194 páginas y encima páginas chiquitas con letras grandes! incluye dibujitos!


Pocas veces vas a encontrar tanta información importante y divertida en sólo un libro!


No he parado de reir mientras leia este libro de principio a fin.

Cómo arrancar (boot) y usar Windows y Linux desde un llavero USB

Holas! ya tengo la última versión de Ubuntu Linux (8.1) corriendo desde mi llavero USB. Esto es mejor que una versión "live CD" porque lo puedo llevar a donde sea y lo que haga se va grabando en el mismo llavero USB. Además el acceso de lectura es más rápido en un USB que en un CD.

Aquí los links de como hacerlo:


Ubuntu en USB:
http://www.pendrivelinux.com/2008/10/15/ubuntu-810-persistent-flash-drive-install-from-live-cd/

Si prefieres KDE puedes poner slax linux en USB: http://www.slax.org/ o intentar poner Kubuntu en un USB....

Windows en USB:
http://www.tomshardware.com/reviews/windows-pocket,1113-8.html

Notas:

Windows en USB (también llamado BART-PE) no es muy útil porque para empezar no es un Windows real (le faltan algunas librerías) y no se le puede instalar cualquier software que uno desee, está limitado a sólo software compatible con Windows versión BART.

En cambio cuando linux funciona desde USB tienes un LINUX COMPLETO, sin "algo menos", sin "restricciones", y si algo le falta, simplemente se lo instalas :) el límite lo pone el tamaño de tu llavero USB.

He probado SLAX y Ubuntu versión USB (tengo dos llaveros USB de 2GB cada uno... aunque uno es de mi esposa que me lo ha prestado por el bien de la ciencia) y puedo decir que ambos funcionan muy bien; sin embargo SLAX cada vez funciona más lento hasta que llega al punto que se cuelga. Sospecho que es por mi culpa y no sé usarlo bien porque veo en su web que SLAX es muy querido por quienes lo usan. En fin. Me quedo con Ubuntu desde mi USB que está funcionando OK y me permite total libertad:

  • Libertad para usarlo (software libre)
  • En cualquier lugar o PC (lo llevo a todos lados en mi USB)

Cómo navegar por internet con seguridad máxima

Las últimas version de los navegadores Firefox e Internet Explorer son más seguros que antes (protegen mejor ante los peligros de internet, como virus, troyanos, phishing, .etc).

¿Pero puede haber algo más seguro?

Claro, usar un antivirus. (Norton, McAffee, Avast, .etc.)

¿Pero puede haber algo más seguro?

Claro, usar un antivirus+firewall+antispyware (AVG, Panda Total Control, Norton 360, .etc)

¿Pero puede haber algo MUCHO más seguro todavía?

(si sigues preguntando es porque o eres muy espeso o porque eres de la gente como yo que pelea contra las malignas criaturas de la oscuridad que amenzan por internet)

Pues si!... no navegues por internet. (tan sólo bromeaba). Aquí te doy unos tips si buscas mayor seguridad cuando navegas por internet:
  • No uses tu máquina real para navegar, mejor utiliza una máquina virtual y navega desde allí, de manera tal que si algo malo ocurre sólo se daña la máquina virtual. Yo utilizo un WindowsXP que "vive" dentro de una imagen VirtualBox ( http://www.virtualbox.org ) para navegar por internet... enciendo la imagen... navego... y cuando termino de hacerlo simplemente apago la máquina virtual y listo. Y si algún virus infecta a la imagen, simplemente la borro y creo otra. Mi verdadero Windows XP no se ve afectado. Si el concepto de máquina virtual no les quedó claro, miren estas imágenes: http://www.virtualbox.org/wiki/Screenshots
  • Navega desde Linux. Yo uso Ubuntu ( http://www.ubuntu.com ) pero puedes usar cualquier "sabor" de Linux que prefieras. Casi todos son gratis. Y no es necesario que borres, particiones o elimines tu Windows pues Ubuntu puede vivir dentro de una imagen virtual VirtualBox si deseas. Incluso, puedes ejecutar tu Linux desde un llavero USB, sin tocar tu disco duro para nada.
  • Activa un campo de fuerza que te proteja! (no es broma). Si utilizas el producto FORCE FIELD de Zone Alarm tu Internet Explorer adquiere un campo de fuerza que brilla a su alrededor y lo protege de ataques de internet... y si alguno llega a dañarlo o infectarlo pues no importa porque todo queda contenido dentro del "campo de fuerza" y nada llega a tu computadora. ¿Quieres saber más sobre eso? mira aquí: http://www.zonealarm.com/forcefield/

Acerca de RIA (Rich Internet Applications)

Para todos los que desarrollamos aplicaciones (no sólo web, sino en general) es importante lograr ir mas allá del HTML, del javascript y lograr aplicaciones realmente amigables y funcionales, al estilo RIA.

Y no sólo a nivel web, sino en todos los niveles, sea cual sea la plataforma de presentación (web, desktop, mobile, .etc).

Tecnologías como Flex, Flash, JavaFX, Silverlight empezarán a cobrar cada vez mas importancia.
Los que estudian administración de negocios o de empresas ya lo saben desde hace mucho tiempo: en un mundo cada vez mas globalizado en el que todos ofrecen casi la misma tecnología la DIFERENCIACION de tu producto puede ser la clave de éxito. Ya no es suficiente con decir que un sistema te permite manejar información, también debe permitirle al usuario ser "dueño" de su información. Los usuarios de hoy que han crecido con Nintendos y Playstations ya no quieren sólo ver la información en su pantalla, también quieren interactuar con ella. (Y los usuarios de mañana habrán crecido usando Nintendo Wii....)

La línea que divide aplicaciones "desktop" con aplicaciones "web" está cada vez más borrosa. Con Adobe AIR (y con la última versión de java que te permite ejecutar un applet FUERA de internet explorer) una aplicación puede vivir y ejecutarse indistintamente como "web" o como "desktop".

Les recomiendo esta lectura acerca de RIA:

http://www.flomedia.de/diploma/

(busquen un PDF en esa web que dice algo como "Thesis Florian Moritz)

Es el mejor resumen que he podido encontrar de RIA. El texto "parece" enfocado exclusivamente en JavaFX; pero no es así. Léanlo.

Facts and Fallacies of Software Engineering

A continuación les voy a poner un extracto de un libro que me pareció interesante compartir con ustedes. El autor tiene varios años de experiencia desarrollando software y cuenta lo que ocurre generalmente en proyectos de software.

El libro es "Facts and Fallacies of Software Engineering". (ISBN 0-321-11742-5)

Aquí va un extracto del libro (en color azul):

//----------------------extracto--------------------------------------

...Se supone que.... las personas son mas importantes que la tecnología.... ..
...pero en la realidad ocurre que.... las empresas desarrolladoras de software se esmeran en usar y adoptar metodologías tipo CMMI (Capability Maturiy Model) para que la empresa tenga cada vez mejores "procesos y funciones" al punto en que "las personas pueden intercambiarse" pero la metodología se mantiene como un modelo a seguir. Felizmente algunas empresas ya se han dado cuenta de que un buena metodología no va a lograr que una persona con poca habilidad haga bien su trabajo y por eso se preocupan en aplicar más bien el "PEOPLE CMM" (People Capability Maturity Model) http://www.sei.cmu.edu/cmm-p/version2/ que está enfocado al desarrollo de las personas, administración del conocimiento, trabajo en equipo, .etc. y todos esos términos que las empresas curiosamente "utilizan para promover la calidad de equipo humano que poseen" cuando presentan sus propuestas de ventas :)

...Se supone que.... la estimación de algo se hace cuando sabes que es ese "algo"
...pero en la realidad ocurre que... la estimación de los proyectos de software se hace lo más temprano posible en el proyecto... cuando se sabe lo menos posible sobre el proyecto a realizar....

...Se supone que.... la estimación (de proys. de software) se debería hacer por gente que sabe de software (quien mejor para saber del software que los programadores?)
...pero en la realidad ocurre que... la estimación se realiza por un conjunto de personas, algunas de las cuales ni siquiera son del área de ingeniería de software: marketing, usuarios, .etc.

...Se supone que.... a medida que avanza un proyecto y nos damos cuenta que la estimación no es realista, actualizamos los valores de la estimación para reflejar los nuevos tiempos...
...pero en la realidad ocurre que... una vez que ya se sabe que las estimaciones estuvieron mal y además se sabe quienes hicieron la hicieron mal.... le echan la culpa a los programadores porque no cumplieron a tiempo su trabajo...

...Se supone que....una vez que ya nos dimos cuenta de que las estimaciones son incorrectas, que no se actualizan a la realidad y que no podemos confiar en ellas... deberían ser tratadas como un dato sin importancia para el proyecto...
...pero en la realidad ocurre que... las estimaciones son lo MAS importante del proyecto!... TODO se mide con ellas....en las reuniones para revisar el avance del proyecto a la gerencia sólo le interesa saber si se cumplió con el hito X en tiempo fijado Y o si se avanzó o se retrasó en Z tiempo.

Hablando de las estimaciones.... hice este experimento: le di a un programador una tarea, le dije que la programara y a propósito le di tiempo insuficiente para completarla. Resultado del experimento: La persona lo hizo! pero el programa no tenía suficiente calidad ni tenía todas las opciones que le pedí. Lo interesante es que, la persona no se preocupó por el tiempo que le di sino que en todo momento hizo su mejor esfuerzo y "automáticamente" quitó calidad al programa con tal de cumplir con la fecha. Conclusión: en el problema de la estimación todos son cómplices.

...Se supone que...si un proyecto se retrasa, todos se ponen tristes y se preocupan...
...pero en la realidad ocurre que...al personal técnico (desarrolladores) poco le importa el retraso; pues generalmente ocurre que el proyecto se retrasó porque en la estimación no consideraron el tiempo que tomaron los desarrolladores en resolver complejos algoritmos y crear interfaces nuevas con tecnología nueva (y todos los retos tecnológicos que el proyecto requería pero no fue tomado al momento de estimar -adivinen por qué. Conclusión: los desarrolladores están felices porque el proyecto es un "reto tecnológico".

...Se supone que...COBOL es un lenguaje horrible y obsoleto y no se debería usar más...
...pero en la realidad ocurre que...su uso sigue creciendo día a día...

Un programador enamorado

Como todo buen programador que ha llegado más allá del estado Beta (traaaanquilo pues!), a veces voy programando mientras voy en el bus, mientras almuerzo, o en cualquier momento...y a veces no puedo detener la avalancha de imágenes y palabras que aparecen frente a mi. Eso me ha costado que en varias ocasiones se me acuse de distraído, de olvidadizo y de tener la mirada perdida, como si buscara fantasmas en el horizonte de los vivos. Ante esto me declaro culpable. No puedo negarlo. Mis respuestas favoritas cuando me juzgan de esta manera, son:

  • Para la gente windozera: "Estoy abriendo otras ventanas, no te preocupes"
  • Para la gente java: "Estoy en otro thread"
  • Para la gente coder: "Estaba compilando"
  • Para la gente de Thundera: "Estoy tratando de ver mas allá de lo evidente"

Y tengo otras mas. Aunque no las pude usar cuando un amigo mío agregó un cargo más a la acusación, diciendo: "Seguramente eres tan distraído que ni te das cuenta cuando te enamoras".

Frente a eso simplemente respondí "Por supuesto".

Y empezó la discordia.

Mi amigo recobró seriedad inmediatamente replicando que eso no era posible, que uno puede elegir enamorarse. Yo insistí que no, que uno no sabe cuando se enamora, uno no puede predecirlo y mucho menos elegir de quien se enamora. Al ver que no nos poníamos de acuerdo, convocamos a otros hombres para mar una rueda de discusión.

(Advertencia para las feministas que lean esto: Favor de abstenerse en estos momentos de hacer chistes del tipo: "Cuántos hombres se necesitan para hacer 1 cerebro"? )

Esto es cosa seria! Incluso, colocamos nuestro cartel amarillo de "MEN AT WORK", con hombrecito y pala incluida.

Entonces discutimos y me sorprendió ver que habían otros que también creían que uno puede elegir cuando enamorarse. Vaya! y después dicen que “YO” planifico demasiado en la vida!

Después de intercambiar disertaciones y lanzarnos diferentes opiniones, llegamos a la misma conclusión primordial a la que todo grupo de hombres llega cuando discute temas elevados: Teníamos hambre.

Pero una de las conclusiones que pude anotar antes de que nos retiráramos a buscar comida fue: No era necesario elegir de quien enamorarse, porque en realidad son las mujeres las que elijen por nosotros y en la mayoría de casos "nos enamoran".

Es que vamos, los hombres a veces nos complicamos demasiado… ¿Y es que se imaginan lo que pasaría si un programador quiere hacer poesía? Le quedaría algo así:

Mi cabezal se ha descarrilado leyendo tus cilindros, me has sacado de mi track!
Aquella foto que me certificaste con tu firma digital es mi attachment más preciado
Las demás fueron sólo demos, tu eres la firmware
Otras llegaron sólo al sóftware pero tu tocaste mi hardware
No me importan cuántos registros hayan en la tabla de mujeres, sólo me importa tu llave única


(y seguro le quiere poner indentado encima!!!, fácil y lo escribe en una IDE!!!)

Por eso un amigo mío (que también es programador) me dijo un día: “chochera! La re-utilización de componentes es la voz!” y me dio un libro de poesías de Pablo Neruda.

Flex versus Applets

No, no estoy loco, y si, voy a enfrentar al favorito de todos (Flex) versus a un contendiente inesperado (Applets). Probablemente muchos de ustedes se quedaron en el capítulo de la historia de java en el que los applets eran:



  • Cuadraditos grises que en lugar de ayudar molestaban en una página web

  • Estaban limitados a una no-muy-linda interface gráfica (AWT)

  • Sólo funcionaban si tu navegador tenía la última versión de java y sino, "lo siento mucho amigo" y el usuario tenía que llevar un curso de java para entender como meter el plugin de java en su navegador.

Bueno, yo también me había quedado en ese capítulo, hasta que empecé a usar Flex. Aquí mi historia:



Flex está de moda y como todos, empecé a usarlo, así que lo instalé y empecé a hacer unas pruebas... un botón aquí, un formulario allá. Todo muy lindo. Luego vi el código que genera detrás (porque Flex es en realidad una herramienta de diseño que genera código actionscript detrás... por si no se habían dado cuenta todavía...) y noté algo preocupante: sólo con un formulario y un botón Flex ya había auto-generado 41 clases ActionScript! (y una lista de librerías añadidas que yo no había invitado - Provecho debugeando eso cuando tengas un problema en producción). Claro, alguien podría decir que todo eso es "necesario por el bien del diseño y la flex-ibilidad que te da Flex". Ok, Flex es sin duda la mejor herramienta de diseño de contenido web-RIA que existe en el momento. Pero como yo vengo de las épocas en que se programaba en computadoras que tenían menos de 1MB de RAM (si, pregúntale a tu abuelito, de repente él te puede confirmar) mi instinto de programar siempre me lleva a la optimización y a consumir la menor cantidad posible de recursos.


Considerando que Flex cuesta sus buenos $$$, traté un camino menos elegante, más barato, más directo (y más optimizado): evitar Flex y programar directamente en ActionScript (programación "a lo macho" como dice mi amigo Trigomán) sin nada de XMLs ni pantallitas flexibles. Así que probé todas las IDE actionscript que encontré: ASDT, FDT, flashDevelop, PrimalScript y la propia sección "ActionScript-only" de la IDE Flex. El resultado: no aceptable. Ninguna IDE de ActionScript me ofrecía todo lo necesario para que un programador haga trabajo realmente serio, y además las mejores cuestan por encima de 500 dólares. Quizás parte de la culpa de esto la tiene Eclipse que desde hace años me ofrece una poderosa IDE a la que me he acostumbrado y vivir en un mundo en donde las IDEs java bien pagadas (Ejemplo: MyEclipse) está bordeando los 100 dólares o menos.


Pero insistí y logré hacer mi "hola mundo" en ActionScript. Superado el primer reto, llegó mi primera decepción: hacer un simple formulario con un botón en ActionScript. Resulta que para poner un botón tenía dos opciones:



  1. Usaba la clase SimpleButton (que de simple no tiene nada, y el resultado gráfico es horrible)

  2. Si quería un botoncito bonito (como esos que se ven en la web en animaciones flash) tenía que importar librerías de Flash a mi proyecto.

Allí fue cuando pensé: "¿Perdón? ¿dijiste meter librerías del software Flash en mi súper proyecto "quiero-demostrar-que-yo-lo-puedo-hacer-todo-solito-con-actionscript"?, ¿no se supone que un lenguaje de programación debe tener out-of-the-box todo lo necesario para poder pintar un simple botón en la pantalla?"


Humm.... después de todo... Adobe gana dinero vendiendo Flash y Flex, no vendiendo "ActionScript".


Entonces miré nuevamente hacia mi java querido y vi la novedad: JavaFX.



Probé JavaFX (*Proof of concept* que le dicen). Compilé, sacudí y disequé. Resultado: horroroso.


No sé a quien se le ocurrió la idea de este JavaFX (que promete ser la competencia de Flash) pero alguien en SUN debe re-ordenar sus ideas. JavaFX no sólo tiene un lenguaje complicado (parece programación orientada a CSS) sino que además su documentación es incoherente con su propia API. ¿Por qué SUN tuvo que inventar un nuevo lenguaje en lugar de re-utilizar algo parecido a Java?.



Sin embargo.... JavaFX tiene características técnicas (puede llamar a clases java, soporta 3D, y un largo .etc) que no todas funcionan hoy... pero lo harán en sus siguientes versiones. Sólo es cuestión de tiempo... si SUN logra hacer realidad sus promesas con JavaFX.... Adobe va a tener que preocuparse...


Mientras que iba esperando a que JavaFX madure... pensé que tal vez, sólo tal vez, había alguna forma de lograr lo que quiero con Swing. Después de todo Swing es una librería gráfica con años de documentación y mejoras. Ya está madura, está lista. Y entonces, de casualidad noté en uno de los ejemplos de JavaFX algo inesperado: el ejemplo era un Applet! pero no era un applet cualquiera.... fue que descubrí algo maravilloso que SUN no ha promocionado (SUN! esto es genial! saca JavaFX de tu página web y coloca esto en su lugar!): resulta que ahora los applets pueden llamar a programas WebStart (JNLP).



Es decir que antes: Los applets era cuadraditos grises que no podían hacer mucho
WebStart podía poner todo el poder de java; pero no dentro de tu navegador (la experiencia del usuario se veía cortada)


Pero ahora!: Los applets tienen todo el poder en un aplicativo WebStart! es decir que ahora los applets pueden:



  • Acceder a todas las librerías javas que deseen (Si, incluido SWING). No importa que la PC del usuario no tenga ese súper-jar que le falta, el applet la bajará por ti.

  • Pintar gráficas 3D!. Esto es algo que Flash versión 10 (todavía beta) recién está empezando a tener.

  • Los programadores java pueden aprovechar todo su conocimiento para hacer aplicaciones web RIA (Quizás en el futuro si va servir algo poner "Swing" en tu CV :) )

  • Los puedes utilizar mientras esperas a que JavaFX madure y tenga todo el potencial prometido.

  • Bonus plus 1: El nuevo plugin de java (versión 1.6 update 10-beta 25) para tu navegador carga los applets más rápido que antes y además te pone una linda barrita de progreso mientras esperas.

  • Bonus plus 2: Te gusta el CSS? claro! es lo que has usado tantos años para uniformizar el estilo de tus aplicaciones web. Claro, también lo puede usar en Flex. Y.... también en tus applets! ( https://javacss.dev.java.net/ )

  • Bonus plus 3: ¿Pensaste que sólo podías hacer animaciones en flash? Resulta que java soporta desde hace años el formato SVG (si, gráficos escalables, como los que usas en flash). Uno de los mejores programas para editar SVGs es de Adobe (Illustrator)... ahh... las ironías de la vida...


Y si todavía sigues leyendo esto, a continuación, las demos.



Demo 1: ¿Es google earth? ¿Estoy viendo un telescopio? NO! es un applet!. Y si, puedes hacer zoom, girar, marcar lugares específicos en el mapa...




Demo 2: ¿Es un avión? ¿Es el nuevo juego de playstation? NO! es un applet! Y si, ese es Quake (full 3D) corriendo en un applet.


Los applets han regresado.... (y pronto llegará el verdadero JavaFX como refuerzo).... esto se va a poner bueno!

Nota importante: si quieres ejecutar las demos necesitas JRE1.6 update 10( http://java.com/en/download/beta_6u10.jsp )


¿Quieren saber más?


http://brigomp.blogspot.com/2008/04/el-retorno-de-los-applets-otra-vez.html


https://jdk6.dev.java.net/plugin2/jnlp/


Empezando con esto de los blogs...



Por fin después de la insistencia de mis amigos (si Richi, por fin te hice caso), me animé a poner un blog. Tomé el libro "blog for dummies" y después de leer 10 páginas me di cuenta de que esto se trata de acción! así que dejé el libro a un lado y entré a blogspot.com y pues aquí estoy.


¿Será posible tener esposa, una hija de año y medio, un trabajo desarrollando software, y encima de todo eso un blog? Para saberlo no se pierdan el próximo capítulo (bueno, el próximo "entry") de.... "un peruano buscando un blog"... (eh! no, ese no es)... es... "Taksan y su blog".