Visto nel Web – 147

Sono incappato in una discussione (che mi piace parecchio) sulla scuola, ma intanto ecco cosa ho visto nel Web.

linux-one-os-to-rule-them-all.001

75% Of Ikea’s Catalog Is Computer Generated Imagery
::: Co.Design

Google removes another privacy related app from the Play store
::: Neowin

Installing Debian Packages
chissà… mai servito (finora)
::: Connor Johnson

10590615_737824866314466_3278847988727941046_n

La tecnologia in vacanza, guida all’incauto acquisto
::: Lega Nerd

Grand Ayatollah Says High Speed Internet Is “Against Moral Standards”
io ho una connessione lentissima: sono moralmente OK, grazie Tim!
::: Slashdot

RLNC (Random Linear Network Coding): verso una nuova generazione di reti
::: ElectroYou

pontida 2015

Avete tutti presente la vastità e la qualità dei contenuti che @Treccani ha messo online sul suo sito, vero?
::: Twitter

Informazione, chi è costei?
::: UIELinux

This video shot by a flying drone shows Apple’s spaceship campus in construction
::: The Next Web

BuZXcWSIUAA5gcM
A Tour of Go
Dottor Bl@ster lo sta finendo, anzi a quest’ora l’ha finito
::: A Tour of Go

Hacker Disrupts New Zealand Election Campaign
::: Slashdot

Quanto costa l’Open Source? È veramente gratuito?
::: Daniele “Mte90″ Scasciafratte

aglio

Invisibili in rete – norme e chiarimenti per stare al sicuro
::: HackerNetwork

Kernel Developer Dmitry Monakhov Arrested For Protesting Ukraine Invasion
::: Slashdot

10570508_808990749152020_7503713900566353643_n
Transcripts of talks?
::: Ned Batchelder

The two best summaries of the celebrity picture hacks
::: Twitter

Amazon’s Plan To Storm the Cable Industry’s Castle
::: Slashdot

albano

Debian VS Ubuntu: quale distro scegliere? [parte 1]
::: oneOpenSource

‘Unofficial’ Windows XP SP4 Launched. Microsoft OS Lives On
::: Forbes

Google to build quantum computing processors
::: CIO

10574412_756357244409809_7212811049839214179_n

Akamai Warns: Linux Systems Infiltrated and Controlled In a DDoS Botnet
::: Slashdot

Does Learning To Code Outweigh a Degree In Computer Science?
::: Slashdot

IBM wants to kill the hard drive it invented
::: Engadget

BulFEfpCEAAOMRN.jpg:large

UCLA, CIsco & More Launch Consortium To Replace TCP/IP
::: Slashdot

Can this free software company secure the future of Linux for the city of Munich?
::: opensource.com

Why Google thinks you should drop everything and pick up Dart!
::: Twitter

sii-te-stesso

Pinta – Un “Photoshop” open source
::: Freestyle Pc

Microsoft is part of the problem, not the solution for Munich
::: The Mukt

Kl4gl

Scala woes?
A fork in the back?
::: Lambda the Ultimate ::: Slashdot

Scratch jr
::: Lambda the Ultimate

abqbg8p_460sa_v1

Programmazione nella Scuola Primaria – 2

k-schoolIl post di ieri ha avuto mooolto successo: parecchie visite e commenti. Non tutti in fondo al post e questo non è tanto bello, dovremo fissarlo. Oggi stesso una proposta.

Ma prima adempio alla promessa fatta alla Maestra Rosy. Come si fa ad avere Python sul proprio ‘puter? Perché altrimenti non si capisce di quello che parlate.
Come sempre Rosalba (posso chiamarti così, vero?) ha ragione. Allora ecco come.

Dal vostro browser andate alla pagina Python 2.7.8 Release e scorrete fino al paragrafo Download, e fare click su quello che ho indicato con la freccia rossa.

download

dopo qualche istante avrete il file python-2.7.8.msi; probabilmente .msi non viene scritto ma è quello con l’icona del computer, è il file di installazione di Python. Si trova dove si trovano i file che scaricate, cosa che purtroppo cambia da macchina a macchina.
Quando lo trovate fateci doppio-click e rispondete di sì, che vi fidate e che volete installarlo solo per voi (o per tutti, dipende se siete gelosi). Vi propone di installarlo in C:\Python27 che va bene, dite ok e procedete.
Qualche istante dopo –congratulazioni!– avrete Python sul vostro ‘puter, benvenuti nella setta segreta dei programmatori!

