divendres, de novembre 13, 2009

Missatges d'error poc amigables

Tot i que no està a l'alçada d'alguns missatge d'error que es poden trobar en el S.O. privatiu més utilitzat al món, de tant en tant el GNU/Linux (concretament GNOME 2.26 a Fedora 11) també te'n pot deixar anar alguna de bona...
Aquest missatge me'l donava després d'intentar tancar el procés d'actualització de la distribució... jo m'he quedat pensant "Millor que no triï Quit, però... si tanco, no estaré també cancel·lant? Aleshores millor cancel·lo, però.... no m'està dient que no puc cancel.lar? per tant.... mmmm....." :)

divendres, d’octubre 02, 2009

WAP54G en mode client

Per connectar la meva xarxa amb cable a una xarxa wifi de manera permanent m'han deixat un Linksys WAP54G (versió 2). L'aparell té 2 interfícies, la wifi i un port ethernet. Com que el Firmware per defecte no permet posar el punt d'accés a mode client, i altres invents no són posibles (p.e. WDS) hi he instal·lat una versió del firmware modificada per SveaSoft, el Freya v2.06 (trobat a http://www5.musatcha.com/musatcha/computers/kismet_on_the_linksys_wap54g.htm) i que es pot carregar al dispositiu mitjançant l'opció “upgrade” disponible a la mateixa interfície d'administració que ve de fàbrica amb el dispositiu.

Amb el nou firmware instal·lat i des de l'interfície web d'administració del router es pot acitvar el telnet, de manera que s'hi pugAixò permet fer la configuració del dispositiu sense haver de passar per la limitada interfície web.

El problema és que no me n'he ensortit amb el Freya i he hagut d'instal·lar una versió modificada del OpenWRT, el Freifunk. L'aventura, resumida ha anat així...

El passos fins on l'he aconseguit fer anar amb el Freya, són:

1.- wp ap 0

Canviem el mode de l'acces point per fer de client.

2.- wl scan

Que faci una llista de les xarxes que “veu”

3.- wl scanresults

Per que ens mostri el resultat de l'scan anterior

4.- wl join XarxaWifiOnVolemConectarnos

Que es connecti a la xarxa “XarxaWifiOnVolemConectarnos”. Sense cap més paràmetre ja que és tracta d'una xarxa sense seguretat WEP ni WPA ni res.

5.- wl status

Mostra l'estat de la wifi, per assegurar-nos que efectivament s'ha associat amb la xarxa que volem

Fins aquí bé. El problema l'he tingut al moment de fer funcionar l'enrutament ip...

D'una banda les targetes venen en un “bridge” o pont (el br0) entre elles que resultava amb la impossibilitat de configurar l'eth1 (la wifi) independentment.

6.- brctl delif br0 eth1

Treiem l'eth1 del pont de tarjetes.

7.- ifconfig eth1 X.X.X.X netmask Y.Y.Y.Y

Configurem l'adaptador inalàmbric amb l'IP i màscara que toqui.

Arribat aquest punt, em semblava que la cosa estava feta ja que amb un ping es veien hosts de la xarxa wifi.

El problema és que no he trobat cap manera de fer NAT de sortida pels meus hosts... la solució amb iptables ( algo com iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth1 -j MASQUERADE) per emmascarar els hosts de la meva xarxa no es pot usar ja que no hi ha iptables.

Després de buscar debades per Internet, he decidit canviar d'estratègia... buscar un firmware diferent.

La versió 2 del WAP54G és un dispositiu força limitat i per això finalment m'he decantat per una versió específica pel WAP54G del Freifunk (en Català!), que és una versió especial reduïda del OpenWrt: http://wiki.freifunk.net/Freifunk_Firmware_(English)#WAP54G

Per instal·lar-lo des d'on ho havia deixat amb el Freya, m'han calgut 2 coses:

8.- nvram set boot_wait=on;nvram commit

Per activar que el dispositiu esperi uns segons després de cada reiniciada, temps durant el qual es pot transferir mitjançant el protocol “tftp” un nou firmware.

I, finalment, transferir-lo tal i com expliquen al web de Freifunk.

La configuració amb el nou firmware l'he feta mitjançant la interfície web i el manual del lloc web i m'ha funcionat a la primera :-)

Finalment, tot i que no té gaire relació amb l'entrada (una mica sí), deixo un enllaç a molta documentació super completa sobre la tecnologies de les xarxes inalàmbriques que he trobat mentre resolia el que explico en aquest post: http://www.wilac.net/index_pdf.html

dimecres, de juliol 08, 2009

Wifi de l'Eeepc 900 a l'Ubuntu 9.04

Acabo d'instal·lar ubuntu 9.04 al meu eeepc 900, i estranyament ( ja que a tot arreu havia llegit que havia de funcionar directament) he hagut d'afegir a mà el mòdul de la wifi.

primer l'he carregat a mà per axsegurar-me que el problema era aquest:

sudo modprobe ath5k

i quan he vist que sí, he afegit a /etc/modules "ath5k" de manera que el carregui cada cop que es reinicia el sistema.

