I'm Mike Pope. I live in the Seattle area. I've been a technical writer and editor for over 30 years. I'm interested in software, language, music, movies, books, motorcycles, travel, and ... well, lots of stuff.

Read more ...

Blog Search

(Supports AND)

Google Ads


Subscribe to the RSS feed for this blog.

See this post for info on full versus truncated feeds.


Most institutions demand unqualified faith; but the institution of science makes skepticism a virtue.

— Robert King Merton


<January 2015>




Email me

Blog Statistics

First entry - 6/27/2003
Most recent entry - 1/22/2015

Posts - 2321
Comments - 2508
Hits - 1,704,671

Entries/day - 0.55
Comments/entry - 1.08
Hits/day - 403

Updated every 30 minutes. Last: 11:39 PM Pacific

  07:09 PM

My wife came home the other day and said, “I have a language thing for you.” (This is always an excellent way to get my attention.) Her story: “I noticed that a person I work with says fustrasting for frustrating.” In other words, they leave off that first R in fru-.

That sounded interesting. I tried some web searches, but this proved, um, somewhat frustrating, because search engines overwhelmingly want to auto-correct your fat-fingered entry. (Did you mean...?) But I managed to get some hits, including Urban Dictionary, the Grammarphobia blog, the amusingly named Ottawa Valley to English Dictionary, and some cites on the Wordnik site. I didn’t get a lot of insight, but these hits did tell me that the pronunciation of my wife’s colleague was not an idiosyncrasy and that a fair number of people say (and apparently even write) this.

When you encounter a pronunciation that’s “wrong” but is nonetheless often attested, it’s a good bet that there’s a linguistic basis for the pronunciation. For example, the (in)famous variation ask-aks/ax reflects dialectal variations in English that go back 1200 years. As another example, people often “add letters” when they pronounce words, like mason-a-ry and ath-e-lete. This turns out to be a well-understood phenomenon that goes by the name epenthesis. (Some words that are perfectly standard today, like thunder, reflect historical epenthesis.)

I had a hunch that the fustrating pronunciation had some phonological basis, so I sent a query to a couple of actual linguists. One of them directed me to an entry on the Phonoblog, where I learned that R-less fustrating is an example of the delightfully named liquid dissimilation. (“Liquid” here is used here to refer to the “liquid” consonants: in English, R and L.) The exact mechanism isn’t nailed down, but Nancy Hall, the blog post author, mentions another linguist’s observation that the dropped R is in words that have another R in them next to a schwa sound, and a theory is that, to put it generally, the existence of one of the R’s is causing speakers to drop the other.

What made this vivid for me, and not just a weird thing that people with some other dialect do, was to see the long list of words in which this can occur. It’s very easy for me to hear, including possibly from myself, the dropped Rs in words like these:
  • ape[r]ture
  • be[r]serk
  • Feb[r]uary
  • gove[r]nor
  • hi[er]archy
  • lib[r]ary
  • lit[er]ature
  • prost[r]ate (not to be confused with prostate [cancer])
  • vete[ri]narian
  • … and many more. (See the blog entry for her list.)
As Hall points out, this can also occur with L—her specific example is Pache[l]bel’s Canon; there’s even a lovely example of this on Amazon.

This is just another example of one of the wonderful things about learning linguistics—you go from “Why do people say this wrong?” to just “Why do people say this?” And the latter is actually a much more interesting question.



  11:18 AM

Apropos of the most recent post, I was using my phone to access the Dictionary.com site and found the following. I don't see this on the web-based site.



  08:57 PM

I haven't put a lot of thought into this yet, so this is a, you know, thought in process. Consider the following utterances:

I saw it on my Facebook.
I've posted a blog about that.
I read this great Tumblr ...
There's a Wikipedia about it.

I think it's clear that these are synecdoches of one sort or another, but there is some subtlety to their usage.

Let's start with Facebook. Many times I've heard people refer to my Facebook:

