Linux facile ma non so raccontarlo

difference-engineNei giorni scorsi sono stato alle prese con un nuovo utente Linux. Yep😀 stiamo crescendo!
Adesso non è che racconto tutto, anche perché:

  • non ce la faccio davvero più con Windows, eredi Bill mi arrendo😦
  • quel che si deve fare varia in funzione di quel che si vuole fare.

per cui mi limito a qualcosa di generico (e per molti scontato), portate passiensa pazienza😳
Non è colpa della scuola (cioè sì ma sarebbe un discorso lungo) e poi non fate come me: probabilmente (anzi quasi certamente) continuerete a dover trafficare con Windows. E con i telefoni e roba simile, dove sono super-niubbo, ma essendo vecchio posso ignorarli.

OK, questo è l’inizio di una bozza che non posterò; poi ho la scaletta (lo chiamate così anche voi il proto-indice delle cose da scrivere?) di altri due ma non mi piacciono.

E pensare che avevo (appena buttati) gli appunti del nuovo linuxiano😀
Troppo specifici, personali, varierebbero moltissimo con altri.
Questo vuol dire che devo cambiare cose nel blog, certi argomenti non sono per me.
Intanto una cosa che forse non tutti sanno ancora: installare Linux è semplicissimo, tanto da non doverlo dire.
E poi installate parecchie cose che avete di là: Office è lo stesso, tranne per quelli ricchi o copioni che continuano ad avere l’M$ invece di Libre. Il browser idem, tranne Edge (ma si suppone che –OK, niente, non lo dico). Se usavate Photoshop adesso vi serve Gimp. E potrei continuare ma entrerei nello specifico.
Ci sono differenze, certo, per esempio i nomi dei documenti. Se condividete attraverso la rete roba con Windows può capitare che i nomi vadano in conflitto, usate solo lettere minuscole e numeri, attenti ai fonts, …
Altri programmi –specifici– sono monopiattaforma ma esistono alternative, magari meno sexy ma basta valutare quello che davvero serve.
Un’altra cosa che continuo a sentire (ehi! siamo nel 2016! (il punto esclamativo non indica il fattoriale, nèh)): l’ambiente è simile, anzi con Linux è più facile. E poi come la mettiamo con i telefoni? nessuno si lamente che non c’è Windows con il pulsante Start –per fortuna mancano😀

Insomma in conclusione: i post promessi della serie “vi presento Linux” non li farò, non ne sono capace. E forse non servono, ma se ci saranno suggerimenti nei commenti saranno benvenuti.
E –speranza segreta– spero nessuno si accorga del mio pasticcio😉

:mrgreen:

SICP – cap. 1 – Costruire astrazioni tramite procedure – 19

8500

Continuando da qui copio qui.

Elevazione a potenza

Consider the problem of computing the exponential of a given number. We would like a procedure that takes as arguments a base b and a positive integer exponent n and computes bn. One way to do this is via the recursive definition

bn = b * bn-1
b0 = 1

which translates readily into the procedure

(define (expt b n)
  (if (= n 0)
      1
      (* b (expt b (- n 1)))))

This is a linear recursive process, which requires O(n) steps and O(n) space. Just as with factorial, we can readily formulate an equivalent linear iteration:

(define (expt b n)
  (expt-iter b n 1))

(define (expt-iter b counter product)
  (if (= counter 0)
      product
      (expt-iter b
                (- counter 1)
                (* b product))))

This version requires O(n) steps and O(1) space.

We can compute exponentials in fewer steps by using successive squaring. For instance, rather than computing b8 as

b * (b * (b * (b * (b * (b * (b * b))))))

we can compute it using three multiplications:

b2 = b * b
b4 = b2 * b2
b8 = b4 * b4

This method works fine for exponents that are powers of 2. We can also take advantage of successive squaring in computing exponentials in general if we use the rule

bn = (bn/2)2     if n is even
bn = b * bn-1    if n is odd

We can express this method as a procedure:

(define (fast-expt b n)
  (cond ((= n 0) 1)
        ((even? n) (square (fast-expt b (/ n 2))))
        (else (* b (fast-expt b (- n 1))))))

where the predicate to test whether an integer is even is defined in terms of the primitive procedure remainder by

(define (even? n)
  (= (remainder n 2) 0))

