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

Qualche suggerimento sul terminale

termUna domanda che mi fanno spesso quelli che arrivano da Windows è: “Ma con Linux bisogna fare le cose dando comandi astrusi invece di fare click sulle icone. Tu per esempio racconti di programmi con linguaggi spesso strani che fai girare nel terminale. Sempre e solo quello”.
Vero. Ma solo perché non racconto tutto quello che faccio. Per esempio mi collego a Internet con Firefox (o Chrome), apro i siti dei miei blog, di Google+, Twitter, Facebook, la Repubblica e quant’altri e li vedo proprio come se fossi su Windows. Se devo scrivere un documento apro AbiWord, l’equivalente di M$Word, molto simile ma con il grosso vantaggio di non dover arricchire i successori di Bill (Ok, ci sarebbe un’alternativa ahumm-ahumm ma poi Micro$oft viene a saperlo e s’inkatsa). Ah, sì riesco a leggere i documenti fatti con Word e i miei posso salvarli nel formato compatibile con Word, sia quello vecchio che quello nuovo; caso mai il problema sono i font se se ne usano di strani (belli ma improbabile che siano sul mio ‘puter). Lo stesso vale per i fogli di calcolo e le presentazioni PowerPoint, e il ritocco delle immagini: uso Gimp al posto di Photoshop. E tutto questo senza usare il terminale, proprio come con Windows.
L’interfaccia è diversa, certo, manca il pulsante Start, o è messo in un altro posto o nascosto o … Prendi Lubit, per esempio: il pulsante Start, cioè per aprire il menu, faccio click sullo sfondo con il tasto destro. Ma se la finestra che sto usando è a pieno schermo non posso; colpa mia però che tengo il browser fullscreen anche quando non serve, senza contare che le righe troppo lunghe sono illeggibili.

OK, sono uscito fuori tema. Volevo solo raccontare anche qui sul blog cose che ci siamo detti ieri sera. Un paio delle quali possono tornare utili. Del terminale.
Intanto come si apre: dipende dalla distro (la varietà di Linux che usate), per esempio su Lubit uso la combinazione di tasti Super-T o Super-Y. Il tasto Super è quello con le finestra volanti sopra; con T mi apre un terminale sullo sfondo (che posso chiudere con exit) ma in genere preferisco quello di Y. Posso aprirne anche più di uno, per esempio quando mi accorgo di non ricordare una cosa ne apro uno e ci scrivo man <nome del programma>. Comodo vero? Ovviamente non a pieno schermo. Ho inoltre (quasi sempre, per esempio con Ubuntu devo attivarli) più desktop a disposizione; con Lubit provate a digitare Ctrl-Alt-Freccia_a_destra e andate sul desktop 2; con la Freccia_a_sinistra tornate sull’1. Idem con Ubuntu dove per aprire il terminale uso Ctrl-Alt-T.
Per chidere il terminale posso usare sia il pulsante X sulla barra della finestra che dare il comando exit. Ma di solito uso il modo vecchio Ctrl-D.
I comandi per il terminale, quelli per la shell dicono i saputi, dopo un po’ s’imparano. E sono molto più efficienti del solito meccanismo con menù, finestre, click e compagnia bella. E da sempre i comandi possono essere collegati, con il meccanismo del pipe di cui accennavo ieri. Esempio creativo: supponiamo di aver bisogno di un help per calc, posso dare da terminale il comando calc 'help help' e ottengo questo:

0

Troppa roba; meglio calc 'help help' | less:

1

(q per uscire). Adesso posso vedere l’output paginato e andare su e giù con PgSu e PgGiù. Io che sono vecchio in realtà mi viene spontaneo usare more al post di less e posso andare solo in avanti; poi però mi ricordo che less is more, nèh!

I comandi possono risultare anche lunghi ma non c’è bisogno di ripeterli ogni volta: vengono memorizzati ed è possibile richiamarli con Freccia_Su e Freccia_Giù. E c’è il comando history, ecco la fine del suo output:

2

Nel caso in figura per ripetere il comando ls -l potrei scrivere !1708. Ma forse è meglio !comando che mi ripete l’ultimo comando. Ancora una cosa, per il comando 1709 dell’immagine sopra presenta due cose caratteristiche: il nome del file con spazi, per la shell (il terminale) devo backslashare gli spazi, ne parlerò se interessa qualcuno. Ma il nome è lungo, mica devo scriverlo tutto! basta che scriva cat Qu e poi Tab e c’è l’autocompletamento. Questo vale anche nel caso di ambiguità, la shell ti aiuta, esempio:

3

dove dopo il cat alpha ho premuto due volte il Tab e mi è comparso l’elenco.

Nella history i comandi vengono memorizzati, riaprendo il terminale trovate quelli delle sessioni precedenti. E ogni comando precedente, rintracciato con l frecce può essere modificato. Però invece di raccontarveli io vi rimando a Artem Russakovskii, il suo PDF è da memorizzare, almeno parzialmente. Anche perché con la tastiera italiana non tutti funzionano. Eccolo: Bash Shortcuts

Domande difficili: mi rendo conto che ci sarebbero ancora cose da dire ma il post è già lungo. Interessano queste note? Ci sono nuovi che leggono?

bc invece di calc

Uh, giovedì! Oggi torna a casa il mio giovane amico G. e devo ancora finire la tirata sul calcolo con precisione arbitraria. Cosa già fatta con calc ma ci sono alternative.
Tante. Oggi parlo di bc, uno dei miei favoriti da sempre.

