Eagle's Path

Passion and dispassion. Choose two.

Larry Wall

2020-01-19: DocKnot 3.03

DocKnot is the software that I use to generate package documentation and web pages, and increasingly to generate release tarballs.

The main change in this release is to use IO::Uncompress::Gunzip and IO::Compress::Xz to generate a missing xz tarball when needed, instead of forking external programs (which causes all sorts of portability issues). Thanks to Slaven Rezić for the testing and report.

This release adds two new badges to README.md files: a version badge for CPAN packages pushed to GitHub, and a Debian version badge for packages with a corresponding Debian package.

This release also makes the tarball checking done as part of the release process (to ensure all files are properly included in the release) a bit more flexible by adding a distribution/ignore metadata setting containing a list of regular expressions matching files to ignore for checking purposes.

Finally, this release fixes a bug that leaked $@ modifications to the caller of App::DocKnot::Config.

You can get the latest version from the DocKnot distribution page.

2020-01-17: Term::ANSIColor 5.01

This is the module included in Perl core that provides support for ANSI color escape sequences.

This release adds support for the NO_COLOR environment variable (thanks, Andrea Telatin) and fixes an error in the example of uncolor() in the documentation (thanks, Joe Smith). It also documents that color aliases are expanded during alias definition, so while you can define an alias in terms of another alias, they don't remain linked during future changes.

You can get the latest release from CPAN or from the Term::ANSIColor distribution page.

2020-01-16: Review: Lent

Review: Lent, by Jo Walton

Publisher Tor
Copyright May 2019
ISBN 1-4668-6572-5
Format Kindle
Pages 381

It is April 3rd, 1492. Brother Girolamo is a Dominican and the First Brother of San Marco in Florence. He can see and banish demons, as we find out in the first chapter when he cleanses the convent of Santa Lucia. The demons appear to be drawn by a green stone hidden in a hollowed-out copy of Pliny, a donation to the convent library from the King of Hungary. That green stone will be central to the story, but neither we nor Girolamo find out why for some time. The only hint is that the dying Lorenzo de' Medici implies that it is the stone of Titurel.

Brother Girolamo is also a prophet. He has the ability to see the future, sometimes explicitly and sometimes in symbolic terms. Sometimes the events can be changed, and sometimes they have the weight of certainty. He believes the New Cyrus will come over the Alps, leading to the sack and fall of Rome, and hopes to save Florence from the same fate by transforming it into the City of God.

If your knowledge of Italian Renaissance history is good, you may have already guessed the relevant history. The introduction of additional characters named Marsilio and Count Pico provide an additional clue before Walton mentions Brother Girolamo's last name: Savonarola.

If, like me, you haven't studied Italian history but still think this sounds vaguely familiar, that may be because Savonarola and his brief religious rule of Florence is a topic of Chapter VI of Niccolò Machiavelli's The Prince. Brother Girolamo in Walton's portrayal is not the reactionary religious fanatic he is more often shown as, but if you know this part of history, you'll find many events of the first part of the book familiar.

The rest of this book... that's where writing this review becomes difficult.

About 40% of the way through Lent, and well into spoiler territory, this becomes a very different book. Exactly how isn't something I can explain without ruining a substantial portion of the plot. That also makes it difficult to talk about what Walton is doing in this novel, and to some extent even to describe its genre. I'll try, but the result will be unsatisfyingly vague.

Lent is set in an alternate historical universe in which both theology and magic work roughly the way that 15th century Christianity thought that they worked. Demons are real, although most people can't see them. Prophecy is real in a sense, although that's a bit more complicated. When Savonarola says that Florence is besieged by demons, he means that demons are literally arrayed against the walls of the city and attempting to make their ways inside. Walton applies the concreteness of science with its discoverable rules and careful analysis to prophecy, spiritual warfare, and other aspects of theology that would be spoilers.

Using Savonarola as the sympathetic main character is a bold choice. The historical figure is normally portrayed as the sort of villain everyone, including Machiavelli, loves to hate. Walton's version of the character is still arguably a religious fanatic, but the layers behind why he is so deeply religious and what he is attempting to accomplish are deep and complex. He has a single-minded belief in a few core principles, and he's acting on the basis of prophecy that he believes completely (for more reasons than either he or the reader knows at first). But outside of those areas of uncompromising certainty, he's thoughtful and curious, befriends other thoughtful and curious people, supports philosophy, and has a deep sense of fairness and honesty. When he talks about reform of the church in Lent, he's both sincere and believable. (This would not survive a bonfire of the vanities that was a literal book burning, but Walton argues forcefully in an afterward that this popular belief contradicts accounts from primary sources.)

Lent starts as an engrossing piece of historical fiction, pulling me into the fictional thoughts of a figure I would not have expected to like nearly as much as I did. I was not at all bored by the relatively straightforward retelling of Italian history and would have happily read more of it. The shifting of gears partway through adds additional intriguing depth, and it's fun to play what-if with medieval theology and explore the implications of all of it being literally true.

