Setting up Django with MAMP on Mac OS X Lion (in ? steps)

I started playing with a Django-Python version of my current project and I needed a testing environment on my local Mac-based machine. The thing is I didn't want to use a dedicated MySQL server just for the Django deployment, as it seems really silly when I already have my quiet MAMP running in parallel with all the other CodeIgniter-PHP based projects.

It's harder than you may expect. I had to go through a painful series of steps to eventually have the whole thing working, and taking here some notes so I can have them handy when I'll need to do it again, hopefully it will help someone else. It still needs to have a "dedicated" copy of MySQL installed just to compile, but it won't be used to actually run the server.

step1. download and install the latest mysql community server from the DMG file, here. Then from the command line, add the fresh installation to the local path, this will be used to pick the sources needed for the python module compilation. Also add a variable for the dynamic library linkage, this will be used on execution of your python scripts to find the correct library:

export PATH=/usr/local/mysql/bin/:$PATH
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/

step2. assuming we have already a python virtualenv script in place. Create a new virtual environment and activate it:

python virtualenv.py django-mysql
. django-mysql/bin/activate

step3. now we're ready to install django and mysql-python. the latter should compile with few minor warnings if and only if we have correctly executed step1 (just double check that paths in the export statements are correct)

pip install django
pip install mysql-python
python
>>> import MySQLdb
>>> print MySQLdb

if everything works fine, then the last command above should show the full path of the mysql module compiled during the installation process

step4. create a django project and configure the settings.py so as to use the MySQL server shipped with MAMP

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'django_test', # Or path to database file if using sqlite3.
        'USER': 'root', # Not used with sqlite3.
        'PASSWORD': 'root', # Not used with sqlite3.
        'HOST': '/Applications/MAMP/tmp/mysql/mysql.sock', # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '', # Set to empty string for default. Not used with sqlite3.
    }
}

take EXTRA CARE to double check that the host variable is set to MAMP's socket, hence /Applications/MAMP/tmp/mysql/mysql.sock

step5. in my case, it's really not happening frequently, I also had problems with my locale, as some of the programs I installed messed around with the environment, so I got the error "unknown locale: UTF-8" as soon as I tried to sync the django db. this is solved exporting the correct variables, THEN syncing the db

export LC_ALL=en_us.UTF8
export LC_CTYPE=en_us.UTF8
export LANG=en_us.UTF8
python manage.py syncdb

and this should be all! Just a final note: this post was assembled trying things and using different sources to solve each and every problem appeared along the road, these are the original URLs I had to collate to eventually see my working copy of django: dedicated mysql dynamic library mamp socket  unknown locale

Read more

jquery+php regex checker and reverse geo-coding service

It happened a million times: I had to check a regex in PHP and did not have a handy tool to see the result. I usually linger on Rubular, which is a great service but based on Ruby, and sometimes the results are a bit different [update 2015 - just use regex101, best tool around]. I decided to implement a simple regex checker similar to Rubular, but based on php preg_match.

Read more

"He's gone to China" - avere un figlio a Londra N4

Primo e ultimo post riguardo la faccenda figlio, non voglio annoiare me stesso, nè le 10 persone che si imbattono per sbaglio in questo post, ma nello stesso tempo voglio mettere giù due note per rileggermi in futuro qualche dettaglio colorito che inevitabilmente andrebbe perso e ricordarmi di quella meravigliosa cacofonia di etnie e strana accozzaglia di personaggi improbabili ma tutti incredibilmente gentili che hanno avuto a che fare con mio figlio già al decimo giorno di vita.

Intanto un po' di contesto: residenti in N4, ci spetta l'ospedale Whittington, che ci dicono tutti essere incredibilmente all'avanguardia e dotato di personale assai preparato; ci spetta inoltre il team "Hornsey Rise" di midwife che ci seguiranno in questa avventura, e anche di questo team sentiamo parlare un gran bene. Entrambi si sono confermati eccezionali, e ripensando ai mesi passati sento necessario ricordare alcuni piccoli eventi che mi hanno portato il sorriso.

