04 novembre 2012

Non facciamo di tutta l'erba un sol fascio

Navigando su un sito americano di basket mi sono imbattuto in una pubblicità che mi ha lasciato interdetto:


Ma se anche la risposta fosse sì, sono pronto per l'Open Source, proprio Windows Azure me la potrebbe dare? E poi se è Open Source perché lo posso provare gratis per 90 giorni e poi? Se andiamo sul sito la parola Open Source sparisce, a favore dei soli 90 giorni di prova gratuita.

Sul sito campeggia una mirabile comunicazione che mi informa che le menti libere utilizzano 90 giorni prima di diventare "meno" libere:




Come ho scritto più volte non ho nulla contro Windows e Microsoft anzi, ma demonizzare una filosofia per poi utilizzarla come spot pubblicitario mi sembra talmente disgustoso da non sembrare vera. Invece lo è...

02 novembre 2012

Personalizziamo VIM per Python

Quando lavoro solo in ambienti di emulazione o senza interfaccia grafica, come editor la mia scelta cade su VIM. Visto che la stragrande maggioranza delle volte metto mani a codice Python, utilizzo alcune semplici configurazioni per rendere l'utilizzo del mio linguaggio preferito più friendly.

Solitamente aggiungo a livello globale queste informazioni in /etc/vim/vimrc però nessuno vieta di limitare le configurazioni alle propria Home directory.

Partiamo con una cosa banale, l'attivazione dei numeri di riga:
set number

continuando con l'evidenziazione della sintassi:
syntax on

Altro aspetto molto importante è quello dei tab e dell'indentazione. Ho scelto di non utilizzare TAB, ma solo spazi:
if has("autocmd")
    filetype plugin indent on
endif

autocmd FileType python setlocal et sw=4 sts=4 sta tw=79

Spieghiamo il secondo comando, perché il primo non fa che abilitare l'indentazione intelligente.

expandtab oppure et : riempe con spazi le indentazioni generate dalla pressione del tasto TAB

shiftwidth oppure sw: larghezza di un rientro dell'indentazione automatica. È usato anche per definire la larghezza del rientro che si aggiunge o toglie ad un blocco di testo quando si seleziona (con V) e poi si indenta/deindenta con > o con <.

softtabstop oppure sts: larghezza di un rientro causato dalla pressione di un TAB. Il rientro è creato inserendo spazi se et è settato, altrimenti viene usata una combinazione di spazi e caratteri TAB (questi ultimi hanno larghezza ts).

smarttab oppure sta: in combinazione con le opzioni precedenti questa impostazione permette di cancellare un rientro (4 spazi reali nel nostro caso) con una sola pressione del tasto BS (o BackSpace)

textwidth oppure tw: lunghezza massima del testo inserito. Una riga più lunga viene spezzata dopo uno spazio bianco per stare in questi limiti.
Per eseguire il codice direttamente dentro il codice con la pressione del tasto F5:
map < f5 >:w < CR > :!python %
Direi che siamo sufficientemente corazzati per affrontare ore ed ore di scrittura del codice.

01 novembre 2012

Utilizziamo virtualenv

Lavoro ormai da anni su diversi progetti in Python e spesso ho avuto l'esigenza di dover agire su ambienti diversi ed ovviamente con librerie diverse. Certo nessuno mi impedisce di avere più macchine con su ognuna un'installazione diversa, ma questo comportamento potrebbe avere dei problemi di spazio e di costi. Esiste però una magnifica soluzione, virtualenv. Tramite alcuni semplici comandi si potranno utilizzare più ambienti di lavoro del tutto indipendenti e configurabili.

Per l'installazione niente di più facile. Basterà infatti UNO dei semplici comandi riportati sotto (SOLO UNO) eseguito tramite root e tutto verrà eseguito senza colpo ferire:

apt-get install python-virtualenv (Debian like)
yum install python-virtualenv (CentOS like)
pip install virtualenv (Qualora ci sia pip installato)
easy_install pip && pip install virtualenv (Se pip non c'è)
A questo punto non dobbiamo fare molto altro. Creiamo la nostra_directory dove vogliamo lavorare e lanciamo il comando:
virtualenv nostra_directory [--no-site-packages]
Ci siamo quasi, ora attiviamo il nuovo ambiente con:
source nostra_directory/bin/activate
Ora davanti al prompt della shell comparirà tra parentesi il nostro ambiente [es.: (django142)luke@mortenera:~$], che identifica semplicemente che siamo all'interno del nuovo ambiente. Per uscire non dovete far altro che digitare:
deactivate
Ovviamente, anche se potrebbe  bastarvi questo, esistono molte altre funzionalità dell'ambiente che vi invito a scoprire sul sito del progetto al link fornito ad inizio articolo.

Rock on Python.

Tondo è bello...

Tondo è bello...