D'altre banda he descobert (vist a Pario TechnoBlob així com a la Ubuntu documentation) que amb l'ufw (Uncomplicated Firewall) per compartir la connexió a Internet és (quasi) més sencill que amb iptables mateix:

a /etc/default/ufw cal canviar el DEFAULT_FORWARD_POLICY a ACCEPT, quedaria així:
DEFAULT_FORWARD_POLICY="ACCEPT"

a /etc/ufw/sysctl.conf cal canviar el net.ipv4.ip_forward a 1, quedaria així:
net.ipv4.ip_forward=1

i a /etc/ufw/before.rules cal afegir el següent:
# nat Table rules
*nat
:POSTROUTING ACCEPT [0:0]

# Forward traffic from eth1 through eth0.
-A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE

# don't delete the 'COMMIT' line or these nat table rules won't be processed
COMMIT

aquest últim pas cal tenir en compte que se suposa que la connexió a internet està connectada a la targeta de xarxa eth0 i que els clients amb els que volem compartir internet tenen la màquina que s'està configurant com a "gateaway" i que ho fan des d'un rang d'ips 192.168.2.0/24.

dimecres, de gener 14, 2009

Gambas


Gambas és un modern entorn gràfic de desenvolupament integrat (editor, compilador, debugador, empaquetador, etc...) per entorns GNU/Linux o BSD. Usa una variant pròpia de BASIC amb característiques d'Orientació a Objecte, i tot i que no pretén ser un clon del Microsoft Visual Basic hi guarda moltes similituds; l'autor principal del projecte reconeix que part dels objectius originals era assemblar-s'hi en alguns aspectes. La pàgina web oficial del projecte és http://gambas.sourceforge.net/.
És interessant notar que les característiques de Gambas (facilitat d'ús, característiques d'Oo, components d'accés a BBDD independents d'aquesta, entre d'altres), juntament amb l'expansió que el sistema operatiu GNU/Linux té actualment, el converteixen en un candidat ideal per omplir un important buit: Un entorn accessible a tots els públics (és a dir fàcil d'usar i de programar-hi) per desenvolupar aplicacions, prou potent perquè les indústries que abans empraven el Visual Basic per la creació d'aplicacions d'ús intern per solucionar petites necessitats sense grans pretensions ni pressupost (el que alguns anomenen aplicacions “in-house”), ara passin a usar GNU/Linux i Gambas per desenvolupar-les.



Història del projecte

El projecte va ser concebut l'any 1999, i la primera versió pública va aparèixer el 2001. Des d'aleshores, el projecte el dirigeix l'autor original, Benoît Minisini.
Cronològicament, veiem que a principis del 2000 l'ús de GNU/Linux s'havia començat a popularitzar de manera destacable. El fet que no existís aleshores cap entorn de desenvolupament ràpid (RAD) suficientment accessible al públic de perfil poc tècnic per aquest entorn (per exemple, tant senzill com el Visual Basic en els sistemes operatius de Microsoft), va fer que hi haguessin diverses temptatives no molt reeixides d'aconseguir desenvolupar-ne un que cridés l'atenció d'aquest tipus d'usuaris (per exemple Borland va treure una versió per GNU/Linux del seu, aleshores, popular entorn de desenvolupament Delphi anomenada Kylix).

Benoît Minisini, programador francès amb experiència en compiladors, va ser un dels qui va decidir intentar posar remei a la situació de la seva pròpia mà, i va començar en solitari el desenvolupament Gambas. Programat per executar-se en GNU/Linux i implementant la seva pròpia versió de BASIC, amb un ull posat als “punts forts” de VB, però conscient de les limitacions i pegues d'aquest, l'autor també va prendre algunes idees de Java. Cal notar, en aquest sentit, que des del principi, el disseny de Gambas anava orientat a no ser compatible amb el BASIC de VB allà on l'autor creia que hi havia marge de millora. En les primeres versions, els components gràfics estaven basats en la llibreria QT però a partir de la versió 1 ja es va començar una capa que independitza els components del toolkit real. Des d'un bon principi i fins a l'actualitat, la manera de gestionar el projecte que l'autor ha portat a terme, es podria definir com la d'un ”dictador benvolent”: El que dins el món del programari lliure a vegades s'ha anomenat ”dictador benvolent” correspon a un sistema on una única persona centralitza tot o bona part del poder sobre el projecte; i decideix i té l'última paraula pel que fa al rumb, el què val la pena integrar-hi o no, i qui pot treballar en què (a l'estil del cas més conegut, Linus Torvald i Linux :).

La primera versió pública, la 0.20, va ser publicada el febrer del 2002 i des d'aleshores el projecte ha anat rebent actualitzacions constants fins a l'actualitat. Finalment, com a curiositat, direm que el nom del projecte és un acrònim recursiu inventat per l'autor, que vol dir “Gambas Almost Means BASic”, és a dir en català (traducció pròpia lliure) “Gambas quasi vol dir Basic”.


El projecte


El projecte ofereix accés obert de lectura a tothom a un repositori subversion on s'hi poden trobar les dues branques actualment en desenvolupament del codi del projecte a les adreces https://gambas.svn.sourceforge.net/svnroot/gambas/gambas/branches/2.0 per la versió estable i https://gambas.svn.sourceforge.net/svnroot/gambas/gambas/trunk/ per la 3, en desenvolupament.

Quasi des del bon principi, el projecte ha estat registrat al Sourceforge, i és allà on hi ha allotjada la pàgina web, des d'on es poden descarregar les últimes versions oficials, on hi ha allotjats els repositoris de codi font, i les llistes de distribució.
En el projecte, aquestes llistes de distribució són, ara per ara i per decisió expressa del màxim responsable del projecte, l'únic sistema de “bug tracking” o de petició de millores.

https://lists.sourceforge.net/lists/listinfo/gambas-user

https://lists.sourceforge.net/lists/listinfo/gambas-devel

https://lists.sourceforge.net/lists/listinfo/gambas-devel-svn

https://lists.sourceforge.net/lists/listinfo/gambas-user-es

https://lists.sourceforge.net/lists/listinfo/gambas-user-fr

L'accés a aquestes llistes és públic, i l'historial de missatges és lliurement consultable.

Una altre part important del projecte la trobem, també, a la pàgina de documentació del llenguatge, http://gambasdoc.org/. La pàgina estructurada en format Wiki, està traduïda total o parcialment a 19 idiomes diferents. El fet que estigui traduïda a tants idiomes i que sigui força exhaustiva, la converteix en una eina molt útil per als usuaris de Gambas; S'hi pot trobar des dels passos específics d'instal·lació de Gambas en múltiples distribucions de GNU/Linux, fins a un inventari complet de totes les comandes, sintaxi i instruccions específiques del llenguatge amb exemples de codi.

Val a dir que actualment també trobem un parell de projectes amb característiques semblants (Un entorn integrat + Dialecte BASIC propi) a Gambas:
Hbasic (http://hbasic.sourceforge.net/)
Kbasic (http://www.kbasic.com)


Radiografia del projecte

Gambas es distribueix sota la llicència Gnu GPL i té un nombre relativament reduït de col·laboradors. Moltes de les aportacions de codi són de l'autor original. La versió estable actual és la 2.9 del 30 d'octubre de 2008 i el codi font es pot trobar a la zona de descàrregues del lloc web http://sourceforge.net/project/gambas i també al repositori subversion del mateix lloc, https://gambas.svn.sourceforge.net/svnroot/gambas/gambas/branches/2.0

Les dades les he sobre les característiques del projecte calculat amb l'última versió de la branca estable disponible al repositori subversion revisió 1744 del 19/12/2008 . L'eina emprada pel recompte és sloccount:




Línies totals de codi (SLOC) = 179.836



Estimació del costos de desenvolupament segons el model Bàsic COCOMO :

Estimació de l'esforç de desenvolupament
persona/anys
46.63 anys (559.54 mesos)

Estimació del temps d'execució
2.31 anys (27.68 mesos)

Estimació de nombre mitjà de desenvolupadors
20.22

Cost total de desenvolupament
(amb un sou mitja de $56,300/any)
$ 6.298.862



On obtenir-ne més informació:

Pàgina principal del projecte: http://gambas.sourceforge.net/
Documentació oficial de Gambas: http://gambasdoc.org
Un llibre lliure de documentació sobre Gambas: http://en.wikibooks.org/wiki/Gambas
Pàgina amb recursos de Gambas: http://gambasrad.org/
Pàgina del projecte LinEx dedicada a Gambas: http://gambas.gnulinex.org/web/index.html
Entrada a la Wikipedia de Gambas: http://en.wikipedia.org/wiki/Gambas
Entrada a la Wikipedia de dialectes Basic: http://en.wikipedia.org/wiki/List_of_BASIC_dialects_by_platform
Incubadora de projectes desenvolupats en Gambas: http://www.gambasforge.net (actualment en obres)
Projectes al Freshmeat que usen Gambas: http://freshmeat.net/browse/1123/

dimecres, de gener 07, 2009

Modificar informació EXIF d'una imatge

M'ha passat més d'una vegada que la data de la càmera es "reseteja" (a 01 del 01 de 2004) quan la bateria s'esgota del tot i les fotos resultants tenen la informació EXIF del jpeg incorrecte, apart de la data del propi arxiu.
Els organitzadors de fotos com Picassa poden usar aquesta informació per ordenar les fotos i és molt molest veure que les fotos de pocs dies abans queden "enterrades" com si haguessin estat fetes fa anys.

Per solucionar-ho he trobat la següent manera:
Suposant estem situats a la carpeta de les fotos, i que volem establir la nova data a 31 de desembre de 2008...
Per la data de l'arxiu:
# touch -t 200812312330 *.JPG

i per l'EXIF del jpeg:
# jhead -ds2008:12:31 *
Si volgués establir l'hora amb el jhead en comptes de -ds hauria usat -ts amb el format yyyy:mm:dd-hh:mm:ss