Sfogo principalmente contro certi blogger, ma non solo

rantC’è questo post di questo tizio che con una quarantina di righe in Python…
Io sono pollo, ci casco spesso. Troppo spesso.
L’ultima volta è successo molto recentemente, e erano davvero 40 righe di codice Python. C’era da installare un paio di moduli, ma con il Sofware Center di Ubuntu non è un problema, anzi, tutto liscio nonostante la lunga spiegazione di come fare per Debian e derivate sul sito di uno dei moduli. Ecco primo problema: documentazione non aggiornata, il package funziona ma nessuno ha trovato il tempo di aggiornare quella pagina, diciamo negli ultimi 3 anni.
OK, provo a eseguire, funziona, subito tutto. Però come si fa a uscire? La finestra non ha la barra del titolo (si può rimuovere ed è stata rimossa, il tutto nelle famose 40 righe scarse, commenti compresi). Prima di ricorrere a metodi brutali mi accorgo che la finestra è ridimensionabile, allargo e il “quit” è lì, anzi ce ne sono due: quit e save+quit. Torno a leggere il codice e vedo che i due bottoni pulsanti rispondono allo stesso messaggio, dai in 40 righe cosa pretendi?
Si può sempre leggere con attenzione il post, tutto è partito di lì e il mio amico si è convinto che fosse una cosa bella leggendo quello. Nuova delusione, non c’è nessuna dritta su come funzioni lo script, che ha –mi accorgo ora– anche un nome inappropriato, programmatico ma arbitrario. E andando avanti e leggendo fino in fondo trovi che sì, ci sta lavorando ancora anzi è solo all’inizio ma vuole farci vedere quel package…

chicken_of_doomPollo! Se leggevo tutto prima di cominciare a trafficare… E non è neanche la prima volta che mi capita! E continuo a cascarci! :evil:

Poteva anche andare peggio: questa volta era in Python ma capita che mi chiedano per Ruby, Lua o peggio. Se conosco già il linguaggio OK, altrimenti no, dafinitivamente no. A meno che sia una cosa che m’interessa, vedi Octave. Ecco Octave poi è risultato che non poteva fare quello che si voleva e si è passati all’equivalente proprietario e oneroso, Matlab. Ma mi piaceva e sono contento di averlo visto. Un caso simile è quello di Gnuplot: l’ho scovato io, l’ho proposto e implementato diversi script (molto simili tra loro e per di più quasi interamente copiati online), funzionano ma non piace, per la sua sintassi inusuale e con Windows c’è qualche problemino di gestione.
Altre volte mi son sentito dire: vediamo questo che si potrebbe usare per… E poi invece si blocca tutto e non se ne parla più (non faccio nomi perché non ho ancora metabolizzato completamente la cosa, ma ci sono le tracce nel blog).
Cose che a me piacciono invece sono giudicate improponibili (newLISP, p.es). Ma queste le seguo indipendentemente dal possibile uso, per esempio c’è Paul Tagliamonte (Paultag) con Hy, usare Python con la sintassi del Lisp, quasi come Rich Hickey ha fatto con Java e JVM.

Per finire (rant lungo e generalizzato oggi, ma poi mi passa –forse) i blogger: non sempre sono affidabili, anzi diffidarne, spesso.
C’è chi parte con un’idea che poi cambia completamente, che faccio? lo abbandono? e se si trattasse solo di una cosa temporanea?
C’è chi si fa un blog dove pubblica cose di quando era ancora a scuola, intriganti, lo segui; ma poi smette, improvvisamente: ha trovato lavoro e non ha più tempo o voglia. Ma in questo caso il blog ha funzionato. Bene.
E quelli che risulta che un blog ce l’hanno ma fanno un post all’anno?
E quelli che invece ci raccontano di tutto, anche quando oggettivamente la cosa non interesserebbe nemmeno alla loro mamma. Se leggesse il loro blog.
E –mi accorgo rileggendo– chi fa post come questo. Meglio che chiudo qui, non leggetelo, è solo uno sfogo contro l’universo mondo (cit.).

Ah! OT, ma cercando un immagine ho ritrovato un mio vecchio avatar, mio nel senso che lo usavo io, il Chicken of Doom, lo trovate @ EotL (End of the Line).

Mathics – 5

2Finora mx si comporta molto bene a imitare wm (solite notazioni precedentemente definite, se avete scorso i post precedenti dovreste sapere che stanno rispettivamente per Mathics e Mathematica, ultima volta che lo dico, non vorrei sembrare ripetitivo).