The process evolved by fast-expt grows logarithmically with n in both space and number of steps. To see this, observe that computing b2n using fast-expt requires only one more multiplication than computing bn. The size of the exponent we can compute therefore doubles (approximately) with every new multiplication we are allowed. Thus, the number of multiplications required for an exponent of n grows about as fast as the logarithm of n to the base 2. The process has O(log n) growth.

The difference between O(log n) growth and O(n) growth becomes striking as n becomes large. For example, fast-expt for n = 1000 requires only 14 multiplications. It is also possible to use the idea of successive squaring to devise an iterative algorithm that computes exponentials with a logarithmic number of steps, although, as is often the case with iterative algorithms, this is not written down so straightforwardly as the recursive algorithm.

s30

OK, ho saltato le note, interessantissime. Riporto solo un riassunto: questo metodo è antico, Chandah-sutra di Áchárya Pingala, 200 aC e Donald Knuth, 4.6.3, 1981 dC.

:mrgreen:

Visto nel Web – 235

Preso da altre cose ma ecco, puntuale come sempre, cosa ho visto nel Web.
CgjB3AWWMAApczY
Building a standalone Scala executable
#:linguaggi di programmazione
::: Medium

The Pirate Bay Now Blocked In Chrome, Firefox, And Safari
#:Web, Internet
::: Slashdot

We are passing the Turing test right on schedule
#:storia #:programming, codice, snippet
::: Daniel Lemire

Beyond 140
uhmmm…
#:programming, codice, snippet #:Web, Internet
::: ShinTakezou’s

How Russia and China Are Cooperating to Dismantle America’s Dominance of the Internet
#:Web, Internet
::: Huffington Post

fish

Rust by Example
mi piace; da fare (ma in privato, non lo bloggo)
#:linguaggi di programmazione
::: Rust by Example

Today I am releasing Megaparsack, a parser combinator library for @racketlang
#:lisp e derivati
::: lexi_lambda

After a year of using NodeJS in production
#:linguaggi di programmazione
::: Geek for Brains

AdBlock Plus closes in on a billion downloads
#:Web, Internet
::: TechCrunch

Max Out Your Programming HP and MP With Elixir
#:linguaggi di programmazione
::: Rob Hoelz

Cgce-SxUYAAh3Ne

Uno spazio per il Museo dell’Informatica
#:storia
::: Progressi

Office365 a Bolzano: i conti non tornano
#:free open source software
::: Tech Economy

Sales Of PCs, Laptops, Tablets Continue to Fall, Hit Lowest Point Since 2011
#:hardware
::: Slashdot

Teaching C
#:linguaggi di programmazione
::: Embedded in Academia

How To Install Netbeast On Linux For Developing IoT Applications With Great Ease
#:tools, componenti software
::: LinuxPitStop

CiVJ-LnWgAA0xuV

GNU Guile-Ncurses
#:lisp e derivati
::: GNU Operating System

Cross-compilazione distribuita per Raspberry PI
#:programming, codice, snippet
::: ElectroYou

Reflections: The ecosystem is moving
#:sistemi operativi
::: Open Whisper Systems

vigracket
This is the first release of the vigra-Racket bindings
VIGRA is a free open source computer vision library which focuses on customizable algorithms and data structures
#:lisp e derivati
::: BSeppke ::: Wikipedia

Handbook of Applied Cryptography
#:programming, codice, snippet #:sicurezza, spionaggio
::: binitamshah

13230353_1013279798725824_2924276394275131565_n

5 reasons to write #Python decorators
questo tweet mi ha procurato una lunga discussione con un pythonista; io sono per scrivere codice molto più semplice; sono l’unico?
#:linguaggi di programmazione
::: SuConant

Making silly #latex jokes is much more fun than doing final tweaks in my thesis
#:umorismo
::: tomaspetricek

junior dev: how do i-
#:umorismo
::: iamdevloper

Linked List in Python
#:linguaggi di programmazione
::: Connor Johnson

Scala Native
Scala Native is a new ahead-of-time compiler and lightweight managed runtime designed specifically for Scala. Project is currently in pre-release stage
#:programmazione funzionale
::: scala-native

in-arabic

The Facebook Papers, Part 1: The great unbundling
#:social media
::: recode

Why Do Academic Research in Programming Languages?
#:linguaggi di programmazione
::: Knowing and Doing

