Monday, July 6, 2015

Geek Physics by Rhett Allain

Geek Physics: Surprising Answers to the Planet's Most Interesting Questions, by Rhett Allain, has a certain dadaist charm. Some of it is obviously intentional ("Let me explain my favorite moment of an [sic] inertia demo---a demo you can do on your own. For this example, I have two sticks of some type with some masses attached to them. I used juice boxes taped to PVC pipes."), but some of it, unfortunately, isn't.

Here's one example:

"The typical model for gravity, as developed by Newton, says that the gravitational force...is proportional to the product of the masses and inversely proportional to the square of the distance between these objects.

"As an equation, it would look like this:

"sw(t) = (0.0314 m/year)t + 4.656m"

The problem is that equation is the linear regression model of the women's records in the long jump, which sort of has something to do with gravity, but.... There are near-duplicate paragraphs, just different enough to know Allain was trying, and other typos like the moment of inertia thing above. Mostly, the book appears to be unedited posts from his Wired blog.

The topics and his approach are good; I especially enjoyed driving through a crowd of zombies modelled as a fluid dynamics problem. But the book itself isn't worth the price of admission.

Thursday, July 2, 2015

Handbook to Life in Ancient Mesopotamia

I'll give Handbook to Life in Ancient Mesopotamia by Stephen Bertman five stars, but I'm a bit conflicted about it.

In describing life in Mesopotamia, Bertman's book is very good. It left me with a feeling of understanding of the people who lived there at that time, at least as far as I can from a textbook. They are people, not dry facts. The chapters on everyday life, arts, architecture, and transportation were very good.

On the other hand, as another reviewer has said, it is rather stuffed full of lists. Further, it does specifically focus on Mesopotamia, dealing only peripherally with the surrounding civilizations (Egypt, Mittani, Hatti, the Levant, across the mountains in modern Iran). As a result, the impression of the chronology is pretty linear. Sumeria, Babylonia, and Assyria seem to be pearls on a temporal string rather than a group of cultures that interacted constantly with their surrounding cultures.

My other complaint is that Bertman occasionally goes off the rails: for example, after discussing the rather harsh punishments of Mesopotamian, especially Assyrian, justice, he writes, "It would be a facile and self-serving exercise for us who are spectators at our own permissive culture's decline to mock the efforts of ancients, however excessive, to stave off civilization's fall."

But, limiting my review to what the book is rather than what I might like it to be, I'll give it five stars. It does exactly what the title claims, very well.

Wednesday, April 22, 2015

2015 Atlanta Pen Show

Tl;dr: I went to the Atlanta Pen Show. It was fun.

I had originally planned on going to Atlanta on Friday, spending the night, and taking Saturday at the pen show, going to seminars and having a wonderful time. Then, I remembered that I'm an antisocial misanthrope with shyness issues from Texas, would be unlikely to actually speak to anyone, and that this is apparently a send-the-IRS-much-money year, so I waited until Saturday morning. I arose somewhat early, patted the Dianne, Penelope Doglington, and Zach on the head and prepared to leave. Zack glared at me and started waving his claws around; I cut the preparations short and just took off.

I hopped into the ol' 'vette and went through Section like the Four Ponies of the 'Pocalypse, leaving devastation and wreckage in my wake although I don't think anyone noticed; I whipped through Fort Payne like the North Wind, except that I was actually coming from the west; and took Rome, GA, and points Atlanta-ward like an invading army of crazed yankees driving Corvettes. However, as I didn't leave any parts behind, I assume my territorial claims have since been nullified.

Anyway, I arrived at the Wyndham about 11:45 because I'm not a morning person. That meant that I missed Susan Wirth's seminar on "How some pens can make anyone’s handwriting look good. How to find them at a Pen show," which I wanted to attend. Sigh. I did manage to avoid being dragged into the calligraphy class---that would have been like teaching a pig to talk; it wastes your time and annoys the pig. I did a quick lap of the show, which was two conference rooms and the halls between. It was packed, both with vendors and attendees. Then, I got to business.

