Science Fiction Stories by Keith Laumer in the Public Domain

If like me you found yourself very excited by the news on Boing Boing that possibly as much as 80% of the books published between 1924 and 1963 might now be in the public domain thanks to their copyrights not being renewed, then like me you also clicked on the links to the New York Public Library’s explanation as well as Leonard Richardson’s discussion. What was most exciting, to me, to discover was that a fair amount of science fiction from that period, which includes the so-called golden era, might be in the public domain.

That’s the good news. The bad news, or the news that requires patience, is that you still have to track down that work, much of which hasn’t been scanned. Some of it has been scanned, and is possibly available through the Hathi Trust, but it hasn’t been OCRed and curated into clean digital versions. But some of it has, and in the case of some work by Keith Laumer, a favorite of mine, it’s available on Gutenberg.

The list of texts is all sitting on one page, and it’s only 12 works, so writing a BeautifulSoup script seemed like overkill, especially when my preferred plain text note application, [Bear][], does a terrific job of turning HTML into easily edited markdown. From there, I edited the URLs following the pattern I gleaned from one of the texts using Textmate’s block edit functionality. I got the following list:

http://www.gutenberg.org/cache/epub/51258/pg51258.txt
http://www.gutenberg.org/cache/epub/53132/pg53132.txt
http://www.gutenberg.org/cache/epub/51509/pg51509.txt
http://www.gutenberg.org/cache/epub/51712/pg51712.txt
http://www.gutenberg.org/cache/epub/51267/pg51267.txt
http://www.gutenberg.org/cache/epub/26782/pg26782.txt
http://www.gutenberg.org/cache/epub/51781/pg51781.txt
http://www.gutenberg.org/cache/epub/21627/pg21627.txt
http://www.gutenberg.org/cache/epub/23028/pg23028.txt
http://www.gutenberg.org/cache/epub/52844/pg52844.txt
http://www.gutenberg.org/cache/epub/52855/pg52855.txt
http://www.gutenberg.org/cache/epub/21782/pg21782.txt

I saved it to a file, cded into my texts repo and ran wget:

wget -w 2 -i ~/Desktop/laumer.txt

A half minute later it was done:

FINISHED --2019-08-14 19:01:18--
Total wall clock time: 24s
Downloaded: 12 files, 1.2M in 1.4s (874 KB/s)

You can do the same, or you can grab the collection of plain text files out of my GitHub texts repo: Laumer stories.

Thanks for coming to my TED talk

If you’re curious about what I have been up to, it’s working with Katherine M. Kinnaird: “TED talks as Data” is the first in three planned installments of our collaboration — data, words, discourse. In the mean time, as they say, “thanks for coming to my TED talk”:

On Attentiveness

Wendell Berry in an essay entitled “Preserving Wildness” collected inHome Economics makes the case for what may be called an economy of attentiveness (as opposed to an economy of mere attention).

The good worker loves the board before it becomes a table, loves the tree before it yields the board, loves the forest before it gives up the tree. The good worker understands that a badly made artifact is both an insult to its user and a danger to its source. We could say, then, that good forestry begins with the respectful husbanding of the forest that we call stewardship and ends with well-made tables and chairs and houses, just as good agriculture begins with stewardship of the fields and ends with good meals.

Python and PDFs

Real Python has a tutorial on How to Work With a PDF in Python. I subscribe to Real Python because I find their tutorials well-written or, in the case of video tutorials, well-presented. The focus of this tutorial is the PythonPDF module, which can get metadata from a PDF, rotate pages, merge or split a PDF, and/or encrypt it. While the tutorial mentions “extract information” it does not mean PythonPDF can get text from a PDF that does not have a text layer already embedded on its pages — you could argue that the unintuitive nature of PDFs reveals their brokenness but that’s for another time. If you want to get text where there is no text layer, but you still want to use Python, it looks like you have to turn to PDFMiner — though a quick skim of its GH page doesn’t reveal if it has OCR capabilities backed in. Sigh.

HTML to PDF

In an ideal setup, my workflow would have me writing in some version of plain text — a flavor of markdown in all probability — that could be quickly and easily outputted to a variety of formats and media. In most instances, that output gets printed, or at least paginated, which means it probably has to, at least for a moment, be instantiated as a PDF. (If I remember correctly, this is essentially how the macOS display and printing system work.) What that would mean would be a collection of CSS files that transformed the generated HTML into the various kinds of documents I regularly produce: essays, reports, letters, lectures, etc.

