Reviewing the TMobile G1 – aka the Google Android Phone

Once again, please don’t forget about our DonorsChoose drive! Please click in the panel to you left, and go make a donation to help schools get the supplies they need to be able to teach math!


Most people must have heard by now that about a week ago, T-mobile
released the first Android based phone, with software by Google. I’ve been using an Android as a tester for about 6 weeks, and I’m now allowed to talk about it, so I thought I’d post a review from the viewpoint of an extreme geek. Please excuse the low quality of the images; I took the pictures using my iPhone.

Obviously, there’s a bit of a conflict of interest here. Google is very proud of the Android software, and I’m very happy and proud to be a software engineer at Google. I think that my review of the phone is fair
and unbiased, but take that with a grain of salt, given my connections.

So, as I said, I’ve had the phone for about six weeks now. For a little over a year before I got my Android, I was using one of the original iPhones (not the 3g). So in a lot of things, I’m
going to compare my experiences with the Android to my experiences with the iPhone.

Overall, I love the Android. It’s not without its flaws, and some of them are fairly significant. I’ll go into details below, but the short summary of my opinion is that the software is excellent, the hardware less so.

To be honest, I think the software is really late-beta quality. It’s lacking polish, and there are a few awkward points. But overall, it’s
extremely well done. Details below the fold.

Continue reading Reviewing the TMobile G1 – aka the Google Android Phone

Margin of Error and Election Polls

Before I get to the meat of the post, I want to remind you that our
DonorsChoose drive is ending in just a couple of days! A small number of readers have made extremely generous contributions, which
is very gratifying. (One person has even taken me up on my offer
of letting donors choose topics.) But the number of contributions has been very small. Please, follow the link in my sidebar, go to DonorsChoose, and make a donation. Even a few dollars can make a
big difference. And remember – if you donate one hundred dollars or more, email me a math topic that you’d like me to write about, and I’ll
write you a blog article on that topic.

This post repeats a bunch of stuff that I mentioned in one of my basics posts last year on the margin of error. But given some of the awful rubbish I’ve heard in coverage of the coming election, I thought it was worth discussing a bit.

As the election nears, it seems like every other minute, we
hear predictions of the outcome of the election, based on polling. The
thing is, pretty much every one of those reports is
utter rubbish.

Continue reading Margin of Error and Election Polls

How Not to Do Message Integrity, featuring CBC-MAC

In my last cryptography post, I wrote about using message authentication codes
(MACs) as a way of guaranteeing message integrity. To review briefly, most ciphers
are designed to provide message confidentiality – which means that no one but the
sender and the intended receiver can see the plain-text of the message. But
ciphers that provide confidentiality don’t necessarily make any guarantees that
the message received is exactly the message that was sent. There are a good number
of cryptographic attacks that work by altering the message in transit, and
depending on the cipher, that can result in a variety of undesirable

For example, if you use DES encryption with the ECB mode of operation,
you can insert new blocks anywhere in a message that you want. By using
a replay attack (where you take encrypted blocks from other messages using
the same encryption, and resend them), an attacker can alter your messages, and
you won’t be able to detect it.

So in addition to just confidentiality, we need to provide integrity. What does integrity really mean? Basically, it expands the definition of the
decryption function. Written as a function signature, confidential message
decryption is a function decrypt : ciphertext × key → plaintext. With message integrity, we add the
option that decrypt can return a result saying that the message is invalid: decryptinteg : ciphertext × key → (plaintext | REJECT).

Continue reading How Not to Do Message Integrity, featuring CBC-MAC

Credit Default Swaps: Gambling as Insurance

So, the financial questions keep coming. I’m avoiding a lot of them, because
(A) they bore me, and (B) I’m really not the right person to ask. I try to stay
out of this stuff unless I have some clue of what I’m talking about. Rest assured, I’m not spending all of my blogging time on this; I’ve got a post on cryptographic modes of operation in progress, which I hope to have time to finish after work this evening.

But there’s one question that keeps coming in, involving the nature of things
like so-called “Credit Default Swaps”, which I thought I’d explained, but
apparently my explanation wasn’t particularly clear. So I thought I should fill
in that gap, and strengthen the main weakness in my earlier explanations.

The basic question is: “What’s a credit default swap?”; I think what people
really want to know is both what, specifically, a credit default swap is, and how
the system surrounding credit default swaps and related monstrosities work.

Credit default swaps are interesting – in the same way that a Rube Goldberg
device is interesting. They are in a fundamental sense very simple, but the
structure that’s built up around them is so bizarre, so ridiculous on the face of
it, that when you look at it in retrospect, it’s hard to believe that anyone
actually thought that it was a good idea, or that it could ever work.

Continue reading Credit Default Swaps: Gambling as Insurance

Stupid Economic Comparisons at the New York Times


This is just a short gripe at the NYT, and a feature
that they included in today’s Op-Ed section.

It purports to compare how the economy does under democratic versus
republican administrations. They claim that they’re computing the returns
on a 10,000 dollar stock investment under 40 years of republican
administrations and 40 years of democratic administrations, in the 80 years
since 1929.

Continue reading Stupid Economic Comparisons at the New York Times

Infinity is NOT a number

Writing this blog, I get lots of email. One of the things that I get over and over again is a particular kind of cluelessness about the idea of infinity. I get the same basic kind of stupid flames in a lot of different forms: arguments about Cantor’s diagonalization; arguments about
calculus (which I’ve never even written about!); arguments about
surreal numbers; and worst of all, arguments about nullity.

Continue reading Infinity is NOT a number

Friday Recipe: Stuffed Flank Steak

This is a recipe I created just a couple of weeks ago. I saw a beautiful Angus beef flank steak on sale, and wanted to find something to do with it. I came up with this idea of stuffing it. Amusingly, the day after it, a recipe appeared in the New York Times food section for a stuffed flank steak. But there’s really nothing common between the two except the name.

The basic idea behind this is that flank steak has a terrific flavor, but it can be a bit tough. So I wanted to do something to it that would
make it tender, while taking advantage of that terrific flavor. The idea I came up with was to flatten it out by butterflying and pounding with a tenderizer, and to marinate it with some wine. After doing that, I had a very large, very thin piece of steak. So I wanted to roll it up – and if you’re rolling, you’ve got a great chance to put something between the layers of the roll. I used a bit of bacon in the recipe – it’s important not to give in to temptation and use more. Bacon has a very strong flavor, and you want to complement the flavor of the flank steak, not overwhelm it.

Continue reading Friday Recipe: Stuffed Flank Steak