#ifndef nsBlah_h_
#define nsBlah_h__
at the top
Amazon released a free iPhone application for reading Kindle e-books only yesterday, and already a critical consensus seems to be emerging. Feature-wise, the application is undeniably spare, with no inbuilt Amazon store and no full-text search—to name just two of its deficits—but it implements enough of the Kindle’s functionality to make it a usable substitute, in a pinch. As a ploy to encourage purchases of actual Kindling, its release seems a smart move by the book giant.
I own a first-generation Kindle and an iPhone, also first-generation, and I beg to differ with these lukewarm appraisals. In every regard that matters to me, the iPhone Kindle application affords a better reading experience than the Kindle itself. I do not foresee reading another book on Amazon’s device. You can have it for the price of a good reading recommendation.
Last October, in an attempt to convert one type of pointer to another, a task that calls for a static_cast in C++ terminology, I made an eensy-weensy typo, and the results were so cute that I had to let the whole world know. The whole Internet, at least.
Four months later, I’m delighted to announce that I have the highest Google PageRank for the term static_cats:
Here’s the twitter update in full:
C++ mavens will know of other breeds: dynamic_cats, const_cats, and reinterpret_cats. If you’ve read Old Possum’s Book (or seen the musical Cats), then practical_cats and jellicle_cats may also spring to mind.
What feline characteristics would you impute to static, dynamic, const, and reinterpret cats? If the functions practical_cast and jellicle_cast were added to the C++ standard, what would you have them do?
Saw a presentation last year in cs547 about this technology, so I’m aware that a slightly different configuration of the “Happy” and “Jazz” sliders might have produced an interpretation a little less schizoid. But what would be the fun in that? I for one welcome this new dawn of angst-free music that MSR and Songsmith have ushered in.
At a housewarming party this weekend I had the good fortune to chat with someone as much a fan of Radiohead as I am. I say “good fortune” sincerely, but conversations about bands always kind of fluster me; inevitably the other person starts naming favorite songs, and I just come up empty-handed. It’s not a question I give much thought.
I might be more inclined to produce an answer on the spot if not for the memory of a similar conversation that took place at a high school public speaking tournament. At the awards ceremony I wore my scary bear t-shirt on stage with the other finalists (who were still in their suits), which was pretty awesome in addition to being tacky because I ended up winning the tournament. After the ceremony two girls came up to me and asked about the shirt, and whether I had any favorite Radiohead songs. Anticipating what they wanted to hear—poorly—I said, “Oh, I don’t know, ‘Creep’?” and with an exchange of disappointed looks the girls wandered off.
The day after the housewarming party, back safe inside my fortress of obscurity, I spent some time hunting through my collection in the hope of identifying, once and for all, its rarest gems. Boredom overtook me well before I made it through all four hundred some odd tracks, but I did find a couple of items worth sharing.
First is a concert outtake of “Big Ideas (Don’t Get Any)” from 2002 that makes me smile every time:
Second is a b-side called “The Amazing Sounds of Orgy” off the Pyramid Song EP. If the drum kick-in at 0:32 doesn’t rock you, crank up tha volume:
The girl I was talking with mentioned “Talk Show Host,” a song that appeared on the Romeo+Juliet soundtrack and the Street Spirit single album. Here’s a live version I happened to have:
Today is Martin Luther King, Jr., Day, a federal holiday in the United States, a celebration of a man even more brilliant, even more complex, far less idealistic, so much more pragmatic than the portrait habitually painted by the mainstream media. The man whose dream we recall today was not a dreamer. King was interested in what would work, and that singularity of purpose is what connects him most unmistakably with the man who tomorrow takes the presidential oath of office.
I have two bits of Kingdom to share with you. The first is a speech, King’s last. The second is a passage (or two) from Taylor Branch’s Pulitzer prize-winning history Parting the Waters: America in the King Years, that draws a distinction between King’s and Gandhi’s rationales for nonviolence.
Been reading this:
Elementary stuff so far, but simplicity is often the cost of precision, and Ted Cohen’s prose is nothing if not precise. Here he explains the title:
It seems obviously true that a metaphor ‘A is B’ induces one to think of A as B, and this leads to new thoughts about A. How this happens is a wonderful mystery, and the ability to do it, to “see” A as B, is an indispensable human ability I am calling the talent for metaphor.
An important special case of this talent, for Cohen, is the ability to see oneself as another person. The identification of A with B, where A is I and B you, then, becomes a sort of archetypal metaphor whose grasp is essential to the grasp of any other. Unfortunately, Cohen seems so impressed with his “wonderful mystery” that he’s content to leave it unexamined:
I am claiming only that some times, for some people, in some circumstances, it is incumbent upon one to attempt metaphorical identification. Which are those times, those people, those circumstances? I do not think any rule can be given for this.
Though I’ve only just started, I must say I’m curious to see how the book will survive this seeming crippling of its central thesis. Perhaps a whole new thesis will emerge; this one, for what it’s worth, has my vote:
A leading aim of many metaphor-makers is the communication of some feelings they have about the subjects of their metaphors, and the often hoped-for inducement of similar feelings in those who grasp their metaphors.
This afternoon, on a hunch, I wrote a short C++ program to compute Fibonacci numbers. Hardly a remarkable accomplishment, but here’s the catch: by the time this program begins executing, its result has already been computed.
Just to be sure we’re speaking the same language, you may want to review the mathematical definition of the Fibonacci sequence. We define the infinite series according to the following rules:
Thus , and likewise
,
,
, &c. My program takes
ARG as a compile-time parameter and prints ARG at execution time. For example:
> g++ -DARG=40 fib.cc -o fib40
> ./fib40
102334155
A slightly more roundabout way of compiling programs with g++ is to generate the assembly code and then assemble it:
> g++ -S -DARG=40 fib.cc
> g++ fib.s -o fib40
> ./fib40
102334155
Think of the intermediate file fib.s as containing a version of the original program stripped of all abstractions. Each line corresponds to a single machine instruction, and all that remains is to translate this barely human-readable shorthand into the binary language the processor understands.
Now, I’m sure you’ll agree that is a pretty peculiar number, a number you wouldn’t expect to find lurking inside
fib.s unless my earlier claim were true—unless the result of the fib40 program really had been computed before fib40 began executing. It would be like finding your social security number written in blood on the bathroom mirror at the scene of a serial murder. You’d want answers, and you’d want them right away.
> grep -n 102334155 fib.s
22: movl $102334155, 4(%esp)
OH MY GOD THERE IT IS!! Okay, okay, just—everybody calm down. We’ll get out of here together.


Recent Comments