Brian Anderson did have a Sailor King of Pen (just say it, "King of Pen"), which felt lovely and has an impressive nib. One of the things I was looking for at the show was lightweight, oversized pens, and that is one. Unfortunately, Mr. Anderson sold it to the guy standing next to me right after I finished playing with it, so I didn't spend several hundred dollars on one pen. (The rat bastard.)

On the other hand, I discovered that I don't particularly like the way Pilot Vanishing Points feel. It's a nice pen, but I no longer feel the need to look closer at one. For me, this show is the first time I've seen many of the pens I have looked at in person, and there is nothing like touching a pen and feeling its heft to judge how I would like it.

The Nock tables were occupied by a man with a terrifying beard.

Another thing that I was looking for was a reference to Parker Vacumatics. Given that they are beautiful and just feel right, and that they represent everything that is good, true, and just in the world, and that I love them, I decided I needed to get serious about collecting them, which meant learning much more about them. I was talking to Mike and Memi Turkington of M&M Pens and learned that Mike has some sort of weird fascination with Duofolds, but he suggested Geoffrey Parker, David Shepherd, and Dan Zazove's Parker Vacumatic book. Unfortunately, said book is apparently printed on unobtanium. Fortunately, they pointed me to the Pendemonium folks, who had a copy of said book for sale and it came home with me. The book is as attractive as the pens.

Overall, the show was very nice. Although vintage pens did seem to be much of the focus (something I enjoyed), there was a good mix of vintage and modern. The Franklin-Christoph booth, I believe, was doing a great business offering a wide selection of testers and custom-ground Masuyama nibs. (And Franklin-Christoph has some nice pens.) Anderson Pens also had a wide variety of different manufacturers (including the TWISBI 700 vac that followed me home). Every vendor I talked to had testers or was happy to let potential customers get their grubby mitts on their pens, including letting them dip and write. The customers, not the pens. Pens don't have fingers; they can't dip or write.

I spent a lot of time near Martin Ferguson's booth, and the other tables doing pen repair. Am I weird to think that's fun?

After the show, I stopped by Rockler Woodworking, which has some good options for pen stands, gift boxes, and zippered pen cases in their pen-turning supplies, in addition to their, you know, woodworking stuff. I had dinner at Nori Nori, eating very good sushi until I ruptured, and came home, flying like a great raven through the Georgia countryside. Except that the 'vette is red, not black, and doesn't fly.

Here endeth the saga.

Friday, April 17, 2015

Operator overloading in Rust post updated

A couple of years ago, back in 0.6 days, I wrote a post on operator overloading in Rust. I've now updated it for Rust 1.0.0-beta, which simplified the code greatly.

As a bonus, it now includes some discussion of Rust macros!

Operator overloading in Rust

Sunday, April 12, 2015

Update on rust-toys

With the release of rust 1.0.0-beta, I've received a ping about updating my code from 0.11. Unfortunately, I hit the following:

        let line : String = line.unwrap();
        let line : &str = line.as_str().trim();

The variable line coming in is a io::Result (Is it me or are there two Result types in the standard library, std::result::Result and std::io::Result?); unwrap() returns a String (or blows up), which I then need to convert to a string slice (&str) in order to trim whitespace, using something like String::as_str or Str::as_slice.

Unfortunately, that code fails to compile with:

src/bin/mk_anadict.rs:18:32: 18:40 error: use of unstable library feature 'convert': waiting on RFC revision
src/bin/mk_anadict.rs:18         let line : &str = line.as_str().trim();
                                                        ^~~~~~~~
src/bin/mk_anadict.rs:18:40: 18:40 help: add #![feature(convert)] to the crate attributes to enable

And the convert feature is not allowed in the beta release channel. (There was a fix for the error message suggestion, to prevent the compiler from showing "add #![feature..." when that won't work, but it didn't make it into the beta release.

I'm going to bail on this for the moment, until the standard library settles down a bit.

PS. Wait, what?

I realized I hadn't tried one thing: calling trim() on the String itself.

        let line : String = line.unwrap();
        let line : &str = line.trim();

It works. I don't know how.

Later. Hah. Because there is a Str implementation for String. I think. As I recall, there wasn't previously, which was why I needed to get the str explicitly.