Another Simple Tree in Python
#:programming, codice, snippet
::: Connor Johnson

Pretty fast word2vec with Numba
ahemmm… non l’ho letto come si dovrebbe; chissà…😳
#:programming, codice, snippet
::: Blogistic Regression

FBI Has Sights On Larger Battle Over Encryption After Apple Feud
#:sicurezza, spionaggio
::: Slashdot

fax

Richard Stallman a Monza
#:free open source software
::: reteCgil

i’m not a visionary / non sono un visionario
#:sistemi operativi
::: il blog di Carlo

A law firm has hired an AI “lawyer” to cut through the drudgery of corporate law
#:innovazioni, futuro
interessante, chissà se l’avessero fatto anche per la Xylella fastidiosa😉
::: Quartz

Linux Is the Largest Software Development Project On the Planet: Greg K-H
#:sistemi operativi
::: Slashdot

Save Firefox!
#:Web, Internet
::: Electronic Frontier Foundation

987b89aae116f2c32be93c7936df67de

Announcing SyntaxNet: The World’s Most Accurate Parser Goes Open Source
#:tools, componenti software
::: Google Research

Mozilla Fights FBI In Court For Details On Tor Browser Hack
#:sicurezza, spionaggio
::: Slashdot

Il vegano dell’Open Source
#:free open source software
::: Dario Cavedon (iced)

Le paradoxe du code et de l’IDE
psst: le schede perforate, e prima ancora gli switch e i collegamenti nanuali
#:umorismo
::: CommitStrip

Nuovi piani tariffari di GitHub
#:Web, Internet
::: SIAMO GEEK

Cic83hBXAAAK27N

Superpouvoir de codeur
#:umorismo
::: CommitStrip

There is a huge gap between the way compilers are taught in school & the way compilers are implemented nowadays
#:programming, codice, snippet
::: CompSciFact

My #Lisp game sure has a lot of DEFMETHODs
leggo poi, forse, ne parlo
#:lisp e derivati
::: DtoToole

Your honor, I’d like to move Exhibit A into evidence. Offered to prove that Java is bullshit
#:linguaggi di programmazione
::: sarahjeong

Krita 2016: Let’s Make Text and Vector Art Awesome!
#:tools, componenti software
::: Kickstarter

CidXoQkU4AEPhNJ

There are 2 types of functional programmers
#:umorismo
::: jdegoes

Taking Rust everywhere with rustup
Rust cresce, davvero OK😀
#:linguaggi di programmazione
::: The Rust Programming Language

What’s new in matplotlib
#:linguaggi di programmazione
::: matplotlib

FACTORISATION OF RSA-220 WITH CADO-NFS
#:programming, codice, snippet #:free open source software
::: loria

Lomb-Scargle Periodograms
#:programming, codice, snippet
::: Astropy

CiQrwp4WkAAzMJM

Lista programmi per la grafica ” Linux “
#:tools, componenti software
::: design_2D_3D

Hyundai’s New ‘Wearable Robot’ Gives You Super-Strength
#:hardware
::: Slashdot

Professor Surprises Students With AI Teacher Assistant
#:innovazioni, futuro
::: Slashdot

Desktop publishing: Adobe InDesign o Scribus?
#:tools, componenti software #:free open source software
::: Tech Economy

Happy #ScratchDay! More than 600 events in more than 70 countries!
#:programming, codice, snippet
::: mres

feeling old
#:umorismo
::: RainerJoswig

tumblr_o5cdbmkUIQ1uf2si3o1_500

Ancora su ‘The C Programming Language First Edition’

n1Ancora qualcosa su K&R di cui ho raccontato qui.
Apro il libro PDF a p.13 (del PDF, è la 5 del libro) e trovo che posso ripetere un esercizio di tanti anni fa:

The only way to learn a new programming language is by writing programs in it. The first program to write is the same for all languages:

    Print the words
        hello, world

This is the basic hurdle; to leap over it you have to be able to create the program text somewhere, compile it successfully, load it, run it, and find out where your output went. With these mechanical details mastered, everything else is comparatively easy.

In C, the program to print “hello, world” is

    main()
        {
            printf("heIlo, world\n");
        }

Just how to run this program depends on the system you are using. As a specific example, on the UNIX operating system you must create the source program in a file whose name ends in “.c“, such as hello.c, then compile it with the command

    cc hello.c