A guy on my facebook just proposed ... [source]

An Open Letter To The Women On My Facebook Whose Husbands are Policemen [source]

What you might expect here is something like my Facebook wall or feed or page or timeline. But there are other usages where people might be eliding account.
So by logging into my Spotify, my Facebook was reactivated without my knowledge.

I still haven't logged on to my Facebook [source]

Since I’ve had a Facebook, I think I got one in 2007, that’s a total of 1,274 hours, or 53 DAYS. [source]
I've had my Facebook since third grade. [source]

Comment (on FB): My Facebook is basically all about life's small dramas.
Next comment: Everyone's facebook is.
I've heard this own usage ("my facebook") from my own kids (mid-20s).

It's not hard at all to find instances of people using blog to mean something like blog entry:
I posted a blog today [source]

I have a MYSPACE account where I posted a blog [source]
I like the second example because the writer uses uses blog in a meronymic way, but doesn't do the same for MySpace. It wouldn't be unreasonable to expect to see I have a MySpace here, but we don't.

Update: I found an example of this in a surprising place, namely on the mobile page for Dictionary.com.

Probably the most common example of a synecdoche that I hear these days is my Tumblr, representing (mostly) my Tumblr blog:
just added a music playlist on my tumblr :D

Finally! I added music to my tumblr.

I was actually inspired to post this because I overheard someone at work say There's a Wikipedia about that. It was the first time that I recalled hearing an example of this elision with Wikipedia specifically.

So, more another time when I've thought about this further and have more examples. And btw, I go back and forth on whether these are examples of synecdoche or whether it's some other phenomenon besides simple elision.



  09:19 PM

This is an update to an earlier post, People who work at "___" call themselves "___". At the time I wrote that piece, I worked at Microsoft, which is to say, I was a Microsoftie. In the interim, I spent a couple of years as an Amazonian. Late last year I joined a new company—Tableau Software. Naturally, one of the first things I wanted to learn about is what people inside the company called themselves.

It turns out that people in the company have given this some thought. So much so, in fact, that there are factions. One of the senior executives is fond of the term Tablets. But the rank and file seem to be converging around the term Tabloids.

Update I had a discussion in Facebook about this and got two excellent suggestions: Tablafarians and vizards. The latter probably requires some explanation. Tableau software is used to make data visualizations, which the in-crowd refers to as vizzes (singular: viz). Thus viz-ards. Brilliant.

Update #2 Nancy Friedman reminds me that a while back she investigated the surprising etymology of the term tabloid.

When I look through the list I have of other such names, I'm seeing just one other -oid ending (Proctoids), which surprises me. For reasons I cannot articulate, it feels like it should be a more commonly used particle. I still have not delved into this (future project perhaps), but there are presumably phonological, perhaps morphological, reasons why the names emerge as they do. Why not more -oids?

And then there is still the question of a name for this name. In the earlier post, I noted that folks had suggested corporanym, employeenym, idionym, and the somewhat esoteric ergazomenonym. A while back, I also challenged the readers of VisualThesaurus.com to come up with a term, and they variously suggested ergonym (work+name), salarionym, and emponym or employnym.

Well, just today I ran across an existing term, maybe two, that might fit the bill, altho these might require a little squinting: endonym (within+name) and autonym (self+name). Endonym is surprisingly obscure: the OED has no entry, nor does Dictionary.com, nor does Merriam-Webster.com. But Wikipedia does, in an article that discusses both endoym and exonym. These are (per the article) terms from ethnolinguistics:
... exonyms and endonyms are the names of ethnic groups and where they live, as identified respectively by outsiders and by the group itself. Endonym or autonym is the name given by an ethnic group to its own geographical entity (toponymy), or the name an ethnic group calls itself, often laudatory or self-aggrandizing. Exonym or xenonym is the name given to an ethnic group or to a geographical entity by another ethnic group.
I don't think a term like Microsoftie or Tabloid could be considered particularly "laudatory or self-aggrandizing." Nor would one necessarily want to suggest that company employees constitute an ethnic group, in spite of much talk (especially recently) about (corporate) culture. But such names definitely are endo- and auto-. So I'll try out endoym for a while and see how that goes.

