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();
, ,

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.

, ,

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.1

Questa 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

Read the rest of this entry

, , , , ,

La gestione di un menu e delle relative pagine è molto semplice grazie alla classe Zend Navigation.
Il manuale di Zend Framework spiega molto bene come utilizzare questo componente. In breve il principio di funzionamento consiste nel creare oggetti pagina (Zend_Navigation_Page) che a loro volta possono contenere altre pagine. Questa struttura dati verrà poi data in pasto alla classe Zend_Navigation che si occuperà di mettere a disposizione tutti i metodi necessari per la gestione del menu.

Possiamo creare un metodo privato all’interno del nostro Bootstrap per inizializzare il menu e renderlo disponibile agli helper nella view.

protected function _initNavigation()
    {
        $this->bootstrap('layout');
        $layout = $this->getResource('layout');
        $view = $layout->getView();
 
        // create pages
        $pages = array(
                array(
                        'label'         => 'Home',
                        'module'        => 'default',
                        'controller'    => 'index',
                        'action'        => 'index',
                        'order'         => -100 // first page
                ),
                array(
                        'label'         => 'Posts',
                        'module'        => 'default',
                        'controller'    => 'posts',
                        'action'        => 'index',
                        'visible'       => true,
                        'pages'         => array(
                                array(
                                        'label'         => 'Add',
                                        'module'        => 'default',
                                        'controller'    => 'posts',
                                        'action'        => 'add'
                                )
                        )
                ),
                array(
                        'label'      => 'Administration',
                        'module'     => 'admin',
                        'controller' => 'index',
                        'action'     => 'index',
                        'resource'   => 'mvc:admin', // resource
                )
        );
 
        // create container from array
        $navigation = new Zend_Navigation($pages);
        Zend_Registry::set('Zend_Navigation', $navigation);
        $view->navigation($navigation);
    }
, ,

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.

Read the rest of this entry

, , ,

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.

kdenlive

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.

Read the rest of this entry

, , , , , , ,