Archivio

Archivio per la categoria ‘Programmazione’

Arriva il Magic Mouse!

21 ottobre 2009 stefano Nessun commento

Ieri Apple ha presentato molti nuovi prodotti fra cui una nuova gamma di iMac che finalmente abbandonano il processore core duo per portatili per abbracciare in nuovi intel core i5 e i7 e un nuovo macbook anch’esso ora dotato di guscio unibody. La novità però più bella secondo me è il nuovo Magic Mouse!

Apple Magic Mouse

Apple Magic Mouse

Il nuovo mouse è in assoluto il primo mouse Multi Touch della storia. In sostanza Apple ha deciso di trasferire l’esperienza Multi Touch di iPhone prima e di iPod Touch e MacBook Pro dopo anche nei sistemi desktop. Dal design essenziale ed elegante il Magic Mouse elimina tutto il superfluo, niente filo, niente tasti ne, tanto meno, rotelline che si sporcano e si inceppano. Per gestire i comandi è sufficiente usare le “gesture” tipiche dei dispositivi Touch che gli utenti iPhone conoscono molto bene.

Apple Magic Mouse

Apple Magic Mouse

Come al solito Apple riesce sempre a tirare fuori un prodotto unico e rivoluzionario, ora attendiamo di averlo a disposizione per una prova sul campo.

E’ possibile acquistare il Magic Mouse sullo store on-line per 69 €

Ciao

Categorie:Programmazione Tag: ,

Caratteri, capiamoci qualcosa!

16 settembre 2009 stefano 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 stefano 20 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

Snow Leopard e i problemi con Apache Php mySQL

9 settembre 2009 stefano 7 commenti

Mac OS X 10.6Come 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

E dopo appena 15 giorni!

1 luglio 2009 stefano 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

Firefox 3.5 disponibile

30 giugno 2009 stefano Nessun commento

È 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

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

iPhone OS 3.0

18 marzo 2009 stefano Nessun commento
iPhone OS 3.0

iPhone OS 3.0

Ieri sera si è tenuto l’evento Apple dedicato alla presentazione del nuovo Sistema Operativo per iPhone, appunto iPhone OS 3.0. La nuova release del software per il cellullare di Cupertino incorpora numerose novità molte delle quali, per la verità, attese da sempre sia per quanto riguarda le funzioni del dispositivo sia per la parte dedicata agli sviluppatori con un nuovo SDK e circa 1000 API in più.

La Apple come al solito ci vuole stupire ma sopratutto vuole rivoluzionare un mondo dove ormai colossi come Nokia e Rim (si HTC neanche lo considero) sembrano aver smarrito la strada dell’innovazione. Con il nuovo Firmware per iPhone (compatibile con anche con il primo modello EDGE) la Apple introduce o pone rimedio a delle mancanze clamorose come il copia e incolla ma non solo introduce un’ulteriore innovazione a livello commerciale: Buy in App. Una funzione che permetterà sempre tramite App Store alle applicazioni di acquistare contenuti extra, come ad esempio livelli aggiuntivi di gioco e perchè no mappe per la navigazione.

Si avete letto bene, finalmente sono consentite in app store le applicazioni per la navigazione Turn by Turn assistita e tutti i maggiori produttori di questi software sono già pronti. Presto avremo il tom tom sul nostro iPhone e, udite bene, potrà usare sia il Gps interno al dispositivo ma anche le antenne bluetooth, perchè un’altra novità è proprio la possibilità di sviluppare software che usa dispositivi hardware esterni.

Ma le novità non sono certo finite qui, infatti il bluetooth potra essere usato per qualsiasi applicazione p2p (e non pensate subito allo scambio di musica e film per favore), cioè sarà possibile giocare in due con connessione bluetooth e fare tante altre cose fra applicazione uguali.

Non sarà possibile come nei precedenti firmware lanciare più applicazioni insieme e questo non piace a molti ma alla Apple sono convinti della bontà di questa scelta e io sono in parte d’accordo. Molti dicono che l’iPhone non ha il multitasking, e questa è un’affermazione errata. L’iPhone OS è l’incarnazione di Mac Os X su un dispositivo mobile e da questo ricava le sue basi che sono solide basi unix. I sistemi Unix sono tutti multitasking e quindi anche iPhone OS lo è. Infatti collegandosi via ssh su un iPhone e lanciando il comando unix ps ax (potete farlo su qualsiasi iPhone Jailbreaked) potete vedere l’elenco dei processi in esecuzione e costatare voi stessi che vi è uno scheduler e vari processi attivi che si contendono cpu e memoria. Alla Apple hanno solo deciso di bloccare le applicazioni con gui ad una sola per volta e questo per vari motivi:

  • le risorse di memoria e cpu disponibili sono limitate in dispositivo come l’iPhone per far girare più applicazioni contemporaneamente ;
  • lo schermo è troppo piccolo per avere più “finestre” aperte contemporaneamente e può mostrarne una sola;
  • avere applicazioni in background che non possono essere usate ma che comunque utilizzano cpu e memoria prosciuga le batterie.

Io personalmente condivido questa scelta è del tutto inutile in un dispositivo come l’iPhone avere più di una applicazione aperta per volta. Inoltre la cosa più odiosa dei dispositivi che consento più applicazioni è quella di doversi ricordare sempre di chiude l’applicazione precedente prima di aprirne un’altra per non incorrere nel fastidioso messaggio “memoria insufficiente …”. La Apple ha introdotto un sistema di notifiche Push che comunque consentirà alle applicazioni come  le chat di avvisare l’utente in caso di nuovi messaggi pertanto gli sviluppatori dovranno solo implementare tali funzionalità. Il problema è stato agirato in modo molto elegante da Apple e io ritengo che questa al momento sia la strada giusta almeno fin quando i dispositivi mobili non siano dotati di processori più performanti e batterie più durature.

Se volete scorpire tutte le novità del nuovo firmware vi consiglio di partire dal sito apple ( http://www.apple.com ) e poi sui soliti iSpazio (http://www.spaziocellulare.com/ispazio/), iPhoneItalia (http://www.iphoneitalia.com/) e l’ immancabile macity (http://www.macitynet.it/macity/)

Ciao.

Nasce il blog di LePam

27 febbraio 2009 stefano Nessun commento
http://www.lepam.it/blog

http://www.lepam.it/blog

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.

Un altro mio lavoro on-line

16 novembre 2008 stefano 1 commento

Con grandissima soddisfazione che vi annuncio che è on-line il sito di EnotecaProcida, un e-commerce basato su zen-cart e da me personalizzato nella grafica e tanto altro. Anche grazie a Michele, molto attento ed ottimo beta-tester è stato possibile personalizzare zen-cart in una miriade di dettagli che hanno portato ad un risultato davvero di ottimo livello ma giudicate voi, correte su www.enotecaprocida.it.

www.enotecaprocida.it

www.enotecaprocida.it