dilluns, 31 de desembre del 2007

Bloc rastrejat per Technorati

Amb aquest post, marquem aquest bloc rastrejable per Technorati.

Es tracta d'un dels requeriments per al Contest for Busy Programmers.

Ara falta crear el PHP Abstract. L'any vinent.

diumenge, 30 de desembre del 2007

Com crear el teu pròpi certificat SSL

Aquest claríssim post al respecte a YATB ho explica d'una manera clara i precissa.

En entorns de proves, acostumem a necessitar de diferents certificats autosignats, així que amb aquest senzill script automatitzem aquesta creació:

#!/bin/bash

#
# demanem el nom del domini
read -p "Quin nom de domini vols crear SSL? " domini

#
# mirem si existeix, i si no copiem l'esquelet
fitxer="ss.${domini}.key"
if [ -f ${fitxer} ]
then
echo "Ja existeix ${fitxer}"

else
# Generem una clau privada
openssl genrsa -des3 -out ss.${domini}.key 1024

# Generem un CSR (Certificate Signin Request)
echo "ATENCIO, quan demani per 'Common Name' introduir *.${domini}"
openssl req -new -key ss.${domini}.key -out ss.${domini}.csr

# Esborrem la contrasenya de la clau
cp ss.${domini}.key ss.${domini}.key.pwd
openssl rsa -in ss.${domini}.key.pwd -out ss.${domini}.key

# Generem un certificat auto-signat
openssl x509 -req -days 365 -in ss.${domini}.csr -signkey ss.${domini}.key -out ss.${domini}.crt

echo
echo "Pensa de copiar els arxius ss.${domini}.crt i ss.${domini}.key a un lloc accessible per Apache, generalment /etc/apache2/ssl"

fi

dijous, 27 de desembre del 2007

Mostrar alarmes en resultats SQL DB/2

Una imatge val més que mil paraules... o dades.

A cops, quan visualitzem els resultats d'un SQL, trobem a faltar una alarma gràfica. Per exemple: Si volem visualitzar el volum de vendes a clients, potser interesant veure en diferents colors els diferents rangs de volum de vendes.

Per a visualitzar diferents colors en els resultats SQL posarem el byte d'atributs abans del camp (o línia) a mostrar. D'igual manera que 'pintem' les línies de comentari en el SEU, 'pintem' els resultats SQL. Alguns codis que podem emprar:

x'20' Normal
x'21' Reverse
x'22' HI
x'23' HI reverse
x'28' Red
x'29' Red reverse
x'2A' Blink
x'2B' Blink reverse

Per a definir els rangs d'alarmes, emprarem la instrucció CASE d'SQL. Funciona de manera similar a la instrucció CASE d'RPG IV.

+-------------------------------------------------------------------------------+
| |
| |
| +-ELSE NULL---------------+ |
| >--CASE----searched-when-clause----+-------------------------+--END---------> |
| +-simple-when-clause---+ +-ELSE--result-expression-+ |
| |
| searched-when-clause: |
| <-----------------------------------------------------+ | | +----WHEN--search-condition--THEN----result-expression----------------------| | | +-NULL--------------+ | | | | simple-when-clause: | | <-----------------------------------------------+ | | +--expression----WHEN--expression--THEN----result-expression----------------| | | +-NULL--------------+ | | | +-------------------------------------------------------------------------------+


En el proper exemple, mostrarem les taules del sistema que tenen més de 100 camps, i en HI les que tenen més de 250 camps, en roig les que tinguin més de 1000 i la biblioteca parpadejant i la resta en roig les que tinguin més de 2500 camps.

Per a veure el resultat SQL, executeu STRSQL i introduiu aquesta instrucció:

SELECT CASE
WHEN count(*) > 2500 THEN (X'2A'||SYSTEM_TABLE_SCHEMA||X'28')
WHEN count(*) > 1000 THEN (X'28'||SYSTEM_TABLE_SCHEMA)
WHEN count(*) > 250 THEN (X'22'||SYSTEM_TABLE_SCHEMA)
else (' '||SYSTEM_TABLE_SCHEMA)
end AS LIB,
SYSTEM_TABLE_NAME AS TABLE,
COUNT(*) AS FIELDS
FROM QSYS2/SYSCOLUMNS
group by system_table_schema, system_table_name
having count(*) > 100