Per vedere se è tutto OK dobbiamo ancora fare qualche magia. Se siete con Windows8 dovete fare click sulla finestra sghemba a sinistra in basso e poi sull’icona Cerca (la lente d’ingrandimento) e quindi scrivere cmd. Infine fare click su Prompt dei comandi e si apre la tanto desiderata finestra del terminale. Se invece usate una versione precedente il Prompt dei Comandi lo trovate in Start/Tutti i programmi/Accessori. Scrivete

c:\python27\python

e siete dentro all’interprete Python, dove potete fare gli esercizi proposti ieri.

Può darsi che non sia tutto chiaro, non sono riuscito a catturare le figure, il computer non era mio, ma ecco cosa ho pensato anche per voi. Continuate a leggere.

Interazione, proposte e aiuto

Ieri ci sono stati commenti notevoli, leggeteli in fondo al post. Poi altri su Facebook, bene ma non vengono visti da tutti. Idem per Twitter (che poi devono essere brevissimi) e altri posti ancora. Allora, secondo me, i commenti devono essere messi sul blog. Anche altrove, se volete, ma copiateli sul blog. Poi ci sono le cose perso (i français dicono così per personali, e sulla o c’è l’accento, anche se non si vede) e va bene: per loro potete mandarmi una mail. Nella mail potete scrivere quello che volete e allegare immagini e documenti. L’indirizzo è

n1n0.aegis@gmail.com

la tengo sotto controllo quasi costantemente.

Questa casella di mail può essere –sto sognando?– qualcosa di più. Mi riferisco a Roberto, Flavio, Luigi, Marco e altri che hanno protestato per la scelta dei linguagi. C’è una bella notizia anche per loro:

click

click

Allora: mandate i vostri contributi alla mail indicata e li pubblico. Integralmente, senza censura, senza correggere eventuali errori (tranne i link che provo prima). Io sono un evangelista Python ma so benissimo che ci sono alternative molto valide Lua, JavaScrit, Dart, altri.
Ho perplessità sul C++ e anche lì le alternative non mancano: Go, Rust, …
Marco parla di Web. Ecco un altro filone, immenso.
Naturalmente non dimenticando chi sarebbero le vittime l’utenza: i bambini delle elementari. Sì, lo so, ma per una volta voglio usare lo stesso termine di quando ero scolaro anch’io. E pensa te che i maschi portavano il grembiule (nero e fiocco azzurro) solo in prima e seconda poi diventava la scuola grande, con maglia blu e si saliva al primo piano. Roba anni ’60.

Programmazione nella Scuola Primaria – 1

kindergarten

Ieri uno scambio di cinguettii su un argomento che mi piace. Tanto che conto di scriverci un paio di post, subito mentre è ancora d’attualità.
Si tratta dell’inserimento di elementi di programmazione nella scuola primaria, quella che ai miei tempi si chiamava elementare. E sono stati definiti anche i linguaggi: Python e C++.
Intanto concordo sia sull’idea che sulle scelte fatte, quasi completamente. Come attuare tutta la cosa? Pensa che ti ripensa sono arrivato a una proposta, un abbozzo, che adesso provo a raccontarvi.
Devo però fare due precisazioni, doverose quanto mai:

  • esistono diversi programmi per l’insegnamento ai bambini, se serve posso fornire un elenco (ma arriverebbe da Google, magari c’è qualche esperto che ne sa qualcosa e ci fa sapere);
  • le cose che dirò le sto ripetendo da quasi quarant’anni ormai, forse non sono attualissime.

Intanto l’idea di usare Python è ottima: è un linguaggio usatissimo perché facile da scrivere e modificare quello che si è scritto e c’è su tutti i computer, gratuito. Inoltre trovate parecchie cose già fatte, pronte per essere utilizzate (in gergo si chiamano librerie, cattiva traduzione dall’inglese, si dovrebbe dire biblioteche). Per contro è lento in esecuzione; ecco il motivo per cui quando il gioco si fa duro si passa a altri linguaggi, come –appunto– il C++.

Ma cominciamo a vedere Python, in modalità interattiva; quello che scrivo io sarà in neretto:


: psp $ python
Python 2.7.6 (default, Mar 22 2014, 22:59:38) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 3 + 5
8
>>> 12
12
>>> 11 - 3
8
>>> 

come si vede Python aspetta qualcosa e risponde appena si preme Invio. Tutto normale per l’addizione e la sottrazione. Per la moltiplicazione usiamo il carattere *:


>>> 3 * 4
12
>>> 6 * 8
48
>>> 37 * 73
2701
>>> 

Adesso viene una cosa sempre facilissima ma un po’ più complicata: la divisione. Non so se si usa ancora come quando ero scolaro io ma forse sì perché Python fa esattamente così. Per la divisione usiamo il simbolo / e il resto ce lo da %:


>>> 11 / 3
3
>>> 11 % 3
2
>>> 8 / 2
4
>>> 8 % 2
0
>>> 

