Python: Reiniciem el router si no hi ha internet
Malgrat fa uns dies vaig canviar el meu vell Zyxel per un Cisco 837 a casa, la línia ADSL es continua penjant per motius desconneguts. Ja que quan les dades no circulen ni amunt ni aball les interficies ATM estan aixecades i tot sembla funcionar correctament. Així doncs, no m’ha tocat altre remei que fer-me un petit script amb Python a través del qual cada 5min comprovo si tornen els pings contra un dels servidors de OpenDNS. Si això no és així llavors es connecta contra el router Cisco i el reinicia. Ja que he fet proves baixant i pujant la interficie ATM i no hi ha manera. No se m’ha acudit cap millor idea que llençar un reload.
L’script guarda un fitxer de log a /var/log/online.log i usa el modul pexpect de Python. La resta de coses que usa són moduls que van instal·lats per defecte.
Si a algú li pot fer falta l’script el podeu descarregar: router.py.
gubb ja té suport per RSS, Atom i iCal
Fa un parell de mesos vaig parlar-vos de gubb és una web 2.0 que permet crear-nos llistes de la compra, de pel·lícules que volem veure, etc. Com tot el material a lo web 2.0 la seva principal virtut és la interactivitat i la possibilitat de compartir la informació amb altres usuaris. Doncs bé, quan vaig parlar-vos d’aquesta web ja vaig dir que era molt útil, avui mateix he anat a fer la compra i he usat la llista de la compra enviada per email a la Blackberry per saber que havia de comprar. Però com sempre li trobava a faltar algo, concretament la capacitat d’exportar les llistes via RSS o Atom. Doncs no només ja esta solucionat això sinó que si els ítems d’una llista estan associats a una data podem exportar fins hi tot els elements de llista en format iCal.
Realment ara mateix ja es mereix una molt bona nota aquesta web sota el meu punt de vista. A més, té funcions molt útils com els elements arxivats. Que permeten fer llistes de la compra en un moment en base als elements que has usat en el passat. Realment s’ha de felicitar a l’equip d’aquest servei perquè han fet un producte molt útil, simple i complert.
Montar un HotSpot Gateway amb Mikrotik i Linksys WRT54GL
La setmana passada vaig posar en producció un hotel amb un HotSpot controlat per un Mikrotik RouterBoard 150 i amb diversos AP Linksys WRT54GL funcionant com a bridge. Bàsicament la idea és la d’aquest gràfic:
Doncs bé si voleu montar-ho al wiki ahir vaig fer aquest document per mirar d’ajudar als interessats: DIY HotSpot Wifi. Per cert, l’he fet en anglès perquè m’ho ha demanat gent que no enten el català. Si algú s’anima a fer la traducció que avisi que li dono accés al wiki i en un moment ho té arreglat. De totes formes ja veureu que he escrit ben poc i és molt entendor tot el que posa ja que el realment important és la configuració del Mikrotik.
Per altre banda, qualsevol dubte o consulta ja ho sabeu, podeu penjar comentari en aquest mateix article i faré el possible per ajudar-vos.
PHPClasses: VirtualCron, GoogleMaps i InsertFTP
A través de PHPClasses he trobat aquestes tres classes de PHP que tenen bona pinta així que espero que algún dia li facin servei a algú o a mi mateix:
- Insert FTP: This class can be used to manage FTP user accounts stored in a MySQL database.It can connect to a MySQL server that has a database of FTP user accounts used by FTP servers like pure-ftpd. It can: add new user accounts, block an user, change account quotas, retrieve the details of an FTP user account.
- Karatag Google Maps HTTP Request: The Google Maps API is mostly known for being able to present maps of anywhere in the world in any Web site. However, Google Maps API is also able to provide other interesting features, like determining the geographic coordinates of a given address. This class uses the Google Maps API just for the purpose of determining the location associated to an address from PHP programs.
- Virtual Cron: Many Web applications need to execute periodical tasks, like sending newsletters, processing pending e-commerce orders, etc. Some operating systems come with programs, like cron or at, to execute scheduled tasks. However, under some Web hosting environments these programs cannot be used. This class provides an alternative solution that can be used in more restricted hosting environments. It uses files to keep track of the last time when a periodical task was executed. The site Web page scripts can use the class to check these files. The class can tell when it is time to execute a task again. When it is time, the same script can execute the scheduled task without depending on external programs.
LinkedIn: actualitzat el meu perfil
Tampoc hi he perdut massa estona però com que just aquesta setmana he rebut un nou contacte a través d’aquesta xarxa social de contactes a la que potser només hi he entrat dues vegades. Doncs avui no sé com m’ha picat actualitzar una mica el meu perfil, tampoc és que hi hagi posat gran cosa ni que hagi explicat res de l’altre món però si voleu donar-hi un cop d’ull: Oriol Rius a LinkedIn. Així si algú em vol afegir com a contacte ja sap on fer-ho. Per altre banda, si voleu continuar ben informats sobre el meu curriculum el millor lloc conitnua sent a la web del CV. Com sempre passa amb aquest tipus de documents s’ha d’actualitzar però amb uns 6 mesos de retard el porto més o menys al dia.
Per altre banda comentar que és obvi que aquesta setmana he anat prou de cul, perquè hi ha ben pocs articles nous al blog. Bàsicament el problema ha estat que arribat tard a casa quasi tots els dies i la veritat l’última cosa que tenia ganes de fer era posar-me davant de l’ordinador. Així doncs, malgrat com sempre els temes s’acumulen a la llista de temes per publicar jo continua intentat sobrevieure 😉
A més aquest cap de setmana seré fora i per tant, serà difícil que actualitzi el blog. De fet, aquesta setmana vaig tornar a montar una xarxa wifi molt interessant. Aquest cop amb 10 linksys i 1 mikrotik routerboard 150. Així doncs tinc moltes ganes de donar-vos quatre detalls tècnics per si a algú li poden ser útils. Sobretot perquè la simplicitat és excepcional i la potència impresionant.
SD flash reader del Dell X300 funciona en linux
Finalment després de més de dos anys amb el Dell X300 sense poder usar la unitat SD que incorpora avui he pogut configurar-la. De fet, el suport encara és molt ‘beta’ i no fa massa temps que s’ha fet el mòdul pel kernel però com a mínim per llegir el contingut de les fotos que he fet amb la càmara ja va bé.
Vaig a intentar explicar una mica la stiuació de tot plegat, així doncs anem per passos. Com sap la gent que té un Dell X300 al fer un lspci veiem això:
...
02:03.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ac)
02:03.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ac)
...
Deduim doncs que aquest bridge cardbus (PCMCIA) és doncs el que realment té el lector de targetes flash SD. Així doncs, primer de tot necessitem tenir compilat el suport PCMCIA al Kernel i després ens podem descarregar el mòdul del kernel. Jo ús recomano que baixeu directametn del SVN perquè així el tindreu patchejat pels útlims kernels, jo ara mateix uso el 2.6.21.
Per baixar la última versió del controlador Ricoh, després compilar-lo i instal·lar-lo:
svn co https://sdricohcs.svn.sourceforge.net/svnroot/sdricohcs sdricohcs
cd sdricohcs
cd sdricoh_cs
make
make install
Ara ja tenim instal·lat al directori de mòduls del kernel el nou controlador: sdricoh_cs. Així doncs, ja el podem carregar juntament amb el mòdul mmc_block. Una llista completa de mòduls relacionats perquè ús funcioni:
Module Size Used by
mmc_block 6408 2
sdricoh_cs 7180 0
mmc_core 20244 2 mmc_block,sdricoh_cs
pcmcia 28204 2 sdricoh_cs
yenta_socket 21260 4
rsrc_nonstatic 9856 1 yenta_socket
pcmcia_core 29712 4 ide_cs,pcmcia,yenta_socket,rsrc_nonstatic
Ara si insertem una targeta SD particionada i formatejada dintre del directori /dev tenim aquests nous dispositius:
/dev/mmcblk0
/dev/mmcblk0p1
El segon es refereix a la partició, així doncs el podem usar per montar directament la targeta SD:
# mkdir /mnt/sd
# mount /dev/mmcblk0p1 /mnt/sd
Si no especifiqueu cap paràmetre al carregar el mòdul del kernel sdricoh_cs la targeta es montarà només com a lectura degut a que es considera perillós montar-la com a escriptura, degut a l’estat no estable del controlador. Si voleu montar-la com a escriptura també poseu el paràmetre write=1, jo no ho he provat perquè em conformo en poder llegir encara que sigui un pel lentament el contingut de la targeta, si voleu informació més detallada de tot plegat ús recomano llegir el fitxer README que incorpora el codi font del controlador.
Per més informació:
- Driver Ricoh a Sourceforge
- HOWTO SD and MMC card readers a Gentoo Wiki
- Wiki Controllers Ricoh
- Cardreader With Udev browse si voleu que les targetes flash s’automontin al connectar-les