[categories]   ,


  09:30 PM

I found an interesting intersection recently of two things I think about a lot. One is traffic, a topic of perennial interest to me. The second is data visualizations, something that I'm comparatively new to but very interested in.

Let me back up slightly. Not long ago (maybe in 2013?), the state of Washington introduced variable speed limits in a some areas that are prone to congestion, like on I-5 northbound approaching Seattle:

[source, license, cropped slightly and reduced]

I was traveling with someone (my daughter, I think) who asked "Does that work?" To which my answer was that it could, if people actually obeyed these variable limits[1]. (Which they don't at all.) What's the theory?

On their website, the state explains variable speed limits this way:
Ideally, approaching traffic will slow down and pass through the problem area at a slower but more consistent speed reducing stop and go traffic. By reducing stop and go traffic we’re also reducing the probability of an accident by giving drivers more time to react to changing road conditions. This helps drivers avoid the need to brake sharply as they approach congestion.
Hmmm. This sort of describes the theory, but only in general terms. I also found the following on a different state site, which explains the theory even less, but does include a curious bonus reason (emphasis mine) for variable speed limits:
Variable speed limits offer considerable promise in restoring the credibility of speed limits and improving safety by restricting speeds during adverse conditions.
So let me give it a shot. Imagine that you want to go to the movies. You go to the ticket booth and buy tickets. Let's say that this transaction takes 30 seconds. Just as you finish, someone else walks up to buy their ticket. Just as they finish their 30-second transaction, a third person walks up, and so on. As long as people don't arrive at the ticket booth any more frequently than every 30 seconds, there's never a line.

But let's say that 15 seconds after you started buying your tickets, someone gets in line behind you. That person has to wait 15 seconds. And let's say people arrive at the ticket booth every 15 seconds from then on, but the ticket vender can't go any faster than one transcation per 30 seconds. The result is that the line grows, and it continues to grow as long as people arrive at the queue faster than they can buy tickets. The ticket booth is a bottleneck, and the queue is congestion.

Make sense? Congestion results from people being added to a queue (or otherwise approaching a bottleneck) faster than they can leave it. This is as true for people buying movie tickets as it is for cars approaching a slowdown. If you can prevent people from joining the queue faster than they can leave it, you can reduce the delay. If you're selling movie tickets, I don't know how you prevent people from getting in line. But if you're managing traffic, you can try to keep people out of the congestion by slowing down how fast they get to the point where the slowdown occurs.

Some people have understood this for a long time, and voluntarily slow down when it looks like traffic is heavy ahead. William Beaty has a great article (undated?) in which he dives deep on ways that even a few drivers who behave intelligently in congestion and during merges can improve flow for everyone. And while his suggestions undoubtedly work, they rely on people engaging in non-intuitive behavior, like allowing people to merge (gasp!) and leaving long-ish gaps ahead of them.

Since most people don't have the benefit of Beaty's insights, the state has decided to try variable speed limits: if people won't regulate their own speed in reaction to congestion ahead, the state (the state's computers) will attempt to do it for them.

This brings me to the visualization part of our story. Lewis Lehe is a graduate student in transportation engineering who's created a beautiful, interactive visualization that illustrates bottlenecks. (The viz is actually about the difference between bottlenecks, which I'm interested here, and gridlock.) Lehe's visualization shows cars arriving at and leaving a bottleneck, and you can adjust the arrival rate to see interactively how congestion grows if cars arrive faster than they can leave (or vice versa). Click the link and then play with the viz to get a great sense of how variable speed limits could work.