If you haven’t botched anything, such as omitting a character or misspelling something, the compilation will proceed silently, and make an executable file called a.out. Running that by the command

    a.out

will produce

    hello, world

as its output. On other systems, the rules will be different; check with local expert.

Adesso siccome che Linux è l’evoluzione di UNIX (allora si scriveva così; poi a dirla tutta io ero su PR1ME) quasi quasi…

k0

Sì, proprio come mi aspettavo; manca l’include.

Ma il compilatore è smart e comprensivo, avvisa e supplisce.

Intanto provvedo, vediamo…

k1

OK😀
A dire il vero manca ancora una cosa: main() è una funzione come tutte le altre, anche se ha il privilegio di –dai mica devo dirvelo, mica siamo più a fine anni ’70!🙄
In ogni caso è un warning, ritorna giusto

k2

Pensa te! Più o meno come quando l’amico C. (non so se posso citarlo per esteso, anche perché lui sarebbe googlabile e sembrerebbe che voglia vantarmi) mi diceva dell’Odissea letta in versione originale; anche lì l’edizione originale è finita chissà dove, anzi se qualcuno sa qualcosa… Ma vale per tutti, anche –per dirne una– per The Hitchhiker’s Guide to the Galaxy.

Il PDF rivela altre sorprese (per me, sto andando sul perso): il possessore del libro dimostra di essere sorpreso dalle stesse cose che sorpresero me, per quel che ricordo ma fu davvero uno shock.

Una cosa che forse i giovani (cioè tutti quelli più giovani di me) non sanno è che ci sono state parecchie modifiche. Apriamo il PDF a p.31 (p.23 del libro) e vediamo:

k3

visto? e se interpreto bene il possessore del libro ha annotato la nuova sintassi😀
La Second Edition di 10 anni dopo riporta la dichiarazione attuale; a p.26 una nota ricorda la variazione intercorsa:

A note of history: The biggest change between ANSI C and earlier versions is how functions are declared and defined.

Ricordo perfettamente (quasi)😀

OK, ricordi personali, non interessano a nessuno lo so😀

Ma prima di chiudere ancora una cosa: ho cercato per il manuale del C del Pr1me; c’è qui: C User’s Guide Release T1.0-21.0 (1988), ma solo la scheda.
Un sito ricchissimo, dell’Università di Stoccarda ha, per Pr1me solo cose vecchie, classiche.
Forse devo cercare ancora😉
:mrgreen:

The C Programming Language First Edition

ij-lcOggi Ieri ho scoperto una scoperta davvero meravigliosa.
Roba che io stesso stento a crederci.
E mi verrebbe voglia di cambiare nome, Indiana Juhan, o forse –più sexy– Juhan Croft; no meglio Indiana Juhan, suona meglio e poi sono vecchio e biasante circa il genere😉 Se non fosse che devo cambiarlo in troppi posti, come non detto, però siccome sono molto orgoglioso del reperto che ho scovato voglio condividerlo urbi et orbi, anzi, di più, con tutti quanti.

Prima di tutto una nota (ci tengo): è tutto perfettamente legale, viene da Internet Archive:

The Internet Archive is a 501(c)(3) non-profit that was founded to build an Internet library. Its purposes include offering permanent access for researchers, historians, scholars, people with disabilities, and the general public to historical collections that exist in digital format.

The_C_Programming_Language,_First_Edition_Cover
OK, ci sarebbe parecchio da indagare su Internet Archive, chissà se troverò il tempo ma per intanto passo all’annuncio promesso.
Ah! ‘ncora ‘na roba: io sono scarsamente metodico, per niente ordinato e il Linguaggio C, prima edizione in italiano del K&R ce l’avevo ma chissà dov’è finito. Ma da adesso in poi basta recriminazioni, c’è questa pagina qui: The C Programming Language First Edition😀

Appena mi sono ripreso, appena ho smesso di URLare urlare di gioia e fare salti (sempre di) gioia e mi sono ricomposto e ri-seduto davanti al ‘puter ho scaricato la versione PDF.

