Once again, Sal and Friends Butcher Information Theory

I haven’t taken a look at Uncommon Descent in a while; seeing the same nonsense
get endlessly rehashed, seeing anyone who dares to express disagreement with the
moderators get banned, well, it gets old. But then… Last week, DaveScott (which is, incidentally, a psueudonym!) decided to retaliate against my friend and fellow ScienceBlogger Orac, by “outing” him, and publishing his real name and employer.
Why? Because Orac had dared to criticize the way that a potential, untested
cancer treatment has been hyped recently
in numerous locations on the web, including UD.

While reading the message thread that led to DaveScott’s “outing” of Orac, I came
across a claim by Sal Cordova about a new paper that shows how Greg Chaitin’s work in
information theory demonstrates the impossibility of evolution. He even promoted it to
a top-level post on UD. I’m not going to provide a link to Sal’s introduction
of this paper; I refuse to send any more links UDs way. But you can find the paper at
this
site
.

Continue reading

Basics: Real Numbers

What are the real numbers?

Before I go into detail, I need to say up front that I hate the term
real number. It implies that other kinds of numbers are not real,
which is silly, annoying, and frustrating. But we’re pretty much stuck with it.

There are a couple of ways of describing the real numbers. I’m going to take you through a couple of them: first, an informal intuitive description; then an axiomatic definition, and finally, a constructive definition.

Continue reading

Basics: The Turing Machine (with an interpreter!)

As long as I’m doing all of these basics posts, I thought it would be worth
explaining just what a Turing machine is. I frequently talk about things
being Turing equivalent, and about effective computing systems, and similar things, which all assume you have some clue of what a Turing machine is. And as a bonus, I’m also going to give you a nifty little piece of Haskell source code that’s a very basic Turing machine interpreter. (It’s for a future entry in the Haskell posts, and it’s not entirely finished, but it does work!)

The Turing machine is a very simple kind of theoretical computing device. In
fact, it’s almost downright trivial. But according to everything that we know and understand about computation, this trivial device is capable of any computation that can be performed by any other computing device.

The basic idea of the Turing machine is very simple. It’s a machine that runs on
top of a tape, which is made up of a long series of little cells, each of which has a single character written on it. The machine is a read/write head that moves over the tape, and which can store a little bit of information. Each step, the
machine looks at the symbol on the cell under the tape head, and based on what
it sees there, and whatever little bit of information it has stored, it decides what to do. The things that it can do are change the information it has store, write a new symbol onto the current tape cell, and move one cell left or right.

That’s really it. People who like to make computing sound impressive often have
very complicated explanations of it – but really, that’s all there is to it. The point of it was to be simple – and simple it certainly is. And yet, it can do
anything that’s computable.

Continue reading

Friday random Ten, Feb 2

  1. Marillion, “Ocean Cloud”: Long, wonderful piece of neo-prog rock from my favorite prog band.
  2. Mogwai, “Acid Food”: Mogwai is a brilliant post-rock group, leaning more towards
    the rock than the classical. This is a slow track with vocals, with a very dark sound
    to it. Very cool.
  3. Trey Gunn Band, “Sozzle”: Eh. Trey Gunn is a brilliant touch guitar player, but
    as a composer, he’s really pretty dull.
  4. Pain of Salvation, “Lilium Cruentus (Deus Nova)”: Another bit of neo-prog; PoS is a spinoff of the Flower Kings. This is off of a very strange album… It’s a very
    pretentious piece of work. I don’t think it’s as profound as it was intended to be. But I do like it.
  5. Dirty Three, “I Really Should’ve Gone Out Last Night”: Dirty Three is one of the
    more-classical leaning post-rock ensembles; I’ve yet to find anything that they’re recorded that I think is less then brilliant.
  6. Igor Stravinsky, “Praeludium” from the Shadow Dances: A very short piece; very distinctly Stravinsky. Beautiful, and haunting.
  7. King Crimson, “People”: King Crimson from the double-trio days. Brilliant.
  8. New Grange, “Goin’ to Boston”: New Grange is a sort of accidental super-band. They’re a group of artists that all record on Alison Brown’s Compass label. For
    an anniversary of Compass, they got together to do a concert, and ended up
    forming into a band for this album. Darol Anger, Alison Brown, Mike Marshall,
    Tim O’Brien. This is a thoroughly weird track. Basically, it starts
    off as a traditional old-time tune; then it goes off into a sort of almost rap
    about the city of Boston, done against the backdrop of Darol fiddling around with the old tune.
  9. Tan Dun and the Kronos Quartet, “Earth Dance” from the Ghost Opera: Tan Dun is
    one of my favorite composers. He’s a Chinese composer, and a victim of the
    cultural revolution. His music tends to have strong influences from Chinese
    folk music blended with modern Western music. The Ghost Opera is based on
    a Chinese folk tradition where villages actually have mourning teams: when a wealthy person dies, the actually hire people to cry and scream in mourning. Villages compete to have the best mourning team.
  10. Hugh Blumenfield, “Shoot the Moon”: Hugh is an English professor from Connecticut, who does folk music on the side. He’s a fantastic song-writer, and this is one of my favorites of his songs. I’ve met Hugh in person a couple of times, and I have to say that he is a thoroughly pleasant guy.

Pathological Programming as Pathological Cooking

I’ve had a long, difficult week, so I’ve decided to pick something pointlessly
pathological for today. It’s a remarkably goofy language called “Chef”, designed by David Morgan-Mar, in which programs are recipes. Since aside from being a programming language
nutjob, I’m also a pretty good chef, combining two of my favorite things naturally has
some appeal – particularly when done in a pointlessly twisted way.

Continue reading

At last – a Carnival of Mathematics!

Finally, the math geeks of the blogosphere are going to have a carnival of our own!

Alon Levy of Abstract Nonsense (which I really need to add to my blogroll!) has taken the initiative and started the Carnival of Mathematics. The very
first edition will appear on February 9th.

If you’ve got any math-related posts, send them to Alon with “Carnival of Mathematics” on the subject line.

Basics: Sets

Sets are truly amazing things. In the history of mathematics, they’re
a remarkably recent invention – and yet, they’re now considered to be the
fundamental basis on which virtually all of mathematics is built. From simple things (like the natural numbers), to the most abstract and esoteric things (like algebras, or topologies, or categories), in modern math, they’re pretty much all understood
in terms of sets.

Continue reading

The Theory of Monads and the Monad Laws

As promised, I’m finally going to get to the theory behind monads. As a quick review, the basic idea of the monad in Haskell is a hidden transition function – a monad is, basically, a state transition function.

The theory of monads comes from category theory. I’m going to assume you know a little bit about category theory – if you have trouble with it, go take a look at my introductory posts here.

Continue reading

Basics: Syntax and Semantics

Another great basics topic, which came up in the comments from last fridays “logic” post, is the
difference between syntax and semantics. This is an important distinction, made in logic, math, and
computer science.

The short version of it is: syntax is what a language looks like; semantics is what
a language means. It’s basically the distinction between numerals (syntax) and
numbers (semantics).

Continue reading

More Monads: Stateful Programming

Time for more monads. In this article, I’m going to show you how to implement a very simple
state monad – it’s a trivial monad which allows you to use a mutable state
consisting of a single integer. Then we’ll expand it to allow a more interesting
notion of state.

Continue reading