Aquest truc va guanyar el Hall of Fame Tip del mes d'octubre del 2001 a TechTarget.

dilluns, 10 de desembre del 2007

Versió per a mòbils de l'Estratègia Blogger

A Corretgé.com sóm conscients de la importància de la informació ubiqua. La informació que és accessible arreu.

Així ens plau de comunicar als nostres clients de Net Access que si adquereixen el pack Estratègia Blogger durant aquest mes de desembre, tindran de franc l'Estratègia Blogger per a mòbil.

A modus d'exemple podeu consultar la versió mòbil d'aquesta Estratègia Blogger a aquest lloc:

http://m.corretge.cat/

Sol·liciteu més informació sense compromís a:
info@corretge.com

Primers indicis de com serà l'HTML 5

Guillem Alsina (guillem@imatica.org) - Nous tags que permeten millorar l'estructura de la pàgina i refinar la introducció de vídeo i àudio gràcies a l'èxit de serveis com YouTube.

El World Wide Web Consortium (W3C), l'organisme internacional encarregat d'establir els estàndards de la web, ha publicat les primeres dades de la cinquena versió del llenguatge HTML. Per a aquells lectors que no ho sàpiguen, l'HTML és un llenguatge de descripció de dades mitjançant etiquetes que constitueix la base de les pàgines web, ja que aquestes -i a més de poder emprar altres elements com són animacions en Flash, imatges JPEG o programes en Java- s'escriuen en HTML per a què qualsevol navegador les pugui entendre. Per a això, l'HTML (Hypertext Markup Language) és independent de plataforma.

La base de l'actual versió de l'HTML ve del 1997, amb una petita modificació en el 2001 que bàsicament retocava alguns aspectes puntuals i que es coneix com a HTML 4.01 . Deu anys són molts per al món de la informàtica, i la Web i el que en ella s'hi publica han avançat prou com per a necessitar una nova revisió del llenguatge que els serveix de base. En l'esborrany d'aquesta versió 5 de l'HTML s'hi està treballant des del 2004.

Aquesta setmana la publicació en línia A List Apart ha publicat un article explicatiu de les novetats que es poden trobar en el nou HTML, escrit per Lachlan Hunt, desenvolupador web i membre del comitè que treballa en l'elaboració de la propera versió d'aquest estàndard, pel que es tracta d'informació de primera mà.

L'objectiu d'aquesta nova versió és proporcionar a la comunitat de desenvolupadors un entorn més còmode per moure's, que els permeti oferir noves funcionalitats i més interactivitat als internautes.

Entre les novetats més destacades, podem esmentar els nous tags per descriure estructures que fins ara només es descrivien mitjançant tags DIV. Entre aquestes es troben, per exemple, la barra de navegació nav o la barra lateral vertical aside, fins ara es podia construir com div id="sidebar".

També en l'apartat multimèdia hi trobem novetats, degut al gran èxit dels serveis com YouTube, i que no són només emprats pels usuaris finals, ja que moltes empreses pengen vídeos en aquests serveis per després encastar-los en les seves pròpies pàgines. Els nous tags de l'HTML 5 permeten especificar dades com ara els còdecs necessaris per reproduir un fitxer i de quin tipus és el contingut, si vídeo o àudio.

Juntament amb la definició de l'HTML 5 també s'està fent el mateix amb l'XHTML 5 (Extensible HyperText Markup Language), que no és res més que el mateix HTML però complint amb totes les característiques de l'XML i, per tant, encara més estandarditzat.

Per a la realització d'aquest esborrany s'ha comptat amb la col·laboració dels representants de les quatre principals companyies del món dels navegadors web: Apple (Safari), Mozilla (Firefox), Opera i Microsoft (Internet Explorer), que han aportat els seus suggeriments i idees, així com també diverses organitzacions i particulars que han estat considerats experts d'interès per al grup de treball.