An interesting promise of self-driving cars, like the one apparently forthcoming from Google, is that they could be a whole lot smarter than human drivers about driving in congested conditions. Assuming, of course, that humans aren't allowed to take control of a car that's driving—per their own sense—exasperatingly slow. That remains to be seen.

[1] In fact, the minimum speed (perhaps by federal law?) is 40 MPH, so there's definitely a bottom limit to when variable speeds could be effective.



  04:09 AM

We English speakers can occasionally have some hiccups sorting out the singular or plural nature of nouns, especially when the nouns represents represent a collection of individuals.

Basically speaking, in American English, a mass noun tends to be treated as a singular:

Apple has announced a new version of the iPhone.
Microsoft releases a new update every week.

In British English, these tend to be treated as plural:

Apple have announced a new version of the iPhone.
Microsoft release a new update every week.

Not long ago, an FB friend of mine was posting about an upcoming tour by the rock band The Who. He wrote:

The Who is (are?) coming.

Following the general rule, this is The Who is coming in American English, and The Who are coming in British English.

But consider mass nouns of this type when the noun itself is marked for plural:

The Rolling Stones are going on tour.[1]

Not even Americans will treat this as singular.

I ran across another angle on this issue today when I saw a headline about Marshawn Lynch, who plays football for the Seattle Seahawks. Behold:

As with sports teams generally, the name is plural. And as with the Rolling Stones, even in American English, we'll treat this name—which is trademarked—as plural, since it's marked that way: The Seahawks have won the game.

But the writer here got in a bind: if the Seahawks™ are a team, and even if we think of them as a (plural) collection of individual, how do you refer to any one member?

I suspect that in informal settings, people will mostly use the singular: Marshawn Lynch will be a Seahawk. Perhaps an overly attentive editor got concerned about using a trademarked name incorrectly. But the result in this case comes out sounding very odd.

[1] Not that I know of.


[2] |

  11:50 PM

I’ve had two occasions recently of seeing myself represented in, like, actual books. This is a little startling, in a pleasing kind of way.

The first reference is explicit. In his book Engineering Security (or at least in the April 2013 draft of it—download it here), Peter Gutmann is discussing the problem of putting security decisions in front of users. Here’s a paragraph out of that chapter:
The abstract problem that the no-useless-buttons policy addresses has been termed “feature-centric development”. This overloads the user with decisions to a point where they adopt the defensive posture of forgoing making them. As Microsoft technical editor Mike Pope points out, “security questions cannot be asked on a ‘retail’ basis. The way users make security decisions is to set their policies appropriately and then let the security system enforce their wishes ‘wholesale’”
Boy, was I tickled when I ran across that. But I didn’t remember being that smart, so I went to the blog to figure out where I had said such an interesting thing. Alas, although it is true that this information appears on my blog, it’s actually a citation from the eminently quotable Eric Lippert, who knows a great deal more about security than I ever will.

And then today I was reading Steven Pinker’s new book A Sense of Style. This is Pinker’s shot at a guide to writing (i.e., a usage guide), with the twist that Pinker is a cognitive psychologist, so he proposes guidance for clarity and comprehensibility in terms of how the brain processes the written word. (It’s more interesting than I’ve just made it sound.)

At one point, Pinker is talking about how the “geometry” of sentences determines how well readers can comprehend them. For example, it can be problematic for readers to parse long “left-branching” constructions, where qualifiers come at the beginning of the sentence: “if [the modifier] starts to get longer it can force the reader to entertain a complicated qualification before she has any idea what it is qualifying.”

He has a number of examples, including the following:
  • The US Department of the Treasury Office of Foreign Assets Control

  • T-fal Ultimate Hard Anodized Nonstick Expert Interior Thermo-Spot Heat Indicator Anti-Warp Base Dishwasher Safe 12-Piece Cookware Set.
And here’s another of this examples:
  • Failed password security question answer attempts limit