This function is what the Marked app does and does well — it’s also functionality built into the Ulysses app if I remember. Neither of those apps, I believe, offer pagination, which is often critical to what I output. And so, I have continued to search for my own solution in hopes of building it into a workflow — for the record, when I am working on long-form plain text, my editor of choice is FoldingText because it does a brilliant job of hiding the markdown unless you are working on that sentence and, as the name implies, it makes it possible to hide all but the section of the document on which you are working. It’s brilliant. (To be clear, I am a fan of all the apps mentioned here and of their developers.)

Getting from plain text via markdown or MultiMarkdown to HTML and then pairing that HTML with a page-media aware CSS file and then outputting to PDF is not as easy as it should be. The one app of which I have been aware up until recently was PrinceXML, which its creators have made free for non-commercial use, but with the imposition of a small watermark. That’s very generous, but it’s not quite what I want and I don’t have the kind of money to afford a desktop license.

And so it was a delightful surprise to discover that there are free software options to explore:

  • wkhtmltopdf is an “open source (LGPLv3) command line tools to render HTML into PDF and various image formats using the Qt WebKit rendering engine. These run entirely headless and do not require a display or display service.”
  • **WeasyPrint is a “visual rendering engine for HTML and CSS that can export to PDF. … It is based on various libraries but not on a full rendering engine like Blink, Gecko or WebKit. The CSS layout engine is written in Python, designed for pagination, and meant to be easy to hack on.”

Next up … trying WeasyPrint and an update/report here.

Museum Anthropology Review in Transition(s)

Mar banner

Jason Jackson’s account of the rise and revision of Museum Anthropology Review may very well be as “inside baseball” as anything academic can get, but it is a detailed chronology of the events, and the reasons, that he helped establish an open access journal that continues to thrive today. I recommend it to my students for its very clear articulation of the inner workings of scholarship: there are costs; there is labor.

AFS 2019 Abstracts

Seymour Chatman’s diagram of narrative

The short abstract (97 words):

With an understanding that no text is composed, or received, in a single “mode of discourse” (description, narration, exposition, etc.), this paper explores the nature of non-narrative elements found within folk narrative, pursuing a path first begun by literary critic Meir Sternberg and linguist Carlota Smith. While Sternberg and Smith used literary texts as the basis for their study, this paper draws, like the previous one, upon folk narratives collected by a number of folklorists, including myself, in order to see if there are consistent structures of discourse present and at what level those structures lie.

The long abstract (492 words):

Save a few exceptions, folklorists have largely approached folk narrative as given, with occasional considerations of non-narrative elements. Our close readings of texts tend to focus on the topical and not the formal, on the contextually meaningful and not the structurally significant. This paper is part of a larger project to understand the nature of the components that make up a folk narrative text in order to explore what structures might emerge, and which, if any, are general and which might be cultural. The project is founded on the work of literary critic Meir Sternberg and linguist Carlota Smith, each of whom pursued parallel paths in trying to discern modes with a given text. Starting in the late seventies and working through the nineties, Sternberg attempted to extend narratological considerations to include non-narrative moments and passages in texts. Pursuing similar research but apparently unaware of Sternberg, Smith developed the notion of “modes of discourse,” based on her own work on temporal aspect, in which she explored how languages encode time and how they encode the way events happen over time. Both Sternberg and Smith, however, draw upon literary sources for the exploration and application of their ideas and methods. What would a consideration of folkloric texts bring to the table, and what role would dialogue—long established as a central feature in oral text-making—play in a possible revision of any typology of discourse modes? This paper only briefly outlines Sternberg’s work, as well as referencing the work of Labov and Waletzky which has had some role in folkloristic considerations of narrative (as outlined in a previous paper), in order to provide a backdrop for a consideration of Smith’s work to folkloristic considerations of text. In a previous paper I argued that folklore studies is as guilty as other domains in proclaiming anything narrative. In this paper, I explore other modes of discourse and then consider just how little the narrative mode has to be present for it to be received as narrative in its entirety. All examples are drawn either from my own fieldwork or from colleagues who have entrusted me with examples from their own work.

Labov, William, and Joshua Waletzky. 1967. Narrative Analysis: Oral Versions of Personal Experience. Proceedings of the 1966 Annual Spring Meeting of the American Ethnological Society, 12–44.

Smith, Carlota S. 2003. Modes of Discourse: The Local Structure of Texts (Cambridge Studies in Linguistics). Cambridge University Press.

Sternberg, Meir. 1981. Ordering the Unordered: Time, Space, and Descriptive Coherence. Yale French Studies (61, Towards a Theory of Description): 60–88.

———. 1982. Proteus in Quotation-Land: Mimesis and the Forms of Reported Discourse. Poetics Today 3 (2): 107–56.

———. 1990. Telling in Time (I): Chronology and Narrative Theory. Poetics Today 11 (4, Narratology Revisited II): 901–48.

———. 1992. Telling in Time (II): Chronology, Teleology, Narrativity. Poetics Today 13 (3): 463–541.