Non è che voglio descrivere tutto mx, c’è una ricca documentazione in proposito cui rimando. Questo post e i successivi verificheranno solo quello che si può fare.
Per esempio per vettori, matrici e tabelle si ha:

0e anche

1
Per le matrici ci sono le usuali funzioni (quelle che in Fortran dovevo rifarmi, tanto tempo fa):

2
L’ultima espressione è diversa da quella che da wm; quella di wm è più bella:

3
Esempio numerico per verificare il tutto:

4Ahemm, diversità tra mx e wm. Altro esempio preso dal manuale di mx

5
OK. Eigenvalues = autovalori e Eigenvectors = autovettori; ho un team di consulenti per le traduzioni, prima o poi ne parlerò.

Per oggi basta così :roll:

Visto nel Web – 127

C’è la nuova versione di Ubuntu, ne parlano quasi tutti bene: è il caso di preoccuparci? No, non ancora installata, prima devo finire diverse cose, per esempio dirvi cosa ho visto nel Web.

BlGI7RbCUAA_1Ev.jpg:large

Programmable microfluidics, Nanobot computers, stem cell mastery, organ rejuvenation, reinforced graphene, self-assembled films, software radio, atom-photon coupling.
::: Google+

Amazing Technology Invented By MIT – Tangible Media
::: Twitter

GCC 4.9 Release Series
::: GCC

3d printer

Copia privata: a un passo dallo scandalo
::: Il Fatto Quotidiano

Software eats software development
::: chris dixon

Addio vecchi libri di testo Si studia su quelli fai-da-te
::: la Stampa

batman

44% of Twitter Users Have Never Tweeted
::: Slashdot

Getting Hy on Python: How to implement a Lisp front-end to Python
::: pyvideo

Heartbleed Disclosure Timeline Revealed
::: Slashdot

benissimo

Stampa 3D, le prime esperienze
::: ElectroYou

The financial value of open source software
::: Daniel Lemire

Segni di libertà, in un periodo difficile per la rete
::: Luca De Biase

Steam trolley on the railway Gothenborg an Halland in Sweden.-Photo Fotofirma Vikner K & A, 1891

Steam trolley on the railway Gothenborg an Halland in Sweden.-Photo Fotofirma Vikner K & A, 1891

One day I hope to have less than 20 Stack Overflow tabs open
ma alora non sono il solo :roll:
::: Twitter

The Security of Popular Programming Languages
::: Slashdot

Snowden Used the Linux Distro Designed For Internet Anonymity
::: Slashdot

rain

How Apple’s CarPlay Could Shore Up the Car Stereo Industry
::: Slashdot

Learning Racket: Introduction
intrigante, chissà…
::: artyom

Dear Web Developers: EFF Needs Your Help
Donate a Few Hours to Help Us Create a Free Software Backend for Contacting Congress, Make the World a Better Place for Digital Rights
::: Electronic Frontier Foundation

BkZH2wyIgAAbVEU

Better Bash Scripting in 15 Minutes
::: Robert Muth

Watch this: Android design head Matias Duarte explains why mobile is dead
::: The Verge

Google Looked Into Space Elevator, Hoverboards, and Teleportation
::: Slashdot

costola

Slides con LaTeX: un template per Beamer
::: my life according to me v2.0

Mt. Gox Ordered Into Liquidation
::: Slashdot

Code Quality: Open Source vs. Proprietary
::: Slashdot

funny-pictures-auto-demotivation-apple-478096

Industry-Wide Smartphone “Kill Switch” Closer To Reality
::: Slashdot

Diffamazione online. Quando Internet fa ancora notizia!
::: guidoscorza

The Limits of Social Engineering
::: Technology Review

1779947_10152331593953420_33829733_n

Go Performance Tales
::: jmoiron

The rise of functional programming in Banks
sapete ‘na roba: Clojure si potrebbe anche …
::: Oxford Knight

Siamo tutti pirati: perché “I’m happy” dimostra che l’Agcom sui copyright non ha capito nulla
::: CheFuturo

pasqua

Le insicurezze del sito di Beppe Grillo
::: Solo un altro inutile blog

Free Software Is Even More Important Now
::: GNU Operating System

Python Data Analysis Library – pandas
::: pandas

1675891_700b

You Don’t Read Code, You Explore It
::: Programming in the 21st Century

my favourite programming book introduction
::: Twitter

Institutions that are enemies of the Internet
::: Twitter

