EasyEclipse: instala el entorno de desarrollo Eclipse sin complicaciones

Hace unos años que vengo usando Eclipse como entorno de desarrollo (IDE) para diversas plataformas. Esta herramienta fue creada desde sus inicios para ser modular, permitiendo incorporar módulos que brindan el soporte a un lenguaje de programación específico, como así también módulos de herramientas que complementan el entorno de trabajo.

Lo malo del proyecto es que no es ni fácil ni intuitivo administrar esos módulos. Actualmente no cuenta con ninguna herramienta centralizada que permita de forma fácil incorporar nuevas características al estilo Firefox (la facilidad de cambiarlo a gusto a través de módulos es la llave del éxito de este navegador).

Las buenas noticias

Por defecto al bajar Eclipse cuenta con soporte para Java, es más, Eclipse está hecho en Java. Si quieres agregarle un nuevo soporte -por ejemplo, para PHP- deberás buscar en la web del sitio que desarrolla el módulo, bajar el módulo, y luego descomprimirlo en el lugar que corresponde (si encuentras documentación al respecto orientada a principiantes, me avisas).

El proyecto EasyEclipse ("Eclipse Fácil") viene a solucionar de momento esta problemática. En un sitio web sencillo y claro tenemos a nuestra disposición varios paquetes de distribuciones prearmadas con todas las herramientas necesarias para nuestro contexto de desarrollo y para el sistema operativo de turno (GNU/Linux, Windows y Mac!).

Puedes bajar la versión para:
  • Expert Java
  • Desktop Java
  • Server Java
  • Mobile Java
  • Plugin Warrior
  • LAMP
  • PHP
  • Ruby On Rails
  • Python

Las malas noticias

Cada distribución promedia los 100 megas, porque el 90% es la "aplicación base", y el resto son los módulos seleccionados, probados, e instalados. Si vamos a trabajar en varios contextos -como en mi caso-, no es muy conveniente bajar cada una de las distribuciones pues sería muy "redundante". Aquí no se aplica la idea de EasyEclipse, lo correcto sería disponer de una versión base y luego instalar los módulos que uno necesita.

Pero como explicamos, esto lleva un poco de tiempo y puede llegar a ser complejo, además, por esa razón es que existe EasyEclipse ;-).

En resumen

Estimo con el correr del tiempo este tema será tenido en cuenta por el proyecto Eclipse y subsanarán esta dificultad, así evitarán perder muchos nuevos usuarios que tan solo quieren bajar la herramienta, preocuparse de sus problemas reales sin tener que lidiar con eternas configuraciones (mmm, me suena a tema muy repetido con un sistema operativo libre muy popular ;-)).

Por esta razón asumo que este proyecto tiene los días contados, pero por el momento, nos ofrece una buena solución para un problema puntual.

Notas finales:
  • Si no has usado este IDE para programar Orientado a Objetos en PHP5, no sabes lo que te pierdes ;-)
  • Como he comentado anteriormente, estuve probando Netbeans con el módulo para programación en celulares; lo que me quedaría probar es la distribución EasyEclipse Mobile Java, para luego comparar los distintos IDEs.

Proverbio: las grandes obras...

"Las grandes obras las sueñan los genios locos. Las ejecutan los luchadores natos. Las disfrutan los felices cuerdos. Las critican los inútiles crónicos"

¿La "Era de la Crisis de los Proyectos" en América Latina?

Uruguay es un un país contradictorio (sobra documentación al respecto). Por ejemplo, se crean proyectos gubernamentales (muy loables, por cierto) para facilitar la búsqueda de trabajo, cuando lo que realmente falta es "oferta de trabajo". Por consiguiente, ¿que vamos a buscar, entonces?.

Donde una asociación que nuclea empresas del rubro informático hace campañas no muy honestas (no es cierto que hay "desempleo cero", existen a su vez muchos empleos mal remunerados y se trabaja en pésimas condiciones) para reclutar "nuevos informáticos", bajo el pretexto -usado actualmente por EEUU- de que escasean, cuando en realidad lo que buscan es seguir contratando "estudiantes" o "juniors" porque salen "muy baratos" (únicamente en sueldos) y los "Seniors" con experiencia son descartados olímpicamente. Los "sobrecalificados" debemos hacer malabares para conseguir sueldos que correspondan -aunque sea- con la inversión (en tiempo y dinero) que realizamos para estar donde estamos.

