Archivio

Posts Tagged ‘Sviluppo’

Caratteri, capiamoci qualcosa!

16 settembre 2009 Nessun commento

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:

  • Modificate i valori di default del server MySQL ma fate attenzione perché ciò influisce sui database e le applicazioni precedenti.
  • Eseguire seguenti due query subito dopo la connessione:

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.

Installiamo php 5.2.10 su Snow Leopard

14 settembre 2009 50 commenti

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

E dopo appena 15 giorni!

1 luglio 2009 Nessun commento
iPhone 3.1

iPhone 3.1

È già, gli ingegneri di Cupertino non si fermano mai e a soli 15 giorni dal rilascio di iPhone O.S. 3.0 ieri la apple ha rilasciato agli sviluppatori la prima beta della versione 3.1. Il nuovo firmware è disponibile solo per gli sviluppatori, smettetela di premere sul tasto verifica aggiornamenti di iTunes!!! Insieme al nuovo OS arriva anche il nuovo SDK che aggiunge anche qualche miglioria.

Fra le novità introdotte si legge da: iPhoneitalia

  • La funzione di Video Editing sull’iphone 3GS ora permette di salvare una copia del video tagliato
  • Il controllo vocale ora funziona anche via Bluetooth
  • L’ iPhone vibra quando spostiamo le icone
  • Il firmware del modem è stato aggiornato alla versione 5.08.01
  • Miglioramenti alle prestazioni di OpenGL e Quartz (effetti grafici)
  • Nuove Api che permetteranno agli sviluppatori di farci lavorare sui video
  • Corretto il bug degli Sms multipli che si trasformavano in MMS
  • Migliorata la velocità generale, sia in accensione che nell’apertura delle applicazioni (questo si nota soprattutto sul 3G)
  • Copia e incolla direttamente dalla rubrica (prima bisognava editare il campo per fare “copia” , ora basta toccare il numero)
  • Al primo riavvio del telefono l’applicazione iPod crasherà. E’ bastato però fare una sincronizzazione ed è tutto tornato alla normalità
  • Sembrerebbe che sul 3G alcuni utenti abbiano riscontrato una lentezza nello spostare le icone. Possiamo confermare che sul 3GS questo problema non avviene

Insomma aspettiamo fiduciosi questo aggiornamento, soprattutto per quanto riguarda la possibilità di copiare i numeri al volo (ma inviare il numero con un sms direttamente no è!!! mah!).

Ciao

Juza Forum mod miniature v2

22 gennaio 2009 3 commenti

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

Mod Miniature v2 - Juza Forum

Ciao

DockDrop, semplicemente geniale!

7 marzo 2008 Nessun commento

Quella che presento oggi è un’ utility di quelle che mi fanno impazzire. In perfetto stile Mac semplice e efficace si chiama DockDrop e permette di uplodare un file su internet in 4 modi differenti con un semplice drag and drop. E’ sufficiente infatti spostare il file da trasferire sull’icona e scegliere la modalità di trasferimento.

DockDrop

Alla fine del trasferimento DockDrop copia nella clipboard l’url del file appena caricato. Molto utile quando si voglio caricare immagini nei forum che non supportano gli allegati. Le modalita di trasferimento supportate sono:

  • FTP
  • WebDAV
  • SCP
  • Flickr

Ovviamente se usate una sola modalità di trasferimento, questo si avvierà automaticamente con quella modalità saltando il passaggio della scelta. Immediato direi. Il mio parere? comoda, comoda e ancora comoda.

Grazie a melablog per la segnalazione.

Ciao

Categorie:Computer, Foto, Lavoro Tag: ,

DiffMerge utility utile!

19 febbraio 2008 Nessun commento

Piccolo post dedicato a tutti gli sviluppatori web e non solo, ieri mentre combattevo con l’aggiornamento di Zen-Cart ho avuto la necessità di comparare i file del mio template con quelli del template default per vedere se erano stati apposrtati cambiamenti alle form.  Cosi mi sono messo alla ricerca di una utility che per comparare i file di testo  e dopo alcuni software a pagamento che non mi soddisfacevano del tutto ho infine trovato DiffMerge.

DiffMerge screenshot

I vantaggi del programma sono:

  • la comparazione e la modifica di due file
  • la comparazione e la modifica di tre file
  • la comparazione dei file contenuti in due cartelle
  • compatibile con 42 charset
  • completamente cross-platform con identiche funzionalità per Win Mac e Linux
  • Gratis!!!

La cosa inoltre che mi ha fatto letteralmente sbavare è la possibilità tramite uno shell-script, fonito col programma, di lanciare la comparazione dei file direttamente da Adobe Dreamweaver, basta nelle preserenze di dreamweaver impostare come programma di comparazione lo shell-script.

Potete scaricare e provare DiffMerge dal sito del produttore www.sourcegear.com

Categorie:Computer, Lavoro Tag: ,

Mod Anteprime juzaforum.com

25 dicembre 2007 5 commenti

Ieri ho completato una modifica al phpbb v. 3 per visualizzare, solo su determinati forum, le anteprime delle immagini contenute nei topic. I pratica oltre a normale post, l’utente può inserire anche una piccola immagine di 100px sul lato lungo come anteprima, che verrà visualizzata nella lista dei topic.

Nel realizzare la modifca ho utilizzato solo ed esclusivamente le funzioni di phpbb presenti per la gestione degli allegati, per diversi motivi:

  • maggiore sicurezza, non ho inserito codice esterno al proggetto;
  • funzionalità inalterata, è possibile inserire, modificare ed eliminare i post normalmente come all’origine;
  • possibilità nel PCA di controlare il numero e la dimnesione delle anteprime;
  • possibilità nel PCA di gestione delle anteprime orfane, cioè immagini non collegate alcun post.

Per veder le anteprime in azione andate su www.juzaforum.com/forum nelle sezioni di commento delle foto.

Categorie:Computer, Varie Tag: , , ,

Realizzazione lepam.it

24 dicembre 2007 4 commenti

Salve a tutti, e scusate se sono stato assente per un pò, ma il lavoro che vi sto per presentare mi ha tenuto diciamo piuttosto occupato.

Il lavoro è una personalizzazione avanzata del noto software di eCommerce Zen Cart® che potete reperire su www.zen-cart.com in versione internazionale e su http://www.zencart-italia.it/ in versione già pronta per l’italia, sia nelle lingua che nei moduli di pagamento e spedizione.

La personalizzazione di zen-cart di base si effettua in modo molto semplice ed è alla portata di tutti, cosa diversa invece è la modifica radicale dell’impaginazione che richiede buone conoscenze di php e xhtml. In lepam.it il template originario è stato stravolto per trovare grafica accattivante e allo stesso tempo semplice da navigare.

Il sistema di ovveraide dei template di zen-cart, che sarà oggetto di un mio prossimo articolo, è davvero potente e una volta capitone il meccanismo semplice da usare.

L’unico neo di zen-cart a mio avviso è la mancanza di una documentazione sul codice sorgente, sulle funzioni e sulle classi di oggetti che costituiscono il progetto. Questo comporta, durante la modifica, a ricercare determinate funzionalità un pò a tentoni con notevole perdita di tempo.

Per ora vi saluto e vi invito a visitare www.lepam.it

Categorie:Computer, Lavoro, Varie Tag: , , ,