Mark Chu-Carroll (aka MarkCC) is a PhD Computer Scientist, who works for Google as a Software Engineer. My professional interests center on programming languages and tools, and how to improve the languages and tools that are used for building complex software systems.
In my post yesterday, I briefly mentioned the problem with simulations
as a replacement for animal testing. But I've gotten a couple of self-righteous
emails from people criticizing that: they've all argued that given the
quantity of computational resources available to us today, of course
we can do all of our research using simulations. I'll quote a typical example
from the one person who actually posted a comment along these lines:
This doesn't in any way reduce the importance of informing people about
the alternatives to animal testing. It strikes me as odd that the author of
the blogpost is a computer scientist, yet seems uninformed about the fact,
that the most interesting alternatives to animal testing are coming from that
field. Simulation of very complex systems is around the corner, especially
since computing power is becoming cheaper all the time.
That said, I also do think it's OK to voice opposition to animal testing,
because there *are* alternatives. People who ignore the alternatives seem to
have other issues going on, for example a sort of pleasure at the idea of
power over others - also nonhumans.
I'll briefly comment on the obnoxious self-righteousness of this idiot.
They started off their comment with the suggestion that the people who are
harassing Dr. Ringach's children aren't really animal rights
protestors; they're people paid by opponents of the AR movement in order to
discredit it. And then goes on to claim that anyone who doesn't see the
obvious alternatives to animal testing really do it because they
get their rocks off torturing poor defenseless animals.
This post is off-topic for this blog, but there are some things that
I just can't keep quiet about.
Via my friend and fellow ScienceBlogger Janet over at Adventures in
Ethics and Science, I've heard about some absolutely disgraceful
antics by an animal rights group. To be clear, in what follows, I'm not saying that all animal rights folks are scumbags: I'm pointing out that there's a specific group of animal rights folks who are sickening monsters for what they're doing.
The background: There's a neurobiologist named Dario Ringach. Professor
Ringach used to do research using primates. Back in 2006, when he did
that, animal rights targeted him, and his children. The did things
like vandalize his house, put on masks and bang on his childrens windows, and
protest at his children's schools. Professor Ringach disappointingly but
understandably gave in, and abandoned his research in order to protect his
family.
Fast forward a couple of years. Last week, Dr. Ringach, along with Janet and
several other people, participated in a public dialogue about animal
research at UCLA. Dr. Ringach spoke about why animal research is important. That's
all that he did: present an explanation of why animal research is
important.
For that, for being willing to participate in a discussion, for saying
something the animals right people didn't like, the animal rights thugs
have decided to protest. That's bad enough: to stage disruptions against a
professor simply because he said something that you didn't like. No, that's
not enough for these rat bastard assholes. They're going to stage protests at
his children's school. They're going to harass his children
to punish him for speaking when they want him to shut up.
I don't care what you think of animal rights. I don't care what you think
about any topic. Harassment isn't an acceptable response to speech.
And no matter what, children should be off limits. Even if their father were
everything that the AR people claim that he is: if he really were a person who
tortured and murdered people for fun, going after his children would be
a disgusting, disgraceful, evil thing to do. To do it just because
he dared to talk about something they don't like? These people deserve
to be publicly condemned, and criminally prosecuted. Threats and harassment
have no place in public discourse.
Personally, I'm a strong supporter of animal research. Of course it's
important to minimize any pain and suffering that is inflicted on the animals
used in research - but people who do the research, and the organizations that
oversee them, are extremely careful about ensuring that. And animal research
shouldn't be done for trivial purposes: the work must be important enough to
justify subjecting living creatures to it. But the results are worth the cost.
I can say for certain that I wouldn't be alive today without the
results of animal research: I had life-saving surgery using a technique that
was developed using animals. I rely on medications that were originally
developed using animal models. My mother is alive today because of animal
research: she's diabetic, and relies on both insulin and medications which
were developed using animal research. My father survived cancer for 15 years
because of animal research: his cancer was treated using a radiation therapy
technique that was generated using animal research. My sister isn't a cripple
today, because of animal research. She had severe scoliosis which would have
crippled her, but which was corrected using a surgical technique developed
using animals. My wife would be terribly ill without animal research: she's
got an autoimmune disorder that damages the thyroid; people with it need to
take thyroid hormone replacements, developed - all together now - using animal
research. I could easily go on: there's probably barely a person alive today
who hasn't benefited dramatically from animal research. It's an essential
tool of science.
While I'm ranting: one of the common responses from the animal rights
people is that we don't need animals for experimentation: we can use computer
simulation, which will (supposedly) be more accurate, because we can use human
biology in the simulation, whereas animals used as models are often
significantly different from humans, so that the results of tests on animals
don't translate well to humans.
Everyone must, by now, have heard of the programmers mantra: GIGO: garbage
in, garbage out. A simulation is only as good as the knowledge of the person
who wrote it. You can only simulate what you understand. The problem
with computer models for medical tests is that most of the time, we don't
know how things work. The research is being done on animals precisely
because we don't know enough about it to simulate it. For one simple example,
consider cancer. There's a lot of animal research done where we basically
deliberately give cancer to an animal. We can't simulate that, because the way
that cancers grow and spread is still a mystery. We don't understand exactly
what triggers a cancer; we don't completely understand the biological
processes going on in cancer cells, or exactly what the difference between a
cancer cell and a normal cell is. We can't simulate that. Or, rather,
we can, but only as an experiment with a real-world counterpart to verify it.
In any case, getting back to the original point: it really doesn't matter
whether you agree with animal research or not. The important point here is
that using intimidation, threats, and harassment the way these AR groups are
doing is absolutely, unequivocably wrong. And to extend it from the
scientist to his children is beyond wrong. It's downright evil. And
to harass both the scientist and his children not for doing the
research that they object to, but for talking about why that research
is important? I simply do not have the words to express how repugnant it is.
Transatlantic, "The Whirlwind (Part 4) - A Man Can Feel":
a track from the new Transatlantic album. Transatlantic is
a supergroup: it's made of members of Marillion (Pete Trevawas on
bass), the Flower Kings (Roine Stolte, guitar), Spock's Beard (Neil
Morse, vocals and keyboards), and Dream Theater (Mike Portnoy, drums).
In general, I don't like supergroups; they're usually more of a
commercial stunt than anything else. But I love Transatlantic;
and this album is fantastic - it's a bit less smooth
than some of Transatlantic's earlier work, but the writing is
fantastic. Highly recommended.
Do Make Say Think, "Fredericia": a very typical track
by one of my favorite post-rock ensembles. In sound, they're
somewhere in between Mogwai and Godspeed, with a bit of classical
influence.
Marillion, "Man of a Thousand Faces": absolutely classic
Marillion. One of the things that Yes used to do that I love
is slow builds. They start with a simple pattern, and repeat
over and over, adding another layer each repetition. This song is
the only time that I recall Marillion doing it, and it's
amazing.
Abigail's Ghost, "Gemini Man": a big disappointment. A bunch
of people recommended Abigail's Ghost to me as a great neo-prog
band. I find them incredibly dull. Pretty much the only time I
hear them is when they come up randomly, because I never choose
to listen to them.
The Flying Bulgar Klezmer Band, "Sam": wonderful jazz-influenced
Klezmer. When they're actually playing Klezmer, FBKB is fantastic.
Unfortunately, they often introduce songs with a sort of beat-inspired
poetry recitation, which is just annoying.
The Andy Statman Klezmer Orchestra, "Galitzianer Chusid":
more Klezmer! Andy Statman plays very traditional klezmer. This
one I feel a special connection to. My mother's family are Litvaks,
and my father was a Galitzianer. (That is, ashkenazi Jews from
Lithuania and Galacia, respectively.) Traditionally, the Litvaks
were wealthier, and looked down on the Galitzianers. My grandparents
used to tell my mother that if she weren't good, she'd grow up
and marry a Galitzianer. And she did - and they were happily married
for 44 years.
Peter Gabriel, "The Rhythm of the Heat": utterly wonderful
old Peter Gabriel. Security is still my favorite of his albums,
and this is my favorite track off the album.
Kansas, "Distant Vision": Often when an old band gets back
together, it's pure tripe. And Kansas has reformed itself several
times over the years, only to produce more tripe. This time they
got it right. This album sounds like what you'd expect the old
Kansas to sound like if they were writing in the 2000's. It's
not exactly like their old stuff - it's grown over time - but it's
got all of the beauty, complexity, and quality of their older stuff.
The lead singers voice has suffered a bit with age; he can't quite
pull off some of the stuff he tries to do. But it's good stuff
overall.
Parallel or 90 Degrees, "Entry Level": Andy Tillison has
been very busy lately, coming out with new albums from both
Po90 and the Tangent. Of the two, I think that the new Po90 is
the better album - I think it's absolutely terrific.
Roine Stolte, "Spirit of the Rebel": the leader of
the Flower Kings recorded a solo album, which was intended to
be a tribute to the pop bands he grew up listening to. But Stolte
being Stolte, even when he's trying to play pop and R&B,
he still manages to play better prog than 9 out of 10 prog bands.
It's definitely on the pop side, much less challenging that
tFK, but it's really good stuff.
For a lot of people, I seem to have become the go-to blogger for
information theory stuff. I really don't deserve it: Jeff Shallit at
Recursivity knows a whole lot more than I do. But I do my best.
Anyway, several people pointed out that over at the Disco Institute,
resident Legal Eagle Casey Luskin has started posting an eight-part
series on how the Kitzmiller case (the legal case concerning the teaching of
intelligent design in Dover PA) was decided wrong. In Kitzmiller, the
intelligent design folks didn't just lose; they utterly humiliated themselves.
But Casey has taken it on himself to demonstrate why, not only did they
not make themselves look like a bunch of dumb-asses, but they
in fact should have won, had the judge not been horribly biased against them.
The last major property of a chaotic system is topological mixing. You can
think of mixing as being, in some sense, the opposite of the dense periodic
orbits property. Intuitively, the dense orbits tell you that things that are
arbitrarily close together for arbitrarily long periods of time can have
vastly different behaviors. Mixing means that things that are arbitrarily far
apart will eventually wind up looking nearly the same - if only for a little
while.
Let's start with a formal definition.
As you can guess from the name, topological mixing is a property defined
using topology. In topology, we generally define things in terms of open sets
and neighborhoods. I don't want to go too deep into detail - but an
open set captures the notion of a collection of points with a well-defined boundary
that is not part of the set. So, for example, in a simple 2-dimensional
euclidean space, the contents of a circle are one kind of open set; the boundary is
the circle itself.
Now, imagine that you've got a dynamical system whose phase space is
defined as a topological space. The system is defined by a recurrence
relation: sn+1 = f(sn). Now, suppose that in this
dynamical system, we can expand the state function so that it works as a
continous map over sets. So if we have an open set of points A, then we can
talk about the set of points that that open set will be mapped to by f. Speaking
informally, we can say that if B=f(A), B is the space of points that could be mapped
to by points in A.
The phase space is topologically mixing if, for any two open spaces A
and B, there is some integer N such that fN(A) ∩ B &neq; 0. That is, no matter where you start,
no matter how far away you are from some other point, eventually,
you'll wind up arbitrarily close to that other point. (Note: I originally left out the quantification of N.)
Now, let's put that together with the other basic properties of
a chaotic system. In informal terms, what it means is:
Exactly where you start has a huge impact on where you'll end up.
No matter how close together two points are, no matter how long their
trajectories are close together, at any time, they can
suddenly go in completely different directions.
No matter how far apart two points are, no matter how long
their trajectories stay far apart, eventually, they'll
wind up in almost the same place.
All of this is a fancy and complicated way of saying that in a chaotic
system, you never know what the heck is going to happen. No matter how long
the system's behavior appears to be perfectly stable and predictable, there's
absolutely no guarantee that the behavior is actually in a periodic orbit. It
could, at any time, diverge into something totally unpredictable.
Anyway - I've spent more than enough time on the definition; I think I've
pretty well driven this into the ground. But I hope that in doing so, I've
gotten across the degree of unpredictability of a chaotic system. There's a
reason that chaotic systems are considered to be a nightmare for numerical
analysis of dynamical systems. It means that the most miniscule errors
in any aspect of anything will produce drastic divergence.
So when you build a model of a chaotic system, you know that it's going to
break down. No matter how careful you are, even if you had impossibly perfect measurements,
just the nature of numerical computation - the limited precision and roundoff
errors of numerical representations - mean that your model is going to break.
From here, I'm going to move from defining things to analyzing things. Chaotic
systems are a nightmare for modeling. But there are ways of recognizing when
a systems behavior is going to become chaotic. What I'm going to do next is look
at how we can describe and analyze systems in order to recognize and predict
when they'll become chaotic.
So, remember back in December, I wrote a post about a Cantor crank
who had a Knol page supposedly refuting Cantor's diagonalization?
This week, I foolishly let myself get drawn into an extended conversation
with him in comments. Since it's a comment thread on an old post that had been inactive for close to two months before this started, I assume most people haven't followed it. In
an attempt to salvage something from the time I wasted with him, I'm going to
share the discussion with you in this new post. It's entertaining, in a pathetic sort of way; and it's enlightening, in that it's one of the most perfect demonstrations of the behavior of a crank that I've yet encountered. Enjoy!
I'm going to edit for formatting purposes, and I'll interject a few
comments, but the text of the messages is absolutely untouched - which you can
verify, if you want, by checking the comment thread on the original post. The
actual discussion starts with this comment, although there's
a bit of content-free back and forth in the dozen or so comments before that.
During his life, he suffered from dreadful depression. He was mocked by
his mathematical colleagues, who didn't understand his work. And after his
death, he's become the number one target of mathematical crackpots.
As I've mentioned before, I get a lot of messages either from or
about Cantor cranks. I could easily fill this blog with nothing but
Cantor-crankery. (In fact, I just created a new category for Cantor-crankery.) I generally try to ignore it, except for that rare once-in-a-while that there's something novel.
A few days ago, via Twitter, a reader sent me a link to a new monstrosity
that was posted to arxiv, called Cantor vs Cantor. It's novel and amusing. Still wrong,
of course, but wrong in an amusingly silly way. This one, at least, doesn't quite
fall into the usual trap of ignoring Cantor while supposedly refuting him.
You see, 99 times out of 100, Cantor cranks claim to have
some construction that generates a perfect one-to-one mapping between the
natural numbers and the reals, and that therefore, Cantor must have been wrong.
But they never address Cantors proof. Cantors proof shows how, given any
purported mapping from the natural numbers to the real, you can construct at example
of a real number which isn't in the map. By ignoring that, the cranks' arguments
fail: Cantor's method still generates a counterexample to their mappings. You
can't defeat Cantor's proof without actually addressing it.
Of course, note that I said that he didn't quite fall for the
usual trap. Once you decompose his argument, it does end up with the same problem. But he at least tries to address it.
It's been quite a while since my last chaos theory post. I've
been caught up in other things, and I've needed to do some studying. Based
on a recommendation from a commenter, I've gotten another book on Chaos
theory, and it's frankly vastly better than the two I was using before.
Anyway, I want to first return to dense periodic orbits in chaotic
systems, which is what I discussed in the previous chaos theory
post. There's a glaring hole in that post. I didn't so much get it
wrong as I did miss the fundamental point.
If you recall, the basic definition of a chaotic system is
a dynamic system with a specific set of properties:
Sensitivity to initial conditions,
Dense periodic orbits, and
topological mixing
The property that we want to focus on right now is the
dense periodic orbits.
In the Haskell stuff, I was planning on moving on to some monad-related
stuff. But I had a reader write in, and ask me to write another
post on data structures, focusing on a structured called a
zipper.
A zipper is a remarkably clever idea. It's not really a single data
structure, but rather a way of building data structures in functional
languages. The first mention of the structure seems to be a paper
by Gerard Huet in 1997, but as he says in the paper, it's likely that this was
used before his paper in functional code --- but no one thought to formalize it
and write it up. (In the original version of this post, I said the name of the guy who first wrote about zippers was "Carl Huet". I have absolutely no idea where that came from - I literally had his paper on my lap as I wrote this post, and I still managed to screwed up his name. My apologies!)
It also happens that zippers are one of the rare cases of data structures
where I think it's not necessarily clearer to show code. The concept of
a zipper is very simple and elegant - but when you see a zippered tree
written out as a sequence of type constructors, it's confusing, rather
than clarifying.
A lot of people have been sending me links to a numerology article,
in which yet another numerological idiot claims to have identified the
date of the end of the world. This time, the idiot claims that it's going to
happen on May 21, 2011.
I've written a lot about numerology-related stuff before. What makes this
example particularly egregious and worth writing about is that it's not just
an article on some bozo's internet website: this is an article from the
San
Francisco Chronicle, which treats a pile of numerological bullshit as if it's
completely respectable and credible.
As I've said before: the thing about numerology is that there are so many
ways of combining numbers together that if you're willing to spend enough
time searching, you can find some way of producing any result that you want. This
is pretty much a classic example of that.