Pubblicato da: frafra | marzo 22, 2009

Spostamento

Il blog riprende la sua attività su:

…con nuovi e interessanti contenuti 😉

Annunci
Pubblicato da: frafra | ottobre 2, 2008

Rilasciato Python 2.6!

Gioite fratelli pythonisti! L’attesa versione 2.6 è stata rilasciata! Una versione che ci lascia in bocca un po’ di quel gusto che ritroveremo Python 3000 (ovvero nella versione 3.0). Che aspettate? Correte subito a scaricarla e a scoprire le novità! 😀

Buon divertimento 😉

Pubblicato da: frafra | giugno 3, 2008

Creare icone svg “appetitose”

icona svgStanchi di avere bottoni sul vostro spazio web piatte, anonime, tristi, senza stile? Allora questa guida di Inkscape fa per voi :) Vi permette di creare icone come quella alla sinistra di questo testo (dai non sono poi malaccio xD). Carina no? Una volta creata, basta cambiare colore, lettera, ed ecco una nuova icona da potere utilizzare! Bella, stilosa, lineare, senza cose “strane”.

Il tutorial (in lingua inglese) la trovate su: http://www.starfishwebconsulting.co.uk/tasty_icons

Pubblicato da: frafra | maggio 31, 2008

PyPratico n.01 – Operazioni di base

[la versione “interattiva” della lezione la trovate su: pypratico-00.pdf]

1. Lo statement print

Lo statement print è la prima cosa che andiamo ad osservare. Cosa fa? Con poca fantasia, visualizza sulla console variabili, stringhe, e tutto quello di cui abbiamo bisogno. Tecnicamente parlando, converte un oggetto nella sua rappresentazione testuale, e la visualizza sull’output standard. La sintassi è molto semplice e banale… Apriamo la nostra console interattiva (usando il comando python) e digitiamo:

print “ciao mondo!”

In questo modo abbiamo visualizzato una banale stringa. Ma print è molto più versatile di quanto ci si possa immaginare… Ah, quasi dimenticavo, “#” indica un commento sulla linea 😉 Ecco alcuni esempi un poco più elaborati:

print “ciao mondo!\n” # Visualizza “ciao mondo!” e rientra due volte
print “ciao mondo!”, # Visualizza “ciao mondo! ” senza tornare a capo
print “ciao mondo!”, “come va?” # Visualizza “ciao mondo! come va?”

Semplice, no? Piccola nota… Nella prossima versione di Python (la 3.0), bisognerà usare print includendo tra parentesi cosa vogliamo visualizzare, ovvero:

print(“ciao mondo!”) # *Solo* su Python 3.0 e superiori

2. Numeri e stringhe (operatori e conversioni)

Sostanzialmente esistono una manciata di tipi di dati: numeri (interi, a virgola mobile, “lunghi”, ottali, esadecimali e complessi), stringhe (come “ciao mondo!”), liste (oggetti che raggruppano altri elementi, simili agli array in c, ma dinamici) e dizionari (oggetti che permettono di associare dei valori a delle chiavi). Ora ci occuperemo delle stringhe e dei numeri interi e a virgola mobile.

Ecco alcuni esempi in cui assegnamo un valore a una variabile (ricordo che le variabili non si tipizzano come in c):

es1 = “ciao mondo!” # Stringa
es2 = 7 # Numero intero
es3 = 7.2 # Numero a virgola mobile
es4 = 12345678901 # Numero “lungo”, lunghezza illimitata, visualizzato con una L alla fine

Questi sono i cinque tipi di dati che ci interessano 🙂

Con le stringhe possiamo fare addizioni, ovvero concatenare più stringhe con il simbolo “+”, ovvero:

stringa_lunga = “ciao “+”mondo!”

…oppure calcolare la lunghezza, con:

print len(“ciao mondo!”)

Altre operazioni sulle stringhe saranno spiegate nella sezione successiva, in quanto le stringhe e le liste hanno molte analogie.

Con i numeri possiamo fare le normali operazioni, addizione, sottrazione, moltiplicazione, elevamento a potenza così:

print 4+5 # Somma
print 4-5 # Sottrazione
print 4*5 # Moltiplicazione
print 4**5 # Elevamento a potenza
print 4**0.5 # Radice quadrata (metodo “rapido” che usa le proprietà delle potenze)