Il primo contatto avviene con Jane, probabilmente l'unica nativa inglese della storia, colei che ci seguirà lungo tutto il percorso e le cui visite bi-settimanali hanno sempre rasserenato e rassicurato da ogni paura. La prima visita in particolare era a domicilio: ai miei genitori in visita a Londra e non ancora a conoscenza della gravidanza, gli è stato detto essere un controllo della compagnia di assicurazione, almeno in attesa della prima ecografia. Thank you so much Jane, your help and support has been terrific!

Il sistema qua segue un processo estremamente naturale: se non ci sono condizioni particolari (come nel nostro caso) è molto probabile che si arrivi al giorno del parto senza aver mai visto un dottore ginecologo, e aver visto l'ospedale forse solo in un paio di occasioni: per un esame del sangue e per l'unica ecografia che viene fatta a 20 settimane. Seguire un percorso naturale consente di mantenere uno stato d'animo positivo e non da paziente malato che deve sottoporsi a frequenti esami: ci piace. Una studentessa iraniana ha fatto l'ecografia, sotto supervisione della dottoressa, grandi sorrisi, dentro e fuori in 10 minuti con un referto: è un maschio. Nella stessa occasione vengono presi i dati per effettuare la translucenza nucale, i cui risultati arrivano a casa nel giro di pochi giorni: la probabilità della sindrome di Down è bassissima, 1 su 9000 circa, non è necessario proseguire con amniocentesi, ottimo.

La parte restante della gravidanza, quasi fino al gran giorno, è proseguita tranquillamente: un controllo ogni 2 settimane, fatto per lo più al Children Centre di Tollington Park, non è un ambulatorio, ma piuttosto un asilo dove le midwife hanno una stanza per effettuare i controlli, e questo contribuisce a sentirsi parte della comunità piuttosto che essere un malato bisognoso di cure.

Ci si avvicina al giorno fatidico, e l'essere sembra non volerne sapere e ci viene quindi consigliato di fare delle sessioni di agopuntura, alla locale clinica Asante. Le signore cinesi ci fanno sapere che sta per concludersi l'anno del coniglio per iniziare quello del drago, e che in china questo è motivo di grande emozione e orgoglio per i nati nel nuovo segno, quindi per quanto l'agopuntura non sembra fare grosso effetto, è senz'altro molto rilassante e la prospettiva di avere un piccolo drago mette di buon umore. Ci riguardiamo Caro Diario di Moretti, condividendo la simpatia per gli agopunturisti cinesi, e trascorre un'altra settimana.

Finchè arriviamo al gran giorno, quello in cui nascerà il piccolo drago, il 25.1.12. Ci accoglie una midwife americana, sta per chiudere il turno e passare le consegne al team successivo, trova il tempo di descriverci quanto sia soddisfatta del sistema Britannico. Durante le prime ore ci vengono a controllare una "sorella" tutta piercing e palestra con un'assistente dal tintinnante e simpatico accento irlandese: ci accompagnano per mano in sala parto, consegnandoci ai dottori. Da quel momento in poi e per 6 ore circa sono principalmente indiani e greci a farci compagnia con la calma rassicurante della professionalità e la certezza di assistere ad un meccanismo perfettamente oliato nonostante i divertenti marcatissimi accenti che ci circondano.

Finisce tutto bene, troppo tardi per andare a prendere del cibo alla mensa dell'ospedale, una midwife ci suggerisce che posso scendere e prendere qualcosa da MacDonald se abbiamo fame. La guardo spaesato, penso che la stessa raccomandazione in Italia avrebbe fatto il giro delle cronache, e mi ritengo fortunato di essere in un paese diverso. In ogni caso optiamo per la pizza, che ci mangiamo sul letto della sala parto per la prima volta come una famiglia.

24 ore dopo siamo a casa, ad oggi sono passati 10 giorni e il gruppo di midwife è già passato 4 volte per controllare che sia tutto a posto. Una signora malese estremamente gentile, con quel viso serio che infonde sicurezza e rilassatezza che solo gli asiatici possono avere, controlla che l'allattamento e la crescita proseguono correttamente. Si chiama Kim, e quando vede il piccolo Benjamin che si addormenta, completamente ubriaco di latte, sorride ed esclama: "he's gone to China"

Read more