Cal destacar el fet que el document en el qual es basa aquest article és encara només un esborrany de treball, i per tant les especificacions que aquí s'han esmentat poden variar en un futur proper.

Més informació:

Document de treball del W3C amb l'especificació de l'HTML 5
http://www.w3.org/html/wg/html5/
i sobre la polèmica habitual en la creació d'estandards:
http://www.zeldman.com/2007/08/15/what-crisis/

divendres, 7 de desembre del 2007

Autentifiació bàsica en Apache

Una manera senzilla i poc segura d'autentificar una carpeta en un servidor web públic és emprar el mod_auth de Apache.

Com explica el manual d'Apache, cal crear una arxiu de contrasenyes fora de la ruta pública i un arxiu .htaccess a les carpetes a assegurar.

L'arxiu el creem amb la comanda htpasswd htpasswd -c /var/www/vhosts/xxx/contra/usuaris.pwd amic i ens demanarà la contrasenya per a l'usuari amic. Sense el paràmetre -c si volem afegir-ne més usuaris.

podem crear un arxiu de grups amb aquesta estructura: grup1: usuari1 usuari2
amics: usuari1 amic usuari3


I l'arxiu .htaccess tindrà aquesta fila AuthType Basic
AuthName "Area restringida."
AuthUserFile /var/www/vhosts/xxx/contra/usuaris.pwd
AuthGroupFile /var/www/vhosts/xxx/contra/grups.pwd
Require group amics


Si no definim els grups, farem el Require així
Require valid-user

Amb això ja tindríem una carpeta pública assegurada.

Ara només cal indicar a l'Apache que ha de fer cas d'aquesta parametrització concreta amb la instrucció
AllowOverride AuthConfig
a l'arxiu /etc/apache2/sites-available/elnostrearxiu.

El problema de mod_auth és que un cop ens hem autentificat el codi d'usuari i la contrasenya viatge amb nosaltres en totes les pàgines a la capçalera:
Request Headers
Host xxx
User-Agent Mozilla/5.0 (X11; U; Linux i686; ca; rv:1.8.1.11) Gecko/20071204 Ubuntu/7.10 (gutsy) Firefox/2.0.0.11
Accept text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language ca,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Authorization Basic YW1pYzpUZXN0Q29udA==


Cert és que ara viatgen codificades en Base64 i no en text pla com ho feien fa anys, però clar, amb una senzilla utilitat de codificació/descodificació de Base64 online com aquesta, coneixereu el nom de l'usuari i la contrasenya.

dijous, 6 de desembre del 2007

Colors a les etiquetes del correu Net Access

La gent de Google ha alliberat una millora per a la gestió del correu en GMail aplicable també per als clients que empren Net Access.

Es tracta de la posibilitat de poder assignar colors a les etiquetes per tal de millorar la gestió i comprensió del correu.

Per assignar un color només cal pitjar el quadradet que hi ha al costat dret de l'etiqueta i triar-ne un.

Com clonar una màquina virtual VMWare

La vida és molt més fantàstica des de que la gent de VMWare va alliberar la versió server, i podem crear màquines virtuals (Virtual Machines) sense cost de llicència a la màquina servidora.

Una bona pràctica és tenir una màquina virtual 'neta' a modus de maqueta, i així que tenim necesitat, la copiem i treballem en aquesta nova.

La versió Workstation de VMWare, de pagament, te una comanda per a clonar màquines. Per a la versió Server, de franc, s'ha de fer un seguit d'accions manualment.

- Copiar la maqueta a la nova ubicació.
Primer de tot em d'assegurar-nos de no tenir cap SnapShot. Si en tenim cal esborrar-lo fent des de la Server Console menú VM/Snapshot/Remove Snapshot.
Al directori on tenim les màquines virtuals fem
cp -dpR Ubuntu606-neta/ 20070A000008
Això pot trigar una estona llarga segons la mida del disc de la maqueta. Per a una màquina amb un disc de 8GB triga uns 5 minuts.
En aquest cas el nom destí de la màquina virutal és el codi de pressupost, però evidentment podem posar el que més ens agradi.

