dijous, 25 de setembre del 2008

Tipus de caràcters a Regular Expression

POSIX Perl ASCII Description
[:alnum:]
[A-Za-z0-9] Alphanumeric characters
[:word:] \w [A-Za-z0-9_] Alphanumeric characters plus "_"

\W [^\w] non-word character
[:alpha:]
[A-Za-z] Alphabetic characters
[:blank:]
[ \t] Space and tab
[:cntrl:]
[\x00-\x1F\x7F] Control characters
[:digit:] \d [0-9] Digits

\D [^\d] non-digit
[:graph:]
[\x21-\x7E] Visible characters
[:lower:]
[a-z] Lowercase letters
[:print:]
[\x20-\x7E] Visible characters and spaces
[:punct:]
[-!"#$%&'()*+,./:;<=>?@[\\\]_`{|}~] Punctuation characters
[:space:] \s [ \t\r\n\v\f] Whitespace characters

\S [^\s] non-whitespace character
[:upper:]
[A-Z] Uppercase letters
[:xdigit:]
[A-Fa-f0-9] Hexadecimal digits

dimarts, 23 de setembre del 2008

Connectant un servidor Linux amb un AS/400 via ODBC

Per a connectar un servidor Linux amb un AS/400, prèviament haurem de tenir instal·lat el iSeriesAccess for Linux que ens instal·la el paquet unixodbc.
Instal·lem el paquet que conté els gestors de configuracions ODBC.
sudo apt-get install unixodbc-bin
Editem l'arxiu de configuració de Drivers ODBC a /etc/odbcinst.ini i afegirem:
[AS/400 ODBC connect]
Description = Driver iSeriesAccess for Linux
Driver = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so
Driver64 = /usr/lib
Setup = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so
Setup64 = /usr/lib
UsageCount = 1
CPTimeout =
CPReuse =

Des de consola executarem
ODBCConfig
I afegim una connexió editant /etc/odbc.ini
[as400ODBC]
Description = AS/400 ODBC connect
Driver = AS/400 ODBC connect
System = 10.10.10.xxx
UserID =
Password =
Naming = 0
DefaultLibraries = QGPL
Database =
ConnectionType = 0
CommitMode = 2
ExtendedDynamic = 1
DefaultPkgLibrary = QGPL
DefaultPackage = A/DEFAULT(IBM),2,0,1,0,512
AllowDataCompression = 1
MaxFieldLength = 32
BlockFetch = 1
BlockSizeKB = 128
ExtendedColInfo = 0
LibraryView = 0
AllowUnsupportedChar = 0
ForceTranslation = 0
Trace = 0

Aquesta configuració es pot realitzar d'una manera amicable executant
sudo ODBCConfig

Podem certificar el funcionament amb el programa
DataManager

dilluns, 22 de setembre del 2008

Debugant PHP en un servidor LAMP

Per a poder depurar des d'Eclipse scripts PHP que s'executen en un servidor LAMP, caldrà seguir les següents pases.
Descarregarem el PDT server-debugger de la versió per a la plataforma que correspongui des de http://downloads.zend.com/pdt/server-debugger/
wget http://downloads.zend.com/pdt/server-debugger/ZendDebugger-5.2.14-linux-glibc23-i386.tar.gz i el descomprimim
tar -xzvf ZendDebugger-5.2.14-linux-glibc23-i386.tar.gz
Copiem la llibreria per a la versió que ens ocupi, 5.2 si hem instal·lat php5 via apt-get, al directori on es guarden les llibreries php:
sudo cp ZendDebugger-5.2.14-linux-glibc23-i386/5_2_x_comp/ZendDebugger.so /usr/lib/php5/20060613+lfs/
Modifiquem el /etc/php5/apache2/php.ini i afegim aquestes instruccions:
# Afegit Zend Debugger
zend_extension=/usr/lib/php5/20060613+lfs/ZendDebugger.so
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always


Finalment copiem l'arxiu dummy.php a l'arrel del servidor web
cp ZendDebugger-5.2.14-linux-glibc23-i386/dummy.php /var/www/

I rebotem el servidor Apache.
sudo /etc/init.d/apache2 restart

A la part d'Eclipse, anirem a Window/Preferences/PHP/Debug/Installed Debugger i canviarem la configuració de Zend Debugger indicat Client Host/IP la IP de loopback 127.0.0.1 i la de la màquina de programació en el cas de ser fixe separades per comes.

divendres, 19 de setembre del 2008

Instal·lant un servidor LAMP a Ubuntu

LAMP és l'acrònim de Linux, Apache, MySQL i PHP. És com es coneix el sistema de servidor d'aplicacions web més estès arreu d'InterNet.
La instal·lació és molt senzilla, només cal executar aquestes instruccions:
sudo apt-get install apache2
sudo apt-get install mysql-server
sudo apt-get install php5 php5-mysql php5-gd
si fem http://localhost visualitzarem la plana situada a /var/www/

dijous, 18 de setembre del 2008

Sol·lucionant Out of Memory a Eclipse

Si emprem Eclipse a diari, aviat ens adonarem que la memòria assignada per omissió és massa justa si treballem amb projectes grans.
Per evitar el fatídic Out of Memory a Eclipse, el que cal és modificar l'arxiu /opt/eclipse/eclipse.ini i modificar o afegir aquestes instruccions
-Xms256m
-Xmx1024m

-Xms estableix la mida inicial de la pila Java i -Xmx la mida màxima. Aquests paràmetres han de ser coherents amb la configuració de la màquina on s'executa.

dimarts, 16 de setembre del 2008

Executar una comanda cada -n segons

A cops necessitem poder executar una comanda cada -n segons, per veure si hi ha algun canvi. Per a fer això emprarem la comanda watch:
watch -n 20 nslookup mail.corretge.cat
Amb aquesta instrucció, per exemple, preguntarem al servidor de noms cada 20 segons a on apunta mail.corretge.cat. És de gran utilitat quan es fan canvis en els servidors de DNS i estem pendents de que aquests es propaguin.

El resultat serà similar a:
Every 20,0s: nslookup mail.corretge.cat Tue Sep 16 23:21:42 2008

Server: 10.10.10.17
Address: 10.10.10.17#53

Non-authoritative answer:
mail.corretge.cat canonical name = ghs.google.com.
ghs.google.com canonical name = ghs.l.google.com.
Name: ghs.l.google.com
Address: 72.14.207.121

A la part de dalt ens mostra la freqüència i la comanda que s'executa.
Senzill i pràctic.

dilluns, 15 de setembre del 2008

Edició de PHP amb VIM

Hi ha cops que no podem disposar d'un entorn de programació com l'Eclipse i hem de remenar codi des de la cònsola. Seguint aquestes instruccions farem del vim un editor PHP que coloreja les instruccions.

Primer de tot instal·larem el vim
sudo apt-get install vim

Obrim la cònsola que ens situa a la nostra /home/~ , i fem un backup de l'arxiu .vimrc si existís i executem aquestes ordres:
wget http://cccphp.googlegroups.com/web/vimrc?gda=q1zRZTcAAAAbSsN4q5Wc9GW62y1QmO-zVAixaaIbS182RRv7NXuV6VFQhWQfvLQDxvbHtDw5VrJ5Xh26_qkMwaGGFl2NCU0D
mv vimrc\?gda\=q1zRZTcAAAAbSsN4q5Wc9GW62y1QmO-zVAixaaIbS182RRv7NXuV6VFQhWQfvLQDxvbHtDw5VrJ5Xh26_qkMwaGGFl2NCU0D .vimrc

Com diu l'arxiu que hem descarregat, ara només cal desar el funclist que indica al vim que ha de pintar.

cd .vim
wget http://cccphp.googlegroups.com/web/vim.php.funclist.txt?gda=jtX7kUYAAAAbSsN4q5Wc9GW62y1QmO-zVAixaaIbS182RRv7NXuV6dsCZwMJa4gWRqfg2uUdnZ3jBf1s9JiKBFHFCL29PVULE-Ea7GxYMt0t6nY0uV5FIQ
mv vim.php.funclist.txt\?gda\=jtX7kUYAAAAbSsN4q5Wc9GW62y1QmO-zVAixaaIbS182RRv7NXuV6dsCZwMJa4gWRqfg2uUdnZ3jBf1s9JiKBFHFCL29PVULE-Ea7GxYMt0t6nY0uV5FIQ funclist.txt

diumenge, 7 de setembre del 2008

Instal·lant el programa de maquetació Scribus

Per a instal·lar el programa de maquetació Scribus, cal en primer lloc afegir els repositoris de paquets scribus al nostre /etc/apt/sources.list
# afegit pel tema scribus
deb http://debian.scribus.net/debian/ hardy main non-free
deb http://debian.tagancha.org/debian/ hardy main non-free

Afegim la clau de confiança d'aquests repositoris amb les comandes
gpg --keyserver wwwkeys.eu.pgp.net --recv-keys EEF818CF
gpg --armor --export EEF818CF | sudo apt-key add -

I actualitzem el llistat de paquets amb
sudo apt-get update
Un cop fet això procedim a la instal·lació d'scribus pròpiament dita:
sudo apt-get install scribus scribus-doc scribus-ng scribus-ng-doc scribus-template icc-profiles lprof qt3-qtconfig
Modificarem els arxius del menú gnome /usr/share/applications/scribus.desktop i especificarem la categoria Gràfics:
Categories=Graphics;
I amb aquestes senzilles pases tindrem instal·lat Scribus, l'alternativa OpenSource al Page Maker o al Quark Xpress, tot i que encara li falta molt de camí per a recòrrer.

divendres, 5 de setembre del 2008

Copiar arxius sense informació de subversion

Quan tenim una aplicació sota control de versions subversion, internament cada carpeta conté una altra anomenada .svn que conté informació per al Subversion.

Quan copiem uns arxius d'un lloc a un altre amb la comanda cp, aquesta informació també es copia, amb la informació del repositori d'origen.

Una manera de copiar tota la informació d'un projecte a un altre sense cap control de versions és amb la comanda rsync:
rsync -r --exclude=.svn /var/www/templates/crtSkel ./httpdocs
El que fem és copiar tot el que hi ha a la carpeta crtSkel que està sota control de versions a un httpdocs d'un nou projecte, que volem controlar-ho en un altre repositori.

dijous, 4 de setembre del 2008

Instal·lant AbanQ a Ubuntu 8.04

AbanQ, antigament Facturalux és un programari de comptabilitat i facturació OpenSource executable en entorns Linux, Mac OS/X i Windows. Per a instal·lar-ho cal descarregar la darrera versió des del web del fabricant i descomprimir-ho en una carpeta temporal.

Per a instal·lar AbanQ a Ubuntu Hardy 8.04, cal tenir instal·lades prèviament les llibreries gtk i c++ fent
sudo apt-get install libgtk1.2 libstdc++5

Executarem amb privilegis de root l'script d'instal·lació:
sudo ./abanq-2.2.x86.Linux.bin.run que ens deixarà el producte a /usr/local/facturalux-lite
Executant des d'una terminal la comanda fllite o des del menú Aplicacions/Altres/AbanQ accedirem a la pantalla de configuració de la base de dades. És recomenable instal·lar-ho en un servidor MySQL i així poder accedir des de qualsevol màquina i pels nostres scripts PHP de reporting de dades.

El primer cop que s'instal·la AbanQ s'ha de carregar tots els mòduls i fer les modificacions dels formularis. Aquestes modificacions queden registrades a la base de dades, així que tots els ordinadors que es connectin contra aquesta base de dades ja disposaran dels formularis actualitzats.

En connectar-nos a AbanQ, actualment dona un avís si el servidor és mySql5, però l'aplicació funciona correctament. El 30 de setembre sortirà una versió preparada per aquesta versió de mySql.

També hi ha un problema amb els accents que sol·lucionarem de la següent manera situant-nos a /usr/local/facturalux-lite:
sudo mv fllite fllite.bak
sudo vim fllite

Indicant aquestes línies de codi
#! /bin/bash
LANG=ca_ES.ISO-8859-1 /usr/local/facturalux-lite/bin/fllite

Per a que aquest canvi sigui general, farem:
sudo chmod ugo+x fllite
sudo rm /usr/bin/fllite
sudo ln -s /usr/local/facturalux-lite/fllite /usr/bin/fllite

I modificarem el punt de menú per a que surti a l'apartat d'Oficina i cridi aquest nostre script:
sudo vim /usr/share/applications/fllite.desktop
que quedarà així:
[Desktop Entry]
Encoding=UTF-8
Name=AbanQ
Comment=
Exec=/usr/local/facturalux-lite/fllite
Icon=/usr/local/facturalux-lite/icon.xpm
Terminal=0
Type=Application
Categories=Application;Office;

Dual Desktop amb Ubuntu 8.04

Una de les innovacions més productives en el món dels escriptoris és sense dubte el Dual Desktop. Aquesta tecnologia permet tenir dos monitors i dos escriptoris en una sola màquina. En un monitor podem tenir l'entorn de programació i l'altre els manuals o el resultat del que estem programant.

La majoria de targetes gràfiques actuals ja permet aquesta modalitat i lluny està els temps que calia tenir dues targetes i hores i més hores de configuració i test de les XWindows.

Per a Ubuntu Hardy 8.04 i una targeta nVidia de les normaletes, una EN8600GT 512MB cal seguir aquestes :
Després d'instal·lar els drivers propietaris d'nVidia
sudo apt-get install nvidia-glx-new
cal editar /etc/X11/xorg.conf i a la secció Screen afegir:
# Afegit per al Dual Desktop
Option "RenderAccel" "true"
Option "TwinView"
Option "MetaModes" "1680x1050 1280x1024"
Option "TwinViewOrientation" "LeftOf"

El resultat:


Mes info al manual de configuracio TwinView d'nVidia.

dimarts, 2 de setembre del 2008

Google Chrome en català

Avui Google ha tingut a bona part dels internautes penjats del seu web fent F5 per veure si arribava el moment de descarregar-se el nou navegador segons havien anunciat al bloc oficial de Google.

Per a tranquilitzar la parròquia han publicat digitalment un còmic on expliquen les novetats que Google Chrome aporta al món. Aquest còmic que s'editarà en paper, segurament es convertirà en peça de coleccionista.

De moment només es pot descarregar la versió per a Windows XP/Vista de Google Chrome, ja arribarà la versió Linux i OS/X. De moment compleix amb les espectatives ràpid i agradable. Genial el gestor de tasques per a controlar quins processos consumeixen memòria i ample de banda i també la facilitat amb que es poden convertir pestanyes en un nou navega
dor, molt util quan es treballa amb Dual Desktop.

El motor de renderitzat i la màquina virtual JavaScript s'han readaptat d'altres projectes Open Source i s'han conceptualitzat per a la web actual on a més de servir planes se serveixen aplicacions. Google Chrome ha estat alliberat amb llicència BSD, tot un detall per part de Google mostrant una estratègia molt diferent d'Apple, que sempre s'ha aprofitat d'aquest tipus de llicència per a crear software propietari.

Una grata sorpresa ha estat l'idioma de la interficie de Google Chrome en un perfecte català. Crec que és dels pocs cops que una primicia mundial surt en la llengua d'Ausiasmarc.
Us el podeu descarregar el Google Chrome (475 KB)  d'aquest enllaç, paga la pena provar-ho.

Queda per veure quan trigaran els desenvolupadors en dur els plugins per a aquesta plataforma, com el Firebug o el Tamper Data, doncs hi ha molts números per a que esdevingui l'anel·lat navegador estandard per a la Web 2.0