All posts tagged Sistemes

profilingPHP

Intro to Xhprof and Xhgui

En Davey Shafik ens explica en dues entrades al web Engine Yard com fer profiling d’execucions PHP amb el profiler de Facebook Xhprof i com visualitzar les dades còmodament amb Xhgui.

 

Dos interessants articles que ens endinsa en les noves eines existents per conèixer detalladament que està fent els nostres scripts PHP quan s’executen: Ús de CPU, memòria, cops que s’ha cridat un mètode o funció i el graph de crides.

 

En la millora de la performance de les nostres aplicacions, també s’aplica el principi de Pareto, que ens diu que en molts casos el 80% dels efectes són conseqüència del 20% de les causes. Així doncs aquestes eines ens ajudaran a trobar fàcilment aquest 20% de codi que degrada el 80% de l’execució.

descarregada-16-oct

Coincidint amb la fira ecològica, el dissabte 16 d’octubre des de quarts de 10 fins a les dues de la tarda podeu dur aquell ordinador antic que ja no feu servir i no sabeu si funciona.

No importa l’estat en que es trobin les coses que dueu, de tot el que recollim en aquesta descarregada tecnològica, n’agafarem el que es pugui fer servir i potser de cada tres o quatre ordinadors en fem un.

Ordinadors, discs, memòries, targetes, teclats, pantalles, ratolins, cables, impressores… tot el que tingui relació amb la informàtica i ja no empreu.

Es podran dur les màquines a Corretgé.com, al carrer de la Font número 2 (Plaça Major) fins el divendres 29 d’octubre.

Amb els ordinadors i peces recollides a la Descarregada Tecnològica, farem un taller per als i les joves de Verges que vulguin aprendre a reparar (potser apedaçar és més adhient ;-) ordinadors.

La primera hora serà teòrica i s’explicarà per sobre el funcionament dels ordinadors.

La resta d’hores, farem quatre o cinc grups, en funció de lo bé que hagi anat la descarregada i començarem a muntar ordinadors ‘nous’.

Després tocarà instal·lar el sistema operatiu per a poder fer anar els ordinadors que hem creat amb les peces descarregades. Serà Programari Lliure: l’autopista sense peatge cap a la sobirania tecnològica.

Instal·larem una distribució de Linux anomenada Ubuntu que és molt fàcil d’instal·lar, fer anar i actualitzar.

Si algú vol dur el seu ordinador de casa per participar de la festa de la instal·lació, endavant! no ens el quedarem pas per a l’Aula ;-)

En el següent experiment de Corretgé.com observem la gravació d’un arxiu d’1 MB sobre diferents suports i els temps obtinguts, en tots hem fet servir la instrucció dd:

dd if=/dev/zero of=/tmp/1gb.tmp bs=1M count=1

Obtenim la mitja de només 3 mostres, totes són similars:

En un SATA Western Digital Caviar Black normal i corrent en ASUS P5Q: 322 MB/s
En dos SATA Western Digital Caviar Black amb RAID-1 per placa ASUS P5Q: 525 MB/s
En unitat NFS sobre el servidor en RAID anterior a GigaBit: 60,1 MB/s
En disc virtual VMWare sobre servidor RAID anterior: 506 MB/s
En disc virtual XenServer sobre servidor amb discos SSD: 935 MB/s
En unitat NFS sobre el servidor XenServer anterior: 341 MB/s

El lloc web W3Schools ofereix unes estadístiques del sistema operatiu dels visitants d’aquest lloc.

Els visitants d’aquestes planes acostuma a ser un perfil tècnic creador d’aplicacions web. Destaca el predomini dels sistemes operatius de Microsoft, amb l’XP encara com a clar guanyador i la constància de que cada cop més programadors empren Mac per a la seva feina.

Linux es manté en el % de representació, força baix per cert. Caldrà fer més pedagogia i demostrar la viabilitat d’aquest gran sistema.

A corretgé.com

Operating System
1. 5,760 60.77%
2. 3,153 33.26%
3. 508 5.36%
4. 30 0.32%
5. 18 0.19%
6. 5 0.05%
7. 4 0.04%
8. 1 0.01%

Divendres vinent es deixarà de comercialitzar la versió XP de Windows. Els proveïdors de software estan arribant a acords amb Microsoft per a poder comercialitzar Windows XP durant 6 mesos més després de la data de finalització.

Sembla ser que el període de gràcia pactat, sempre amb prereserves realitzades aquesta setmana, coincidiria amb el llançament de Windows 7, que pel que diuen, serà un sistema amb cara i ulls. La política de Microsoft de fer pagar llicències per versions Beta com el Vista, està emprenyant a molts usuaris i empreses, que valoren cada cop més fer el salt a Open Source.

Serà el frau de Vista realment la fi de Windows?

edifici-google

Seran útils per ajudar a determinar si el nostre ISP ens redueix l’ample de banda en emprar algun servei concret com el P2P, per exemple, i s’emmarquen en la campanya mediàtica i política que la companyia del cercador fa en pro d’una xarxa neutral.

Guillem Alsina (guillem@imatica.org) – Segons va publicar fa uns dies el rotatiu en línia britànic especialitzat en noves tecnologies, The Register, Google està preparant una suite d’utilitats per a què els usuaris de connexions de banda ampla puguin analitzar el trànsit de la seva connexió per saber si l’ISP que els proporciona el servei prioritza un determinat trànsit sobre un altre, violant d’aquesta manera l’anomenat “principi de neutralitat” que dicta que el proveïdor del servei de connexió no establirà prioritats per als paquets de dades en funció del servei en línia al qual pertanyin.