Non è come quello a stampa, manca la copertina, ma sembra tutto OK😀
Adesso vi dico anche perché dovevo fare questa ricerca, assolutamente, a ogni costo: ci sono persone che a volte si fanno trasportare dalla retorica e raccontano cose che non solo non sono vere ma nemmeno sensate; capita anche a scrittori che ammiro, da sempre; è capitato anche a DNA, il mitico Douglas Adams, in una conferenza di fronte a un uditorio selezionato ma, evidentemente, non composto da programmatori. Mi son detto che dovevo fare qualcosa, sapete com’è…

e la prima cosa è documentarsi.
Prossimamente (ma non qui) riferisco. Probabilmente. Forse.

:mrgreen:

SICP – cap. 1 – Costruire astrazioni tramite procedure – esercizi – 18

Massimo Testa

Massimo Testa

Continuo da qui, oggi un esercizio, qui.

Exercise 1.15The sine of an angle (specified in radians) can be computed by making use of the approximation sin x ≈ x if x is sufficiently small, and the trigonometric identity

Eqn

to reduce the size of the argument of sin. (For purposes of this exercise an angle is considered “sufficiently small” if its magnitude is not greater than 0.1 radians.) These ideas are incorporated in the following procedures:

(define (cube x) (* x x x))
(define (p x) (- (* 3 x) (* 4 (cube x))))
(define (sine angle)
   (if (not (> (abs angle) 0.1))
       angle
       (p (sine (/ angle 3.0)))))

a.  How many times is the procedure p applied when (sine 12.15) is evaluated?

b.  What is the order of growth in space and number of steps (as a function of a) used by the process generated by the sine procedure when (sine a) is evaluated?

La prima parte è semplice: non usare (sine angle) ma (p x) ricorsivamente con valori progressivamente 1/3 del precedente fino a rientrare sotto 0.1 radianti:

s29

Per la parte b essendo p funzione cubica si ha O(log(n)).

Ecco le soluzioni di Bill the Lizard, Ken Dyck, S-sol e Weiqun Zhang.
Tutte molto simili, esercizio troppo facile😉
Weiqun oggi è il migliore, merita il link alla sua pagina di info😀

:mrgreen:

SICP – cap. 1 – Costruire astrazioni tramite procedure – 17

42

Continuo da qui, oggi sono qui.

Ordini di crescita

The previous examples illustrate that processes can differ considerably in the rates at which they consume computational resources. One convenient way to describe this difference is to use the notion of order of growth to obtain a gross measure of the resources required by a process as the inputs become larger.
Uh! proprio quello che ci vuole, visti anche il mio precedente infortunio😳😉

Let n be a parameter that measures the size of the problem, and let R(n) be the amount of resources the process requires for a problem of size n. In our previous examples we took n to be the number for which a given function is to be computed, but there are other possibilities. For instance, if our goal is to compute an approximation to the square root of a number, we might take n to be the number of digits accuracy required. For matrix multiplication we might take n to be the number of rows in the matrices. In general there are a number of properties of the problem with respect to which it will be desirable to analyze a given process.

E continua, introduce l’order of growth di R(n) come ϴ(f(n)), tutto da leggere di là.

Nota: Unicode per ϴ = 03F4.

Valuta poi R per le procedure di calcolo di Fibonacci viste (come cambia da nei vari casi! –OK, non insisto sul mio pasticcio).
Siamo quindi pronti per un esercizio:

Exercise 1.14Draw the tree illustrating the process generated by the count-change procedure of section 1.2.2 in making change for 11 cents. What are the orders of growth of the space and number of steps used by this process as the amount to be changed increases?

La soluzione di Bill the Lizard è ottima. Il codice è semplice, le considerazioni molto meno. Notare inoltre come al posto di ϴ usi l’usuale O.
Più sintetico Ken Dyck, che però aggiunge considerazioni (tuttora aperte) su ϴ, con esempio in DrRacket (usa il nome di una volta DrScheme).
SICP-Solutions è problematico. La soluzione che propone non piace (nanche a lui/loro) ma ne indica altre, su altri siti. Vengo così a scoprire Colin Jones e voom & zoom, un blog tutto su SICP (però forse fermo a agosto 2015), da aggiungere alla lista dei solutori. Anzi, meglio ancora Weiqun Zhang del Center for Computational Sciences and Engineering at the Lawrence Berkeley National Laboratory.
La sua pagina è molto teorica, qui. Bravo ma anche il suo blog non è aggiornato da tempo (2010).