- Canviar el nom del disc.
Un cop dins del directori destí, amb la utilitat vmware-diskmanager canviarem el nom dels arxius que composen el disc fent
vmware-vdiskmanager -n Ubuntu606-neta.vmdk 20070A000008.vmdk

- Canviar els arxius de configuració.
Canviarem el nom dels arxius de configuració, i amb la comanda sed modificarem el contingut.
mv Ubuntu606-neta.vmx 20070A000008.vmx
sed -i 's/Ubuntu606-neta/20070A000008/' 20070A000008.vmx

Ja tenim els arxius preparats.

Des de la consola del VMWare Server obrim la nova màquina al menú File/Open/Browse.
VMWare detectarà que s'ha fet una còpia i ens preguntarà si volem crear un nou identificador únic UUID. Premem el botó create.

Si tot va bé, que ha d'anar, ja tindrem una nova màquina imatge de la maqueta original totalment operativa.

Un cop loguinejats a la nova màquina, farem amb privilegis de root hostname 20070A000008
sed -i '/s/ubuntu606/20070A000008/' /etc/hosts
sed -i '/s/ubuntu606/20070A000008/' /etc/hostname
per caviar el nom del sistema acord a la nova màquina i rebotem amb
shutdown -r now

dilluns, 3 de desembre del 2007

Cantonades arrodonides per a navegadors Mozilla

Una de les funcionalitats més vistoses de la propera CSS3 serà l'arrodoniment de les cantonades. Això ens estalviarà als dissenyadors de llocs web un munt de temps i als administradors de sistemes un munt d'ample de banda en imatges i codi que dibuixen aquest arrodoniment.

Doncs bé, abans de que arribi la CSS3, els desenvolupadors de webs orientades al codi obert, podem fer servir algunes de les CSS Mozilla Extensions per aconseguir l'objectiu.

Amb aquest codi, aconseguim el resultat de la dreta:
-moz-border-radius-bottomleft:4px;
-moz-border-radius-bottomright:4px;
-moz-border-radius-topleft:8px;
-moz-border-radius-topright:8px


Així que desde navegadors tant populars com Mozilla, Firefox, Swiftweasel i d'altres, podrem anticiparnos a la CSS3. Amb navegadors tipus Microsoft Internet Explorer es veuran les catonades quadrades.

PHP 5.1.2 al repositori Ubuntu Server 6.06

El repositori d'Ubuntu Server ha alliberat la versió 5.1.2 de PHP per al repositori d'Ubuntu Server 6.06 dapper.
php5_5.1.2-1ubuntu3.10_all.deb

Per a màquines de desenvolupament amb 7.10 feisty han alliberat la versió 5.2.3 de PHP.
php5_5.2.3-1ubuntu6.1_all.deb

Les novetats de la 5.1.2 anunciades el gener del 2006 són:

Seguretat:

  • HTTP Response Splitting has been addressed in ext/session and in the header() function. Header() can no longer be used to send multiple response headers in a single call.
  • Format string vulnerability in ext/mysqli.
  • Possible cross-site scripting problems in certain error conditions.

Novetats:

  • Hash extension was added to core and is now enabled by default. This extension provides support for most common hashing algorithms without reliance on 3rd party libraries.
  • XMLWriter was added and enabled by default.
  • New OCI8 extension that includes numerous fixes.
  • PNG compression support added to the GD extension.
  • Added --enable-gcov configure option to enable C-level code coverage.
  • getNamespaces() and getDocNamespaces() methods added to SimpleXML extension.

Sol·lució d'errors:

  • Correction of the many regressions in the strtotime() function.
  • Fixes of several crashes, leaks and memory corruptions found in the imap, pdo, gd, mysqli, mcrypt and soap extensions.
  • Corrected problems with the usage of SSI and virtual() in the Apache2 SAPI.
  • Build fixes for iconv and sybase_ct extensions.
  • Fixed the previously broken Sun(rise|set) functions.
  • SQLite libraries upgraded to 2.8.17 and 3.2.8
  • Win32 binaries now include libxml2-2.6.22 and libxslt-1.1.15.
El proper cop que feu als vostres servidors dapper un apt-get upgrade tindreu aquesta versió de PHP instal·lada.