Monthly ArchiveApril 2009
General Wesley R. Elsberry on 27 Apr 2009
Jerry Coyne lets NCSE know he doesn’t like what they said. Meanwhile, NCSE’s April 2009 fundraising letter includes the following:
At the $100 donation level, we are pleased to offer Jerry Coyne’s Why Evolution is True, a lively and lucid review of the evidence for evolution.
NCSE’s choice of books to use in fundraising promotions and in sales doesn’t seem to have any relation to viewpoint of author except that they fall on the pro-science side of the fence. Nor do I expect that there will be any hard feelings over Coyne’s criticism.<= get_option(\'vc_tag\') ?>> = get_option(\'vc_text_before\') ?> 7501 = get_option(\'vc_human_count_text_many\') ?> = get_option(\'vc_preposition\') ?> 2525 = get_option(\'vc_human_viewers_text_many\') ?> = get_option(\'vc_tag\') ?>>
General Wesley R. Elsberry on 27 Apr 2009
Over at “wattupwiththat”, a commenter opined some time ago:
I remember when I was a kid playing with a bicycle pump that compressing a gas heats it up. Is it possible that some of the high surface temps on Venus are because of that pressure?
Why not have a cold beer to help think that one through?<= get_option(\'vc_tag\') ?>> = get_option(\'vc_text_before\') ?> 6854 = get_option(\'vc_human_count_text_many\') ?> = get_option(\'vc_preposition\') ?> 2401 = get_option(\'vc_human_viewers_text_many\') ?> = get_option(\'vc_tag\') ?>>
General Wesley R. Elsberry on 25 Apr 2009
Philosopher Russell Blackford takes issue with various science advocacy organizations pointing out that many people of faith also manage to accept the findings of science when it comes to evolutionary science. Blackford thinks this is wrong, essentially because the science organizations are infringing on philosophical turf:
This leaves aside the arrogance of science organisations appearing to favour particular religious viewpoints. Of course, it’s true that some religious viewpoints are just irrational, in that they plainly contradict well-established scientific findings. Others, even on my account, are incompatible with science only in relatively subtle ways, and reasonable people with those viewpoints could put some kind of case against my position (even though I might not consider that case to be at all plausible). While this is all true, it’s not up the scientific organisations to be saying it. That’s outside their remit.
Blackford expands a bit on what he sees as acceptable science advocacy organization behavior:
Science organisations should stick to the point that certain findings are the result of systematic, rational investigation of the world, supported overwhelmingly by several lines of converging evidence. In putting that case, they can be “religion blind”; they should present the evidence for the scientific picture, but that’s as far as they should go. They should not comment on what specific theological positions are or are not compatible with science. Leave that to the squabblings of philosophers and theologians, and, indeed, of individual scientists or other citizens. We can think and argue about it for ourselves.
This goes further than just what science advocacy organizations say about the religion and science issue (which I think Blackford mischaracterizes in any case). This makes clear that so far as Blackford is concerned, science advocacy organizations have no business with any aspect of public policy. Blackford at least has provided no qualifying statements that would indicate that talking about science and religion is a special case, and his entire argument is structured in such a way that it does not admit of having special cases: Organizations don’t get to have opinions when those cross over into the intellectual turf handled by people outside the science organization’s particular field of interest.
I think that Blackford misses the point pretty completely. The religious antievolution movement is not something that is primarily about the state of the evidence and the scientific theories about that evidence. Instead, it is a social and political phenomenon. Telling science advocacy organizations to only talk about the evidence and theories is not just shortsighted; it is wrong. Science advocacy organizations need to address both the state of the science (to undercut that false claim to intellectual legitimacy that religious antievolutionists make) and also actively engage in the public policy debate. And that means that there will be discussion of the factors that underlie religious antievolution, whether it offends Blackford’s territorial impulses or not.
Blackford could have a point if science advocacy organizations were also advocating religion, and in fact Blackford implies just that:
This leaves aside the arrogance of science organisations appearing to favour particular religious viewpoints.
It could be a real concern, just as Blackford points out that various counterfactuals asserted by certain denominations could have been true, but are ruled out by the evidence. I don’t see any evidence that science advocacy organizations are favoring particular religious viewpoints. What I have seen done is noting the existence and extent of particular religious viewpoints, which is a rather different issue.
All in all, it is pretty ironic that Blackford has chosen this approach, given how various and sundry evangelical atheists have long complained that they have felt pressured not to emphasize their viewpoint of null compatibility between science and religion in the interest of pursuing the public policy goal of obtaining good science education. Is turnabout supposed to be a good thing now?<= get_option(\'vc_tag\') ?>> = get_option(\'vc_text_before\') ?> 7454 = get_option(\'vc_human_count_text_many\') ?> = get_option(\'vc_preposition\') ?> 2848 = get_option(\'vc_human_viewers_text_many\') ?> = get_option(\'vc_tag\') ?>>
The Peoria Journal Star’s opinion page has a couple of recent entries. Here’s a disappointing rant from someone who claims to be a middle school science teacher:
The Texas Board of Education allowing evolutionary theory to be questioned is long overdue.
All science theories should be scrutinized. Otherwise, Einstein would not have proven that time is not constant and that gravity is simply acceleration through space/time. Those school boards that add to their biology books that parts of evolution may not be correct don’t go far enough. No concept in any science book should be absolutely accepted.
Parts of the evolutionary theory are confusing. If survival of the fittest is the standard, then why don’t we let diabetics die instead of weakening the gene pool? Where does compassion fit into this theory?
If brain power propelled man to the top of the food chain, why have all other plants and animals been denied this intelligence? The first time I hear a duck ask a hunter, “Could you please aim that shotgun somewhere else?” I will be impressed.
What explains the enormous complexity of the human body with thousands of processes operating simultaneously that, by themselves, have no purpose? What evolutionary advantage did the first bat have that sent out a sonar signal with no receptors to receive the reflection?
“Teaching students to think is more important than what to think” should be more than just a slogan.
Morton Junior High School
Karen Bartelt, who many readers may remember from her thorough demolition of the “dissertation” filed by “Dr.” Kent Hovind, responded to Kutkat. She kindly sent me the complete letter she submitted to the Peoria Journal Star with permission to post it.
The first step in being able to scrutinize a scientific theory like evolution is to understand it. This is true whether one is a high school biology student or a junior high science teacher. Gary Kutkatb’s mind-numbingly ignorant caricature of evolution demonstrates that he neither understands evolution nor realizes where science stops and disciplines like ethics begin. His letter says a lot more about his own scientific background, or lack thereof, than it does about evolution and science.
Parts of evolutionary theory become less confusing when one studies the evidence supporting this scientific paradigm. A recent and very accessible book is Why Evolution is True, by Jerry Coyne.
Scientific theories ARE continuously scrutinized. It is by this process that evolution is now recognized, to paraphrase biologist E.O. Wilson, as one of the two universal principles governing our understanding of life. The other principle includes the laws of physics and chemistry. The vast majority of people who work in science see evolution in this light, because they are aware of the evidence supporting it.
Students should be encouraged to question what they learn, but it’s important that they know what they are talking about first.
Karen E. Bartelt, Ph.D.
Semi-retired science educator
As someone who has actually done research on biosonar, let me take up Kutkat’s swipe there:
What evolutionary advantage did the first bat have that sent out a sonar signal with no receptors to receive the reflection?
This rather precisely makes Bartelt’s point. Kutkat is apparently unaware that the hearing apparatus in vertebrates has been described by a researcher with decades of experience, Art Popper, as showing variations on a theme, the theme being established in various fish lineages, and showing modifications of anatomy in amphibians, reptiles, and humans. The receptors are hearing organs or ears, and nobody with half a clue thinks that the last common ancestor of bats didn’t have ears. Humans don’t have built-in active biosonar, but research has shown that humans can perform target discrimination tasks as well as dolphins when a slowed-down version of a dolphin biosonar click train is provided for the humans. Blind humans have taken up echolocation, and have not had any problem using the receptors they still have the use of.
Kutkat may not be aware of how extensively biosonar is used. The most derived systems are those found in some bats and in odontocetes, the toothed whales, but biosonar has also been observed to be used by shrews, voles, badgers, some birds, and most recently a group of parasitic wasps was noted to use it. Most of these other organisms are using biosonar at a very coarse level of resolution, and these sorts of systems make it clear that one need not have the highly-tuned system of some bats in order to derive benefit from active biosonar.
This isn’t the first time a religious antievolutionist has trotted out a claim that biosonar somehow disproves evolutionary biology, and I doubt it will be the last.<= get_option(\'vc_tag\') ?>> = get_option(\'vc_text_before\') ?> 11184 = get_option(\'vc_human_count_text_many\') ?> = get_option(\'vc_preposition\') ?> 3644 = get_option(\'vc_human_viewers_text_many\') ?> = get_option(\'vc_tag\') ?>>
General Wesley R. Elsberry on 20 Apr 2009
Back around 2001, Jeff Shallit of the University of Waterloo asked me about collaborating on a critique of various claims made by William Dembski. Late in 2002, we had a completed manuscript. However, Dembski is not considered a hot topic most places, given that his claims have almost entirely appeared in popular rather than academic venues. In 2006, though, Glenn Branch became a co-editor for a topical issue of Synthese, which was to take up the subject of religious antievolution, and our submission there went through the revision process and finally page proofs quite recently. The paper is now published and available for about $35. Don’t believe the submission date listed there; our submission was complete as of early October, 2006.
Of course, the original, longer version is still available for free.
<= get_option(\'vc_tag\') ?>> = get_option(\'vc_text_before\') ?> 7084 = get_option(\'vc_human_count_text_many\') ?> = get_option(\'vc_preposition\') ?> 2668 = get_option(\'vc_human_viewers_text_many\') ?> = get_option(\'vc_tag\') ?>>
Information theory, evolutionary computation, and Dembski’s “complex specified information”Journal Synthese Publisher Springer Netherlands ISSN 0039-7857 (Print) 1573-0964 (Online) DOI 10.1007/s11229-009-9542-8 Subject Collection Humanities, Social Sciences and Law SpringerLink Date Thursday, April 16, 2009
Information theory, evolutionary computation, and Dembski’s “complex specified information”
Wesley Elsberry1, 2 Contact Information and Jeffrey Shallit3 Contact Information
(1) Lyman Briggs College, Michigan State University, East Lansing, MI 48825, USA
(2) National Center for Science Education, 420 40th Street, Suite 2, Oakland, CA 94609-2509, USA
(3) School of Computer Science, University of Waterloo, Waterloo, ON, N2L 3G1, Canada
Received: 23 March 2009 Accepted: 25 March 2009 Published online: 16 April 2009
Abstract Intelligent design advocate William Dembski has introduced a measure of information called “complex specified information”, or CSI. He claims that CSI is a reliable marker of design by intelligent agents. He puts forth a “Law of Conservation of Information” which states that chance and natural laws are incapable of generating CSI. In particular, CSI cannot be generated by evolutionary computation. Dembski asserts that CSI is present in intelligent causes and in the flagellum of Escherichia coli, and concludes that neither have natural explanations. In this paper, we examine Dembski’s claims, point out significant errors in his reasoning, and conclude that there is no reason to accept his assertions.
Keywords Information theory – Evolutionary computation – Artificial life – Pseudomathematics – Complex specified information
Antievolution Wesley R. Elsberry on 20 Apr 2009
In Part 1, I introduced the “weasel” program, gave an overview of its role as a teaching tool, and gave some analysis of random search, the procedure that is contrasted with cumulative selection. This time, I’ll be going into the behavior of “weasel” and some math relevant to “weasel” itself.
The original description of “weasel” by Richard Dawkins in “The Blind Watchmaker” laid out how the program operated. The essential elements of a “weasel” program are as follows:
- Use a set of characters that includes the upper case alphabet and a space.
- Initialize a population of -character strings by copying with mutation a parent string formed by random assignments of characters from our character set.
- Identify the string closest to the target string in the population.
- If a string matches the target, terminate.
- Base a new generation population of size n upon copies of the closest matching string or strings, where each position has a chance of randomly mutating, based upon a set mutation rate.
- Go to step 3.
Note that I said “program” above and not “algorithm”. There is no guarantee that the program as described will halt, or terminate. While Dawkins did specify that and , he did not share precisely what values he chose to use for and . Because Dawkins did not see the need to discuss alternative methods for ensuring that the program would come to an end, one can reasonably infer that in his own runs of the program, he was using parameters of and that would result in termination of the program. He reported in “The Blind Watchmaker” that in three runs, the target string was matched in 43, 64, and 41 generations. Later, I’ll see about doing some forensics to see if a range of parameters can be estimated for Dawkins’ original runs. It might be the case that I can exclude whole ranges of parameters.
The following code is just 34 lines, three of them output statements, and does nothing particularly fancy, so it should be understandable with small effort on the reader’s part. It’s just straight-up structured programming, so there isn’t even object-oriented abstraction going on here.
- import random # Get Pseudo-Random Number Generator (PRNG)
- random.SystemRandom() # Seed PRNG
- n = 250 # Set population size
- t = "METHINKS IT IS LIKE A WEASEL" # Set target
- b = " ABCDEFGHIJKLMNOPQRSTUVWXYZ" # Set base pool
- u = 1.0 / len(b) # Set mutation rate
- print "PopSize=%d, MutRate=%f, Bases=%s, Target=%s" % (n,u,b,t)
- p = "" # Initialize parent randomly
- for ii in range(len(t)): # Make parent the same length as target
- p += random.choice(b) # Add a randomly selected base to parent
- print " Parent=%s" % (p)
- done = False # Assume we haven't matched the target; we'll be wrong once in 1e40 times
- g = 0 # Initialize the generation count
- while (done == False): # Keep going until a match is found or forever
- pop =  # Previous population is cleared out
- bmcnt = 0 # Initialize best match count
- bc = "" # Initialize best candidate holder
- for ii in range(n): # Over the population size, do this:
- pop.append("") # Append a new blank candidate
- mcnt = 0 # Initialize the match count
- for jj in range(len(t)): # Over the candidate length, do this:
- if (u >= random.random()): # Test for whether mutation happens here
- pop[ii] = pop[ii][0:jj] + random.choice(b) # Add a mutant base
- pop[ii] = pop[ii][0:jj] + p[jj] # Copy base from parent
- if (pop[ii][jj] == t[jj]): mcnt += 1 # If matched to target, increment
- if (mcnt > bmcnt): # If candidate matches more bases than best so far
- bmcnt = mcnt # Set the best match count to current match count
- bc = pop[ii] # Set the best candidate to the current candidate
- if (mcnt == len(t)): # Check to see whether all bases match the target
- done = True # When all match up, we are done
- g += 1 # Increment the generation count
- print "Gen=%05d, %02d/%d matched, Best=%s, Total=%06d" % (g,bmcnt,len(t),bc,g*n)
- p = bc # Parent for next gen. is best candidate from this gen.
Here’s a sample output from a “weasel” run, generated by the Python code above:
PopSize=250, MutRate=0.037037, Bases= ABCDEFGHIJKLMNOPQRSTUVWXYZ, Target=METHINKS IT IS LIKE A WEASEL Parent=WAPXSPETTBEOUNRCUE AEDT BJPH Gen=00001, 01/28 matched, Best=WAPXSPETTBEOUSRCUE AEDT BJPH, Total=000250 Gen=00002, 02/28 matched, Best=WAPXSPETTBE USRCUE AEDT BJPH, Total=000500 Gen=00003, 03/28 matched, Best=WATXSPETTBE USRCGE AEDT BJYH, Total=000750 Gen=00004, 04/28 matched, Best=WATXSPKTTBE USRCGE AEDT BJYH, Total=001000 Gen=00005, 05/28 matched, Best=DATXSPKTTBE USRCGE AADT BUYH, Total=001250 Gen=00006, 06/28 matched, Best=DATXSPKTTBE USRCGE AALT BSYH, Total=001500 Gen=00007, 07/28 matched, Best=GATXSPKTTBE USRCGE AALTEBSYH, Total=001750 Gen=00008, 08/28 matched, Best=WATXSPKTTBE USRCGE AALWEBSYX, Total=002000 Gen=00009, 09/28 matched, Best=WATXSPKTTBE USRCGEEAALWEBSYX, Total=002250 Gen=00010, 10/28 matched, Best=WATXSPKT BE USRCGEEAALWEBSYX, Total=002500 Gen=00011, 13/28 matched, Best=WATHSPKT BE US CGEE ALWEBSYX, Total=002750 Gen=00012, 14/28 matched, Best=WATHSPKT BE IS CGEE ALWEBSNX, Total=003000 Gen=00013, 15/28 matched, Best=WATHSPKT BE IS CGEE A WEBSNX, Total=003250 Gen=00014, 16/28 matched, Best=WATHIPKT BE IS CDEE A WEWSNX, Total=003500 Gen=00015, 17/28 matched, Best=WATHIOKT BT IS CDEE A WEWSVW, Total=003750 Gen=00016, 18/28 matched, Best=WATHIOKT BT IS ZDEE A WEWSVL, Total=004000 Gen=00017, 19/28 matched, Best=WATHIOKT BT IS LDEE A WEWSVL, Total=004250 Gen=00018, 20/28 matched, Best=WATHIOKT BT IS LIEE A WEWSVL, Total=004500 Gen=00019, 20/28 matched, Best=WATHIOKT BT IS LIEE A WEWSVL, Total=004750 Gen=00020, 20/28 matched, Best=WATHIOKT BT IS LIEE A WEWSVL, Total=005000 Gen=00021, 21/28 matched, Best=WATHINKT BT IS LIEE A WEWSVL, Total=005250 Gen=00022, 21/28 matched, Best=WATHINKT BT IS LIEE A WEWSVL, Total=005500 Gen=00023, 22/28 matched, Best=WATHINKT BT IS LIKE A WEWSVL, Total=005750 Gen=00024, 23/28 matched, Best=WETHINKT BT IS LIKE A WEWSVL, Total=006000 Gen=00025, 24/28 matched, Best=WETHINKT IT IS LIKE A WEWSVL, Total=006250 Gen=00026, 24/28 matched, Best=WETHINKT IT IS LIKE A WEWSVL, Total=006500 Gen=00027, 25/28 matched, Best=WETHINKS IT IS LIKE A WEWSVL, Total=006750 Gen=00028, 25/28 matched, Best=WETHINKS IT IS LIKE A WEWSVL, Total=007000 Gen=00029, 25/28 matched, Best=WETHINKS IT IS LIKE A WEWSVL, Total=007250 Gen=00030, 25/28 matched, Best=WETHINKS IT IS LIKE A WEWSVL, Total=007500 Gen=00031, 25/28 matched, Best=JETHINKS IT IS LIKE A WEWSVL, Total=007750 Gen=00032, 25/28 matched, Best=JETHINKS IT IS LIKE A WEWSVL, Total=008000 Gen=00033, 25/28 matched, Best=JETHINKS IT IS LIKE A WEWSVL, Total=008250 Gen=00034, 26/28 matched, Best=METHINKS IT IS LIKE A WEWSDL, Total=008500 Gen=00035, 26/28 matched, Best=METHINKS IT IS LIKE A WEWSDL, Total=008750 Gen=00036, 26/28 matched, Best=METHINKS IT IS LIKE A WEHSDL, Total=009000 Gen=00037, 26/28 matched, Best=METHINKS IT IS LIKE A WEHSDL, Total=009250 Gen=00038, 26/28 matched, Best=METHINKS IT IS LIKE A WEHSDL, Total=009500 Gen=00039, 27/28 matched, Best=METHINKS IT IS LIKE A WEHSEL, Total=009750 Gen=00040, 27/28 matched, Best=METHINKS IT IS LIKE A WEHSEL, Total=010000 Gen=00041, 28/28 matched, Best=METHINKS IT IS LIKE A WEASEL, Total=010250
The “Total” reported is the total number of candidate strings evaluated in the generations leading up to some candidate string matching the target at all bases. The thing to note is that this didn’t take the stupendous numbers of “tries” that we would expect for the random search case; it shows a relative improvement over random search of over thirty-six orders of magnitude in efficiency. The program runs in just a couple of seconds on my computer; I did not have to wait for the lifetimes of a great many universes to go by. The question of interest is just how “weasel” manages to improve things over random search.
Richard Dawkins provided a description of a program in his 1986 book, “The Blind Watchmaker”, that was meant to illustrate the difference between random chance and cumulative selection. Dawkins used a string taken from Shakespeare, “METHINKS IT IS LIKE A WEASEL”, and used that as a target. Simply randomly putting capital letters and spaces together, Dawkins noted, would not be expected to efficiently manage to generate the target, not until one had made a stupendous number of tries at it, so stupendous that it exceeds the capacity of trying not just in a human lifetime, but even in the age of the universe. That situation could be contrasted with one in which some principles taken from natural selection are applied to the program. When Dawkins did that, the program converged on his target string in from seconds to about an hour, depending on the language he wrote it in. The resulting program came to be called “weasel” after the string Dawkins used as a target.
As programs go, “weasel” is not complex. Dawkins meant it as a simple demonstration of a basic concept. Many people have been intrigued and implemented versions for themselves; Ian Musgrave maintains a page that links to many of those. In the interest of checking out just what size a dashed-off “weasel” program might be, I dashed one off in Perl, and I came up with 61 lines of code.
Nor is “weasel” meant to be taken as something fraught with significance. Dawkins himself had treated “weasel” as a throwaway program, and did not have the code anymore within a few years after “The Blind Watchmaker” was published.
Why, then, am I treating “weasel” to more attention and analysis? Primarily because the religious antievolutionist capacity to discomprehend, misunderstand, misrepresent, and just plain tell falsehoods about “weasel” is all out of proportion to its role in either evolutionary science pedagogy or evolutionary computation. A second reason is that understanding “weasel” puts one in a better position to understand instances of evolutionary computation that are not aimed solely at pedagogy, as “weasel” was. Conversely, it doesn’t make much sense to try to tackle non-pedagogical instances of evolutionary computation until one comprehends “weasel” well.
There was no sight-seeing, but I went to Nashville, Tennessee from last Sunday to last Thursday. This was to present at a conference, the IEEE Symposium Series on Computational Intelligence. I had a paper in the Artificial Life session that I presented on Tuesday, and it seemed to me that it went well. The Aritficial Life session ended Tuesday, though, so I was attending papers given in various of the other tracks at the conference.
On Wednesday, I sat down at lunch just at random, and two attendees sat down beside me. I talked mostly with Bob Abercrombie on my right, but at some point he brought his colleague, Rick Sheldon, into the conversation. As we compared notes on our backgrounds, Rick and I gradually came to realize that we had gone to grad school in computer science together and had worked together just afterwards at General Dynamics Data Systems Division.
If that wasn’t strange enough, I attended several talks in the computer security track on Thursday. One of the attendees seemed more than usually animated and clued in, and I decided to join his table for lunch. I noticed his nametag said he was Daniel Ashlock of Guelph University. The name rang a bell, and I spent most of lunch trying to recall where I knew him from. It turned out that we had both participated extensively in the Usenet talk.origins newsgroup in the early 1990s, and we both have listings on the University of Ediacara faculty roll. We had never met before in person, so we got a chance to discuss this that and the other while proceeding to the airport and waiting for our flight times.
Score another couple points for the small world.
Last Thursday, though, bad weather was moving into Nashville. By the time we go to the airport, the temperature was dropping and the sky looked quite dark off to the west. We had gotten through the security checkpoint and had been waiting in the terminal a while when a PA announcement said that a tornado had been spotted in the area, and everyone was supposed to move away from glass windows over to interior walls or into the restrooms. This was the first time I’d been someplace where a “take cover” advisory had been issued for a tornado threat. While the tornado didn’t come visit the airport, the bad weather made hash of the departure schedule there. After a whole series of announced delays, my flight that was supposed to leave at 5:22 PM actually left about 9 PM. Since I had a connecting flight from Detroit to Lansing, that meant that I arrived in Detroit about an hour after my plane had left for Lansing.
I asked the gate agent for assistance as I came off the airplane. I was told that everything would be handled at the station at Gate A43. I was then at Gate A61. So a fifteen minute stroll later I arrived at the station at Gate A43. No one was there. As I stood there trying to figure out what was next, someone did come by, the nightshift agent for Northwest Airlines. Apparently it is Northwest Airlines policy to run their customers through a sequential gauntlet of liars (the gate agent who sent me to an unstaffed location for assistance) and the rude (the wandering agent whose job is apparently to do as little as possible that would actually help passengers). The one piece of useful information I got from the peripatetic and randomly abusive agent was that late-night service was limited to the Northwest Airlines baggage claim office. So I headed there. The staff at the baggage claim area were pleasant enough, but given that “weather” was down as the reason for the missed connecting flight, they only needed to reschedule me on the next available flight … which would be the following afternoon. They could get me a discounted rate at a hotel, but that was it as far as doing anything to assist me. So I checked the car rental places, figuring that if I could get a car rental cheaper than the hotel, I’d still be ahead. Out of about nine places, only six answered the phone at 12:30 AM, and of those, only two had cars to rent and would provide a daily rate quote, and both of those were over $99.
So around 1 AM I called Diane and asked her to book me a seat on the next Michigan Flyer bus, which would be a 6 AM departure. I didn’t see much point in doing the hotel thing for what would be about three hours of sleep. So I got a seat at door 402 at the terminal, which is where the Michigan Flyer would be coming. I settled in to do some programming and passed the time with that and naps. The Detroit Airport, like the Nashville Airport, offers the Boingo WiFi hotspot service, allowing people willing to part with $10 to hook up to the internet while they are in the airport. Since that didn’t include me, I just worked on things that didn’t need online access.
Eventually, 6 AM came around, and so did the Michigan Flyer. I got aboard, and got to wait some more for whatever paperwork the bus driver found necessary to do. We got moving around 6:30 AM, and had our first stop about fifteen minutes later at the other terminal. After another round of paperwork, we got moving again. There was a stop in Ann Arbor, and another in Jackson. We arrived in East Lansing about 9:30 AM. Diane came and picked me up. I’ve been off schedule over the weekend. I do hope I re-sync soon.<= get_option(\'vc_tag\') ?>> = get_option(\'vc_text_before\') ?> 10351 = get_option(\'vc_human_count_text_many\') ?> = get_option(\'vc_preposition\') ?> 3440 = get_option(\'vc_human_viewers_text_many\') ?> = get_option(\'vc_tag\') ?>>