The ending, unfortunately, I thought was less successful, mostly due to pacing. Story progress slows in a way that has an important effect on Savonarola, but starts to feel a touch tedious. Then, Walton makes a bit too fast of a pivot between despair and success and didn't give me quite enough emotional foundation for the resolution. She also dropped me off the end of the book more abruptly than I wanted. I'm not sure how she could have possibly continued beyond the ending, to be fair, but still, I wanted to know what would happen in the next chapter (and the theology would have been delightfully subversive). But this is also the sort of book that's exceedingly hard to end.

I would call Lent more intriguing than fully successful, but I enjoyed reading it despite not having much inherent interest in Florence, Renaissance theology, or this part of Italian history. If any of those topics attracts you more than it does me, I suspect you will find this book worth reading.

Rating: 7 out of 10

2020-01-13: New year's haul

Accumulated book purchases for the past couple of months. A rather eclectic mix of stuff.

Becky Albertalli — Simon vs. the Homo Sapiens Agenda (young adult)
Ted Chiang — Exhalation (sff collection)
Tressie McMillan Cottom — Thick (nonfiction)
Julie E. Czerneda — This Gulf of Time and Stars (sff)
Katharine Duckett — Miranda in Milan (sff)
Sarah Gailey — Magic for Liars (sff)
Carol Ives Gilman — Halfway Human (sff)
Rachel Hartman — Seraphina (sff)
Isuna Hasekura — Spice and Wolf, Volume 1 (sff)
Elizabeth Lim — Spin the Dawn (sff)
Sam J. Miller — Blackfish City (sff)
Tamsyn Muir — Gideon the Ninth (sff)
Sylvain Neuvel — The Test (sff)
K.J. Parker — Sixteen Ways to Defend a Walled City (sff)
Caroline Criado Perez — Invisible Women (nonfiction)
Delia Sherman — The Porcelain Dove (sff)
Connie Willis — All About Emily (sff)

Several sales on books that I wanted to read for various reasons, several recommendations, one book in an ongoing series, and one earlier book in a series that I want to read.

We'll see if, in 2020, I can come closer to reading all the books that I buy in roughly the same year in which I buy them.

2020-01-11: Review: Guardians of the West

Review: Guardians of the West, by David Eddings

Series The Malloreon #1
Publisher Del Rey
Copyright April 1987
Printing October 1991
ISBN 0-345-35266-1
Format Mass market
Pages 438

Technically speaking, many things in this review are mild spoilers for the outcome of The Belgariad, the previous series set in this world. I'm not going to try to avoid that because I think most fantasy readers will assume, and be unsurprised by, various obvious properties of the ending of that type of epic fantasy.

The world has been saved, Garion is learning to be king (and navigate his domestic life, but more on that in a moment), and Errand goes home with Belgarath and Polgara to live the idyllic country life of the child he never was. That lasts a surprisingly long way into the book, with only occasional foreshadowing, before the voice in Garion's head chimes in again, new cryptic prophecies are discovered, and the world is once again in peril.

I can hear some of you already wondering what I'm doing. Yes, after re-reading The Belgariad, I'm re-reading The Malloreon. Yes, this means I'm arguably reading the same series four times. I was going through the process of quitting my job and wrapping up projects and was stressed out of my mind and wanted something utterly predictable and unchallenging that I could just read and enjoy without thinking about. A re-read of Eddings felt perfect for that, and it was.

The Malloreon is somewhat notorious in the world of epic fantasy because the plot... well, I won't say it's the same plot as The Belgariad, although some would, but it has eerie similarities. The overarching plot of The Belgariad is the battle between the Child of Light and the Child of Dark, resolved at the end of Enchanters' End Game. The kickoff of the plot of The Malloreon near the middle of this book is essentially "whoops, there was another prophecy and you have to do this all again." The similarities don't stop there: There's a list of named figures who have to go on the plot journey that's only slightly different from the first series, a mysterious dark figure steals something important to kick off the plot, and of course there is the same "free peoples of the west" versus "dictatorial hordes of the east" basic political structure. (If you're not interested in more of that in your fantasy, I don't blame you a bit and Eddings is not the author to reach for.)

That said, I've always had a soft spot for this series. We've gotten past the introduction of characters and gotten to know an entertaining variety of caricatures, Eddings writes moderately amusing banter, and the characters can be fun if you treat them like talking animals built around specific character traits. Guardians of the West moves faster and is less frustrating than Pawn of Prophecy by far. It also has a great opening section where Errand, rather than Garion, is the viewpoint character.

Errand is possibly my favorite character in this series because he takes the plot about as seriously as I do. He's fearless and calm in the face of whatever is happening, which his adult guardians attribute to his lack of understanding of danger, but which I attribute to him being the only character in the book who realizes that the plot is absurd and pre-ordained and there's no reason to get so worked up about it. He also has a casual, off-hand way of revealing that he has untapped plot-destroying magical powers, which for some reason I find hilarious. I wish the whole book were told from Errand's point of view.

