divendres, 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, 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, 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, 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, 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

dimecres, desembre 03, 2008

AgendaXML a LaFarga.Cat i un nou projecte: "Pongui"

He trobat que a LaFarga.Cat, un portal de la Generalitat de Catalunya per promocionar entre altres coses el Programari Lliure ofereixein un espai de "col·laboració i allotjament gratuït a projectes de desenvolupament, documentació i promoció relacionats amb el programari lliure”, a l'estil del més conegut i exitós SourceForge.
Despŕes de mirar-me'l una estona he decidit d'aportar-hi l' "Agenda XML" (https://projectes.lafarga.cat/projects/agendaprojectes/) .
De fet crec que un espai com aquest hauria d'estar més publicitat...

Apart, he penjat un altre projecte al SourceForge: pongui (http://pongui.sourceforge.net/)

És un típic "pong".. no té res d'especial, però pq no penjar-lo? El codi font no és un exemple de programació estructurada (ejem, ejem) però com a exemple, i per haver estat fet amb molt poca estona, és prou correcte!
Està desenvolupat amb Gambas 2 i les llibreries gràfiques SDL. Aquesta llibreria deixa fer Molt amb molt poc codi!... i el resultat (comparat amb l'esforç dedicat) és impressionant!



diumenge, novembre 16, 2008

Projecte AgendaXML

He creat un projecte, Agenda XML, per gestionar el temps que paso treballant en cada projecte.
Es pot trobar a http://agendaxml.sourceforge.net/

Funciona en Gnome i KDE i es queda a la Barra de tasques de manera que es pot triar facilment a què s'està dedicant el temps.

Està desenvolupat en Gambas. Ara em cal investigar com distribuir el "gambas runtime" dins del matex .deb, necessari pq funcioni el projecte.

dimecres, octubre 22, 2008

Crear una Xarxa ADHOC

Amb un router d'Internet que no té connexió inalàmbrica i amb 2 portàtils, volia connectar-los entre ells mitjançant una xarxa Adhoc per compartir l'Internet.


Després de jugar una estona amb el NetworkManager, no he trobat la manera de crear-hi una xarxa Adhoc o sigui que ho he hagut de fer des de la consola, i el resultat és aquest:


sudo ifconfig eth2 down


sudo iwconfig eth2 mode ad-hoc


sudo iwconfig eth2 channel 10


sudo iwconfig eth2 essid xarxaAdhoc


sudo iwconfig eth2 key s:0000000000


sudo ifconfig eth2 up


sudo ifconfig eth2 192.168.2.1


sudo iptables -A POSTROUTING -t nat -o eth1 -j MASQUERADE


sudo sh -c "sudo echo 1 > /proc/sys/net/ipv4/ip_forward"



tenint en compte que la tarja wifi és la eth2 , i la de cable la eth1, la ip de la Xarxa adhoc 192.168.2.X, i el nom de la xraxa creada "xarxaAdhoc"

dijous, agost 28, 2008

Com fer que la conexio SSH que normalment fem amb usuari i contrasenya usi una clau pública i no demani contrasenya

1. Generem el parell de Claus (publica i privada):
(En el servidor o client)
Client# ssh-keygen -t dsa
genera un arxiu "id_dsa" i un "id_dsa.pub" amb les claus privades i pública respectrivament
(si ho fem al server, caldrà passar els arxius 2 al client)

2. Al servidor autoritzem la clau:
(si el pas anterior l'hem fet al client, caldrà hi passem la clau pública)
Des del $HOME al servidor de l'usuari que accedix amb contrasenya
UsuariHabital@Server /home/UsuariHabital# cat id_dsa.pub >> .ssh/authorized_keys
(en aquest punt, al servidor ja es pot esborrar el "id_dsa")

3. En el Client:
Client# cat id_dsa.pub >> .ssh/authorized_keys
(opcional)
Client# chmod 600 .ssh/authorized_keys
(opcional)
Client# chmod 600 .ssh/id_dsa
Ja es pot establir una conexió on NO demanarà Password! (ideal per scripts, per exemple)
Client# ssh -l UsuariHabital Servidor


En el cas de que volguéssim obrir només una tunnelizació cap servidor podriem fer com en aquest exemple on el client comparteix amb la seva LAN el port 139 (la compartició d'arxius de Windows) de la màquina 192.168.0.10 de la xarxa del servidor...

Client# ssh -g -N -L 139:192.168.0.10:139 -l UsuariHabital Servidor


-N (indica que només volem una connexió per tunnels, no la consola)
-g (permet que altre màquines apart del Client (el localhost) accediexin als ports Redirigits)
-L (que especifica la redirecció en sí) faràn el fet.

dissabte, agost 23, 2008

Ubuntu 64 bits: Com instal.lar paquets de la versio de 32 bits la versió de 64bits:

1er: instal.lar l'última versió de getlibs (descarregant-lo de http://ubuntuforums.org/showthread.php?t=474790)
2on: instal.lar el paquet ".deb" especificant "--force-architecture"
p.ex: $ sudo dpkg -i --force-architecture zattoo-3.2.4.15876-i386.deb
3er: fer que detecti les possibles llibreries de 32 bits que no tenim instal.lades i autmàticament se les baixi!

...i ja està tot!

dimecres, juliol 23, 2008

Fer que un client wrt54g de linksys amb l'alchemy a mode client connecti només amb qui volem

Ara que encara me’n recordo... , i per futura referència pròpia:

Per assegurar-nos de que només intenta connectar-se contra el AP que ens interessa cal fer:

1er. Només els de la Llista
# wl macmode = 2

2on. Edita la llista mac
@ wl mac xx:xx:xx:xx:xx:xx

( per buidar la llista de mac seria # wl mac none)

"MASTER OF OPERATIONS" d'un servidor a un altre

Per futura referència pròpia, els passos per transferir el "MASTER OF OPERATIONS" d'un dels controladors de Domini Windows Active Direcotry (normalment el 1er que es va instal•lar) a un altre serien:

1er. Triar el nou “Master of Operations” amb Botó dret sobre "Usuaris i Equips d'AD"
2on. Definir un nou Catàleg Global al Nous Servidor des de "Llocs i Serveis d'AD"
3er. Registrar SCHMMGMT.DLL, executant "REGSVRE32 SCHMMGMT.DLL"
4art. Obrir una MMC i:
a. Afegir el Complement "Esquema d' AD"
b. Botó de la dreta i triar el nou servidor
c. Botó de la dreta triar el nou "MASTER OF OPERATIONS"