Prima una non-so-quanto-bella-e-imprevista-notizia: ho googlato per cercare qualcosa di simile con Windows ma niente. A meno che uno installi CygWin, GnuWin o simili che mettono a disposizione parecchi tools di Unix/Linux. Poi ci sarebbe Python ma prossimamente, forse :wink:

Che ne dite di ripartire dal calcolo di Mersenne del post precedente? OK, verrebbe spontaneo scrivere:

0no! non accetta parametri sulla linea di comando; l’opzione -q (quiet) elimina la stringa di benvenuto.
Non è il caso di disperarsi per questo, vero? Per esempio con echo e un pipe si ha:

1

OK! Si può fare anche meglio, usando la here-string –cosa che pochi conoscono, (segretissima?)– così:

2

Siccome per il reindirizzamento ci sono tanti casi e la memoria è quella che è io uso questo bignamino di Peteris Krumins: Bash Redirections Cheat Sheet.

Però si può fare uno script come tutti gli altri, che accetti il numero come parametro sulla linea di comando, così:

#!/bin/bash
bc <<< "2^$1 - 1"

3

sì, lo so benissimo che non è uno script bc ma bash ma la filosofia di Unix, fin dalle origini, è proprio quella di avere tanti tools cooperanti, l’ho già detto tante volte che mi considero ripetitivo, proprio come mi dicevano sempre i miei colleghi.

Bon, il post finisce qui, ci sono altre cose che bc fa benissimo ma le potete trovare con man, magari pdf-andolo come raccontato recentemente. Per esempio, se quel numeraccio lo voleste di esadecimale si potrebbe fare:

4

Chissà com’è avevo come un presentimento di questa sfffilza di F.
Precognizione? :shock:

5

Brutte notizie da Monaco di Baviera (forse)

zurückKeine Panik! niente panico, continuo a konsiderare ostiko il tetesko, ma per chi vuole è qui: Von Microsoft zu Linux und zurück.
In realtà la notizia l’ho appresa da Slashdot: Munich Reverses Course, May Ditch Linux For Microsoft, dai è decisamente più leggibile.
Ora se ho capito bene (grazie a Google Traduttore) non è già tutto deciso e definitivo. Vediamo se ho capito, prima di passare a altre fonti.

Il vicesindaco Schmid (destrorso, padano di Bavaria) dice che dovunque va ci sono lamentele il comune sta valutando: se gli esperti raccomanderanno Micro$oft si farà. E, sì, ci sono stati problemi con le mail e i documenti del resto del mondo e dei resistenti. Boh, chissà…

Una googlata in tedesco non ha rivelato niente altro se non rimandi all’intervista della ZDZ al vicesindaco. Vedremo.

Stefano Quintarelli in Potenza del lockin e dell’effetto rete: Monaco torna a Windows copiancolla un post tedesco di un sito windoziano che da per scontato e prossimo il ritorno a Windows. Boh, chissà, vedremo…
A me sembrano molto più informanti i due commenti comparsi dopo che avevo messo giù la bozza. Boh, chissà, vedremo…

Tutto su calc –quasi

Dai! è da tanto che volevo farlo e forse oggi finisco l’esame iniziato l’altro giorno; interessa –forse– anche a G.

Seguo il manuale creato nel post precedente.

c0

Chiaro no? Resta da esaminare il comando read e lo script qtime.cal; prossimamente…

L’opzione -f da usarsi quando si invoca uno script, per esempio ecco mersenne, preso dal manuale con piccole modifiche:

#!/usr/bin/calc -q -s -f

if (argv() != 2) {
    print("usage: mersenne exp\n")
}

/* print the mersenne number */
print "2^", argv(1), "- 1 =", 2^eval(argv(1))-1;

mers127l’opzione -q disabilita la lettura degli script di start-up, serve anche -s; le funzioni saranno da vedere in seguito. Lo script l’ho copiato dal man. Ma ho dovuto modificarlo, in parecchi punti, come cambiare gli indici di argv(). E per capire cosa fare mi sono letto tutto il manuale. Molto completo anche se c’è qualche errore, forse dovuto agli aggiornamenti di versione (calc ha una storia lunga).
Ma il manuale dove si trova, non ti eri lamentato che manca?
No, è embedded (come si dice da noi?) nell’help. per esempio se volete sapere tutto sulle funzioni eseguite calc 'help buitin' > functions (crea un file di testo, un txt). Per sapere i nomi degli help naturalmente si fa calc 'help help' > help.

Adesso ci sarebbero tante cose da dire ma sono già tutte là. Solo un paio di cose che mi hanno impegnato un pochino:

  • la sintassi è simile a quella del C/C++ ma con alcune differenze, ^ eleva a potenza (come in Basic, in alternativa si può usare **); i commenti sono come in C con /* commento qui */ o con ##, equivalente a // del C++, dev’essere doppio;
  • in qualche caso cambiano le precedenze nella valutazione delle istruzioni composte;
  • nei cicli (for, while, …) la { va sulla riga della definizione, come in Go, dà errore su una linea a sé.

Per il resto è tutto OK, usabile. Ah! una cosa: la libreria per i numeri a precisione arbitraria può essere usata anche per il C/C++.
Esiste una raccolta di script, come qtime.cal usato nell’esempio soprastante che risolvono problemi anche peregrini.
Ma dovete leggere la documentazione, è un vero e proprio linguaggio di programmazione, creato da David I. Bell e attualmente curato da Landon Curt Noll (http://www.isthe.com/chongo/) che si firma: chongo (share and enjoy) /\../\

Una cosa che –lo so– non farà piacere a qualcuno: non c’è per Windows.
Perché queste cose non si fanno anche per Windows? Chissà… :mrgreen:

Iscriviti

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

Unisciti agli altri 71 follower