Sadly, two-thirds of it returns to Garion. That part isn't bad, exactly, but it features more of his incredibly awkward and stereotyped relationship with Ce'Nedra, some painful and obvious stupidity around their attempt to have a child, and possibly the stupidest childbirth scene I've ever seen. (Eddings is aiming for humorous in a way that didn't work for me at all.) That's followed by a small war (against conservative religious fanatics; Eddings's interactions with cultural politics are odd and complicated) that wasn't that interesting.

That said, the dry voice in Garion's head was one of my favorite characters in the first series and that's even more true here when he starts speaking again. I like some of what Eddings is doing with prophecy and how it interacts with the plot. I'm also endlessly amused when the plot is pushed forward by various forces telling the main characters what to do next. Normally this is a sign of lazy writing and poor plotting, but Eddings is so delightfully straightforward about it that it becomes oddly metafictional and, at least for me, kind of fun. And more of Errand is always enjoyable.

I can't recommend this series (or Eddings in general). I like it for idiosyncratic reasons and can't defend it as great writing. There are a lot of race-based characterization, sexism, and unconsidered geographic stereotypes (when you lay the world map over a map of Europe, the racism is, uh, kind of blatant, even though Eddings makes relatively even-handed fun of everyone), and while you could say the same for Tolkien, Eddings is not remotely at Tolkien levels of writing in compensation. But Guardians of the West did exactly what I wanted from it when I picked it up, and now part of me wants to finish my re-read, so you may be hearing about the rest of the series.

Followed by King of the Murgos.

Rating: 6 out of 10

2020-01-10: Review: True Porn Clerk Stories

Review: True Porn Clerk Stories, by Ali Davis

Publisher Amazon.com
Copyright August 2009
ASIN B002MKOQUG
Format Kindle
Pages 160

The other day I realized, as a cold claw of pure fear squeezed my frantic heart, that I have been working as a video clerk for ten months.

This is a job that I took on a temporary basis for just a month or two until freelancing picked back up and I got my finances in order.

Ten months.

It has been a test of patience, humility, and character.

It has been a lesson in dealing with all humankind, including their personal bodily fluids.

It has been $6.50 an hour.

If you're wondering whether you'd heard of this before and you were on the Internet in the early 2000s, you probably have. This self-published book is a collection of blog posts from back when blogs were a new thing and went viral before Twitter existed. It used to be available on-line, but I don't believe it is any more. I ran across a mention of it about a year ago and felt like reading it again, and also belatedly tossing the author a tiny bit of money.

I'm happy to report that, unlike a lot of nostalgia trips, this one holds up. Davis's stories are still funny and the meanness fairy has not visited and made everything awful. (The same, alas, cannot be said for Acts of Gord, which is of a similar vintage but hasn't aged well.)

It's been long enough since Davis wrote her journal that I feel like I have to explain the background. Back in the days when the Internet was slow and not many people had access to it, people went to a local store to rent movies on video tapes (which had to be rewound after watching, something that customers were irritatingly bad at doing). Most of those only carried normal movies (Blockbuster was the ubiquitous chain store, now almost all closed), but a few ventured into the far more lucrative, but more challenging, business of renting porn. Some of those were dedicated adult stores; others, like the one that Davis worked at, carried a mix of regular movies and, in a separate part of the store, porn. Prior to the days of ubiquitous fast Internet, getting access to video porn required going into one of those stores and handing lurid video tape covers and money to a human being who would give you your rented videos. That was a video clerk.

There is now a genre of web sites devoted to stories about working in retail and the bizarre, creepy, abusive, or just strange things that customers do (Not Always Right is probably the best known). Davis's journal predated all of that, but is in the same genre. I find most of those sites briefly interesting and then get bored with them, but I had no trouble reading this (short) book cover to cover even though I'd read the entries on the Internet years ago.

One reason for that is that Davis is a good story-teller. She was (and I believe still is) an improv comedian, and it shows. Many of the entries are stories about specific customers, who Davis gives memorable code names (Mr. Gentle, Mr. Cheekbones, Mr. Creaky) and describes quickly and efficiently. She has a good sense of timing and keeps the tone at "people are amazingly strange and yet somehow fascinating" rather than slipping too far into the angry ranting that, while justified, makes a lot of stories of retail work draining to read.

That said, I think a deeper reason why this collection works is that a porn store does odd things to the normal balance of power between a retail employee and their customers. Most retail stories are from stores deeply embedded in the "customer is always right" mentality, where the employee is essentially powerless and has to take everything the customer dishes out with a smile. The stories told by retail employees are a sort of revenge, re-asserting the employee's humanity by making fun of the customer. But renting porn is not like a typical retail transaction.

A video clerk learns things about a customer that perhaps no one else in their life knows, shifting some of the vulnerability back to the customer. The store Davis worked at was one of the most comprehensive in the area, and in a relatively rare business, so the store management knew they were going to get business anyway and were not obsessed with keeping every customer happy. They had regular trouble with customers (the 5% of retail customers who get weird in a porn store often get weird in disgusting and illegal ways) and therefore empowered the store clerks to be more aggressive about getting rid of unwanted business. That meant the power balance between the video clerks and the customers, while still not exactly equal, was more complicated and balanced in ways that make for better (and less monotonously depressing) stories.

There are, of course, stories of very creepy customers here, as well as frank thoughts on porn and people's consumption habits from a self-described first-amendment feminist who tries to take the over-the-top degrading subject matter of most porn with equanimity but sometimes fails. But those are mixed with stories of nicer customers, which gain something that's hard to describe from the odd intimacy of knowing little about them except part of their sex life. There are also some more-typical stories of retail work that benefit from the incongruity between their normality and the strangeness of the product and customers. Davis's account of opening the store by playing Aqua mix tapes is glorious. (Someone else who likes Aqua for much the same reason that I do!)

Content warning for public masturbation, sex-creep customers, and lots of descriptions of the sorts of degrading (and sexist and racist) sex acts portrayed on porn video boxes, of course. But if that doesn't drive you away, these are still-charming and still-fascinating slice-of-life stories about retail work in a highly unusual business that thrived for one brief moment in time and effectively no longer exists. Recommended, particularly if you want the nostalgia factor of re-reading something you vaguely remember from twenty years ago.

Rating: 7 out of 10

2020-01-08: DocKnot 3.02

DocKnot is my set of tools for generating package documentation and releases. The long-term goal is for it to subsume the various tools and ad hoc scripts that I use to manage my free software releases and web site.

This release includes various improvements to docknot dist for generating a new distribution tarball: xz-compressed tarballs are created automatically if necessary, docknot dist now checks that the distribution tarball contains all of the expected files, and it correctly handles cleaning the staging directory when regenerating distribution tarballs. This release also removes make warnings when testing C++ builds since my current Autoconf machinery in rra-c-util doesn't properly exclude options that aren't supported by C++

This release also adds support for the No Maintenance Intended badge for orphaned software in the Markdown README file, and properly skips a test on Windows that requires tar.

With this release, the check-dist script on my scripts page is now obsolete, since its functionality has been incorporated into DocKnot. That script will remain available from my page, but I won't be updating it further.

You can get the latest release from CPAN or the DocKnot distribution page. I've also uploaded Debian packages to my personal repository. (I'm still not ready to upload this to Debian proper since I want to make another major backwards-incompatible change first.)

