Call-time pass-by-reference has been deprecated
If you recently upgraded PHP to version 5.3.0 or higher, you have probably encountered a message like this:
Deprecated: Call-time pass-by-reference has been deprecated in filename.php
Use & when you call a function foo(&$var) generates the warning message.
Remember that in 5.3 version of PHP only Call-time pass by reference is deprecated but not Passing by reference.
See the example below:
// normal passing by reference function functionA(&$var) { $var++; } // call-time passing by reference function functionB($var) { $var++; } // correct call functionA($var); // deprecated functionB(&$var);
If you can't edit existing code, for example, third-party software, you can use these work-arounds:
- Turn off error messages: is always a good idea hide any type of error message in a production site. You can use error_reporting(0) function or if you want you can use the @ symbol before any statement. This is not a good solution of this problem.
- Allow call-time pass-by-reference in your php.ini file: in your php.ini file you can set allow_call_time_pass_reference = on but this is a temporary solution only until the next version.
Resources:
UTF-8 problem with Spreadsheet Excel Writer
Spreadsheet Excel Writer is a PEAR package that allows you to generate Excel documents.
When we try to generate an new Excel document using UTF-8 string we ran into a display error.
There is a simple way to fix this problem. See the example below:
$workbook = new Spreadsheet_Excel_Writer(); $workbook->send("file.xls"); // add this row $workbook->setVersion(8); $worksheet =& $workbook->addWorksheet("My worksheet"); // add this row $worksheet->setInputEncoding("UTF-8"); $workbook->close();
Create a PHP data structure accessible like an array and an object simultaneously
Often we need to operate with objects that sometimes we have to use as an array.
For example we can get an attribute from an object:
$attr = $myObject->attr;
or by array access from the same object
$attr = $myObject['attr'];
We can set data simply like an array or directly.
// create object setting data by array $myArray = array('apple' => 'red', 'pear' => 'green', 'lemon' => 'yellow', 'apricot' => 'orange' ); $myObject = new MyObject($myArray); // create object setting data by magic method __set() $myObject = new MyObject(); $myObject->apple = 'red'; $myObject->pear = 'green'; $myObject->lemon = 'yellow'; $myObject->apricot = 'orange';
This is the class source code:
Impostare l’ambiente di sviluppo per Zend Framework su Ubuntu
Se vogliamo iniziare a conoscere il fantastico mondo di Zend Framework sarà necessario creare un ambiente di sviluppo adatto alle nostre esigenze. In questa guida vedremo come configurare la nostra distribuzione Ubuntu per poter lavorare in locale con tutti gli strumenti necessari.
Lo scopo di questo tutorial è quello di ottenere un sistema di sviluppo per Zend Framework
Configurazione del sistema operativo
Quello che noi vogliamo ottenere è un server LAMP configurato ah hoc per le nostre applicazioni web. Per prima cosa installiamo MySQL:
sudo apt-get install mysql-server mysql-client
Se vogliamo rendere accessibile il server MySQL dall'esterno dobbiamo modificare il file /etc/mysql/my.conf
sudo nano /etc/mysql/my.conf
e commentare la linea
#bind 127.0.0.1Questa configurazione del sistema utilizzerà Zend Server CE che comprende la propria versione di PHP e le librerie vere e proprie di Zend Framework. Fortunatamente Zend ha messo ha disposizione i repository contenenti tutti i pacchetti per le varie distribuzioni di Linux tra cui Debian/Ubuntu. Seguiamo quindi le indicazioni fornite aggiungiamo il nostro repository al file /etc/apt/source.list.
deb http://repos.zend.com/zend-server/deb server non-free
Tunnel SSH
L'idea di poter creare un canale virtuale cifrato tra due computer remoti attraverso internet permette di scambiare dati in modo sicuro e apre le porte a numerose applicazioni.
Immaginiamo di dover accedere alla nostra rete privata di casa senza l'uso di VPN da una postazione esterna alla LAN.
Chiameremo server il pc di casa che accetta la connessione dall'esterno sulla porta 22 e client il pc remoto dal quale vogliamo connetterci. Per creare il nostro tunnell SSH non dobbiamo far altro che lanciare il seguente comando dal client:
ssh -N -D 9999 user@server.mydomain.com
Verrà creato un socket tra client e server, l'opzione -N impedisce che vengano eseguiti comandi remoti mentre l'opzione -D 9999 specifica che vogliamo creare un socket sulla porta 9999 del client. A questo punto abbiamo un canale collegato direttamente al nostro server accessibile dal nostro browser. Per poter navigare come se fossimo sul server è necessario configurare firefox in modo che utilizzi il socket. Abbiamo due opzioni, una consiste nel modificare le preferenze direttamente nel browser, la seconda consiste nell'installare l'estensione Foxy Proxy. Quest'ultimo è comodo per facilitare il passaggio tra navigazione diretta e navigazione tramite socket. Nel primo caso andiamo nelle preferenze di Firefox, selezioniamo la tab Avanzate, poi la tab Rete e clicchiamo su Impostazioni di rete, selezioniamo quindi la voce "Configurazione manuale del proxy". Scriviamo localhost nella casella Proxy HTTP e 9999 nella casella Porta.
Acquisire video da videocamera firewire con Kdenlive su Kubuntu 9.10
Tramite questa guida impareremo ad acquisire i nostri video dalla videocamera al pc e successivamente archiviarli in formato DVD video.
I passaggi che seguono sono stati effettuati su un sistema GNU/Linux Kubuntu 9.10 Karmik Koala con desktop KDE (non dovrebbero esserci problemi per Gnome) e una videocamere Samsung con interfaccia firewire (IEEE_1394).
Per prima cosa installiamo kdenlive e le relative librerie.
sudo apt-get update sudo apt-get install kdenlive
Dopo l'installazione apriamo kdenlive e verrà mostrato un breve wizard sulla configurazione del programma, quindi apparirà la schermata principale.
A questo punto colleghiamo la videocamera all'interfaccia firewire e, come potrete notare nella sezione monitor registrazione, la videocamera non sarà disponibile. Questo è dovuto al fatto che il driver che comanda la periferica, /dev/raw1394, ha i permessi impostati solo per l'utente root. Per ovviare a questo inconveniente esistono vari metodi descritti nella guida ufficiale di Ubuntu a questo indirizzo https://help.ubuntu.com/community/Firewire.
Il metodo che ho utilizzato consiste nell'aggiungere un gruppo denominato firewire di cui il nostro utente farà parte.
Schermata blu in aeroporto, Windows non si smentisce mai
È certamente una piccola soddisfazione da condividere quella che ti può capitare in una qualsiasi giornata di novembre nei pressi dell'aeroporto di Malpensa, in particolare al ritoro bagagli.
Una lunga serie di monitor pubblicitari che circondano l'edificio, mostrando spot programmati uno dietro l'altro, intrattengono gli impazienti passeggeri che dopo interminabili minuti si vedono finalmente recapitare il proprio bagaglio. D'improvviso, quando sei ormai incantato e il tuo sguardo è completamente catturato da uno di questi monitor... Puff! Schermata blu! A quel punto non sai se ridere o rimanere in eterna attesa del tuo bagaglio. Io nel dubbio ho tirato fuori la macchina fotografica.
Che dire? Questo è Windows, il sistema operativo definito sicuro e affidabile da casa Microsoft, voi ci credere? Io no.
Ma cos'è una schermata blu e perchè compare? Windows blocca il computer quando a livello kernel viene generato un errore che non è risolvibile dal sistema operativo. Ciò puè essere causato da un driver di qualche periferica, spesso sviluppato da terze parti, oppure dal kernel stesso. Per evitare di causare danni ai dati presenti sull'hard disk, Windows ha come unica soluzione quella di bloccare il computer. Per approfondire: http://en.wikipedia.org/wiki/Blue_Screen_of_Death
Non voglio ora entrare in merito alla logica di funzionamento, ma diamo un'occhiata alle storiche figuracce di Windows.
Forse la più famosa durante la presentazione di Windows 98, molti di voi ricorderanno la risata a denti stretti di Bill Gates dopo la comparsa della temutissima Blue Screen of Death:
Vediamo invece cosa succede quando qualcosa non funziona durante la presentazione di Windows Media Center e Bill Gates vorrebbe spaccarlo quel telecomando, ma anche l'Xbox non sembra poi così stabile:
Se ancora siete convinti che Windows sia un sistema operativo sicuro e affidabile guardate qui e poi leggete qui.
Software per la scansione su KDE4
Dopo anni che non utilizzavo uno scanner per digitalizzare fotografie o documenti mi sono ritrovato a rispolverare quella vecchia scatola rettangolare ormai finita in archivio. Entusiasta del fatto che con le precedenti versioni di linux il mio HP Scanjet 3300C veniva riconosciuto e funzionava alla perfezione mi sono apprestato a collegare alimentatore e cavo USB, e come per magia, la luce bianca si è accesa.
Benissimo, ora procediamo con la scansione, apriamo il programma... bene! Quale programma? Cercando nel menu di KDE non trovo nulla che corrisponda alla stringa "scan". Niente male, installiamo Kooka con apt-get ed il gioco è fatto.
Niente di più sbagliato, kooka è stato cancellato dal pacchetto KDE Graphics. Cerchiamo quali pacchetti per KDE ci offre synaptic e compare magicamente Skanlite.
Apparentemente appare molto semplice, all'avvio riconosce immediatamente le periferiche di acquisizione video, incluse webcam.