Ma un bel giorno la Maestra Giovanna viene in classe e ci dice: “oggi parliamo dei numeri con la virgola”. Panico? No, niente panico, adesso mi spiego.

Seguendo Python dobbiamo prendere la cosa un po’ alla lunga, introdurre i tipi (ma niente panico!).
I numeri che abbiamo usato finora sono gli interi, Python concorda:


>>> type(5)
<type 'int'>
>>> type(-3)
<type 'int'>
>>> type(2701)
<type 'int'>
>>> 

type è una funzione, le vedremo prossimamente, ci dice che 5, 2701, -8 e così via sono interi che in inglese si dice integer ma è troppo lungo e da sempre si dice int. Invece i numeri con la virgola sono un’altra cosa. Intanto dobbiamo adattarci a come fanno inglesi e americani e scriverli non con la virgola ma con il punto; quindi tre mezzi lo scriveremo 1.5 e non 1,5.


>>> type(1.5)
<type 'float'>
>>> type(-3.88)
<type 'float'>
>>> 

ecco, li chiama float, dire floating point number (numero a virgola mobile) sarebbe troppo lungo. Vengono spesso chiamati anche real (reali) ma i matematici non sono d’accordo (e non vogliamo metterci a discutere con quelli vero? Noi la matematica la usiamo per quel che ci serve).


>>> type(1,23)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: type() takes 1 or 3 arguments
>>> 

se per caso uno si sbaglia e usa la virgola: niente panico! Python capisce.

Oltre ai numeri ci sono parecchi altri tipi, vediamone un paio: le stringhe, cioè le frasi composte di caratteri:


>>> type("Ciao a tutti!")
<type 'str'>
>>> type('Buongiorno Signora Maestra')
<type 'str'>
>>>

le stringhe (string, str) si devono scrivere tra virgolette, semplici o doppie.

Ancora un tipo e poi basta, per oggi:


>>> 3 > 2
True
>>> 3 > 5
False
>>> type(3 > 2)
<type 'bool'>;
>>> 

il segno > sta per maggiore, più grande ed è un operatore logico, o booleano come dicono gli informatici. Un dato booleano (bool) può avere solo due valori: True (vero) e False (falso).

Bon. Oggi finisce la prima lezione, facile vero? O ci sono domande?
E chissà cosa ne pensano maestra Rosy, Marco Fulvio, Sandro e Moreno (sbaglio o “moreno” vuol dire “maestro”?). Adesso, appena pubblico il post, gli twitto di andare a vederlo. Chissà che ne pensano; la continuazione dipende da loro.

Ancora sul Mac

80_marvin_the_martian_reasonably_smallL’amico Man from Mars –amico di social-cosi– ha un blog da che dovreste seguire, Extended Reality, si è incuriosito di una cosa che m’è sfuggita.

E allora la racconto tutta, cioè quasi. Un pezzettino, quello che posso.
Prima però una precisazione: anticamente non era infrequente la necessità di dover usare il computer di un altro, nel suo ufficio, per fare qualcosa di volante, un’installazione (quando queste non erano così immediate) o una correzione al volo o far vedere come fare cosa o … Tutto questo quando i portatili ancora non erano così diffusi, o non c’erano o –sì c’erano mille motivi. Bisognava adattarsi; io sono il primo a fare N-mila personalizzazioni sul mio ‘puter, l’ho sempre fatto, anzi quando si usavano i mini le personalizzazioni venivano condivise. Ma quando sei ospite a volte ti devi adattare. Per dire c’è chi tiene il mouse a sinistra, i mancini. O la tastiera di Apollo che aveva il tastierino a sinistra o quella del Mac che aveva i tasti invertiti o i francesi che scambiano la Z con la Q (o era W, dimenticato). OK, quando c’era di mezzo un utente Mac dovevi prepararti a sentire un rosario infinito di lamentele.

Per contro qualsiasi cosa Steve Jobs decidesse e proponesse era il meglio che si potesse immaginare, anzi meglio ancora.

g4cubeAnche quando le cose non funzionavano, come il G4 Cube über-pheego ma con grossi limiti, non espandibile perché non apribile. Cosa per loro normale, a un certo punto avevano inventato le viti che potevi avvitare (se eri così pazzo e irrispettoso da provarci) solo con cacciaviti speciali a forma di quadrifoglio o cuoricino o Hello Kitty.

Poi improvvisamente usciva un nuovo modello, completamente diverso e il fanboy si adeguava, ecco il Sunflower (non ricordo il nome vero).

4988040_00af5faa6bMa la mia storia si riferisce all’iMac G3, questo:

imac_smallÈ stato il primo –se ricordo bene– a usare la i. Veniva prodotto con quella plastica traslucida molto bella in diversi colori. Da noi credo ne siano arrivati solo i primi cinque anche se la Wiki ne mostra molti di più.

800px-IMac_G3_flavorsDa notare i nomi: non sono colori ma sapori. Pare che Lui abbia detto “è talmente bello che viene voglia di leccarlo”. Chissà se è vero? Si trova nelle Sacre Scritture?
Io ho visto uno scazzo per via che il computer era arrivato Mandarino invece di Prugna (da noi i nomi erano tradotti). C’era bisogno di usare anche quello ma l’utente finale non voleva sballarlo e attendere l’arrivo di quello con il gusto giusto. Da Milano sono più di 150 km e i corrieri sono quelli che sono…

La cosa più –come dire, era tutto strano– dell’oggetto era il mouse: un disco piatto, pensate a un hamburger piccolo o a una polpetta schiacciata. Come sempre un solo pulsante. Era davvero scomodo da tenere in mano e chi le aveva piccole faticava ancora di più. Eppure c’era chi lo cercava, non so se non si potesse avere senza il computer o fosse solo difficile ma se ne parlava. Essendo Apple i prezzi erano incredibilmente alti, come al solito.

Finisco questa tirata, non tanto contro Apple che fa il suo mestiere, quanto con certi utenti parlando di politica. No, non come pensate. Ma c’è l’iMac di mezzo.
Quando questo era nuovo qualcuno decide che fare la foto del candidato con il computer avrebbe dato l’idea che era uno che ci sapeva fare con le tecnologie nuove di pakka (se ricordo bene eravamo attorno al 2000). Il fotografo sconvolse l’ufficio, come al solito; il mio amico grafico portò l’iMac Prugna e lo accese. Il candidato si mise in posa con un’espressione seria ma non seriosa, molto intelligente e… il fotografo chiese di spegnere il computer; dava un tono strano che rovinava tutto. Nessuno si accorse che era spento, per quel che ne so.

Visto nel Web – 146

Forse sarò meno presente qui sul blog, sto facendo altre cose, il tempo scorre troppo veloce (o sono io che sono lento?), ma ce la metterò tutta. O almeno parecchia, forse. Intanto ecco cosa ho visto nel Web.

wiki

Check out the first generation of your favorite websites
::: The Verge

We wanted the web for free – but the price is deep surveillance
::: the Guardian

Among Gamers, Adult Women Vastly Outnumber Teenage Boys
::: Slashdot

1920542_763650313654743_1206236503_n

GitLab 7.2 – feature, feature e ancora feature
::: Bl@ster’s

A New Homegrown OS For China Could Arrive By October
::: Slashdot

Why Are PC Sales Up And Tablet Sales Down?
::: TechCrunch

windows

Richard Stallman a Torino il 12 settembre
::: Twitter

Happy Anniversary, Linux!
::: Twitter

Le differenze tra le (distro) Linux e Windows/OSX (per novizi)
::: Daniele “Mte90″ Scasciafratte

BwMGrqqCEAAM1py

Choose Your Side On the Linux Divide
::: Slashdot

Interesting facts about Linux
::: Xmodulo

Il punto debole del mobile
::: Punto Informatico

BwMcz9rIUAAyFQe

Android piglia tutto
::: Telcoeye

L’asteroide che ucciderà questo dinosauro deve ancora arrivare (terza parte)
::: GNUrants

The Linux Command Line – A Book By William Shotts
scaricabile liberamente come PDF
::: LinuxCommand

521707_2053819122977_1769545137_942254_2057526627_n

Swatch is finally coming around to this ‘smartwatch’ business
::: Engadget

A Horrifying Interactive Map of Global Internet Censorship
::: Slashdot

Here’s how true Apple fanboys should introduce a newborn baby to the world
il più rinko della setta; da santificare
::: The Next Web

10612572_10152681672709433_3657623945388636124_n

Clojure has now officially replaced Ruby
panico? no, dai leggete tutto il tweet
::: Twitter

La paura del dissenso sui social network
::: Il Post

Android L vs. iOS 8: The Battle for the Best Mobile OS Begins
::: TechSource

10593209_10152686704044700_2007735294081038499_n

Enthusiast developer keeps Windows XP alive with unofficial ‘Service Pack 4′
::: PCWorld

Microsoft may be trolling Google again with cardboard tablet
::: SlashGear

L’incomprensibile scelta di fare consultazioni via mail. L’ultima è del ministero del Lavoro
::: Luca De Biase

main-qimg-920b6cc8b0f979cea2825e12117f4bd6

Per proteggere internet da chi la regola male: Tim Berners-Lee e la Magna Charta per internet
::: Luca De Biase

