Tumblr mi blocca il browser

225px-TumblrHomepageRecentemente mi sono lamentato di Twitter (Una domanda su Twitter) e quello ha immediatamente ripreso a funzionare.
Non dico che sia per via del mio post; a meno che fosse tutto un gomblotto di NWO o chi per lui per prendersi gioco di me. Uhmmm improbabile.
Ma chissà, se basta un piangisteo ne ho uno pronto, vecchio di qualche settimana ormai. Riguarda Tumblr, anzi tumblr. come scrivono loro (e non potevano che finire da Yahoo! — nomen omen).

nome

Tumblr (stylized in its logo as tumblr.) is a microblogging platform and social networking website founded by David Karp and owned by Yahoo! Inc. The service allows users to post multimedia and other content to a short-form blog. Users can follow other users’ blogs, as well as make their blogs private. Much of the website’s features are accessed from the “dashboard” interface, where the option to post content and posts of followed blogs appear.

As of September 1, 2014, Tumblr hosts over 201.3 million blogs.

dice la Wiki, come faremmo senza la Wiki? (auto-cit.).

Ora il fatto, motivo del post: da un po’ di tempo appena tento di aprire una loro pagina con Firefox (ma anche con Chrome) il browser si blocca, ingrigisce e non risponde. Per qualche secondo ma non capita mai con nessun altro.

Ho provato a googlare, senza successo; viene il dubbio che capiti solo a me. E non voglio rinunciarci, ci sono amici che postano su Tumblr. Per esempio un sito scientifico, Fake Science, oggi c’era il test sul glutine, ecco il risultato per me:

breadknife

Qualcuno ha qualche dritta? Sulla piattaforma, non sul glutine, nèh!

Programmazione nella Scuola Primaria – 9

3

Abbiamo visto nei post precedenti come si programma usando Python. Ma Python è l’unico gioco in città? (cit.)

No, tutt’altro abbiamo tante alternative, vediamone un paio, limitatamente all’esercizio di Collatz. Come già per Python lo espongo in modo elementare in modo che risulti immediatamente comprensibile. Poi quando si cresce si potrà fare come fanno i nerd.

Questa è la versione Python:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# collatz.py - prima versione

n = 42 # cambiare questo numero 

print n,
while n > 1:
	if n % 2 == 1:
		n = 3 * n + 1
	else:
		n = n / 2
	print n,
print '\nfatto!'

Ruby è un linguaggio di programmazione simile a Python, ecco come diventa lo script:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# coll.rb - collatz in Ruby 1.9

n = 15
print n, " "
until n == 1
    if n.even?
        n = n / 2
    else 
        n = (3 * n + 1)
    end
    print n, " "
end
print "\nciao!\n"

rb

Tutto chiaro vero? A differenza di Python non conta il rientro e i vari blocchi vengono chiusi con la parola riservata end. Non ho resistito e la riga 6 l’ho scritta usando il metodo even?. Sì perché con Ruby tutto è un oggetto (ci sarebbe da fare un discorso lungo ma non è il luogo). Ovviamente potevo scrivere la riga in modo normale: if n % 2 == 0 che è esattamente cosa fa even?.
Benché usato principalemte per il web Ruby fa quasi tutto quello che fa Python e ha parecchi estimatori. Ovviamente c’è per Windows, gratuito, qui: RubyInstaller dove trovate manuali, tutorial e tutto quanto.

E che ne dite di Lua?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
-- coll.lua Collatz con Lua 5.0

n = 15
io.write(n, ' ')
while n ~= 1 do
    if math.mod(n, 2) == 0 then 
        n = n / 2
    else
        n = 3 * n + 1
    end    
    io.write(n, ' ')
end
print("\nciao!")    

lua

Molto simile ai precedenti. Non c’è l’operatore % (o non mi ricordo come si scrive) ma c’è la funzione mod, del modulo math. Lua (Luna in portoghese) è nato in Brasile dove è usatissimo (tutti i programmatori brasiliani che conosco usano Lua, ne conosco peraltro uno solo, ciao Lole!). Lua ha caratteristiche che si apprezzano solo quando il lavoro dventa non banale, cioè mi piace. Per Windows trovate tutto qui: luaforwindows.

