The Importance of Mathematical Literacy

The other day, I saw this amusing posting on Headlines from a Mathematically Literate World. I chuckled and moved on but then I read an article saying that American students had slipped to 26th place in world-wide mathematics test results and thought maybe those headlines were more generally applicable than I thought.

Still later the same day I saw an O’Reilly Factor1 clip in which he was in high dudgeon over the fact that arrests for marijuana DUIs in Washington state, which recently legalized pot for personal use, had increased 50%. This was a perfect example of the point the Mathematical Headlines post was trying to make.

What, exactly, does “increased 50%” really mean? Did it go from 2 arrests to 3 or did it go from 10,000 to 15,000 or something else? A 50 per cent increase sounds really bad but there’s no way of knowing from the statement alone whether it really is or not. This is where mathematical literacy comes in. Mathematically literate people would ask themselves what that 50% increase really meant and whether or not it should have public policy implications. The mathematically illiterate simply get stampeded in whatever direction someone using such a phrase desires.

I have no doubt, given Irreal’s subject matter, that most people reading this are in fact mathematically literate but consider the implications of having a large percentage of the population that is not. Among other things, we end up with bad laws and suboptimal public policy.

Footnotes:

1

Bill O’Reilly is a conservative American commentator who, among other things, opposes the legalization of pot on public health grounds. The O’Reilly Factor is his nightly Fox show.

Posted in General | Leave a comment

Stacking the Deck

Just when I thought the surveillance establishment couldn’t get more Orwellian or that I couldn’t get more cynical, I came across this story. Here in the U.S. we have the infamous no-fly list. It’s right out of Kafka: no one knows how they got on the list or even if they are on the list. They just know that the airlines say they can’t fly. Once you get on the list, you can’t get off. Everything about the list and how it operates is secret.

Finally, one of the list’s targets has struck back and managed to get her case into court. Because the target is not an American citizen the State Department has kept her from testifying by refusing to give her a visa. Her daughter, who is an American citizen was also scheduled to testify. Unfortunately, she was visiting her mother in Kuala Lumpur and when she tried to board a plane home she discovered that the Department of Homeland Security (DHS) had placed her on the no-fly list as well.

When the judge queried the government’s lawyers about this they denied that it had happened and said the daughter was lying. It turned out, though, that it was the government that was lying. Malaysia Airlines, against DHS protocol, supplied the daughter with the DHS orders putting the lie to the government’s denials.

The link above is to a short Boing Boing story but you should follow the link to Edward Hasbrouck’s day-by-day reporting on the trial. The government’s position can only be described as surreal. At one point they insisted that publicly available information could not be introduced because the TSA considered it secret. This despite the fact that the information was available to anyone who asked. Really, the government’s actions challenged even my well entrenched cynicism.

But follow the link and see for yourself. I don’t have the words to describe what you’ll find there. Bad faith on the government’s part is the least of it.

I should note, by the way, that I have no way of knowing whether placing the mother on the no-fly list was justified or not. My objection is the government’s lying and obstruction.

Posted in General | Tagged | Leave a comment

SSL and the NSA

If you’re a crypto-nerd or even have a passing interest, you might enjoy Matthew Green‘s post speculating on how the NSA breaks SSL. We know, courtesy of Edward Snowden’s leaked documents, that they’ve had some sort of success with SSL but we’re not sure exactly what it is or how they’re doing it. It could be anything from stealing/coercing server keys to an actual crypto break.

Green breaks his analysis into two parts:

  1. Attacks using known techniques
  2. Tin foil hat speculations

The really interesting parts, of course, are the tin foil hat speculations. These range from breaking RSA keys, breaking RC4, new side-channel attacks, and other even more far out things. Green and others believe that if the NSA has indeed broken a crypto system it is most likely RC4. It’s an aging system with several known weaknesses and is probably ripe for major attacks.

The post doesn’t tell us what the NSA knows or what their capabilities with respect to SSL are, of course, but it’s an informed and interesting read on the security of SSL and how an organization like the NSA might go about trying to defeat it.