$33 Firefox Phone Launched In India
::: Slashdot

Si scrive Android, si legge frammentazione
::: Punto Informatico

10489927_762514887120173_1743506020267070099_n

IEEE Guides Software Architects Toward Secure Design
::: Slashdot

Linus Torvalds is the creator of Linux
::: Google+

BwCrM8rIcAALENp

Apple PR

2016A me l’hanno detto contemporaneamente in due: Alessio, il Dottor Bl@ster e OS news.
Si tratta di questo lungo post di Mark Gurman sulla prassi delle relazioni pubbliche di Apple: “Especially the parts about how Apple carefully manipulates journalists, bloggers, and newspapers is very interesting. We all know that they do this, of course, but it’s great to see it all penned down like this.
It’s a long read, but definitely worth it“.

Io sono un veterano di quelli usi a prendersela con i fanatici della Mela Morsicata™. Mi ricordo sempre di quella volta –si usavano ancora i floppy-disk e il monitor del Mac era di dimensioni ragionevoli, anzi piccole– del rinomato giornalista che si è rifiutato di usare un PC con Windows sopra; e doveva scrivere utilizzando M$-Word. E vi ricordate la tastiera “italiana” dei Mac con i tasti invertiti? E il mouse con un solo tasto, e quello a disco di quello colorato semitrasparente che –oops! non posso contarvela questa.
OK, queste sono cose personali ma volevo avvisarvi, mica tutti mi conoscono…

L’articolo di Mark lo trovate qui: Seeing Through the Illusion: Understanding Apple’s Mastery of the Media.
9to5 è nota per la sua serietà, anche quando parla di Apple. Come in questo caso.
Dovete (dovreste davvero) leggerlo tutto. Per esempio l’avvio con un aneddoto davvero squisito –no, non lo racconto, leggetelo là– su come Steve Jobs “has mastered the ability to control situations invisibly, without having its efforts noticed“.
Diversamente da tutti le altre compagnie di dimensioni comparabili tutto il PR è fatto in casa. Anche per mantenere il segreto, su tutto, fino al momento previsto per il lancio. Il gruppo è piccolo, una trentina di persone a Cupertino e poche sparse nel resto del mondo.
Momentum, uno dei gruppi si occupa di inserire i prodotti nella cultura popolare, sport, TV, eventi musicali, come quando vengono visualizzati prima di essere presente nei negozi.
Per quanto riguarda l’organizzazione delle manifestazioni c’è il gruppo Events: “Apple’s PR teams control every word of what the company says, and many of the words that are written about it by others“.
Apple’s PR department presents a cool, measured public-facing image: it only responds to press inquiries when it wants to, doesn’t offer quotes unless they’ll be reprinted without criticism, and responds directly only when it determines that something needs to be said by “Apple” rather than “sources familiar with the matter.” You could picture Apple’s PR strategy as the work of a wise, wealthy, and not particularly friendly queen – one always too busy to be bothered, until for some reason, she’s not“. Davvero dovete leggerlo in originale, oltretutto è scritto benissimo.
La strategia di Apple è di non dire niente; questo porta tutti a tentare di indovinare quello che sta per succedere, tutta pubblicità gratuita. La copertina di Newsweek visualizzata in Part 3) sembra finta, o uscita sul Giornale ai tempi d’oro del Bunga-bunga, o la Merkel Culona.

katie
E che dire di questo, all’inizio di Part 4): “While Apple PR portrayed former VP of Worldwide Corporate Communications Katie Cotton’s departure as a way for the executive to spend more time with her children, the true reason for her departure more likely was Tim Cook’s different vision for Apple’s future public-facing appearances“?
Adesso non so se ci siano cose non dette tra Mark e Katie ma se è come dice lui –e non ho motivi per non crederlo– mi viene da pensare che in fondo non ho incontrato persone tanto malvagie nella vita, grazie FSM! (RAmen).

cookdrecuejimmyE cosa capita quando qualcosa va storto? Come l’antenna dell’iPhone4? O le mappe di iOS? E perché l’acquisto di Beats? Mi sa che dovete leggere l’originale (forse l’ho già detto ma davvero è altamente raccomandato).

Salto un po’ di roba –il post viene troppo lungo– ma stupisce come giornalisti famosi risultino, come dire, da TG1 o peggio (No, Studio Aperto resta inavvicinabile, anche dopo la Sua partenza).
Un futuro più amichevole e trasparente? Io non ci credo.

