Fixing error 2002 for MySQL installation on Mac OS X

After you've installed MySQL on MacOS X, you will probably encounter this common error while trying to open a connection from a PHP script to your database instance:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

This message tells you that PHP can't find the mysql.sock file into /var/lib/mysql/ directory.

Let's fix it.

First step (if you have not done it, yet) :
PHP should be looking for a php.ini file (and not php.ini.default) to load, so you need to rename php.ini.default to php.ini in /etc.
> cd /etc/
> sudo mv php.ini.default php.ini

Second step:
In Snow Leopard, mysql.sock file has been moved to /var/mysql directory (instead of /tmp directory).
You have two possibilities:

1. (SUGGESTED) create an alias in the location that PHP is looking for the real mysql.sock 
> sudo mkdir /var/mysql
> sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

 
2.  create a my.cnf configuration file in the /etc directory and save it with the following contents:
[client] socket = /var/mysql/mysql.sock
[mysqld] socket = /var/mysql/mysql.sock

and then

> sudo mkdir /var/mysql
> sudo chown _mysql /var/mysql


START or RESTART Apache and voila: les jeux sont faits!

Happy coding!

Global Game Jam: il ritorno 2011!

Il secondo appuntamento con la Global Game Jam per l'anno 2011 è stato rinnovato e confermato, dopo il successo dello scorso anno.
Ecco il sito web in cui potrete leggere tutte le informazioni dettagliate: http://www.globalgamejam.it/.

Lodi e meriti alla facoltà di Ingegneria che ospiterà ancora una volta l'evento (e per il secondo anno mi chiedo perchè il corso di studi in Informatica del DMI sia assente) ed ancor di più, un ringraziamento sentito ad e-Ludo (http://www.e-ludo.it/) che si prodiga per creare sempre nuove occasioni e momenti di incontri tra gli sviluppatori siciliani: l'unione fa la forza!

La GGJ è una bellissima opportunità di incontro e confronto per i giovani della Sicilia e dà voce a chi vorrebbe uscire "fuori dal coro" in un mercato, a mio parere, piuttosto inflazionato. Spiego di seguito la mia tesi.
E' un dato di fatto che l'informatica in Italia, ma soprattutto al Sud, ha come principale applicazione la "realizzazione di software gestionali" quando invece, dimostrato mondialmente, la sezione "videogames" è un'importantissima fetta del mercato informatico: una fetta, se vogliamo, anche molto redditizia.
Si pensi solo a tutte le console per videogames come PlayStation e PSP, XBox, Nintendo e Nintendo DS (etc etc) ed ora, sempre più in crescente espansione, l'avvento dei videogames sugli smartphones, ormai tutti dotati di notevoli schede grafiche per una eccellente "player"-experience. Mi sento anche di affermare che l'aspetto ludico di uno smartphone è ormai più importante della sua funzione di base: il telefono.

Aziende come Sony, Microsoft, Nintendo, Blizzard, Namco, Ubisoft ...  (giusto per citarne qualcuna, ma vi invito a dare un'occhiata qui ) hanno puntato sul settore videogames e ne sono uscite più che vincenti... non sarebbe giusto crederci???

Il protocollo informatico in Sicilia è di lusso!

Ecco il primo articolo che ho letto ieri e l'approfondimento di oggi.

12 miliardi di euro, il costo per il solo protocollo informatico alla Regione Sicilia.
Io non riesco nemmeno a quantificarli tutti 'sti soldi. Apprendo la notizia da www.repubblica.it e rimango senza parole nel leggere come nemmeno la vergogna  per un'operazione così eclatante possa bloccare gli interessi economici di chi sta ai vertici di questo sistema malato.

Si parla di ridurre gli sprechi di licenze Windows, di utilizzare software open source per abbassare i costi (non eliminarli, come qualcuno crede). Esiste anche un osservatorio dell'Open Source al CNIPA, ovvero il Centro Nazione per l'Informatica nelle Pubbliche Amministrazioni)!
Siamo nel 2011 e non è cambiato nulla. Che immenso rammarico vivere in questa Regione.