2020-01-07: C TAP Harness 4.6

C TAP Harness is my test framework for C software packages.

This release is mostly a release for my own convenience to pick up the reformatting of the code using clang-format, as mentioned in my previous release of rra-c-util. There are no other user-visible changes in this release.

I did do one more bit of housekeeping, namely added proper valgrind testing support to the test infrastructure. I now run the test suite under valgrind as part of the release process to look for any memory leaks or other errors in the harness or in the C TAP library.

The test suite for this package is written entirely in shell (with some C helpers), and I'm now regretting that. The original goal was to make this package maximally portable, but I ended up adding Perl tests anyway to test the POD source for the manual pages, and then to test a few other things, and now the test suite effectively depends on Perl and could have from the start. At some point, I'll probably rewrite the test machinery in Perl, which will make it far more maintainable and easier to read.

I think I've now finally learned my lesson for new packages: Trying to do things in shell for portability isn't worth it. As soon as any bit of code becomes non-trivial, and possibly before then, switch to a more maintainable programming language with better primitives and library support.

You can get the latest release from the C TAP Harness distribution page.

2020-01-05: rra-c-util 8.1

rra-c-util is my collection of utility code that I use in my various other software packages (mostly, but not only, C).

I now forget what I was reading, but someone on-line made a side reference to formatting code with clang-format, which is how I discovered that it exists. I have become a big fan of automated code reformatting, mostly via very positive experiences with Python's black and Rust's rustfmt. (I also use perltidy for my Perl code, but I'm not as fond of it; it's a little too aggressive and it changes how it formats code from version to version.) They never format things in quite the way that I want, but some amount of inelegant formatting is worth it for not having to think about or manually fix code formatting or argue with someone else about it.

So, this afternoon I spent some time playing with clang-format and got it working well enough. For those who are curious, here's the configuration file that I ended up with:

Language: Cpp
BasedOnStyle: LLVM
AlignConsecutiveMacros: true
AlignEscapedNewlines: Left
AlwaysBreakAfterReturnType: AllDefinitions
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: WebKit
ColumnLimit: 79
IndentPPDirectives: AfterHash
IndentWidth: 4
IndentWrappedFunctionNames: false
MaxEmptyLinesToKeep: 2
SpaceAfterCStyleCast: true

This fairly closely matches my personal style, and the few differences are minor enough that I'm happy to change. The biggest decision that I'm not fond of is how to format array initializers that are longer than a single line, and clang-format's tendency to move __attribute__ annotations onto the same line as the end of the function arguments in function declarations.