Ha! I thought. I know exactly where he got that last example: from me. Well, sort of. Once upon a time I wrote a blog entry about “noun stacks”—big ol’ piles of words like these examples. In the entry I included a number of examples that I had run across at Microsoft. The blog entry was picked up by the Language Log, which is undoubtedly where Pinker actually found the example. But I know where that example really came from.

Naturally, many people find themselves cited constantly, both formally (like, academics) and in popular writing. I suppose a person can get used to reading along and seeing something they’ve written cited in an article or book or whatever. For me, though, even just these tenuous associations with real books is quite exciting. :-)

[categories]   ,

[1] |

  10:26 PM

Sarah and I have been engaged in a gradual process of downsizing, and one of the ways we’ve been doing that is by shrinking our extensive collection of books. Not long ago we did another round of culling and pulled five boxes of books off the shelves. Then, in keeping with what we’ve done many times before, we lugged our boxes around to bookstores in order to sell them.

Prior experience suggested that we’d have the best luck with specific bookstores. Several times I’ve sold books to Henderson’s and Michael’s in Bellingham; the former in particular has always paid top dollar for books, which is reflected in their excellent on-shelf inventory. We have reason anyway to occasionally visit Bellingham, so not long ago we hauled our boxes northward.

But it proved disappointing. We used their handcart to wheel our five boxes in; the stony-faced buyer picked out about 25 books, and we wheeled five boxes back to the car. Michael’s, which is across the street from Henderson’s, was not buying at all, only offering store credit.

With diminished enthusiasm, we headed back south. Our next stop was Third Place Books in Lake Forest Park. Like Henderson’s, they carefully picked out a small stack of books and gave us back the rest. Although I was tempted to visit Magus Books in the U District—in my experience, they’ve always been interested in more academically oriented books—the day had already gotten long for little gain. Therefore, our last stop was Weasel Half-Price Books, which gave us a handful of change for the remaining four boxes. Presumably we could have demanded back the books they were not interested in, but by then we we'd lost pretty much all of our energy for dealing with the boxes, even to donate them to the library.

All in all it was a heartbreaking experience. The web has been a good tool for those who like books. Sites like Abebooks have created a global market for used books, so that a place like Henderson’s can offer its inventory not just to those in the environs of Bellingham, WA, but to anyone with an internet connection. But the internet has also brought a lot more precision to this market; a bookseller has a much better idea today of what a book is worth—or not worth—on the open market. One effect certainly has been that the buyers at all these bookstores are much choosier than they might have been 15 years ago, when (I suspect) buying decisions were still reliant on a dash of instinct.

More than that, and a fact that’s hard for me to accept, is that used books are a commodity of diminishing value. We collected those books over decades, and each acquisition had personal meaning to us. I could easily have spent an hour pulling books out of the boxes and explaining to the buyers at Henderson’s or Third Place or Half-Price why I bought the book, and when, and why I’d kept it all these years, and why it was a book sure to appeal to some other reader. But they don’t care about your stories, a fact that’s all too obvious when you’re standing at their counter, meekly awaiting a payment that represents a tiny fraction of your investment—financial and otherwise—in the books you’ve handed over.

No one really wants my old VCR tapes or CDs or even DVDs much anymore, either, although I don’t have as much emotional investment in those as I do in books. And I can’t really fault booksellers for their choosiness, since their continued success is dependent on hard-headed decisions about their inventory.

We still have five bookshelves filled with books at home, and we'll continue to downsize. I think I might be done with trying to sell the books, though. I'm not sure I want to experience the sadness of seeing how little all these lovely books are worth to anyone else but us.

[categories]   ,

[1] |

  09:02 PM

I was reading some employee policy documents recently when I ran across this:
It is still preferred that complaints are handled internally.
There are some interesting things here to contemplate. Let's start with It is [still] preferred that.... A more active way to phrase this is We still prefer that .... The construct that starts with It is is not technically passive—there's no subject-object inversion (as in "The man was bitten by the dog.") But the it is used in an impersonal way here, which has a passive feel, and it seems clear (<-- haha) that whoever wrote this was intent on not stating who was doing the preferring.