Aquesta afirmació es basa en les declaracions que Richard Whitt, Google senior policy director, va fer en un acte a la Universitat de Santa Clara, prop de San Francisco, ciutat en la que Google hi té unes instal·lacions.

En paraules de Whitt, la companyia del cercador està preparant un conjunt d’eines de programari que permetran als internautes saber què és el que està passant amb la seva connexió de banda ampla per queixar-se al seu ISP si alguna cosa no els agrada.

No s’han donat més detalls sobre aquestes eines, ni tan sols una data de publicació encara que sigui en fase beta. L’únic que hi ha afegit Whitt és que els enginyers de Google ja fa temps que treballen en aquestes solucions, i el redactor de The Register que ha escrit la notícia (Cade Metz) lliga caps entre aquest anunci i el cas Comcast, un important ISP nord-americà que l’any passat va bloquejar el trànsit corresponent al servei BitTorrent, violant flagrantment el principi de neutralitat de la Xarxa.

En favor de la neutralitat

L’actitud de Google a favor de la neutralitat dels operadors davant dels serveis que empren les seves connexions s’ajusta a la seva pròpia estratègia comercial i de serveis. No debades, els ISP’s que ara bloquegen o redueixen a una petita canonada el trànsit generat pels polèmics serveis P2P, demà podrien fer el mateix amb YouTube, Google Talk o altres serveis proporcionats per la companyia del cercador. En resum, Google busca assegurar-se el seu futur en el present mitjançant la creació d’un grup de pressió o lobby a Washington que asseguri la neutralitat de la Xarxa.

La neutralitat es troba -almenys en teoria- garantida actualment, però hi ha poderosos interessos que intenten canviar aquest status quo per poder donar més prioritat a una sèrie de serveis sobre d’altres. Un d’aquests lobbies és el de la indústria discogràfica i del cinema, que busquen aconseguir una major difusió dels serveis de descàrregues legals (llegeixi’s de pagament) dels seus continguts enfront d’altres serveis que porten penjada l’etiqueta de pirates (xarxes P2P). Els serveis de veu sobre IP també podrien veure’s afectats per una Internet no neutral en funció dels interessos de les operadores.

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

feather

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.

PHP 5.1.2 al repositori Ubuntu Server 6.06

Categories: PHP, Sistemes
Desactiva els comentaris
php

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.

Una manera de saber els paquets que hem instal·lat durant la vida d’un sistema és logejar apt-get, al ser aquesta comanda la via més pràctica d’instal·lar i actualitzar aplicacions en un sistema. És recomabable fer aquesta acció el primer cop que instal·lem un sistema, i així guardar tota la història al log. Per aconseguir un log d’apt-get seguirem aquestses pases:

Creant un nou local de syslog

Afegirem un nou aplicatiu que syslog captura editant /etc/syslog.conf
# 4 - apt-get
#
local4.* /var/log/crt.apt-get.log

I reiniciarem el dimoni dels logs
/etc/init.d/sysklogd restart

Creant un nou procès per a apt-get

Crearem un arxiu anomenat 01syslog a /etc/apt-get/apt-conf.d/ amb aquest contingut:
DPkg::Pre-Install-Pkgs {"/usr/local/bin/syslog-apt-get ";};

Nota: per a ubuntu 6.06 el trobareu a /etc/apt/apt-conf.d/

Fem Pre-Install pq segons expliquen en aquesta FAQ és qui du el nom del paquet.

Crearem un script /usr/local/bin/syslog-apt-get amb aquest contingut
#!/bin/bash
while read paket;
do logger -p local4.info ${paket#/var/cache/apt/archives/};
done

I fem que sigui executable
chmod gu+x /usr/local/bin/syslog-apt-get

I ja està operatiu, sempre més que afem apt-get install el que sigui, tindrem el log a /var/log/crt.apt-get.log per exemple, al fer
apt-get install build-essential

obtindrem:
Nov 25 12:11:11 rehman logger: libc6_2.3.6-0ubuntu20.5_i386.deb
Nov 25 12:11:11 rehman logger: libc6-i686_2.3.6-0ubuntu20.5_i386.deb
Nov 25 12:11:11 rehman logger: binutils_2.16.1cvs20060117-1ubuntu2.1_i386.deb
Nov 25 12:11:11 rehman logger: linux-kernel-headers_2.6.11.2-0ubuntu18_i386.deb
Nov 25 12:11:11 rehman logger: libc6-dev_2.3.6-0ubuntu20.5_i386.deb
Nov 25 12:11:11 rehman logger: cpp-4.0_4.0.3-1ubuntu5_i386.deb
Nov 25 12:11:11 rehman logger: cpp_4%3a4.0.3-1_i386.deb
Nov 25 12:11:11 rehman logger: gcc-4.0_4.0.3-1ubuntu5_i386.deb
Nov 25 12:11:11 rehman logger: gcc_4%3a4.0.3-1_i386.deb
Nov 25 12:11:11 rehman logger: libstdc++6-4.0-dev_4.0.3-1ubuntu5_i386.deb
Nov 25 12:11:11 rehman logger: g++-4.0_4.0.3-1ubuntu5_i386.deb
Nov 25 12:11:11 rehman logger: g++_4%3a4.0.3-1_i386.deb
Nov 25 12:11:11 rehman logger: make_3.80+3.81.b4-1_i386.deb
Nov 25 12:11:11 rehman logger: dpkg-dev_1.13.11ubuntu7_all.deb
Nov 25 12:11:11 rehman logger: build-essential_11.1_i386.deb