Blh6pvDIYAAj7EE

Hy is a wonderful dialect of Lisp that’s embedded in Python
adesso siamo alla 0.10, parecchie novità, bravo Paultag!
::: github

Ubuntu 14.04:Installare repository GETDEB
::: UbuntuManiaco

10007464_765355113496971_7524199931130042158_n

Mathics – 4

1Spesso con mx (Mathics, abbiamo convenuto di chiamarlo così, ricordate?) ha a che fare con la manipolazione delle liste, proprio come quell’altro linguaggio di cui adesso non ricordo il nome :wink:

0Notare come il primo elemento della lista sia 1 e non 0 come capita nei linguaggi sensati di solito.

1È possibile cambiare gli elementi della lista.

2Un vettore (vector) è una lista monodimensionale, una matrice (matrix) è una lista di liste. Sembra di essere tornati al Fortran (dove però le dimensioni a disposizione sono molte di più, minimo 7, già nell’antichità).

3Ovvio, no? E poi…

4E anche

5
Ecco sono arrivato a un punto dove ho problemi di traduzione. Facciamo che chiedo aiuto a qualche matematto nostrano come si traduce dot (o scalar) product e cross et al. Sapete io li ho affrontati quando correva l’anno –roba dello scorso millennio.

Ah! ho anche messo online la prima bozza delle cose che è bene sapere di Mathics, qui

Un quiz di Annarita

Header

Vi voglio raccontare di una mia disavventura programmatica multipla. Però non dovete ridere troppo di me, anche perché comunque c’è l’happy end finale.

Sto studiando mx, ahemmm Mathics e quando ho visto il post della prof. Annarita Ruberto: Trova Il Numero Misterioso mi son detto: “ecco l’occasione per testare la mia conoscenza di mx!“. Disastro, devo ancora impratichirmi, parecchio.

Ma, quando il gioco etc… perché non provare con Python? OK, disastro anche qui.
Perché non avevo capito il senso del testo. E cominciavo a disperarmi. Anzi panico proprio. Non sono più quello di una volta! OK, basta frasi fatte e commiserazioni. Ieri Annarita ha pubblicato (con un giorno di ritardo su quanto aveva minacciato) la soluzione, spiegando i passaggi in modo che capissi anch’io (sigh!): Trova Il Numero Misterioso: La Soluzione E Altre Curiosità.

Insomma questo è il problema:

1. la somma delle cifre di x è un numero y, che, moltiplicato per il numero ottenuto invertendo le sue cifre, dà come prodotto x.
2. Trovando i fattori primi del numero ottenuto invertendo le cifre di x, poi calcolando la semisomma dei quadrati di questi fattori primi, e, infine, rimuovendo la cifra 0 dal nuovo numero, si otterrà il numero x.

E questa la soluzione:

Il numero 1729 soddisfa la condizione 1 del puzzle perché:
la somma delle sue cifre è 19 e 19 ∙ 91 = 1729.
1729 soddisfa anche la condizione 2 perché:
9271 = 73 ∙ 127
e
(73^2 + 127^2) / 2 = 10729. Rimuovendo lo zero da questo numero, si ottiene proprio 1729.

Ah! ma allora, presto, anzi prima di subito, con Python e in futuro (forse) con mx Mathics!

numbers
Solo un paio di osservazioni prima del listato:

  • C’è bisogno di trovare i fattori di un numero, ho trovato una soluzione che mi piace sul solito Stack Overflow: Prime factorization – list. Non l’ho analizzata, funziona, forse in futuro… L’autore ha un blog interessante, su argomenti affini, avendo tempo…;
  • Visto che continuavo a ripetere sempre le stesse istruzioni ho deciso di trasformarle in funzioni, anche quando sono cortissime. Tutto in previsione della futura versione mx (davvero conto di farla, non subito, devo impratichirmi);
  • Queste funzioni sono lispiche, potrebbero essere chiamate in sequenza come usano i funzionali; non l’ho fatto per tenere il codice leggibile (e inserire una marea di print in fase di debug);
  • Inoltre mi sono convertito alla setta degli utilizzatori della list comprehension: è leggibile, comoda, si risparmia una riga. Peggio per quei linguaggi che non ce l’hanno;
  • Per adesso è un abbozzo ma queste funzioni le ho raggruppate in un file che forse evolverà in modulo come si deve.

OK, ecco il codice, addirittura commentato, cosa rara per me.

Il modulo con le funzioni utilizzate:

# -*- coding: utf-8 -*-

