{"id":99415,"date":"2018-08-03T07:00:01","date_gmt":"2018-08-03T21:00:01","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/?p=99415"},"modified":"2020-03-04T07:04:24","modified_gmt":"2020-03-04T15:04:24","slug":"20180803-01","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20180803-01\/?p=99415","title":{"rendered":"A puzzle aboard the Anacortes-Sidney ferry: How do the cars get off?"},"content":{"rendered":"<p>For a ferry that goes from one point to another with no stops in between, cars are loaded onto the ferry from one end, and en route, the cars face the direction of travel. When the ferry reaches the destination, the cars drive off. Easy peasy.<\/p>\n<p><a href=\"http:\/\/www.wsdot.com\/ferries\/schedule\/scheduledetailbyroute.aspx?route=ana-sj-sid\"> The ferry from Anacortes to Sidney makes a stop at Friday Harbor<\/a>. This makes for some interesting logistics.<\/p>\n<p>At Anacortes, cars are loaded from the rear,\u00b9 and the cars destined for Friday Harbor are loaded first, so that they wind up at the front of the ferry.<\/p>\n<div id=\"p20180803_1_svg01\">\u00a0<\/div>\n<div style=\"width: 300px; text-align: right;\">direction of travel \u2192<\/div>\n<p>When the ferry arrives at Friday Harbor, those cars exit from the front of the ferry.<\/p>\n<div id=\"p20180803_1_svg02\">\u00a0<\/div>\n<div style=\"width: 500px; text-align: right;\">Friday Harbor dock<\/div>\n<p>And cars from Friday Harbor enter at the front of the ferry.<\/p>\n<div id=\"p20180803_1_svg03\">\u00a0<\/div>\n<div style=\"width: 500px; text-align: right;\">Friday Harbor dock<\/div>\n<p>The ferry continues onward to Sidney, but things are interesting because you have cars on the deck which are facing directly at each other. The cars which boarded in Anacortes are in the back of the ferry facing forward, but the cars which boarded in Friday Harbor are in the front of the ferry facing backward. They are pointed at each other nose-to-nose.<\/p>\n<div id=\"p20180803_1_svg04\">\u00a0<\/div>\n<div style=\"width: 300px; text-align: right;\">direction of travel \u2192<\/div>\n<p>We wondered how the three lanes of cars were going to get off the ferry, since <a href=\"https:\/\/www.npr.org\/sections\/goatsandsoda\/2018\/04\/06\/599888104\/so-two-goats-were-stuck-on-a-beam-under-a-bridge\"> they appeared to be blocking<\/a> <a href=\"http:\/\/www.dailymail.co.uk\/news\/article-1308577\/Goats-stuck-bridge-ledge-Montana-days.html\">each other<\/a>.<\/p>\n<p>We split up to find the answer.<\/p>\n<p>But why don&#8217;t you try to puzzle it out yourself. I&#8217;ll wait.<\/p>\n<div style=\"height: 500px;\">\u00a0<\/div>\n<p>One person asked the clerk at the gift shop, who said, &#8220;The wrong-way-facing cars back out.&#8221;<\/p>\n<p>Another person asked someone who was identified as an engineer, who said, &#8220;The wrong-way-facing cars make a three-point U-turn on the deck.&#8221;<\/p>\n<p>I asked somebody wearing a bright orange safety vest, figuring they worked on the car deck. &#8220;We leave one lane with all the cars pointing in the direction of travel and empty them first. We use that empty lane to unload the other cars pointed the same way. And the cars that are facing the wrong way make a big loop on the deck to turn around. We call that <i>flipping<\/i>.&#8221;<\/p>\n<p>I joked, &#8220;Maybe you could get a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Lazy_Susan\"> Lazy Susan<\/a> to turn the cars around.&#8221;<\/p>\n<p>&#8220;Actually, <a href=\"http:\/\/www.romancingalaska.com\/southeast\/SE_alaska_marine_highway_system.htm\"> that&#8217;s what they do on some Alaska ferries<\/a>.&#8221;<\/p>\n<p>Okay, so we asked three different people and got three different answers. Who&#8217;s right?<\/p>\n<p>Turns out everybody was right. (Though I was most right.)<\/p>\n<p>The last vehicle to load at Friday Harbor was a large camper van, which blocked multiple lanes. They backed out off the ferry. They were closely followed by the cars in the lane where everybody was pointing the right way. (Like, no pressure on the camper van driver.)<\/p>\n<p>The ferry crew then used that empty lane to get the other two lanes of forward-facing cars off the ferry.<\/p>\n<p>Finally, the wrong-facing cars made U-turns to get off. Most of them used the open space on the deck to make a U-turn, but a few made three-point turns.<\/p>\n<p>\u00b9 The ferry is symmetric and doesn&#8217;t really have a &#8220;front&#8221; or a &#8220;rear&#8221;, but I gave them names based on the direction of travel.<\/p>\n<p>\n<script>\n(function() {\n  var svg = {\n  \/\/ break up \"style\" to prevent wordpress from injecting random junk\n    svg01: `<s` + `tyle>\n.car-board {\n    animation: car-board 2s ease-in-out infinite;\n}\n@keyframes car-board {\n    from { transform: translateX(-300px); }\n    10%  { transform: translateX(-300px); }\n    75%  { transform: none; }\n}\n.car-leave {\n    animation: car-leave 2s ease-in-out infinite;\n}\n@keyframes car-leave {\n    from { transform: translateX(-140px); }\n    10%  { transform: translateX(-140px); }\n    75%  { transform: none; }\n}\n.car-enter {\n    animation: car-enter 2s ease-in-out infinite;\n}\n@keyframes car-enter {\n    from { transform: none; }\n    10%  { transform: none; }\n    75%  { transform: translateX(-140px); }\n    to   { transform: translateX(-140px); }\n}\n<\/s` + `tyle>\n<svg width=\"0\" height=\"0\">\n  <defs>\n    <path id=\"lcar\"\n      d=\"M2 30 L10 30 A5 5 0 1 0 20 30 L40 30 A5 5 0 1 0 50 30 L58 30 L58 20 L50 20 L30 10 L10 10 Z\"\n      stroke=\"black\" stroke-width=\"2\" \/>\n    <path id=\"rcar\"\n      d=\"M58 30 L50 30 A5 5 0 1 1 40 30 L20 30 A5 5 0 1 1 10 30 L2 30 L2 20 L10 20 L30 10 L50 10 Z\"\n      stroke=\"black\" stroke-width=\"2\" \/>\n  <\/defs>\n<\/svg>\n<svg width=\"300\" height=\"40\">\n  <use href=\"#lcar\" x=\"0\"   fill=\"red\" class=\"car-board\" \/>\n  <use href=\"#lcar\" x=\"60\"  fill=\"red\" class=\"car-board\" \/>\n  <use href=\"#lcar\" x=\"120\" fill=\"red\" class=\"car-board\" \/>\n  <use href=\"#lcar\" x=\"180\" fill=\"yellow\" class=\"car-board\" \/>\n  <use href=\"#lcar\" x=\"240\" fill=\"yellow\" class=\"car-board\" \/>\n  <line x1=\"0\" y1=\"37\" x2=\"300\" y2=\"37\" stroke=\"black\" xstroke-width=\"2\"\/>\n<\/svg>`,\n    svg02: `<svg width=\"500\" height=\"40\">\n  <use href=\"#lcar\" x=\"0\"   fill=\"red\" \/>\n  <use href=\"#lcar\" x=\"60\"  fill=\"red\" \/>\n  <use href=\"#lcar\" x=\"120\" fill=\"red\" \/>\n  <use href=\"#lcar\" x=\"320\" fill=\"yellow\" class=\"car-leave\" \/>\n  <use href=\"#lcar\" x=\"380\" fill=\"yellow\" class=\"car-leave\" \/>\n  <line x1=\"0\" y1=\"37\" x2=\"300\" y2=\"37\" stroke=\"black\" xstroke-width=\"2\"\/>\n  <line x1=\"310\" y1=\"37\" x2=\"500\" y2=\"37\" stroke=\"black\" xstroke-width=\"2\"\/>\n<\/svg>`,\n    svg03: `<svg width=\"500\" height=\"40\">\n  <use href=\"#lcar\" x=\"0\"   fill=\"red\" \/>\n  <use href=\"#lcar\" x=\"60\"  fill=\"red\" \/>\n  <use href=\"#lcar\" x=\"120\" fill=\"red\"\/>\n  <use href=\"#rcar\" x=\"320\" fill=\"lightblue\" class=\"car-enter\"\/>\n  <use href=\"#rcar\" x=\"380\" fill=\"lightblue\" class=\"car-enter\"\/>\n  <line x1=\"0\" y1=\"37\" x2=\"300\" y2=\"37\" stroke=\"black\" xstroke-width=\"2\"\/>\n  <line x1=\"310\" y1=\"37\" x2=\"500\" y2=\"37\" stroke=\"black\" xstroke-width=\"2\"\/>\n<\/svg>`,\n    svg04: `<svg width=\"300\" height=\"40\">\n  <use href=\"#lcar\" x=\"0\"   fill=\"red\" \/>\n  <use href=\"#lcar\" x=\"60\"  fill=\"red\" \/>\n  <use href=\"#lcar\" x=\"120\" fill=\"red\"\/>\n  <use href=\"#rcar\" x=\"180\" fill=\"lightblue\"\/>\n  <use href=\"#rcar\" x=\"240\" fill=\"lightblue\"\/>\n  <line x1=\"0\" y1=\"37\" x2=\"300\" y2=\"37\" stroke=\"black\" xstroke-width=\"2\"\/>\n<\/svg>`\n  };\n  Object.keys(svg).forEach(function (key) {\n    document.getElementById(\"p20180803_1_\" + key).innerHTML = svg[key];\n  });\n})();\n<\/script>\n<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At an apparent impasse.<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[103],"class_list":["post-99415","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-non-computer"],"acf":[],"blog_post_summary":"<p>At an apparent impasse.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/99415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=99415"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/99415\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=99415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=99415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=99415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}