23.2.2010 | Instalación de Ubuntu en Lenovo s10e
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.
11.2.2010 | Parámetros de compilación de GWT
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