———. 2001. How Narrativity Makes a Difference. Narrative 9 (2, Contemporary Narratology): 115–22.

Plywood Graph Paper

I have been doing a bit of home renovation and construction of late, and some of it has involved breaking down sheets of plywood, which I now do using a piece of rigid foam lying on my garage floor and a Kreg Circular Saw Guide. As long as I am crawling around with a saw in my hand, I prefer to make as many cuts as I can. For that, I use a cut sheet, which I make using the incomparable Incompetech’s Graph Paper Generator. The settings captured in the image below produce a graph of 4 x 8 squares broken into 6-inch and then one-inch cells:

Incompetech Graph Paper Generator Settings

Re-thinking the Business Case Study

Ever since I worked in executive education and was exposed to the role of the business case study in both undergraduate, MBA, and executive education, I have been fascinated by its power to generate insight and blindness. I have followed the re-consideration of the case study, as well as of the MBA in general, over the past few years, but only from a distance. So it was great to come across Lila MacLellan’s review of work by Bridgman, Cummings and McLaughlin on “Restating the Case: How Revisiting the Development of the Case Method Can Help Us Think Differently About the Future of the Business School” (DOI: 10.5465/amle.2015.0291). They note:

years after installing the case method, Donham sincerely believed it was too indifferent to larger societal ills, too insensitive to the labor market, and thus to economic prosperity and equality among workers.

As it turns out, some of that re-consideration may have been prompted by Donham’s long-term friendship with Alfred North Whitehead. MacLellan concludes:

Part of the problem with decision-forcing exercises alone is that they ask students to work within the existing system, without examining its failures. Bridgman’s paper suggests that business professors could use cases to look at how managers think, rather than to teach students how to think like a manager.

There’s apparently also a Youtube animation.

Mystery Ranch 3-Way Briefcase

I got one of those automated prompts from a vendor for a product that I had purchased. I decided to write a review. By the time I was done writing the review, I thought it was substantive enough to post it here: because if you are searching for a bag and about to spend a bit more than you are comfortable doing, you do a lot of web searching first, in hopes that someone will describe the bag sufficiently that you get a better sense of whether it’s worth your time and hard-earned money to buy the thing

I bought an Eagle Creek Convert-a-brief bag in the late 90s, and I used the heck out of that thing, only eventually setting it aside for other bags that offered more functionality in various ways and leaning more and more towards backpacks. I bought the MR 3-way briefcase because I found myself wanting a bag looked more like a briefcase and less like a backpack recently and the old Eagle Creek just does have much left in it. There’s a lot to recommend the MR 3W: it’s compact in height and width and offers a lot of organization. The backpack straps stow neatly. And it looks good.

Would I buy it again? Yes. Do I wish I could change a few things? Yes. Starting from the front: the magnetic buckle seems cool, but then you realize that it often, if not almost always, latches when the front flap falls down, leading a casual inspection to suggest that the bag is closed when it isn’t: things fall out. Given that the things in the front pocket are sometimes really expensive things to lose, like wallets and phones, another zippered pocket would be useful here.

In the middle of the bag, I wish the padding/insert between the laptop and middle pocket were removed: the rest of the bag provides padding and structure enough to protect electronics in the back pocket and the padding/insert only adds undesired weight and thickness — and the bag would only be better if lighter.

Finally, while the padded backpack straps are easy to stow and remove, the lower half of the straps are not, making it difficult, and time-consuming, to switch from backpack mode to briefcase mode. If the bottom of the pack, when the pack is is in backpack mode, were a velcro strip, this problem could be easily solved without otherwise ruining the lines of the 3W.

Buying through Sierra was simple and fast. The bag itself mostly delights, but some of the wonkiness described above does detract from that delight.

Semi-Automated

As part of our hand editing of the TED talk data we had to retrieve missing information for, luckily, a small subset of the speakers. This meant Kinnaird splitting off two CSVs, one for the TED main event speakers and one for the other TED-sponsored event speakers, and then me trudging row by row and cell by cell, working back and forth between the CSV and a web page. Copy and pasted and two CSVs filled in. Yes.

Then it was time to fold these filled in rows back into the main CSVs from whence they came. Each smaller CSV had between 15 and 20 rows, so it didn’t seem like a task worthy of firing up a Python session and writing something in pandas to replace the rows with missing information with the filled-in rows.

I started doing the work by hand: copy a row from the missing.csv and paste it below the matching row in the speakers.csv and then deleting the matched row. Oi! Sure it was only 17 rows, but, still, there has to be a somewhat faster way!

So I decided to merge the two files using cat and then simply finding the dupes in Easy CSV Editor and deleting the row with missing data. Semi-automated?