Posted in General | Tagged , | Leave a comment

Why Python Replaced Scheme in MIT’s Undergraduate CS Course

If you who have spent anytime at all on Irreal, you know that I’m a huge fan of SICP (Structure and Interpretation of Computer Programs) the seminal work by Gerry Sussman and Hal Abelson that was used for years in MIT’s EECS 6.01. MIT’s decision to replace SICP and Scheme with Python was met with cries of outrage from many in the CS community.

Chas Emerick attended an impromptu talk at the International Lisp Conference at MIT by Gerry Sussman on why MIT replaced Scheme with Python and reports on Sussman’s remarks. As I’ve said before, I find myself less than persuaded but it’s nice to get Sussman’s take on the matter; he surely knows more about it than me or most others commenting on it. If, like me, you believe SICP to be one of the best CS book every written and that learning its lessons—and Scheme, for that matter—is required for anyone who wants to be a competent programmer, you will find Sussman’s remarks interesting.

Posted in General | Tagged , | 2 Comments

Spies and Other Cartoons

Those of a certain age will remember spy vs. spy, a cartoon in Mad Magazine dating from 1961 but extant to this day (here’s an example of the original by Antonio Prohías). I haven’t thought of the cartoon in years but was reminded of it when I read this thought provoking post by John Quiggin. In it, Quiggin proffers the notion that spies never discover anything useful and that they don’t for game theoretic reasons (basically their masters can never be sure about whether the information obtained is true or disinformation from the other side). On the other hand, they are very efficient at suppressing domestic opposition.

He has compelling evidence on his side. One need look no further than the NSA. Despite a massive surveillance effort, they have been unable to point to any credible evidence that those efforts have been fruitful in stopping any terrorist attacks. Indeed, they failed to discover the Boston bombers plot despite the fact that the Tsarnaev brothers left indications of their plans laying all over the place.

Quiggin notes that the myth of spies, as we think of them today, is a relatively recent phenomenon and that it owes more to literature than it does to reality. He argues that even celebrated cases like Mata Hari and the Rosenbergs were probably over reactions caused by panic.

You may or may not agree with the central thesis that spying is mostly a waste of time and resources but Quiggin’s history of the myth of the spy is entertaining and informative. Well worth a few minutes and perhaps you’ll find yet another reason to reject the NSA/GCHQ/<other TLA organizations’> claims that they need to destroy our privacy to protect us from terrorists.

Posted in General | Tagged | Leave a comment

SBCL 1.1.14 Is Out

The excellent developers of Steel Bank Common Lisp have posted the latest release of the system. It compiled, passed the extended tests, and installed without issue on both my iMac and MacBook Pro. This release has a bunch of enhancements, some optimizations, and bug fixes. You can get the details at the News page and download it at the Download page. As always, the latest binaries are only available for Linux. If, like me, you’re running some other system, you’ll have to compile from source. Fortunately, that’s easy to do and the Getting Started page has detailed instructions.

It’s amazing that every month, month after month, the developers post a new release that most often has many enhancements and optimizations. It’s a lot of work and they deserve kudos for their hard and excellent work. If you’re looking for an excellent Common Lisp system it’s hard to beat SBCL.

Posted in General | Tagged , | Leave a comment

Working with Images in Emacs

Over at Bytopia, Alex has a beautiful post on using Emacs to work with images. Alex is trying to train an OCR classifier to recognize characters from grocery store receipts. He started by scanning 4 or 5 receipts and breaking the characters into individual images. Next he needed to assign the proper character to each image.

That’s where Emacs comes in. First, he uses turn-on-iimage-mode to turn a buffer of a directory of image files into a buffer of the corresponding images. A nice thing about this mode is that when the cursor is on an image you can still read the image file name. That and a bit of Elisp allow Alex to specify the character in each image (or delete the image if it’s garbled) and prepend the character to the file name. With a little more massaging, these images are used to train the classifier.