I had some trouble with __attribute__ annotations on function definitions, but then found that moving the annotation to before the function return value made the right thing happen, so I'm now content there.

I did have to add some comments to disable formatting in various places where I lined related code up into columns, but that's normal for code formatting tools and I don't mind the minor overhead.

This release of rra-c-util reformats all of the code with clang-format (version 10 required since one of the options above is only in the latest version). It also includes the changes to my Perl utility code to drop support for Perl 5.6, since I dropped that in my last two hold-out Perl packages, and some other minor fixes.

You can get the latest version from the rra-c-util distribution page.

2020-01-05: Term::ANSIColor 5.00

Term::ANSIColor is the core Perl module that provides functions to change text attributes using ECMA-048 escape sequences.

This release adds support for true color (24-bit color), with which I was not previously familiar but which turns out to be widely supported, including by xterm (which calls it direct-color). The new color attributes are in the form rNNNgNNNbNNN and on_rNNNgNNNbNNN and work like the existing color attributes. There is no constant support for somewhat obvious logistical reasons, so they're supported only in the function interface. Thanks to Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 for the initial patch and drawing true color to my attention.

Color aliases now can expand to more than one attribute. This means that you can do things like:

coloralias('warning', 'black', 'on_bright_red');

and have the expected thing happen. I took advantage of this to clean up the alias handling in general, so you can also now define aliases in terms of other aliases (although the second-level alias doesn't change when the first-level alias changes). The alias fixes are based on work by Yanick Champoux.

Also in this release are a few minor cleanups and documentation improvements.

Finally, this release drops support for Perl 5.6. The minimum supported version is now Perl 5.8. Testing on 5.6 is spotty and Travis-CI doesn't support it, so I don't think I can truly claim it's supported any more.

You can get the latest release from CPAN or from the Term::ANSIColor distribution page.

2020-01-04: podlators 4.14

podlators provides the Pod::Man and Pod::Text conversion modules for Perl. This release is a minor bug-fix release, mostly correcting a test suite problem with old versions of Pod::Simple. The user-visible change is to document that parse_lines and parse_string_document expect raw bytes, not decoded characters.

The other change in this release is internal. I finally finished refactoring the test suite, so now all parts of the test suite use separate snippet files and modern coding style, so it should be more maintainable in the future.

You can get the latest release from CPAN or from the podlators distribution page.

2020-01-01: 2019 Book Reading in Review

In 2019, I finished and reviewed 40 books, the same as in 2018. Technically, I read two more books than 2018, since I've finished two books (one just before midnight) that I've not yet reviewed, but I'll stick with counting only those books for which I've published a review. I did a little bit better this year in spreading my reading out over the year instead of only reading on vacation. Finding time to write reviews was another matter; apologies for the flood of catch-up reviews in the last week of December.

I met both of my reading goals for last year — maintaining my current reading pace and catching up on award winners and nominees — but only barely in both cases. 2020 will bring schedule and life changes for me, and one of my goals is to carve out more room for daily reading.

I have 10 out of 10 ratings to two books this year, one fiction and one non-fiction. The novel was Arkady Martine's exceptional debut A Memory Called Empire, which is one of the best science fiction novels I've read. It's populated with a fully imagined society, wonderful characters, political maneuvering, and a thoughtful portrayal of the cultural impact of empire and colonialism. I can hardly wait for the sequel.

The non-fiction book was On the Clock by Emily Guendelsberger, a brilliant piece of investigative journalism that looks at the working conditions of the modern American working class through the lens of an Amazon warehouse job, a call center, and a McDonald's. If you want to understand how work and life feels to the people taking the brunt of the day-to-day work in the United States, I cannot recommend it highly enough. These jobs are not what they were ten or twenty years ago, and the differences may not be what you expect.

The novels that received 9 out of 10 ratins from me in 2019 were The Calculating Stars by Mary Robinette Kowal, and The Shell Seekers by Rosamunde Pilcher. Kowal's novel is the best fictional portrayal of anxiety that I've ever read (with bonus alternate history space programs!) and fully deserves its Hugo, Nebula, and Locus awards. Pilcher's novel is outside of my normal genres, a generational saga with family drama and some romance. It was a very satisfying vacation book, a long, sprawling drama that one can settle into and be assured that the characters will find a way to do the right thing.

On the non-fiction side, I gave a 9 out of 10 rating to Bad Blood, John Carreyou's almost-unbelievable story of the rise and fall of Theranos, the blood testing company that reached a $10 billion valuation without ever having a working product. And, to close out the year, I gave a 9 out of 10 rating to Benjamin Dreyer's Dreyer's English, a collection of advice on the English language from a copy editor. If you love reading books about punctuation trivia or grammatical geeking, seek this one out.

The full analysis includes some additional personal reading statistics, probably only of interest to me.

2019-12-31: Review: Woman on the Edge of Time

Review: Woman on the Edge of Time, by Marge Piercy

Publisher Ballantine
Copyright 1976
Printing 2016
ISBN 0-307-75639-4
Format Kindle
Pages 419

Woman on the Edge of Time opens with Connie (Consuela) Ramos's niece Dolly arriving at the door of her tiny apartment with a bloody face. Her pimp, the cause of the bloody face, shows up mere moments later with a doctor to terminate Dolly's pregnancy. After a lot of shouting and insults, Connie breaks a glass bottle across Geraldo's face, resulting in her second involuntary commitment to a mental institution.

The first time was shortly after the love of her life was arrested for shoplifting and, in an overwhelmed moment, she hit her young daughter. That time, she felt she deserved everything that happened to her, not that it made much difference. Her daughter disappeared into the foster care system and she ended up on welfare, unable to get a job. She did get out of the institution, though. That's more of a question this time.

The other difference in Connie's life is that Luciente has made contact with her. Luciente is apparently from the future, appears in Connie's apartment, speaks an odd dialect, and is both horrified and fascinated by the New York City of Connie's time. She is also able to bring Connie mentally into the future, to a community called Mouth-of-Mattapoisett, which has no insane asylums, welfare, capitalism, pimps, condescending social workers, pollution, or the other plagues of Connie's life.

Woman on the Edge of Time sets a utopia against a dystopia, but the dystopia is 1970s America seen through the life of a poor Mexican-American woman. The Mattapoisett sections follow the classical utopia construction with Connie as the outside visitor to whom the utopia is explained. The present-day sections are a parade of horrors as Connie attempts to survive institutionalization, preserve a shred of dignity, and navigate the system well enough to be able to escape it. At first, these two environments are simply juxtaposed, but about two-thirds of the way through the book it becomes clear that Luciente's future is closely linked to, and closely influenced by, Connie's present.

I wanted to like this book, but I struggled with it. It took me about two months to read it, and I kept putting it down and reading something else instead. I'm finding it hard to put my finger on why it didn't work for me, but I think most of the explanation is Connie.

Piercy commits fully in this story to making Connie an ordinary person. Her one special characteristic is her ability to receive Luciente's psychic contact from the future, and to reach out in return. Otherwise, she's an average person who has lived a very hard life, who is struggling with depression and despair, and whose primary reaction to the events of the book is a formless outrage mixed with self-pity. This is critical to the conclusion of the story, and it's a powerful political statement: Ordinary people can affect the world, their decisions matter, and you don't have to be anyone special to fight oppression.

Unfortunately, this often makes the Mattapoisett sections, which are the best part of this book, frustrating to read. Not only does Connie not ask the questions about the future utopia that I wanted to ask, but she also reacts to most of the social divergences with disgust, outrage, or lasting confusion. This too I think is an intentional authorial choice — a true course correction in our world isn't also going to be comfortable and familiar, all of us will disagree with some of those choices, and Connie is not someone who grew up reading utopian literature — but it adds a lot of negative emotion to what is otherwise a positive celebration of how much better humanity can be. The people of Mattapoisett are endlessly patient with Connie in ways that also highlight strengths of their society, but I frequently found myself wanting to read a different story about Luciente, Jackrabbit, and the others without Connie there to recoil from the most drastic changes or constantly assume the worst of their customs.

I felt like I understood Connie and empathized with her, but I didn't like her. It's hard to read books where you don't like the main character.

The present-day scenes are an endless sequence of nightmares. Connie has a couple of friends inside the institution, who are also just trying to survive, but is otherwise entirely alone. Her niece tries occasionally, but is so strung out on drugs that she can't hold a coherent train of thought. Every figure of authority in the book treats Connie with contempt. All medical staff treat the patients like animals; the best that any of them can hope for is to be treated like a tolerable but ugly pet. I fully believe this was accurate for at least some facilities in some places, but it's soul-crushing to read about at length. I found myself slogging through those sections of the book, waiting for another interlude in Mattapoisett where at least I could enjoy the utopian world-building and relax a bit around happy characters.

This is, to be clear, effective at conveying the political point that Piercy is making. It's striking to read about Connie's horrific life and realize that it would be far worse today. Outside of the institution, she was living on long-term welfare, something that no longer exists in the United States. There are essentially no more mental institutions of the type in which she was held today; we closed them all in the 1980s and dumped all the residents on the streets. As Piercy points out in her forward, this is not an improvement. Today, Connie would either be homeless or in prison, her circumstances would be even worse than they were in the book, and even this plot would not be possible.

It's hard to know what to say about books that say true things with the level of anger and revulsion that our world warrants and do not give the reader the comfortable wrapping of characters with room to be happy. There is little Piercy says here that's wrong, and it's something we should hear, but apart from the Mattapoisett interludes I found it miserable to read. I read partly for escapism and for a break from dwelling on the unfolding horrors of the news cycle, so I struggle with books that feel like an extension of the day-to-day reporting on how awfully we treat our fellow humans. This is a problem I have with much of 1970s feminist SF: The books are incandescently angry, and rightfully so, about problems that are largely unfixed fifty years later, and I come away deeply depressed by humans as a species.

The heart of this book is the carefully-constructed Mattapoisett utopia, which says fascinating things about parenting, ecological balance, interpersonal relationships, communal living, personal property and its appropriate place in society, and governance structures. Piercy does cheat with some psychic empathy and some semi-magical biology, but most of what she describes would be possible with our current technology. I've not talked much about that in this review because the other parts of the book hit me so strongly, but this is a very interesting utopia. If you like analyzing and thinking about alternative ways of living, this is thought-provoking stuff.

I can see why other people liked this book better than I did, and I have great respect for its political goal and for Piercy's utopian world-building. It wasn't the book for me, but it might be for you.

Rating: 5 out of 10

2019-12-30: Review: Dreyer's English

Review: Dreyer's English, by Benjamin Dreyer

Publisher Random House
Copyright 2019
ISBN 0-8129-9571-6
Format Kindle
Pages 278

Benjamin Dreyer is vice president, executive managing editor and copy chief, of Random House. Or, as he puts it:

I am a copy editor. After a piece of writing has been, likely through numerous drafts, developed and revised by the writer and by the person I tend to call the editor editor and deemed essentially finished and complete, my job is to lay my hands on that piece of writing and make it...better. Cleaner. Clearer. More efficient. Not to rewrite it, not to bully and flatten it into some notion of Correct Prose, whatever that might be, but to burnish and polish it and make it the best possible version of itself that it can be — to make it read even more like itself than it did when I got to work on it. That is, if I've done my job correctly.

Dreyer's English is a book of writing advice, pet peeves, observations, spelling corrections, and word usage geekery from someone who has spent nearly thirty years copy editing books. More than half of the book is lists of things with commentary: words that can be deleted, words that are frequently confused for each other, notes on proper nouns, and much more. The rest of it is grammatical disputes, positions on punctuation, and fascinating commentary on people's reactions to copy editing.

The preferred U.K. spelling of the color that describes ashes and the eyes of the goddess Athena is "grey." The preferred American spelling is "gray," but try telling that to the writers who will go ballistic if, in copyediting, you attempt to impose that spelling. In all my years of correcting other people's spelling, I don't think I've ever come up against more pushback than on this point. My long-held theory — make of it what you will — is that the spelling "grey" imprints itself on some people who encounter it in beloved classic children's books, and they form an emotional attachment to it.

Or, I don't know, they're just stubborn.

Speaking as an American "grey" person, I feel seen.

This is the sort of book whose audience will self-select. If you read the description above and thought "wow, that sounds boring, why would someone read a reference book like that cover to cover?" then this is not the book for you. If you thought "that sounds awesome, tell me more!" then you've probably heard of this book already (it's made the rounds), and this review is somewhat redundant. But in case you haven't, I can assure you that it is indeed awesome, and you should read it.