Migrating from Java to Objective-C: the essentials

In this article, I won't treat in depth how to migrate from Java to Objective-C, but if you are going to do it, it would be helpful to you reading this stuff that simplify the understanding of the new language.
Let's start.
The main difference between Java and Objective-C is the memory management. Java developers may encounter some problems in approaching the concept of "memory release" and "memory leaks" because Java Garbage Collector hides to developers all the mechanisms regarding memory allocation and releasing.
Mastering memory management is, in my opinion, the most difficult thing to learn while starting to code in Objective-C. A general rule could be that for each "alloc" we must have a "release". We will see how and when at the right moment.
Some of the main concepts are similar and I will resume for you just a few common aspects of both languages.

All objects inherit from: 
J - java.lang.Object
O - NSObject

Create a new object using: 
J - MyObject obj = new MyObject();
O - MyObject *obj = [[MyObject alloc] init];

Use instance methods as follows:
J - myObject.doSomething(); (we say: call the method "doSomething" of myObject)
O- [myObject doSomething]; (we say: throw the message "doSomething" to myObject)

Get the string representation of an object:
J - myObject.toString();
O - [myObject description];

Difference between null (Java) and nil (Objective-C):
J - myObject = null;   myObject.doSomething() will throw a NullPointerException
O - myObject = nil; [myObject doSomethin] will do NOTHING, the message doSomething is captured by none.

Manage user interactions on visual objects or capture events  by:
J - Listener: you need to implement all the methods defined in the Listener interface of the object.
O - Delegate: you need to implement all the method defined in the Delegate class for an object. 

Most of the name of user interface object follow those pattern:
J - JSomething, like JButton, JTextField ...
O - UISomething, like UIButton, UITextfield ...

Try/catch construct:
J- is heavily used and necessary to manage exception
O - rarely used. Main of the NSError are passed as pointers in the method that could throw an exception.

Getter/Setter methods:
J - By writing them for each instance variable
O - By using @property and @synthesize keywords

These are just a little part of the concepts but I hope it's a good start.
Happy coding!

(Thanks to my love for the patience!)

Inquadramento contrattuale degli informatici

Oggi ho scritto a diverse associazioni dei lavoratori, nonchè a diverse associazioni di informatici, per porre un problema che riguarda tutti coloro che, in Italia, si occupano del settore informatico.
Come ben saprete non esiste un CCNL per questa categoria, ma da più di 25-30 anni, si fa riferimento ai contratti metalmeccanico e del commercio. Spiego tutto in questa lettera che Vi invito calorosamente a leggere, sperando che possiate condividerla con altri colleghi, per smuovere un pò di coscienza sociale.

Salve,

sono la Dott.ssa Elisa Distefano e lavoro nel settore informatico da 5 anni. Mi rivolgo a Voi per avere informazioni in merito ad una questione "aperta", da troppo tempo, che riguarda l'inquadramento della Ns categoria.


In Italia, la figura professionale dell'informatico non possiede ancora un CCNL proprio, pur essendo ormai una realtà molto diffusa nonchè consolidata nel corso dell'ultimo ventennio.

I Ns contratti lavorativi fanno sempre riferimento al CCNL metalmeccanico o al commercio. Per questo motivo, riuscire ad individure con chiarezza e precisione il livello spettante relativamente alle proprie mansioni lavorative, è difficile o pressochè impossibile.
In Italia esistono diverse associazioni degli informatici, ma non ho mai sentito parlare di una mobilitazione generale allo scopo di iniziare la stesura di un contratto che potesse adeguatamente regolamentare questa di fetta di lavoratori. Una categoria che, cresciuta molto in fretta ed, a mio parere, è lasciata troppo allo sbaraglio (in mano a datori di lavori non esattamente altruisti), senza essere tutelata, soprattutto per quanto concerne i criteri di individuazione dei livelli contrattuali.
Probabilmente sono l'ennesima persona che chiede delucidazioni in merito, ma sarebbe già una gran conquista se si iniziasse a parlare del problema.