Then there's ... complaints are handled internally. This actually looks like a real passive ([someone] handles complaints becomes complaints are handled.) Again it seems that there's an intent to avoid stating a subject for handle.

But an odder thing is that complaints are is an example that might be cited when people talk about how the subjunctive is disappearing in English. Many people would rewrite the sentence as ... preferred that the complaints be handled internally, which is a fine use of subjunctive ("be") to indicate a statement that represents "opinion, belief, purpose, intention, or desire." Consider:

They insist that he is there.
They insist that he be there.

The sentences mean different things, and the latter uses be to mark a subjunctive that indicates the aforementioned intention, desire, etc.

Gabe Doyle has a writeup on the what's invariably referred to as the "death" of the subjunctive, and one of his examples (3a and 3b) shows the same conflation between subjunctive be and indicative is.

Anyway, it's a lot of grammatical food for thought in one sentence, don't you think?



  09:52 AM

Carrying on with adventures using the Tumblr API. (Part 1, Part 2)

As noted, I decided that I wanted to create a local HTML file out of my downloaded/exported Tumblr posts. In my initial cut, I iterated over the list of TumblrClass instances that I'd assembled from the downloaded posts, and I then wrote out a bunch of hard-coded HTML. This worked, but was inflexible, to say the least—what if I wanted to reorder items or something?

So I fell back on yet another old habit. I created a "template" of the HTML block that I wanted, using known strings in the template that I could swap out for content. Here's the HTML template layout, where strings like %%%posttitle%%% and %%%posturl%%% are placeholders for where I want the HTML to go:
<!-- tumblr_block_template.html -->
<div class="post">
    <div class="posttitle">%%%posttitle%%%</div>
    <div class="postdate">%%%postdate%%%</div>
    <div class="posttext">%%%posttext%%%</div>
    <div class="postsource">%%%postsource%%%</div>
    <div class="posturl"><a href="%%%posturl%%%"
    <div class="postctr">[%%%postcounter%%%]&nbsp;
        <span class="posttype">%%%posttype%%%</span>
The idea is to read the template, read each TumblrClass item, swap out the appropriate member for the placeholder, and build up a series of these blocks. Here's the code to read the template and build the blocks of content:
html_output = ''
html_file = open('c:\\Tumblr\\tumblr_block_template.html', 'r')
html_block_template = html_file.read()
ctr = 0
for p in sorted_posts:
    new_html_block = html_block_template
    ctr += 1
    new_html_block = new_html_block.replace('%%%posttitle%%%', p.post_title)
    new_html_block = new_html_block.replace('%%%postdate%%%', p.post_date)
    new_html_block = new_html_block.replace('%%%posttext%%%', p.post_text)
    new_html_block = new_html_block.replace('%%%postsource%%%', p.post_source)
    new_html_block = new_html_block.replace('%%%posturl%%%', p.post_url)
    new_html_block = new_html_block.replace('%%%postcounter%%%', str(ctr))
    html_output += new_html_block
To embed these <div> blocks into an HTML file, I did the same thing again—I created a template .html file that looks like this:
<!-- tumblr_template.html -->
  <link rel="stylesheet" href="tumbl_posts.css" type="text/css">
  <meta http-equiv="content-type" content="text/html;charset=utf-8">
<h1>Tumblr Posts</h1>
With this in hand, I can read the template .html file and do the swap thing again, and then write out a new file. To actually write the file, I generated a timestamp to use as part of the file name: 'tumbl_bu-' plus %Y-%m-%d-%H-%M-%S plus '.html'.

There was one complication. I got some errors while writing the file out, which turned out to be an issue with Unicode encoding—apparently certain cites that I pasted into Tumblr contain characters that can’t be converted to ASCII, which is the default encoding for writing out a file. The solution there is to use the codecs module to convert. (It’s possible that this is a problem only in Python 2.x.)