# jutils: qui dentro ci metto le funzioni che mi trovo
#         a ricopiare sovente; chissà se funziona

def strlist(st):
    ''' ritorna la lista dei caratteri della stringa st'''
    return list(st)

def ls2str(ls):
    ''' ritorna la stinga unione della lista ls'''
    st = ''
    return st.join(ls)

def lsstr2dig(ls):
    ''' ritorna le cifre della stringa ls'''
    return [int(c) for c in ls]

def strpopc(st, c):
    ''' se la stringa st contiene il carattere
        c questo viene eliminato; una volta sola
    '''
    p = st.find(c)
    if p >= 0:
        st = st[:p] + st[p+1:]
    return st

def factors(n):
    ''' copiato da qui:
        http://stackoverflow.com/questions/ +++
             16996217/prime-factorization-list
    '''
    gaps = [1, 2, 2, 4, 2, 4, 2, 4, 6, 2, 6]
    length, cycle = 11, 3
    f, fs, next = 2, [], 0
    while f * f <= n:
        while n % f == 0:
            fs.append(f)
            n /= f
        f += gaps[next]
        next += 1
        if next == length:
            next = cycle
    if n > 1: fs.append(n)
    return fs

Lo script:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from jutils import *

def passo_1(numero):
    ls = strlist(str(numero)) # lista di caratteri
    n = lsstr2dig(ls)         # lista di cifre
    somma = sum(n)            # somma delle cifre
    ls = strlist(str(somma)) # idem per la somma
    ls.reverse()
    rst = ls2str(ls)
    r = int(rst)              # e quindi in numero
    return (somma * r) == numero

def passo_2(numero):
    ls = strlist(str(numero)) # lista di caratteri
    ls.reverse()              # inverto
    rinv = ls2str(ls)         # trasformo la lista in stringa
    ninv = int(rinv)          # questo è il numero inverso
    fattori = factors(ninv)
    lquad = [i**2 for i in fattori] # lista dei quadrati dei fattori
    nquad = sum(lquad) / 2
    strquad = str(nquad)
    strquad = strpopc(strquad, '0')
    cont = int(strquad)
    return cont == numero

#main
trovato = False
numero = 999
numerofinale = 9999
while not trovato:
    numero += 1
    ok1 = passo_1(numero)
    if numero == numerofinale:
        print "Mi arrendo"
        exit()
    if ok1:
        trovato = passo_2(numero)
        if trovato:
            print "Trovato!", numero

arquiz

Visto nel Web – 126

Chissà se davvero sarà come spero, vedi foto futura qui sotto.
Intanto ecco cosa ho visto nel Web.

votare

Linus Torvalds: Obey the penguin!
::: Google+

Evil social networks
::: Charlie’s Diary

YouTube, Google+ and LinkedIn Drive The Most Engaged Social Referrals
::: Shareaholic

btf

Microsoft Is Suddenly a New Company. But Is It Too Late?
::: wired

Not Just Apple: GnuTLS Bug Means Security Flaw For Major Linux Distros
::: Slashdot

What if.. Naval Ravikant e il Quinto Protocollo
::: Luca De Biase

saldatore

Internet in Europa: l’Italia è ancora in fondo alla classifica
::: Il Fatto Quotidiano

Fifty Years Ago IBM ‘Bet the Company’ On the 360 Series Mainframe
::: Slashdot

La Corte Ue invalida la direttiva sulla conservazione dati
::: Ansa ::: Slashdot ::: GigaOM

snowden

newLISP: Stable release 10.6.0 now has a native expansion macro function and adds many other improvements in several areas
magari riprendo a parlarne (forse adesso posso) :roll:
::: Twitter

Dissecting the Reduce Function
una delle mie pythoniste preferite; anche se…
::: Amy Hanlon

U.S. knocks plans for European communication network
::: Reuters

Bk2iru-CEAALIFg

Windows XP va in pensione – rischi e soluzioni
::: HackerNetwork

Why the Web Needs Perfect Forward Secrecy More Than Ever
::: Electronic Frontier Foundation

Heartbleed
“Catastrophic” is the right word. On the scale of 1 to 10, this is an 11
::: Bruce Schneier ::: xkcd

993812_10152200998150396_734404617_n

How #Java and #Groovy play nice together
::: Asciinema

Xv6
completamente fuori tema con il resto ma bello pensare che ci sono anche queste cose; poi chissà…
::: Embedded in Academia

Born To RUN: Dartmouth Throwing BASIC a 50th B-Day Party
::: Slashdot

