Steve Jobs 1955-2011

Grazie! È tutto quello che posso dirti, grazie per avermi fatto sognare, per avermi fatto divertire e per avermi fatto lavorare.

Grazie! È tutto quello che posso dirti, grazie per avermi fatto sognare, per avermi fatto divertire e per avermi fatto lavorare.
Oggi mi è successo di dover installare Centos 5.6 su di un server con 3Tb di storage. Durante l’installazione al momento di creare le partizioni ricevevo un errore strano: “impossibile fare il boot da una partizione GPT”. In sostanza il vecchio MBR supporta volumi di massimo 2Tb quindi se si crea un volume logico maggiore di 2Tb i nuovi server dotati di EFI al posto di MBR utilizzano GPT che ovviamente ha molte meno limitazioni ed è più flessibile. Il kernel di default di Centos 5.6 ha il supporto per GPT tuttavia pare che GRUB non riesca a fare il but da questi volumi.
Come risolvere il problema?
Semplice! con il tools di HP per lo smartarray ho creato un array da 3Tb poi al sue interno ho creato due volumi logici, 1 da un Gb e l’altro grande quanto tutto lo spazio a disposizione entrambi raid 5.
Con questa configurazione il disco da 1Gb viene creato come MBR e l’altro come GPT. Durante l’installazione di Centos 5.6 anaconda partiziona correttamente installando /boot in una partizione di 100Mb del volume da 1Gb e il resto in LVM con due partizioni per swap e /.
Ciao
Negli ultimi mesi, con tante web app da realizzare e poco tempo per farle mi sono messo alla ricerca di un qualcosa che potesse fornirmi gli strumenti idonei a procedere con velocità. In particolare cercavo qualcosa per mostrare i dati, una griglia in cui mostrare i dati, poterli ordinare, spostare, paginare ed anche, all’occasione, editare. Durante le ricerche capito sul sito di ExtJs, ora Sencha, e scopro non solo una griglia che fa tutto quello che mi serve ma un intero ed enorme framework che praticamente, con l’ultima versione, ha tutti i componenti necessari costruire un’applicazione web.
Non solo, proprio nei giorni in cui muovevo i primi passi per scoprire questo framework, è stato rilasciato Ext Designer, un software multi-piattaforma, che permette con il semplice Drag & Drop di creare gli elementi dell’interfaccia grafica dell’applicazione, utilizzando i componenti di ExtJs.
Incredibile, posso creare un’intera interfaccia senza scrivere una riga di html o css, fantastico proprio quello che cercavo. Menu, finestre, form e griglie, tutto in modo semplice, coerente e lineare e non solo, controlli avanzati sui campi, data_store, combobox, data_grid insomma tutto!
Ho fatto la scelta, uso ExtJs!
L’apprendimento non è semplice, bisogna entrare nei meccanismi del framework e scoprirne le funzionalità davvero vastissime, nei prossimi giorni pubblicherò qualche tutorials su come usare Ext Designer per realizzare velocemente un’applicazione.
Sposto sul blog questo vecchio articolo che avevo pubblicato un pò di tempo fa!
Uno dei problemi che spesso si incontra sviluppando pagine web con PHP e MySLQ è quello dei caratteri, soprattutto quelli accentati o quelli aprticolari come l’euro €.
Il tutto dipende da errori di conversione fra diversi charset, infatti, spesso inconsapevolmente, il programmatore principiante non presta attenzione a questo aspetto durante lo sviluppo lasciando le impostazioni di default che spesso non coincidono.
Il database MySQL per esempio imposta come charset di default il latin1 mentre il web server solitamente utilizza utf-8. Durante questa conversione si possono creare delle imprecisioni che portano alla mancata visualizzazione dei caratteri.
Come risolvere il problema?
Semplice basta impostare tutto come utf-8 che è il charset consigliato dal w3c.
Allora per prima cosa impostate il vostro editor per scrivere con il charset utf-8.
Inserite in ogni pagina html, xhtml quale charset viene utilizzato con la seguente direttiva:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Quando create il database MySQL specificate come default charset utf-8 e come collation utf-8_general_ci.
Bisogna poi infine fare attenzione ad un aspetto critico. MySQL usa come default charset latin1 anche per il client e la connessione, queste opzioni sono configurate nelle variabili del server.
Potete procedere in due modi:
SET NAMES utf8
SET CHARACTER_SET utf8
Assicuratevi che anche il web server utilizzi il charset uft-8.
Ho fatto svariate prove e non ho avuto problemi con moltissimi caratteri sia in inserimento sul database che il lettura, se avete ulteriori informazioni per completare questo piccolo articolo inviatemele pure e le pubblicherò col vostro nome.
Eh si! Con Snow Leopard viene fornito a corredo il php 5.3 cioè l’ultima versione disponibile. Il problema è che php 5.3 apporta delle modifiche sostanziali a linguaggio ed elimina alcune funzioni, che poi da diversi anni si chiedeva di non usare più dichiarandole “Deprecated”, che di fatto impediscono il funzionamento di alcuni dei software open-source più comuni fra cui zen-cart, magento, joomla etc. Poiché sono uno sviluppatore che opera principalmente con questi software era per me impossibile mantenere il php 5.3 quindi piano piano sono riuscito a compilare il php 5.2.10 e farlo funzionare con Snow Leopard.
Riporto di seguito la procedura così come l’ho eseguita, è piuttosto lunga e un pò snervante e richiede un minimo di dimestichezza con la shell Unix. Alla fine otterrete una versione di php piuttosto completa, volendo potete aggiungere o togliere le estensioni, e completamente stand-alone che funziona a 64 bit correttamente con web server apache installato di default con Snow Leopard.
Installate prima di tutto mysql prelevando l’ultima versione dal sito www.mysql.com, ovviamente prendete quella per 10.5 x86_64
Prepariamo le directory necessarie:
sudo mkdir /usr/local/php5.2
mkdir ~/src
cd src
installare prima le librerie necessarie in /usr/local/php5.2/
installazione t1lib
curl -O ftp://sunsite.unc.edu/pub/linux/libs/graphics/t1lib-5.1.2.tar.gz
tar xzf t1lib-5.1.2.tar.gz
cd t1lib-5.1.2
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
make without_doc
sudo make install
cd ..
installazione lib jpeg
curl -O http://www.ijg.org/files/jpegsrc.v7.tar.gz
tar -xzf jpegsrc.v7.tar.gz
cd jpeg-7/
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
make
sudo make install
cd ..
installazione lib png
Scaricatela da http://www.libpng.org/pub/png/libpng.html e mettela dentro ~/src curl non funziona con sourceforge
tar -xzf libpng-1.2.40.tar.gz
cd libpng-1.2.40
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
sudo make install
cd .
installazione libmcrypt
scaricatela da http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download e mettela dentro ~/src curl non funziona con sourceforge
tar -xzf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
make
sudo make install
cd ..
installazione libxml2
curl -O ftp://xmlsoft.org/libxml2/libxml2-2.7.4.tar.gz
tar -xzf libxml2-2.7.4.tar.gz
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
make
sudo make install
cd ..
installazione gettext
curl -O http://gd.tuwien.ac.at/gnu/gnusrc/gettext/gettext-0.17.tar.gz
tar -xzf gettext-0.17.tar.gz
cd gettext-0.17
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
make
sudo make install
cd ..
installazione di curl e lib curl
curl -O http://curl.haxx.se/download/curl-7.19.6.tar.gz
tar -xzf curl-7.19.6.tar.gz
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
make
sudo make install
cd ..
e finalmente prendiamo php
curl -O http://uk.php.net/distributions/php-5.2.10.tar.bz2
tar xfz php-5.2.10.tar.bz2
cd php-5.2.10
in questa versione di php cè un piccolo errore in un file che va corretto prima di tutto altrimenti non si compila un bel niente
aprite con un editor di testo (io ho usato xcode) il file
~/src/php-5.2.10/ext/iconv/iconv.c
alle riga 196, 197, e 198 trovate
#ifdef HAVE_LIBICONV
#define iconv libiconv
#endif
correggete con
#ifdef HAVE_LIBICONV
#define iconv iconv
#endif
prepariamo il configure
CFLAGS="-arch x86_64 -I/usr/local/php5.2/include/" LDFLAGS="-L/usr/local/php5.2/include/" ./configure --prefix=/usr/local/php5.2 --disable-dependency-tracking --with-apxs2=/usr/sbin/apxs --with-config-file-scan-dir=/usr/local/php5.2/php.d --with-openssl=/usr --with-zlib=/usr --with-zlib-dir=/usr -with-xpm-dir=/usr --with-gd --with-ldap --with-xmlrpc --enable-exif --enable-soap --enable-sqlite-utf8 --enable-wddx --enable-ftp --enable-sockets --with-bz2=/usr --enable-zip --enable-pcntl --enable-shmop --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-mbstring --enable-bcmath --with-libxml-dir=/usr/local/php5.2 --with-xsl=/usr/local/php5.2 --with-gettext=/usr/local/php5.2 --with-png-dir=/usr/local/php5.2 --with-jpeg-dir=/usr/local/php5.2 --enable-gd-native-ttf --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mcrypt=/usr/local/php5.2 --with-iconv --disable-xmlreader --with-t1lib=/usr/local/php5.2 --with-curl=/usr/local/php5.2
ok c’è un altro bug
aprite sempre con xcode
~/src/php-5.2.10/Makefile
il Makefile appena generato, cercate
EXTRA_LIBS =
seguito da una serie di opzioni, aggiungete per prima
-lresolv
salvate e chiudete, compiliamo!
make
bene il php è compilato ora facciamo il backup del php di snow leopard altrimenti viene sovrascritto
sudo mv /usr/libexec/apache2/libphp5.so /usr/libexec/apache2/libphp5.so.snow_leopard
sudo make install
spostiamo modulo appena generato e ripristiniamo il php di snow leopard (opzionale)
sudo mv /usr/libexec/apache2/libphp5.so /usr/local/php5.2/libphp5.so
sudo cp /usr/libexec/apache2/libphp5.so.snow_leopard /usr/libexec/apache2/libphp5.so
Modifichiamo il file
/etc/apache/httpd.conf
commentando la riga
#LoadModule php5_module libexec/apache2/libphp5.so
e aggiungendo la riga
LoadModule php5_module local/php5.2/libphp5.so
Riavviamo apache
sudo apachectl restart
Ok ora avete il vostro php 5.2.10 funzionante potete tranquillamente continuare a sviluppare in attesa della prossima compatibilità de vari software. Bella fatica eh! io sono impazzito 2 giorni pieni pieni, sperò che possa essere d’aiuto a qualcun altro. Se seguite questa guida e qualcosa non vi torna o semplicemente riuscite lasciatemi un commento, sarò felice di aiutarvi o di esservi stato d’aiuto.
Ciao
Come tutti i mac user incalliti ho subito installato Snow Leopard, anzi ho approfittato del nuovo os per sostituire il disco rigido da 120 gb in dotazione al mio macbook pro con un più performante e capiente Seagate Momentus 320Gb 7200 rpm. Ho quindi prima aggiornato a Snow Leopard circa 50 minuti, poi ho fatto un bel backup con Time Machines, ho montato il nuovo disco, ho installato Snow Leopard sul nuovo disco circa 30 minuti ed infine ho ripristinato il backup. Risultato dell’operazione che si è svolta in circa 4 ore totali, il mac con il disco nuovo identico spiccicato al vecchio, almeno alla prima impressione. Ad un controllo più approfondito non proprio tutto funzionava correttamente, il db mySQL non è ripartito e il web server Apache da uno strano errore sui permessi.
Ok diciamo subito che non è nulla di grave state tranquilli. Semplicemente Time Machines non copia o non ripristina alcune cose come ad esempio i link simbolici nella cartella /usr/local oppure non li ripristina.
Il problema mySQL è semplicissimo, lo startupitem fa riferimento alla cartella /usr/loc/mysql che tuttavia è un link simbolico alla cartella /usr/local/mysql-5.1.32-osx10.5-x86_64 o più generalmente alla cartella mysql-versione-piattaforma che avete installato. Per far ripartire mysql aprite i terminale e date
cd /usr/local
ls
sudo ln -s mysql-5.1.32-osx10.5-x86_64 mysql
Sostituite con la vostra cartella di mysql il mio mysql-5.1.32-osx10.5-x86_64 il comando ls vi ha fatto vedere come si chiama.
Passiamo ad Apache, il problema nel mio caso è banale. Snow Leopard aggiorna apache e php (php 5.3.0) e Time Michines ripristina il file /etc/apache2/httpd.conf ma non il file /etc/apache2/extra/vhost.conf che quindi non è più quello modificato da me ma quello di default di Apache. Risultato Apache punta ad un virtualhost inesistente e quindi errore di permessi. Nel mio caso è stato sufficiente modificare il file di vhost e ricreare i virtualhost iniziali per far funzionare tutto di nuovo. Bisogna anche attivare il modulo php5 togliendo il commento # dalla riga apposita.
Php presenta un problema nella direttiva Default timezone che non è impostata tuttavia ho notato che nel mio caso in /etc non era presente il file php.ini ma semplicemente un php.ini.default che ovviamente non viene riconosciuto come ini file. Questo credo perché il php non è attivo di default. Quindi se non avete il php.ini in /etc
sudo cp /etc/php.ini.default /etc/php.ini
sudo chmod +w/etc/php.ini
sudo vi /etc/php.ini (se non sapete usare vi usate un altro editor di testo)
specificate nella direttiva Default timezone del php.ini Europe/Rome.
Riavviate Apache.
sudo apacectl restart
Problema risolto ora il mio mac è proprio come prima, il vostro?
Ciao
È da poco disponibile per il download la nuova e fiammante versione del panda rosso. Mozilla promette maggiore velocità e più sicurezza vedremo!

