Recientemente se ha publicado la pre-release de Flash 10 para 64bits. Y lo ha hecho primero para Linux!!!.

Esto es una gran noticia ya que parece indicar un claro cambio de tendencia en uno de los principales proveedores de software. El hecho es que hace unos años esto simplemente no era posible. Vamos a ver cuantos toman nota y siguen sus pasos.

Por cierto lo he probado y me da la sensación de que va mucho más fluido. Lo he notado al ver una película a pantalla completa. Ya no apreció saltos ni nada por el estilo (antes sí).

Anuncios

Hace ya algún tiempo que algunos usuarios hemos tomado conciencia sobre un fenómeno inquietante. Los ordenadores cada vez son más veloces, disponen de más memoria RAM, de discos duros de mayor tamaño y de tarjetas gráficas capaces de manejar más y más millones de triángulos texturizados. Es natural que la industria se esfuerce en progresar y ofrecer cada vez mejores productos a sus consumidores. Sin embargo hay muchos usuarios que no llegarán nunca a utilizar ni siquiera el 10% de los recursos con que cuenta su máquina y está adquiriendo un hardware que no necesita; y que además consume mucha más energía (por ejemplo las tarjetas gráficas de última generación) que el hardware que sí necesita.

(más…)

Cuando se utilizan sistemas de virtualización es común utilizar dispositivos loop para montar los discos duros de las máquinas virtuales (dominios en el argot XEN). Los kernels de Linux tienen un límite máximo para este tipo de dispositivos; y aunque, es configurable, el límite por defecto se sitúa en los 16 lo cual no es mucho. Es sencillo aumentar este numero mediante la pertienente configuración del modulo.


options loop max_loop=128

Sin embargo existe un número máximo de 256 para el número de loops en el sistema aunque utilices está opción. Teniendo en cuenta que empíricamente parece que cada dominio (disco, swap, etc.) consume aproximadamente 4 loops esto implica que la cantidad máxima de dominios que pueden estar ejecutándose en el sistema es de 64; lo cual no es poco; pero puede ser un problema si quieres plantear un sistema con determinadas un grano muy fino. También es cierto que, dado que no es posible consumir más memoria de la que tiene el sistema entre todos los dominios, este límite parece razonable, pero en mi opinión es alcanzable.

(más…)

Estos días he podido hacer algún experimento más con el sistema de virtualización XEN. En alguna entrada anterior ya se habló en este blog sobre distintas herramientas de virtualización libres. Desde hace bastante tiempo vengo utilizando VirtualBox para utilizar Windows o versiones de 32 bits de Linux; sin embargo hace unos pocos días he vuelto a experimentar con Xen. Entre las ventajas que tiene utilizar Xen en lugar de un sistema de virtualización como VirtualBox destacan el rendimiento, lo sencillo que es manejar a mano los dominios, la posibilidad de permitir que una máquina virtualizada tenga acceso a determinados recursos software. Entre las desventajas habría que destacar que es un poco más complicado comenzar a utilizar y que no existen opciones directas para ejecutar sistemas operativos para otras arquitecturas.

(más…)

Aquí va una lectura muy recomendable para que los programadores de python se la lean una una vez en la vida. Python como a guido le gusta que se vea

Como no me voy a acordar de nada, hago un resumen para las cosas que se me van a olvidar.

  • indentación: 4 espacios. No tabs.
  • líneas a 80 caracteres, rompiendo después de los operadores
  • separar funciones y clases por dos líneas vacías
  • separar métodos y/o funciones por una línea vacía
  • grupos de funciones por dos o más líneas
  • enconding: utf-8 (será preferido para python >=3)
  • los imports a tu propio código, que sean absolutos
  • un import por linea salvo los from xxx import yyy,zzz
  • paréntesis y corchetes siempre pegados a ambos lados de las cosas
  • dospuntos, comas y puntoycomas pegados a la izquierda y con espacio a la derecha
  • operadores con 1 espacio a ambos lados
  • el igual de los parámetros pasados por nombre, pegado a los dos lados
  • escribe docstrings para toda cosa que sea pública, tanto el módulo como las clases como los métodos públicos. Incluye también los difíciles (docstrings en pep 257)
  • Los comentarios mejor que sean de una línea, comiencen con mayúscula y acaben sin punto, solo cuando sean estrictamente necesarios
  • módulos y packages: minusc y cortitos
  • clases y excepciones: LasPublicas y _LasPrivadas
  • variables globales y funciones: separadas_por_subrayados y los privados con _underscore_delante
  • si un nombre colisiona con algo de python y no lo puedes evitar, añade subrayado al final
  • crea una clase para cada excepción
  • aprovecha el else del try-except para cuando las cosas van bien

Y el siguiente fisco de código es interesante si usas svn/cvs, para ponerlo después de la docstring del modulo:

__version__ = "$Revision: 63990 $"
# $Source$

Estos días he leido en el blog de arc y en el blog de Richard Dale sobre la posibilidad de que se organice en Gran Canaria una de las  reuniones de desarrolladores más importante sobre escritorios libres. Esto se une a esta otra entrada en el blog de Agustín sobre lo mismo. Conseguir atraer hacia Canarias este tipo de eventos sería un gran paso en la diversificación de la economía de la región desde mi punto de vista; por no mencionar que las Islas Canarias son el sitio ideal para organizar reuniones internacionales puesto que gozamos de un clima privilegiado lo cual hace que seamos un destino turístico lo cual a su vez hace que contemos con una oferta hotelera amplia y multitud de aerolíneas de bajo coste que operan con las las islas.