Ahora no solo hay "cota" para la edad, el sexo, el estado civil, el título o el sueldo... también lo hay para la cantidad de conocimiento y experiencia.

En un país donde se restaura un viejo sistema como el "Consejo de Salarios", que al ser esas las reglas que nos imponen, no queda otra que participar y jugar el mejor papel posible (aunque no nos guste). Este sistema habilitaría a fijar sueldos y condiciones mínimas de trabajo, pero que por falta de interés y organización los informáticos han estado excluidos de la negociación - y donde aparentemente- a nadie le importa que así suceda.

Si buscas por mucho tiempo trabajo en Uruguay, es muy normal llegar a la conclusión de que "en este mercado no encuentro un empleo adecuado a mi nivel de conocimientos", por lo cual nos vemos "obligados" a:
  • Aceptar los magros sueldos que nos ofrecen, sin opción a negociación.
  • Ofrecer servicios como micro-empresa, con un Estado que no te favorece si querés trabajar (muchos impuestos, muchos trámites burocráticos, pésimos servicios, etc).
  • Migrar de país, buscando mejores oportunidades.
  • etc.
Y no dudo que seamos muchos los que estamos en esta situación: vivimos en un momento de la región donde se sigue primando el ahorro monetario en recursos humanos por sobre la calidad y experiencia de los mismos (estrategia completamente opuesta a la usada por países desarrollados), repercutiendo indefectiblemente en el resultado de los proyectos.

Por esta razón creo que estamos viviendo nuestra "Era de la Crisis de los Proyectos", repitiendo fracasos que fueron oportunamente estudiados y documentados en frondosos libros de Gestión de Proyectos y de Ingeniería de Software. ¿Seremos tan necios para leerlos y seguir pensando luego que "esto no es aplicable en nuestro contexto"?.

La gran mayoría de los proyectos superan los tiempos estimados, exceden los presupuestos, y fundamentalmente, no cumplen con las expectativas de sus clientes. Los ejemplos que tengo más cercanos que puedo usar como casos de estudio son la mayoría uruguayos, donde el magro resultado de los proyectos regionales de las empresas locales generan muy mala publicidad a un país que hasta su propio gobierno a querido vender con la imagen de "País Tecnológico". Es tan así, que están logrando que se asocie a los "productos/servicios uruguayos" como "productos/servicios de mala/baja calidad", como sucedió en su momento con los productos chinos (situación que han logrado revertir con el correr del tiempo).

Concentrándose en las empresas informáticas, y en particular, en la forma de reclutar sus recursos humanos, siempre sugiero como respuesta un artículo de "Joel On Software", que me parece muy explícito:

"Así, ¿porqué no hay espacio en la industria del software para un proveedor de bajo costo, alguien que use los programadores más baratos disponibles? (Recuérdenme de preguntarle a Quark como le fue con su plan "despidamos a todos y contratemos reemplazos de bajo costo").

Esencialmente, el diseño añade valor más rápido de lo que agrega costo.

O, dicho de manera simple, si tratas de economizar en programadores, tu software será mediocre, y ni siquiera habrás economizado tanto dinero."


Artículo "Alcanzando las notas altas".

Hoy leo en el diario El País la siguiente frase:

"La fuga de cerebros ha crecido en las últimas décadas y ha hecho que América Latina pierda importancia en el mercado de talentos"

El Secretario General Iberoamericano, Enrique Iglesias, hablando en la cumbre sobre Migración (que también es uruguayo y trabajó muchos años como presidente del BID).

Hace pocas semanas he vivido varias situaciones que sirven de claro ejemplo (que si me pongo a recordar, se repiten constantemente en el correr del año).

En los próximos días iré documentando los casos, y demostrando con hechos mis -para algunos- temerarias afirmaciones.

Hacking: como cargar programas Java a tu celular (en mi caso, Motorola V3 Razr)