Un paio di ricordi personali, di tanto tempo fa, ormai non li ricorda più nessuno:

  • HP per le calcolatrici e i personal tipo 9816 faceva qualcosa di simile, almeno da noi. Vero che, esattamente come per Apple i suoi prodotti erano eccezionali. E cari.
  • Non so voi ma a me viene in mente il Vaticano, forse sono prevenuto.
  • Applicando –oops, qui rischio; niente come non detto. Anche se potrei scrivere le memorie da pubblicare solo dopo che avrò raggiunto il Vulcano di Birra.
  • Sì, mi sono divertito mooolto a scrivere questo post.applerainbow

I decoratori in Python

python-logoPython è il mio linguaggio di programmazione preferito. OK, ce ne sono anche parecchi altri ma in certi casi è il migliore. Secondo me naturalmente. È un po’ come il Basic di una volta; poi quando il gioco si fa duro…
Naturalmente esistono alternative, ne ho parlato in passato e probabilmente ne riparlerò presto. Ma oggi Python.
Python, per fare davvero il Basic contemporaneo, deve risultare semplice, usabile anche da chi non smanetta a tempo pieno.
Ogni tanto però salta fuori qualcosa che scombina tutto. Per esempio l’eterna transizione da 2.x a 3.x, in confronto Mosè è stato velocissimo.
Oppure i decoratori. Argomento tornato attuale con questo tweet:

pytime

Jake Vanderplas è un postdoc che si occupa di cose stellari e di Python. Dovreste seguirlo, per Python almeno, qui: Pythonic Perambulations.
Appena visto il cinguettio mi sono detto che il momento di affrontare i decoratori era arrivato. Subito. Poi, OK, sono passati giorni ma adesso ci sono. E non metto neanche troppa enfasi sul fatto che io non li uso e non mi piacciono. Ma ogni tanto saltano fuori e allora…

L’esempio di Jake è ottimo, vediamo:

import contextlib, time

@contextlib.contextmanager
def timeit():
	t = time.time()
	yield
	print time.time() - t

def calcola(n):
	s = 0
	for c in range(1, n):
		s += c**2
	return s

with timeit():
	print calcola(100)

Senza il decoratore (riga 3) ottengo un errore:

senza

Invece tutto funziona con:

con

Notare che il messaggio d’errore  è criptico e non dice dove capita (sì ma bisogna pensarci su un po’).

OK, cos’è un decoratore?
Un decoratore è una normale funzione che modifica un’altra funzione. Quando si usa un decoratore, Python passa la funzione da decorare al decoratore, e la sostituisce con il risultato. (Sì, copiato da qui).

Quindi tornando all’esempio di Jake la funzione timeit() viene passata a contextmanager() del modulo contextlib. Trovate tutto qui: contextlib – Context manager utilities.

Ecco. Questo potrebbe bastare per: 1) confermare l’idea che i decoratori siano roba da matti; oppure 2) argomento da approfondire, con un esempio sensato, sviluppato in dettaglio. Credo che seguirò la seconda alternativa anche perché altrimenti il post sarebbe troppo breve.

Però aspetta: non riuscirei a fare meglio di Bancaldo, qui: Python: decoratori per programmatori di coccio.

Uh! due cose: 1) Bancaldo l’avevo perso nel passaggio da GReader a Feedly, rimediato adesso; 2) nel post trovate anche quando conviene usarli:

# Dove e quando usare i decoratori nella realtà?
Beh un esempio pratico è quando abbiamo necessità di modificare una funzione di una libreria esterna. Siccome non è buona cosa modificare le funzioni di librerie esterne, si lavora su di esse con i decoratori.

E con questo davvero risulta che il post è venuto molto diverso da come pensavo. Intanto salta fuori che basta googlare e spesso si trova esattamente quello che serve. Spesso in italiano, come in questo caso; anche se come scusa di trovare solo roba in inglese la trovo sempre più irritante (sto peggiorando, lo so).

Chi poi volesse tutto lo spiegone, completo dettagliato, lungo, di quelli che TL;DR c’è il Wiki di Python: PythonDecorators.

Anzi la prossima volta che mi fanno questa domanda o una simile li mando subito lì: Python Wiki rockz :razz:

Dopo l’XPocalypse

Sarà dura! Molto. Questo è quello che penso della diffusione di Linux, anzi di tutta l’etica FOSS. Per chi non lo sapesse non mi considero un estremista, secondo me Stallman esagera. Ma ha ragione, fondamentalmente.

