Zend Framework 1.0.4 e 1.5RC

Disponibili le nuove versioni del framework ufficiale Zend per PHP.

Sono state annunciate ieri le due nuove versioni dello Zend Framework.

La 1.0.4 è una maintenance release, che corregge un centinaio di bug. Sarò stato fortunato, o magari non uso ancora molte delle funzioni del framework, ma non mi è ancora mai capitato di incappare in un errore da quando ZF è alla versione 1.0.x. Ne ho trovati un paio mentre era in beta, corretti rapidamente.

La 1.5RC è la prima release candidate della nuova versione, che dovrebbe uscire in versione definitiva entro 1 mesetto. Qui le novità rispetto alla 1.0.x sono moltissime. La più importante, forse, è il nuovo modulo Zend_Layout che dovrebbe risolvere molti problemi dell’attuale modello di View in caso di siti con layout molto simile in molte pagine: la maggior parte, insomma. Altre innovazioni sono lo Zend_Form (che personalmente non mi piace molto perché sembra mischi la logica di Controller e View, ma dovrò approfondire) che supporta form potenziati da AJAX, nuovi helpers per Action e View per un migliore supporto AJAX, nuovi componenti per Advanced View, nuovi componenti per l’autenticazione tramite Information Card e OpenID, e miglioramenti importanti a Lucene (un “motore di ricerca” integrato nel framework, per indicizzare documenti di vari tipi), per la generazione di PDF (ora con supporto UTF-8) e ai web services (Technorati e Slide Share).

Entrambe richiedono almeno PHP 5.1.4 per funzionare, ma io consiglio di passare direttamente a PHP 5.2.

Spero solo di trovare un po’ di tempo per smanettare con la 1.5. Alcuni dei nuovi moduli sembrano molto interessanti.

Devo però muovere una critica agli sviluppatori: nella documentazione non si capisce da quale versione un certo modulo o una certa funzione sono state implementate, col risultato che ci si trova magari a cercare di usare con la 1.0.4 una funzione o una classe che esistono solo nella 1.5 e non si capisce dove sia l’errore finché non si va a vedere il sorgente del framework. Appena mi verrà attivato l’account nel bug tracker credo che aprirò una segnalazione a proposito.

ATI o nVidia? (o Intel?)

Quale scheda video usare con Linux?

Prendo spunto da una domanda di Luca tra i commenti del mio post sul nuovo PC e ne approfitto per un nuovo post. Luca mi chiede perché ho preso ATI e non nVidia come scheda video. Vorrei fare qui un breve riassunto dei motivi che mi hanno spinto a questa scelta.

Fasce di utilizzo

A livello di schede video ad alte prestazioni ormai sul mercato sono rimaste solo ATI e nVidia. Le proposte di Intel (spesso integrate nei chipset dei notebook), di S3 e di VIA sono molto lontane, prestazionalmente parlando, dalle due case più famose. Quindi già possiamo fare una distinzione: se ci servono schede potenti, principalmente per giocare (ad altro non servono, queste prestazioni) si deve scegliere tra ATI e nVidia. Se vogliamo schede video economiche possiamo rivolgerci anche agli altri produttori.

In entrambe queste categorie, per noi “Linuxari”, si pone il problema dei driver. nVidia fornisce degli ottimi driver, ma non fornisce sorgenti e specifiche dell’hardware. Intel da molto tempo fornisce driver open source e specifiche complete alle sue schede video. S3 e VIA sono abbastanza restie a rilasciare driver open source o informazioni, ma un po’ alla volta il supporto compare in Xorg. ATI ha sempre mantenuto il massimo riserbo sui suoi nuovi chipset, pubblicando solo alcune specifiche dei vecchi chipset, ma ha cambiato completamente politica quando è stata acquistata da AMD (la stava già cambiando prima, ma l’acquisizione ha dato una spintarella al processo). Notizia di questi giorni l’apertura di una sezione del loro sito dedicata alle specifiche delle suo nuove schede.

Funzioni accessorie

Ci sono altri fattori che possono far pendere l’ago della bilancia in una direzione o nell’altra. Per esempio i consumi, sia a pieno regime che in condizioni di scarso utilizzo, soprattutto della sezione 3D della scheda (o di quella 2D, viste le ultime tendenze). Da questo punto di vista probabilmente Intel e VIA sono le migliori, essendo soluzioni pensate per dispositivi mobili o embedded, ma ATI ha fatto un discreto sforzo, soprattutto di recente, per abbassare almeno i consumi minimi, ed ha anche annunciato di recente il nuovo chip, Imageon, per dispositivi embedded.