Es impresionante como con un "gadget" nuevo y de la mano de la curiosidad y del amor por el conocimiento (la definición que tenía en la escuela de la palabra "filosofía" ;-)), uno descubre que existen nuevas subculturas y comunidades, como en este caso, alrededor del hacking de celulares.

ATENCION: en un primer momento voy a hacer pruebas desde el entorno Windows que es donde he conseguido más información al respecto y donde el software específico para este modelo de celular, el Motorola V3 Razr, es casi inexistente hasta el momento para GNU/Linux (le duela a quién le duela). Prometo de todas formas hacer un artículo de lo que pueda lograr desde una plataforma libre.

Conseguí prestado un "kit genérico" con cable y software para poder tener acceso a la memoria del celular (como ya había comentado, el original era caro en proporción al costo del celular) y no trae el software suficiente, solo permite bajar las fotos y videos a tu pc, y subir o borrar ringtones. Pero la parte que más me interesaba no estaba disponible: acceder a la zona donde se aloja Java para poder agregar o quitar programas y empezar con mis pruebas de programación con J2ME.

En un momento de frustración pensé que no me iba a quedar otra opción que comprar el cable original de Motorola, que al incluir 100 megas de software, alguno de ellos debería permitir acceder a tan preciada sección del celular.

Averiguando, encontré muchas utilidades, aunque no todas funcionaron. Estas son las que funcionaron y además me fueron más útiles:
  • mexplorer - nos permite acceder a todo el dispositivo como si fuera un disco más, permitiéndonos hacer trabajos de cirugía a corazón abierto (cuidado, he visto muchas personas solicitando ayuda en foros porque su celular dejó de funcionar). Según el sitio oficial (que aparece en el "Acerca de") este software es freeware (que no es lo mismo que "free software").

  • motomidman - fue otra de las utilidades que estaba esperando. Aunque en apariencia el mexplorer parece que fuera suficiente para hacer cualquier cosa (como cargar programas Java), estaríamos equivocados. Esta utilidad, motomidman, nos permite trabajar en
  • exclusividad con la sección de Java, mostrando lo instalado, borrarlo, o decirle donde están nuestras aplicaciones y a partir del archivo .jad (donde tiene todos los detalles para la instalación) procederá a instalar el .jar (el empaquetado de los "binarios" de nuestro programa). Tiene varios sitios oficiales y la mayoría no están disponibles ("bandwidth limit exceeded"), pero el que respondió estaba en ruso.
Nota: no he puesto la dirección web oficial de muchos otros programas porque aunque muchos sitios los enlazan y permiten bajarlos, no encontré documentación clara sobre sus licencias. Aparentemente muchos son programas libres de origen ruso y su documentación es ilegible para mi ;-).

Saco la conclusión que estos son los programas más populares que existen para hackear celulares, pero no me sería muy agradable usar programas de "copia no autorizada". Cuando logre recabar más información al respecto la comentaré aquí.

¿Cuanto tiempo me llevó todo esto?

Y estuve el sábado desde las 12am hasta las 3am investigando, hasta que logré hacerlo: encontrar las utilidades justas, reconocer mi celular, y cargar un programa Java (en principio, juegos). No me ejecutó cualquier programa; hay que tener en cuenta qué fabricante y para qué modelo se desarrolló el programa en cuestión, pues aparentemente (estoy recién armando mi base de conocimientos, por lo tanto no tengo mucha experiencia aún) amén de tener un lenguaje multiplataforma, hay implementaciones que hacen uso de características específicas que son propias del fabricante, lo cual hace que no funcione en cualquier celular.

Irónico teniendo en cuenta que java, en particular J2ME, fue hecho para correr en cualquier dispositivo.

El detalle más importante que aprendí luego de pasar hasta altas horas de la noche, y de leer varios foros, es que el mayor problema que tuve (y que me hizo perder mucho tiempo) fue no darme cuenta que necesitaba además un "driver" para tu celular y modelo específico, o de lo contrario estos programas no lo detectan. Es importante este detalle pues ya estaba instalado el software genérico, y al conectar el celular a través de un cable usb este era reconocido por el sistema operativo, pero no así por las utilidades que encontré.