True confession time. I thoroughly enjoyed reading Strunk & White, the writing book that everyone is now supposed to hate. Let me reassure you that I am not one of those people who tries to get everyone to read it or who treats it as the canonical text on how to write in English, thus contributing to the backlash. I rarely think of it when writing. I loved it because it was fun to read, because it was opinionated and snarky and was full of entertaining (if occasionally unfair) examples, and because it advocated for a particular style of prose in a memorable and approachable way.

I'm doing Benjamin Dreyer no favors by comparing his book to this bogeyman of prescriptivism, but I enjoyed Dreyer's English for a similar reason. Dreyer's writing is not dry and does not read like a reference manual, despite the lists. It's full of side observations and personal stories, is tempered by the conversations a copy editor has with authors, and is absurdly quotable. You'll notice that I'm failing to resist littering this review with excerpts.

Also, if you haven't been dead for four hundred years and are planning on using the word "methinks" in the spirit of roguish cleverness, please don't.

For those reading it as an ebook, it also puts the (delightful) footnotes at the end of each chapter. A minor point, but greatly appreciated.

I don't primarily read books like this to improve my own writing. If I did, I should probably have paused on page one to implement Dreyer's first advice, which is so on-point that it stings:

Here's your first challenge:

Go a week without writing

Rather (*cough*), I read books like this primarily for entertainment, secondarily out of intellectual curiosity about the opinions of someone who has read a lot of prose and is professionally obligated to make judgments about it, and tertiarily because I adore language trivia. Dreyer delivers on all three points. If you are looking for advice to help improve your writing, I suspect he delivers on that point as well, but the entertainment value alone was worth it to me. The insight into the role of copy editor, the markup and on-page conversations with authors, and some of the less-obvious motives of the work are a delightful bonus.