nVidia, d’altro canto, si sta concentrando sullo sfruttare la GPU per “aiutare” la CPU in alcuni tipi di calcoli, in modo da sfruttare la potenza della scheda video anche quando non la si utilizza per le normali funzioni, come per calcoli fisici dopo l’acquisizione di Ageia.

Su dispositivi portatili ed embedded spesso ci si trova un certo tipo di scheda video, quindi le scelte sono limitate o nulle, ma fortunatamente il supporto per Linux nel mondo embedded si sta ampliando a macchia d’olio, quindi se non possiamo ancora dire di essere tranquilli, almeno possiamo essere meno tesi di qualche anno fa, quando eravamo costretti a usare driver VESA o, peggio, VGA standard.

La scelta

Cosa scegliere? Si tratta soprattutto di valutare le proprie esigenze, e di trovare il prodotto che più vi si adatta.

Per quanto mi riguarda i parametri di scelta erano: bassi consumi quando poco utilizzata, quindi bassa rumorosità e bassa dispersione di calore; prestazioni alte e possibilità di usare Crossfire/SLI per aumentare le prestazioni in futuro senza buttare la vecchia scheda; driver open source disponibili (o quasi); prezzo non esagerato.

La scelta si era ristretta tra la ATI Radeon HD3870 e la nVidia 8800, e il prezzo doveva essere inferiore ai 200 euro. La Radeon, da test trovati in giro (scusate, non ritrovo il link), si domostrava piu` parsimoniosa dal punto di vista elettrico. La 3850 offriva un rapporto prezzo/prestazioni migliore, ma ho trovato un’offerta per la 3870 che ha cambiato questo parametro. E infine i driver: ATI fornisce i driver closed che supportano bene la scheda, e sono quasi pronti i driver open che la supportano almeno in 2D (è di ieri l’annuncio ufficiale della prima versione pubblica dei nuovi driver ati), fornendo anche pieno supporto alla comunità opensource, mentre nVidia fornisce solo driver closed, anche se non si sta opponendo attivamente allo sviluppo dei driver open basati su reverse engineering.

Ho pessime esperienze dovuto all’uso di driver closed (per controller IDE, schede WiFi, VmWare, ecc.), quindi per me è fondamentale che una scheda abbia driver open, anche se magari non supportano proprio tutte le funzioni della scheda o non la sfruttano al 100%. O che almeno ci sia la possibilità che siano sviluppati.

Per questo ho scelto ATI.

De formatationis velocitate

E non lamentatevi del titolo, non ho studiato latino! :)

Ieri (sì, di sabato) stavo sistemando un PC per un cliente, che ha fatto un upgrade di hard disk. Essendo infettato dal virus Microsoft (nella variante XP.32), ho passato un’oretta a giocare a Titan Quest mentre il virus si installava sulla partizione primaria da 10 GiB.

Al termine dell’installazione ho iniziato a cercare i vari driver per scheda audio, video, ethernet e SerialATA, e nel frattempo ho lanciato la formattazione della partizione secondaria, quella dei dati: 417 GiB in NTFS. Sapevo che ci avrebbe messo un po’…

Beh, se dovete farlo anche voi prendetevi per tempo, perché la procedura ha impiegato ben un’ora e 50 minuti!

E mi ha bloccato la finestra di “Esplora risorse” fino alla fine della formattazione, perché (stupidamente?) ho biclickato sulla partizione e alla domanda “Partizione non formattata. Vuoi formattarla?” ho ingenuamente risposto “Sì”. E quando dico bloccata intendo proprio piantata: non si può spostare, non si può iconificare, non ho potuto nemmeno smontare un disco USB perché era bloccato da quella finestra (che lo visualizzava tra i device disponibili). Probabilmente clickando col destro e selezionando “formatta” dal menu non l’avrebbe fatto. Tenete a mente anche questo.

Di contro, una partizione simile (380 GiB) formattata in ext3 (giusto una decina di giorni fa) ha impiegato meno di 10 minuti.

Per fortuna non è saltata la corrente a un’ora e 45…

Asus P5K-E con Linux: convivenza pacifica

Dopo varie peripezie, sono finalmente riuscito a montare e iniziare a usare il nuovo PC.

La parte più “delicata” del tutto è la scheda madre. Non volevo spendere un capitale, ma nemmeno mettere roba troppo vecchia, quindi ho puntato sulla MoBo in oggetto per diversi motivi: 6 porte USB esterne e 4 interne, 6 porte SATA interne e 2 esterne, 4 slot DDR2 (con supporto dualchannel) e scheda WiFi integrata. Le altre caratteristiche erano meno importanti, ma comunque utili: firewire, un (solo) connettore PATA, ethernet 10/100/1000, due connettori PCIe (16x e 4x) oltre ai due PCIe 1x e ai tre PCI (che non uso, eliminando anche la scheda WiFi che era l’ultima rimasta sul vecchio PC, a parte la scheda video).

Wi-Fi

Il dubbio più grosso era sulla scheda WiFi, inizialmente perché non sapevo nemmeno quale chipset montasse e poi, avendolo scoperto, sul suo supporto. Si tratta infatti di un Realtek 8187. La mia precedente esperienza con questo chipset era stata disastrosa, al punto che ho reinscatolato la scheda e ne ho comprata un’altra con chipset Atheros, già allora (circa 3 anni fa) abbastanza ben supportato.

Mi sono quindi guardato intorno e ho scoperto che il kernel 2.6.24 (appena uscito) la supporta.

Finito di installare la Debian testing, attraverso la Ethernet ben supportata dal kernel 2.6.21 che c’era sul DVD di installazione, ho scaricato dai repository il nuovo kernel, prendendolo direttamente da “pool” tramite lynx e ho installato tutto. Ho scaricato anche i pacchetti necessari a module-installer, perché in seguito mi sarebbero serviti per i driver fglrx, necessari per avere il 3D sulla nuova Radeon HD3870.

Riavviato il computer, il (magico) udev ha rilevato la scheda WiFi senza alcun problema, e ho dovuto solo dare un paio di comandi:

iwlist scan    			# per vedere se funzionava e rilevare l'AP
iwconfig essid MioEssid    	# Per associarla con l'AP
ipconfig wlan0 1.2.3.4    	# Per assegnare l'IP statico
route add default gw 1.2.3.1    # Per impostare la route verso l'AP

Tutto perfetto (dopo aver impostato i DNS in /etc/resolv.conf naturalmente), 1 minuto ed ero in rete. Non mi era mai successo con le schede WiFi. Sembra che il nuovo stack WiFi nel kernel funzioni bene, e anche il kernel di per sé sembra molto stabile, almeno per i 3 giorni di funzionamento continuato che sono riuscito a fare.

L’unico problema l’ho avuto con network-manager. L’avevo installato sperando mi “desse una mano” nella configurazione, ma visto che uso un IP statico per esigenze di forwarding dall’AP al PC, alla fine non l’ho usato. Solo che ogni tanto, senza apparente ragione, la scheda perdeva la portante, per poi riprenderla qualche secondo dopo.

Secondi sufficienti a rallentare mostruosamente i trasferimenti, e a far cadere anche qualche connessione per timeout. Non me ne sono accorto subito perché ogni tanto succedeva anche prima, a causa della linea ADSL.

Rimosso network-manager, la scheda non ha più avuto problemi. Ho quindi provveduto a configurare /etc/network/interfaces per attivarla al boot.

CPU e RAM

La CPU che ho scelto è un Intel Core 2 Duo E6550, a 2,33 GHz.

Da questo punto di vista nessunissimo problema. Linux riconosce due processori e lavora in parallelo. Un mostro in confronto al vecchio Athlon XP 2400.

Qualche problemino dal punto di vista della RAM, ma solo perché non ci ho perso troppo tempo: ho installato la Lenny a 32bit (per rimanere compatibile con alcuni software che dovrò far girare, è un po’ lunga…) e “vede” solo 3.5 GiB dei 4 installati. Magari nei prossimi giorni proverò il kernel bigmem (che supporta fino a 16 GiB) e vedrò cosa salta fuori.

Tutto il resto

Non ho avuto occasione di provare il firewire, perché non ho nessuna periferica di quel tipo, ma tutto il resto funziona al primo colpo: USB 2.0, scheda audio (funziona talmente in automatico che non so nemmeno che chipset monti), ethernet (stesso discorso della scheda audio), SATA (il disco appare come SCSI: /dev/sda), PATA (riconosciuti lettore e masterizzatore DVD), e anche il pannello frontale con lettore di flashcard e porte USB, ma questo lo sapevo già visto che lo usavo anche prima.

La scheda video richiede i driver closed source fglrx per funzionare in 3D. Purtroppo i driver liberi radeonhd (peraltro inclusi in Debian) non supportano ancora l’accelerazione 3D, e sono ancora indietro anche per l’accelerazione 2D. Fortunatamente Debian pacchettizza tutto e basta un

m-a a-i fglrx

per installarli, e un

aticonfig --initial

per configurare Xorg.

Non ho ancora avuto occasione di provare a fondo la nuova scheda video, ma il tutto è sicuramente molto più silenzioso del precedente. Ho scelto tutto in modo che “downclocki” quando non viene usato, quindi le ventole sono quasi ferme.