junio 2008


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$

Anuncios

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í…