It’s astounding how little code all this takes. Head on over to Bytopia to see how he does it. Once again, Emacs and just a little Elisp easily solves a problem that would take considerable effort if one where to do it with a script or, worse, as a C application.

Posted in General | Tagged | Leave a comment

House Members Press Boehner on NSA

In a bit of good news, The Hill is reporting that U.S. House of Representatives members are pressing Speaker of the House John Boehner to allow a vote on reining in the NSA. If the members don’t get their vote, they are threatening to attach the bill as an amendment to “must-pass legislation.”

Although Boehner generally supports the NSA, the members have him boxed in and it looks as if the House might see some action. The bill, the USA Freedom Act, was filed by Rep. Jim Sensenbrenner, who, significantly, was one of the authors of the Patriot Act upon which the NSA relies for authority to conduct mass surveillance on Americans.

In July, the House narrowly defeated a bill by Rep. Justin Amash that would have halted the NSA’s mass phone call metadata collection. Despite the opposition of the House leadership and heavy lobbying by the administration, Amash’s bill was defeated by only 7 votes and many members who voted against it are now ready to support Sensenbrenner’s bill.

Meanwhile in the Senate, Judiciary Committee chairman Senator Patrick Leahy is offering his own version of the Freedom Act as an alternative to Senator Feinstein’s “business as usual” bill that supports the NSA’s activities. As I wrote recently, Feinstein’s bill has been voted out of the Senate Intelligence Committee so it’s unclear what will happen. Now would be a good time to let your Congressmen know that you support efforts to put an end to the NSA’s extra-constitutional spying on Americans.

Posted in General | Tagged | Leave a comment

Hyphenating Word Phrases

Some word phrases should be hyphenated. For example, you should write “an end-to-end solution” rather than “end to end solution.”1 If you’re like me, you almost always forget about the hyphenation initially and just type “end to end” without stopping to think about the hyphenation. It’s really a pain to have to go back and add them manually. Sometimes it’s easier to just delete the phrase and retype it correctly.

I’ve done this often enough that I realized it was time to automate hyphenating the phrase after the fact. I wrote a bit of Elisp but it seemed a little too complicated so I simplified things and came up with this:

(defun jcs-dashify ()
  "Place hyphens between words in region."
  (interactive)
  (unless (use-region-p)
    (error "No region specified"))
  (replace-regexp "[ \n]+" "-" nil (region-beginning) (region-end)))

Now all I have to do is select the phrase and call jcs-dashify. As with most extensions like this, jcs-dashify is simple but helps reduce friction in my work flow. I’m sure you can do this sort of thing with most (decent) editors but Emacs makes it simple and natural. As Magnar Sveen says, one of the great about Emacs is its extensibility.

Footnotes:

1

The rules are a bit complex but this article is a good guide.

Posted in General | Tagged , | 4 Comments

A History of T

I recently ran across a fascinating history of T, a Scheme-like Lisp dialect that preceded Common Lisp, over at Paul Graham’s blog. It was written by Olin Shivers who is well-known in the Scheme community and is the founding author of scsh, a Unix shell that runs on Scheme 48.

If you’ve been reading Irreal for a while you know that I enjoy reading stories about the founding of our profession. The History of T begins in the early 1980s. Sussman and Steele had published the Lambda Papers, Steele had written his master’s thesis on the Rabbit Compiler but MIT Scheme had not yet been written. Lexical scope was considered an interesting theoretical construct but completely impractical. Shivers was a junior at Yale.

What really impressed me about this history is how most of the principals were undergraduate/graduate students. Earning a Ph.D. is all about research, of course, but here we see undergraduates and master’s students doing cutting edge research and building state-of-the-art systems.

This is really an interesting and engaging story and well worth a few minutes of your time. Most of it takes place only 30 years ago. Although that may seem like a long time to many, it’s amazing how far our field has progressed since then.

Posted in General | Tagged | Leave a comment