…ma dobbiamo prestare attenzione alla differenza tra numeri interi e a virgola mobile nel caso di divisioni o radici:

print 5/2 # Visualizza 2, non tiene conto del resto perché l’operazione è tra due interi
print 5/2.0 # Visualizza 2.5, perché uno dei due numeri è a virgola mobile
print 5//2.0 # Visualizza 2, questo operatore elimina sempre il resto

Piccola nota… Anche questo nel futuro Python 3.0 cambierà. Per evitare confusione, l’operatore “/” restituisce sempre la divisione “esatta”, mentre “//” ignora il resto. Il mio consiglio è di utilizzare già ora questa caratteristica, inserendo all’inizio del vostro programma, questa riga:

from __future__ import division

Questo farà si che utilizziate la divisione come sarà di default nella futura versione di Python 😉

Ovviamente si può convertire un numero in una stringa e viceversa (anche se non è sempre possibile ovviamente). Guardate:

print str(5) # Converte l’intero 5 in una stringa, ovvero “5” <- notare la presenza delle “”
print int(“5”) # Converte la stringa in intero
print float(5) # Converte l’intero 5 in un numero a virgola mobile
print float(“5”) # (Vedi sopra)
print long(5) # Converte l’intero 5 in un numero “lungo”, ovvero di illimitata lunghezza

3. Liste e dizionari

Le liste sono semplicemente dei “contenitori” di altri valori (o di altre variabili). Ecco come appare una lista:

lista = [“mamma”, “papà”, “figlio”, “gatto”]

Il primo elemento è la stringa “mamma” (elemento 0), il secondo è “papà” (elemento 1), e via dicendo. La cosa fantastica è che le liste sono dinamiche, nel senso che le possiamo creare al volo (come ogni tipo di variabile sotto Python) senza dover definire il numero di elementi che andremmo a metterci, così possiamo aggiungere, rimuovere e modificare dati senza problemi 🙂

Alcuni esempii di come operare su una lista:

print lista[0] # Visualizza “mamma”, il primo elemento
print lista[1] # Visualizza “papà”, il secondo elemento
print lista[-1] # Visualizza “gatto”, l’ultimo elemento
print lista[-2] # Visualizza “figlio”, il penultimo elemento
print lista[0:2] # Visualizza [“mamma”, “papà”], cioè dall’elemento 0 all’elemento 2 (escluso)
print lista[:2] # Stesso risultato, se si inizia dal primo elemento, lo 0 si può omettere
print lista [2:] # Visualizza [“figlio”, “gatto”], cioè dall’elemento 1 all’ultimo elemento (incluso)

Questo tipo di operazioni si può fare anche sulle stringhe, operando così sulle lettere. Ovviamente anche qui si può usare len(nome_variabile) per calcolare la lunghezza.

Per aggiungere un elemento esiste una soluzione molto semplice: .append(), che aggiunge l’elemento alla fine.

lista = [“mamma”]
lista.append(“papà”)
print lista # Visualizza [“mamma”, “papà”]

Per rimuovere un elemento, si può usare del:

lista = [“mamma”, “papà”]
del lista[0] # Elimina l’elemento 0, ovvero “mamma”… Povera mamma 😀
print lista # Visualizza “papà”, ormai rimasto single 😉

Infine i comodissimi dizionari… A ogni chiave, viene associato un valore. Ammirate gente! 😀

dizionario = {“mamma”:”Daniela”, “papà”:”Roberto”}
print dizionario[“mamma”] # Visualizza “Daniela”
dizionario[“figlio”] = “Francesco” # Associa alla chiave “figlio” il valore “Francesco”
print dizionario # Visualizza {“mamma”:”Daniela”, “papà”:”Roberto”, “figlio”:”Francesco”}
del [“mamma”] # Eliminiamo la chiave “mamma” e il suo valore “Daniela”
print dizionario # Visualizza {“papà”:”Roberto”, “figlio”:”Francesco”}

4. Come fare inserire un input all’utente?

Semplice, si possono usare due funzioni: raw_input(“testo: “) o input(“dato qualsiasi: “). Ovviamente il testo racchiuso tra le parentesi si può personalizzare 🙂 La differenza? Il primo restituisce sempre una stringa, il secondo di “adatta” al tipo di dato inserito. Ecco qui:

nome = raw_input(“Nome? “) # Ritorna sempre una stringa
anni = input(“Anni? “) # In questo caso ritorna un intero

Pubblicato da: frafra | maggio 30, 2008

Svelate le specifiche dell’Aspire One

Ecco le spefiche del nuovo portatile della Acer a 299€!

Ci saranno due versioni, una con Linux (299€, con 512mb di ram e 8gb di ssd) e una con Windows xp (399€, con 1gb di ram e 80gb di hd).

Acer Aspire One avrà un peso di circa 980 grammi, ed un display da 8.9 pollici con risoluzione WSVGA da 1024×600 pixel, quindi widescreen 🙂 Insomma, un Asus Eee 2 la vendetta 😀 La sottilezza del monitor è resa possibile grazie alla retroilluminazione a led.

Il processore è un Intel Atom N270 con frequenza di 1.6GHz (che si abbassa fino a 0.5GHz in caso di inattività), con core Diamondville.

E’ presente tastiera al 95% full size, un touchpad, una webcam integrata e la connettività wifi 802.11b/g. C’è una classica porta ethernet, tre porte USB 2.0, e una uscita video VGA. Inoltre si trova anche uno slot SD card ed un lettore di schede multimediali 5in1.

La batteria al Litio è composta da sole 3 celle ed ha una capacità di appena 2200 mAh, ma pare fornisca una autonomia da 3 ore… Quindi si presuppone che questo portatile (grazie alle soluzioni Intel) consumi veramente poco! 😀

Link: notebookitalia.it/acer-aspire-mini-one-prezzi-e-specifiche-2431.html

Pubblicato da: frafra | maggio 29, 2008

Acer: notebook con Linux a 299€

Acer Aspire One: questo il nome del prossimo notebook (prodotto da Quanta) che sarà venduto a 299€ con preinstallata una distribuzione GNU/Linux. Avrà un monitor da 8,9” (1024×786), processore Intel Atom a 1.6Ghz con HT, dotato di una SSD di Intel Castle Point da 4GB, e una autonomia di 3 ore. Slurp! 🙂

Link: 3fire.blogspot.com/2008/05/acer-mini-note-aspire-one.html

Aggiornamento! nuovo post mio a riguardo: svelate-le-specifiche-dellaspire-one

Pubblicato da: frafra | maggio 29, 2008

Aiuta Firefox a stabilire un record!

Firefox 3 vuole entrare nel Guinness dei Primati!: il software più scaricato di sempre nelle prime 24h! Aiutiamolo in questa impresa 😉 Basta scaricarlo nella data del rilascio, che sarà annunciata a breve, ovvero nel cosiddetto “Download Day 2008” 😀 Se volete partecipare a questa iniziativa o avere maggiori informazioni, visitate:

www.spreadfirefox.com/it/worldrecord

Pubblicato da: frafra | maggio 29, 2008

PyPratico n.00 – Introduzione a Python

1. Due parole su Python Pratico

Dopo il periodo di prova sul vecchio blog, ora si comincia a fare sul serio 🙂 Ogni lezione si basa su circa quattro argomenti principali. Cercherò di mantenere una cadenza regolare (soprattutto adesso che le vacanze si avvicinano e gli impegni diminuiscono). Questa è la prima lezione (ovviamente meno “pratica” come le future); una panoramica su questo fantastico linguaggio di programmazione.

Che il “pitone” sia con voi! 😀

2. Cos’è Python? Perché usarlo?

Riporto pari-pari la definizione che trovate su python.it, che mi pare impeccabile:

Il linguaggio Python nasce ad Amsterdam nel 1989, dove il suo creatore Guido Van Rossum lavorava come ricercatore. Nei suoi dieci anni di vita, si è diffuso in tutto il mondo. In Italia, la “comunità Python” era veramente ristretta. Nel 1999 l’Italia si è svegliata dal suo torpore e sembra che l’interesse stia crescendo.

Python è innanzitutto un linguaggio di script pseudocompilato. Questo significa che, similmente al Perl ed al Tcl/Tk, ogni programma sorgente deve essere pseudocompilato da un interprete. L’interprete è un normale programma che va installato sulla propria macchina, e si occuperà di interpretare il codice sorgente e di eseguirlo. Quindi, diversamente dal C++, non abbiamo un fase di compilazione – linking che trasforma il sorgente in eseguibile, ma avremo a disposizione solo il sorgente che viene eseguito dall’interprete.