Un po’ disorientato; pausa:mrgreen:

Visto nel Web – 234

Fresco di giornata un’altra puntata di quello che ho visto nel Web.

CfjgrMeUkAAwHJA.jpg-large

Simon Peyton Jones elected into the Royal Society Fellowship
#:programmazione funzionale
::: Lambda the Ultimate

An integer formula for Fibonacci numbers
uhmmm…
#:programming, codice, snippet
::: Paul’s

Amazon Beats Microsoft In ‘The Battle of Seattle’
#:economia #:Web, Internet
::: Slashdot

US Spy Court Didn’t Reject a Single Government Surveillance Request In 2015
#:sicurezza, spionaggio
::: Slashdot

Rust Bibliography
#:linguaggi di programmazione
::: Rust Forge

CeRUKPJW8AEPhUW

Do Experienced Programmers Use Google Frequently?
::: Code Ahoy
#:programming, codice, snippet

New Chip Offers Artificial Intelligence On A USB Stick
non so come prenderla; non so se ho capito bene; probabilmente sono out, definitivamente rottamabile
#:innovazioni, futuro
::: Slashdot

Chez Scheme now open-source
#:lisp e derivati
::: Lambda the Ultimate

Periscope (e altre app) sul PC con Linux
#:dispositivi mobili
::: OS)(SIDE

A curated listh with Python packages
124 categories including 636 libraries and resources
#:programming, codice, snippet
::: Awesome Python

CfimtdaUYAA_qeU.jpg-large

Swiss watch industry continues its free fall
#:innovazioni, futuro
::: marcelsalathe

Windows Desktop Market Share Drops Below 90%
#:sistemi operativi
::: Slashdot

The Government Wants Your Fingerprint To Unlock Phones
#:sicurezza, spionaggio
::: Slashdot

BREAKING NEWS: Craig Wright reveals himself as Satoshi Nakamoto, inventor of bitcoin
ma poi pare di no, anzi quasi certamente no
#:innovazioni, futuro
::: TheEconomist

Google and Microsoft have made a pact to protect surveillance capitalism
#:economia
::: The Guardian

dumped

Elon Musk Open Sources New ‘AI Gym’
#:innovazioni, futuro #:programming, codice, snippet
::: Slashdot

Steel Bank Common Lisp version 1.3.5 released today
#:lisp e derivati
::: jonatack

A Haskell Reading List
#:programmazione funzionale
::: Stephen Diehl

Put #Haskell on your resume even if you don’t know it. When asked, say your resume is lazy and you’ll learn it when results are needed
sì, è vecchia ma sempre bella😀
#:umorismo
::: ghewgill

Announcing cabal new-build: Nix-style local builds
#:programmazione funzionale
::: Inside 233

Cg1jeO7WIAArGyZ

Australian Gov’t Commission: Copyright Is Copywrong; Hurting The Public And Needs To Be Fixed
#:copyright
::: techdirt

Without Encryption, Everything Stops, Says Snowden
#:sicurezza, spionaggio
::: Slashdot

China Creates World’s First Graphene Electronic Paper
#:innovazioni, futuro #:hardware
::: Slashdot

E che c’ho scritto Jo Condor?
#:free open source software
::: Tech Economy

Chart of similar operations with sed and awk
#:tools, componenti software
::: Eric Pement

ChU8qujWIAAGayC

Inside the Assassination Complex
Whistleblowing Is Not Just Leaking — It’s an Act of Political Resistance
#:sicurezza, spionaggio
::: The Intercept

Tor and VPN users labeled as criminals will be hacked and spied by FBI under new law
#:sicurezza, spionaggio
::: GroupAnon

“Haskell meetup”, Edward Hopper, Oil on canvas, 1942
segnalata da Luca Molteni ‏@volothamp
#:umorismo
::: progpaintings

Personal Computing 1983: Innovation Bursting in Every Direction
#:storia
::: Computer History Museum

Spry Modules, Part II
se Göran continua e Spry cresce come promette…😉
#:linguaggi di programmazione
::: Roads Less Taken

vittoria_leicester_ranieri

Obsolescenza di SHA-1
#:sicurezza, spionaggio
::: SIAMO GEEK

The open web’s guardians are acting like it’s already dead
#:Web, Internet
::: Boing Boing

A Small Group of Journalists Control and Decide What Should Trend On Facebook
#:ditte #:social media
::: Slashdot

Lettera aperta al Prof. Luciano Lenzini
uh!
#:storia #:Web, Internet
::: Medium ::: CheFuturo

Pubblicato in Francia il libro bianco sulla scienza aperta in una repubblica digitale
#:copyright
::: bfp.sp.unipi

ChjyzbnWUAEIA0S

Google competitor DuckDuckGo made so much money last year, it’s giving away $225,000
#:Web, Internet
::: Business Insider

Creata in laboratorio la batteria “infinita”
#:hardware
::: Oggi Scienza

This is an excellent introduction to @QubesOS, if you’re considering switching or just learning what makes it secure
#:sistemi operativi #:sicurezza, spionaggio
::: micahflee

Scala IDE 4.4.1 is out! Includes bug fixes and the ability to organize imports in classes and methods
#:programmazione funzionale
::: ScalaIDE

Cose belle con TIM, Wikipedia e le Università
#:Web, Internet
::: manteblog

nq160504

Craig Wright a.k.a. “I’m Satoshi Nakamoto” erases his entire website, replaces it with an “I’m sorry” message
#:innovazioni, futuro #:Web, Internet
::: kashhill

Protocollo 1 di OpenSSH
#:sicurezza, spionaggio
::: SIAMO GEEK

Cosa insegna l’Open Source
#:free open source software
::: Tech Economy

Cargo: predictable dependency management
#:linguaggi di programmazione
::: The Rust Programming Language

mypy
Mypy is an experimental optional static type checker for Python that aims to combine the benefits of dynamic (or “duck”) typing and static typing
#:linguaggi di programmazione
::: mypy

al CERN trovi anche questo

al CERN trovi anche questo

#ImageTragick #Exploit Code – #PoC #CVE-2016–3714
#:sicurezza, spionaggio
::: Void_Sec

Ciapa lì!! Dal 30 luglio passare a Windows 10 Home costerà 149 euro
#:sistemi operativi
::: rewasp1973

LAPD Hacked An iPhone 5s Before The FBI Hacked San Bernardino Terrorist’s iPhone 5c
solo per dire che non ce la contano gusta i pulotti (e non solo loro); poi l’argomento comincia a essere ripetitivo, non lo seguo più
#:sicurezza, spionaggio
::: Slashdot

A Desktop Client for Twitter Mobile
#:dispositivi mobili #:Web, Internet
::: WebReflection

Ever want to apply to a company just so you can …
#:programming, codice, snippet
::: lizardbill

Cf8VZenWwAAdB5M

EFF in 2015 – Annual Report
#:free open source software
::: Electronic Frontier Foundation

Panama Papers Source Offers Documents To Governments, Hints At More To Come
#:sicurezza, spionaggio
::: The International Consortium of Investigative Journalists

New study: Snowden’s disclosures about NSA spying had a scary effect on free speech
#:sicurezza, spionaggio
::: Washington Post

Microsoft Sees Over 10 Million Cyberattacks Per Day On Its Online Infrastructure
#:sicurezza, spionaggio
::: Slashdot

The Oracle-Google trial over Android starts Monday. Here’s what you need to know
#:copyright #:dispositivi mobili
::: CIO

lui

SICP – perché hanno smesso

area-51Una rassegna di cinguettii: uno, due e tre.

Io adesso sono alle prese con SICP, un po’ per volta, per quel che ne sono capace, roba da über-nerd ma piace anche a me che sono niubbassay😳😀
Adesso non è che mi monto la testa e pretendo di dire qualcosa di nuovo e importante, quello che segue è solo una considerazione mia personale, non esportabile, anzi vale solo per me.

In this talk at the NYC Lisp meetup, Gerry Sussman was asked why MIT stopped teaching the legendary 6.001 course, which was based on Sussman and Abelson’s classic text The Structure and Interpretation of Computer Programs (SICP). Sussman’s answer was that: (1) he and Hal Abelson got tired of teaching it (having done it since the 1980s). So in 1997, they walked into the department head’s office and said: “We quit. Figure out what to do.”
(da qui).

OK, allora: quindici anni (circa, ho finito i diti) a ripetere le stesse cose, anche se fondamentali diventa un po’ –come dire– avete presente il rosario?
E poi è vero: con il Web e conoscendo i posti adatti (Stack Overflow, p.es.) la prima cosa una delle prime cose quando si parte è googlare e vedere quello che già c’è. Perché c’è parecchia roba là in fondo (quasi-cit.).

E Python (o linguaggi affini), vero anche questo. Funziona anche se lento (ma volendo…) e ci sono un sacco –OOPS già detto😳
Oppure Java al posto del C++ (nessuno usa più il C liscio, io poi avevo il K&R con la versione antica quella in cui dichiaravi i tipi fuori dalle parentesi degli argomenti). E non parlo di altri linguaggi perché non sono ripetitivo (non tanto comunque).
Poi c’è l’HTML e tools ad esso collegati (CSS, anche JavaScript che è un linguaggio solo sotto certi aspetti). E si fa tutto non per il desktop (lo uso solo più io) ma per il telefono che ha lo schermo piccolo ma una risoluzione da sogno. E tanta RAM, ci deve girare sopra cose che chi s’immaginava quando ero giovane (avevano ragione i miei genitori a farmi desistere dal ‘puter😳 l’ho capito tardi ma adesso so che è così).

Sussman pointed out that engineers now routinely write code for complicated hardware that they don’t fully understand (and often can’t understand because of trade secrecy.) The same is true at the software level, since programming environments consist of gigantic libraries with enormous functionality.

Vero, tranne pochissimissimi che quelle librerie le scrivono, dai qualcuno ci dev’essere che le ha scritte!
E poi capita (è capitato a me recentemente) che il giorno prima della pubblicazione salta fuori un bug (in un caso molto particolare, improbabile ma possibile) che fa partire subito una revisione. Anche perché tutto resta in una versione beta perenne; e manca la documentazione.

OK, basta lamentarsi, d’altronde

Sussman admitted that the SICP curriculum was “more coherent” than what they have now and that they still don’t know what the right curriculum should be.

Io che ormai sono fuori continuerò con SICP, mi piace, tanto😀
E sul post indicato una meraviglia:

The SICP video lectures by Sussman and Abelson from 1986 (given to HP) are also available.

Ne ho visto solo qualche pezzettino (ci vuole tempo) ma sono OK, proprio come le lezioni normali; e per quelli come me ci sono itranscipts, solo che è difficile seguire la lezione e il testo sotto contemporaneamente, il tempo come minimo raddoppia.

Infine: Sure. There are valid reasons to move beyond SICP. Discussione da seguire; io intanto continuo a trovare nuovi tweeps da followare:mrgreen:

In difesa di Internet

phpThumb_generated_thumbnailInternet è pieno di bufale.
C’è chi consiglia diete, cure, qualunque cosa, senza avere le minime competenze.
L’ho letto sul Web, la nuova versione di “è capitato a un amico di mio cuggino”
E potrei continuare.
Invece no, anzi sì, c’è anche chi lo fa a un altro livello, accademico. Come usava il compianto professor Umberto Eco o il professor Michael P. Lynch.
Niente panico, neanch’io non so niente di Linch, ma c’è questa roba che sto per dirvi che condivido in pieno.
Una premessa: viene da un tweet del prof. De Martin, considerate se non vi converrebbe followarlo, rockz! Uh! vedo che ha che parecchi follower che followo, si parla anche di questo nel post di cui sto per dirvi.

Basta premesse, vengo al dunque: David Weinberger, a senior researcher at Harvard’s Berkman Center for Internet & Society ha recensito un libro di Linch, The Internet of Us: Knowing More and Understanding Less in the Age of Big Data, qui: Rethinking Knowledge in the Internet Age.

A parte le parti tipicamente filosofiche (non ce la faccio proprio, non ce la farò|farei mai!) condivido. E con questo post voglio condividerlo con i miei 12 lettori (il signor WordPress mi dice che sono di più, più del quadrato, ma lo fa per incoraggiarmi).

Anche perché senza il Web io sarei isolato, qui, sperso nella campagna, tra il mais, i maiali e i padagni. E ricordo perfettamente com’era faticoso accedere alla conoscenza (di qualcosa in particolare, non di tutta, quella universale con la C maiuscola) quando Internet non c’era.
Aggiornamento: ecco, fresco di giornata: The main reason I care about the Web…

Iscriviti

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

Segui assieme ad altri 93 follower