An admission: Quite a lot of what I do as a copy editor is to help writers avoid being carped at, fairly or — and this is the part that hurts — unfairly, by People Who Think They Know Better and Write Aggrieved Emails to Publishing Houses.

Come for the demolition of non-rules of grammar that you were taught in school but should ignore completely, stay for the fascinating discussion of the "only" comma, and be rewarded with knowing that even the copy chief of one of the largest publishing houses on earth cannot spell Mississippi without singing the song.

If you are the sort of person who likes this kind of thing, you owe it to yourself to read this book.

Rating: 9 out of 10

2019-12-29: Review: To Be Taught, If Fortunate

Review: To Be Taught, If Fortunate, by Becky Chambers

Publisher Harper Voyager
Copyright September 2019
ISBN 0-06-293602-6
Format Kindle
Pages 153

Ariadne is the flight engineer aboard the Merian. She and her three crewmates were sent from Earth on a fifty-year mission (most of it spent in medical hibernation for transit) to do a survey of four exoplanets in one system. To Be Taught, If Fortunate is the narrative accompanying that mission report, and a question sent back to whoever receives it.

This is a novella that is probably set in the same universe as the Wayfarers books (which start with A Long Way to a Small Angry Planet), but that connection is not explicit in the story. You can read it in isolation and not miss anything.