robotit_flickr
Diciamo che il post di oggi devo farlo così mi passa il malumore. E poi forse racconto una cosa che non capita praticamente mai. Almeno non ho letto niente di simile.
La faccio breve: ho tentato di convertire a Linux un giovane studente (adesso, cioè appena si ricomincia, quinta superiore) che è partito con entusiasmo a fare una tesina (o si dice ricerca?) molto atipica per la scuola, troppo come vedremo.
Non racconto cosa perché è roba sua, un segreto segretissimo; forse vi rendiconterà lui, a tempo debito. Quello che gli serviva era trattare con numeri grossi, roba da Paperon de’ Paperoni. E con Linux si può, ne ho parlato diffusamente.
Ma ho esagerato, trattando cose troppo diverse dalle usuali. E allora i grandi, il papà di G. e un suo amico prof. che è anche prof. di G. hanno detto che sì, quella tesina si può finire ma forse, anzi è senz’altro meglio dedicarsi ad altro, più proficuo, cose che poi serviranno nella vita. Ora io non sono d’accordo neanche sul fatto che la scuola debba solo insegnarti quello che serve nella vita; almeno non nel senso di fare quello che fanno di lavoro papà, mamma e vicini. Altrimenti io avrei dovuto fare il contadino e adesso allevare maiali pensando che il Paradiso Terrestre esiste, qui a 30 km in direzione sud.

Insomma a scuola il ‘puter serve fino a un certo punto, ci scrivi con un programma tipo Word, fai le tabelle con un programma tipo Excel e le presentazioni con un programma tipo PowerPoint. Altre cose non servono, caso mai il browser (non IE anche se ce l’hai fin da subito, meglio Chrome, o –molto più raro– Firefox). Sì, serve per copiare dalla Wiki (come faremmo senza la Wik? (cit.)).
Ora a scuola continuano a usare XP, sperando che… Se invece conmpri un portatile nuovo Windows te lo trovi già pronto. E i più scafati o fortunati riescono ad averlo con Windows 7 invece di 8.1. Anche se una volta che ti abitui poi vedi che è lo stesso, cioè puoi fare le stesse cose. Non è detto che Office serva quello originale di Micro$oft, anche se… E lo stesso per Photoshop.

E poi, diciamocelo, se arrivate con le cose di Linux e mi chiedete qualcosa non so proprio cosa dirvi, se volete essere originali dovete essere coscienti di quello cui andate incontro.

geogebra
Per contro con Windows ci sono cose che vanno alla grande. Un esempio per tutti: GeoGebra. Vero, concordo pienamente. Volendo c’è anche per Linux.