Per quanto mi riguarda ha fatto egregiamente il suo lavoro e risulta essere un software leggero, intuitivo, ma soprattutto un software che fa quello che gli si chiede di fare.
Problema di escape nel plugin WP-Syntax per Wordpress
WP-Syntax è il plugin che utilizzo per evidenziare i codici che inserisco nei miei post. Da subito ho notato un problema che deriva dall'editor integrato di Wordpress. Infatti al momento dell'inserimento del codice all'interno dei tag <pre></pre> tra il passaggio da modalità "Visuale" o "HTML" i caratteri speciali vengono convertiti in entità HTML, come per esempio i carattetri <> vengono tradotti in < >
Cercando velocemente su Internet ho subito trovato una soluzione immediata, ovvero un workaround che utilizza la funzione htmlspecialchars_decode di PHP.
Modificando una riga del file wp-syntax.php si risolve il problema.
//$geshi = new GeSHi($code, $language); $geshi = new GeSHi(htmlspecialchars_decode($code), $language);
Nota: la funzione htmlspecialchars_decode è disponibile solo per le versioni di PHP superiori o uguali alla 5.1.0. Per le versioni precedenti è possibile simularla in questo modo:
if (!function_exists("htmlspecialchars_decode")) { function htmlspecialchars_decode($string, $quote_style = ENT_COMPAT) { return strtr($string, array_flip(get_html_translation_table(HTML_SPECIALCHARS, $quote_style))); } }
Fonte: http://blog.felho.hu/escaping-problem-with-wp-syntax-wordpress-plugin.html