Respecto a la diversificación de la economía de la región, debo decir que las especiales circunstancias de Canarias hacen que sea imposible muy complicado contar con un tejido industrial salvo que esa industria no se fundamente en la creación de mercancías físicas; por ese motivo me parece que nuestra unica mejor salida es crear un tejido empresarial en base de la generación de software. Una reunión como esta te situa en el mapa.

El hecho de que la GUADEC + aKademy 2009 se vaya a realizar en la isla de enfrente supondrá sin duda algún inconveniente; pero una reunión de este tipo, que debe ser considerada algo así como los Juegos Olímpicos de los escritorios libres, tan cerca de casa constituyen una oportunidad única para conocer ver a algunos de los mejores desarrolladores del planeta, y eso es un motivo suficientemente sólido como para cruzar el charquito que nos separa.

Espero que efectivamente consigan organizar este evento en Gran Canarias; y de ser así me gustaría poder colaborar en lo que fuera menester con el mismo.

Recientemente he podido probar el portátil LG E200, más específicamente el modelo A.CP21B. Una búsqueda rápida por Internet consultando la compatibilidad con Linux no devuelve demasiados resultados a día de hoy, por esto espero que a alguien le sea útil mi experiencia con este modelo.

Antes de nada comentar que, a priori, la instalación de Linux (Kubuntu 8.04) ya se antoja una tarea bastante ardua:

  • Tarjeta de video ATI Radeon Xpress 1250
  • Chipset ATI
  • Tarjeta wifi Atheros

Vamos, una verdadera joya de la compatibilidad con Linux.

Por tener todos los detalles del hardware que viene de fábrica con este modelo adjunto la salida de lspci:


00:00.0 Host bridge: ATI Technologies Inc Unknown device 7930
00:01.0 PCI bridge: ATI Technologies Inc Unknown device 7932
00:04.0 PCI bridge: ATI Technologies Inc Unknown device 7934
00:06.0 PCI bridge: ATI Technologies Inc Unknown device 7936
00:07.0 PCI bridge: ATI Technologies Inc Unknown device 7937
00:12.0 SATA controller: ATI Technologies Inc SB600 Non-Raid-5 SATA
00:13.0 USB Controller: ATI Technologies Inc SB600 USB (OHCI0)
00:13.1 USB Controller: ATI Technologies Inc SB600 USB (OHCI1)
00:13.2 USB Controller: ATI Technologies Inc SB600 USB (OHCI2)
00:13.3 USB Controller: ATI Technologies Inc SB600 USB (OHCI3)
00:13.4 USB Controller: ATI Technologies Inc SB600 USB (OHCI4)
00:13.5 USB Controller: ATI Technologies Inc SB600 USB Controller (EHCI)
00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 14)
00:14.1 IDE interface: ATI Technologies Inc SB600 IDE
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia
00:14.3 ISA bridge: ATI Technologies Inc SB600 PCI to LPC Bridge
00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge
01:05.0 VGA compatible controller: ATI Technologies Inc Radeon Xpress 1250
01:05.2 Audio device: ATI Technologies Inc RS600 audio device [Radeon Xpress 12xx Series]
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8039 PCI-E Fast Ethernet Controller (rev 15)
08:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)

Después de “recuperar” la instalación de Windows Vista con los CD’s que venían para este fin con el portátil, arranqué con una Kubuntu 8.04 (Hardy). Primera sorpresa, no arranca el entorno gráfico. Repito el proceso, esta vez escogiendo “Modo gráfico seguro” (se supone que fuerza a usar el módulo VESA). Obtengo el mismo resultado, ni siquiera es posible usar VESA con esta tarjeta de vídeo!!. Gracias a lo que se explica en este comentario logro arrancar las X. Básicamente el problema se resuelve usando el driver propietario, los pasos vienen a ser los siguientes:

sudo -s
apt-get update
apt-get install xorg-driver-fglrx
aticonfig --initialize --input=/etc/X11/xorg.conf
/etc/init.d/kdm restart

Por supuesto, como la wifi tampoco la ha detectado tendremos que usar un cable de red para poder descargar los paquetes.

De aquí en adelante la instalación prosigue sin incidentes. Lo siguiente será configurar correctamente la tarjeta inalámbrica.

El problema con la wifi parece ser que no existía soporte en el proyecto madwifi para el chipset que usa (AR5007) en el momento de generar los paquetes que vienen con Hardy. Los pasos para resolver este problema fueron:

wget http://people.freebsd.org/~sam/ath_hal-20080528.tgz
svn co http://svn.madwifi.org/madwifi/trunk madwifi-svn
cd madwifi-svn
mv hal hal.old
tar xvf ../ath_hal-20080528.tgz
mv ath_hal-20080528 hal
make
sudo make install BINDIR=/usr/local/bin MANDIR=/usr/local/share/man
reboot

Actualización: He encontrado otra guía más completa que esta que había escrito originalmente, la recomiendo.

Por ahora, lo único que no funciona correctamente son los atajos de teclado para variar el brillo de la pantalla. En cuanto tenga solución para esto lo escribiré por aquí…