Adesso ancora una cosa per Linux: io sono anche evangelista Lubit, lo uso, mi piace. Ma l’interfaccia risulta poco amichevole ai nuovi. E se del caso preparatevi a sentire continuamente la stessa lamentela, recitata come se fosse il rosario: perché non posso mettere roba (icone, link, cartelle, tutto il resto che riuscite a immaginare e anche tutto quello che non riuscite sul desktop? Così vuoto mi ricorda una casa abbandonata o nuova ma ancora non abitata, magari manca anche la luce.

Insomma, ho cose vecchie da finire, le riprendo. E mica è obbligatorio che tutti usino Linux. Anche perché poi come farei a considerarmi geek|nerd?

Poi arriveranno i robot –the Robocalypse is coming!– magari con Linux o Android dentro. A proposito l’immagine iniziale l’ho trovata su un blog finlandese (ovvio che non so di cosa parla). È di un fotografo bravissimissimo, iko.

iko

Toh! maggiori info qui, si chiama Emiliano Grusovin.

Programmi autoreplicanti

L’estate del 2014 sarà ricordata da tutti –probabilmente– per la pioggia –oops, adesso si deve dire bombe d’acqua. Ma personalmente io ci metterei anche per la rilettura a fondo, comprese le parti meno sexy di Gödel, Escher, Bach di Douglas Hofstadter. La versione italiana è del 1984, l’ho riletto a pezzi più volte ma sto scoprendo cose nuove o dimenticate (la memoria…). Altre invece le ricordo ma sono proprio quelle che mi fanno ricadere, come ieri, adesso relaziono. Siccome il post è quello che è leggetelo solo se volete, nèh!

Il cap. XVI s’intitola Autoreferenza e autoreplicazione.
Ecco, si può fare? Certooo :shock:

Quelli della mia età ricorderanno senz’altro la versione minimale in GW-BASIC:

10 LIST

Benché sul web  siano disponibili vari emulatori Basic online non ne ho trovato uno fedele che eseguisse il codice come una volta. Forse non ho cercato abbastanza, anche perché il Basc contemporaneo è –secondo me– Python. E qui ne trovi in abbondanza, fin dalla Wiki:

a='a=%r;print a%%a';print a%a

0

Misterioso :oops: Dubbi anche dopo aver ispezionato il paragrafo String Formatting Operations, qui. Da indagare :?:

OK, è il caso di googlare un pochino; ecco The Quine Page dove troviamo lo stesso script con l’attribuzione a Frank Stajano; sintassi leggermente diversa ma è lui. E ce ne sono altri, sempre in Python 2.x, qui.
Ma ci sono tanti esempi in tanti linguaggi, sì probabilmente anche in quello che stai pensando adesso, se non recente: la pagina è dello scorso millennio e fa riferimento a GEB di DRH, proprio come sto facendo io.
Ma aspetta, qui c’è altro ancora. Mi sto perdendo!

OK, tornando al dunque. Tralascio le scelte più banali come  C, Fortran, Haskell, Pascal. Ma un paio di citazioni mi sembrano d’obbligo.

Dedicata al mio amico Luigi Bit3Lux ecco AWK:

1

sì, c’è il problema dell’a-capo.

Ma credo che avrete capito tutti dove avevo intenzione di andare a parare fin dall’inizio. Sì, quello, il Lisp.
Lì si fa riferimento a dialetti seriosi del Lisp (Common, Scheme, …) ma quelli belli funzionano anche con newLISP (sono belli proprio per quello).

Intanto c’è l’ovvio caso banale, ancora peggio del Basic:

2

Questo, di autore ignoto, rockz:

3

Il più classico di tutti:

4

sì, distrugge l’indentazione :oops:

Ma aspetta :idea: è semplicissimo, così:

5

:razz: :roll: :mrgreen:

Visto nel Web – 145

OK, finite le ferie –proprio come dicevo la volta scorsa– si torna al solito. Intanto ecco cosa ho visto nel Web.

BvlmYlFIgAMXKyF
WashPo (owned by Bezos) inserting AMZN “Buy It Now” buttons into articles
::: Twitter

Microsoft Considered Renaming Internet Explorer To Escape Its Reputation
::: Slashdot

Getting Started with MongoDB and Python
::: Connor Johnson

selfie

Time exchange rate
::: The Endeavour

Testing Without A Brain
::: coldflake

Let’s Compile like it’s 1992
bravo Fabien!
::: Fabien Sanglard

10609409_709913805754186_456428219558274425_n

The Engineer of the Original Apple Mouse Talks About His Remarkable Career
::: wired

WikiLeaks’ Assange Hopes To Exit London Embassy “Soon”
::: Slashdot ::: Corriere della Sera ::: Sydney Morning Herald

NSA/GCHQ/CSEC Infecting Innocent Computers Worldwide
::: Bruce Schneier

Plan Would Give Government Virtual Veto Over Internet Governance
::: Slashdot

mosquito

Trusty version (English) published, ubuntu-manual team in Launchpad
::: Launchpad

We have C++14!
::: Standard C++

Apple’s Swift falls back to earth after initial surge
::: JavaWorld

Bvt4EPkIIAEH5O5

12 servizi online per mandare email anonime e per creare caselle di posta temporanee
::: IpCeI

This chart shows the world’s internet usage shifting to smartphones
::: The Next Web

Monaco vuole tornare a Windows
OK, poi basta :shock:
::: TalLinux

BuJjS6TIUAEImT6

Ballmer Leaves Microsoft Board
::: Slashdot

Microsoft has retired Windows XP and Steve Ballmer this year
::: Twitter

Safer Haskell Install
::: yannesposito

10494671_317474138426216_8374156824537544236_n

Linux kernel coding style
::: The Linux Kernel Archives

Un problema dimenticato del diritto all’oblio
::: Luca De Biase

Linus Torvalds: ‘I Still Want the Desktop’
::: Slashdot

peaceful

Check Out How Much Google Has Changed Since It First Launched
::: Business Insider

Navigating Bash History with Ctrl+R
ma dimmi te! se non ci fosse Twitter chi mi direbbe queste cose?
::: LornaJane

Richard Stallman’s TEDx video: “Introduction to Free Software and the Liberation of Cyberspace”
::: Free Software Foundation

androidVSiphone

Professor Steve Ballmer Will Teach At Two Universities This Year
beh, da noi c’è Schettino: vinciamo noi (se poi ci fosse anche Moggi…)
::: Slashdot

Munich Council Say Talk of LiMux Demise Is Greatly Exaggerated
::: OMG! Ubuntu!

Ubuntu: creare un elenco dettagliato dei pacchetti installati
::: lffl

book2movie

Study: Ad-Free Internet Would Cost Everyone $230-a-Year
::: Slashdot

La trappola JavaScript
::: GNU Operating System

BuWE2GwCEAEnNva

Monaco di Baviera torna da Linux a Windows. Anzi, no. Più no che sì
::: Dario Cavedon (iced)

Fun fact: The Atari 2600 had 128 bytes of RAM
::: Twitter

Bvq6ClECEAI5SSJ

Iscriviti

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

Unisciti agli altri 71 follower