Bk0pXMuCMAA6Hip

Unpythonic Python
LOL, mi sa ch lo RSSisco subito
::: skien.cc

MIT Is Destroying The Cost Of Robotics By Building Robots Out Of Paper
::: Business Insider

Tassa sulle memorie, Siae, Corte di giustizia: una novità importante
::: Luca De Biase

comelapascale

Mocking functions in Go
::: Nate Finch’s

ICEcoder – Browser Code Editor Awesomeness
::: indiegogo

The decline of the mobile web
::: chris dixon

85joy

MA Gov. Wants To Ban Non-Competes; Will It Matter?
::: Slashdot

Come difendersi da attacchi malware e script injection
parole sante! serviranno? dubbi :roll:
::: evilripper

Educatori chiedono di essere educati
::: Luca De Biase

lego

NSA Allegedly Exploited Heartbleed
Loro dicono di no ma ci credete?
::: Slashdot

Probabilities and the C++ standard
::: Daniel Lemire

10245335_446259008810547_6058443298294866359_n

Mathics – 3

0

Mathics sta diventando un’ossessione per me, non mi lascia dormire la notte, devo finire presto questo esame di cosa può fare :roll:
E devo impratichirmi della sua sintassi inusuale. Per esempio le parentesi, hanno quattro significati diversi:


(term)      tonde per raggruppare
f[x]        quadre per gli argomenti delle funzioni
{a, b, c}   graffe per le liste
v[[i]]      quadre doppie per accedere all'elemento
            si può usare Part[v, i]

1

Se si vogliono scrivere più istruzioni nella stessa riga si separano con punto-virgola. Un punto-virgola finale elimina l’eco usuale dell’ultima istruzione.

Esempio di definizione e uso delle liste:

2

OK? Notare che l’operatore ^ a me piace senza spazio prima ma non è necessario. Si possono usare i soliti operatori ma le liste devono avere lo stesso numero di elementi. % restituisce quello che ci si aspetta e l’ultima espressione usa Exp (esponenziale) // e N non ancora definiti (prossimamente…).

3

Niente di nuovo, o sì? esistono i numeri razionali e le espressioni, a è un simbolo.

4

D è la funzione derivata, /. e -> li abbiamo visti la puntata scorsa (e sono in tabella espressioni (a breve la pubblico)).

Si possono usare le liste per costruire tabelle di valori, per esempio valutando un’espressione per una sequenza di valori:

5

Product si capisce quello che fa anche se non è ancora stato definito (prossimamente, forse; o forse no, chissà…).

6

TableForm visualizza la tabella in forma tabulare (lo dice il nome, no?).

Creare xi + yj con i in[1..3] e j in [1..2]

7

Una lista con lo stesso simbolo ripetuto 4 volte:

8

Una tabella 3 x 2:

9

Un’ultima cosa, accedere a un elemento di una lista:

10

Finora mx (Mathics) è perfettamente compatibile con wm (Mathematica). Ma sono solo all’inizio, chissà :roll:

Mathics – 2

banner

m0

Nella trasformazione da x + x a 2 x il simbolo x può essere qualunque cosa; per valutare l’espressione assegnando a x il valore 4 si usa la regola di trasformazione -> da leggersi come “x goes to” che personalmente trovo orrenda e propongo “x diventa” (ho spesso difficoltà con le traduzioni).
Per applicarla si usa /. l’operatore di sostituzione (replacement operator).

Nota per me (e forse non solo): mx (nella puntata precedente abbiamo convenuto che mx sta per Mathics, anzi, vedi sotto) usa spesso operatori bizzarri come questo, manco fosse APL/J, ne faccio una tabella, forse la pubblicherò.

 
operatore   nome it.        nome orig.      esempio

->          diventa         goes to         2 x /. x -> 4
/.          sostituzione    replacement     2 x /. x -> 4
(da continuare).

Uh! già che ci sono: scrivere ogni volta mathics -q è dispendioso e poi si rischiano errori di battitura, prima mi è venuto fuori “mathisc -q“; si potrebbe fare un alias:

m1

Per renderlo disponibile in ogni sessione (cioè in ogni finestra del terminale) occorre aggiungerlo in uno dei file di configurazione. Anzi ce n’è uno ad hoc, proprio per quello: ~/.bash_aliases. Sarà attivo dal prossimo login, o da subito eseguendo source ~/.bashrc.

Tornando a mx, l’operatore -> può riferirsi a qualunque cosa, sensata o meno:

m2

L’operatore /. (sostituzione) applica la sostituzione per l’espressione ma alle volte può essere utile che la sostituzione sia per sempre (cioè per tutta la sessione). In questo caso si procede come al solito (per i programmatori):

m3

OK? x vale 3 finché uso l’operatore =. (clear, pulisci). Adesso lo aggiungo alla mia tabella; e notare che i due caratteri formano l’operatore, niente spazi.

Dai, per oggi basta così :roll: ma prossimamente… :shock:
Sì, WordPress non mi fa più le faccine animate :evil:

Heartbleed

hb
È l’argomento del giorno, tutti ne parlano, non è che sia proprio facile capire cos’è. E qualcuno ha chiesto anche a me che al riguardo sono über-niubbo-plus.
Ma poi –il bello del Web– ho trovato un post di MarkCC che mi sembra ottimo.

Questo: The Heartbleed Bug.

E, sì, panico, anzi PANICO!!!

Mathics – 1

paperi

Mathics mi piace. Non so se servirà a qualcosa ma voglio approfondirne un po’ la conoscenza. E fare il tutto bloggando, anche perché non sto raccontando nient’altro (sarebbero solo delusioni e lamentele :???: ). Dopo il post introduttivo Mathics – intro mi sono reso conto che la documentazione di Mathics non è sufficiente.

Il .PDF del Mathics Team è ottimo, ma da solo non basta. È lo stesso problema che capita se uno usa solo la documentazione ufficiale di Unix per imparare il S.O. (OK, roba di quando ero giovane, oggi tutto diverso e si può farne a meno, tranquillamente).

Per fortuna c’è Mathematica (d’ora in poi wm) :cool: cui Mathics (d’ora in poi mx) s’ispira. E sul sito di Mathematica c’è il .PDF Core Language, liberamente scaricabile.

C’è parecchia altra roba scaricabile, se funziona anche con Mathics poi, forse… prossimamente… :cool:

Il Core Language (d’ora in poi CL) è un vero e proprio corso, come fare cosa con esempi. Ecco, provo a seguirlo, per vedere se e quanto Mathics risponde.

Il risultato delle elaborazioni precedenti sono memorizzate in uno stack (pila) richiamabili:

m0

OK! l’ultimo risultato è memorizzato in %, il precedente in %% e così via (fino a 100, ridefinibile). È possibile accedere anche con i numeri, %2 si riferisce a Out[2], anzi uno potrebbe anche usare Out[2], scomodissimo. Inoltre vale solo (ovviamente) per la modalità interattiva.

m1-1

È possibile definire variabili, nel solito modo. Gli oggetti predefiniti iniziano con una maiuscola, come Pi; N è una funzione (numeric), permette di definire la precisione, come nel caso illustrato. Qui la prima variazione tra Mathics e Mathematica: il valore di pi è esatto, quello di pi2 no:

wm: 3.141592653589793238462643383279502884197
mx: 3.141592653589793238462643383279502884197

wm: 9.86960440108935861883449099987615113531
mx: 9.86960440108935862
mx: 9.869604401089358620274838429509145498741 con N[pi^2, 40]

da tenerne conto quando si pretende di esagerare con la precisione. Anche perché volendo c’è SciPy/Numpy per queste cose.

Qui il manuale di wm ha una frase che mi ha fatto fare un salto sulla sedia la prima volta che l’ho letto. Se assegni un valore a una variabile questa assegnazione sarà permanente, fare attenzione e rimuovere l’assegnazione (come si dice da noi clear?). Poi ho capito che dovevo leggere tutta la frase: “The value will, of course, disappear if you start a whole new Mathematica session”. Il manuale è fatto per niubbi, bene così, basta saperlo.

Un’altra cosa (già usata negli esempi precedenti): x e x2 sono due nomi di variabili possibili; 2x invece vale 2 * x, come al solito nella matematica. Similmente x y risulta come x * y mentre xy è una variabile. E x ^ 2 y significa (x ^ 2) y e non  x ^ (2 y).

OK? Sì ma se continui di questo passo per arrivare a p.364 quanto ci mettiamo?

m2

No, dai, dalla prossima puntata faccio sul serio. Anche perché se si vuole c’è il manuale a disposizione. E chi è interessato se lo starà già procurando, o l’ha già fatto :roll:

Quando cerchi un’immagine con Google e lui ti propone le tue come ti devi comportare?

Iscriviti

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

Unisciti agli altri 63 follower