Con l’installazione avrete a disposizione anche l’ambiente integrato SciTE, non sarete obbligati a usare il Blocco note.

E ci sarebbero ancora millemila alternative come il Basic o JavaScript. Ma poi il post diventerebbe troppo lungo. Però una cosa devo aggiungerla: il Lisp. Non una versione di quelle ufficiali (per il Lisp esistono tante varianti, molte più di quelle che riuscite a immaginare), una versione piccola, facile ed efficientissima: newLISP.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
; coll.nl Collatz con newLISP

(set 'n 15)
(print n " ")
(while (> n 1) 
    (if (= (% n 2) 0)
        (set 'n (/ n 2))
        (set 'n (+ (* n 3) 1)))
    (print n " "))
(print "\nciao!\n")
(exit) 

nl

Beh, sì, sembra diverso.
Per oggi basta così ma lo sapete che…

Programmazione nella Scuola Primaria – 8

picOggi l’ultima lezione di Python; finito questo saprete tutto quello che so io. Davvero! (OK, quasi, ma quasi tutto, davvero).
E, visto che la mia amica (e mamma anche se il figlio è ormai troppo grande per la primaria) A. mi ha sgridato: “parli di Windows ma usi Linux, si vede benissimo, me ne sono accorta anch’io!” oggi uso Windows.

Ieri abbiamo visto le funzioni, oggi vediamo come renderle disponibili per i vari programmi (script) che facciamo. Cioè vediamo cosa sono i moduli, quelli che a volte vengono chiamati librerie.

# file cose.py

# PI il valore di pi-greco
PI = 3.14159265

# funzione pari()
def pari(n):
	resto = n % 2
	if resto == 0:
		r = True
	else:
		r = False
	return r

# funzione dispari()
def dispari(n):
	return not pari(n)

# funzione ciao()
def ciao():
	print "\nciao!\n"

Ecco questo è il file cose.py che contiene una variabile PI (attenzione: le lettere maiuscole e quelle minuscole sono diverse) e 3 funzioni: pari(), dispari() e ciao().
L’ho creato con Blocco note nella cartella prove del disco C:. Poi ho aperto il Prompt dei comandi e ecco:

0

Per prima cosa sono andato nella cartella prove, con c: e poi cd \prove.
Con il comando dir ho verificato che Windows e il Blocco note non fanno quello che vorrei: aggiungono .txt al nome del file. Ho quindi usato il comando ren per rinominare i file cose.py e saluti.py e ripetuto dir per vedere che fosse tutto a posto. Semplice vero?

OK, siamo pronti per usa sessione Python, oggi lo usiamo in modo interattivo.

1

Ecco, per usare un modulo si usa l’istruzione import, seguita dal nome del modulo (senza il .py). Nell’esempio chiedo il valore di PI; devo scrivere il nome-del-modulo punto PI.

2

In alternativa posso usare questa forma per import; in questo caso PI viene visto senza dover usare il nome del modulo.

3

In questo modo importo tutto quello che c’è nel modulo.

Normalmente non usiamo Python in modo interattivo ma con script, eccone uno finale:

from cose import ciao

ciao()

4

Ecco, questo è tutto per Python; prossimamente un paio di alternative, programmi che possiamo usare al posto di Python, equivalenti in tutto e per tutto. E poi c’è sempre la minaccia del C++, quella che mi ha indotto a scrivere tutta questa serie di post — prossimamente.

Programmazione nella Scuola Primaria – 7

1

Oggi una cosa nuova: le funzioni.
Finora abbiamo visto programmi (di solito li chiamiamo script) piccoli, composti da poche righe ma in pratica questo capita raramente. Però senti che idea (vecchia come il cucco): suddividiamo lo script in parti logiche, esattamente come un libro è suddiviso in capitoli e il capitolo in paragrafi.
Ecco i componenti risultanti dalla suddivisione li chiamiamo funzioni. Vediamo subito un esempio:

# f0.py primo esempio di funzioni
# -*- coding: utf-8 -*-

# definisco la funzione pari
def pari(n):
	resto = n % 2
	if resto == 0:
		r = True
	else:
		r = False
	return r

# main, Python parte da qui

prompt = '\ndammi un numero intero, 10 per finire: '
n = input(prompt)
while n > 0:
	if pari(n):
		print n, 'è pari'
	else:
		print n, 'è dispari'
	n = input(prompt)

print 'ciao!'

Uh! quanta roba! Facciamo così: lo proviamo subito per vedere cosa succede e poi lo dissezioniamo.
Al solito salviamo il file scritto con Blocco note nella cartella prove del disco C: chiamandolo f0.py (controllare che Windows non bari) e lo lanciamo dal Prompt dei comandi con c:\python27\python f0.py; otteniamo qualcosa così:

f0

OK! vediamo perché.
Intanto una cosa strana nei commenti. Sappiamo già che son quelli che cominciano con il carattere # e vanno fino alla fine della riga. Ma a riga 2 c’è un commento mooolto particolare: un metacomando. Deve essere scritto esattamente così e essere nelle righe 1 o 2. La sua funzione è di dire a Python che vogliamo usare le lettere accentate, come definite nello standard UTF-8.

Saltiamo a riga 13, è qui che Python considera l’inizio del programma; in gergo viene detto il main (così i ‘mericani dicono per “principale”).
Riga 15 definisce solo una stringa che useremo più avanti, niente di nuovo.
Invece la riga 16 è nuova di pakka: assegna alla variabile n il valore ritornato dalla funzione input().
input() è una funzione predefinita, immediatamente disponibile, in gergo built-in. Opera in questo modo: scrive la stringa di prompt sul terminale e aspetta una risposta, seguita da Invio. A questo punto la funzione ha il valore di quello che abbiamo scritto e nel nostro caso viene assegnata alla variabile n.
Segue quindi un ciclo potenzialmente infinito alle righe 17-22. Il ciclo è semplice: se n è pari scrive che è pari, se è dispari scrive che è dispari (“d’ho!“, direbbe Homer Simpson), finché diamo 0 (o un numero negativo, non c’è gestione degli errori perché lo script risulterebbe inutilmente lungo).

Ma un momento: cos’è la funzione pari()? L’abbiamo definita noi, righe 5-11.
La definizione comincia con la parola riservata def (scrivere define –definisci– era troppo lungo) seguita dal nome che vogliamo dargli, una coppia di parentesi e il solito due-punti. Le parentesi sono obbligatorie, anche se dovessero essere vuote. Nel nostro caso invece gli passiamo il valore della variabile n. Non è qui il momento di approfondire ma c’è differenza tra la variabile n (è una posizione nella memoria) e il suo valore (in questo caso un numero intero positivo); peraltro questa differenza è la cosa più importante della programmazione “da grandi“.
La funzione è un sottoprogramma che fa cose normali, come farebbe qualsiasi programma. Nel nostro caso calcola il resto di n diviso 2 e assegna alla variabile r il valore booleano (logico) vero o falso a seconda che sia 0 o 1.
Nella riga 17 c’è l’istruzione di return: dice che la funzione pari() sarà il valore della variabile r.

Abbiamo così visto due tipi di funzioni: predefinite e fatte da noi.
Avevo anche pensato di dirvi che un Vero Programmatore™ la funzione pari() la scriverebbe in modo completamente diverso, molto più corta, magari usando lambda (fa geek) ma la trovate da altre parti. E sarebbe una complicazione inutile. Non ditemelo nei commenti, nèh! Ma se volete provate a farla.
E la funzione dispari() come la fareste? avendo la pari() basterebbe scrivere:

def dispari(n):
	return not pari(n)

e funziona. Una volta sarebbe stato vietato dal tuo capo perché la chiamata a pari() ha un costo (cioè impiega tempo) e ti avrebbe obbligato a rifarla come la pari() (basta cambiare l’if). Adesso, secondo me, sarebbe OK.

Chiaro? Domande? Continuo? Ci sarebbe da vedere dove si mettono le funzioni, quando ne abbiamo tante e vogliamo utilizzarle in programmi diversi. Prossimamente, forse :wink:

Ancora sull’Open Source a Torino

Ieri c’è stata la manifestazione di cui dicevo qui: Domenica 14 settembre Richard Stallman a Torino!

rsmOggi ho provato a cercare (online) sulla stampa, quella seria seriosa. Poco, molto poco: niente su la Repubblica, un resoconto su La Stampa (il giornale che leggono i torinesi a modo) che io avrei bocciato senza appello. Meglio di niente ma dai, si può fare di più. Perché non hanno chiesto la collaborazione al pubblico.

In ogni caso c’è la foto di RSM, definito “il guru americano del software libero” e “l’anti Steve Jobs profeta del Free Software”, qui: Torino taglia i ponti con Microsoft e risparmierà 6 milioni di euro.

A fianco di Sant’IGNUcius il mitico prof. ARM (Angelo Raffaele Meo) non nominato nell’articolo. Tra il pubblico (quello dalla parte sbagliata visibile nella foto) non riconosco nessuno, troppo piccoli.

Dai Torino! Conto su di te! E sarebbe bello se cose come questa fossero molto più comuni (comunque non è vero che c’è solo Torino, nèh!).

Programmazione nella Scuola Primaria – 6

Maestra Rosalba parla di me! Qui: A proposito di coding, niente panico. Parla anche di Programma il futuro, di ben altro spessore rispetto a queste note. Ma sono cose diverse: io voglio solo far vedere agli insegnanti cos’è la programmazione. E smagare l’argomento, è una cosa talmente facile che ci riesco anch’io.

laptopsNel post precedente abbiamo visto che normalmente le istruzioni che formano il programma vengono eseguite nell’ordine in cui sono scritte. Cosa che però può variare come quando dobbiamo ripetere più volte una cosa simile. Abbiamo visto il caso delle tabelline dove è richiesta la moltiplicazione di un numero per 1, 2, … 10. Quella cosa viene chiamata ciclo. E in particolare quel ciclo è predefinito, sappiamo già che sarà eseguito 10 volte. Vediamo un caso semplice (che se non è molto semplice mica sono capace) in cui non sappiamo quante volte dovremo eseguirlo. Inoltre –due al prezzo di uno– vedremo anche come eseguire un’istruzione (o un gruppo di istruzioni, è la stessa cosa) sono se si verifica una particolare condizione.

Il programma ha un nome difficilissimo, congettura di Collatz. Ma niente panico, nèh!

# collatz.py - prima versione

n = 42 # cambiare questo numero 

print n,
while n > 1:
	if n % 2 == 1:
		n = 3 * n + 1
	else:
		n = n / 2
	print n,
print '\nfatto!'

Questo programma va scritto con il Blocco note nella cartella c:\prove, come raccontato la volta scorsa. Deve chiamarsi collatz.py, se del caso operate la magia sul nome come raccontato la volta scorsa.
Proviamo a vedere cosa fa, poi lo esamineremo in dettaglio. Aprinte il solito Prompt dei comandi, e eseguite (quello che dovete scrivere è in neretto):

c:
cd \prove
c:\python27\python collatz.py
42 21 64 32 16 8 4 2 1
fatto!

Se cambiamo la riga 3 mettendo 15 al posto di 42 otteniamo:

c:\python27\python collatz.py
15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1
fatto!

OK? Esaminiamo in dettaglio il programma (ricordate che avevamo deciso di chiamare questo tipo di programmi script che fa più geek, o nerd, o saputi?).
Alla riga 3 assegno un valore alla variabile n. Come abbiamo visto precedentemente il segno # definisce un commento, ignorato da Python, lo usiamo nelle righe 1 e 3.
Alle righe 6-11 definiamo un ciclo indeterminato. Riga 6 tradotta diventa: “mentre la variabile n è maggiore di 1 fai”. Cosa fare è scritto nelle righe successive, rientrate rispetto a quella che definisce il ciclo.
Le righe 7-10 stabiliscono quale istruzione eseguire in funzione del verificarsi della condizione di riga 7. Riga 7 si legge così: “se il resto di n diviso 2 è uno fai”. Normalmente non diremmo “se n è dispari” ma il ‘puter non sa cos’è un numero dispari (poi glielo insegneremo, volendo).
Allora se n è dispari (riga 7) esegue riga 8 e cambia il valore di n che viene moltiplicato per 3 e poi aumentato di 1. Notare che riga 8 dipende da riga 7, quindi dev’essere rientrata.
Se invece la condizione “n è dispari” è falsa c’è l'”altrimenti fai” di riga 9. Questa riga dev’essere allineata con la 7 che stabilisce la condizione.
In questo caso verrà eseguita l’istruzione di riga 10 e a n verrà assegnata la sua metà.
In ogni caso verrà scritto il valore corrente di n, riga 11. Notare che se print finisce con una virgola non viene eseguito l’a-capo.
Usiti dal ciclo scriviamo un a-capo (\n, come abbiamo visto nel post precedente) e “fatto!“.

Semplice vero? Domande? Continuo?
Ci sono ancora le funzioni, i moduli e le alternative a Python.
E, come si diceva nel ’68 “ce n’est qu’un début”.

Visto nel Web – 148

Oggi Richard Stallman a Torino. Io non ci sarò ma se qualcuno ne parla lo linkerò. Sulle pagine locali (online) di La Stampa e la Repubblica per adesso non ho visto niente, se del caso aggiorno.
Intanto ecco cosa ho visto nel Web.

Andre Speek

Andre Speek

How is a binary executable organized? Let’s explore it!
::: Julia Evans

SIAE Una inutile società ferma al 1960
::: SIAMO GEEK

Cervelli all’ammasso
da discutere
::: manteblog

Bw6B2JUIgAAM5e4

common_regex 1.0.1
::: dartlang

Growing Over Backward Incompatibility
cose che sento dai tempi del Fortran II
::: Hackflow

I litigi su internet
::: Zerocalcare

10268564_710566358998829_8146035799036311963_n

Ubuntu touch ha fatto passi da gigante
::: Twitter

[Ultim' ora] C’è la prolunga del pollice nella confezione dell’ #iPhone6
::: Twitter

LibreUmbria, an update on the Green Migration
::: slideshare

Bw8lSx6IgAIR8b-

Is It Time To Split Linux Distros In Two?
::: Slashdot

Post di servizio
Pisa è più bella di Lille, ma… OK!
::: Scacciamennule

Tutti quelli che dicono che la Rete non ha influenza politica
::: Twitter

ing

Adds Julia-style latex->unicode tab completion
::: github

Apple, Google, tecnologie di rete, valore aggiunto…
::: Luca De Biase

Il web è mobile
::: Luca De Biase

BxK--LOCEAEwTlU

Il nuovo portachiavi
::: Twitter

Ascolta l’oracolo
::: Amo il web, non ricambiato

Tell the FCC: Net Neutrality is (still) crucial to free software
::: Free Software Foundation

alien

Apple Pay: la banca paga (e le compagnie telefoniche restano fuori)
queste sono le cose serie, non quelle raccontate ai fanboy
::: Luca De Biase

Il nuovo commissario all’Agenda digitale europea sono due
::: Luca De Biase

Password
Silvia Ziche

applewatch

Syncthing GUI: GTK3 & Python GUI For Syncthing [Ubuntu PPA]
::: Web Upd8

“Surveillance is advertising’s new business model”
un memo su roba che andrebbe sviluppata
::: Luca De Biase

Launch gedit in the background
fatto chiamandolo ge, funziona (ho messo la shebang)
::: The Ubuntu Incident

BxOSPo_IcAAICw4

La sentenza: nessun obbligo per chi acquista un pc di accettare il sistema operativo
::: il Sole 24 Ore

City of Turin decides to ditch Windows XP for Ubuntu and €6m saving
::: ZDNet

Watches
::: xkcd

BxPJ2yQIcAAjbF1

Il governo Usa – Yahoo?!? – spudoratamente contro gli utenti
::: Luca De Biase

#apple #watch
::: Twitter

Oh oh bye bye social life XD
::: Twitter

il selfie di Philae

il selfie di Philae

Il gigante e la farfalla (La prima regola della comunicazione)
on Twitter
::: Giuseppe Granieri

Customizing plots with style sheets
::: matplotlib

10532506_10152192102181610_1288100132265246212_n

WikiLeaks Spy Files
::: Bruce Schneier

Software Patents Are Crumbling, Thanks To the Supreme Court
::: Slashdot

La comunicazione post-linguistica di Apple Watch
::: Terminologia etc.

ppca

Ripritino di Flash Player Plug-in su Youtube (da Firefox 33)
::: OS)(SIDE

Europe: “Libraries May Be Permitted To Digitise Books Without Copyright Owner’s Consent, EU High Court Rules”
::: Library Journal INFOdocket

Se Twitter diventa un altro Facebook
::: On Marketing

Bu2pXJpCIAABI9T

Addio WordPress, benvenuto Jekyll
::: Bl@ster’s

The MOOC Revolution That Wasn’t
::: Slashdot

Git mini guida ai comandi principali
::: evilripper

BxZ-Ln5CIAAQE6_

Domenica 14 settembre Richard Stallman a Torino!

fosca
A me nessuno dice mai niente! Cioè sì, un tweet di Fosca Nomis (un RT in realtà) mi dice che devo cambiare tutti i miei programmi.

Domenica a Torino c’è Stallamn! E non solo. –OK, detta così va a finire che vengo frainteso, anzi mi autofraintendo da solo fin da subito, adesso cancello tutto.

turin

Allora solo i link agli URLs, se siete da queste parti è un’occasione da non lasciarsi scappare.
Se invece siete più distanti valutate se non sia il caso di verificare se dal monte dei Cappuccini (monte è una parola grossa) Piazza Vittorio (bisognerebbe aggiungere Veneto ma non lo fa nessuno, mai; è del Juvarra, se volete vi monto su un post lungo così (sulla piazza)) e la Mole Antonelliana si vedono proprio così o c’è stata una photoshoppatura pesante.

In ogni caso trovate tutto qui:

arci

Programmazione nella Scuola Primaria – 5

Comincio con qualche segnalazione:

Perplessità? Qualcuno sa qualcosa di quello che fanno all’estero? Dai, non credo che saremmo noi gli unici, o almeno i primi!

bambiniIntanto io ne approfitto per far vedere com’è facile programmare. Finora abbiamo visto la modalità interattiva, scriviamo qualcosa e l’interprete Python risponde. Ma sarebbe scomodo se ogni volta dovessimo ripetere le stesse istruzioni. Per questo esistono i programmi.
Si usa normalmente parlare di script, come per la parte che deve recitare l’attore (il copione) o la lista della spesa o –insomma, dico la verità: non so come si traduce script. Possiamo chiamarlo programma.
È un semplice file di testo, quelli che otteniamo con Blocco note (Notepad in inglese). Esistono modi più amichevoli per creare lo script, li tratterò prossimamente. Per adesso quello che dovete fare è creare con Blocco note il documento primo.py come questo:

# esempio piccolissimo
# di script Python

print 'ciao!'
print "ecco un esempio"
print 'piccolissimo'
print 'di programma'
print 'scritto in Python'
print '\nsemplice vero?'
print

Vediamo com’è fatto. Le prime due righe sono commenti, vengono ignorate da Python ma sono utili per noi. Un commento inizia con il carattere # e finisce con la fine della riga.

Si possono inserire righe vuote che facilitano la lettura dello script, tenete presente che qualsiasi script prima o poi dovrà essere modificato e se è ordinato e non pasticciato non vi verrà il nervoso e il mal di testa.

Seguono tante righe che iniziano con print. “Print” vuol dire stampa, è un residuo archeologico di quando non esistevano ancora i monitor e le scritte finivano sulla stampante.
Dopo print segue una stringa (potrebbe esserci altra roba, lo vedremo tra poco). La stringa è qualsiasi scritta compresa tra apici o virgolette. Se print è da solo come nella riga 10 produrrà una riga vuota. Notare invece la combinazione di caratteri di riga 9: \n. Si chiama combinazione di escape, questa significa newline, linea nuova, a-capo.

Allora vediamo come fare. Dovete aprire Gestione file e creare la cartella prove sul disco C:. Il file primo.py dovrà essere in quella cartella. Windows spesso (ma non sempre, dipende da chissà quali impostazioni) aggiunge .txt al nome del vostro file; vedremo come trattare questa rogna.

A questo punto dovete lanciare il Prompt dei comandi (l’abbiamo visto recentemente) e andare nella cartella appena creata con cd c:\prove.
Se date il comando dir vedrete l’elenco dei file (documenti) della cartella, nel nostro caso c’è primo.py –forse. O forse no, ma in questo caso c’è prove.py.txt (atz! ecco!). Se c’è l’infame .txt lo togliamo con il comando ren primo.py.txt primo.py (ren sta per rename, rinomina). Se ripetete il comando dir vedrete che è tutto OK. E a questo punto potete lanciare Python con c:\python27\python primo.py ottenendo questo:

primo

Facile vero? Ma in fondo abbiamo solo chiesto di ripetere stringhe così com’erano. Vediamo un caso più realistico, una cosa che serve anche ai ragazzi, una tabellina. Anzi quella più difficile, quella del 7.

# la tabellina del 7

numero = 7
for volte in range (1, 11):
	risultato = numero * volte
	print numero, 'x', volte, '=', risultato

print 'fatto!'

Chiamate il file tab-7.py, facendo se del caso lo stesso esorcismo di prima.

Allora: la prima riga è un commento. In riga 3 assegno alla variabile numero il valore 7.
Esaminiamo riga 4. Traduco: per volte (è una variabile) nell’intervallo che va da 1 a 11 (escluso) fai. Sembra sensato vero?
Fai cosa, però? Ecco cosa fare lo dice il blocco delle righe 5 e 6. Sappiamo che è un blocco di istruzioni perché sono rientrate (tutte dello stesso numero di spazi) rispetto al fai (in realtà :) della riga immediatamente precedente.
Riga 5 mette nella variabile risultato il valore della moltiplicazione di numero (cioè 7 per via di riga 3) per volte (che varia nell’intervallo definito in riga 4; volte è il contatore del ciclo, sì for è un ciclo).
Riga 6 scrive quanto ha appena calcolato. print l’abbiamo già conosciuta ma qui vediamo che scrive 3 numeri e 2 stringhe. L’elenco delle cose da scrivere lo dobbiamo separare con virgole.

Dopo una riga vuota per rendere più leggibile lo script c’è un’ultima scritta. Siccome siamo usciti dal ciclo delle righe 4-6 dobbiamo allineare print in colonna 1 (inizio della riga). Con il comando c:\python27\python tab-7.py ottengo

tab-7

Über-facile, vero? Quasi-quasi mi pento di avervi svelato il segreto, mi sono smagato.
E mica finisce qui: c’è un’ultima chicca. Se cambiate l’istruzione di riga 3, sostituendo il 7 con un altro valore otterrete la tabellina di questo. Per dire anche 9, 42, 314159265. O anche di numeri non interi (chissà se si usano le loro tabelline?). Restano esclusi solo i numeri speciali come unmucchio e ventidodici.

aiFonsei

click

click

Sì me la sono persa, tutta. Ma, come si dice qui in Padania who cares!
Sto parlando della Presentazione dell’iPhon6 6 e 6 Plus e iCosi collegati.

Non sono un fan (meno che mai un fanatico) della MelaMorsicata™ e ieri sera quando ho visto Twitter pieno di cinguettii melomani ho chiuso tutto.
Ma adesso una rassegna di quello che ho trovato questa mattina. Dopo una notte in cui ho dormito male: metti che quelli hanno davvero presentato quello che stravolgerà tutto e il 9 settembre sarà l’anniversario di quando…
OK, torno in me; pare non sia stato proprio così.

How Apple’s Launch Event Distorted Reality — Again. È uno show, un rito, come la messa delle 11 (a cui non partecipo, noi pastafariani simo diversi).

Mantellini, a volte passa per quasi-fanboy, qui previsioni prima della  santa messa.

Luca De Biase, si chiede se…

BxG3xaWCEAAU4tL

E c’è anche l’orologio, qui, qui e qui.

Insomma, io sono con Oatmeal.

Comeprincipe

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 71 follower