Tecnología

Desde que Amazon ofreciera la instancia micro por un año de forma gratuita, llevo tiempo queriendo montarme una, y ahora que estamos terminando el proyecto tenemos la escusa perfecta.
Así que me he puesto manos a la obra, tutoriales un montón. Solo aportare los problemas que he tenido y sus soluciones. Aquí y aquí tenéis unos buenos tutoriales. Yo comenzé siguiendo los pasos que te da Amazon, pero hay algunas diferencias que hacían que no me funcionara.
Lo primero es aclarar algunos términos y condiciones a tener en cuenta:
- AMI (Amazon Machine Image): Es decir, las imágenes de los sistemas operativos. Hay muchas, unas son las que proporciona Amazon pero parece que son un poco mas complicadas de administrar, y otras son las de la comunidad. Yo he utilizado ubuntu y me he guiado por esta lista actualizada de imágenes de ubuntu. Importante, elegir la zona correcta, por temas de latencia.
- EBS (Elastic Block Store): Es un volumen, como un disco duro, que no se pierde al apagar o terminar la instancia. Por que realiza snapshot en S3 (Simple Storage Service). Con este volumen podeis asociarlo a cualquier instancia, si cambiais la instancia podeis mantener el EBS, eso si, asociado a una sola instancia a la vez.
- Estados, reboot, stop y start, que no requieren de explicación, salvo que si paráis una instancia se perderán los datos almacenados, salvo que se almacenen en EBS. Y Terminate, que se para la instancia y posteriormente se elimina, tarda un tiempo pero desaparecerá.
Una vez creada la instancia y almacenado en un buen sitio la key part, ojo que no se puede volver a descargar, así que guardarla muy bien, si no nos toca crear una nueva y crear una nueva instancia, porque tampoco se puede cambiar la key de una instancia creada. Una vez la tengais en el ordenador hay que darle permisos al archivo, amazon nos dice de hacer chmod 400 pero a mi me ha funcionado chmod 600, que lo indican en la guia de ubuntu. Si queréis usar putty deberéis convertir las claves de pem a ppk, lo cual se puede hacer con puttygen.
Modificamos la seguridad en Security Groups para añadir el puerto ssh (22). Y ya solo nos queda conectarnos al servidor para seguir con lo que queramos hacer, solo un ultimo apunte, Amazon nos dice que nos conectemos por root, pero las imagenes de ubuntu utilizan el usuario ubuntu y sin contraseña.
Ya os ire contado la experiencia con estos servidores en la nube, que resultado dan y si realmente es algo interesante, por el momento lo parece, montar un servidor dedicado en pocas horas y aun coste que parece bajo, ya te lo dire cuando se termine la promoción.
¿Alguno a utilizado estos servicios en alguna aplicación? seria interesante saber con que condiciones de carga y programación funcionan estos servidores.
NOTA: He estado probando instancias ubuntu lucid de 32 bits, y hay un error conocido al instalar java. Las soluciones son instalarlo con la instancia que no sea micro y luego cambiar a micro. O si se puede reinstalar una instancia de 64bis.
Ahora que tengo el samsung galaxy S, hacer cosas con el móvil es mucho más fácil. Una buena pantalla, un buen micro y memoria abundante hacen el trabajo mucho más fácil.
Pero sin duda es el sistema android el gran estrella, hago prácticamente de todo. Gestiono los blog de forma rápida y cómoda, todos desde el móvil, no son muchos pero su unos cuantos. En estos días con tantos spams si lo dejas un poco puede ser un infierno.
Cómo último apunte, estoy escribiendo con el sistema de teclado swype y tengo que decir que es impresionante, rápido cómodo, preciso. Así da gusto usar el móvil.
Llevo ya casi un año utilizando Jira y puedo decir que es un magnifico gestor de proyectos, donde de forma fácil puedes gestionar y programar todas las tareas de tu proyecto. Incluso tiene un plugin muy útil sobre gestión de los proyectos con metodología SCRUM.
En cuanto a Mylyn es un plugin de eclipse para te permite integrar eclipse con gestores de tareas como Jira y Bugzilla. Y gestionar todas las tareas que se integran en el código.
Llevaba tiempo queriendo probarlo y hoy ha sido el momento.Para empezar explicare como instalarlo, de forma escueta, ya que hay innumerables manuales por internet.
- Lo primero es instalarte el plugin de Mylyn con sus dependencias.
- Después desde la vista Task Repositories, le damos a nueva conexión. Puede que no te aparezca jira en la lista, pero la puedes añadir y el solito se instala todo.
- Pones tus datos del jira y ya esta totalmente integrado.
- Solo una cosa que puede darte problemas en la conexión con jira, es que no tengas activada las llamadas RPC. Para ello te vas a tu Jira y en la Administration-> General Configuration Editas la configuración y activas Accept remote API calls, y entonces si que te tiene que funcionar.
Entre las muchas funciones que tiene, pero quizás la mas interesante sean los contextos. Cuando activas una incidencia y comienzas a abrir archivos, el los va asociando a esa incidencia. Así si dejas de trabajar con esa incidencia, de forma automática te cierra todos los archivos abiertos y asociados. De la misma manera cuando vuelves a trabajar con esa incidencia te vuelve a abrir los archivos que tenias abiertos, siendo muy rápido el cambio entre incidencias.
Y otra cosa también importante, te permite reportar el tiempo que has dedicado a cada tarea de forma automática, así cuando dejas de trabajar con una incidencia te reporta el tiempo en el jira. Ya no tienes que estar pensando cuanto tiempo le has dedicado.
Muy interesante esta combinación. Y altamente recomendable, sobre todo desde que puedes tener un jira por 10 dolares al año. Ideal para proyectos pequeños.
Aquí podéis ver una revisión de Mylyn con mas detalle.
Esto es un apunte rápido. Tengo un Lenovo s10e que venia con Suse, pero como estoy muy contento con Ubuntu he decidido instalarlo. Me he bajado la versión que hay para netbooks, Ubuntu Netbook Remix, que viene preparado con una interfaz mas amigable para estos pequeños equipos.
La instalación no conlleva mucha dificultad, te lo descargas y lo pones en una memoria USB o en un CD, yo he conectado una unidad lectora a una caja externa de disco duro y lo he conectado a USB.
Hasta aquí nada difícil, el único problema que he tenido ha sido con la wifi. Los drivers son propietarios y no permiten su instalación directa en la instalación inicial. Pero no pasa nada, lo que tenemos que hacer es actualizar el sistema por LAN, y despues instalar el paquete bcmwl-kernel-source, que son los drivers de la tarjeta wifi Broadcom, reiniciamos y ya tenemos wifi.
En esta pagina de Ridzwan están explicados todos los pasos.
Estos días ando un poco liado con el desarrollo de una aplicación en GWT. Que con esta ultima versión, la 2.0, se puede decir que han dado un paso de gigante.
En esta ocasión voy a hablar de su compilador para la puesta en producción y los parámetros que tiene.
Antes de nada explicar un poco como funciona, GWT coge y compila a javascript nuestro codigo creando diferentes versiones en archivos diferentes. Si nos fijamos en lo que genera veremos que hay una serie de archivos con extensiones html, rpc, png. Los png son los bundle, donde mete todas las imágenes de la aplicación en una sola, descargándola de golpe y luego muestra la parte que interese. Los archivos rpc son los encargados de las llamadas a los servicios y los html son donde esta toda la chicha.
Veremos que son del estilos LKH45KH6KLJH4356H3456HLKH45.cache.html, cada archivo represente a un idioma/navegador. Así que si tenemos 2 idiomas y 5 navegadores, tendremos 10 archivos o permutaciones como ellos los llaman.
Cada compilación lleva su tiempo, y en las tareas ant que utilicemos podremos introducir algunos parámetros que agilicen esta compilación.
Si tenemos varios módulos, es interesante que los compilemos en una misma tarea, indicando a cada llamada java que sea un fork, para que se compile en paralelo.
Y hacemos uso de unos de los parámetros mas interesantes, el localworkers, esto representa a un hilo que compila una permutación, así que si ponemos mas, compilaría paralelamente las permutaciones, aquí que cada uno hagas sus pruebas. Yo tengo 4 núcleos y poniéndolo en 4 se me reduce a la mitad el tiempo necesario para compilar.
Os dejo una muestra en ant.
<target name="gwtc" depends="javac" description="GWT compile to JavaScript">
<!-- Compilacion modulo vo -->
<java failonerror="false" fork="true" classname="com.google.gwt.dev.Compiler">
<classpath>
<pathelement location="modules"/>
<path refid="project.class.path"/>
</classpath>
<!-- add jvmarg -Xss16M or similar if you see a StackOverflowError -->
<jvmarg value="-Xmx256M"/>
<!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
<arg value="com.orion.apps.cuentas.ValueObject"/>
<arg line="-war ${build.dir}"/>
<arg line="-style DETAILED"/>
<arg line="-localWorkers 4"/>
</java>
<!-- Compilacion modulo cuentas-->
<java failonerror="false" fork="true" classname="com.google.gwt.dev.Compiler">
<classpath>
<pathelement location="view/main/java"/>
<pathelement location="view/main/resources"/>
<pathelement location="rpc/main/java"/>
<pathelement location="modules"/>
<path refid="project.class.path"/>
</classpath>
<!-- add jvmarg -Xss16M or similar if you see a StackOverflowError -->
<jvmarg value="-Xmx256M"/>
<!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
<arg line="-war ${build.dir}"/>
<arg line="-style DETAILED"/>
<arg line="-localWorkers 4"/>
<arg value="com.orion.apps.cuentas.web.CuentasWeb"/>
</java>
</target>
PD: Si se quiere ir mas rápido, se puede eliminar idiomas del archivo de configuración gwt.xml