En próximos capítulos iré contando como se hace un "hola mundo" (¡sí! ¡también lo logré! ;-)) y que herramientas contamos para facilitarnos la tarea de desarrollo (fue más sencillo de lo que me imaginaba; ¡solo 5 minutos!).

Conclusiones finales

La verdad que estoy sorprendido de la comunidad de usuarios que existe para "tunear" estos aparatos. He visto, por ejemplo, tutoriales para borrar todo el software y archivos que generalmente no usamos para liberar la memoria hasta casi 10 Megas (cuando de fábrica tenemos disponible ¡solo 5 megas!).

Increíble; este es el futuro (si los fabricantes lo entienden así y no cierran sus ojos) los usuarios quieren comprar dispositivos y tener la libertad para manipularlos a su antojo. Ojalá pudiera encontrar en Uruguay un celular que incluyera un sistema operativo GNU/Linux y además con soporte para Java (o si se puede pedir, con Mono, Python, o PHP ;-).

PD: ahora tengo una línea más en mi currículum que dice "programación de aplicaciones para celulares" para que un posible empleador tercermundista me diga que estoy "sobrecalificado" para el puesto por "saber demasiado" (¿cuando esto se convirtió en una desventaja?). Por lo tanto, creo que seguiré cultivando la línea de un "consultor independiente en tecnologías emergentes" ;-)

Frase del día: información, comunidad y Linux

"Tener información es el primer paso a la sabiduría, pero compartirla es el primero para formar una comunidad."

Extraido del aviso de IBM sobre GNU/Linux.

Agendar para que los servidores GNU/Linux se apaguen a una hora específica

Como se están haciendo obras en las calles cercanas al Edificio Libertad que afectan el suministro eléctrico de varias manzanas, debimos "agendar" para que los servidores se apaguen solos y así no obligar a una persona a que deba hacer esta tarea.

En pleno siglo XXI sería lamentable que alguien tuviera que venir personalmente para apretar un botón. También existen alternativas más modernas, como conectarse remotamente para correr un "halt" en cada uno de los servidores, pero si hay que hacerlo muy temprano (6am) y en días inconvenientes (sábado), estaríamos nuevamente dependiendo de una persona para hacerlo (que puede olvidarse, dormirse, etc).

La mejor forma es hacerlo con un "comando planificado", aunque se puede efectuar perfectamente desde la línea de comandos (comando "at", ver "man at"), voy a aprovechar la oportunidad para publicitar Webmin, que facilita enormemente la administración de cualquier servidor GNU/Linux.

Pragmático versus Dogmático

Con los años he hecho las mismas cosas que todos los "linuxeros": pasarme la vida configurando "cosas" que en otros sistemas operativos se hacen de forma "automática".

Ok, estoy de acuerdo que siempre es mejor contar con la libertad de poder hacerlo a nuestra manera y no depender de un proveedor de software, pero con los años "mi fanatismo a madurado" y estoy viejo para seguir perdiendo tiempo en tareas "manuales" y"rutinarias". Prefiero perder el tiempo con tareas que sí lo valen, es decir, que ofrecen valor agregado y se convierten en un "diferenciador".

Webmin, la aplicación web de administración GNU/Linux

Luego de muchos años de buscar y probar, la aplicación que terminé adoptando para mi vida diaria de administrador es Webmin. Simple, sencilla, y fundamental, funciona -sin importar que luego modifiquemos los archivos a mano- en la mayoría de las distribuciones, en la mayoría de las versiones.


Ingreso al sistema a través de una interfaz web que responde por el puerto 10000. También se puede configurar para que acepte conexiones encriptadas (https) y así asegurar la transmisión de claves a través de Internet (no te olvides que ingresar remotamente a través de http es gritar la clave en público).


Menú de acceso al sistema: debemos seleccionar la opción "Sistema" del menú superior, y la opción para planificar comandos del servidor es la que aparece en la esquina inferior derecha de la captura de pantalla : "Comandos Planificados".

