Shared posts

21 Sep 16:07

Reports raise concerns about France's nuclear waste tomb

by Pain, E.
19 Sep 17:23

Pregnant mice illuminate risk factors that could lead to autism

Pregnant mice illuminate risk factors that could lead to autism

Nature 549, 7671 (2017). doi:10.1038/549131b

Studies highlight link between immune response and unusual neural wiring.

19 Sep 17:20

Evidence for light-by-light scattering in heavy-ion collisions with the ATLAS detector at the LHC

Nature Physics 13, 852 (2017). doi:10.1038/nphys4208

Authors:

18 Sep 08:35

09/15/17 PHD comic: 'Inner Gollum'

Piled Higher & Deeper by Jorge Cham
www.phdcomics.com
Click on the title below to read the comic
title: "Inner Gollum" - originally published 9/15/2017

For the latest news in PHD Comics, CLICK HERE!

14 Sep 07:40

Saturday Morning Breakfast Cereal - The Real World

by tech@thehiveworks.com


Click here to go see the bonus panel!

Hovertext:
If you wanna learn about the real world, take your advice from a guy who draws cartoons for a living.

New comic!
Today's News:

Thanks, geeks! We're launching in about a month, and every buy helps us get a better send off during opening week.

12 Sep 17:16

Billions of devices imperiled by new clickless Bluetooth attack

by Dan Goodin

Enlarge (credit: Ford Asia Pacific)

Over the past decade, Bluetooth has become almost the default way for billions of devices to exchange data over short distances, allowing PCs and tablets to transfer audio to speakers and phones to zap pictures to nearby computers. Now, researchers have devised an attack that uses the wireless technology to hack a wide range of devices, including those running Android, Linux, and, until a patch became available in July, Windows.

BlueBorne, as the researchers have dubbed their attack, is notable for its unusual reach and effectiveness. Virtually any Android, Linux, or Windows device that hasn't been recently patched and has Bluetooth turned on can be compromised by an attacking device within 32 feet. It doesn't require device users to click on any links, connect to a rogue Bluetooth device, or take any other action, short of leaving Bluetooth on. The exploit process is generally very fast, requiring no more than 10 seconds to complete, and it works even when the targeted device is already connected to another Bluetooth-enabled device.

"Just by having Bluetooth on, we can get malicious code on your device," Nadir Izrael, CTO and cofounder of security firm Armis, told Ars. "BlueBorne abuses the fact that when Bluetooth is on, all of these devices are always listening for connections."

Read 12 remaining paragraphs | Comments

11 Sep 17:15

Still in Use

'Which one?' 'I dunno, it's your house. Just check each object.' 'Check it for *what*?' 'Whether it looks like it might have touched a paper towel at some point and then forgotten to let go.' '...' 'You can also Google to learn how to check which things are using which resources.' 'You know, I'll just leave the towel there and try again tomorrow.'
08 Sep 16:33

La persecuzione dei Rohingya

by Emanuele Giordana

I l corso d’acqua che divide il Bangladesh dal Myanmar scende verso il Golfo del Bengala e si allarga in un braccio di mare che ne confonde le acque. Nel suo punto più largo supera di poco i tre chilometri. Si chiama Naf e di solito è un buon posto per andare a pescare. In questi giorni invece è un fiume di lacrime che assiste muto a un esodo che non si ferma dal 25 agosto. Le barche da pesca vengono usate adesso, da chi riesce, per scappare dal Myanmar e raggiungere le vicine coste del Bangladesh. Chi prova ad attraversare il fiume a nuoto rischia di essere portato via dalla corrente. Capita a tanti.

Nel giro di due settimane circa 260.000 rohingya, minoranza musulmana nel Paese più buddista del mondo, hanno cercato di attraversare Naf per trovare rifugio nel sovrappopolato vicino asiatico che era una volta la ricca costola orientale dell’Impero britannico in India. Il luogo da cui, nei palazzi della grande Calcutta capitale del Raj, i viceré amministravano la “perla” asiatica della Regina, i commerci e un’espansione che sembrava inarrestabile. Non si tratta di un colorito richiamo alla memoria. Il dramma dei rohingya cominciò forse allora quando l’impero asiatico di Londra si andava estendendo a Ovest e a Est di Calcutta. A Est c’era una monarchia birmana che alla fine cedette alle pressioni del Raj. In mezzo – tra inglesi e birmani – c’erano una quantità di popolazioni diverse che finirono col passare di mano per mezzo di trattati, guerre e decisioni prese sopra le loro teste.

Traditori senza patria
Cosa c’entri la Storia col dramma ciclico di una minoranza che rischia di sparire, quantomeno dalla “sua” nazione, lo ha spiegato molto bene il generale Min Aung Hlaing a capo dell’esercito birmano. È lui l’uomo che ha dato il via a un’operazione militare che sta mettendo sotto schiaffo cinque aree del Nord dello Stato del Rakhine, regione orientale birmana che confina col Bangladesh e l’Oceano indiano: i distretti di Buthidaung, Maungdaw, Rathedaung e i sottodistretti di  Taungpyoletwe e Myinlut. Il generale ha dato l’ordine operativo dopo che, all’alba del 25 agosto, un gruppo secessionista che vorrebbe uno Stato Rohingya indipendente, ha attaccato una trentina di posti di polizia birmani. Era già accaduto nell’ottobre scorso. Allora i militari strinsero d’assedio le aree rohingya e bruciarono circa 1500 case nei villaggi considerati solidali e conniventi con la guerriglia, come hanno documentato diverse foto satellitari. Adesso ha fatto lo stesso. Nei due casi si sono spostate ogni volta decine di migliaia di persone in cerca di salvezza oltre confine. Ma per il generale Hlaing non si tratta di birmani. Per il militare, i rohingya – termine che in Myanmar non si può usare – sono da sempre semplicemente “bengalesi”, cioè immigrati più o meno clandestini. Peggio: a suo dire, sono anche dei traditori perché durante la Seconda guerra mondiale stavano con gli alleati (cioè gli inglesi) e attaccavano altre minoranze birmane dell’area che invece sostenevano i giapponesi.

Nel giro di due settimane circa 150.000 rohingya, minoranza musulmana in Birmania, hanno cercato di attraversare il fiume Naf per trovare rifugio in Bangladesh.

Nel 1942 infatti, Tokyo aveva invaso i possedimenti britannici in Asia e aveva cacciato gli occupanti coloniali (lo slogan era “l’Asia agli asiatici”) garantendo a molti Paesi un’indipendenza sotto tutela. Gli indipendentisti birmani, guidati da Aung San, il padre della Nobel Aung San Suu Kyi, giocarono su due tavoli come era accaduto in altre regioni del Sudest asiatico (in Indonesia ad esempio, dove grazie ai giapponesi furono cacciati gli olandesi). In seguito però la Resistenza locale favorì il ritorno di Londra, da cui la Birmania, come si chiamava allora, divenne infine indipendente nel 1948. I rohingya si trovarono in mezzo a una guerra che, come in tutti i conflitti, doveva vedere molti cambi di cavallo. E accusarli oggi di tradimento non ha alcun senso. Come non ne ha definirli “bengalesi”: il fatto è che agli inizi del 1800 i birmani, guidati dal re Alaungpaya, cercarono di riprendersi la regione dell’Assam  ma persero la guerra con il Regno unito (la prima di tre). Il trattato di Yandaboo del 1826 tra birmani e britannici fece passare di mano il Rakhine (all’epoca Arakan) che finì sotto l’egida dell’’Impero delle Indie. Poi, quando gli inglesi se ne andarono, gli arakanesi (oggi diremmo rakinesi) tornarono birmani.

Tutto questo peraltro si svolgeva sotto gli occhi proprio dei rohingya, un popolo che viveva da secoli in questi territori che la Storia e le guerre hanno affidato ora agli uni ora agli altri. È una vicenda che si ripete spesso dove un fiume o una montagna creano un confine naturale in cui abitano, da una parte e dall’altra, le stesse popolazioni: che parlano la stessa lingua (il bengalese) e praticano magari le stesse usanze o lo stesso credo (l’Islam). Finché un giorno arriva qualcuno e dice che questa terra appartiene a tizio e l’altra a caio e una stessa famiglia finisce per trovarsi a dover richiedere un passaporto per visitare i parenti.

Come si sente un rohingya?
Difficile dire se i rohingya si siano nel corso dei secoli sentiti più bengalesi – quindi più “indiani” o più “inglesi” – che non “birmani”. Forse hanno sempre solo desiderato avere uno Stato rohingya o forse, più semplicemente, hanno solo aspirato a vivere  tranquilli nel territorio coltivato dai loro avi. Del resto non toccava mai a loro decidere a quale padrone sottostare. Oggi, che anche il Bengala è diventato in parte Bangladesh (dopo essere stato sino al 1947 India britannica e poi, sino al 1971,  Pakistan orientale) e l’India, come il Myanmar, è uno Stato indipendente, non ha più molto senso rivangare il passato. Non è questione di ius soli ma di semplice buon senso. Un buon senso che però fa a pugni col razzismo, con un’interpretazione assai poco compassionevole del messaggio buddista e molto probabilmente anche con interessi economici sulle terre abitate da questa minoranza. Che, tanto per cominciare, non può dimostrare di possedere la terra su cui vive.

I rohingya infatti non hanno cittadinanza: non hanno cioè una carta di identità, non possono votare, non possono pertanto avere validi certificati di proprietà. La legge sulle nazionalità, in un Paese come il Myanmar che ne conta diverse, non riconosce loro nessuno status. In sostanza, sono “invisibili”. Questa vicenda della loro ciclica persecuzione è storia vecchia, come i pogrom di cui ciclicamente sono stati vittime per motivi etnici o religiosi. L’ultimo nel 2012, quando in Myanmar una fazione di monaci buddisti oltranzisti scalda gli animi e scatena violenze contro i musulmani rohingya accusati di essere un pericolo per la religione e le tradizioni della maggioranza.

I rohingya non hanno cittadinanza: non hanno una carta di identità, non possono votare, non possono avere validi certificati di proprietà. In sostanza, sono invisibili.

I fatti del 2012 si risolvono con 200 morti e oltre centomila sfollati interni. Tatmadaw, l’esercito, che all’epoca si trova alla guida del Paese, per il momento si accontenta. Poi le cose ricominciano nell’ottobre del 2016. Questa volta è un attacco armato a posti di guardia della polizia birmana a scatenare la reazione dei militari che cominciano una caccia selvaggia alla guerriglia: incendi, omicidi, stupri, tutti documentati dai racconti di chi comincia a fuggire oltre frontiera. Quando visitiamo i campi allestiti in Bangladesh nel distretto di Cox Bazar è Natale. Sulle spiagge di Cox si festeggiano le vacanze di studenti e lavoratori e tutti gli alberghi sono pieni lungo questa costa che vanta la spiaggia più lunga del mondo. Ma a pochi chilometri dagli allegri festeggiamenti sul bagnasciuga, 70-80.000 rohingya si accampano come possono appena oltrepassato il fiume Naf. Il Bangladesh chiude un occhio: accetta che in qualche modo questa gente possa ottenere riparo. Si accampano in luoghi che diventano campi profughi “informali”, con tende di plastica, scarsi aiuti alimentari, qualche utensile portato da casa, un conteggio della loro presenza quasi impossibile. Lavorano come e dove possono, si spostano da campo a campo e nelle città. In effetti sono del tutto simili ai bangladesi ma la verità è che si tratta di gente senza status sia in Myanamar sia in Bangladesh che nega loro la nazionalità. Sono degli apolidi, vittime del dipanarsi perverso delle frontiere e vittime di un rigurgito identitario nazionalista che li vuole cacciare. Solo razzismo? Islamofobia? Non soltanto.

Spettro islamista e land grabbing
La scusa dell’ultima ondata di violenze e del grande esodo di questi giorni si chiama Arakan Rohingya Salvation Army (ARSA), un gruppo islamista secessionista che ha organizzato gli attacchi dell’ottobre 2016 e quello, recentissimo, del 25 agosto 2017. I militari agitano lo spettro di uno “Stato islamico” nel cuore del Myanmar buddista e il generale Hlaing pensa, non a torto, che la guerriglia voglia subito una modifica della legge del 1982 che divide la cittadinanza lungo linee etniche e con una scala gerarchica dello status – pieno, associato, naturalizzato – che esclude i rohingya e in genere discrimina i musulmani. Persino Aung San Suu Kyi (cui qualcuno ora chiede venga ritirato il Nobel) non ha voluto che i musulmani – anche se non rohingya – si presentassero nelle liste del suo partito alle elezioni che nel 2015 hanno sancito l’arrivo della democrazia nel Paese ostaggio per decenni dei militari.