Vi ringrazio anticipatamente per il tempo dedicatomi, confidando in una Vs risposta e sperando che questa mia lettera possa contribuire all'inizio di un cambiamento.


Cordiali saluti.

AppStore: tutto ciò che l'utente non sa e che pensa di sapere!

E' vero che il cliente ha sempre ragione ma ...

Troppo spesso, su AppStore, i commenti degli utenti sono completamente fuori luogo nonchè privi di qualsiasi fondamento. Voglio riportare qualche esempio per smentire definitivamente certe "credenze popolari":

1. ADDEBITO SUPERIORE AL COSTO DELL'APP.
Quando un'applicazione costa 0.79€ e, subito dopo aver effettuato il pagamento, la banca vi notifica (magari via SMS) un addebito di 1.59€ ( o qualsiasi altra cifra superiore), è dovuto al fatto che per ogni carta di credito vi è un importo minimo per ogni transazione. L'utente urlerà subito "al ladro!" senza sapere che 2 giorni dopo la Apple gli invierà regolare fattura con l'importo corretto di 0.79€ e che, a fine mese, l'estratto conto della carta di credito conterrà esattamente l'addebito di 0.79€, non un centesimo in più! Non pensate che se così non fosse, Steve Jobs sarebbe stato in manette?

2. CHI SI OCCUPA DEL PAGAMENTO DELL'APP.
Per il punto di cui sopra, vengono sempre additati come LADRI gli sviluppatori dell'applicazione. Mai cosa su più errata. Le transazioni passano SOLO ED ESCLUSIVAMENTE da Apple, e non dagli sviluppatori. Gli sviluppatori riceveranno la loro parte di compenso (il 70% dell'importo) solo dopo un mese e la Apple, DI CERTO, non rischia di farsi denunciare con una cosa così elementare.

3. TEST DELL'APP
La Apple non fa il "test" dell'applicazione. Si accerta esclusivamente che l'app sia conforme formalmente ai requirements dettati per la pubblicazione. Del test, se ne devono occupare gli sviluppatori o chi per loro. Pertanto, non accusate la Apple se l'app ha dei bug.

4. LEGGERE LE ISTRUZIONI PRIMA DELL'UTILIZZO
Prima di acquistare un'applicazione, è necessario leggere la descrizione e la compatibilità con il proprio firmware o altre condizioni relative all'utilizzo. Se non si fa ciò, non possiamo URLARE contro gli sviluppatori se l'app non funziona sul nostro iPhone.

5. SODDISFATTI O RIMBORSATI
Se l'app che avete acquistato non soddisfa le vostre aspettative (secondo oggettivi criteri che Apple potrà accertare), potete immediatamente richiederne il rimborso alla Apple, utilizzando il vostro account su AppStore e segnalando il problema dalla "Cronologia Acquisti". La Apple valuterà se la vostra richiesta è fondata ed, eventualmente, annullerà il vostro ordine e pertanto anche l'addebito sulla carta di credito. Per maggiori informazioni, vi consiglio di leggere questo articolo.

Spero di aver chiarito qualche dubbio per gli utenti più scettici, critici e troppo avventati  nei giudizi. Ed aggiungo un consiglio: contattate l'assistenza dei prodotti per accertarvi di  non aver commesso errori grossolani che compremettono l'utilizzo della vostra app, rendendovi completamente insoddisfatti.

How to change Charset on the fly, via javascript

If you need to ADD OR CHANGE the metatag for charset, on the fly in your web page, you can use the function below, by passing the charset you want as parameter:



For example: setCharset('UTF-8'); or setCharset('ISO-8859-1');