Los datos que se necesitan son:
  • Usuario que va a ejecutar el comando: en este caso como es un comando del sistema será el propio administrador (root).
  • Fecha y hora de ejecución: lo que no hay que olvidar de controlar que la hora del servidor esté correcta.
  • El directorio donde se quiere hacer la ejecución: esto se debe a que la ejecución la inicia un proceso "cron" y este ejecutará el comando en su propio "contexto", y no necesariamente es el mismo que siempre usamos. Tal vez necesitemos decirle donde se encuentra el comando, o si nuestro comando se puede ejecutar desde cualquier lado, donde obtener los archivos que necesita para trabajar, etc.


Resultado de la finalización del ingreso del comando a planificar. Posteriormente a esta tarea, hay que revisar el log del sistema para verificar si todo ejecutó correctamente. Si hubiera fallado esta planificación, tal vez los servidores fueron abruptamente detenidos por el corte de corriente, por lo que habría que controlar, si hubieran, los daños.

Diferencia entre "at" y "cron"

En Unix o GNU/Linux es muy común usar el daemon "cron" para planificar ejecuciones de scripts de mantenimiento de servidores. Pero en este caso, lo más conveniente es usar una planificación "puntual" con el "at" (escondido detrás del a interfaz del webmin). Aunque el "cron" permite hacer las mismas planificaciones (1 día, 1 hora, que luego no se necesita repetir), quedaría esta línea obsoleta en el archivo de configuración de tareas. Con "at", planificas una vez, y luego de ejecutar el comando, desaparece de la configuración, haciéndolo ideal para casos puntuales com este.

¡Suerte!

Actualización inmediata (pocos segundos después): soy el colmo, publico el "post" y a los segundos tengo cosas para agregar ;-). Me estaba acordando un detalle: si tuvo que venir una persona hasta los servidores y presionar el botón, lo cual es inevitable hasta que no se invente alguna tecnología que lo permita (si existe, avisen).

La otra alternativa sería tener conectado a las ups y que estas avisaran cuando se quedan sin energía y hacer un "shutdown" y cuando recuperaran la carga, hacer un "init". Pero en nuestras actuales condiciones de hardware y software no es viable hacerlo.

Alguna vez sentí la frase: "La perfección es enemigo de lo bueno" ;-)

Frase: "Wifi"


"Es como tener un pájaro y no dejarlo volar"
M.R., compañera de trabajo (opinando sobre tener un notebook con soporte wifi , pero sin configurar).

Frase del día: Sadam Husein

"¿Sabés en donde van a poner a Sadam Husein luego del juicio? en /BIN porque es un ejecutable!"

M.C., 31 años, compañero de trabajo.

Dime que celular tienes y ... ¡por fin tengo un Motorola RAZR V3! ;-)

Vivir en el subdesarrollo es muy duro, tanto, que acceder a un celular de gama alta es muy costoso (unos 360 dólares), transformando lo que debería ser un aparato que suple una necesidad básica ("estar comunicado") en un aparato de lujo para pocos, con servicios mediocres y prestaciones reducidas (¿dije alguna vez que vivía en Uruguay, no? ;-)).

Lamentablemente el equipo que me compré, el majestuoso Motorola RAZR V3 (color negro), no incluye accesorios, y estuve averiguando y solo el cable original Motorola con software para sincronización sale unos 99 dólares (casi la tercera parte del celular).

Reacción natural: "busquemos alternativas no originales" ;-)

Estuve probando con un cable "no original" (tanto el original como este sirven para más de un modelo) y detectar lo detecta, pero me falta el software para Windows que permita reconocerlo. También estuve investigando en GNU/Linux y existen sitios que están trabajando en lo mismo, lo cual era de esperar (por suerte siempre hay un fanático con conocimientos que quiere hacerlo andar en su propio entorno). Lamentablemente hasta este momento no ha funcionado, pero seguiré probando.

La ilusión de que era conectar y ver como una "unidad de disco" cualquiera, y poder poner y sacar archivos como hago con un pendrive o con un reproductor mp3, se va desvaneciendo poco a poco.