Numerosi osservatori ritengono che l’espulsione di questa minoranza non abbia a che vedere solo col razzismo e la fobia religiosa, ma anche con un progetto economico per appropriarsi delle loro terre.

Mentre l’ex segretario generale dell’Onu Kofi Annan, incaricato proprio da Suu Kyi di preparare un dossier sulla questione rohingya (che anche lei non chiama col loro nome), chiede che le leggi sulla cittadinanza vengano riviste, numerosi osservatori ritengono che l’espulsione di questa minoranza non abbia a che vedere solo col razzismo e la fobia religiosa ma anche con un progetto economico per appropriarsi delle loro terre. Dagli anni Novanta l’allora governo dei generali ha infatti inaugurato una politica di requisizione dei terreni considerati sottoutilizzati con l’idea di affidarli a società private che li mettessero a profitto. Si chiama favorire lo sviluppo – come sostengono i militari – o semplicemente land grabbing? Dal 2012 una legge ha ulteriormente favorito i grandi agglomerati che possono gestire migliaia di ettari e ha aperto anche al capitale estero. E così da allora nella zona dei rohingya sono passati di mano oltre un milione e 200mila ettari. Del resto, se non hai cittadinanza e documenti, se la tua casa è bruciata e te ne sei andato, quando mai potrai tornare a reclamarli?

Silenzio imbarazzante
Di fronte a tutto ciò, il nuovo governo civile, che ha vinto le elezioni nel 2015, non prende posizione. La Nobel per la pace Aung San Suu Kyi, cui la Costituzione nega un ruolo di primo piano (perché sposata a uno straniero) e che è ministro degli Esteri e “consigliere” dell’esecutivo, si è trincerata dietro un silenzio assai poco dorato. Rotto da un’unica dichiarazione davvero fuori luogo: e cioè che sulla vicenda è stata diffusa solo “disinformazione”. Quel che si dice a Rangoon, la vecchia capitale e centro della vita del Paese, è che questo silenzio non è altro che il timore di un golpe militare. Dopo le elezioni, gli uomini in divisa, cui la Costituzione dà anche diritto a un quarto dei deputati in parlamento, hanno negoziato tre ministeri chiave: Interno, Difesa e… Frontiere. Tutto sembra tornare visto che l’esercito, qui come in altri Paesi dell’area, è una potenza ovviamente militare ma anche economica e politica. La posizione del governo civile dunque è fragile e difficile, ma il suo silenzio si è fatto sempre più imbarazzante.

Se il segretario generale dell’Onu Antonio Guterres ha espresso “seria preoccupazione” ma non ha chiesto ufficialmente nulla alla Nobel, la signora Yanghee Lee, special rapporteur delle Nazioni unite nel Myanmar – una persona che il governo birmano ha continuamente ostacolato – non solo ha dichiarato che la situazione è molto grave ma anche che ora si aspetta che Suu Kyi “faccia un passo”. Lo stesso ha fatto Malala Yousafzai, un premio Nobel più recente ma non meno importante di quello attribuito a Suu Kyi, alla quale ha detto che il “mondo sta aspettando” di ascoltare la sua voce. Non è la sua prima volta: nel dicembre scorso, dopo il pogrom dell’ottobre 2016, la giovane pachistana aveva chiesto un intervento dell’Onu in una lettera firmata anche da altri dodici premi Nobel (da Muhammad Yunus a Desmond Tutu) e da diversi personaggi di rilievo internazionale (Bonino e Prodi tra gli italiani). Con nessun risultato. Sino a qualche giorno fa, tutto quello che Suu Kyi aveva saputo rispondere, in un’intervista alla BBC, è che “chi torna è benvenuto”. Davvero troppo poco, perché la Nobel si è dimenticata di aggiungere come, dove, in quali edifici e con che documenti. E, soprattutto, con quali garanzie.

Rotto solo da qualche dichiarazione, di ambasciatori o di figure istituzionali di secondo piano, in Occidente nessuno sembra volere turbare il sonno dei generali birmani.

Il silenzio di Suu Kyi è comunque in buona compagnia. Rotto solo da qualche dichiarazione, di ambasciatori o di figure istituzionali di secondo piano, in Occidente nessuno sembra volere turbare il sonno dei generali birmani. Per realpolitik o indifferenza, o forse perché troppo occupati coi migranti di casa: condannare un dramma nell’Oceano indiano quando nel Mediterraneo se ne registrano di molto simili, sembra forse fuori luogo. La Turchia ha fatto la voce grossa ma è anche incorsa in un errore madornale (spacciando su Twitter per rohingya foto di vittime di alluvioni o di drammi persino africani) che ne ha azzerato la portata. Qualche solidarietà arriva dai Paesi musulmani, come Pakistan e Iran. Quanto ai vicini, con l’unica eccezione del Bangladesh (e in parte di Malaysia, Maldive e Indonesia), i confinanti fanno orecchie da mercante. Bangkok, Paese buddista sotto tutela militare, recita il mantra della non ingerenza. Delhi – la “più popolosa democrazia del mondo” – minaccia l’espulsione dei 40.000 rohingya illegali sparsi sul suo territorio. I pragmatici cinesi ammiccano.

Il magazine birmano Irrawaddy lo spiega così: tanto per cominciare c’è un interesse politico che riguarda la stabilità della nazione confinante (Pechino direbbe “armonia”) per cui la Cina difende le ragioni del governo birmano nel Consiglio di sicurezza dell’Onu bloccando tutto ciò che potrebbe accusare o mettere in mora il Myanmar. Infine, oltre a essere il maggior investitore nel Paese, ha interessi specifici anche nello stesso Stato del Rakhine. Pechino è molto interessata allo sviluppo del  porto di Kyaukphyu, strategico per i rifornimenti di petrolio che arrivano via Mare da Ovest. I cinesi stanno acquisendo azioni della società portuale locale e finanziano l’oleodotto che dal Rakhine arriva a Kunming, nella Cina del Sud. C’è anche un altro investimento che prevede una linea ferroviaria. Myanmar è un tassello strategico del progetto cinese One Belt, One Road, meglio conosciuto come “Nuova via della seta”. Dunque, è bene non disturbare il manovratore.

La voce di Francesco
Sono soli quei 90.000 rohingya che tentano di attraversare la frontiera per ingrossare le fila di chi ha già attraversato il fiume Naf. Molti restano confinati nella no man’s land tra i due Paesi perché, se è vero che Dacca chiude un occhio, ufficialmente ha deciso – questa volta – di respingerli. C’è solo un piccolo Paese che non è rimasto in silenzio: la Città del Vaticano. Molte speranze sono riposte infatti nella visita che papa Francesco – che più volte ha preso posizione sul dramma di questa minoranza –  svolgerà a fine novembre in Myanmar e Bangladesh. Ma – ha scritto l’agenzia cattolica Ucanews – “…la Conferenza episcopale del Myanmar ha suggerito a Papa Francesco di non usare il termine Rohingya” durante il viaggio apostolico in Myanmar dal 27 al 30 novembre prossimo. “Abbiamo solo fatto notare che la parola Rohingya è un tema sensibile nel Paese e sarebbe meglio non usarla durante la visita”, ha detto monsignor Alexander Pyone Cho, arcivescovo di Pyay, la diocesi del Rakhine, abitato dalla minoranza musulmana Rohingya perseguitata dal governo. Come si dice, ci vorrebbe un miracolo. Anche per un Papa.

 

L'articolo La persecuzione dei Rohingya proviene da il Tascabile.

07 Sep 15:29

Random matrices and the New York City subway system

by Aukosh Jagannath and Thomas Trogdon
Jacopo.bertolotti

TL;DR: Sometimes the arrival times of the metro seem to be completely random, and sometimes they don't. Now reformulate the above statement in an obfuscating language using random matrix theory.

Author(s): Aukosh Jagannath and Thomas Trogdon

A comparison of the arrival-time statistics of New York City’s subway trains indicates that some train lines may be more efficiently run than others.


[Phys. Rev. E 96, 030101(R)] Published Tue Sep 05, 2017

04 Sep 09:02

Google’s comment-ranking system will be a hit with the alt-right

by Violet Blue
A recent, sprawling Wired feature outlined the results of its analysis on toxicity in online commenters across the United States. Unsurprisingly, it was like catnip for everyone who's ever heard the phrase "don't read the comments." According to "The...
25 Aug 15:58

How Laplace Would Hide a Goat: The New Science of Magic Windows

by Michael Trott
Jacopo.bertolotti

I love this! :)

Last week, I read Michael Berry’s paper, “Laplacian Magic Windows.” Over the years, I have read many interesting papers by this longtime Mathematica user, but this one stood out for its maximizing of the product of simplicity and unexpectedness. Michael discusses what he calls the magic window. For 70+ years, we have known about holograms, and now we know about magic windows. So what exactly is a magic window? Here is a sketch of the optics of one:

Magic window optics sketch


Parallel light falls onto a glass sheet that is planar on the one side and has some gentle surface variation on the other side (bumps in the above image are vastly overemphasized; the bumps of a real magic window would be minuscule). The light gets refracted by the magic window (the deviation angles of the refracted light rays are also overemphasized in the graphic) and falls onto a wall. Although the window bumpiness shows no recognizable shape or pattern, the light density variations on the wall show a clearly recognizable image. Starting with the image that one wants to see on the wall, one can always construct a window that shows the image one has selected. The variations in the thickness of the glass are assumed to be quite small, and the imaging plane is assumed to be not too far away so that the refracted light does not form caustics—as one sees them, for instance, at the bottom of a swimming pool in sunny conditions.

Now, how should the window surface look to generate any pre-selected image on the wall? It turns out that the image visible on the wall is the Laplacian of the window surface. Magic windows sound like magic, but they are just calculus (differentiation, to be precise) in action. Isn’t this a neat application of multivariate calculus? Schematically, these are the mathematical steps involved in a magic window.

Implementation-wise, the core steps are the following:

Magic window implementation

And while magic windows are a 2017 invention, their roots go back hundreds of years to so-called magic mirrors. Magic mirrors are the mirror equivalent of magic windows: they too can act as optical Laplace operators (see the following).

Expressed more mathematically: Let the height of the bumpy side of the glass surface be f(x,y). Then the intensity of the light brightness on the wall is approximately Δx,y f(x,y), where Δ is the Laplacian ∂2./∂x2+∂2./∂y2. Michael calls such a window a “magic window.” It is magic because the glass surface height f(x,y) does not in any way resemble Δ x,y f(x,y).

It sounds miraculous that a window can operate as a Laplace operator. So let’s do some numerical experiments to convince ourselves that this does really work. Let’s start with a goat that we want to use as the image to be modeled. We just import a cute-looking Oberhasli dairy goat from the internet.

goat = ImageTake[RemoveAlphaChannel[ColorConvert[Import[           "https://s-media-cache-ak0.pinimg.com/originals/fa/60/ce/\      fa60ce323b5642a78abb1b1814fcd582.jpg"], "Grayscale"]], {1, -30}]
goat = ImageTake[RemoveAlphaChannel[ColorConvert[Import[           "https://s-media-cache-ak0.pinimg.com/originals/fa/60/ce/\      fa60ce323b5642a78abb1b1814fcd582.jpg"], "Grayscale"]], {1, -30}]

{w, h} = ImageDimensions[goat];

The gray values of the pixels can be viewed as a function h: ℝ*ℝ->[0,1]. Interpolation allows us to use this function constructively.