I was born in Cascadia on July 13, 2081. On that day, it had been fifty-five years, eight months, and nine days since a human being had been in space. I was the two-hundred-and-fourth person to go back, and part of the sixth extrasolar crew. I'm writing to you in the hope that we will not be the last.

This is the fourth Becky Chambers story I've reviewed and I've seen some common patterns of reaction, so let me start by setting expectations.

If what you want out of a science fiction novella is hard scientific accuracy, this is not what you're looking for and you're probably going to frustrate yourself. Chambers notes in the acknowledgments that she tried to get the science as close as the story would allow, and there isn't anything quite as egregious as powering a ship via algae grown on the ship (or the kinetic energy of crew footsteps), but I still had several moments of "hm, I don't think it works that way." Those who are pickier than I am are likely to once again run into suspension of disbelief problems.

What Chambers does do, for me at least, is tug directly on the heartstrings. This was a challenge for this novella since To Be Taught, If Fortunate is, among other things, an impassioned defense of human space exploration, something about which I'm notoriously skeptical. With the help of a bit of magical genetic editing during medical hibernation to get past the most obvious objections, she managed to convince me anyway. Chambers does this primarily by showing the reactions of scientists physically present on another planet, doing and getting excited about science, struggling through setbacks, and attempting to navigate surprises and horrors while thinking very hard about ethics and responsibility. It's a slow burn, and I suspect some people will find it boring, but for me it was startlingly effective.

One good choice Chambers makes is that Ariadne is the lone non-scientist in the crew. She's the engineer, the person who fixes and operates things and gets the ship to work. That lets the descriptions of exploratory science on each of the four worlds be outsider perspectives that match the author's perspective (and that of most readers). Ariadne watches other people do ground-breaking science and get excited for and with them, which I found charming and delightful to read about.

Most of this novella is narrative observation of initial planetary exploration, focused mostly although not entirely on biology. It can be a bit disorienting at first, since the drama level is tuned closer to real exploration than the typical story. The four crew members are also refreshingly low on interpersonal drama — perhaps unrealistically so, given the requirement to spend years together in close quarters, but one of the things I like about Chambers is her willingness to write about good people and believe that they can remain good people through difficult moments. The plot inflection points, when they come, have a similar slow burn, giving the reader time to empathize with the characters and get invested in their worries and reactions.

The best moments of this novella for me, though, are where Ariadne describes the space program that gave rise to this mission, the politics of Earth at the time, and the meaning and rituals of that push for renewed space travel. This is beautifully and exceptionally done. It took me a lot of thought after finishing this novella to put my finger on why Ariadne's space program seems so different than ours: It's not grounded in military or naval culture. The prevalence and assumption of hierarchical command structure and rigid discipline is so pervasive in how we think about human missions of exploration that I had a hard time pinpointing what had changed.

I find it interesting to compare this to the later books of Jack McDevitt's Academy series, particularly Cauldron. McDevitt and Chambers are arguing for some similar goals, but McDevitt's argument is the frustrated petulance of the space boosterism wars that go back to the literary fight against William Proxmire in the 1960s and 1970s and is most often rehashed today with some variation of "humans have to get off a single planet to secure a long-term future of the species." Chambers's argument is entirely different. It's less fear-based, more collaborative and consensus-driven, more thoughtful, and makes an argument from wonder instead of expansionism. For me, it's far more persuasive.

I'm going to be thinking about the difference between how Ariadne thinks about her mission and how we normally present space missions for a long time.

I won't give away the ending, but it wasn't at all what I had expected, and I found it surprisingly touching. It's not at all the way that stories like this normally end, but it's quiet and earnest and thoughtful and ethical in a way that's consistent with the rest of the story and with everything else Chambers has written. The more I thought about it, the more I liked it.

Reactions to Chambers vary widely, I think in part because they're primarily stories about human ethics in semi-utopian societies that only use science and technology as a frame. If you weren't one of the people who loved her books, I don't think this novella is likely to be the break-through moment for you. If, like me, you did love her books, particularly Record of a Spaceborn Few (the most similar to this story), I think you'll like this as well. Recommended for those readers.

Rating: 8 out of 10

Last spun 2020-01-20 from thread modified 2008-08-13