Il principale vantaggio di questo sistema è la portabilità: lo stesso programma potrà girare su una piattaforma Linux, Mac o Windows purché vi sia installato l’interprete.

Python è un linguaggio orientato agli oggetti. Supporta le classi, l’ereditarietà e si caratterizza per il binding dinamico. Ragionando in termini di C++ potremo dire che tutte le funzioni sono virtuali. La memoria viene gestita automaticamente e non esistono specifici costruttori o distruttori; inoltre esistono diversi costrutti per la gestione delle eccezioni.

Un altro importante elemento per inquadrare Python è la facilità di apprendimento. Chiunque nell’arco di un paio di giornate può imparare ad usarlo e a scrivere le sue prime applicazioni. In questo ambito gioca un ruolo fondamentale la struttura aperta del linguaggio, priva di dichiarazioni ridondanti e estremamente simile ad un linguaggio parlato. L’indentazione perde il suo ruolo inteso come stile di buona programmazione per facilitare la lettura del codice, per diventare parte integrante della programmazione che consente di suddividere il codice in blocchi logici.

Inoltre c’è un’attiva comunità 🙂 Venite a fare un salto su #python.it su irc.freenode.net 😉

Abbiamo due metodi per programmare: lo scripting su file, o l’uso della console interattiva.

3. Scripting su file

Lo scripting su file consiste nella creazione (con un banale editor di testo) di un file con estensione .py, al cui interno scrivere il nostro codice. Nei sistemi Unix-like (come Linux), è importante aggiungere queste due linee all’inizio del nostro programma:

#!/usr/bin/env python
# -*- utf-8 -*-

La prima indica al sistema con quale interprete eseguire questo script (probabilmente avete già visto una sintassi simile negli script per la bash). La seconda indica la codifica (solitamente utf-8). Sotto queste righe possiamo scrivere il nostro codice. Per l’esecuzione abbiamo due metodi: dato che il nostro programma (attualmente) è testuale, dobbiamo avviarlo da console seguendo uno di questi due metodi:

chmod +x ./file.py    # Dove “./file.py” indica il nostro script appena creato
./file.py    # …e dopo averlo reso eseguibile, lo avviamo

…oppure richiamando l’interprete python manualmente…

python ./file.py

4. Console interattiva

C’è un’altra via per eseguire il nostro codice “pythonico”: la console interattiva. Quando dobbiamo scrivere piccoli frammenti di codice osservando passo-passo i risultati sul nostro sistema, questa è la soluzione migliore. E’ consigliato il suo utilizzo nelle seguenti lezioni. Come funziona? Basta digitare sul proprio terminale:

python

Tutto qui 🙂 A questo punto possiamo digitare il nostro codice, e ogni volta che premiamo [invio], vedremo il risultato apparire sotto i nostri occhi 😉 Ecco come funziona:

La console interattiva di Python

Pubblicato da: frafra | maggio 28, 2008

Nuovi driver NVIDIA (173.14.05)

Sono stati appena stati rilasciati i nuovi driver NVIDIA, versione 173.14.05. Le novità? Supporto “out-of-the-box” all’ultimo kernel stabile (2.6.25), e supporto (anche se preliminare) a xorg 7.5 (ovvero a xserver 1.4). A parte questo, varie bugfix e supporto per le nuove schede.

Link: www.phoronix.com/vr.php?view=12408

Pubblicato da: frafra | maggio 28, 2008

Creare personaggi e fumetti con Inkscape

Girovagando per il web ho trovato un’ottima guida sul come creare personaggi, avatars, e fumetti, con Inkscape (wiki). Tra l’altro è una applicazione che sto riscoprendo negli ultimi tempi, e devo dire che è veramente stupenda. Permette di creare di tutto, spesso gli unici limiti sono la nostra dimestichezza con questo favoloso programma, e la nostra fantasia 😉 Risulta utilissimo se siete web designer, basta impostare qualche gradiente, trasparenza, o creare qualche bottone per rendere un sito unico… 🙂

Il tutorial (in lingua inglese) lo trovate su: www.trazoi.net/tutorials/inkscape/oots/index.html

Older Posts »

Categorie