Por ahora voy disfrutando de sacar fotos y filmar videos, hasta que la memoria de 5 Megas se agote, lo cual me va a obligar a optar por alguna solución "tercermundista".

Estoy también evaluando costos/beneficios de optar por una tarifa plana de Internet, pero aún no me convence. Parte de la idea de adquirir este celular es poder investigar sobre la programación para celulares (particularmente con Java) y comunicación con servicios web, lo que me obliga a disponer de una conexión. Como tecno-dependiente del teclado, la misma generación del "índice dependiente" (la generación nueva, gracias a los celulares, evolucionó hacia el "pulgar dependiente") no me es muy agradable tratar de escribir mensajes breves con tan minúscula interfaz, lo que hace que se deforme la escritura hacia la extrema reducción y abreviación de palabras (fácilmente comprobable cuando uno recibe un correo de un adolescente, o de alguien que usa frecuentemente este tipo de servicios).

Seguiré contando lo que vaya aprendiendo del tema.

¡Hellomoto!

Actualización (4/7/2006):

Consejos y sugerencias para empezar un blog

Según he leído de grandes bloggers, lo que se necesita son dos cosas "tener algo para decir, y tener ganas de decirlo" ;-)

Lo que yo he aprendido con el tiempo, y leyendo a otros bloggers (y creo que se puede hacer un paralelismo con la escritura de los libros, o cuando aprendes como hacen otros una presentación ante un público, etc) que la mejor forma de hacerlo es la "natural". Sentarse a escribir contando algo, de forma natural, y luego lo retocas para que quede más presentable. Pero si cada "post" o "artículo" es un "manuscrito" (por lo complejo), siempre te llevará mucho tiempo escribir algo, se volverá una carga pesada, un compromiso. Al dejar de disfrutarlo, terminarás dejando el blog.

¿Quieres decir algo, tienes ganas? Solo escribe.

El mejor contexto es cuando adquirimos la suficiente práctica como para poder sentarnos a escribir y que el resultado sea un cuasi-artículo que podría, con pequeñas modificaciones, estar impreso en cualquier revista. Todo, sin mayor esfuerzo que tener la motivación de contar algo.

Las ventajas de tener un buen blog pueden ser:
  • Efecto "Currículum Vitae" (demuestras tus conocimientos)
  • Aprendes a escribir bien y fluido (lo que te ayuda a escribir mejores documentos, artículos, libros, etc)
  • "Marca Propia" (te vendes a ti mismo)
  • Contactos, feedback, amistad, intercambio de conocimientos, etc.
  • Repositorio de conocimientos (vuelves a consultar lo ya escrito, registras tus experiencias, etc)
  • etc
No me canso de repetir: ya me ha sucedido, no pocas veces, que estando en una entrevista de trabajo para una empresa, el encargado de la misma me comenta que, o ya habían leido de antemano el blog, o que estando referenciado en mi currículum, asignaron personal competente en las áreas sobre las que escribo para que evaluaran mis conocimientos (lo cual concluyeron que eran muy buenos ;-)) . Esto permite generar un efecto mayor y más contundente que una simple y estática "hoja de vida".

Algunas lecturas recomendadas:

"Cómo escribir en la web"

Usabilidad

Ejemplos de buenos bloggers:
  • Bootlog - buenos contenidos adornados con buen gusto por el diseño "estético"
  • Kirai - vivir en Japón a través de los ojos de un joven ingeniero español
  • Enrique Dans - profesor de Sistemas de Información en una importante universidad en España. Reconocido con un premio por ser el "español más influyente en la red"
  • rgil - Diario de un Director de Sistemas
  • Microsiervos - Información abundante sobre los más variados temas que le pueden interesar a un Geek (nadie sabe como hacen para tener tan alta cantidad y calidad de contenidos y a su vez, trabajar para vivir).
Y por último, un blog no es sinónimo de un "diario personal público de un voyeurista", puedes (y debes) concentrarte en un tema que domines, o directamente que te sientas cómodo y te interese hablar.

Y escribe "sencillo", no compliques de forma innecesaria los textos, tus lectores quieren llegar al contenido y no perderse en la "forma".


Actualización (4/7/2006):

Entradas populares