Firefox 3.5
Aggiornamento, ho scaricato Firefox sul mac e devo dire che sia l’avvio del programma sia rendering delle pagine sono molto migliorati in velocità rispetto alla versione 3. Firefox è sicuramente un ottimo browser, alternativa eccellente a safari sul mac e insostituibile sul pc, perché I.E. anche nella versione 8 è sicuramente meno performante.
Il confronto con safari 4 su mac a mio avviso vede ancora il browser della mela in vantaggio ma di pochissimo. La cosa positiva è che ora abbiamo sulla nostra amata piattaforma due browser eccellenti e se contiamo anche opera il conto sale a 3.
Ciao
Oggi prende il via un nuovo blog, destinato alle mamme e ai papà, che parla dei bimbi e del loro mondo. Nel tempo il blog si popolerà di interessanti articoli sui bimbi, sui genitori e sui prodotti a loro dedicati. Non mancherà l’alta moda bimbi con la presentazione delle nuove collezioni e le tendenze del momento commentate da Lori, una vera esperta del settore
. Ci saranno poi articoli più tecnici, in parte del sottoscritto, sui prodotti tecnologici per i bimbi e approfondimenti sul mercato del gadget da bambino.
Insomma un blog per pubblicizzare la nostra azienda famigliare ma anche per rimanere in contatto con voi che ci leggete, che crescete i vostri bimbi ed acquistate i prodotti da lepam e non solo.
Correte a trovarci e dateci tanti consigli.
Ciao
Ps. per i frequentatori del mio sito, si è opera mia ma soltanto in parte la grafica del blog. Infatti ho utilizzato un tema gratuito davvero molto professionale messo a disposizione da Woothemes a cui ho solo tradotto alcune cose dall’inglese e cambiato il logo. Il tema ve lo consiglio è ottimo! Ovviamente la piattaforma è wordpress che, mi ripeto, è uno dei migliori sofware opensource in circolazione.
Ho completato la seconda versione della modifica che consente la creazione e la visualizzazione delle miniature delle foto nelle sezioni di commento del Juza Forum. Questa seconda versione differisce dalla prima perché crea la miniatura in modo automatico partendo dalla foro inserita nel topic. La form per l’inserimento di un nuovo topic è stata modificata in modo da facilitare l’inserimento della url della foto, della eventuale url della foto ad alta risoluzione e degli eventuali dati di scatto.
Durante l’inserimento vengono prima controllate le dimensioni del file e le dimensioni della foto per vedere se rientrano nei limiti del regolamento e poi viene inserito il topic. Appena inserito il topic viene creata la miniatura che viene salvata sul server del forum.
Per costruire la mod ho utilizzato gran parte delle funzioni già presenti nel phpbb, sopratutto per quanto riguarda il parsing delle request_var e del messaggio al fine di aumentare la sicurezza ed evitare possibili sql injection.
Sono molto soddisfatto del risultato, potete osservare le miniature in funzione sul forum di juza, www.juzaforum.com, nelle sezioni di commento.

Mod Miniature v2 - Juza Forum
Ciao
Commenti recenti