Here’s the complete listing for the Python script. (I wrapped some of the lines in a Python-legal way to squeeze them for the blog.)
import datetime,json,requests
import codecs # For converting Unicode in source

class TumblrPost:
def __init__(self,
self.post_url = post_url
self.post_date = post_date
self.post_text = post_text
self.post_source = post_source
self.post_type = post_type
if post_title is None or post_title == '':
self.post_title = ''
self.post_title = post_title

all_posts = [] # List to hold instances of the TumblrPost class
html_output = '' # String to hold the formatted HTML for all the posts
folder_name = 'C:\\Tumblr\\'

# Get the text posts and add them as TumblrPost objects to the all_posts_list
print "Fetching text entries ..."
request_url = 'http://api.tumblr.com/v2/blog/mikepope.tumblr.com/posts/text?api_key=[MY_KEY]'
offset = 0
posts_still_left = True
while posts_still_left:
request_url += "&offset=" + str(offset)
print "\tFetching text entries (%i) ..." % offset
tumblr_response = requests.get(request_url).json()
total_posts = tumblr_response['response']['total_posts']
for post in tumblr_response['response']['posts']:
# See https://www.tumblr.com/docs/en/api/v2#text-posts
p = TumblrPost(post['post_url'],
post['body'], '',
'text') # No source for text posts
offset += 20
if offset > total_posts:
posts_still_left = False

# Get the quotes posts and add them as TumblrPost objects to the all_posts_list.
print "Fetching quote entries ..."
request_url = 'http://api.tumblr.com/v2/blog/mikepope.tumblr.com/posts/quote?api_key=[MY_KEY]'
offset = 0
posts_still_left = True
while posts_still_left:
request_url += "&offset=" + str(offset)
print "\tFetching quote entries (%i) ..." % offset
tumblr_response = requests.get(request_url).json()
total_posts = tumblr_response['response']['total_posts']
for post in tumblr_response['response']['posts']:
# See https://www.tumblr.com/docs/en/api/v2#quote-posts
p = TumblrPost(post['post_url'],
post['source'], '',
'quote') # No title for quote posts
offset += 20
if offset > total_posts:
posts_still_left = False

sorted_posts = sorted(all_posts,
key=lambda tpost: tpost.post_date,

print "Creating HTML file ..."

# Read a file that contains the HTML layout of the posts,
# with placeholders for individual bits of data
html_file = open(folder_name + 'tumblr_block_template.html', 'r')
html_block_template = html_file.read()

ctr = 0
for p in sorted_posts:
new_html_block = html_block_template
ctr += 1
new_html_block = new_html_block.replace('%%%posttitle%%%', p.post_title)
new_html_block = new_html_block.replace('%%%postdate%%%', p.post_date)
new_html_block = new_html_block.replace('%%%posttext%%%', p.post_text)
new_html_block = new_html_block.replace('%%%postsource%%%', p.post_source)
new_html_block = new_html_block.replace('%%%posturl%%%', p.post_url)
new_html_block = new_html_block.replace('%%%postcounter%%%', str(ctr))
new_html_block = new_html_block.replace('%%%posttype%%%', p.post_type)
html_output += new_html_block

# The template has a placeholder for the content that's generated dynamically
html_file = open(folder_name + 'tumblr_template.html', 'r')
html_file_contents = html_file.read()
html_file_contents = html_file_contents.replace('%%%posts%%%', html_output)

# Open (i.e., create) a new file with the ability to write Unicode.
# See http://stackoverflow.com/questions/934160/write-to-utf-8-file-in-python
file_timestamp = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')
with codecs.open(folder_name +
'tumbl_bu-' +
file_timestamp +
'.html', 'w', "utf-8-sig") \
as new_html_file:

print 'Done!'