ifGoat = Interpolation[   Flatten[MapIndexed[{Reverse@#2, #1} &, ImageData[goat], {2}], 1]]

Here is a 3D plot of the goat function ifGoat.

Plot3D[ifGoat[x, y], {x, 1, w}, {y, 1, h}, ColorFunction -> GrayLevel,   MeshFunctions -> {}, PlotPoints -> 200,  BoxRatios -> {w, h, w/8}, ViewPoint -> {0, 2, 4},   ViewVertical -> {0, -1, 0}]

Plot3D[ifGoat[x, y], {x, 1, w}, {y, 1, h}, ColorFunction -> GrayLevel,   MeshFunctions -> {}, PlotPoints -> 200,  BoxRatios -> {w, h, w/8}, ViewPoint -> {0, 2, 4},   ViewVertical -> {0, -1, 0}]

And we can solve the Poisson equation with the image as the right-hand side: Δ f = image using NDSolveValue.

We will use Dirichlet boundary conditions for now. (But the boundary conditions will not matter for the main argument.)

ndsGoat = NDSolveValue[{Laplacian[U[x, y], {x, y}] == ifGoat[x, y],     DirichletCondition[U[x, y] == 1/2, True]}, {U}, {x, y} \[Element]      Rectangle[{1, 1}, {w, h}],    Method -> {"PDEDiscretization" -> {"FiniteElement", {"MeshOptions" \ -> {MaxCellMeasure -> 1}}}}][[1]]

The Poisson equation solution is quite a smooth function; the inverse of the Laplace operator is a smoothing operation. No visual trace of the goat seems to be left.

Plot3D[Evaluate[ndsGoat[x, y]], {x, 1, w}, {y, 1, h},               MeshFunctions -> {#3 &}, PlotPoints -> 80,   AxesLabel -> {x, y}]

Plot3D[Evaluate[ndsGoat[x, y]], {x, 1, w}, {y, 1, h},               MeshFunctions -> {#3 &}, PlotPoints -> 80,   AxesLabel -> {x, y}]

Overall it is smooth, and it is also still smooth when zoomed in.

Plot3D[Evaluate[ndsGoat[x, y]], {x, 100, 200}, {y, 100, 200},                MeshFunctions -> {#3 &}, PlotPoints -> 80,   AxesLabel -> {x, y}]

Plot3D[Evaluate[ndsGoat[x, y]], {x, 100, 200}, {y, 100, 200},                MeshFunctions -> {#3 &}, PlotPoints -> 80,   AxesLabel -> {x, y}]

Even when repeatedly zoomed in.

Plot3D[Evaluate[ndsGoat[x, y]], {x, 190, 200}, {y, 190, 200},                MeshFunctions -> {#3 &}, PlotPoints -> 80,   AxesLabel -> {x, y}]

Plot3D[Evaluate[ndsGoat[x, y]], {x, 190, 200}, {y, 190, 200},                MeshFunctions -> {#3 &}, PlotPoints -> 80,   AxesLabel -> {x, y}]

The overall shape of the Poisson equation solution can be easily understood through the Green’s function of the Laplace operator.

GreenFunction[{Laplacian[u[x, y],{x, y}],    DirichletCondition[u[x, y] == 0, True]}, u[x, y],                                 {x, y} \[Element]    Rectangle[{0, 0}, {Lx, Ly}], {m, n}]

We calculate and visualize the first few terms (individually) of the double sum from the Green’s function.

integral[{jx_, jy_}, {kx_, ky_}] =   Integrate[   Sin[Pi x kx/Lx] Sin[Pi y ky/Ly], {x, jx, jx + 1}, {y, jy, jy + 1}]

cfF = With[{lx = w, ly = h, id = ImageData[goat]},    Compile[{kx, ky},      Module[{sum = 0. },      Do[sum =         sum + (-1) id[[jy, jx]]  1/(          kx ky \[Pi]^2) (Cos[(jx kx \[Pi])/lx] -             Cos[((1 + jx) kx \[Pi])/lx]) (Cos[(jy ky \[Pi])/ly] -             Cos[((1 + jy) ky \[Pi])/ly]),       {jy, ly - 1}, {jx, lx - 1}];      sum]] ];

With[{lx = w, ly = h},  Table[Plot3D[    Evaluate[     cfF[kx, ky] 1/((\[Pi]^2 kx^2)/lx^2 + (\[Pi]^2 ky^2)/       ly^2) (Sin[(\[Pi] x kx)/lx] Sin[(\[Pi] y ky)/ly])], {x, 1,      lx}, {y, 1, ly},    Ticks -> {None, None, Automatic},     PlotLabel -> "{kx,ky}" == {kx, ky}, MeshFunctions -> {#3 &}],   {kx, 3}, {ky, 3}]]

With[{lx = w, ly = h},  Table[Plot3D[    Evaluate[     cfF[kx, ky] 1/((\[Pi]^2 kx^2)/lx^2 + (\[Pi]^2 ky^2)/       ly^2) (Sin[(\[Pi] x kx)/lx] Sin[(\[Pi] y ky)/ly])], {x, 1,      lx}, {y, 1, ly},    Ticks -> {None, None, Automatic},     PlotLabel -> "{kx,ky}" == {kx, ky}, MeshFunctions -> {#3 &}],   {kx, 3}, {ky, 3}]]

Taking 252 terms into account, we have the following approximations for the Poisson equation solution and its Laplacian. The overall shape is the same as the previous numerical solution of the Poisson equation.

goatPoissonApprox[x_, y_] = With[{lx = w, ly = h},    Monitor[     Sum[cfF[kx, ky] 1/((\[Pi]^2 kx^2)/lx^2 + (\[Pi]^2 ky^2)/        ly^2) (Sin[(\[Pi] x kx)/lx] Sin[(\[Pi] y ky)/ly]), {kx,        25}, {ky, 25}], {kx, ky}]];

With[{lx = w, ly = h},   Plot3D[Evaluate[goatPoissonApprox[x, y]], {x, 1, lx}, {y, 1, ly},    MeshFunctions -> {#3 &}]]

With[{lx = w, ly = h},   Plot3D[Evaluate[goatPoissonApprox[x, y]], {x, 1, lx}, {y, 1, ly},    MeshFunctions -> {#3 &}]]

For this small number of Fourier modes, the outline of goat is recognizable, but its details aren’t.

With[{cfL =     Compile[{x, y},      Evaluate[Laplacian[goatPoissonApprox[x, y], {x, y}]]]},  ReliefPlot[Table[cfL[x, y], {y, h, 1, -1}, {x, 1, w}],    ColorFunction -> GrayLevel, Frame -> False]]

Applying the Laplace operator to the PDE solutions recovers (by construction) a version of the goat. Due to finite element discretization and numerical differentiation, the resulting goat is not quite the original one.

ReliefPlot[  Table[Evaluate[Laplacian[ifGoat[x, y], {x, y}]], {y, h, 1, -1}, {x,     w}],                         ColorFunction -> GrayLevel, Frame -> False]

A faster and less discretization-dependent way to solve the Poisson equation uses the fast Fourier transform (FFT).

FDSTGoat =    FourierDST[    Table[(* \[CapitalDelta]^-1 *) -1./(4 - 2 Cos[x  Pi/h] -          2 Cos[y Pi/w]), {y, h}, {x, w}] FourierDST[ImageData[goat],       1], 1];

ListPlot3D[FDSTGoat, MeshFunctions -> {#3 &}]
ListPlot3D[FDSTGoat, MeshFunctions -> {#3 &}]

This solution recovers the goat more faithfully. Here is the recovered goat after interpolating the function values.

if\[CapitalDelta]Goat =   Interpolation[   Flatten[MapIndexed[{Reverse@#2, #1} &, FDSTGoat, {2}], 1],    InterpolationOrder -> 3]

ReliefPlot[  Table[Evaluate[Laplacian[if\[CapitalDelta]Goat[x, y], {x, y}]], {y,     h, 1, -1}, {x, w}],                         ColorFunction -> GrayLevel, Frame -> False]

Taking into account that any physical realization of a magic window made from glass will unavoidably have imperfections, a natural question to ask is: What happens if one adds small perturbations to the solution of the Poisson equation?

The next input modifies each grid point randomly by a perturbation of relative size 10-p. We see that for this goat, the relative precision of the surface has to be on the order of 10-6 or better—a challenging but realizable mechanical accuracy.

Table[if\[CapitalDelta]GoatRandomized = Interpolation[Flatten[     MapIndexed[{Reverse@#2, (1 + 10^-p RandomReal[{-1, 1}]) #1} &,       FDSTGoat, {2}], 1], InterpolationOrder -> 3];  ReliefPlot[   Table[Evaluate[     Laplacian[if\[CapitalDelta]GoatRandomized[x, y], {x, y}]], {y, h,      1, -1}, {x, w}],                          ColorFunction -> GrayLevel, Frame -> False,    PlotLabel -> HoldForm[10^-#] &[p]],  {p, 3, 6}]

To see how the goat emerges after differentiation (Δ = ∂2 ./∂x2+∂2 ./∂y2), here are the partial derivatives shown.

Function[\[Delta],    ReliefPlot[    Table[Evaluate[\[Delta] @ if\[CapitalDelta]Goat[x, y]], {y, h,       1, -1}, {x, w}],                             ColorFunction -> GrayLevel,     Frame -> False, PlotLabel -> \[Delta]]] /@                        {Function[f, D[f, x]], Function[f, D[f, y]],                         Function[f, D[f, {x, 2}]],    Function[f, D[f, {y, 2}]]}

And because we have ∂2 ./∂x2+∂2 ./∂y2 =(∂./∂x+ⅈ ∂./∂y)(∂./∂x–ⅈ ∂./∂y), we also look at the Wirtinger derivatives.

Function[\[Delta],    ReliefPlot[    Table[Evaluate[\[Delta] @ if\[CapitalDelta]Goat[x, y]], {y, h,       1, -1}, {x, w}],                             ColorFunction -> GrayLevel,     Frame -> False, PlotLabel -> \[Delta]]] /@                        {Function[f, Arg[D[f, x] + I D[f, y]]],    Function[f, Abs[D[f, x] + I D[f, y]]],                        Function[f, Arg[D[f, x] - I D[f, y]]],    Function[f, Abs[D[f, x] + I D[f, y]]]}

Function[\[Delta],    ReliefPlot[    Table[Evaluate[\[Delta] @ if\[CapitalDelta]Goat[x, y]], {y, h,       1, -1}, {x, w}],                             ColorFunction -> GrayLevel,     Frame -> False, PlotLabel -> \[Delta]]] /@                        {Function[f, Arg[D[f, x] + I D[f, y]]],    Function[f, Abs[D[f, x] + I D[f, y]]],                        Function[f, Arg[D[f, x] - I D[f, y]]],    Function[f, Abs[D[f, x] + I D[f, y]]]}

We could also just use a simple finite difference formula to get the goat back. This avoids any interpolation artifacts and absolutely faithfully reproduces the original goat.

{ImageConvolve[   Image[FDSTGoat], -{{0, -1, 0}, {-1, 4, -1}, {0, -1, 0}},    Padding -> None],   LaplacianFilter[Image[FDSTGoat], 1],   LaplacianFilter[Image[FDSTGoat], 2]}

The differentiation can even be carried out as an image processing operation.

ImageConvolve[Image[FDSTGoat], -{{0, -1, 0}, {-1, 4, -1}, {0, -1, 0}},    Padding -> None] // ImageAdjust

So far, nothing really interesting. We integrated and differentiated a function. Let’s switch gears and consider the refraction of a set of parallel light rays on a glass sheet.

We consider the lower parts of the glass sheet planar and the upper part slightly wavy with an explicit description height = f(x,y). The index of refraction is n, and we follow the light rays (coming from below) up to the imaging plane at height = Z. Here is a small Manipulate that visualizes this situation for the example surface f(x,y) = 1 + ε (cos(α x) + cos(β y).

We do want the upper surface of the glass nearly planar, so we use the factor ε in the previous equation.

g[x_, y_] := Cos[\[Alpha] x] + Cos[\[Beta] y]; f[x_, y_] := 1 +(* small height variations *) \[CurlyEpsilon]  g[x, y];  normalize = #/Sqrt[#.#] &; lightRay[{\[Alpha]_, \[Beta]_, \[CurlyEpsilon]_}, {x_, y_}, n_, Z_] =   Module[{dir0 = normalize[{0, 0, 1}], normal, \[Phi], \[Theta], P0,      direction2, dir, \[Sigma]},    (* surface normal *)    normal = normalize[Grad[z - f[x, y], {x, y, z}]];    (* refract the light ray using Snell's law *)    \[Phi] = ArcCos[normal.dir0];    \[Theta] = ArcSin[n Sin[\[Phi]]];    (* surface point of refraction *)    P0 = {x, y, f[x, y]};     (* refracted ray *)    direction2 = normalize[dir0 - normal.dir0 normal];     dir = Cos[\[Theta]] normal + Sin[\[Theta]] direction2 ;    (* ray up to height Z *)    \[Sigma] = (Z - P0[[3]])/dir[[3]];    (* return pair: {surface point, image plane point} *)    {P0, P0 + \[Sigma] dir}    ];

Manipulate[  Module[{surface,  p0, p1, rays, \[CapitalDelta] = 2 Pi/pp},   surface =     Plot3D[Evaluate[      1 + \[CurlyEpsilon] (Cos[\[Alpha] x] + Cos[\[Beta] y])], {x, -Pi,       Pi}, {y, -Pi, Pi},     Filling -> -2, FillingStyle -> Directive[White, Opacity[0.4]],      MeshFunctions -> {#3 &},     MeshStyle -> GrayLevel[0.5], Lighting -> "Neutral",      ImageSize -> 400,     BoundaryStyle -> Gray,      PlotStyle -> Directive[White, Opacity[0.4]]];     rays = Table[{p0, p1} =        N@lightRay[{\[Alpha], \[Beta], \[CurlyEpsilon]}, {\[Xi], \ \[Eta]}, n, Z];                           (* ignore rays with total reflection *)                          If[MatchQ[p1, {_Real, _Real, _Real}],                                  {Tube[         Line[{MapAt[-4 &, p0, 3], p0, p1}], 0.02],         Sphere[p1, 0.04]}, {}],          {\[Eta], -Pi + \[CapitalDelta]/2,        Pi - \[CapitalDelta]/         2, \[CapitalDelta]},   {\[Xi], -Pi + \[CapitalDelta]/2,        Pi - \[CapitalDelta]/2, \[CapitalDelta]}] // Quiet;   Show[{surface, Graphics3D[{Yellow, rays}]},            PlotRange -> All, BoxRatios -> Automatic,     Background -> Black]],   {{pp, 18, "rays"}, 1, 32, 1, Appearance -> "Labeled"}, Delimiter,  {{n, 3}, 1, 5, Appearance -> "Labeled"}, Delimiter,  {{Z, 5}, 1, 20, Appearance -> "Labeled"}, Delimiter,  {{\[CurlyEpsilon], 0.08}, -1, 1, Appearance -> "Labeled"}, Delimiter,  {{\[Alpha], 1}, 0, 5, Appearance -> "Labeled"},  {{\[Beta], 1}, 0, 5, Appearance -> "Labeled"},  TrackedSymbols :> True]

Manipulate[  Module[{surface,  p0, p1, rays, \[CapitalDelta] = 2 Pi/pp},   surface =     Plot3D[Evaluate[      1 + \[CurlyEpsilon] (Cos[\[Alpha] x] + Cos[\[Beta] y])], {x, -Pi,       Pi}, {y, -Pi, Pi},     Filling -> -2, FillingStyle -> Directive[White, Opacity[0.4]],      MeshFunctions -> {#3 &},     MeshStyle -> GrayLevel[0.5], Lighting -> "Neutral",      ImageSize -> 400,     BoundaryStyle -> Gray,      PlotStyle -> Directive[White, Opacity[0.4]]];     rays = Table[{p0, p1} =        N@lightRay[{\[Alpha], \[Beta], \[CurlyEpsilon]}, {\[Xi], \ \[Eta]}, n, Z];                           (* ignore rays with total reflection *)                          If[MatchQ[p1, {_Real, _Real, _Real}],                                  {Tube[         Line[{MapAt[-4 &, p0, 3], p0, p1}], 0.02],         Sphere[p1, 0.04]}, {}],          {\[Eta], -Pi + \[CapitalDelta]/2,        Pi - \[CapitalDelta]/         2, \[CapitalDelta]},   {\[Xi], -Pi + \[CapitalDelta]/2,        Pi - \[CapitalDelta]/2, \[CapitalDelta]}] // Quiet;   Show[{surface, Graphics3D[{Yellow, rays}]},            PlotRange -> All, BoxRatios -> Automatic,     Background -> Black]],   {{pp, 18, "rays"}, 1, 32, 1, Appearance -> "Labeled"}, Delimiter,  {{n, 3}, 1, 5, Appearance -> "Labeled"}, Delimiter,  {{Z, 5}, 1, 20, Appearance -> "Labeled"}, Delimiter,  {{\[CurlyEpsilon], 0.08}, -1, 1, Appearance -> "Labeled"}, Delimiter,  {{\[Alpha], 1}, 0, 5, Appearance -> "Labeled"},  {{\[Beta], 1}, 0, 5, Appearance -> "Labeled"},  TrackedSymbols :> True]

The reason we want the upper surface mostly planar is that we want to avoid rays that “cross” near the surface and form caustics. We want to be in a situation where the density of the rays is position dependent, but the rays do not yet cross. This restricts the values of n, Z and the height of the surface modulation.

Now let’s do the refraction experiment with the previous solution of the Laplace equation as the height of the upper glass surface. To make the surface variations small, we multiply that solution by 0.0001.

WolframAlpha["refractive index of glass", {{"Result", 1},    "ComputableData"},   PodStates -> {"Result__Show details", "Result__Hide details"}]

We use the median refractive index of glass, n = 1.53.

ifGoatSmall[x_, y_] = 0.0001  if\[CapitalDelta]Goat[x, y];

gradGoatSmall[x_, y_] = Grad[z - ifGoatSmall[x, y], {x, y, z}];

Instead of using lightRay, we will use a compiled version for faster numerical evaluation.

refractCompiled[{x_, y_}, n_, Z_] :=    cf[x, y, Z, n, gradGoatSmall[x, y], ifGoatSmall[x, y]];

cf = Compile[{x, y, Z, n, {g2, _Real, 1}, s2},    Module[{dir0 = Normalize[{0, 0, 1}], normal, \[Phi], \[Theta], P0,       direction2 = {1., 1, 1}, dir, \[Sigma]},     normal = Normalize[g2];     \[Phi] = ArcCos[normal.dir0];     \[Theta] = ArcSin[n Sin[\[Phi]]];     P0 = {x, y, s2};     direction2 = Normalize[dir0 - normal.dir0 normal];      dir = Cos[\[Theta]] normal + Sin[\[Theta]] direction2 ;     \[Sigma] = (Z - P0[[3]])/dir[[3]];     {P0, P0 + \[Sigma] dir}]];

In absolute units, say the variations in glass height are at most 1 mm; we look at the refracted rays a few meters behind the glass window. We will use about 3.2 million lights rays (42 per pixel).

With[{\[CapitalDelta] = 0.25, Z = 5000},   Monitor[   data = Line[      Flatten[Table[        refractCompiled[{x, y}, 1.53, Z], {y, 1,          h, \[CapitalDelta]}, {x, 1, w, \[CapitalDelta]}], 1]];,   {y, x}]]

points = Most[#] & /@ data[[1, All, 2]]; Length[points]

Displaying all endpoints of the rays gives a rather strong Moiré effect. But the goat is visible—a true refraction goat!

Graphics[{PointSize[0.001], Opacity[0.02],    Point[Developer`ToPackedArray[{1, -1} # & /@ points]]}]

Graphics[{PointSize[0.001], Opacity[0.02],    Point[Developer`ToPackedArray[{1, -1} # & /@ points]]}]

If we accumulate the number of points that arrive in a small neighborhood of the given points {X,Y} in the plane height=Z, the goat becomes much more visible. (This is what would happen if we would observe the brightness of the light that goes through the glass sheet and we assume that the intensities are additive.) To do the accumulation efficiently, we use the function Nearest.

nf = Nearest[points]; Monitor[tNF =     Table[Length@nf[{x, y}, {Infinity, 2}], {x, -20, w + 20}, {y, -20,       h + 20}];, {x, y}] ReliefPlot[Reverse@Transpose[tNF],   ColorFunction -> (GrayLevel[1 - #^2] &), Frame -> False]

nf = Nearest[points]; Monitor[tNF =     Table[Length@nf[{x, y}, {Infinity, 2}], {x, -20, w + 20}, {y, -20,       h + 20}];, {x, y}] ReliefPlot[Reverse@Transpose[tNF],   ColorFunction -> (GrayLevel[1 - #^2] &), Frame -> False]

Note that looking into the light that comes through the window would not show the goat because the light that would fall into the eye would mostly come from a small spatial region due to the mostly parallel light rays.

The appearance of the Laplacian of the surface of the glass sheet is not restricted to only parallel light. In the following, we use a point light source instead of parallel light. This means that the effect would also be visible by using artificial light sources, rather than sunlight with a magic window.

cfP = With[{w = w, h = h},   Compile[{x, y, Z, n, {g2, _Real, 1}, s2},    Module[{dir0 = Normalize[{x, y, s2} - {w/2, h/2, 5000}],       normal, \[Phi], \[Theta], P0, direction2 = {1., 1, 1},       dir, \[Sigma]},     normal = Normalize[g2];     \[Phi] = ArcCos[normal.dir0];     \[Theta] = ArcSin[n Sin[\[Phi]]];     P0 = {x, y, s2};     direction2 = Normalize[dir0 - normal.dir0 normal];      dir = Cos[\[Theta]] normal + Sin[\[Theta]] direction2 ;     \[Sigma] = (Z - P0[[3]])/dir[[3]];     {P0, P0 + \[Sigma] dir}]]]

refractCompiledP[{x_, y_}, n_, Z_] :=   cfP[x, y, Z, n, gradGoatSmall[x, y], ifGoatSmall[x, y]]

With[{Z = 5000, \[CapitalDelta] = .25},  Monitor[   dataP =      Line[Flatten[       Table[refractCompiledP[{x, y}, 1.5, Z], {x, 1,          w, \[CapitalDelta]}, {y, 1, h, \[CapitalDelta]}], 1]];,   {x, y}] ]

ptsP = Reverse[Most[#]] & /@ dataP[[1, All, 2]];  nfP = Nearest[ptsP]; With[{padding = 400},  Monitor[tNFP = Table[Length@nfP[{x, y}, {Infinity, 2}],                   {x, -padding, w + padding},   {y, -padding,        h + padding}];, {x, y}]]

ReliefPlot[Reverse@tNFP, ColorFunction -> (GrayLevel[1 - #^2] &),     Frame -> False] //                                                                      Rasterize[#, "Image", ImageSize -> 400] & // ImageCrop

ReliefPlot[Reverse@tNFP, ColorFunction -> (GrayLevel[1 - #^2] &),     Frame -> False] //                                                                      Rasterize[#, "Image", ImageSize -> 400] & // ImageCrop

So why is the goat visible in the density of rays after refraction? At first, it seems quite surprising whether either a parallel or point source shines on the window.

On second thought, one remembers Maxwell’s geometric meaning of the Laplace operator:

(\[CapitalDelta] f)(Subscript[Overscript[r, \[RightVector]], 0])=Underscript[lim, \[Rho]->0]((2d)/\[Rho]^2 (Subscript[\[LeftAngleBracket]f\[RightAngleBracket], S(Subscript[Overscript[r, \[RightVector]], 0],\[Rho])]-f(Subscript[Overscript[r, \[RightVector]], 0])))

… where Math notation indicates the average of f on a sphere centered at Math notation 2 with radius ρ. Here is a quick check of the last identity for two and three dimensions.

 Limit[2*2/\[Rho]^2 (Normal[       Series[Integrate[\[ScriptF][x, y], {x, y} \[Element]           Sphere[{x0, y0}, \[Rho]],          Assumptions -> \[Rho] > 0 \[And] (x0 | y0) \[Element]             Reals], {x, x0, 3}, {y, y0, 3}]]/      ArcLength[Sphere[{x0, y0}, \[Rho]]] - \[ScriptF][x0,       y0]), \[Rho] -> 0]

 Limit[2*3/\[Rho]^2 (Normal[       Series[Integrate[\[ScriptF][x, y, z], {x, y, z} \[Element]           Sphere[{x0, y0, z0}, \[Rho]],          Assumptions -> \[Rho] > 0 \[And] (x0 | y0 | z0) \[Element]             Reals], {x, x0, 3}, {y, y0, 3}, {z, z0, 3}]]/      Area[Sphere[{x0, y0, z0}, \[Rho]]] - \[ScriptF][x0, y0,       z0]), \[Rho] -> 0]

At a given point in the imaging plane, we add up the light rays from different points of the glass surface. This means we carry out some kind of averaging operation.

So let’s go back to the general refraction formula and have a closer look. Again we assume that the upper surface is mostly flat and that the parameter ε is small. The position {X,Y} of the light ray in the imaging plane can be calculated in closed form as a function of the surface g(x,y), the starting coordinates of the light ray {x,y}, the index of refraction n and the distance of the imaging plane Z.

Clear[f, g]; f[x_, y_] := f0 + \[CurlyEpsilon] g[x, y]; normalize = #/Sqrt[#.#] &; \[ScriptCapitalR] = Module[{dir0 = normalize[{0, 0, 1}]},    normal = normalize[Grad[z - f[x, y], {x, y, z}]];    \[Phi] = ArcCos[normal.dir0];    \[Theta] = ArcSin[n Sin[\[Phi]]];    P0 = {x, y, f[x, y]};     direction2 = normalize[dir0 - normal.dir0 normal];     dir = Cos[\[Theta]] normal + Sin[\[Theta]] direction2 ;    \[Sigma] = (Z - P0[[3]])/dir[[3]];    P0 + \[Sigma] dir ] // Simplify

That is a relatively complicated-looking formula. For a nearly planar upper glass surface (small ε), we have the following approximate coordinates for the {X,Y} coordinates of the imaging plane where we observe the light rays in terms of the coordinate {x,y} of the glass surface.

Series[Most[\[ScriptCapitalR]], {\[CurlyEpsilon], 0, 1}]

This means in zeroth order we have {X,Y} ≈ {x,y}. And the deviation of the light ray position in the imaging plane is proportional (n–1)Z. (Higher-order corrections to {X,Y} ≈ {x,y} we could get from Newton iterations, but we do not need them here.)

The density of rays is the inverse of the Jacobian for going from {x,y} to {X,Y}. (Think on the change of variable formulas for 1:1 transforms for multivariate integration.)

1/Det[Grad[Most[\[ScriptCapitalR]], {x, y}]] // Short[#, 6] &

LeafCount[1/Det[Grad[Most[\[ScriptCapitalR]], {x, y}]]]

Quantifying the size of the resulting expression shows that it is indeed a large expression. This is quite a complex formula. For a quadratic function in x and y, we can get some feeling for the density as a function of the physical parameters ε, n and Z as well as the parameters that describe the surface by varying them in an interactive demonstration. For large values of n, Z and ε, we see how caustics arise.

refractionDensity[{x_, y_}, {n_, Z_, \[CurlyEpsilon]_}, {c00_, c10_,      c01_, c11_, c20_, c02_}] =    1/Det[Grad[Most[\[ScriptCapitalR]], {x, y}]] /.      g -> Function[{x, y},        c00 + c10 x + c01 y + c11 x y + c20 x^2 + c02 y^2] /. f0 -> 1;

Manipulate[  {Plot3D[Evaluate[     c00 + c10 x + c01 y + c11 x y + c20 x^2 + c02 y^2], {x, -1,      1}, {y, -1, 1},    MeshFunctions -> {#3 &}],   Plot3D[Evaluate[     refractionDensity[{x, y}, {n, Z, \[CurlyEpsilon]}, {c00, c10, c01,        c11, c20, c02}]], {x, -1, 1}, {y, -1, 1},    MeshFunctions -> {#3 &}]},   {{n, 3}, 1, 5, Appearance -> "Labeled"},   {{Z, 5}, 1, 20, Appearance -> "Labeled"},   {{\[CurlyEpsilon], 0.08}, -1, 1, Appearance -> "Labeled"}, Delimiter,  {{c00, 0}, -2, 2, Appearance -> "Labeled"},  {{c10, 0}, -2, 2, Appearance -> "Labeled"},  {{c01, 0}, -2, 2, Appearance -> "Labeled"},  {{c11, 0.7}, -2, 2, Appearance -> "Labeled"},  {{c20, 1.2}, -2, 2, Appearance -> "Labeled"},  {{c02, 1}, -2, 2, Appearance -> "Labeled"},  ControlPlacement -> Top, TrackedSymbols :> True]

For nearly planar surfaces (first order in ε), the density is equal to the Laplacian of the surface heights (in x,y coordinates). This is the main “trick” in the construction of magic windows.

intensity =   Series[1/Det[      Grad[Most[\[ScriptCapitalR]], {x, y}]], {\[CurlyEpsilon], 0,      1}] // Simplify

This explains why the goat appears as the intensity pattern of the light rays after refraction. This means glass sheets act effectively as a Laplace operator.

Using Newton’s root-finding method, we could calculate the intensity in X,Y coordinates, but the expression explains heuristically why refraction on a nearly planar surface behaves like an optical Laplace operator. For more details, see this article.

Now we could model a better picture of the light ray density by pre-generating a matrix of points in the imaging plane using, say, 10 million rays, and record where they fall within the imaging plane. This time we model the solution of the Poisson equation using ListDeconvolve.

ifGoat2 = Interpolation[   Flatten[    MapIndexed[{Reverse@#2, #1} &,      ListDeconvolve[-{{0, -1, 0}, {-1, 4, -1}, {0, -1, 0}},       ImageData[goat]], {2}], 1], InterpolationOrder -> 5]

The approximate solution of the Poisson equation is not quite as smooth as the global solutions, but the goat is nevertheless invisible.

Plot3D[Evaluate[ifGoat2[x, y]], {x, 1, w}, {y, 1, h},   MeshFunctions -> {#3 &}, PlotPoints -> 80]

ReliefPlot[  Table[Evaluate[Laplacian[ifGoat2[x, y], {x, y}]], {y, h, 1, -1}, {x,     w}], ColorFunction -> GrayLevel, Frame -> False]

ifGoatSmall2[x_, y_] = 0.002  ifGoat2[x, y];

gradGoatSmall2[x_, y_] = Grad[z - ifGoatSmall2[x, y], {x, y, z}];

refractCompiled2[{x_, y_}, n_, Z_] :=    cf[x, y, Z, n, gradGoatSmall2[x, y], ifGoatSmall2[x, y]];

(* this will take a few minutes *) With[{\[Mu] = 4, \[CapitalDelta] = 0.1, Z = 1000, \[Delta] = 25},  Monitor[   mat = Table[0, {\[Mu] (h + 2 \[Delta])}, {\[Mu] (w + 2 \[Delta])}];    Do[\[Upsilon] = \[Mu] Round[(refractCompiled2[{x, y}, 1.53, Z][[          2]] + \[Delta]), 1./\[Mu]];    If[1 <= \[Upsilon][[2]] <= \[Mu] (h + 2 \[Delta]) &&       1 <= \[Upsilon][[1]] <= \[Mu] (w + 2 \[Delta]),      mat[[\[Upsilon][[2]], \[Upsilon][[1]]]] =       mat[[\[Upsilon][[2]], \[Upsilon][[1]]]] + 1],     {x, 1, w, \[CapitalDelta]}, {y, 1, h, \[CapitalDelta]}];, {x, y}]]

We adjust the brightness/darkness through a power law (a crude approximation for a Weber–Fechner perception).

ImageResize[Blur[Image[1 - (mat/Max[mat])^0.3], 6], 600] // ImageCrop

If the imaging plane is too far away, we do get caustics (that remind me of the famous cave paintings from Lascaux).

With[{\[Mu] = 4, \[CapitalDelta] = 0.25, Z = 4000, \[Delta] = 25},  Monitor[   matC = Table[0, {\[Mu] (h + 2 \[Delta])}, {\[Mu] (w + 2 \[Delta])}];    Do[\[Upsilon] = \[Mu] Round[(refractCompiled2[{x, y}, 1.53, Z][[          2]] + \[Delta]), 1./\[Mu]];    If[1 <= \[Upsilon][[2]] <= \[Mu] (h + 2 \[Delta]) &&       1 <= \[Upsilon][[1]] <= \[Mu] (w + 2 \[Delta]),                matC[[\[Upsilon][[2]], \[Upsilon][[1]]]] =       matC[[\[Upsilon][[2]], \[Upsilon][[1]]]] + 1],     {x, 1, w, \[CapitalDelta]}, {y, 1, h, \[CapitalDelta]}];, {x, y}]]

ImageResize[Blur[Image[1 - (matC/Max[matC])^.2], 5], 600] // ImageCrop

If the image plane is even further away, the goat slowly becomes unrecognizable.

With[{\[Mu] = 4, \[CapitalDelta] = 0.25, Z = 8000, \[Delta] = 60},  Monitor[   matC2 =     Table[0, {\[Mu] (h + 2 \[Delta])}, {\[Mu] (w + 2 \[Delta])}];    Do[\[Upsilon] = \[Mu] Round[(refractCompiled2[{x, y}, 1.53, Z][[          2]] + \[Delta]), 1./\[Mu]];    If[1 <= \[Upsilon][[2]] <= \[Mu] (h + 2 \[Delta]) &&       1 <= \[Upsilon][[1]] <= \[Mu] (w + 2 \[Delta]),                 matC2[[\[Upsilon][[2]], \[Upsilon][[1]]]] =       matC2[[\[Upsilon][[2]], \[Upsilon][[1]]]] + 1],     {x, 1, w, \[CapitalDelta]}, {y, 1, h, \[CapitalDelta]}];, {x, y}]]

ImageResize[Blur[Image[1 - (matC2/Max[matC2])^.1], 5],    600] // ImageCrop

Although not practically realizable, we also show what the goat would look like for negative Z; now it seems much more sheep-like.

With[{\[Mu] = 4, \[CapitalDelta] = 0.25, Z = -3000, \[Delta] = 60},  Monitor[   matC3 =     Table[0, {\[Mu] (h + 2 \[Delta])}, {\[Mu] (w + 2 \[Delta])}];    Do[\[Upsilon] = \[Mu] Round[(refractCompiled2[{x, y}, 1.53, Z][[          2]] + \[Delta]), 1./\[Mu]];    If[1 <= \[Upsilon][[2]] <= \[Mu] (h + 2 \[Delta]) &&       1 <= \[Upsilon][[1]] <= \[Mu] (w + 2 \[Delta]),                 matC3[[\[Upsilon][[2]], \[Upsilon][[1]]]] =       matC3[[\[Upsilon][[2]], \[Upsilon][[1]]]] + 1],     {x, 1, w, \[CapitalDelta]}, {y, 1, h, \[CapitalDelta]}];, {x, y}]]

ImageResize[Blur[Image[1 - (matC3/Max[matC3])^.2], 5],    600] // ImageCrop

Here is a small animation showing the shape of the goat as a function of the distance Z of the imaging plane from the upper surface.

Even if the image is just made from a few lines (rather than each pixel having a non-white or non-black value), the solution of the Poisson equation is a smooth function, and the right-hand side is not recognizable in a plot of the solution.

imHomer =   ColorConvert[   Rasterize[    Show[Entity["PopularCurve", "HomerSimpsonCurve"]["Plot"],       Axes -> False] /.                                                                       \                 _RGBColor :> Black, "Image", ImageSize -> 300],    "Grayscale"]

{wHomer, hHomer} = ImageDimensions[imHomer];

ifHomer =    Interpolation[    Flatten[MapIndexed[{#2, #1} &, ImageData[imHomer], {2}], 1],     InterpolationOrder -> 4];

im\[CapitalDelta]Homer =    FourierDST[    Table[-1./(4 - 2 Cos[x  Pi/hHomer] - 2 Cos[y Pi/wHomer]), {y,        hHomer}, {x, wHomer}] *                                                  FourierDST[ImageData[imHomer], 1], 1];

if\[CapitalDelta]Homer =    Interpolation[    Flatten[MapIndexed[{Reverse@#2, #1} &,       im\[CapitalDelta]Homer, {2}], 1], InterpolationOrder -> 2];

Plot3D[Evaluate[if\[CapitalDelta]Homer[x, y]], {x, 1, wHomer}, {y, 1,    hHomer}, MeshFunctions -> {#3 &}, PlotPoints -> 80]

But after refraction on a glass sheet (or applying the Laplacian), we see Homer quite clearly.

 Image[ListConvolve[-{{0, -1, 0}, {-1, 4, -1}, {0, -1, 0}},     im\[CapitalDelta]Homer]] // ImageAdjust

Despite the very localized curve-like structures that make the Homer image, the resulting Poisson equation solution again looks quite smooth. Here is the solution textured with its second derivative (the purple line will be used in the next input).

Plot3D[Evaluate[if\[CapitalDelta]Homer[x, y]], {x, 1, wHomer}, {y, 1,    hHomer}, PlotPoints -> 80,  BoxRatios -> {wHomer, hHomer, wHomer/2},   PlotStyle -> Texture[imHomer], Mesh -> {{200}},  MeshFunctions -> {#2 &}, MeshStyle -> Purple,   ViewPoint -> {0.3, -1.9, 2.9}]

The next graphic shows a cross-section of the Poisson equation solution together with its (scaled) first and second derivatives with respect to x along the purple line of the last graphic. The lines show up quite pronounced in the second derivatives.

Plot[Evaluate[{if\[CapitalDelta]Homer[x, 200]/10000,     D[if\[CapitalDelta]Homer[x, 200], x]/100,     D[if\[CapitalDelta]Homer[x, 200], x, x]}], {x, 1, wHomer},  PlotLegends -> {HoldForm[if\[CapitalDelta]Homer[x, 200]/10000],     HoldForm[D[if\[CapitalDelta]Homer[x, 200], x]],     HoldForm[D[if\[CapitalDelta]Homer[x, 200], {x, 2}]]}]

Let’s repeat a modification of the previous experiment to see how precise the surface would have to be to show Homer. We add some random waves to the Homer solution.

With[{M = 20, n = 8},   if\[CapitalDelta]Homer2[\[Delta]_][x_, y_] =     if\[CapitalDelta]Homer[x, y]*     (1 + \[Delta] Sum[         RandomReal[{}] Cos[           RandomReal[{-M, M}] x + 2 Pi RandomReal[]] Cos[           RandomReal[{-M, M}] y + 2 Pi RandomReal[]],         {n}])];

Again we see that the surface would have to be correct at the (10-6) level or better.

ArrayPlot[    Table[Evaluate[       Laplacian[if\[CapitalDelta]Homer2[10^-#][x, y], {x, y}]], {y, 1,       hHomer}, {x, 1, wHomer}], Frame -> False,    ColorFunction -> GrayLevel, PlotLabel -> HoldForm[10^-# ]] & /@ {5,    6, 7, 8}

Or one can design a nearly planar window that will project one’s most favorite physics equation on the wall when the Sun is shining.

physicsFormulas =    Select[(Last /@ Select[{#, FormulaData[#]} & /@ FormulaData[],         MemberQ[#,           "SpeedOfLight" | "GravitationalConstant" |            "BoltzmannConstant" | "ElectricConstant" |                            "MagneticConstant" | "PlanckConstant" |            "ReducedPlanckConstant" | "ElectronMass" |                             "StefanBoltzmannConstant" |            "ElementaryCharge" | "FaradayConstant" |            "RydbergConstant", {-1}] &]),                                FreeQ[#, _Real, \[Infinity]] &] /.     Quantity[1, s_String] :> HoldForm[Quantity[None, s]];

imPhysics =   ColorConvert[   ImageCollage[    Rasterize[#, "Image", ImageSize -> RandomInteger[{200, 400}]] & /@      TraditionalForm /@                                                                              \             RandomSample[physicsFormulas, 12], Background -> White,     ImageSize -> 800], "Grayscale"]

{wPhysics, hPhysics} = ImageDimensions[imPhysics];

ifPhysics =    Interpolation[    Flatten[MapIndexed[{#2, #1} &,       N[Floor[ImageData[imPhysics]]], {2}], 1],     InterpolationOrder -> 4];

im\[CapitalDelta]Physics =    FourierDST[    Table[-1./(4 - 2 Cos[x  Pi/hPhysics] - 2 Cos[y Pi/wPhysics]), {y,        hPhysics}, {x, wPhysics}]*                                                      FourierDST[ImageData[imPhysics], 1], 1];

if\[CapitalDelta]Physics =    Interpolation[    Flatten[MapIndexed[{Reverse@#2, #1} &,       im\[CapitalDelta]Physics, {2}], 1], InterpolationOrder -> 6];

When looking at the window, one will not notice any formulas. But this time, the solution of the Poisson equation has more overall structures.

Plot3D[Evaluate[if\[CapitalDelta]Physics[x, y]], {x, 1, wPhysics}, {y,    1, hPhysics}, MeshFunctions -> {#3 &}, PlotPoints -> 80]

But the refracted light will make physics equations. The resulting window is perfect for the entrance of, say, physics department buildings.

Image[ListConvolve[-{{0, -1, 0}, {-1, 4, -1}, {0, -1, 0}},     im\[CapitalDelta]Physics]] // ImageAdjust

Now that we’re at the end of this post, let us mention that one can also implement the Laplacian through a mirror, rather than a window. See Michael Berry’s paper from 2006, “Oriental Magic Mirrors and the Laplacian Image” (see this article as well). Modifying the above function for refracting a light ray to reflecting a light ray and assuming a mostly flat mirror surface, we see the Laplacian of the mirror surface in the reflected light intensity.

Clear[f, g]; f[x_, y_] := f0 + \[CurlyEpsilon] g[x, y]; normalize = #/Sqrt[#.#] &; \[ScriptCapitalR]R =   Module[{dir0 = normalize[{0, 0, 1}], normal, \[Phi], P0, direction2,      dir, \[Sigma]},    normal = normalize[Grad[z - f[x, y], {x, y, z}]];    \[Phi] = ArcCos[normal.dir0];     P0 = {x, y, f[x, y]};     direction2 = normalize[dir0 - normal.dir0 normal];     dir = Cos[\[Phi]] normal - Sin[\[Phi]] direction2 ;    \[Sigma] = (Z - P0[[3]])/dir[[3]];    P0 + \[Sigma] dir ] // Simplify

Series[1/Det[     Grad[Most[\[ScriptCapitalR]R], {x, y}]], {\[CurlyEpsilon], 0,     1}] // Simplify

Making transparent materials and mirrors of arbitrary shape, now called free-form optics, is considered the next generation of modern optics and will have wide applications in science, technology, architecture and art (see here). I think that a few years from now, when the advertising industry recognizes their potential, we will see magic windows with their unexpected images behind them everywhere.


Download this post as a Computable Document Format (CDF) file. New to CDF? Get your copy for free with this one-time download.
22 Aug 14:33

Where has all the Zika gone?

by Cohen, J.
21 Aug 16:41

08/21/17 PHD comic: 'Eclipse'

Piled Higher & Deeper by Jorge Cham
www.phdcomics.com
Click on the title below to read the comic
title: "Eclipse" - originally published 8/21/2017

For the latest news in PHD Comics, CLICK HERE!

21 Aug 08:36

Saturday Morning Breakfast Cereal - Noah's Ark

by tech@thehiveworks.com


Click here to go see the bonus panel!

Hovertext:
I mean, the rainbow thing is just a phenomenon due to refraction. How self-centered do you have to be to think it's just about you?

New comic!
Today's News:

Geeks! Just about 10 days to get in your submissions for BAHFest Seattle and BAHFest San Francisco. We're going to have some really awesome geeks on stage, so please submit soon for your chance to be part of things!

17 Aug 08:36

Saturday Morning Breakfast Cereal - Come Together

by tech@thehiveworks.com


Click here to go see the bonus panel!

Hovertext:
Frankly, I'm surprised there are only three mushroom clouds.

New comic!
Today's News:

They only have a limited quanted, so while get whilst they're gettable!

17 Aug 08:35

Eclipse Science

I was thinking of observing stars to verify Einstein's theory of relativity again, but I gotta say, that thing is looking pretty solid at this point.
11 Aug 09:40

The Kolmogorov option

by Scott

Andrey Nikolaevich Kolmogorov was one of the giants of 20th-century mathematics.  I’ve always found it amazing that the same man was responsible both for establishing the foundations of classical probability theory in the 1930s, and also for co-inventing the theory of algorithmic randomness (a.k.a. Kolmogorov complexity) in the 1960s, which challenged the classical foundations, by holding that it is possible after all to talk about the entropy of an individual object, without reference to any ensemble from which the object was drawn.  Incredibly, going strong into his eighties, Kolmogorov then pioneered the study of “sophistication,” which amends Kolmogorov complexity to assign low values both to “simple” objects and “random” ones, and high values only to a third category of objects, which are “neither simple nor random.”  So, Kolmogorov was at the vanguard of the revolution, counter-revolution, and counter-counter-revolution.

But that doesn’t even scratch the surface of his accomplishments: he made fundamental contributions to topology and dynamical systems, and together with Vladimir Arnold, solved Hilbert’s thirteenth problem, showing that any multivariate continuous function can be written as a composition of continuous functions of two variables.  He mentored an awe-inspiring list of young mathematicians, whose names (besides Arnold) include Dobrushin, Dynkin, Gelfand, Martin-Löf, Sinai, and in theoretical computer science, our own Leonid Levin.  If that wasn’t enough, during World War II Kolmogorov applied his mathematical gifts to artillery problems, helping to protect Moscow from German bombardment.

Kolmogorov was private in his personal and political life, which might have had something to do with being gay, at a time and place when that was in no way widely accepted.  From what I’ve read—for example, in Gessen’s biography of Perelman—Kolmogorov seems to have been generally a model of integrity and decency.  He established schools for mathematically gifted children, which became jewels of the Soviet Union; one still reads about them with awe.  And at a time when Soviet mathematics was convulsed by antisemitism—with students of Jewish descent excluded from the top math programs for made-up reasons, sent instead to remote trade schools—Kolmogorov quietly protected Jewish researchers.

OK, but all this leaves a question.  Kolmogorov was a leading and admired Soviet scientist all through the era of Stalin’s purges, the Gulag, the KGB, the murders and disappearances and forced confessions, the show trials, the rewritings of history, the allies suddenly denounced as traitors, the tragicomedy of Lysenkoism.  Anyone as intelligent, individualistic, and morally sensitive as Kolmogorov would obviously have seen through the lies of his government, and been horrified by its brutality.  So then why did he utter nary a word in public against what was happening?

As far as I can tell, the answer is simply: because Kolmogorov knew better than to pick fights he couldn’t win.  He judged that he could best serve the cause of truth by building up an enclosed little bubble of truth, and protecting that bubble from interference by the Soviet system, and even making the bubble useful to the system wherever he could—rather than futilely struggling to reform the system, and simply making martyrs of himself and all his students for his trouble.

There’s a saying of Kolmogorov, which associates wisdom with keeping your mouth shut:

“Every mathematician believes that he is ahead of the others. The reason none state this belief in public is because they are intelligent people.”

There’s also a story that Kolmogorov loved to tell about himself, which presents math as a sort of refuge from the arbitrariness of the world: he said that he once studied to become a historian, but was put off by the fact that historians demanded ten different proofs for the same proposition, whereas in math, a single proof suffices.

There was also a dark side to political quietism.  In 1936, Kolmogorov joined other mathematicians in testifying against his former mentor in the so-called Luzin affair.  By many accounts, he did this because the police blackmailed him, by threatening to reveal his homosexual relationship with Pavel Aleksandrov.  On the other hand, while he was never foolish enough to take on Lysenko directly, Kolmogorov did publish a paper in 1940 courageously supporting Mendelian genetics.


It seems likely that in every culture, there have been truths, which moreover everyone knows to be true on some level, but which are so corrosive to the culture’s moral self-conception that one can’t assert them, or even entertain them seriously, without (in the best case) being ostracized for the rest of one’s life.  In the USSR, those truths were the ones that undermined the entire communist project: for example, that humans are not blank slates; that Mendelian genetics is right; that Soviet collectivized agriculture was a humanitarian disaster.  In our own culture, those truths are—well, you didn’t expect me to say, did you? 🙂

I’ve long been fascinated by the psychology of unspeakable truths.  Like, for any halfway perceptive person in the USSR, there must have been an incredible temptation to make a name for yourself as a daring truth-teller: so much low-hanging fruit!  So much to say that’s correct and important, and that best of all, hardly anyone else is saying!

But then one would think better of it.  It’s not as if, when you speak a forbidden truth, your colleagues and superiors will thank you for correcting their misconceptions.  Indeed, it’s not as if they didn’t already know, on some level, whatever you imagined yourself telling them.  In fact it’s often because they fear you might be right that the authorities see no choice but to make an example of you, lest the heresy spread more widely.  One corollary is that the more reasonably and cogently you make your case, the more you force the authorities’ hand.

But what’s the inner psychology of the authorities?  For some, it probably really is as cynical as the preceding paragraph makes it sound.  But for most, I doubt that.  I think that most authorities simply internalize the ruling ideology so deeply that they equate dissent with sin.  So in particular, the better you can ground your case in empirical facts, the craftier and more conniving a deceiver you become in their eyes, and hence the more virtuous they are for punishing you.  Someone who’s arrived at that point is completely insulated from argument: absent some crisis that makes them reevaluate their entire life, there’s no sense in even trying.  The question of whether or not your arguments have merit won’t even get entered upon, nor will the authority ever be able to repeat back your arguments in a form you’d recognize—for even repeating the arguments correctly could invite accusations of secretly agreeing with them.  Instead, the sole subject of interest will be you: who you think you are, what your motivations were to utter something so divisive and hateful.  And you have as good a chance of convincing authorities of your benign motivations as you’d have of convincing the Inquisition that, sure, you’re a heretic, but the good kind of heretic, the kind who rejects the divinity of Jesus but believes in niceness and tolerance and helping people.  To an Inquisitor, “good heretic” doesn’t parse any better than “round square,” and the very utterance of such a phrase is an invitation to mockery.  If the Inquisition had had Twitter, its favorite sentence would be “I can’t even.”

If it means anything to be a lover of truth, it means that anytime society finds itself stuck in one of these naked-emperor equilibriums—i.e., an equilibrium with certain facts known to nearly everyone, but severe punishments for anyone who tries to make those facts common knowledge—you hope that eventually society climbs its way out.  But crucially, you can hope this while also realizing that, if you tried singlehandedly to change the equilibrium, it wouldn’t achieve anything good for the cause of truth.  If iconoclasts simply throw themselves against a ruling ideology one by one, they can be picked off as easily as tribesmen charging a tank with spears, and each kill will only embolden the tank-gunners still further.  The charging tribesmen don’t even have the assurance that, if truth ultimately does prevail, then they’ll be honored as martyrs: they might instead end up like Ted Nelson babbling about hypertext in 1960, or H.C. Pocklington yammering about polynomial-time algorithms in 1917, nearly forgotten by history for being too far ahead of their time.

Does this mean that, like Winston Smith, the iconoclast simply must accept that 2+2=5, and that a boot will stamp on a human face forever?  No, not at all.  Instead the iconoclast can choose what I think of as the Kolmogorov option.  This is where you build up fortresses of truth in places the ideological authorities don’t particularly understand or care about, like pure math, or butterfly taxonomy, or irregular verbs.  You avoid a direct assault on any beliefs your culture considers necessary for it to operate.  You even seek out common ground with the local enforcers of orthodoxy.  Best of all is a shared enemy, and a way your knowledge and skills might be useful against that enemy.  For Kolmogorov, the shared enemy was the Nazis; for someone today, an excellent choice might be Trump, who’s rightly despised by many intellectual factions that spend most of their time despising each other.  Meanwhile, you wait for a moment when, because of social tectonic shifts beyond your control, the ruling ideology has become fragile enough that truth-tellers acting in concert really can bring it down.  You accept that this moment of reckoning might never arrive, or not in your lifetime.  But even if so, you could still be honored by future generations for building your local pocket of truth, and for not giving falsehood any more aid or comfort than was necessary for your survival.


When it comes to the amount of flak one takes for defending controversial views in public under one’s own name, I defer to almost no one.  For anyone tempted, based on this post, to call me a conformist or coward: how many times have you been denounced online, and from how many different corners of the ideological spectrum?  How many people have demanded your firing?   How many death threats have you received?  How many threatened lawsuits?  How many comments that simply say “kill yourself kike” or similar?  Answer and we can talk about cowardice.

But, yes, there are places even I won’t go, hills I won’t die on.  Broadly speaking:

  • My Law is that, as a scientist, I’ll hold discovering and disseminating the truth to be a central duty of my life, one that overrides almost every other value.  I’ll constantly urge myself to share what I see as the truth, even if it’s wildly unpopular, or makes me look weird, or is otherwise damaging to me.
  • The Amendment to the Law is that I’ll go to great lengths not to hurt anyone else’s feelings: for example, by propagating negative stereotypes, or by saying anything that might discourage any enthusiastic person from entering science.  And if I don’t understand what is or isn’t hurtful, then I’ll defer to the leading intellectuals in my culture to tell me.  This Amendment often overrides the Law, causing me to bite my tongue.
  • The Amendment to the Amendment is that, when pushed, I’ll stand by what I care about—such as free scientific inquiry, liberal Enlightenment norms, humor, clarity, and the survival of the planet and of family and friends and colleagues and nerdy misfits wherever they might be found.  So if someone puts me in a situation where there’s no way to protect what I care about without speaking a truth that hurts someone’s feelings, then I might speak the truth, feelings be damned.  (Even then, though, I’ll try to minimize collateral damage.)

When I see social media ablaze with this or that popular falsehood, I sometimes feel the “Galileo urge” washing over me.  I think: I’m a tenured professor with a semi-popular blog.  How can I look myself in the mirror, if I won’t use my platform and relative job safety to declare to the world, “and yet it moves”?

But then I remember that even Galileo weighed his options and tried hard to be prudent.  In his mind, the Dialogue Concerning the Two Chief World Systems actually represented a compromise (!).  Galileo never declared outright that the earth orbits the sun.  Instead, he put the Copernican doctrine, as a “possible view,” into the mouth of his character Salviati—only to have Simplicio “refute” Salviati, by the final dialogue, with the argument that faith always trumps reason, and that human beings are pathetically unequipped to deduce the plan of God from mere surface appearances.  Then, when that fig-leaf turned out not to be wide enough to fool the Church, Galileo quickly capitulated.  He repented of his error, and agreed never to defend the Copernican heresy again.  And he didn’t, at least not publicly.

Some have called Galileo a coward for that.  But the great David Hilbert held a different view.  Hilbert said that science, unlike religion, has no need for martyrs, because it’s based on facts that can’t be denied indefinitely.  Given that, Hilbert considered Galileo’s response to be precisely correct: in effect Galileo told the Inquisitors, hey, you’re the ones with the torture rack.  Just tell me which way you want it.  I can have the earth orbiting Mars and Venus in figure-eights by tomorrow if you decree it so.

Three hundred years later, Andrey Kolmogorov would say to the Soviet authorities, in so many words: hey, you’re the ones with the Gulag and secret police.  Consider me at your service.  I’ll even help you stop Hitler’s ideology from taking over the world—you’re 100% right about that one, I’ll give you that.  Now as for your own wondrous ideology: just tell me the dogma of the week, and I’ll try to make sure Soviet mathematics presents no threat to it.

There’s a quiet dignity to Kolmogorov’s (and Galileo’s) approach: a dignity that I suspect will be alien to many, but recognizable to those in the business of science.


Comment Policy: I welcome discussion about the responses of Galileo, Kolmogorov, and other historical figures to official ideologies that they didn’t believe in; and about the meta-question of how a truth-valuing person ought to behave when living under such ideologies.  In the hopes of maintaining a civil discussion, any comments that mention current hot-button ideological disputes will be ruthlessly deleted.

10 Aug 09:06

Saturday Morning Breakfast Cereal - Faith Healing

by tech@thehiveworks.com


Click here to go see the bonus panel!

Hovertext:
Logically, next he should ask for a cure for the placebo effect.

New comic!
Today's News:

Hey, you probably haven't heard of it, but me and Kelly wrote a book called Soonish, and we'd appreciate if you checked it out.

07 Aug 14:13

Complex cellular logic computation using ribocomputing devices

by Alexander A. Green

Complex cellular logic computation using ribocomputing devices

Nature 548, 7665 (2017). doi:10.1038/nature23271

Authors: Alexander A. Green, Jongmin Kim, Duo Ma, Pamela A. Silver, James J. Collins & Peng Yin

Synthetic biology aims to develop engineering-driven approaches to the programming of cellular functions that could yield transformative technologies. Synthetic gene circuits that combine DNA, protein, and RNA components have demonstrated a range of functions such as bistability, oscillation, feedback, and logic capabilities. However, it remains challenging to scale up these circuits owing to the limited number of designable, orthogonal, high-performance parts, the empirical and often tedious composition rules, and the requirements for substantial resources for encoding and operation. Here, we report a strategy for constructing RNA-only nanodevices to evaluate complex logic in living cells. Our ‘ribocomputing’ systems are composed of de-novo-designed parts and operate through predictable and designable base-pairing rules, allowing the effective in silico design of computing devices with prescribed configurations and functions in complex cellular environments. These devices operate at the post-transcriptional level and use an extended RNA transcript to co-localize all circuit sensing, computation, signal transduction, and output elements in the same self-assembled molecular complex, which reduces diffusion-mediated signal losses, lowers metabolic cost, and improves circuit reliability. We demonstrate that ribocomputing devices in Escherichia coli can evaluate two-input logic with a dynamic range up to 900-fold and scale them to four-input AND, six-input OR, and a complex 12-input expression (A1 AND A2 AND NOT A1*) OR (B1 AND B2 AND NOT B2*) OR (C1 AND C2) OR (D1 AND D2) OR (E1 AND E2). Successful operation of ribocomputing devices based on programmable RNA interactions suggests that systems employing the same design principles could be implemented in other host organisms or in extracellular settings.

07 Aug 14:13

Big names in statistics want to shake up much-maligned P value

by Dalmeet Singh Chawla

Big names in statistics want to shake up much-maligned P value

Nature 548, 7665 (2017). http://www.nature.com/doifinder/10.1038/nature.2017.22375

Author: Dalmeet Singh Chawla

One of scientists’ favourite statistics — the P value — should face tougher standards, say leading researchers.

07 Aug 09:01

Cose che ho scoperto oggi #25

Jacopo.bertolotti

Factoids worth knowing.

il verbo to debunk deriva da quello di una contea della North Carolina, Buncombe. Nel 1820 il deputato di Buncombe Felix Walker fece un discorso senza capo né coda al Congresso. Quando gli altri parlamentari gli dissero di smettere, Walker ribatté che doveva fare un discorso “per Buncombe”. “Buncombe” divenne un sinonimo di discorso senza capo né coda, e il termine venne poi accorciato in “bunkum” e poi “bunk”. E se c'è un bunk, ci deve essere qualcuno che debunka.

Fonte: Wordsmith.

02 Aug 14:18

The digital native is a myth

Jacopo.bertolotti

If you are surprised you either don't know technology, or you don't know the new generations, or both.

The digital native is a myth

Nature 547, 7664 (2017). doi:10.1038/547380a

The younger generation uses technology in the same ways as older people — and is no better at multitasking.

02 Aug 14:07

The physics of data

by Jeff Byers

Nature Physics 13, 718 (2017). doi:10.1038/nphys4202

Author: Jeff Byers

Physicists are accustomed to dealing with large datasets, yet they are fortunate in that the quality of their experimental data is very good. The onset of big data has led to an explosion of datasets with a far more complex structure — a development that requires new tools and a different mindset.

02 Aug 14:07

The invention of dimension

by Steven T. Bramwell

Nature Physics 13, 820 (2017). doi:10.1038/nphys4229

Author: Steven T. Bramwell

Assigning dimensions to physical quantities is not just for practicality. Steven T. Bramwell reflects on the deeper physical connotations of it all.

02 Aug 14:07

The thing about data

Nature Physics 13, 717 (2017). doi:10.1038/nphys4238

The rise of big data represents an opportunity for physicists. To take full advantage, however, they need a subtle but important shift in mindset.

02 Aug 13:26

Tailoring Correlations of the Local Density of States in Disordered Photonic Materials

by F. Riboli, F. Uccheddu, G. Monaco, N. Caselli, F. Intonti, M. Gurioli, and S. E. Skipetrov

Author(s): F. Riboli, F. Uccheddu, G. Monaco, N. Caselli, F. Intonti, M. Gurioli, and S. E. Skipetrov

The frequency correlations of local density of states of a material are linked to its microscopic features.


[Phys. Rev. Lett. 119, 043902] Published Tue Jul 25, 2017

02 Aug 12:44

La salute disuguale

by Roberta Villa

I l tram numero 3 che attraversa Torino gode di una sorprendente popolarità anche al di fuori del capoluogo piemontese. Il suo percorso di 45 minuti è mostrato ai congressi di medicina e di economia: mostra come, allontanandosi dalle ville ai piedi della collina e dirigendosi verso il quartiere industriale delle Vallette, i residenti perdano cinque mesi di vita per ogni chilometro percorso. I primi hanno un’aspettativa superiore agli 82 anni, gli altri non raggiungono i 78.

Lo stesso accade a Londra: se chi abita nella zona di Oxford Circus può sperare di arrivare in media fino a 96 anni di età, a ogni fermata di metropolitana più in là, andando verso le aree suburbane, questa ottimistica prospettiva diminuisce. Procedendo lungo la Jubilee line, da Westminster verso est, l’aspettativa di vita cala di un anno a ogni fermata.

L’andamento è inverso negli Stati Uniti, dove le famiglie più benestanti preferiscono vivere fuori città. Il risultato però è simile: prendendo la metropolitana dal centro di Washington fino a Montgomery County, nel Maryland, l’aspettativa di vita aumenta di circa un anno e mezzo per ogni miglio percorso.

Può sembrare ovvio che i più ricchi stiano meglio dei più poveri, e che vivano più a lungo, ma il quadro dell’analisi dei dati di sopravvivenza rispetto alla zona di residenza nelle città occidentali mostra che in realtà il fenomeno va ben al di là della possibilità di usufruire del necessario per vivere e curarsi. Non si riferisce solo ai casi estremi, è graduale e progressivo e, soprattutto, “spalmato” a tutti i livelli della gerarchia sociale. In altre parole, ci riguarda tutti.

Benessere e salute
Non è solo questione di PIL: Paesi più poveri ma più egualitari possono avere indicatori di salute migliori di altri più ricchi e tecnologicamente dotati, ma gravati da pesanti disparità. Tipico è il caso di Cuba, che ha una mortalità infantile inferiore a quella degli Stati Uniti (per quanto riguarda la mortalità tra gli adulti, poi, la situazione è migliore degli Stati Uniti in altri 144 Paesi meno ricchi).

Certo, ai livelli più bassi della scala sociale, nei Paesi in cui i più poveri non hanno da mangiare, non hanno una casa o non possono permettersi nemmeno le cure essenziali, sono i soldi a fare la differenza. Ma quando tutto questo è garantito, le differenze di salute resistono, e seguono un gradiente continuo che non dipende solo dal reddito, ma anche dall’istruzione, e più genericamente dal gradino che si occupa nella scala sociale.

Da una posizione più elevata deriverebbe infatti il senso di controllo sulla propria vita che permette da un lato di fare scelte più salutari e dall’altro di subire meno uno stress psicosociale che è relativo al contesto in cui si vive, e non può quindi essere valutato solo in termini assoluti: la stessa situazione socioeconomica che garantisce un certo prestigio e relativo benessere in un villaggio indiano sarebbe considerata degradante e fonte di grave malessere in una baraccopoli alla periferia di una metropoli occidentale.

salute-1
Immagine: Spencer Platt/ Getty Images.

Chi ha messo in luce questo fenomeno è un distinto e sorridente signore inglese, un medico che da molti decenni ha appeso il camice al chiodo per dedicarsi a combattere “le cause delle cause delle malattie”, come le chiama lui: Michael Marmot, nominato Sir nel 2000 dalla regina Elisabetta. Oltre a essere professore di epidemiologia e salute pubblica al University College London, a capo dell’Institute of Health Equity dello stesso ateneo e presidente della World Medical Association, ha guidato centinaia di altri ricercatori in tutto il mondo nell’impresa di esaminare le disuguaglianze di salute a livello nazionale o sovranazionale, cercare di individuarne le cause e soprattutto studiare le modalità per contrastarle. I rapporti derivati da questo lavoro e stilati per conto dei governi o dell’Organizzazione mondiale della Sanità vengono spesso chiamati con il suo nome, Marmot Review.

Marmot ha calcolato per esempio che se tutti gli ultratrentenni in Inghilterra avessero lo stesso basso livello di mortalità di quelli laureati, la mortalità totale prima dei 75 anni si potrebbe quasi dimezzare. È stato lui a coniare l’espressione Status Syndrome, titolo di un suo famoso libro del 2005, per descrivere il legame tra malattia e condizione sociale. Il testo raccoglie i risultati di studi chiamati Whitehall, dal nome della strada di Londra dove si trova il Ministero dell’interno e molti suoi uffici, usato per metonimia come sinonimo dell’amministrazione pubblica del Regno Unito. Le ricerche infatti esaminavano le condizioni di salute dei dipendenti del Ministero a tutti i suoi livelli.

Fino alla pubblicazione dei risultati del primo lavoro, alla fine degli anni Settanta, si pensava che le persone con maggiore responsabilità fossero soggette a maggior stress, e di conseguenza subissero più danni al cuore. Il lavoro di Marmot dimostrò il contrario, prima su 18.000 dipendenti del Ministero di sesso maschile e poi, vent’anni dopo, su oltre 10.000, un terzo dei quali erano donne. Anche questi risultati hanno lo stesso impatto visivo delle mappe del metrò: dal portiere all’ingresso, a salire ai piani alti, di promozione in promozione nei ranghi della pubblica amministrazione, l’aspettativa di vita sale, in maniera graduale e continua, soprattutto grazie al calo della mortalità per cause cardiovascolari.

I fattori di rischio tradizionali spiegavano solo un terzo circa del fenomeno: il fumo era infatti più frequente ai livelli più bassi, ma la colesterolemia, per esempio, era maggiore ai piani alti. I tassi di ipertensione e obesità cambiavano poco tra impiegati di prima fascia e alti funzionari del Ministero.

Secondo Marmot, queste differenze si spiegano soprattutto come effetto di uno stress psicosociale, determinato dalla percezione di avere minore controllo sulla propria vita rispetto a chi si trova ai livelli più alti. Non c’è solo la povertà assoluta, ma anche quella relativa, per cui nel ricco Occidente una persona, anche se ha un tetto sopra la testa, può vivere come frustrante il fatto di non potersi permettere mai di andare in vacanza o di non poter mandare all’università i figli, si logora per la precarietà del proprio lavoro o il fatto di ritenerlo poco gratificante. Le aspettative crescono progressivamente, e la competizione che permea la nostra società contribuisce ad alimentarle.

Uno studio ha evidenziato l’impatto dei determinanti socioeconomici sulla mortalità: ipertensione, obesità, abuso di alcol incidono meno della posizione professionale sull’aspettativa di vita.

Tutto questo può riflettersi sull’aspettativa di vita in vari modi: indirettamente, perché chi è insoddisfatto più facilmente fuma, beve troppo o cerca conforto nel cibo; direttamente, perché nei casi estremi queste situazioni possono favorire l’insorgenza di disturbi mentali, come la depressione, a loro volta legati a una maggiore mortalità, o indurre effetti biologici che oggi stanno cominciando a diventare misurabili.

Con un’espressione ad effetto si potrebbe dire che tra qualche anno il basso livello socioeconomico delle persone si potrà leggere nel sangue: nelle fasce sociali più basse si ritrovano infatti in media livelli più alti di indici infiammatori, indicatori che negli ultimi anni sono stati correlati a un aumentato di rischio di moltissime malattie (dall’ipertensione al diabete, dalla cardiopatia ischemica al cancro). Ugualmente sono più elevati i tassi di cortisolo, strettamente dipendenti dallo stress, a loro volta mediatori di fattori di rischio per molte malattie croniche. Scendendo a un piano molecolare, tutto questo si può riflettere perfino nel DNA, perché queste situazioni, soprattutto a causa degli stili di vita che portano con sé, possono comportare alterazioni epigenetiche, per esempio diversi livelli di metilazione da cui dipende la regolazione dei geni.

Causa, contesto e gerarchia
Per spiegare la maggior parte delle differenze nei Paesi più ricchi non possono essere chiamate in causa ragioni legate alla carenza di beni essenziali, che non mancano agli impiegati di livello inferiore, e in molti casi nemmeno un diverso accesso alle cure, garantito a tutti dal National Health Service britannico o dal Servizio sanitario italiano. Per le carenze di questi sistemi i più ricchi possono prenotare con maggiore facilità una visita o un esame a pagamento, ma questo non basta a spiegare la disparità che si registra ovunque, sebbene sia senza dubbio più drammatica negli Stati Uniti, tema a cui The Lancet ha recentemente dedicato un’intera serie di articoli.

Le cure intervengono comunque quando il danno è fatto. Sono importanti ma non agiscono sulle “cause delle cause”, che interessano di più Marmot. Colpisce per esempio che l’aspettativa di vita degli uomini di una zona popolare di Glasgow, Calton, sia inferiore di ben dieci anni a quella della media indiana, sebbene nel quartiere della città scozzese in genere tutti abbiano una casa, accesso al cibo, all’acqua potabile e ai servizi sanitari essenziali.

salute-2
Immagine: Spencer Platt/ Getty Images.

Qui entrano in gioco fattori diversi: alcol, droga, violenza, disturbi mentali, tutti fattori strettamente legati al contesto sociale in cui le persone vivono e che spiegano come mai chi cresce in una elegante casa in stile georgiano a Lenzie, il quartiere ricco di Glasgow, possa contare su almeno vent’anni di vita in più rispetto a chi è nato nella zona popolare di Calton. I determinanti sociali della salute non escludono infatti gli stili di vita, ma si intrecciano con questi. A New York si dice che maggiore è la metratura dell’appartamento, minore sarà la taglia del vestito, per sottolineare come l’obesità è molto più frequente nelle classi sociali più basse, meno attente alla cura del proprio corpo, a svolgere una regolare attività fisica e a seguire una sana alimentazione. Anche il fumo, la più importante causa di morte prevenibile, un tempo diffusa a tutti i livelli, è oggi un’abitudine più comune nelle classi sociali meno abbienti: nel Regno Unito solo il 9% degli adulti nelle famiglie dei professionisti fuma, contro il 31% di quelle di lavoratori manuali. Eppure gli stili di vita da soli non bastano.

Un importante studio pubblicato su Lancet a gennaio di quest’anno ha messo a confronto l’impatto sulla mortalità dei determinanti socioeconomici rispetto ai fattori di rischio classici che l’Organizzazione Mondiale della Sanità ha preso di mira con l’obiettivo di abbattere del 25% entro il 2025 la mortalità per malattie croniche non trasmissibili, come quelle cardiovascolari, il diabete o i tumori. Analizzando i dati derivanti da 48 studi indipendenti che hanno coinvolto 1,7 milioni di persone, i ricercatori del progetto europeo Lifepath guidati da Paolo Vineis, epidemiologo italiano dell’Imperial College di Londra, hanno dimostrato che nel determinare l’aspettativa di vita, ipertensione arteriosa, obesità, abuso di alcol contano meno della posizione professionale.

Educazione alla salute
Non è solo questione di reddito, ma anche di istruzione. Mentre negli Stati Uniti si festeggia per il fatto che si è raggiunto l’obiettivo di far scendere al 15% la percentuale di fumatori in media tra gli adulti, i Centers for Disease Control and Prevention di Atlanta fanno notare che, tra le persone che hanno solo un diploma di scuola superiore, il tasso di fumatori resta superiore al 40%. Sono soprattutto le popolazioni rurali a studiare di meno e fumare di più. E non a caso l’incidenza di tumori al polmone tra i residenti in queste zone è inaspettatamente superiore del 18-20% a quella di chi vive in città, a conferma che il fattore fumo resta sempre molto dominante rispetto all’inquinamento, che pure è da contrastare.

Per questo Marmot insiste sull’importanza dell’educazione: garantire a tutti un livello di istruzione adeguato fin dalla scuola dell’infanzia. L’esperienza di tanti Paesi dimostra che i miglioramenti sono possibili e producono enormi effetti in termini di salute. Il titolo del rapporto finale della commissione dell’OMS guidata da Marmot è ambizioso: “Closing the gap in a generation”, colmare il divario in una generazione. Il sottotitolo indica il percorso: raggiungere l’equità nella salute agendo sui determinanti sociali della salute. L’invito è rivolto alla finanza e alla politica, ma riguarda tutte le categorie che possono agire nel loro piccolo o grande ruolo. Ne “La salute disuguale” Marmot racconta quel che fanno i pompieri di Birmingham o le donne maori, gli amministratori di piccole e grandi città o le associazioni dei medici. Tutto può contribuire a creare comunità resilienti. Con quello che lui chiama “ottimismo basato sulle prove”, occorre mettere in pratica tutti gli interventi possibili per ridurre le disuguaglianze di salute a tutti i livelli, da quelli estremi a quelli meno drammatici, che pure, come si è visto, possono avere un impatto importante in termini di benessere e aspettativa di vita. La ragione è semplice: tutte le disparità di salute che si possono evitare sono ingiuste. E basta questo per dire che vanno combattute.

L'articolo La salute disuguale proviene da il Tascabile.

02 Aug 10:40

Saturday Morning Breakfast Cereal - Perpetual Motion

by tech@thehiveworks.com


Click here to go see the bonus panel!

Hovertext:
Also, have you tried shining a flashlight into a solar panel?

New comic!
Today's News:

Hey! Geeks of the west coast. One month left to get in your submission for BAHFest San Francisco or BAHFest Seattle!

01 Aug 10:15

Generalized optical memory effect

by Gerwin Osnabrugge
Gerwin Osnabrugge, Roarke Horstmeyer, Ioannis N. Papadopoulos, Benjamin Judkewitz, Ivo M. Vellekoop
The optical memory effect is a well-known type of tilt/tilt wave correlation that is observed in coherent fields, allowing control over scattered light through thin and diffusive materials. Here we show that the optical memory effect is a special case of a more general class of combined shift/tilt ... [Optica 4, 886-892 (2017)]
31 Jul 12:29

Debunking sì, debunking no

by .mau.

Roberta Villa su Stradeonline racconta di un nuovo studio di Fabiana Zollo e del gruppo di Walter Quattrociocchi sull’effetto in Facebook delle echo chamber (le camere ad eco, i gruppi di amici in rete ma non solo) dove senti dire solo le cose che piacciono a te. Non solo sono impermeabili agli accessi esterni, ma i tentativi di debunking, cioè di smontare razionalmente le credenze false, di solito sortiscono l’effetto opposto. Peggio ancora i “blastatori”, coloro che assumono un atteggiamento molto aggressivo: generano cori da stadio tra i loro fan, ma non spostano di una virgola i consensi.

Io ho il vantaggio di fare divulgazione matematica, e quindi la gente scappa prima. Ma che si può fare in genere? Non lo so. Io è da un pezzo che non entro in queste questioni, perché ho capito che non c’è sordo peggiore di chi non vuole sentire; se escono argomenti nuovi vado a cercare dati e li fornisco, ma nulla di più. Non ho tempo per impelagarmi in risse verbali inutili. Credo però che una cosa utile sia produrre informazioni, che è cosa diversa dal darle. Dando per perso chiunque abbia opinioni tagliate con l’accetta (ce ne sono da entrambe le parti, altrimenti i blastatori non avrebbero tutto quel successo) resta il grosso di chi non sa le cose, e seminare in rete i mezzi per informarsi può giovare loro. È poi vero che se la stampa non facesse da cassa di risonanza certi atteggiamenti acritici avrebbero meno successo: ma è anche vero che io avrei meno possibilità di vedere cosa c’è fuori dalla mia bolla informativa, e forse sarebbe peggio.

Voi che ne pensate?